2 RtsTypes.lh /* runtime system */ \
5 SMinterface.lh /* storage-management related */ \
23 Ticky.lh /* "ticky-ticky" profiling */ \
25 Info.lh /* Info pointer definitions */ \
27 CostCentre.lh /* for cost centre profiling */ \
30 Parallel.lh /* for PAR build */ \
31 Threads.lh /* for threads, parallel or not */
33 H_FILES_FROM_LH_FILES = $(LH_FILES:.lh=.h)
35 MOST_H_FILES = $(H_FILES_FROM_LH_FILES) \
36 stgdefs.h /* top-level including file */ \
39 StgDirections.h /* other basic STG things */ \
47 LLC.h /* for PAR build */ \
50 #if GhcWithNativeCodeGen == YES
51 #define __native_h $(TARGETPLATFORM).h
53 #define __native_h /*no*/
56 H_FILES = $(MOST_H_FILES) \
57 __native_h /* Must be constructed last */
59 /* $(TARGETPLATFORM).h should probably be installed in LIB, not DATA (WDP 94/07) */
61 PLAT_H_FILES = config.h platform.h
65 /* Literate-pgmming suffix rules used herein */
66 UnlitSuffixRule(.lh,.h)
67 UnlitSuffixRule(.lc,.c)
69 all :: /* so it is first */
72 UnlitNeededHere(depend)
74 #if GhcWithNativeCodeGen == YES
76 GhcDriverNeededHere(depend all mkNativeHdr.o) /* we use its C-compiling know-how */
78 $(TARGETPLATFORM).h : mkNativeHdr
80 ./mkNativeHdr > $@ || ( rm $@ && exit 1 )
82 mkNativeHdr.c : mkNativeHdr.lc
84 mkNativeHdr :: mkNativeHdr.c $(MOST_H_FILES)
85 $(RM) mkNativeHdr mkNativeHdr.o
86 $(GHC) -c mkNativeHdr.c
87 $(CC) -o mkNativeHdr mkNativeHdr.o
89 #endif /* NativeCodeGen */
91 all depend :: $(H_FILES)
93 #if DoInstallGHCSystem == YES
94 MakeDirectories(install, $(INSTDATADIR_GHC)/includes $(INSTLIBDIR_GHC)/includes)
95 includestuff:: /* nothing */
96 InstallTarget(includestuff)
97 InstallMultNonExecTargets(includestuff, $(H_FILES), $(INSTDATADIR_GHC)/includes)
98 InstallMultNonExecTargets(includestuff, $(PLAT_H_FILES), $(INSTLIBDIR_GHC)/includes)
101 ExtraStuffToClean( $(H_FILES_FROM_LH_FILES) )
103 EtagsNeededHere(tags) /* need this to do "make tags" */
105 CTagsTarget( $(H_FILES) )