From 77c4cc40647f91852ccf2225d178ad77286ac376 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 29 Nov 2005 16:30:45 +0000 Subject: hopefully fixed the dependencies of .d and Make.config and .... this should ease the build svn path=/trunk/externals/zexy/; revision=4079 --- src/Makefile | 46 +++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/src/Makefile b/src/Makefile index 83523ec..8344c47 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,5 +1,11 @@ default: all +.PHONEY: default all everything dist \ + clean realclean distclean \ + install install-bin install-doc install-abs + +SOURCES=$(sort $(filter %.c, $(wildcard *.c))) + Make.config: Make.config.in configure ./configure @@ -7,11 +13,27 @@ Make.config: Make.config.in configure configure: configure.ac autoconf -include Make.config +## uaehh, here comes some magic +## 1st we don't want depend and config-makefiles to be included on "clean"-targets -.SUFFIXES: .$(EXT) +ifeq (,$(findstring clean, $(MAKECMDGOALS))) +-include $(SOURCES:.c=.d) +-include Make.config +endif -SOURCES=$(sort $(filter %.c, $(wildcard *.c))) +## 2nd only generate depend-files when we have Make.config included +## and thus MAKEDEP_FLAGS defined +ifdef MAKEDEP_FLAGS +## dependencies: as proposed by the GNU-make documentation +## see http://www.gnu.org/software/make/manual/html_node/make_47.html#SEC51 +%.d: %.c + @set -e; rm -f $@; \ + $(CPP) $(MAKEDEP_FLAGS) $(Z_CFLAGS) $< > $@.$$$$; \ + sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ + rm -f $@.$$$$ +endif + +.SUFFIXES: .$(EXT) TARGETS = $(SOURCES:.c=.o) @@ -30,14 +52,12 @@ $(TARGETS): %.o : %.c clean: -rm -f *.$(EXT) *.o -cleaner: clean +realclean: clean -rm -f *~ _* config.* -rm -f *.d *.d.* -cleanest: cleaner - -rm -f Makefile ../*.$(EXT) - -distclean: cleanest +distclean: realclean + -rm -f Make.config ../*.$(EXT) install: install-bin install-doc install-abs @@ -53,16 +73,8 @@ install-abs: -install -d $(INSTALL_BIN) -install -m 644 ../abs/*.pd $(INSTALL_BIN) -dist: all cleaner +dist: all realclean (cd ../..;tar czvf $(TARNAME) $(LIBNAME)) everything: clean all install distclean -## dependencies: as proposed by the GNU-make documentation -## see http://www.gnu.org/software/make/manual/html_node/make_47.html#SEC51 --include $(SOURCES:.c=.d) -%.d: %.c - @set -e; rm -f $@; \ - $(CC) $(MAKEDEP_FLAGS) $(Z_CFLAGS) $< > $@.$$$$; \ - sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ - rm -f $@.$$$$ -- cgit v1.2.1