File: Makefile.am

package info (click to toggle)
cuyo 2.0.0brl1-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 15,504 kB
  • sloc: cpp: 11,728; ml: 5,515; sh: 1,179; makefile: 756; yacc: 558; awk: 355; lex: 244; perl: 193
file content (718 lines) | stat: -rw-r--r-- 29,587 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
MAINTAINERCLEANFILES = Makefile.in
CLEANFILES = $(addprefix genpics/, $(images_generated)) summary.ld genpics/.stamp compressed/.stamp
MOSTLYCLEANFILES =

levels_berni =
levels_berniandjela =
levels_brl =
levels_immi =
levels_jela =
levels_mark =
levels_simon =
levels_konrad =
unused_levels =
ocaml_programs =

# order matters!
ocaml_libraries = pam natmod vektor farbe xpmlex helfer graphik polynome vektorgraphik easyarg gen_common
ocaml_headers = $(addsuffix .cmi,$(ocaml_libraries))

ocaml_programs += highlight
genpics/highlight.xpm: highlight.$(mlrun) | genpics/.stamp
	./$< -o $@ 32

images_generated = highlight.xpm $(foreach level, $(basename $(levels)), $($(level)_pics_gen))
images_static = $(foreach level, $(basename $(levels)), $($(level)_pics_static))
images_source = $(foreach level, $(basename $(levels)), $($(level)_pics_src))
# ignore in warnings about unused .xpm files:
maybe_unused_images = $(foreach level, $(basename $(unused_levels)), $($(level)_pics_gen)) \
 $(foreach level, $(basename $(unused_levels)), $($(level)_pics_static)) \
 $(foreach level, $(basename $(unused_levels)), $($(level)_pics_src))
# TODO: report those to upstream
images_ignored = baEmpty.xpm btExplosion.xpm ieGras2.xpm ieGras3.xpm ieGras4.xpm iePiramide.xpm mdSchwarz.xpm itLeer.xpm iwBaum3.xpm testOberschnee.xpm testSchema5.xpm

levels = $(levels_immi) $(levels_berni) $(levels_berniandjela) $(levels_jela) $(levels_mark) $(levels_brl) $(levels_simon) $(levels_konrad)
level_lds = $(patsubst %.m4,%.ld,$(levels))
unused_level_lds = $(patsubst %.m4,%.ld,$(unused_levels))

levels_immi += 3d.ld
images_ignored += i3Boden.xpm i3Feder.xpm i3Nix.xpm i3SirpinskiB.xpm i3Sirpinski.xpm
3d_pics_static = i3Stange.xpm i3Kugel.xpm i3Gitter.xpm i3Quadrat.xpm i3Kreis.xpm i3Dreieck.xpm i3Stern.xpm
3d_pics_src = i3Dreieck.xcf i3Kugel.xcf i3Stange.xcf i3Gitter.xcf i3Quadrat.xcf i3Stern.xcf i3Kreis.xcf i3Sirpinski.xcf
3d_pics_gen =
3d_snds =

levels_mark += aehnlich.ld
aehnlich_pics_static = maeSchema.xpm
aehnlich_pics_gen = maeSorten.xpm
aehnlich_pics_src = maeBall.xpm maeSorten.gen
genpics/maeSorten.xpm: pics/maeBall.xpm
aehnlich_snds =

levels_berni += aliens.ld
aliens_pics_static = bpStein.xpm baRaumschiff.xpm baAnzeige.xpm baPower.xpm baRed.xpm baGreen.xpm baBlue.xpm baYellow.xpm baSchuss.xpm explosion.xpm baWarnship.xpm baAliens.xpm bpPingu.xpm
aliens_pics_gen =
aliens_pics_src =
aliens_snds =

levels_mark += angst.ld
angst_pics_static =
angst_pics_gen = manKoepfe1.xpm manKoepfe2.xpm manKoepfe3.xpm manKoepfe4.xpm manKoepfe5.xpm manKoepfe6.xpm manKoepfe7.xpm manGesichter1.xpm manGesichter2.xpm manGesichter3.xpm manGesichter4.xpm manGesichter5.xpm manGesichter6.xpm manGesichter7.xpm manGras.xpm manGrau.xpm
angst_pics_src =
angst_snds =
ocaml_programs += gen_angst
$(addprefix genpics/,$(angst_pics_gen)): genpics/man%.xpm: gen_angst.$(mlrun) | genpics/.stamp
	./$< -o $@ 32 man$*

levels_berni += antarctic.ld
antarctic_pics_static = bpStein.xpm bpEis.xpm bpFreezePingu.xpm bpFreezeIglu.xpm bpFreezeSchnee.xpm bpIglu.xpm bpSchnee.xpm bpPingu.xpm bpPinguA.xpm bpPinguB.xpm bpPinguC.xpm bpPinguD.xpm bpPinguE.xpm bpPinguF.xpm bpPinguG.xpm bpPinguH.xpm bpPinguI.xpm bpPinguJ.xpm bpPinguK.xpm bpPinguL.xpm bpPinguM.xpm bpPinguN.xpm bpPinguO.xpm bpPinguP.xpm bpPinguJong.xpm bpPinguFall.xpm
antarctic_pics_gen =
antarctic_pics_src =
antarctic_snds =

levels_immi += ascii.ld
images_ignored += iaSchrift.xpm
ascii_pics_static = iaApple.xpm iaError.xpm iaGrau.xpm iaBefehl.xpm iaAusdruck.xpm iaString.xpm iaZahl.xpm iaZeug.xpm
ascii_pics_gen =
ascii_pics_src =
ascii_snds =

