Line # Revision Author
1 1 moose CFLAGS+=-I../../include
2
3 CLEAN_FILES+=`find . -xdev -iname '*~'` $(NAME)-upx
4
5 upx : $(NAME)-upx
6
7 ifneq ($(FINAL),)
8 VERY_CLEAN_FILES+=src/final.cpp
9 CPPOBJ:=obj/final.o
10 FINAL_SRC:=$(CPPSRC) $(MOCSRC) $(UICSRC) $(QRCSRC)
11 CPPSRC:=src/final.cpp
12 CFLAGS+=-I../ -I.
13 endif
14
15 all : mkdirs uic start $(NAME) finish
16
17 cleandeps :
18 @for i in $(DEPS_CLEAN_FILES); do \
19 if [ -e $$i ] ; then \
20 echo -e ["\E[37;34m"'RM '"\E[0m"] $$i; \
21 $(RM) $$i; \
22 fi \
23 done
24 @if [ -e plugins ] ; then \
25 $(MAKE) -sC plugins cleandeps; \
26 fi
27
28 mkdirs :
29 @echo -e ["\E[37;34m"mkdirs"\E[0m"]
30 @for i in $(DIRS); do \
31 if [ ! -e $$i ] ; then \
32 echo -e ["\E[37;34m"'mkdir'"\E[0m"] $$i; \
33 mkdir $$i; \
34 fi \
35 done
36
37 uic : $(UICHPP)
38
39 final :
40 @$(MAKE) FINAL=1
41
42 finaldebug :
43 @$(MAKE) FINAL=1 DEBUG=1
44
45 debug :
46 @$(MAKE) DEBUG=1
47
48 finalclean :
49 @$(MAKE) FINAL=1 clean
50
51 finaldebugclean :
52 @$(MAKE) FINAL=1 DEBUG=1 clean
53
54 finalveryclean :
55 @$(MAKE) FINAL=1 veryclean
56
57 finaldebugveryclean :
58 @$(MAKE) FINAL=1 DEBUG=1 veryclean
59
60 runscripts :
61 @echo -e ["\E[37;32m"'MIME'"\E[0m"] qrc/settings/mime.conf
62 @./getmime.pl
63 @echo -e ["\E[37;32m"'QRC '"\E[0m"] qrc/sciq4.qrc
64 @rm -f qrc/sciq4.qrc
65 @./genqrc.pl qrc/sciq4.qrc qrc
66
67 src/final.cpp : $(FINAL_SRC)
68 @echo -e ["\E[37;36m"'FINAL'"\E[0m"] $^ '>' $@
69 @$(RM) -f src/final.cpp
70 @for i in $^ ; do \
71 echo '#include "'$$i'"' >> src/final.cpp; \
72 done
73 # @$(CC) $(CFLAGS) src/final.cpp -o $(NAME) $(LDFLAGS)
74
75 $(NAME)-upx : $(NAME)
76 $(UPX) -f $(NAME) -o $(NAME)-upx
77
78 $(NAME) : $(CPPOBJ)
79 @echo -e ["\E[37;36m"'LD '"\E[0m"] $^ '>' $@
80 @$(CC) $(CPPOBJ) -o $(NAME) $(LDFLAGS)
81
82 xmlhandlertest : xmlhandlertest.cpp
83 $(CC) $(CFLAGS) xmlhandlertest.cpp -o xmlhandlertest $(LDFLAGS)
84
85 obj/%.o : src/%.cpp
86 @echo -e ["\E[37;32m"'CC '"\E[0m"] $<
87 @$(CC) $(CFLAGS) -o $@ -c $<
88
89 obj/%.o : %.cpp
90 @echo -e ["\E[37;32m"'CC '"\E[0m"] $<
91 @$(CC) $(CFLAGS) -o $@ -c $<
92
93 obj/moc_%.o : moc/moc_%.cpp
94 @echo -e ["\E[37;32m"'CC '"\E[0m"] $<
95 @$(CC) $(CFLAGS) -o $@ -c $<
96
97 obj/qrc_%.o : qrc/qrc_%.cpp
98 @echo -e ["\E[37;32m"'CC '"\E[0m"] $<
99 @$(CC) $(CFLAGS) -o $@ -c $<
100
101 qrc/qrc_%.cpp : qrc/%.qrc
102 @echo -e ["\E[37;32m"'RCC '"\E[0m"] $<
103 @$(RCC) -o $@ $<
104
105 ui/%.o : ui/%.cpp
106 @echo -e ["\E[37;32m"'CC '"\E[0m"] $<
107 @$(CC) $(CFLAGS) -o $@ -c $<
108
109 moc/moc_%.cpp : include/%.h
110 @echo -e ["\E[37;33m"'MOC '"\E[0m"] $<
111 @$(MOC) $< -o $@
112
113 ui/moc_%.cpp : ui/%.h
114 @echo -e ["\E[37;33m"'MOC '"\E[0m"] $<
115 @$(MOC) $< -o $@
116
117 ui/%.h : ui/%.ui
118 @echo -e ["\E[37;35m"'UIC '"\E[0m"] $< $@
119 @$(UIC) -o $@ $<
120
121 ui/%.cpp : ui/%.ui ui/%.h ui/%.ui.h
122 @echo -e ["\E[37;35m"'UICI'"\E[0m"] $<.h $@
123 @$(UIC) -o $@ -impl $*.h $<
124
125 ui/%.cpp : ui/%.ui ui/%.h
126 @echo -e ["\E[37;35m"'UICI'"\E[0m"] $<.h $@
127 @$(UIC) -o $@ -impl $*.h $<
128
129 qrc/%.qrc : qrc
130 @echo -e ["\E[37;32m"'QRC '"\E[0m"] $@
131 @./genqrc.pl $@ qrc
132
133 clean :
134 @for i in $(CLEAN_FILES); do \
135 if [ -e $$i ] ; then \
136 echo -e ["\E[37;34m"'RM '"\E[0m"] $$i; \
137 $(RM) $$i; \
138 fi \
139 done
140 @if [ -e plugins ] ; then \
141 $(MAKE) -sC plugins clean; \
142 fi
143
144 veryclean : clean
145 @for i in $(VERY_CLEAN_FILES); do \
146 if [ -e $$i ] ; then \
147 echo -e ["\E[37;34m"'RM '"\E[0m"] $$i; \
148 $(RM) $$i; \
149 fi \
150 done
151 @if [ -e plugins ] ; then \
152 $(MAKE) -sC plugins veryclean; \
153 fi
154
155 todo :
156 @echo -e ["\E[37;32m"'TODO'"\E[0m"] $@
157 @./gentodo.pl
158
159 #dep/%.d: src/%.cpp
160 # @( export DEPEND=`mktemp`; \
161 # echo "[DEP ]" $<; \
162 # $(CC) -MM $(CFLAGS) $< > $${DEPEND}; \
163 # sed -e "s/^[a-zA-Z0-9_\/]*\///" $${DEPEND} > $${DEPEND}.2; \
164 # sed -e "s/^\([a-zA-Z0-9_]*\)\.o:/obj\/\1\.o \1\.d:/" $${DEPEND}.2 > $@; \
165 # rm $${DEPEND} $${DEPEND}.2 )
166
167 #dep/%.d: %.cpp
168 # @( export DEPEND=`mktemp`; \
169 # echo "[DEP ]" $<; \
170 # $(CC) -MM $(CFLAGS) $< > $${DEPEND}; \
171 # sed -e "s/^[a-zA-Z0-9_\/]*\///" $${DEPEND} > $${DEPEND}.2; \
172 # sed -e "s/^\([a-zA-Z0-9_]*\)\.o:/obj\/\1\.o \1\.d:/" $${DEPEND}.2 > $@; \
173 # rm $${DEPEND} $${DEPEND}.2 )
174
175 dep/%.d: src/%.cpp
176 @echo "[DEP ]" $<
177 @$(CC) $(CFLAGS) -MM -MF $@ -MT 'obj/$*.o dep/$*.d' $<
178
179 dep/moc_%.d: moc/moc_%.cpp
180 @echo "[DEP ]" $<
181 @$(CC) $(CFLAGS) -MM -MF $@ -MT 'obj/$*.o dep/$*.d' $<
182
183 dep/qrc_%.d: qrc/qrc_%.cpp
184 @echo "[DEP ]" $<
185 @$(CC) $(CFLAGS) -MM -MF $@ -MT 'obj/$*.o dep/$*.d' $<
186
187 dep/%.qrc.d: qrc/%.qrc
188 @echo "[DEP ]" $<
189 @./qrcdep.pl $<
190
191 #dep/%.d: ui/%.cpp
192 # @( export DEPEND=`mktemp`; \
193 # echo "[DEP ]" $<; \
194 # $(CC) -MM $(CFLAGS) $< > $${DEPEND}; \
195 # sed -e "s/^[a-zA-Z0-9_\/]*\///" $${DEPEND} > $${DEPEND}.2; \
196 # sed -e "s/^\([a-zA-Z0-9_]*\)\.o:/ui\/\1\.o \1\.d:/" $${DEPEND}.2 > $@; \
197 # rm $${DEPEND} $${DEPEND}.2 )
198
199 ifneq ($(MAKECMDGOALS),runscripts)
200 ifneq ($(MAKECMDGOALS),clean)
201 ifneq ($(MAKECMDGOALS),todo)
202 ifneq ($(MAKECMDGOALS),final)
203 ifneq ($(MAKECMDGOALS),finaldebug)
204 ifneq ($(MAKECMDGOALS),veryclean)
205 ifneq ($(MAKECMDGOALS),finalclean)
206 ifneq ($(MAKECMDGOALS),finalveryclean)
207 ifneq ($(MAKECMDGOALS),finaldebugclean)
208 ifneq ($(MAKECMDGOALS),finaldebugveryclean)
209 -include $(patsubst %.cpp,dep/%.d,$(addsuffix .cpp,$(CPPFILES)))
210 -include $(patsubst %.cpp,dep/moc_%.d,$(addsuffix .cpp,$(MOCFILES)))
211 #-include $(patsubst %.cpp,dep/%.d,$(addsuffix .cpp,$(UICFILES)))
212
213 ifdef QRCFILES
214 -include $(patsubst %.cpp,dep/qrc_%.d,$(addsuffix .cpp,$(QRCFILES))) $(patsubst %.qrc,dep/%.qrc.d,$(addsuffix .qrc,$(QRCFILES)))
215 endif
216
217 endif
218 endif
219 endif
220 endif
221 endif
222 endif
223 endif
224 endif
225 endif
226 endif
227
228 .PHONY: todo clean uic mkdirs depend upx runscripts final debug finaldebug finalclean finaldebugclean finalveryclean finaldebugveryclean
229 .PRECIOUS: $(MOCSRC) $(UICCPP) $(UICHPP) qrc/sciq4.qrc