[project @ 2002-02-04 22:17:50 by sof]
[ghc-hetmet.git] / mk / paths.mk
index 51a75f4..720a750 100644 (file)
@@ -111,10 +111,11 @@ INSTALL_DIR     = $(FPTOOLS_TOP)/glafp-utils/mkdirhier/mkdirhier
 
 # NB. use := rather than = here, otherwise the wildcard will get re-computed
 # every time PRE_SRCS is expanded (this happens a lot).
-PRE_SRCS    := $(wildcard $(patsubst ./%, %,  \
+ALL_SRCS    = $(wildcard $(patsubst ./%, %,  \
                   $(patsubst %,%/*.hs,   . $(ALL_DIRS)) \
                   $(patsubst %,%/*.lhs,  . $(ALL_DIRS)) \
                   $(patsubst %,%/*.y,    . $(ALL_DIRS)) \
+                  $(patsubst %,%/*.ly,   . $(ALL_DIRS)) \
                   $(patsubst %,%/*.c,    . $(ALL_DIRS)) \
                   $(patsubst %,%/*.hc,   . $(ALL_DIRS)) \
                   $(patsubst %,%/*.S,    . $(ALL_DIRS)) \
@@ -125,29 +126,39 @@ PRE_SRCS    := $(wildcard $(patsubst ./%, %,  \
                   $(patsubst %,%/*.hsc,  . $(ALL_DIRS)) \
               ))
 
+# ALL_SRCS is computed once and for all into PRE_SRCS at the top of target.mk.
+
 PRE_HS_SRCS  = $(filter %.hs,  $(PRE_SRCS))
 PRE_LHS_SRCS = $(filter %.lhs, $(PRE_SRCS))
 
-HSC_SRCS     = $(filter %.hsc, $(PRE_SRCS))
-HAPPY_SRCS   = $(filter %.y,   $(PRE_SRCS))
+HSC_SRCS      = $(filter %.hsc, $(PRE_SRCS))
+HAPPY_Y_SRCS  = $(filter %.y,   $(PRE_SRCS))
+HAPPY_LY_SRCS = $(filter %.ly,   $(PRE_SRCS))
+HAPPY_SRCS    = $(HAPPY_Y_SRCS) $(HAPPY_LY_SRCS)
 
 DERIVED_SRCS = $(patsubst %.hsc, %.hs, $(HSC_SRCS)) \
               $(patsubst %.hsc, %_hsc.c, $(HSC_SRCS)) \
               $(patsubst %.hsc, %_hsc.h, $(HSC_SRCS)) \
-              $(patsubst %.y, %.hs, $(HAPPY_SRCS)) \
-              $(patsubst %.hs, %.hc, $(PRE_HS_SRCS)) \
+              $(patsubst %.hsc, %.hc, $(HSC_SRCS)) \
+              $(patsubst %.y,   %.hs, $(HAPPY_Y_SRCS)) \
+              $(patsubst %.ly,  %.hs, $(HAPPY_LY_SRCS)) \
+              $(patsubst %.hs,  %.hc, $(PRE_HS_SRCS)) \
               $(patsubst %.lhs, %.hc, $(PRE_LHS_SRCS))
 
 # EXCLUDED_SRCS can be set in the Makefile, otherwise it defaults to empty.
-EXCLUDED_HSC_SRCS     = $(filter %.hsc, $(EXCLUDED_SRCS))
-EXCLUDED_HAPPY_SRCS   = $(filter %.y,   $(EXCLUDED_SRCS))
+EXCLUDED_HSC_SRCS      = $(filter %.hsc, $(EXCLUDED_SRCS))
+EXCLUDED_HAPPY_Y_SRCS  = $(filter %.y,   $(EXCLUDED_SRCS))
+EXCLUDED_HAPPY_LY_SRCS = $(filter %.ly,  $(EXCLUDED_SRCS))
+EXCLUDED_HAPPY_SRCS   = $(EXCLUDED_HAPPY_Y_SRCS) $(EXCLUDED_HAPPY_LY_SRCS)
 EXCLUDED_HS_SRCS      = $(filter %.hs,  $(EXCLUDED_SRCS))
 EXCLUDED_LHS_SRCS     = $(filter %.lhs, $(EXCLUDED_SRCS))
 EXCLUDED_DERIVED_SRCS = $(patsubst %.hsc, %.hs, $(EXCLUDED_HSC_SRCS)) \
                        $(patsubst %.hsc, %_hsc.h, $(EXCLUDED_HSC_SRCS)) \
                        $(patsubst %.hsc, %_hsc.c, $(EXCLUDED_HSC_SRCS)) \
-                       $(patsubst %.y, %.hs, $(EXCLUDED_HAPPY_SRCS)) \
-                       $(patsubst %.hs, %.hc, $(EXCLUDED_HS_SRCS)) \
+                       $(patsubst %.hsc, %.hc, $(EXCLUDED_HSC_SRCS)) \
+                       $(patsubst %.y,   %.hs, $(EXCLUDED_HAPPY_Y_SRCS)) \
+                       $(patsubst %.ly,  %.hs, $(EXCLUDED_HAPPY_LY_SRCS)) \
+                       $(patsubst %.hs,  %.hc, $(EXCLUDED_HS_SRCS)) \
                        $(patsubst %.lhs, %.hc, $(EXCLUDED_LHS_SRCS))
 # Exclude _hsc.c files; they get built as part of the cbits library,
 # not part of the main library
@@ -227,7 +238,7 @@ CLEAN_FILES        += $(HS_PROG) $(C_PROG) $(SCRIPT_PROG) $(SCRIPT_LINK) \
                      $(CLEAN_DERIVED_SRCS)
 
 # Don't clean the .hc files if we're bootstrapping
-ifneq "$(BootingFromHc)" "YES"
+ifeq "$(BootingFromHc)" "YES"
 CLEAN_DERIVED_SRCS = $(filter-out %.hc, $(DERIVED_SRCS))
 else
 CLEAN_DERIVED_SRCS = $(DERIVED_SRCS)