1 %************************************************************************
3 \section[mkworld-utils-ghc]{``Utilities'' stuff for @ghc@ project}
5 %************************************************************************
7 It's become sorta traditional to change the project-wide
8 Haskell-compiler options with @SetupHcOpts@ (rather than
11 #if GhcWithHscOptimised == YES
14 #define __hsc_opt /**/
18 #if HaskellCompilerType == HC_CHALMERS_HBC
19 #define SetupHcOpts __hsc_opt -fpbu
21 #if HaskellCompilerType == HC_GLASGOW_GHC
22 #define SetupHcOpts __hsc_opt -hi-diffs -link-chk
24 #if HaskellCompilerType == HC_ROJEMO_NHC
25 #define SetupHcOpts /*nothing*/
27 #define SetupHcOpts /*nothing*/
31 #endif /* SetupHcOpts */
34 #if HaveGcc == YES && UseGcc == YES
35 /* can cope w/ "-g -O" ...; but leave out -g to avoid bloated libs */
36 #define ProjectCcOpts -O /*-g*/
38 #define ProjectCcOpts /*-g*/
39 #endif /* Gcc whatnot */
40 #endif /* ProjectCcOpts */
42 #ifndef ProjectJmakeDefines
43 #define ProjectJmakeDefines /*none*/
49 #define MkDependHSSrc $(GHC_UTILSRC)/mkdependHS
53 #if defined(UseInstalledUtils)
54 #define MkDependHSCmd mkdependHS
56 #define MkDependHSCmd $(MKDEPENDHSSRC)/mkdependHS
58 #endif /* ! MkDependHSCmd */
60 #ifndef MkDependHSNeededHere
61 #if defined(UseInstalledUtils)
62 #define MkDependHSNeededHere(target) /**/
64 #define MkDependHSNeededHere(target) \
65 __SomeUtilNeededHere(target,$(MKDEPENDHS),$(MKDEPENDHSSRC),mkdependHS)
66 #endif /* UseInstalledUtils */
67 #endif /* MkDependHSNeededHere */
69 #ifndef UseInstalledUtils
70 MKDEPENDHSSRC = MkDependHSSrc
74 #define UnlitCmd $(GHC_UNLITSRC)/unlit
77 #ifndef UnlitNeededHere
78 #define UnlitNeededHere(target) \
79 __SomeUtilNeededHere(target,$(GHC_UNLIT),$(GHC_UNLITSRC),unlit)
80 #endif /* UnlitNeededHere */
83 GHC_UNLITSRC = $(GHC_UTILSRC)/unlit
88 #define HsTagsSrc $(GHC_UTILSRC)/hstags
90 #if defined(UseInstalledUtils)
91 #define HsTagsCmd hstags
93 #define HsTagsCmd $(HSTAGSSRC)/hstags
96 #ifndef HsTagsNeededHere
97 #if defined(UseInstalledUtils)
98 #define HsTagsNeededHere(target) /**/
100 #define HsTagsNeededHere(target) \
101 __SomeUtilNeededHere(target,$(HSTAGS),$(HSTAGSSRC),hstags)
102 #endif /* UseInstalledUtils */
103 #endif /* HsTagsNeededHere */
105 #ifndef UseInstalledUtils
106 HSTAGSSRC = HsTagsSrc
109 #ifndef AllProjectsHsTagsOpts
110 #define AllProjectsHsTagsOpts /*none*/
112 #ifndef PlatformHsTagsOpts
113 #define PlatformHsTagsOpts /*none*/
115 #ifndef ProjectHsTagsOpts
116 #define ProjectHsTagsOpts /*none*/
118 #ifndef SetupHsTagsOpts
119 #define SetupHsTagsOpts /*none*/
121 GenerateOptionsMakeVars(HSTAGS,OPTS,AllProjectsHsTagsOpts,PlatformHsTagsOpts,ProjectHsTagsOpts,SetupHsTagsOpts)
122 HSTAGSFLAGS = $(GLUED_HSTAGS_OPTS)
124 /* ugen: allegedly generally-useful util from LML distribution */
126 #if defined(UseInstalledUtils)
129 #define UgenCmd $(UGENSRC)/ugen
132 #ifndef UgenNeededHere
133 #if defined(UseInstalledUtils)
134 #define UgenNeededHere(target) /**/
136 #define UgenNeededHere(target) \
137 __SomeUtilNeededHere(target,$(UGEN),$(UGENSRC),ugen)
138 #endif /* ! UseInstalledUtils */
139 #endif /* UgenNeededHere */
141 #ifndef UseInstalledUtils
142 UGENSRC = $(GHC_UTILSRC)/ugen