[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / mkworld / utils-ghc.ljm
1 %************************************************************************
2 %*                                                                      *
3 \section[mkworld-utils-ghc]{``Utilities'' stuff for @ghc@ project}
4 %*                                                                      *
5 %************************************************************************
6
7 It's become sorta traditional to change the project-wide
8 Haskell-compiler options with @SetupHcOpts@ (rather than
9 @ProjectHcOpts@).
10 \begin{code}
11 #if GhcWithHscOptimised == YES
12 #define __hsc_opt -O
13 #else
14 #define __hsc_opt /**/
15 #endif
16
17 #ifndef SetupHcOpts
18 #if HaskellCompilerType == HC_CHALMERS_HBC
19 #define SetupHcOpts __hsc_opt -fpbu
20 #else
21 #if HaskellCompilerType == HC_GLASGOW_GHC
22 #define SetupHcOpts __hsc_opt -hi-diffs -link-chk
23 #else
24 #if HaskellCompilerType == HC_ROJEMO_NHC
25 #define SetupHcOpts /*nothing*/
26 #else
27 #define SetupHcOpts /*nothing*/
28 #endif
29 #endif
30 #endif
31 #endif /* SetupHcOpts */
32
33 #ifndef ProjectCcOpts
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*/
37 #else
38 #define ProjectCcOpts /*-g*/
39 #endif /* Gcc whatnot */
40 #endif /* ProjectCcOpts */
41
42 #ifndef ProjectJmakeDefines
43 #define ProjectJmakeDefines /*none*/
44 #endif
45 \end{code}
46
47 \begin{code}
48 #ifndef MkDependHSSrc
49 #define MkDependHSSrc $(GHC_UTILSRC)/mkdependHS
50 #endif
51
52 #ifndef MkDependHSCmd
53 #if     defined(UseInstalledUtils)
54 #define MkDependHSCmd mkdependHS
55 #else
56 #define MkDependHSCmd $(MKDEPENDHSSRC)/mkdependHS
57 #endif
58 #endif /* ! MkDependHSCmd */
59
60 #ifndef MkDependHSNeededHere
61 #if defined(UseInstalledUtils)
62 #define MkDependHSNeededHere(target) /**/
63 #else
64 #define MkDependHSNeededHere(target) \
65 __SomeUtilNeededHere(target,$(MKDEPENDHS),$(MKDEPENDHSSRC),mkdependHS)
66 #endif /* UseInstalledUtils */
67 #endif /* MkDependHSNeededHere */
68
69 #ifndef UseInstalledUtils
70 MKDEPENDHSSRC = MkDependHSSrc
71 #endif
72
73 #ifndef UnlitCmd
74 #define UnlitCmd $(GHC_UNLITSRC)/unlit
75 #endif
76
77 #ifndef UnlitNeededHere
78 #define UnlitNeededHere(target) \
79 __SomeUtilNeededHere(target,$(GHC_UNLIT),$(GHC_UNLITSRC),unlit)
80 #endif /* UnlitNeededHere */
81
82 GHC_UNLIT    = UnlitCmd
83 GHC_UNLITSRC = $(GHC_UTILSRC)/unlit
84 \end{code}
85
86 \begin{code}
87 #ifndef HsTagsSrc
88 #define HsTagsSrc $(GHC_UTILSRC)/hstags
89 #endif
90 #if     defined(UseInstalledUtils)
91 #define HsTagsCmd hstags
92 #else
93 #define HsTagsCmd $(HSTAGSSRC)/hstags
94 #endif
95
96 #ifndef HsTagsNeededHere
97 #if defined(UseInstalledUtils)
98 #define HsTagsNeededHere(target) /**/
99 #else
100 #define HsTagsNeededHere(target) \
101 __SomeUtilNeededHere(target,$(HSTAGS),$(HSTAGSSRC),hstags)
102 #endif /* UseInstalledUtils */
103 #endif /* HsTagsNeededHere */
104 HSTAGS = HsTagsCmd
105 #ifndef UseInstalledUtils
106 HSTAGSSRC = HsTagsSrc
107 #endif
108
109 #ifndef AllProjectsHsTagsOpts
110 #define AllProjectsHsTagsOpts /*none*/
111 #endif
112 #ifndef PlatformHsTagsOpts
113 #define PlatformHsTagsOpts /*none*/
114 #endif
115 #ifndef ProjectHsTagsOpts
116 #define ProjectHsTagsOpts /*none*/
117 #endif
118 #ifndef SetupHsTagsOpts
119 #define SetupHsTagsOpts /*none*/
120 #endif
121 GenerateOptionsMakeVars(HSTAGS,OPTS,AllProjectsHsTagsOpts,PlatformHsTagsOpts,ProjectHsTagsOpts,SetupHsTagsOpts)
122 HSTAGSFLAGS        = $(GLUED_HSTAGS_OPTS)
123
124 /* ugen: allegedly generally-useful util from LML distribution */
125 #ifndef UgenCmd
126 #if     defined(UseInstalledUtils)
127 #define UgenCmd ugen
128 #else
129 #define UgenCmd $(UGENSRC)/ugen
130 #endif
131 #endif
132 #ifndef UgenNeededHere
133 #if defined(UseInstalledUtils)
134 #define UgenNeededHere(target) /**/
135 #else
136 #define UgenNeededHere(target) \
137 __SomeUtilNeededHere(target,$(UGEN),$(UGENSRC),ugen)
138 #endif /* ! UseInstalledUtils */
139 #endif /* UgenNeededHere */
140 UGEN = UgenCmd
141 #ifndef UseInstalledUtils
142 UGENSRC = $(GHC_UTILSRC)/ugen
143 #endif
144 \end{code}