1 | |
---|
2 | MENUS_TGT = $(ARBHOME)/lib/gde/arb.menu |
---|
3 | MENUS_SRC = ARB_GDEmenus.source |
---|
4 | |
---|
5 | SED:=$(ARBHOME)/SH/arb_sed |
---|
6 | |
---|
7 | HELPFILELIST=helpfiles.lst |
---|
8 | GENHELPDEST=./HELP_GEN |
---|
9 | GENDOCDEST=./HELP_DOC_GEN |
---|
10 | |
---|
11 | SUBMENUS=$(wildcard MENUS/*.menu) |
---|
12 | GENMENUS=$(SUBMENUS:.menu=.genmenu) |
---|
13 | |
---|
14 | PPP:=./pp.pl |
---|
15 | CLEAN:=./cleanmenu.pl |
---|
16 | WARN_MISSING_ITEMHELP:=./warn_missing_itemhelp.pl |
---|
17 | |
---|
18 | # ---------------------------------------- help for refactoring |
---|
19 | MENUS_EXPECTED = ARB_GDEmenus.expected |
---|
20 | |
---|
21 | # check expected result (to avoid unwanted changes) |
---|
22 | # call 'make update_expected' to expect the current result |
---|
23 | |
---|
24 | #CHECK_AS_EXPECTED = check_as_expected |
---|
25 | CHECK_AS_EXPECTED = |
---|
26 | |
---|
27 | # ---------------------------------------- |
---|
28 | |
---|
29 | ifeq ($(USE_OPENMP),1) |
---|
30 | OPENMP_FLAG=-DUSE_OPENMP |
---|
31 | else |
---|
32 | OPENMP_FLAG= |
---|
33 | endif |
---|
34 | |
---|
35 | # ---------------------------------------- |
---|
36 | |
---|
37 | all: $(MENUS_TGT) help $(CHECK_AS_EXPECTED) rm_obsolete warn_missing_itemhelp |
---|
38 | |
---|
39 | MENUS/%.genmenu : genmenu.header |
---|
40 | |
---|
41 | MENUS/%.genmenu : MENUS/%.menu |
---|
42 | ( cat genmenu.header; $(SED) -e "s/^[ ]*//" ) < $< > $@ |
---|
43 | |
---|
44 | MENUS_DIRTY=ARB_GDEmenus.dirty |
---|
45 | |
---|
46 | $(MENUS_DIRTY) : $(MENUS_SRC) $(GENMENUS) Makefile $(PPP) |
---|
47 | $(PPP) -IMENUS $(OPENMP_FLAG) $(MENUS_SRC) >$@ |
---|
48 | |
---|
49 | $(MENUS_TGT) : $(MENUS_DIRTY) $(CLEAN) |
---|
50 | chmod a+w $@ || true |
---|
51 | $(CLEAN) <$(MENUS_DIRTY) >$@ |
---|
52 | rm $(MENUS_DIRTY) |
---|
53 | chmod a-w $@ |
---|
54 | |
---|
55 | # ------------------------------------------------------------ |
---|
56 | |
---|
57 | update_expected: $(MENUS_TGT) |
---|
58 | cp $(MENUS_TGT) $(MENUS_EXPECTED) |
---|
59 | |
---|
60 | check_as_expected: $(MENUS_TGT) $(MENUS_EXPECTED) |
---|
61 | diff --unified --ignore-space-change --ignore-blank-lines $(MENUS_EXPECTED) $(MENUS_TGT) |
---|
62 | |
---|
63 | # ------------------------------------------------------------ |
---|
64 | |
---|
65 | help: $(HELPFILELIST) |
---|
66 | @test -d $(GENHELPDEST) || mkdir $(GENHELPDEST) |
---|
67 | @test -d $(GENDOCDEST) || mkdir $(GENDOCDEST) |
---|
68 | @$(MAKE) -f Makefile.helpfiles "GENHELPDEST=$(GENHELPDEST)" "GENDOCDEST=$(GENDOCDEST)" "HELPFILELIST=$(HELPFILELIST)" |
---|
69 | |
---|
70 | $(HELPFILELIST): $(SUBMENUS) Makefile |
---|
71 | grep -ih '^itemhelp:' $(SUBMENUS) | $(SED) -e 's/^itemhelp://' | sort | uniq > $@ |
---|
72 | |
---|
73 | warn_missing_itemhelp: $(WARN_MISSING_ITEMHELP) |
---|
74 | grep -Pin '^(itemhelp|item):' $(SUBMENUS) | $(WARN_MISSING_ITEMHELP) |
---|
75 | |
---|
76 | # ------------------------------------------------------------ |
---|
77 | |
---|
78 | rm_obsolete: |
---|
79 | @(test -f ARB_GDEmenus && rm -f ARB_GDEmenus) || true |
---|
80 | |
---|
81 | clean: $(HELPFILELIST) |
---|
82 | @$(MAKE) -f Makefile.helpfiles \ |
---|
83 | "GENHELPDEST=$(GENHELPDEST)" \ |
---|
84 | "GENDOCDEST=$(GENDOCDEST)" \ |
---|
85 | "HELPFILELIST=$(HELPFILELIST)" \ |
---|
86 | clean |
---|
87 | rm -f $(GENMENUS) $(MENUS_TGT) $(HELPFILELIST) |
---|
88 | |
---|
89 | .PHONY: warn_missing_itemhelp rm_obsolete clean help check_as_expected update_expected all |
---|