levels_mark += augen.ld
augen_pics_static = maUnten.xpm
augen_pics_gen = maLeer.xpm ma1.xpm ma2.xpm ma3.xpm ma4.xpm ma5.xpm maLidA.xpm maLidB.xpm maLidC.xpm maLidD.xpm
augen_pics_src =
ocaml_programs += gen_augen
$(addprefix genpics/,$(augen_pics_gen)): genpics/ma%.xpm: gen_augen.$(mlrun) | genpics/.stamp
	./$< -o $@ 32 ma$*
augen_snds =

levels_immi += baelle.ld
baelle_pics_static = ibBaelle.xpm ibGrauball.xpm ibKegelPink.xpm ibKegelGelb.xpm ibBaelle2.xpm
baelle_pics_src =
baelle_pics_gen =
baelle_snds =

levels_mark += baender.ld
baender_pics_static = mbaBand1.xpm mbaBand2.xpm mbaBand3.xpm mbaBand4.xpm mbaBand5.xpm mbaBasis.xpm mbaGras.xpm mbaGrau.xpm mbaHinter2.xpm mbaHinter.xpm
baender_pics_src =
baender_pics_gen =
baender_snds =

levels_simon += baggis.ld
baggis_pics_static = sbOfen.xpm sbSunglas.xpm sbBlitz.xpm sbKaese.xpm sbKaeseB.xpm sbKaeseS.xpm sbKaeseSB.xpm sbBrezel.xpm sbBrezelB.xpm sbBrezelS.xpm sbBrezelSB.xpm sbBurger.xpm sbBurgerB.xpm sbBurgerS.xpm sbBurgerSB.xpm sbBroetchen.xpm sbBroetchenB.xpm sbBroetchenS.xpm sbBroetchenSB.xpm sbBlitzer.xpm explosion.xpm
baggis_pics_src =
baggis_pics_gen =
baggis_snds =

levels_mark += bonimali.ld
bonimali_pics_static = mbmEnergie.xpm mbmFeind.xpm mbmBoss.xpm mbmGras.xpm mbmSprites.xpm mbmSterne12.xpm mbmSterne4.xpm mbmGrauSrc.xpm
bonimali_pics_gen = mbmGrauGras.xpm mbmGrauJoker.xpm mbmKettenUhr.xpm mbmKetten.xpm mbmKurzUhr.xpm mbmKurz.xpm mbmLangsamUhr.xpm mbmLangsam.xpm mbmLangUhr.xpm mbmLang.xpm mbmMinusUhr.xpm mbmMinus.xpm mbmOctiUhr.xpm mbmOcti.xpm mbmPunkte.xpm mbmRaketen.xpm mbmSchnellUhr.xpm mbmSchnell.xpm mbmUnunterscheidbarUhr.xpm mbmUnunterscheidbar.xpm mbmVerschwind.xpm mbmLeben.xpm
bonimali_pics_src = mbmGrauSrc.xpm
ocaml_programs += gen_bonimali
$(addprefix genpics/,$(bonimali_pics_gen)): genpics/mbm%.xpm: gen_bonimali.$(mlrun) $(srcdir)/pics/mbmGras.xpm $(srcdir)/pics/mbmGrauSrc.xpm | genpics/.stamp
	./$< -i $(srcdir)/pics -o $@ 32 mbm$*
bonimali_snds =

levels_berni += bonus.ld
bonus_pics_static = bbBonus.xpm
bonus_pics_src =
bonus_pics_gen =
bonus_snds =

levels_mark += breakout.ld
breakout_pics_static = mbrSchlaeger.xpm mbrStein.xpm mbrBall2.xpm mbrBall4.xpm
breakout_pics_src =
breakout_pics_gen =
breakout_snds =

# levels_mark += bunt.ld

levels_berni += colorshape.ld
colorshape_pics_static = bcEmpty1.xpm bcEmpty2.xpm bcOrange.xpm bcBack.xpm bcSechseck.xpm bcShapes.xpm
colorshape_pics_src =
colorshape_pics_gen =
colorshape_snds =

levels_brl += darken.ld
darken_pics_static = dnGray.xpm dnBlack2.xpm dnBlack.xpm dnGreen1.xpm dnGreen2.xpm dnGreen3.xpm dnBlue.xpm dnBlue2.xpm dnBlue3.xpm dnRed1.xpm dnRed2.xpm dnRed3.xpm
darken_pics_src =
darken_pics_gen =
darken_snds =

levels_berni += disco.ld
disco_pics_static = bddisco.xpm
disco_pics_src =
disco_pics_gen =
disco_snds =

levels_immi += doors.ld
doors_pics_static = ilKlavier.xpm ilBlase.xpm ilVogelL.xpm ilVogelR.xpm ilTuer.xpm ilDing.xpm ilElefant.xpm ilRolefant.xpm ilElefant2.xpm ilRolefant2.xpm ilVogelL.xpm ilVogelR.xpm
doors_pics_src =
doors_pics_gen =
doors_snds =

levels_immi += ebene.ld
ebene_pics_static = ieUnten.xpm ieOben.xpm ieNix.xpm ieGrau.xpm ieGras.xpm ieGelb.xpm ieRosa.xpm ieRot.xpm ieGruen.xpm
ebene_pics_src =
ebene_pics_gen =
ebene_snds =

levels_brl += elemente.ld
elemente_pics_static = elBlue.xpm elRed.xpm elYellow.xpm elGreen.xpm elGray.xpm elBlack.xpm
elemente_pics_src =
elemente_pics_gen =
elemente_snds =

levels_jela += embroidery.ld
embroidery_pics_static = jsBgStoff.xpm jsGelbFlach.xpm jsGrauLoch.xpm jsGruenGras.xpm jsHetzbalken.xpm jsOrangeKetten_5.xpm jsOrangeKreuz_2.xpm jsRotHexen_2.xpm
embroidery_pics_src =
embroidery_pics_gen =
embroidery_snds =

levels_brl += explosive.ld
explosive_pics_static = lbGray.xpm lbBlack.xpm lbBomb.xpm
explosive_pics_src =
explosive_pics_gen =
explosive_snds =

