Revision 1 (by moose, 2006/03/06 10:35:57) Initial Import
CFLAGS+=-I../../include

CLEAN_FILES+=`find . -xdev -iname '*~'` $(NAME)-upx

upx : $(NAME)-upx

ifneq ($(FINAL),)
VERY_CLEAN_FILES+=src/final.cpp
CPPOBJ:=obj/final.o
FINAL_SRC:=$(CPPSRC) $(MOCSRC) $(UICSRC) $(QRCSRC)
CPPSRC:=src/final.cpp
CFLAGS+=-I../ -I.
endif

all : mkdirs uic start $(NAME) finish

cleandeps :
	@for i in $(DEPS_CLEAN_FILES); do \
		if [ -e $$i ] ; then \
			echo -e ["\E[37;34m"'RM  '"\E[0m"]	$$i; \
			$(RM) $$i; \
		fi \
	done
	@if [ -e plugins ] ; then \
		$(MAKE) -sC plugins cleandeps; \
	fi

mkdirs :
	@echo -e ["\E[37;34m"mkdirs"\E[0m"]
	@for i in $(DIRS); do \
		if [ ! -e $$i ] ; then \
			echo -e ["\E[37;34m"'mkdir'"\E[0m"]	$$i; \
			mkdir $$i; \
		fi \
	done

uic : $(UICHPP)

final :
	@$(MAKE) FINAL=1

finaldebug :
	@$(MAKE) FINAL=1 DEBUG=1

debug :
	@$(MAKE) DEBUG=1

finalclean :
	@$(MAKE) FINAL=1 clean

finaldebugclean :
	@$(MAKE) FINAL=1 DEBUG=1 clean

finalveryclean :
	@$(MAKE) FINAL=1 veryclean

finaldebugveryclean :
	@$(MAKE) FINAL=1 DEBUG=1 veryclean

runscripts :
	@echo -e ["\E[37;32m"'MIME'"\E[0m"] qrc/settings/mime.conf
	@./getmime.pl
	@echo -e ["\E[37;32m"'QRC '"\E[0m"] qrc/sciq4.qrc
	@rm -f qrc/sciq4.qrc
	@./genqrc.pl qrc/sciq4.qrc qrc

src/final.cpp : $(FINAL_SRC)
	@echo -e ["\E[37;36m"'FINAL'"\E[0m"]	$^ '>' $@
	@$(RM) -f src/final.cpp
	@for i in $^ ; do \
		echo '#include "'$$i'"' >> src/final.cpp; \
	done
#	@$(CC) $(CFLAGS) src/final.cpp -o $(NAME) $(LDFLAGS)

$(NAME)-upx : $(NAME)
	$(UPX) -f $(NAME) -o $(NAME)-upx

$(NAME) : $(CPPOBJ)
	@echo -e ["\E[37;36m"'LD  '"\E[0m"]	$^ '>' $@
	@$(CC) $(CPPOBJ) -o $(NAME) $(LDFLAGS)

xmlhandlertest : xmlhandlertest.cpp
	$(CC) $(CFLAGS) xmlhandlertest.cpp -o xmlhandlertest $(LDFLAGS)

obj/%.o : src/%.cpp
	@echo -e ["\E[37;32m"'CC  '"\E[0m"]	$<
	@$(CC) $(CFLAGS) -o $@ -c $<

obj/%.o : %.cpp
	@echo -e ["\E[37;32m"'CC  '"\E[0m"]	$<
	@$(CC) $(CFLAGS) -o $@ -c $<

obj/moc_%.o : moc/moc_%.cpp
	@echo -e ["\E[37;32m"'CC  '"\E[0m"]	$<
	@$(CC) $(CFLAGS) -o $@ -c $<

obj/qrc_%.o : qrc/qrc_%.cpp
	@echo -e ["\E[37;32m"'CC  '"\E[0m"]	$<
	@$(CC) $(CFLAGS) -o $@ -c $<

qrc/qrc_%.cpp : qrc/%.qrc
	@echo -e ["\E[37;32m"'RCC '"\E[0m"]	$<
	@$(RCC) -o $@ $<

ui/%.o : ui/%.cpp
	@echo -e ["\E[37;32m"'CC  '"\E[0m"]	$<
	@$(CC) $(CFLAGS) -o $@ -c $<

moc/moc_%.cpp : include/%.h
	@echo -e ["\E[37;33m"'MOC '"\E[0m"]	$<
	@$(MOC) $< -o $@

ui/moc_%.cpp : ui/%.h
	@echo -e ["\E[37;33m"'MOC '"\E[0m"]	$<
	@$(MOC) $< -o $@

ui/%.h : ui/%.ui
	@echo -e ["\E[37;35m"'UIC '"\E[0m"]	$< $@
	@$(UIC) -o $@ $<

ui/%.cpp : ui/%.ui ui/%.h ui/%.ui.h
	@echo -e ["\E[37;35m"'UICI'"\E[0m"]	$<.h $@
	@$(UIC) -o $@ -impl $*.h $<

