design: more precise Makefile dependencies

Previously the Makefile rule for generating the design spec depended on
all Haskell source files in `spec/haskell`. This unintentionally
included files generated by the Haskell kernel build in
`spec/haskell/dist`. This meant that for `run_tests` builds in which the
Haskell kernel test completes *after* the initial generation of the
design spec, subsequent Makefile jobs which depend on the design spec
could cause re-runs of the design spec. Furthermore, if `run_tests` runs
several such jobs concurrently, race conditions in concurrent runs of
the design spec could cause errors.

Since the design spec does not make use of the generated Haskell source
in `spec/haskell/dist`, this commit restricts the design spec
dependencies to Haskell source files in `spec/haskell/src`.

Signed-off-by: Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>
This commit is contained in:
Matthew Brecknell 2020-04-01 11:38:42 +11:00
parent cf48906b26
commit 00330af209
1 changed files with 1 additions and 1 deletions

View File

@ -12,7 +12,7 @@ MAKEFILE_PATH := $(dir $(lastword $(MAKEFILE_LIST)))
L4V_REPO_PATH := $(realpath $(MAKEFILE_PATH)../..)
SKEL_PATH := ${L4V_REPO_PATH}/spec/design/skel
MSKEL_PATH := ${L4V_REPO_PATH}/spec/design/m-skel
HASKELL_PATH := ${L4V_REPO_PATH}/spec/haskell
HASKELL_PATH := ${L4V_REPO_PATH}/spec/haskell/src
MACHINE_PATH := ${L4V_REPO_PATH}/spec/machine
TRANS_PATH := ${L4V_REPO_PATH}/tools/haskell-translator