levels_mark += flechtwerk.ld
flechtwerk_pics_static =
flechtwerk_pics_src =
flechtwerk_pics_gen = mflAlles.xpm mflGrasV.xpm mflKlein.xpm
flechtwerk_snds =
ocaml_programs += gen_flechtwerk
$(addprefix genpics/,$(flechtwerk_pics_gen)): genpics/mfl%.xpm: gen_flechtwerk.$(mlrun) | genpics/.stamp
	./$< -o $@ 32 mfl$*

levels_mark += fische.ld
fische_pics_static =
fische_pics_src =
fische_pics_gen = mffisch1.xpm mffisch2.xpm mffisch3.xpm mffisch4.xpm mffisch5.xpm mffisch6.xpm mfmuschel.xpm mfqualle.xpm
fische_snds =
ocaml_programs += gen_fische
$(addprefix genpics/,$(fische_pics_gen)): genpics/%.xpm: gen_fische.$(mlrun) | genpics/.stamp
	./$< -o $@ 32 $*

levels_mark += go2.ld
go2_pics_static = igGo.xpm igSchwarz.xpm igWeiss.xpm mgRand.xpm
go2_pics_src =
go2_pics_gen =
go2_snds =

levels_mark += gold.ld
gold_pics_static = mgsGold.xpm
gold_pics_src =
gold_pics_gen =
gold_snds =

unused_levels += ghosts.ld
ghosts_pics_static = bgMenA.xpm bgMenB.xpm bgMenC.xpm bgGhostA.xpm bgGhostB.xpm bgGhostC.xpm bgStein.xpm bgEis.xpm
ghosts_pics_src =
ghosts_pics_gen =
ghosts_snds =

levels_immi += hecken.ld
hecken_pics_static = mihGarten.xpm mihLoch.xpm mihStein.xpm
hecken_pics_src =
hecken_pics_gen =
hecken_snds =

levels_immi += hexkugeln.ld
hexkugeln_pics_static = i6Weiss.xpm i6Gelb.xpm i6Rot.xpm i6Blau.xpm i6Lila.xpm i6Hintergrund.xpm i6Oben.xpm i6Grau.xpm i6Gross1.xpm i6Gross2.xpm i6Gross3.xpm
hexkugeln_pics_gen =
hexkugeln_pics_src =
hexkugeln_snds =

levels_jela += himmel.ld
images_ignored += jhGraueWolken.xpm
himmel_pics_static = jhHelleWolken.xpm jhDrachensteigen.xpm jhBallons.xpm jhSonne.xpm jhGraueWolke.xpm jhLandschaft.xpm jhBlitz.xpm jhBlitz_anim.xpm jhVoegel.xpm jhVoegel_ani1.xpm jhVoegel_ani2.xpm jhVoegel_ani3.xpm jhVoegel_ani4.xpm jhVoegel_ani5.xpm jhVoegel_ani6.xpm jhVoegel_ani7.xpm
himmel_pics_src =
himmel_pics_gen =
himmel_snds =

levels_immi += hormone.ld
hormone_pics_static = ihRot.xpm ihGruen.xpm ihBlau.xpm ihLila.xpm ihBunt.xpm ihGrau.xpm
hormone_pics_src =
hormone_pics_gen =
hormone_snds =

levels_jela += jahreszeiten.ld
jahreszeiten_pics_static = jjErde.xpm jjExtra.xpm jjGrau.xpm jjWinter1.xpm jjWinter2.xpm jjWinter3.xpm jjWinter4.xpm jjFruehling1.xpm jjFruehling2.xpm jjFruehling3.xpm jjFruehling4.xpm jjSommer1.xpm jjSommer2.xpm jjSommer3.xpm jjSommer4.xpm jjHerbst1.xpm jjHerbst2.xpm jjHerbst3.xpm jjHerbst4.xpm jjWinter1e.xpm
jahreszeiten_pics_src = jjBasis.xpm
jahreszeiten_pics_gen =
jahreszeiten_snds =

levels_mark += jump.ld
jump_pics_static = mjPlattform.xpm mjNaegel.xpm
jump_pics_src = mjZeug.src.xpm
jump_pics_gen = mjZeugRed.xpm mjZeugYellow.xpm mjZeugGreen.xpm mjZeugBlue.xpm mjZeugPurple.xpm mjZeugWhite.xpm
jump_snds =

levels_mark += kacheln4.ld
kacheln4_pics_static =
kacheln4_pics_src =
kacheln4_pics_gen = mkaViereckRahmen.xpm mkaViereckKacheln.xpm mkaViereckFall.xpm
kacheln4_snds =

levels_mark += kacheln5.ld
kacheln5_pics_static =
kacheln5_pics_src =
kacheln5_pics_gen = mkaFuenfeckRahmen.xpm mkaFuenfeckKacheln.xpm mkaFuenfeckFall.xpm mkaFuenfeckHetz.xpm
# this image takes longer than all the rest together, so start it as early
# as possible to use all available processors.
build_early_hack = mkaFuenfeckHetz.xpm
kacheln5_snds =

levels_mark += kacheln6.ld
kacheln6_pics_static =
kacheln6_pics_src =
kacheln6_pics_gen = mkaSechseckKacheln.xpm mkaSechseckRahmen.xpm
kacheln6_snds =

levels_mark += kachelnR.ld
kachelnR_pics_static =
kachelnR_pics_src =
kachelnR_pics_gen = mkaRhombusKacheln.xpm mkaRhombusLeer.xpm mkaRhombusFall.xpm
kachelnR_snds =

ocaml_programs += gen_kacheln
genpics/mka%.xpm: gen_kacheln.$(mlrun) | genpics/.stamp
	./$< -o $@ 32 mka$*