ui/%.cpp : ui/%.ui ui/%.h
	@echo -e ["\E[37;35m"'UICI'"\E[0m"]	$<.h $@
	@$(UIC) -o $@ -impl $*.h $<

qrc/%.qrc : qrc
	@echo -e ["\E[37;32m"'QRC '"\E[0m"] $@
	@./genqrc.pl $@ qrc

clean :
	@for i in $(CLEAN_FILES); do \
		if [ -e $$i ] ; then \
			echo -e ["\E[37;34m"'RM  '"\E[0m"]	$$i; \
			$(RM) $$i; \
		fi \
	done
	@if [ -e plugins ] ; then \
		$(MAKE) -sC plugins clean; \
	fi

veryclean : clean
	@for i in $(VERY_CLEAN_FILES); do \
		if [ -e $$i ] ; then \
			echo -e ["\E[37;34m"'RM  '"\E[0m"]	$$i; \
			$(RM) $$i; \
		fi \
	done
	@if [ -e plugins ] ; then \
		$(MAKE) -sC plugins veryclean; \
	fi

todo :
	@echo -e ["\E[37;32m"'TODO'"\E[0m"] $@
	@./gentodo.pl

#dep/%.d: src/%.cpp
#	@( export DEPEND=`mktemp`; \
#	echo "[DEP ]"	$<; \
#	$(CC) -MM $(CFLAGS) $< > $${DEPEND}; \
#	sed -e "s/^[a-zA-Z0-9_\/]*\///" $${DEPEND} > $${DEPEND}.2; \
#	sed -e "s/^\([a-zA-Z0-9_]*\)\.o:/obj\/\1\.o \1\.d:/" $${DEPEND}.2 > $@; \
#	rm $${DEPEND} $${DEPEND}.2 )

#dep/%.d: %.cpp
#	@( export DEPEND=`mktemp`; \
#	echo "[DEP ]"	$<; \
#	$(CC) -MM $(CFLAGS) $< > $${DEPEND}; \
#	sed -e "s/^[a-zA-Z0-9_\/]*\///" $${DEPEND} > $${DEPEND}.2; \
#	sed -e "s/^\([a-zA-Z0-9_]*\)\.o:/obj\/\1\.o \1\.d:/" $${DEPEND}.2 > $@; \
#	rm $${DEPEND} $${DEPEND}.2 )

dep/%.d: src/%.cpp
	@echo "[DEP ]" $<
	@$(CC) $(CFLAGS) -MM -MF $@ -MT 'obj/$*.o dep/$*.d' $<

dep/moc_%.d: moc/moc_%.cpp
	@echo "[DEP ]" $<
	@$(CC) $(CFLAGS) -MM -MF $@ -MT 'obj/$*.o dep/$*.d' $<

dep/qrc_%.d: qrc/qrc_%.cpp
	@echo "[DEP ]" $<
	@$(CC) $(CFLAGS) -MM -MF $@ -MT 'obj/$*.o dep/$*.d' $<

dep/%.qrc.d: qrc/%.qrc
	@echo "[DEP ]" $<
	@./qrcdep.pl $<

#dep/%.d: ui/%.cpp
#	@( export DEPEND=`mktemp`; \
#	echo "[DEP ]"	$<; \
#	$(CC) -MM $(CFLAGS) $< > $${DEPEND}; \
#	sed -e "s/^[a-zA-Z0-9_\/]*\///" $${DEPEND} > $${DEPEND}.2; \
#	sed -e "s/^\([a-zA-Z0-9_]*\)\.o:/ui\/\1\.o \1\.d:/" $${DEPEND}.2 > $@; \
#	rm $${DEPEND} $${DEPEND}.2 )

ifneq ($(MAKECMDGOALS),runscripts)
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(MAKECMDGOALS),todo)
ifneq ($(MAKECMDGOALS),final)
ifneq ($(MAKECMDGOALS),finaldebug)
ifneq ($(MAKECMDGOALS),veryclean)
ifneq ($(MAKECMDGOALS),finalclean)
ifneq ($(MAKECMDGOALS),finalveryclean)
ifneq ($(MAKECMDGOALS),finaldebugclean)
ifneq ($(MAKECMDGOALS),finaldebugveryclean)
-include $(patsubst %.cpp,dep/%.d,$(addsuffix .cpp,$(CPPFILES)))
-include $(patsubst %.cpp,dep/moc_%.d,$(addsuffix .cpp,$(MOCFILES)))
#-include $(patsubst %.cpp,dep/%.d,$(addsuffix .cpp,$(UICFILES)))

ifdef QRCFILES
-include $(patsubst %.cpp,dep/qrc_%.d,$(addsuffix .cpp,$(QRCFILES))) $(patsubst %.qrc,dep/%.qrc.d,$(addsuffix .qrc,$(QRCFILES)))
endif

endif
endif
endif
endif
endif
endif
endif
endif
endif
endif

.PHONY: todo clean uic mkdirs depend upx runscripts final debug finaldebug finalclean finaldebugclean finalveryclean finaldebugveryclean
.PRECIOUS: $(MOCSRC) $(UICCPP) $(UICHPP) qrc/sciq4.qrc