/
/Makefile
1 # Tools and options
2 STRIP = strip
3 HC = ghc
4 MAIN = INblobs
5 EXE =
6 # MAC = yes # uncomment this line if in MAC
7 HDOCLIB = /usr/share/haddock-0.7
8
9 ifdef MAC
10 MAC_OPTS = -D__APPLE__
11 endif
12
13 EXTRA_OPTS = $(MAC_OPTS) # -ignore-package network-1.0 # uncomment this option if with ghc 6.4
14
15 HC_OPTS = -package HaXml -package wx -fglasgow-exts -i$(IFACES) -Wall -static $(EXTRA_OPTS)
16 # -optl-mwindows
17 # voor GHC 6.4: -ignore-package network-1.0
18
19 .SUFFIXES : .o .hs .hi .lhs .hc .s .ag
20
21 # Sources
22 INBLOBS = src/Main.hs src/State.hs src/StateUtil.hs src/Math.hs src/GUIEvents.hs \
23 src/Common.hs src/CommonIO.hs \
24 src/Network.hs src/NetworkFile.hs \
25 src/Colors.hs src/Constants.hs src/SafetyNet.hs \
26 src/Document.hs \
27 src/NetworkUI.hs src/NetworkView.hs src/NetworkControl.hs \
28 src/ContextMenu.hs \
29 src/PersistentDocument.hs src/PDDefaults.hs \
30 src/Shape.hs src/Palette.hs src/InfoKind.hs \
31 src/DisplayOptions.hs src/Operations.hs \
32 src/Ports.hs src/DocumentFile.hs \
33 src/INRule.hs src/INRules.hs \
34 src/INTextual.hs src/INTextualUI.hs \
35 src/INReduction.hs \
36 src/INReductionStrategies.hs \
37 src/INChecks.hs src/INChecksUI.hs \
38 src/SpecialSymbols.hs \
39 src/CommonUI.hs \
40 src/Functional/Language.hs \
41 src/Functional/Parser.hs \
42 src/Functional/Compiler.hs \
43 src/Functional/UI.hs \
44
45
46 SRCS = $(INBLOBS)
47 OBJS = $(SRCS:.hs=.o)
48 IFACES = src:src/Functional
49
50 # Main target
51 inblobs: $(OBJS)
52 $(HC) -o $(MAIN)$(EXE) $(HC_OPTS) $(OBJS)
53 ifdef STRIP
54 $(STRIP) $(MAIN)$(EXE)
55 endif
56 ifdef MAC
57 /usr/local/wxhaskell/bin/macosx-app $(MAIN)$(EXE)
58 rm $(MAIN)$(EXE)
59 cp $(MAIN).icns $(MAIN).app/Contents/Resources
60 patch -p0 <patch.icons
61 endif
62
63 macDist: inblobs
64 ifdef MAC
65 mkdir $(MAIN)
66 cp -r examples palettes html $(MAIN).app $(MAIN)
67 hdiutil create -srcfolder $(MAIN) $(MAIN).dmg
68 endif
69
70 DOCS = docs/haddock
71
72 # Documentation target (use Haddock 0.7 in combination with GHC 6.X)
73 doc:
74 ghc -cpp -E -optP-P -D__HADDOCK__ src/NetworkUI.hs -o src/NetworkUI.hspp
75 haddock +RTS -K4M -RTS \
76 -h -o $(DOCS) \
77 --lib $(HDOCLIB) \
78 --use-package=base --use-package=wx --use-package=HaXml \
79 $(filter-out src/NetworkUI.hs, $(INBLOBS)) src/NetworkUI.hspp \
80
81 # Clean documentation files
82 cleandoc:
83 $(RM) $(DOCS)/*
84
85 # Clean target
86 clean:
87 $(RM) src/*.o
88 $(RM) src/*.hi
89 $(RM) src/Functional/*.o
90 $(RM) src/Functional/*.hi
91 $(RM) $(MAIN)$(EXE)
92
93 ifdef MAC
94 $(RM) -rf $(MAIN).app
95 $(RM) -rf $(MAIN)
96 endif
97
98 cabalClean:
99 $(RM) -rf dist
100
101 # Inter-module dependencies
102 depend :
103 # Checking dependencies
104 $(HC) -M $(HC_OPTS) $(SRCS)
105
106 # Standard suffix rules
107 .o.hi:
108 @:
109
110 .lhs.o:
111 $(HC) -c $< $(HC_OPTS)
112
113 .hs.o:
114 $(HC) -c $< $(HC_OPTS)
115
116 .hs.hi:
117 $(HC) -c $< $(HC_OPTS)
118
119 .lhs.hi:
120 $(HC) -c $< $(HC_OPTS)
121
122 .ag.hs:
123 $(AG) -a $<
124
125 # DO NOT DELETE: Beginning of Haskell dependencies
126 src/DisplayOptions.o : src/DisplayOptions.hs
127 src/InfoKind.o : src/InfoKind.hs
128 src/PDDefaults.o : src/PDDefaults.hs
129 src/PersistentDocument.o : src/PersistentDocument.hs
130 src/Colors.o : src/Colors.hs
131 src/Constants.o : src/Constants.hs
132 src/Constants.o : src/Colors.hi
133 src/SafetyNet.o : src/SafetyNet.hs
134 src/SafetyNet.o : src/Constants.hi
135 src/Common.o : src/Common.hs
136 src/Common.o : src/Colors.hi
137 src/Functional/Language.o : src/Functional/Language.hs
138 src/Functional/Language.o : src/Common.hi
139 src/Functional/Parser.o : src/Functional/Parser.hs
140 src/Functional/Parser.o : src/Functional/Language.hi
141 src/Math.o : src/Math.hs
142 src/CommonIO.o : src/CommonIO.hs
143 src/CommonIO.o : src/SafetyNet.hi
144 src/CommonIO.o : src/Common.hi
145 src/CommonIO.o : src/Math.hi
146 src/Shape.o : src/Shape.hs
147 src/Shape.o : src/Common.hi
148 src/Shape.o : src/Constants.hi
149 src/Shape.o : src/Colors.hi
150 src/Shape.o : src/Math.hi
151 src/Shape.o : src/CommonIO.hi
152 src/Ports.o : src/Ports.hs
153 src/Ports.o : src/Colors.hi
154 src/Ports.o : src/CommonIO.hi
155 src/Ports.o : src/Shape.hi
156 src/Ports.o : src/Constants.hi
157 src/Ports.o : src/Math.hi
158 src/Palette.o : src/Palette.hs
159 src/Palette.o : src/Ports.hi
160 src/Palette.o : src/Math.hi
161 src/Palette.o : src/Shape.hi
162 src/Network.o : src/Network.hs
163 src/Network.o : src/Palette.hi
164 src/Network.o : src/Ports.hi
165 src/Network.o : src/Shape.hi
166 src/Network.o : src/InfoKind.hi
167 src/Network.o : src/Math.hi
168 src/Network.o : src/Common.hi
169 src/NetworkFile.o : src/NetworkFile.hs
170 src/NetworkFile.o : src/Ports.hi
171 src/NetworkFile.o : src/InfoKind.hi
172 src/NetworkFile.o : src/Shape.hi
173 src/NetworkFile.o : src/Colors.hi
174 src/NetworkFile.o : src/Common.hi
175 src/NetworkFile.o : src/Math.hi
176 src/NetworkFile.o : src/Network.hi
177 src/SpecialSymbols.o : src/SpecialSymbols.hs
178 src/SpecialSymbols.o : src/Math.hi
179 src/SpecialSymbols.o : src/Colors.hi
180 src/SpecialSymbols.o : src/Ports.hi
181 src/SpecialSymbols.o : src/Palette.hi
182 src/SpecialSymbols.o : src/Shape.hi
183 src/INRule.o : src/INRule.hs
184 src/INRule.o : src/SpecialSymbols.hi
185 src/INRule.o : src/Common.hi
186 src/INRule.o : src/InfoKind.hi
187 src/INRule.o : src/Ports.hi
188 src/INRule.o : src/Network.hi
189 src/INRules.o : src/INRules.hs
190 src/INRules.o : src/InfoKind.hi
191 src/INRules.o : src/INRule.hi
192 src/Document.o : src/Document.hs
193 src/Document.o : src/Palette.hi
194 src/Document.o : src/INRules.hi
195 src/Document.o : src/Network.hi
196 src/Document.o : src/Palette.hi
197 src/Document.o : src/Ports.hi
198 src/Document.o : src/Math.hi
199 src/Document.o : src/InfoKind.hi
200 src/Document.o : src/INRules.hi
201 src/Document.o : src/INRule.hi
202 src/Document.o : src/Network.hi
203 src/NetworkView.o : src/NetworkView.hs
204 src/NetworkView.o : src/InfoKind.hi
205 src/NetworkView.o : src/DisplayOptions.hi
206 src/NetworkView.o : src/Shape.hi
207 src/NetworkView.o : src/Math.hi
208 src/NetworkView.o : src/Ports.hi
209 src/NetworkView.o : src/Palette.hi
210 src/NetworkView.o : src/Common.hi
211 src/NetworkView.o : src/Colors.hi
212 src/NetworkView.o : src/Document.hi
213 src/NetworkView.o : src/Network.hi
214 src/NetworkView.o : src/CommonIO.hi
215 src/NetworkView.o : src/Constants.hi
216 src/DocumentFile.o : src/DocumentFile.hs
217 src/DocumentFile.o : src/NetworkFile.hi
218 src/DocumentFile.o : src/InfoKind.hi
219 src/DocumentFile.o : src/INRule.hi
220 src/DocumentFile.o : src/Ports.hi
221 src/DocumentFile.o : src/Shape.hi
222 src/DocumentFile.o : src/Palette.hi
223 src/DocumentFile.o : src/Document.hi
224 src/INReductionStrategies.o : src/INReductionStrategies.hs
225 src/INReductionStrategies.o : src/Palette.hi
226 src/INReductionStrategies.o : src/INRule.hi
227 src/INReductionStrategies.o : src/Network.hi
228 src/INReductionStrategies.o : src/Document.hi
229 src/INTextual.o : src/INTextual.hs
230 src/INTextual.o : src/SpecialSymbols.hi
231 src/INTextual.o : src/InfoKind.hi
232 src/INTextual.o : src/INRule.hi
233 src/INTextual.o : src/INRules.hi
234 src/INTextual.o : src/Common.hi
235 src/INTextual.o : src/Constants.hi
236 src/INTextual.o : src/Palette.hi
237 src/INTextual.o : src/Network.hi
238 src/INTextual.o : src/Document.hi
239 src/INChecks.o : src/INChecks.hs
240 src/INChecks.o : src/SpecialSymbols.hi
241 src/INChecks.o : src/Shape.hi
242 src/INChecks.o : src/Common.hi
243 src/INChecks.o : src/Palette.hi
244 src/INChecks.o : src/INRule.hi
245 src/INChecks.o : src/Ports.hi
246 src/INChecks.o : src/Network.hi
247 src/INChecks.o : src/Document.hi
248 src/State.o : src/State.hs
249 src/State.o : src/DisplayOptions.hi
250 src/State.o : src/PersistentDocument.hi
251 src/State.o : src/Math.hi
252 src/State.o : src/Document.hi
253 src/StateUtil.o : src/StateUtil.hs
254 src/StateUtil.o : src/PersistentDocument.hi
255 src/StateUtil.o : src/Common.hi
256 src/StateUtil.o : src/State.hi
257 src/NetworkControl.o : src/NetworkControl.hs
258 src/NetworkControl.o : src/InfoKind.hi
259 src/NetworkControl.o : src/PersistentDocument.hi
260 src/NetworkControl.o : src/Ports.hi
261 src/NetworkControl.o : src/Shape.hi
262 src/NetworkControl.o : src/Math.hi
263 src/NetworkControl.o : src/CommonIO.hi
264 src/NetworkControl.o : src/Common.hi
265 src/NetworkControl.o : src/INRules.hi
266 src/NetworkControl.o : src/INRule.hi
267 src/NetworkControl.o : src/Document.hi
268 src/NetworkControl.o : src/NetworkView.hi
269 src/NetworkControl.o : src/Network.hi
270 src/NetworkControl.o : src/StateUtil.hi
271 src/NetworkControl.o : src/State.hi
272 src/Operations.o : src/Operations.hs
273 src/Operations.o : src/PersistentDocument.hi
274 src/Operations.o : src/Document.hi
275 src/Operations.o : src/State.hi
276 src/Operations.o : src/Network.hi
277 src/INTextualUI.o : src/INTextualUI.hs
278 src/INTextualUI.o : src/PersistentDocument.hi
279 src/INTextualUI.o : src/State.hi
280 src/INTextualUI.o : src/InfoKind.hi
281 src/INTextualUI.o : src/INTextual.hi
282 src/INTextualUI.o : src/SafetyNet.hi
283 src/INTextualUI.o : src/Operations.hi
284 src/INReduction.o : src/INReduction.hs
285 src/INReduction.o : src/InfoKind.hi
286 src/INReduction.o : src/Common.hi
287 src/INReduction.o : src/Math.hi
288 src/INReduction.o : src/Shape.hi
289 src/INReduction.o : src/Ports.hi
290 src/INReduction.o : src/INRule.hi
291 src/INReduction.o : src/INRules.hi
292 src/INReduction.o : src/SafetyNet.hi
293 src/INReduction.o : src/StateUtil.hi
294 src/INReduction.o : src/State.hi
295 src/INReduction.o : src/PersistentDocument.hi
296 src/INReduction.o : src/Palette.hi
297 src/INReduction.o : src/Document.hi
298 src/INReduction.o : src/NetworkControl.hi
299 src/INReduction.o : src/Network.hi
300 src/INReduction.o : src/INReductionStrategies.hi
301 src/ContextMenu.o : src/ContextMenu.hs
302 src/ContextMenu.o : src/INReduction.hi
303 src/ContextMenu.o : src/InfoKind.hi
304 src/ContextMenu.o : src/Palette.hi
305 src/ContextMenu.o : src/PersistentDocument.hi
306 src/ContextMenu.o : src/Math.hi
307 src/ContextMenu.o : src/CommonIO.hi
308 src/ContextMenu.o : src/SafetyNet.hi
309 src/ContextMenu.o : src/NetworkControl.hi
310 src/ContextMenu.o : src/Document.hi
311 src/ContextMenu.o : src/Network.hi
312 src/ContextMenu.o : src/State.hi
313 src/GUIEvents.o : src/GUIEvents.hs
314 src/GUIEvents.o : src/INReductionStrategies.hi
315 src/GUIEvents.o : src/INReduction.hi
316 src/GUIEvents.o : src/InfoKind.hi
317 src/GUIEvents.o : src/PersistentDocument.hi
318 src/GUIEvents.o : src/ContextMenu.hi
319 src/GUIEvents.o : src/Document.hi
320 src/GUIEvents.o : src/CommonIO.hi
321 src/GUIEvents.o : src/Common.hi
322 src/GUIEvents.o : src/Ports.hi
323 src/GUIEvents.o : src/State.hi
324 src/GUIEvents.o : src/NetworkControl.hi
325 src/GUIEvents.o : src/NetworkView.hi
326 src/CommonUI.o : src/CommonUI.hs
327 src/CommonUI.o : src/SpecialSymbols.hi
328 src/CommonUI.o : src/INChecks.hi
329 src/CommonUI.o : src/Constants.hi
330 src/CommonUI.o : src/InfoKind.hi
331 src/CommonUI.o : src/Math.hi
332 src/CommonUI.o : src/Ports.hi
333 src/CommonUI.o : src/Shape.hi
334 src/CommonUI.o : src/Palette.hi
335 src/CommonUI.o : src/PDDefaults.hi
336 src/CommonUI.o : src/PersistentDocument.hi
337 src/CommonUI.o : src/CommonIO.hi
338 src/CommonUI.o : src/Common.hi
339 src/CommonUI.o : src/INRules.hi
340 src/CommonUI.o : src/INRule.hi
341 src/CommonUI.o : src/Document.hi
342 src/CommonUI.o : src/DocumentFile.hi
343 src/CommonUI.o : src/NetworkView.hi
344 src/CommonUI.o : src/Network.hi
345 src/CommonUI.o : src/StateUtil.hi
346 src/CommonUI.o : src/State.hi
347 src/CommonUI.o : src/SafetyNet.hi
348 src/CommonUI.o : src/GUIEvents.hi
349 src/INChecksUI.o : src/INChecksUI.hs
350 src/INChecksUI.o : src/CommonUI.hi
351 src/INChecksUI.o : src/InfoKind.hi
352 src/INChecksUI.o : src/CommonIO.hi
353 src/INChecksUI.o : src/DocumentFile.hi
354 src/INChecksUI.o : src/SafetyNet.hi
355 src/INChecksUI.o : src/Document.hi
356 src/INChecksUI.o : src/Constants.hi
357 src/INChecksUI.o : src/Common.hi
358 src/INChecksUI.o : src/PersistentDocument.hi
359 src/INChecksUI.o : src/State.hi
360 src/INChecksUI.o : src/INChecks.hi
361 src/Functional/Compiler.o : src/Functional/Compiler.hs
362 src/Functional/Compiler.o : src/Functional/Language.hi
363 src/Functional/Compiler.o : src/CommonUI.hi
364 src/Functional/Compiler.o : src/Common.hi
365 src/Functional/Compiler.o : src/INRules.hi
366 src/Functional/Compiler.o : src/INRule.hi
367 src/Functional/Compiler.o : src/Math.hi
368 src/Functional/Compiler.o : src/Ports.hi
369 src/Functional/Compiler.o : src/Document.hi
370 src/Functional/Compiler.o : src/Shape.hi
371 src/Functional/Compiler.o : src/Palette.hi
372 src/Functional/Compiler.o : src/InfoKind.hi
373 src/Functional/Compiler.o : src/Network.hi
374 src/Functional/UI.o : src/Functional/UI.hs
375 src/Functional/UI.o : src/Functional/Compiler.hi
376 src/Functional/UI.o : src/Functional/Parser.hi
377 src/Functional/UI.o : src/Functional/Language.hi
378 src/Functional/UI.o : src/InfoKind.hi
379 src/Functional/UI.o : src/CommonUI.hi
380 src/Functional/UI.o : src/CommonIO.hi
381 src/Functional/UI.o : src/Common.hi
382 src/Functional/UI.o : src/PersistentDocument.hi
383 src/Functional/UI.o : src/StateUtil.hi
384 src/Functional/UI.o : src/State.hi
385 src/NetworkUI.o : src/NetworkUI.hs
386 src/NetworkUI.o : src/Functional/UI.hi
387 src/NetworkUI.o : src/CommonUI.hi
388 src/NetworkUI.o : src/INChecksUI.hi
389 src/NetworkUI.o : src/INReduction.hi
390 src/NetworkUI.o : src/Operations.hi
391 src/NetworkUI.o : src/Constants.hi
392 src/NetworkUI.o : src/DisplayOptions.hi
393 src/NetworkUI.o : src/InfoKind.hi
394 src/NetworkUI.o : src/PDDefaults.hi
395 src/NetworkUI.o : src/PersistentDocument.hi
396 src/NetworkUI.o : src/CommonIO.hi
397 src/NetworkUI.o : src/Common.hi
398 src/NetworkUI.o : src/INRule.hi
399 src/NetworkUI.o : src/Document.hi
400 src/NetworkUI.o : src/Network.hi
401 src/NetworkUI.o : src/StateUtil.hi
402 src/NetworkUI.o : src/State.hi
403 src/NetworkUI.o : src/SafetyNet.hi
404 src/Main.o : src/Main.hs
405 src/Main.o : src/CommonUI.hi
406 src/Main.o : src/INChecksUI.hi
407 src/Main.o : src/SafetyNet.hi
408 src/Main.o : src/INTextualUI.hi
409 src/Main.o : src/INTextual.hi
410 src/Main.o : src/PersistentDocument.hi
411 src/Main.o : src/Operations.hi
412 src/Main.o : src/Network.hi
413 src/Main.o : src/InfoKind.hi
414 src/Main.o : src/State.hi
415 src/Main.o : src/NetworkUI.hi
416 # DO NOT DELETE: End of Haskell dependencies