levels_mark += kolben.ld
kolben_pics_static =
kolben_pics_src = mkKolben.src.xpm
kolben_pics_gen = mkKolbenBlack.xpm mkKolbenRed.xpm mkKolbenGreen.xpm mkKolbenBlue.xpm mkKolbenBlack.xpm
kolben_snds =

levels_immi += kunst.ld
kunst_pics_static = ibkRahmen.xpm ibkTintenfleck.xpm ibkBunt.xpm ibkGruen.xpm ibkRot.xpm ibkSchnecken.xpm ibkWolkig.xpm ibkBG.xpm
kunst_pics_src = ibkWolkig.xcf
kunst_pics_gen =
kunst_snds =

levels_mark += labskaus.ld
labskaus_pics_static = jhBallons.xpm ivElefant.xpm bmKarten.xpm bmStrich.xpm jjWinter1.xpm jjWinter2.xpm jjWinter3.xpm jjWinter4.xpm jjFruehling1.xpm jjFruehling2.xpm jjFruehling3.xpm jjFruehling4.xpm jjSommer1.xpm jjSommer2.xpm jjSommer3.xpm jjSommer4.xpm jjHerbst1.xpm jjHerbst2.xpm jjHerbst3.xpm jjHerbst4.xpm ibBaelle.xpm ibBaelle2.xpm inGras.xpm
labskaus_pics_src =
labskaus_pics_gen =
# mbBunt.xpm mpAlle.xpm
labskaus_snds =

unused_levels += laser.ld
laser_pics_static = blaStart.xpm blaGray.xpm blaEmpty.xpm blaMirror.xpm
laser_pics_src =
laser_pics_gen =
laser_snds =

levels_berni += letters.ld
letters_pics_static = blFragezeichen.xpm blFeld.xpm blTop.xpm blBuchstabe.xpm blLeer.xpm blMark.xpm
letters_pics_src =
letters_pics_gen =
letters_snds =

levels_mark += maennchen.ld
maennchen_pics_static = mmGrasgrau.xpm mmBlau.xpm mmRot.xpm mmGelb.xpm
maennchen_pics_src =
maennchen_pics_gen =
maennchen_snds =

levels_mark += maze.ld
maze_pics_static = mlTop.xpm mlHinter.xpm mlSorte1.xpm mlSorte2.xpm mlSorte3.xpm mlSorte4.xpm mlSorte5.xpm mlSorte6.xpm mlGras.xpm mlGrau.xpm
maze_pics_src =
maze_pics_gen =
maze_snds =

levels_berni += memory.ld
memory_pics_static = bmTisch.xpm bmKarten.xpm bmStrich.xpm
memory_pics_src =
memory_pics_gen =
memory_snds =

levels_konrad += mfs.ld
mfs_pics_static = kmBier.xpm kmMuell.xpm kmSofa.xpm kmTasse.xpm kmHetzstapel.xpm kmPizza.xpm kmTafelgrund.xpm
mfs_pics_src =
mfs_pics_gen =
mfs_snds =

levels_immi += nasenkugeln.ld
nasenkugeln_pics_static = inGruen.xpm inGruen1.xpm inGruen2.xpm inGelb.xpm inGelb1.xpm inGelb2.xpm inSchwarz.xpm inSchwarz2.xpm inRosaNasen.xpm inRosaNasen1.xpm inRosaNasen2.xpm inOrangeNasen.xpm inOrangeNasen1.xpm inOrangeNasen2.xpm inGras.xpm inGrau.xpm
nasenkugeln_pics_src =
nasenkugeln_pics_gen =
nasenkugeln_snds =

unused_levels += noten.ld
images_ignored += onNote3.xpm onNote3b.xpm onNote3c.xpm
noten_pics_static = onNote1.xpm onNote1b.xpm onNote1c.xpm onNote1d.xpm onNote1e.xpm onNote1f.xpm onNote1g.xpm onNote1h.xpm onNote2.xpm onNote2b.xpm onNote2c.xpm onNote2d.xpm onNote2e.xpm onNote2f.xpm onNote2g.xpm onNote2h.xpm onStein.xpm
noten_pics_src =
noten_pics_gen =
noten_snds =

levels_mark += novips.ld
novips_pics_static =
novips_pics_src = mnv.src.xpm
novips_pics_gen = mnvRed.xpm mnvYellow.xpm mnvGreen.xpm mnvCyan.xpm mnvBlue.xpm mnvPurple.xpm
novips_snds =

levels_mark += octopi.ld
octopi_pics_static =
octopi_pics_src =
octopi_pics_gen = moOctopus1.xpm moOctopus2.xpm moOctopus3.xpm moOctopus4.xpm moOctopus5.xpm moAnemone.xpm moFisch.xpm
ocaml_programs += gen_octopi
gen_octopi.$(mlo): farbe.cmi graphik.cmi vektorgraphik.cmi
$(addprefix genpics/,$(octopi_pics_gen)): genpics/%.xpm: gen_octopi.$(mlrun) | genpics/.stamp
	./$< -o $@ 32 $*
octopi_snds =

levels_simon += pacman.ld
pacman_pics_static = spBlinky.xpm spClyde.xpm spEyes.xpm spGhost.xpm spInkey.xpm spLabyrinth.xpm spPacman10.xpm spPacman11.xpm spPacman2.xpm spPacman3.xpm spPacman4.xpm spPacman5.xpm spPacman6.xpm spPacman7.xpm spPacman8.xpm spPacman9.xpm spPacman.xpm spPfeil.xpm spPinky.xpm
pacman_pics_src =
pacman_pics_gen =
pacman_snds =

levels_brl += paratroopers.ld
paratroopers_pics_static = ltSky.xpm ltGray.xpm ltCannon.xpm ltParatrooper.xpm
paratroopers_pics_src =
paratroopers_pics_gen =
paratroopers_snds =

