1 | |
---|
2 | # |
---|
3 | # Define these variables from the beginning |
---|
4 | # |
---|
5 | |
---|
6 | CLEANFILES = |
---|
7 | SUFFIXES = |
---|
8 | EXTRA_DIST = |
---|
9 | |
---|
10 | |
---|
11 | # |
---|
12 | # Miscellaneous rules |
---|
13 | # |
---|
14 | |
---|
15 | lol_recursive_rule = \ |
---|
16 | @if test -n "$(SUBDIRS)"; then for subdir in $(SUBDIRS); do \ |
---|
17 | ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $(patsubst %-recursive, %, $@)) || exit 1; \ |
---|
18 | done; fi |
---|
19 | |
---|
20 | bench: bench-recursive |
---|
21 | bench-recursive: |
---|
22 | $(lol_recursive_rule) |
---|
23 | |
---|
24 | lolcheck: lolcheck-recursive |
---|
25 | lolcheck-recursive: |
---|
26 | $(lol_recursive_rule) |
---|
27 | |
---|
28 | |
---|
29 | # |
---|
30 | # Flex and Bison files build rule |
---|
31 | # |
---|
32 | |
---|
33 | generated: generated-recursive |
---|
34 | generated-recursive: |
---|
35 | $(lol_recursive_rule) |
---|
36 | @if test -n "$(filter %-scanner.l, $(EXTRA_DIST))"; then \ |
---|
37 | echo $(MKDIR_P) generated; \ |
---|
38 | $(MKDIR_P) generated; \ |
---|
39 | rm -f generated/[a-zA-Z]*; \ |
---|
40 | for scanner in $(patsubst %-scanner.l, %, $(filter %-scanner.l, $(EXTRA_DIST))); do \ |
---|
41 | b="`basename $$scanner`"; \ |
---|
42 | echo flex -v -o "generated/$$b-scanner.cpp" "$$scanner-scanner.l"; \ |
---|
43 | flex -v -o "generated/$$b-scanner.cpp" "$$scanner-scanner.l" || exit 1; \ |
---|
44 | done; \ |
---|
45 | for parser in $(patsubst %-parser.y, %, $(filter %-parser.y, $(EXTRA_DIST))); do \ |
---|
46 | b="`basename $$parser`"; \ |
---|
47 | echo bison -o "generated/$$b-parser.cpp" --defines="generated/$$b-parser.h" -d -b "generated/$$b" "$$parser-parser.y"; \ |
---|
48 | bison -o "generated/$$b-parser.cpp" --defines="generated/$$b-parser.h" -d -b "generated/$$b" "$$parser-parser.y" || exit 1; \ |
---|
49 | done; \ |
---|
50 | fi |
---|
51 | |
---|
52 | |
---|
53 | # |
---|
54 | # .lolfx build rule |
---|
55 | # |
---|
56 | |
---|
57 | lolfx_gen = $(lolfx_gen_$(V)) |
---|
58 | lolfx_gen_ = $(lolfx_gen_$(AM_DEFAULT_VERBOSITY)) |
---|
59 | lolfx_gen_0 = @echo " LOLFX " $@; |
---|
60 | |
---|
61 | SUFFIXES += .lolfx |
---|
62 | .lolfx.o: |
---|
63 | $(lolfx_gen) |
---|
64 | $(AM_V_at)(echo "char const *"; \ |
---|
65 | echo "lolfx_resource_$(notdir $(basename $(filter %.lolfx, $^))) ="; \ |
---|
66 | $(SED) 's/"/\\"/g' $(filter %.lolfx, $^) | $(SED) 's/\([^\r]*\).*/"\1\\n"/'; \ |
---|
67 | echo ";") \ |
---|
68 | | $(CXXCOMPILE) -xc++ -c - -o $@ |
---|
69 | |
---|
70 | |
---|
71 | # |
---|
72 | # PS3 fself support rules |
---|
73 | # |
---|
74 | |
---|
75 | fself_gen = $(fself_gen_$(V)) |
---|
76 | fself_gen_ = $(fself_gen_$(AM_DEFAULT_VERBOSITY)) |
---|
77 | fself_gen_0 = echo " FSELF " $${x}.self; |
---|
78 | fself_gen_1 = echo make_fself $${x}$(EXEEXT) $${x}.self; |
---|
79 | |
---|
80 | all-local: all-local-ps3 |
---|
81 | all-local-ps3: $(PROGRAMS) $(noinst_PROGRAMS) |
---|
82 | @if test -n "$^"; then for x in $(^:%$(EXEEXT)=%); do \ |
---|
83 | if test x$(MAKE_FSELF) != xno; then \ |
---|
84 | $(fself_gen) \ |
---|
85 | make_fself $${x}$(EXEEXT) $${x}.self; \ |
---|
86 | fi; \ |
---|
87 | done; fi |
---|
88 | |
---|
89 | CLEANFILES += $(PROGRAMS:%$(EXEEXT)=%.self) \ |
---|
90 | $(PROGRAMS:%$(EXEEXT)=%.elf) \ |
---|
91 | $(noinst_PROGRAMS:%$(EXEEXT)=%.self) \ |
---|
92 | $(noinst_PROGRAMS:%$(EXEEXT)=%.elf) |
---|
93 | |
---|
94 | |
---|
95 | # |
---|
96 | # Win32 rules |
---|
97 | # |
---|
98 | |
---|
99 | # This is here in case we forget to make clean after a Windows build |
---|
100 | CLEANFILES += $(PROGRAMS:%$(EXEEXT)=%.exe) \ |
---|
101 | $(noinst_PROGRAMS:%$(EXEEXT)=%.exe) |
---|
102 | |
---|
103 | |
---|
104 | # |
---|
105 | # Android rules |
---|
106 | # |
---|
107 | |
---|
108 | all-local: all-local-android |
---|
109 | clean-local: clean-local-android |
---|
110 | |
---|
111 | if USE_ANDROID |
---|
112 | all-local-android: $(foreach p, $(PROGRAMS:%$(EXEEXT)=%), .$(p).androidstamp) |
---|
113 | .%.androidstamp: %$(EXEEXT) |
---|
114 | $(eval p := $(^:%$(EXEEXT)=%)) |
---|
115 | $(eval d := .$(p).androiddir) |
---|
116 | rm -rf "$(d)" |
---|
117 | $(MKDIR_P) "$(d)" $(sort $(foreach f, $($(p)_DATA), "$(d)/assets/$(dir $(f))")) |
---|
118 | $(foreach f, $($(p)_DATA), $(LN_S) "$(abs_srcdir)/$(f)" "$(d)/assets/$(f)" &&) true |
---|
119 | $(SED) -e 's,@PROGRAM@,$(subst -,_,$(p)),' "$(top_srcdir)/build/android/AndroidManifest.xml" > "$(d)/AndroidManifest.xml" |
---|
120 | $(MKDIR_P) "$(d)/src/net/lolengine" |
---|
121 | $(SED) -e 's,@PROGRAM@,$(subst -,_,$(p)),' "$(top_srcdir)/build/android/LolActivity.java" > "$(d)/src/net/lolengine/LolActivity.java" |
---|
122 | $(MKDIR_P) "$(d)/res/values" |
---|
123 | $(SED) -e 's,@PROGRAM@,$(subst -,_,$(p)),' "$(top_srcdir)/build/android/strings.xml" > "$(d)/res/values/strings.xml" |
---|
124 | $(MKDIR_P) "$(d)/res/drawable" |
---|
125 | cp "$(top_srcdir)/build/android/icon.png" "$(d)/res/drawable/" |
---|
126 | $(MKDIR_P) "$(d)/libs/armeabi" |
---|
127 | $(LN_S) "$(abs_builddir)/$(p)$(EXEEXT)" "$(d)/libs/armeabi/lib$(p).so" |
---|
128 | $(LN_S) "$${ANDROID_NDK_ROOT}/sources/cxx-stl/stlport/libs/armeabi/libstlport_shared.so" "$(d)/libs/armeabi" |
---|
129 | android update project -t android-9 -n "$(p)" -p "$(d)" |
---|
130 | ant debug -f "$(d)/build.xml" |
---|
131 | touch $@ |
---|
132 | else |
---|
133 | all-local-android: |
---|
134 | endif |
---|
135 | |
---|
136 | clean-local-android: |
---|
137 | $(foreach p, $(PROGRAMS:%$(EXEEXT)=%), rm -rf ".$(p).androiddir";) |
---|
138 | $(foreach p, $(PROGRAMS:%$(EXEEXT)=%), rm -f ".$(p).androidstamp";) |
---|
139 | |
---|
140 | |
---|
141 | # |
---|
142 | # Additional rules |
---|
143 | # |
---|
144 | |
---|
145 | EXTRA_DIST += $(foreach p, $(PROGRAMS), $($(p)_DATA)) |
---|
146 | |
---|
147 | |
---|
148 | .PHONY: bench lolcheck generated |
---|
149 | |
---|