Przeglądaj źródła

* Inline the dependency creation if possible to avoid overheap from automake's depcomp

Bryan Drewery 14 lat temu
rodzic
commit
0687f023ac
5 zmienionych plików z 37 dodań i 21 usunięć
  1. 2 2
      build/cc1plus
  2. 8 1
      src/Makefile.in
  3. 9 8
      src/compat/Makefile.in
  4. 9 8
      src/crypto/Makefile.in
  5. 9 2
      src/mod/mod.mk.in

+ 2 - 2
build/cc1plus

@@ -4,7 +4,7 @@
 # This avoids the need for the old _*.c temp files.
 
 # Only capture pre-processing
-if [ $1 != "-E" -o -z "$stringfix" -o ! -f "$stringfix" ]; then
+if [ $1 != "-E" -o -z "$STRINGFIX" -o ! -f "$STRINGFIX" ]; then
   exec $(${COLLECT_GCC} --print-prog-name=cc1plus) $@
 fi
 
@@ -26,4 +26,4 @@ if [ $depcomp -eq 0 ]; then
   exec $(${COLLECT_GCC} --print-prog-name=cc1plus) $@
 fi
 
-exec $(${COLLECT_GCC} --print-prog-name=cc1plus) $@ | $stringfix
+exec $(${COLLECT_GCC} --print-prog-name=cc1plus) $@ | $STRINGFIX

+ 8 - 1
src/Makefile.in

@@ -132,6 +132,13 @@ include ./.deps/includes
 
 %.o: %.c stringfix@EXEEXT@ $(top_srcdir)/build/cc1plus
 	@echo -e "Compiling: \033[1m$*\033[0m"
+ifeq ($(CCDEPMODE),gcc3)
+	if STRINGFIX='$(top_srcdir)/$(STRINGFIX)' $(CXX) -MT '$@' -MD -MP -MF '.deps/$*.TPo' -DSTRINGFIX=$(STRINGFIX) -B$(top_srcdir)/build $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@; then \
+	mv '.deps/$*.TPo' '.deps/$*.Po'; \
+	else rm -f '.deps/$*.Tpo'; exit 1; \
+	fi
+else
 	# STRINGFIX included after CXX for ccache to recognize
-	stringfix="$(top_srcdir)/$(STRINGFIX)" source='$<' object='$@' depfile='.deps/$*.Po' tmpdepfile='.deps/$*.TPo' depmode=$(CCDEPMODE) $(depcomp) \
+	STRINGFIX="$(top_srcdir)/$(STRINGFIX)" source='$<' object='$@' depfile='.deps/$*.Po' tmpdepfile='.deps/$*.TPo' depmode=$(CCDEPMODE) $(depcomp) \
 	$(CXX) -DSTRINGFIX=$(STRINGFIX) -B$(top_srcdir)/build $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
+endif

+ 9 - 8
src/compat/Makefile.in

@@ -37,13 +37,14 @@ compat: $(OBJS)
 
 include ./.deps/includes
 
-.SUFFIXES:
-.SUFFIXES: .c .o .h
-
-.c.o:
+%.o: %.c
 	@echo -e "Compiling: \033[1m$*\033[0m"
+ifeq ($(CCDEPMODE),gcc3)
+	if $(CXX) -MT '$@' -MD -MP -MF '.deps/$*.TPo' $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@; then \
+	mv '.deps/$*.TPo' '.deps/$*.Po'; \
+	else rm -f '.deps/$*.Tpo'; exit 1; \
+	fi
+else
 	source='$<' object='$@' depfile='.deps/$*.Po' tmpdepfile='.deps/$*.TPo' depmode=$(CCDEPMODE) $(depcomp) \
-	$(CXX) $(CXXFLAGS) -I../.. -I$(top_srcdir) -I$(top_srcdir)/src $(CPPFLAGS) -c $< -o $@
-
-
-#safety hash
+	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
+endif

+ 9 - 8
src/crypto/Makefile.in

@@ -30,13 +30,14 @@ crypto: $(OBJS)
 
 include ./.deps/includes
 
-.SUFFIXES:
-.SUFFIXES: .c .o .h
-
-.c.o:
+%.o: %.c
 	@echo -e "Compiling: \033[1m$*\033[0m"
+ifeq ($(CCDEPMODE),gcc3)
+	if $(CXX) -MT '$@' -MD -MP -MF '.deps/$*.TPo' $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@; then \
+	mv '.deps/$*.TPo' '.deps/$*.Po'; \
+	else rm -f '.deps/$*.Tpo'; exit 1; \
+	fi
+else
 	source='$<' object='$@' depfile='.deps/$*.Po' tmpdepfile='.deps/$*.TPo' depmode=$(CCDEPMODE) $(depcomp) \
-	$(CXX) $(CXXFLAGS) -I../.. -I$(top_srcdir) -I$(top_srcdir)/src $(CPPFLAGS) -c $< -o $@
-
-
-
+	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
+endif

+ 9 - 2
src/mod/mod.mk.in

@@ -2,6 +2,13 @@ depcomp = /bin/sh $(top_srcdir)/build/autotools/depcomp
 
 ../%.o: %.c $(top_srcdir)/src/stringfix $(top_srcdir)/build/cc1plus
 	@echo -e "Compiling: \033[1m$*\033[0m"
+ifeq ($(CCDEPMODE),gcc3)
+	if STRINGFIX='$(top_srcdir)/$(STRINGFIX)' $(CXX) -MT '$@' -MD -MP -MF '.deps/$*.TPo' -DSTRINGFIX=$(STRINGFIX) -B$(top_srcdir)/build $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@; then \
+	mv '.deps/$*.TPo' '.deps/$*.Po'; \
+	else rm -f '.deps/$*.Tpo'; exit 1; \
+	fi
+else
 	# STRINGFIX included after CXX for ccache to recognize
-	stringfix="$(top_srcdir)/$(STRINGFIX)" source='$<' object='$@' depfile='.deps/$*.Po' tmpdepfile='.deps/$*.TPo' depmode=$(CCDEPMODE) $(depcomp) \
-	$(CXX) -DSTRINGFIX=$(STRINGFIX) -B$(top_srcdir)/build $(CXXFLAGS) $(CPPFLAGS) -c $<  -o $@
+	STRINGFIX="$(top_srcdir)/$(STRINGFIX)" source='$<' object='$@' depfile='.deps/$*.Po' tmpdepfile='.deps/$*.TPo' depmode=$(CCDEPMODE) $(depcomp) \
+	$(CXX) -DSTRINGFIX=$(STRINGFIX) -B$(top_srcdir)/build $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
+endif