2 rtsTypes.lh /* runtime system */ \
4 SMinterface.lh /* storage-management related */ \
22 RednCounts.lh /* "ticky-ticky" profiling */ \
24 Info.lh /* Info pointer definitions */ \
26 CostCentre.lh /* for cost centre profiling */ \
27 AgeProfile.lh /* age stuff for heap and lifetime profiling */ \
28 Force_GC.lh /* for forcing GC */ \
31 Parallel.lh /* for PAR build */ \
32 Threads.lh /* for threads, parallel or not */
34 H_FILES_FROM_LH_FILES = $(LH_FILES:.lh=.h)
36 MOST_H_FILES = $(H_FILES_FROM_LH_FILES) \
37 stgdefs.h /* top-level including file */ \
40 StgDirections.h /* other basic STG things */ \
48 LLC.h /* for PAR build */ \
51 #if GhcWithNativeCodeGen == YES
52 #define __native_h $(TARGETPLATFORM).h
54 #define __native_h /*no*/
57 H_FILES = $(MOST_H_FILES) \
58 __native_h /* Must be constructed last */
60 /* $(TARGETPLATFORM).h should probably be installed in LIB, not DATA (WDP 94/07) */
62 PLAT_H_FILES = config.h platform.h
66 /* Literate-pgmming suffix rules used herein */
70 all :: /* so it is first */
73 #if GhcWithNativeCodeGen == YES
75 GhcDriverNeededHere(depend all mkNativeHdr.o) /* we use its C-compiling know-how */
77 $(TARGETPLATFORM).h : mkNativeHdr
79 ./mkNativeHdr > $@ || ( rm $@ && exit 1 )
81 mkNativeHdr.c : mkNativeHdr.lc
83 mkNativeHdr :: mkNativeHdr.c $(MOST_H_FILES)
84 $(RM) mkNativeHdr mkNativeHdr.o
85 $(GHC) -c mkNativeHdr.c
86 $(CC) -o mkNativeHdr mkNativeHdr.o
88 #endif /* NativeCodeGen */
90 all depend :: $(H_FILES)
92 #if DoInstallGHCSystem == YES
93 MakeDirectories(install, $(INSTDATADIR_GHC)/includes $(INSTLIBDIR_GHC)/includes)
94 includestuff:: /* nothing */
95 InstallTarget(includestuff)
96 InstallMultNonExecTargets(includestuff, $(H_FILES), $(INSTDATADIR_GHC)/includes)
97 InstallMultNonExecTargets(includestuff, $(PLAT_H_FILES), $(INSTLIBDIR_GHC)/includes)
100 ExtraStuffToClean( $(H_FILES_FROM_LH_FILES) )
102 EtagsNeededHere(tags) /* need this to do "make tags" */
104 CTagsTarget( $(H_FILES) )
106 LitStuffNeededHere(docs depend)
107 InfoStuffNeededHere(docs)
109 LitDocRootTargetWithNamedOutput(root,lit,root-standalone)
110 LitDocRootTargetWithNamedOutput(c-as-asm,lit,c-as-asm-standalone)