levels_immi += pfeile.ld
pfeile_pics_static = ipOben.xpm ipStart.xpm ipGrau.xpm ipHoch.xpm ipRechts.xpm ipRunter.xpm ipLinks.xpm ipHochRunter.xpm ipLinksRechts.xpm
pfeile_pics_src =
pfeile_pics_gen =
pfeile_snds =

levels_mark += puzzle.ld
puzzle_pics_static =
puzzle_pics_gen = mpAlle.xpm
puzzle_pics_src =
puzzle_snds =
ocaml_programs += gen_puzzle
gen_puzzle.$(mlo): farbe.cmi graphik.cmi vektorgraphik.cmi
genpics/mpAlle.xpm: gen_puzzle.$(mlrun) | genpics/.stamp
	./$< -o $@ 32 mpAlle

levels_mark += rechnen.ld
rechnen_pics_static = mreGrasgrau.xpm
rechnen_pics_src = mre.src.xpm
rechnen_pics_gen = mreBlack.xpm mreRed.xpm mreBlue.xpm
rechnen_snds =

levels_brl += reversi_brl.m4
CLEANFILES += reversi_brl.ld
reversi_brl_pics_static =
reversi_brl_pics_src =
reversi_brl_pics_gen =
reversi_brl_snds =

levels_brl += rohre.ld
rohre_pics_static = lrWasser.xpm lrWasserH.xpm lrWasserRH.xpm lrEis.xpm lrKamin.xpm lrOfen.xpm
rohre_pics_src = lrKamin.xcf lrWasser.xcf
rohre_pics_gen =
rohre_snds =

levels_brl += pressure.ld
pressure_pics_static = lpStart.xpm
pressure_pics_src = lp.src.xpm pressure.xcf
pressure_pics_gen = lpWhite.xpm lpRed.xpm lpGreen.xpm lpYellow.xpm
pressure_snds =

levels_mark += rollenspiel.ld
rollenspiel_pics_static =
rollenspiel_pics_src =
rollenspiel_pics_gen = mrpAlle.xpm
rollenspiel_snds =
ocaml_programs += gen_rollenspiel
genpics/mrpAlle.xpm: gen_rollenspiel.$(mlrun) | genpics/.stamp
	./$< -o $@ 32 mrpAlle

levels_immi += schach.ld
schach_pics_static = isBrett.xpm isBrettrand.xpm isVerbindung.xpm isWeiss.xpm isSchwarz.xpm isBauerSchwarz.xpm isBauerWeiss.xpm isTurmSchwarz.xpm isTurmWeiss.xpm isSpringerSchwarz.xpm isSpringerWeiss.xpm isLaeuferSchwarz.xpm isLaeuferWeiss.xpm isDameSchwarz.xpm isDameWeiss.xpm
schach_pics_src =
schach_pics_gen =
schach_snds =

levels_mark += schemen.ld
schemen_pics_static = msc1A.xpm msc1B.xpm msc1C.xpm msc2.xpm msc3.xpm msc4.xpm msc5.xpm mscGrasGrau.xpm mscHetz.xpm mscNix.xpm
schemen_pics_src =
schemen_pics_gen = mscHinter.xpm mscLeer.xpm mscVerbind.xpm
ocaml_programs += gen_schemen
$(addprefix genpics/,$(schemen_pics_gen)): genpics/msc%.xpm: gen_schemen.$(mlrun) | genpics/.stamp
	./$< -o $@ 32 msc$*
schemen_snds =

unused_levels += schiefeebene.ld
schiefeebene_pics_static = bsStart.xpm bsGray.xpm bsStart.xpm bsBlue.xpm bsRed.xpm bsGreen.xpm bsYellow.xpm
schiefeebene_pics_src =
schiefeebene_pics_gen =
schiefeebene_snds =

levels_mark += secret.ld
secret_pics_static =
secret_pics_src =
secret_pics_gen = mseGG.xpm mseKind.xpm
ocaml_programs += gen_secret
$(addprefix genpics/,$(secret_pics_gen)): genpics/mse%.xpm: gen_secret.$(mlrun) | genpics/.stamp
	./$< -o $@ 32 mse$*
secret_snds =

levels_mark += silbergold.ld
silbergold_pics_static = mgsWeiss.xpm mgsSilber.xpm mgsGold.xpm mgsSilberGold.xpm mgsGoldSilber.xpm mgsBasis.xpm mgsGoldVerbind.xpm mgsSilberVerbind.xpm
silbergold_pics_src =
silbergold_pics_gen =
silbergold_snds =

# levels_mark += slime.ld
# slime_pics_static =
# slime_pics_src =
# slime_pics_gen =
# slime_snds = slime1.wav slime2.wav

levels_brl += springer.ld
springer_pics_static = isVerbindung.xpm ispBeige.xpm ispBraun.xpm ispGrau.xpm ispGraubraun.xpm ispOrange.xpm ispRest.xpm ispSchwarz.xpm ispWeiss.xpm
springer_pics_src =
springer_pics_gen =
springer_snds =

levels_mark += tennis.ld
tennis_pics_static =
tennis_pics_src =
ocaml_programs += gen_tennis
tennis_pics_gen = mtWall.xpm mtRacket.xpm mtSource.xpm $(foreach c, Blue Green Grey Yellow, mt$cOut.xpm mt$cBounce.xpm mt$cLeft.xpm mt$cRight.xpm) mtRoof1.xpm mtRoof2.xpm mtRoof3.xpm mtRoof4.xpm
tennis_snds =

$(addprefix genpics/,$(tennis_pics_gen)): genpics/mt%.xpm: gen_tennis.$(mlrun) | genpics/.stamp
	./$< -o $@ 32 mt$*

levels_berni += tetris.ld
tetris_pics_static = btScore.xpm btGrey.xpm btTetris.xpm
tetris_pics_src =
tetris_pics_gen =
tetris_snds =

