## Version 2.2.2_g ## TOPDIR= . RULESFILE ?= Rules.make WINRULESFILE = Rules.make.WIN32 -include $(TOPDIR)/$(RULESFILE) OBJDIR ?= . CROSSDIR = /usr/local/cross INCLUDE_DIRS = src MODULES = src src/operator src/complexOperator src/diffusionOperator src/morphologicalOperator src/noiseGenerator src/randomizer src/multithread/operator src/diffusionOperator/ShockFilter src/diffusionOperator/PeronaMalikFilter src/multithread/diffusionOperator/PeronaMalikFilter MODULES_ALL = $(MODULES) MISC := HDRS := include $(patsubst %, %/Module.make, $(INCLUDE_DIRS)) SRC := include $(patsubst %, %/Module.make, $(MODULES)) OBJ := $(patsubst %.cpp, %.o, $(SRC)) OBJ := $(join $(addsuffix $(OBJDIR)/,$(dir $(OBJ))),$(notdir $(OBJ))) ifneq ($(findstring -DUSE_WIN32, $(CPPFLAGS)),) OBJ := $(OBJ) endif SRC_ALL = $(SRC) OBJ_ALL = $(OBJ) export SRC OBJDIR CXX CPPFLAGS CXXFLAGS LDFLAGS OBJ .SUFFIXES: .cpp .o .PHONY: make-objdir all-src all: all-src FImage make-objdir: @mkdir -p $(dir $(OBJ)) %.o: $(@D)../%.cpp $(RULESFILE) $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(subst $(OBJDIR)/../,,$<) -o $@ help: @-echo "make cycle clean,depend,tags,all" @-echo "make install install all files" @-echo "make uninstall uninstall all files" @-echo "make clean cleanup keep only executables" @-echo "make distclean clean all files" @-echo "make doc make source documention with doxygen" @-echo "make strip strip FImage and/or FImage.exe" @-echo "make depend create dependencies" @-echo "make win32new (CROSS-COMPILER ONLY) start new win32" @-echo "make win32 (CROSS-COMPILER ONLY) build the win32 version" @-echo "make win32distclean (CROSS-COMPILER ONLY) clean all files of win32" @-echo "make release release it" @-echo "make tests create tests" cycle:: @$(MAKE) clean @$(MAKE) depend @$(MAKE) tags @$(MAKE) all tests: ${MAKE} -C Test doc:: doxygen contrib/doxygen-FImage.cfg all-src: make-objdir $(OBJ) FImage: $(OBJ) $(CXX) -o FImage $^ $(CXXFLAGS) $(LDFLAGS) strip: @if [ -f FImage ]; then strip FImage; fi @if [ -f FImage.exe ]; then $(CROSSDIR)/i386-mingw32msvc/bin/strip FImage.exe; fi clean:: $(RM) -rf $(OBJ) for i in $(MODULES_ALL); do \ $(RM) -rf $$i/*.doc; done $(RM) core gmon.out cscope.out *.doc ${MAKE} clean -C Test @echo distclean: clean for i in $(MODULES_ALL); do \ [ $(OBJDIR) == "." ] || $(RM) -rf $$i/$(OBJDIR); \ $(RM) $$i/.#* $$i/*~; done $(RM) -f FImage FImage.exe gmon.sum .depend .#* *~ stderr.txt stdout.txt \ .depend Rules.make config.log config.status configure $(RM) -rf autom4te.cache/ $(RM) -rf srcdoc ${RM} -f Rules.make.WIN32 config.h config.h.in aclocal.m4 @echo depend: @echo -n >.depend @echo @for i in $(SRC) ; do \ echo -e "\rMaking dependencies for $$i"; \ $(CXX) -MT `dirname $$i`/$(OBJDIR)/`basename $$i | sed 's/\.cpp/\.o/g'` \ -MM $(CPPFLAGS) $$i >>.depend; done @echo ctags: ctags --C++-kinds=+px `find . -name '*.cpp' -o -name '*.c' -o -name '*.h'` ############################################################################## # # include dependency files, if they exist # $(OBJ): $(RULESFILE) ifeq (.depend,$(wildcard .depend)) include .depend endif ############################################################################## # Distributions ############################################################################## DOCS = COPYING README doc/*.html doc/*.txt doc/scripts/*.html \ doc/scripts/*.py doc/graphics/*.html doc/graphics/*.gimp \ doc/graphics/*.png PICS = contrib/FImage.ico contrib/poweredby.png MISC += contrib/doxygen-FImage.cfg contrib/doxygen-header.html \ Rules.make.in configure.in configure config.h.in Makefile \ autogen.sh \ $(patsubst %, %/Module.make, $(MODULES_ALL)) \ $(patsubst %, %/Module.make, $(INCLUDE_DIRS)) mydate ?= $(shell date +%y%m%d) distdir = FImage-$(mydate) #why is this needed? DISTLIST = distlist.tmp #---------------------------------------------------------------------------- #---------------------------------------------------------------------------- difffile= FImage-`date +%y%m%d`.diff diff: @$(RM) $(difffile) @$(RM) $(DISTLIST) $(MAKE) -C src RULESFILE=$(RULESFILE) distlist echo $(MISC) >>$(DISTLIST) echo $(DOCS) >>$(DISTLIST) rcsdiff -u `cat $(DISTLIST)` > $(difffile) release: $(MAKE) distclean $(MAKE) configure $(MAKE) depend $(MAKE) configuregl $(MAKE) depend $(MAKE) win32new $(MAKE) win32configure $(MAKE) dist ############################################################################## # WIN32 Crosscompiler Build ############################################################################## WIN32= \ VIDEOLIB='-L$(CROSSDIR)/i386-mingw32msvc/lib $(SDLLIB) ' \ RULESFILE=$(WINRULESFILE) win32new: @$(MAKE) RULESFILE=$(WINRULESFILE) distclean export PATH=$(CROSSDIR)/i386-mingw32msvc/bin:$(CROSSDIR)/bin:$$PATH; \ win32configure: autoconf export PATH=$(CROSSDIR)/bin:$(CROSSDIR)/i386-mingw32msvc/bin:$$PATH; \ ./configure --enable-win32 --host=i386-mingw32msvc --build=i386-linux \ --with-lua=/usr/local/cross --enable-static win32_2: $(MAKE) $(WIN32) all win32: export PATH=$(CROSSDIR)/i386-mingw32msvc/bin:$(CROSSDIR)/bin:$$PATH; \ $(MAKE) $(WIN32) win32_2 win32depend: export PATH=$(CROSSDIR)/i386-mingw32msvc/bin:$(CROSSDIR)/bin:$$PATH; \ $(MAKE) $(WIN32) depend win32distclean: export PATH=$(CROSSDIR)/i386-mingw32msvc/bin:$(CROSSDIR)/bin:$$PATH; \ $(MAKE) $(WIN32) distclean ############################################################################## # INSTALL/UNINSTALL ############################################################################## install: all install-FImage install-FImage: install -m 755 FImage $(PREFIX)/bin @echo installation of FImage complete uninstall: @echo uninstalling FImage and FImage tools rm $(PREFIX)/bin/FImage @echo uninstallation of FImage complete