aboutsummaryrefslogtreecommitdiff
path: root/src/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/Makefile')
-rw-r--r--src/Makefile46
1 files 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 $@.$$$$