levels_immi += theater.ld
theater_pics_static = ithVorhang.xpm ithSitz.xpm ithGruen.xpm ithGruenL.xpm ithGruenR.xpm ithGruenV.xpm ithGruenH.xpm ithGruenBlah.xpm ithGelb.xpm ithGelbL.xpm ithGelbR.xpm ithGelbV.xpm ithGelbH.xpm ithGelbBlah.xpm  ithOrange.xpm ithOrangeL.xpm ithOrangeR.xpm ithOrangeV.xpm ithOrangeH.xpm ithOrangeBlah.xpm ithRosa.xpm ithRosaL.xpm ithRosaR.xpm ithRosaV.xpm ithRosaH.xpm ithRosaBlah.xpm ithRot.xpm ithRotL.xpm ithRotR.xpm ithRotV.xpm ithRotH.xpm ithRotBlah.xpm  ithBlau.xpm ithBlauL.xpm ithBlauR.xpm ithBlauV.xpm ithBlauH.xpm ithBlauBlah.xpm ithDreckExpl.xpm ithDreck1.xpm ithDreck2.xpm ithDreck3.xpm
theater_pics_src =
theater_pics_gen =
theater_snds =

levels_immi += tiere.ld
tiere_pics_static = itHintergrund.xpm itBlau.xpm itGelb.xpm itGruen.xpm itGrau.xpm itGras.xpm
tiere_pics_src =
tiere_pics_gen =
tiere_snds =

levels_mark += trees.ld
trees_pics_static = mtrGras.xpm mtrGrau.xpm
trees_pics_src = mtr.src.xpm
trees_pics_gen = mtr1.xpm mtr2.xpm mtr3.xpm mtr4.xpm mtr5.xpm
trees_snds =
$(addprefix genpics/,$(trees_pics_gen)): genpics/mtr%.xpm: pics/mtr.src.xpm | genpics/.stamp
	sed -e 's/c #ff0000/c #$(MTR_1_$*)/' -e 's/c #ff8080/c #$(MTR_2_$*)/' $< > $@
MTR_1_1 = FFC080
MTR_2_1 = FF8000
MTR_1_2 = 80E080
MTR_2_2 = 00C000
MTR_1_3 = 8080FF
MTR_2_3 = 0000FF
MTR_1_4 = C080FF
MTR_2_4 = 8000FF
MTR_1_5 = C0C0C0
MTR_2_5 = 808080
MTR_1_6 = 808080
MTR_2_6 = 000000

levels_mark += unmoeglich.ld
images_ignored += m6Ganzdick.xpm m6Mittel.xpm
unmoeglich_pics_static = m6Top.xpm m6Hintergrund.xpm m6Gras.xpm m6Grau.xpm m6Dick.xpm m6Duenn.xpm m6Ganzduenn.xpm
unmoeglich_pics_src =
unmoeglich_pics_gen =
unmoeglich_snds =

levels_immi += unterwasser.ld
unterwasser_pics_static = ibwWellen.xpm ibwSchuh.xpm ibwBlaeschen.xpm ibwTintenfisch.xpm ibwFisch.xpm ibwPlankton.xpm ibwAlgen.xpm ibwMuschel.xpm
unterwasser_pics_src =
unterwasser_pics_gen =
unterwasser_snds =

levels_immi += viecher.ld
viecher_pics_static = ivBerge.xpm ivFeuer1.xpm ivFeuer2.xpm ivFeuer3.xpm ivFeuer4.xpm ivFeuer5.xpm ivFeuer6.xpm ivFeuer7.xpm ivFeuer8.xpm ivStein.xpm ivTintenfisch.xpm ivDrachen.xpm ivElefant.xpm ivVulkan.xpm ivVulkan2.xpm ivVulkan3.xpm ivVulkan4.xpm ivVulkan5.xpm ivVulkan6.xpm ivVulkan7.xpm ivVulkan8.xpm ivVulkan9.xpm
viecher_pics_src =
viecher_pics_gen =
viecher_snds =

levels_immi += wachsen.ld
wachsen_pics_static = iwKreis.xpm iwQuadrat.xpm iwRaute.xpm iwErde.xpm iwBaum2.xpm iwBaum.xpm
wachsen_pics_src =
wachsen_pics_gen =
wachsen_snds =

levels_immi += walls.ld
walls_pics_static = iwaBad.xpm iwaParkett.xpm iwaTeppich.xpm iwaBeton.xpm iwaObjekte.xpm iwaNix.xpm
walls_pics_src = iwaAlles.xcf
walls_pics_gen =
walls_snds =

levels_brl += wohnungen.ld
wohnungen_pics_static = lwRed.xpm lwGreen.xpm lwRolladen.xpm lwGray.xpm lwBroken.xpm lwDach.xpm
wohnungen_pics_src =
wohnungen_pics_gen =
wohnungen_snds =

levels_immi += wuerfel.ld
wuerfel_pics_static = itrVorderrand.xpm itrBraun.xpm itrBlau.xpm itrGruen.xpm itrLila.xpm itrGrau.xpm
wuerfel_pics_src =
wuerfel_pics_gen =
wuerfel_snds =

