From f5bc6a420d675d5bd3d98c501fc83561e6a2d12c Mon Sep 17 00:00:00 2001 From: Andreas Huggel Date: Fri, 20 Jan 2006 08:45:59 +0000 Subject: [PATCH] Added option to enable/disable dependency-tracking to configure script --- config/config.mk.in | 9 +++++++-- config/configure.ac | 7 +++++++ src/Makefile | 20 +++++++++++++------- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/config/config.mk.in b/config/config.mk.in index 354fd17f..bb01cade 100644 --- a/config/config.mk.in +++ b/config/config.mk.in @@ -78,8 +78,11 @@ endif # Advanced auto-dependency generation # http://make.paulandlesley.org/autodep.html -# Compiler flags to generate dependency files at the same time as object -# files (for gcc) +DEP_TRACKING = @DEP_TRACKING@ + +ifdef DEP_TRACKING +# Compiler flags to generate dependency files at the same time +# as object files (for gcc) ifeq ($(GXX),yes) CXXFLAGS += -MMD CFLAGS += -MMD @@ -92,6 +95,8 @@ else MAKEDEPEND = $(CXX) -MM $(CPPFLAGS) -o $*.d $< endif +endif + # ********************************************************************** # Global includes, libraries and defines INCS = -I. diff --git a/config/configure.ac b/config/configure.ac index e9e8ea09..f3df9b60 100644 --- a/config/configure.ac +++ b/config/configure.ac @@ -51,6 +51,13 @@ AC_SUBST(HAVE_TIMEGM,$HAVE_TIMEGM) AC_SUBST(GXX,$GXX) AC_SUBST(GCC,$GCC) +AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors], +[if test $enableval = yes; then DEP_TRACKING=1; fi],DEP_TRACKING=1) + +AC_SUBST(DEP_TRACKING,$DEP_TRACKING) + AC_CONFIG_FILES([./config/config.mk]) AC_CONFIG_FILES([./config/exiv2-config], [chmod +x ./config/exiv2-config]) AC_OUTPUT diff --git a/src/Makefile b/src/Makefile index fc404a66..a294d13c 100644 --- a/src/Makefile +++ b/src/Makefile @@ -116,13 +116,6 @@ HDR = $(CCHDR) OBJ = $(CCOBJ) $(COBJ) LOBJ = $(CCLOBJ) $(CLOBJ) -DEPDIR = .deps -DEP = $(CCSRC:%.cpp=$(DEPDIR)/%.d) $(CSRC:%.c=$(DEPDIR)/%.d) \ - $(BINSRC:%.cpp=$(DEPDIR)/%.d) \ - $(EXIV2MAIN:%.cpp=$(DEPDIR)/%.d) $(EXIV2SRC:%.cpp=$(DEPDIR)/%.d) \ - $(EXIVCSRC:%.c=$(DEPDIR)/%.d) $(MCMAIN:%.cpp=$(DEPDIR)/%.d) \ - $(MCSRC:%.cpp=$(DEPDIR)/%.d) $(DEPDIR)/path-test.d - BINOBJ = $(BINSRC:.cpp=.o) BINARY = $(BINSRC:.cpp=) EXECUTABLE = $(BINSRC:.cpp=$(EXEEXT)) @@ -136,12 +129,21 @@ MCOBJ = $(MCMAIN:.cpp=.o) $(MCSRC:.cpp=.o) MCBIN = $(MCMAIN:.cpp=) MCEXE = $(MCMAIN:.cpp=$(EXEEXT)) +ifdef DEP_TRACKING +DEPDIR = .deps +DEP = $(CCSRC:%.cpp=$(DEPDIR)/%.d) $(CSRC:%.c=$(DEPDIR)/%.d) \ + $(BINSRC:%.cpp=$(DEPDIR)/%.d) \ + $(EXIV2MAIN:%.cpp=$(DEPDIR)/%.d) $(EXIV2SRC:%.cpp=$(DEPDIR)/%.d) \ + $(EXIVCSRC:%.c=$(DEPDIR)/%.d) $(MCMAIN:%.cpp=$(DEPDIR)/%.d) \ + $(MCSRC:%.cpp=$(DEPDIR)/%.d) $(DEPDIR)/path-test.d + # Dependency files post-process commands POSTDEPEND = if test ! -d $(DEPDIR); then mkdir $(DEPDIR); fi; \ if test -e $*.d; then cp $*.d $(DEPDIR)/$*.d; \ sed -e 's/^\#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ -e '/^$$/ d' -e 's/$$/ :/' < $*.d >> $(DEPDIR)/$*.d; \ $(RM) $*.d; fi +endif # Compilation shortcuts COMPILE.cc = $(CXX) $(CXXFLAGS) $(CXXDEFS) $(CXXINCS) -c @@ -181,8 +183,10 @@ $(sort $(BINOBJ) $(EXIV2OBJ) $(MCOBJ) path-test.o): %.o: %.cpp install install-header install-lib \ uninstall uninstall-header uninstall-lib +ifdef DEP_TRACKING # Include targets from dependency files -include $(DEP) +endif actions.cpp basicio.cpp exif.cpp exiv2.cpp futils.cpp image.cpp jpgimage.cpp utils.cpp: exv_conf.h @@ -277,8 +281,10 @@ clean: mostlyclean # files created by configuring the program. distclean: clean $(RM) exv_conf.h +ifdef DEP_TRACKING $(RM) $(DEP) -rmdir $(DEPDIR) +endif $(RM) tags TAGS $(RM) *~ *.bak *#