levels_berniandjela += xtradick.ld
xtradick_pics_static = blFragezeichen.xpm bxBaer32.xpm bxBaer40.xpm bxBaer48.xpm bxBaer56.xpm bxBaer64.xpm bxBaer72.xpm bxBaer80.xpm bxBaer88.xpm bxBaer96.xpm bxBaer104.xpm bxBaer112.xpm bxBaer120.xpm bxBaer128.xpm bxBaer136.xpm bxBaer144.xpm bxBaer152.xpm bxBaer160.xpm bxBall32.xpm bxBall40.xpm bxBall48.xpm bxBall56.xpm bxBall64.xpm bxBall72.xpm bxBall80.xpm bxBall88.xpm bxBall96.xpm bxBall104.xpm bxBall112.xpm bxBall120.xpm bxBall128.xpm bxBall136.xpm bxBall144.xpm bxBall152.xpm bxBall160.xpm bxBuch32.xpm bxBuch40.xpm bxBuch48.xpm bxBuch56.xpm bxBuch64.xpm bxBuch72.xpm bxBuch80.xpm bxBuch88.xpm bxBuch96.xpm bxBuch104.xpm bxBuch112.xpm bxBuch120.xpm bxBuch128.xpm bxBuch136.xpm bxBuch144.xpm bxBuch152.xpm bxBuch160.xpm bxLok32.xpm bxLok40.xpm bxLok48.xpm bxLok56.xpm bxLok64.xpm bxLok72.xpm bxLok80.xpm bxLok88.xpm bxLok96.xpm bxLok104.xpm bxLok112.xpm bxLok120.xpm bxLok128.xpm bxLok136.xpm bxLok144.xpm bxLok152.xpm bxLok160.xpm bxKlotz32.xpm bxKlotz40.xpm bxKlotz48.xpm bxKlotz56.xpm bxKlotz64.xpm bxKlotz72.xpm bxKlotz80.xpm bxKlotz88.xpm bxKlotz96.xpm bxKlotz104.xpm bxKlotz112.xpm bxKlotz120.xpm bxKlotz128.xpm bxKlotz136.xpm bxKlotz144.xpm bxKlotz152.xpm bxKlotz160.xpm blBuchstabe.xpm
xtradick_pics_src =
xtradick_pics_gen =
xtradick_snds =

# levels_mark += zahl.ld
# zahn_pics_static =
# zahn_pics_src =
# zahn_pics_gen =
# zahn_snds =

levels_mark += ziehlen.ld
ziehlen_pics_static = lZiehlen.xpm
ziehlen_pics_src =
ziehlen_pics_gen =
ziehlen_snds =

special_lds = summary.ld globals.ld example.ld
ignored_lds = error.ld slime.ld 3d_m.ld bunt.ld doppel.ld zahn.ld dungeon.ld

# TODO: check those for problems:
INTERNALIMAGES = titel.xpm borderh.xpm borderv.xpm border.xpm dbgZiffern.xpm explosion.xpm font-big.xpm infoicons.xpm menupics.xpm pause.xpm pktZiffern2.xpm pktZiffern.xpm scroll.xpm
# sort removes duplicate items, so install does not complain
IMAGES_TO_DIST = $(INTERNALIMAGES) $(images_static) $(images_source)
SOUNDS_TO_INSTALL = down.wav explode.wav land.wav leftright.wav \
		    levelloose.wav levelwin.wav menuclick.wav menuscroll.wav \
		    turn.wav cuyo.it \
		    $(foreach level, $(basename $(levels)), $($(level)_snds))
SOUNDS_TO_DIST = $(SOUNDS_TO_INSTALL)

if HASLIBZ
INSTALLIMAGES = $(foreach file, $(build_early_hack) $(filter-out $(build_early_hack), $(sort $(INTERNALIMAGES) $(images_generated) $(images_static))), compressed/$(file).gz)
CLEANFILES += $(INSTALLIMAGES)
MOSTLYCLEANFILES += $(addprefix genpics/, $(images_generated))

else
INSTALLIMAGES = $(addprefix pics/, $(sort $(INTERNALIMAGES) $(images_static))) \
                $(addprefix genpics/, $(sort $(images_generated)))
endif
picsdir = $(pkgdatadir)/pics
pics_DATA = pics/semiglobal $(INSTALLIMAGES)
nobase_pkgdata_DATA = $(level_lds) $(special_lds) \
	       $(addprefix sounds/, $(SOUNDS_TO_INSTALL))

# levels gehoeren zur Distribution. Und die Skripte auch. Und die Daten der Level:
EXTRA_DIST = $(levels) globals.ld example.ld genSummary.pl summary.in \
	       pics/semiglobal xpmcombine.awk \
	       $(addprefix pics/, $(IMAGES_TO_DIST)) \
	       $(addprefix sounds/, $(SOUNDS_TO_DIST))

# Same sanity checks:
test_level_variables := $(filter-out %-is-file,$(foreach level, $(basename $(levels)) $(basename $(unused_levels)), $(foreach lvar, pics_static pics_gen pics_src snds,  $(level)_$(lvar)-is-$(origin $(level)_$(lvar)))))
$(if $(test_level_variables),$(warning Level variables missing: $(test_level_variables)))
test_levels_complete := $(filter-out $(special_lds) $(ignored_lds) $(level_lds) $(unused_level_lds), $(notdir $(wildcard $(srcdir)/*.ld)))
$(if $(test_levels_complete),$(warning .ld files in "$(srcdir)/" but not listed in data/Makefile: $(test_levels_complete)))
test_xpm_complete := $(filter-out $(INTERNALIMAGES) $(images_source) $(images_static) $(maybe_unused_images) $(images_ignored), $(notdir $(wildcard $(srcdir)/pics/*.xpm)))
$(if $(test_xpm_complete),$(warning .xpm files in "$(srcdir)/" but not listed in data/Makefile: $(test_xpm_complete)))

%.ld: %.m4
	m4 $< > $@

# make sure the genpics directory exists if we want to store there something:
MOSTLYCLEANFILES += genpics/.stamp compressed/.stamp

genpics/.stamp:
	$(mkdir_p) genpics
	touch genpics/.stamp

compressed/.stamp:
	$(mkdir_p) compressed
	touch compressed/.stamp

compressed/%.xpm.gz: pics/%.xpm | compressed/.stamp
	gzip -c $< > $@
compressed/%.xpm.gz: genpics/%.xpm | compressed/.stamp
	gzip -c $< > $@

# Ein paar spezielle Make-Regeln:
summary.ld: genSummary.pl $(level_lds) summary.in
	perl -w $(srcdir)/genSummary.pl $(srcdir) $(level_lds)

# How to generate images:
genpics/%Red.xpm: pics/%.src.xpm | genpics/.stamp
	cp $< $@
genpics/%Black.xpm: pics/%.src.xpm | genpics/.stamp
	sed -e 's/^"\([^ ]*\) c #[Ff][Ff]\([0-9a-fA-F][0-9a-fA-F]\)\2",$$/"\1 c #\2\2\2",/' $< > $@
genpics/%Blue.xpm: pics/%.src.xpm | genpics/.stamp
	sed -e 's/^"\([^ ]*\) c #[Ff][Ff]\([0-9a-fA-F][0-9a-fA-F]\)\2",$$/"\1 c #\2\2FF",/' \
	    -e 's/^"\([^ ]*\) c #\([0-9a-fA-F][0-9a-fA-F]\)0000",$$/"\1 c #0000\2",/' \
	    $< > $@
genpics/%Yellow.xpm: pics/%.src.xpm | genpics/.stamp
	sed -e 's/^"\([^ ]*\) c #[Ff][Ff]\([0-9a-fA-F][0-9a-fA-F]\)\2",$$/"\1 c #FFFF\2",/' \
	    -e 's/^"\([^ ]*\) c #\([0-9a-fA-F][0-9a-fA-F]\)0000",$$/"\1 c #\2\200",/' \
	    $< > $@
genpics/%Cyan.xpm: pics/%.src.xpm | genpics/.stamp
	sed -e 's/^"\([^ ]*\) c #[Ff][Ff]\([0-9a-fA-F][0-9a-fA-F]\)\2",$$/"\1 c #\2FFFF",/' \
	    -e 's/^"\([^ ]*\) c #\([0-9a-fA-F][0-9a-fA-F]\)0000",$$/"\1 c #00\2\2",/' \
	    $< > $@
genpics/%Green.xpm: pics/%.src.xpm | genpics/.stamp
	sed -e 's/^"\([^ ]*\) c #[Ff][Ff]\([0-9a-fA-F][0-9a-fA-F]\)\2",$$/"\1 c #\2FF\2",/' \
	    -e 's/^"\([^ ]*\) c #\([0-9a-fA-F][0-9a-fA-F]\)0000",$$/"\1 c #00\200",/' \
	    $< > $@
genpics/%Purple.xpm: pics/%.src.xpm | genpics/.stamp
	sed -e 's/^"\([^ ]*\) c #[Ff][Ff]\([0-9a-fA-F][0-9a-fA-F]\)\2",$$/"\1 c #FF\2FF",/' \
	    -e 's/^"\([^ ]*\) c #\([0-9a-fA-F][0-9a-fA-F]\)0000",$$/"\1 c #\200\2",/' \
	    $< > $@
genpics/%White.xpm: pics/%.src.xpm | genpics/.stamp
	sed -e 's/^"\([^ ]*\) c #[Ff][Ff]\([0-9a-fA-F][0-9a-fA-F]\)\2",$$/"\1 c #FFFFFF",/' \
	    -e 's/^"\([^ ]*\) c #\([0-9a-fA-F][0-9a-fA-F]\)0000",$$/"\1 c #\2\2\2",/' \
	    $< > $@

genpics/%.xpm: pics/%.gen | genpics/.stamp
	LC_ALL=C $(AWK) -f $(srcdir)/xpmcombine.awk -- -I $(srcdir)/pics -o $@ $<

# Combine all ocaml libraries into one lib, to ease usage:
graphiclib.$(mla): $(addsuffix .$(mlo),$(ocaml_libraries))
	$(MLC) -o $@ -a $(addsuffix .$(mlo),$(ocaml_libraries))

# Why compile headers? What insanity is that?
vektor.cmi: natmod.cmi
farbe.cmi: natmod.cmi vektor.cmi
vektorgraphik.cmi: farbe.cmi graphik.cmi polynome.cmi
graphik.cmi: farbe.cmi xpmlex.cmi pam.cmi
xpmlex.cmi: farbe.cmi

xpmlex.ml: xpmlex.mll
	$(OCAMLLEX) -o $@ $<
%.$(mlo): %.ml $(ocaml_headers)
	$(MLC) -o $@ -c $<
%.cmi: %.mli
	$(MLC) -o $@ -c $<
$(addsuffix .$(mlrun),$(ocaml_programs)): %.$(mlrun): graphiclib.$(mla) %.$(mlo)
	$(MLC) -o $@ $^
EXTRA_DIST += $(addsuffix .mli,$(ocaml_libraries)) $(addsuffix .ml,$(filter-out xpmlex.ml,$(ocaml_libraries))) $(addsuffix .ml,$(ocaml_programs)) xpmlex.mll
.SECONDARY: $(addsuffix .$(mlrun),$(ocaml_programs)) $(addsuffix .$(mlo),$(ocaml_programs))
.SECONDARY: $(addsuffix .cmi,$(ocaml_libraries)) $(addsuffix .$(mlo),$(ocaml_libraries))
CLEANFILES += *.cmi *.cma *.cmxa *.a *.o *.cmo *.cmx *.opt *.mlrun xpmlex.ml

# "`BUILT_SOURCES' is actually a bit of a misnomer, as any file which
# must be created early in the build process can be listed in this
# variable." (automake)Sources
# build ocaml_programs early, so that the build_early_hack works:
BUILT_SOURCES = $(addsuffix .$(mlrun),$(ocaml_programs))

# Wenn beim Erzeugen einer Datei ein Fehler passiert, soll, falls
# trotzdem schon eine halbe Datei erzeugt wurde, diese halbe Datei
# geloescht werden. Ist fuer genSummary.pl notwendig (und sollte
# eigentlich sowieso der default sein.)
.DELETE_ON_ERROR:
# Do not remake files not needed for installing.
.INTERMEDIATE: $(MOSTLYCLEANFILES)