From 9621a2b0731558dc811cedfea9e11f2418d7fb44 Mon Sep 17 00:00:00 2001 From: John Criswell Date: Wed, 20 Aug 2003 15:18:41 +0000 Subject: [PATCH] Modified the SUFFIXES pseudo targets so that we remove all default suffixes and explicitly declare all the ones we're using for LLVM. This quickly cancels many of GNU Make's implicit rules and reduces build time. The only caveat is that any new suffixes may need to be explictly added to the .SUFFIXES pseudo target. Removed the -only-static option as it is no longer used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7979 91177308-0d34-0410-b5e6-96231b3b80d8 --- Makefile.common | 19 +++++++++++-------- Makefile.rules | 19 +++++++++++-------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/Makefile.common b/Makefile.common index 4b2ecde4367..5d7469a9e85 100644 --- a/Makefile.common +++ b/Makefile.common @@ -169,6 +169,17 @@ prdirs:: echo "LLVM Source Root: " $(LLVM_SRC_ROOT) echo "LLVM Object Root: " $(LLVM_OBJ_ROOT) +########################################################################### +# Suffixes and implicit rules: +# Empty out the list of suffixes, generate a list that is only +# used by this Makefile, and cancel useless implicit rules. This +# will hopefully speed up compilation a little bit. +########################################################################### +.SUFFIXES: +.SUFFIXES: .c .cpp .h .hpp .y .l +.SUFFIXES: .lo .o .a .so .bc +.SUFFIXES: .ps .dot .d + # # Mark all of these targets as phony. This will hopefully speed up builds # slightly since GNU Make will not try to find implicit rules for targets @@ -212,11 +223,6 @@ ifdef ENABLE_PROFILING PROFILE = -pg endif -# -# Suffixes for library compilation rules -# -.SUFFIXES: .so - ########################################################################### # Library Locations: # These variables describe various library locations: @@ -380,9 +386,6 @@ LinkP := $(Link) -O3 -L$(PROJLIBPROFILESOURCE) -L$(LLVMLIBPROFILESOURCE) $(PR # Create one .o file from a bunch of .o files... Relink := ${LIBTOOL} --mode=link $(CXX) -ifndef SHARED_LIBRARY -Relink += -only-static -endif # # Configure where the item being compiled should go. diff --git a/Makefile.rules b/Makefile.rules index 4b2ecde4367..5d7469a9e85 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -169,6 +169,17 @@ prdirs:: echo "LLVM Source Root: " $(LLVM_SRC_ROOT) echo "LLVM Object Root: " $(LLVM_OBJ_ROOT) +########################################################################### +# Suffixes and implicit rules: +# Empty out the list of suffixes, generate a list that is only +# used by this Makefile, and cancel useless implicit rules. This +# will hopefully speed up compilation a little bit. +########################################################################### +.SUFFIXES: +.SUFFIXES: .c .cpp .h .hpp .y .l +.SUFFIXES: .lo .o .a .so .bc +.SUFFIXES: .ps .dot .d + # # Mark all of these targets as phony. This will hopefully speed up builds # slightly since GNU Make will not try to find implicit rules for targets @@ -212,11 +223,6 @@ ifdef ENABLE_PROFILING PROFILE = -pg endif -# -# Suffixes for library compilation rules -# -.SUFFIXES: .so - ########################################################################### # Library Locations: # These variables describe various library locations: @@ -380,9 +386,6 @@ LinkP := $(Link) -O3 -L$(PROJLIBPROFILESOURCE) -L$(LLVMLIBPROFILESOURCE) $(PR # Create one .o file from a bunch of .o files... Relink := ${LIBTOOL} --mode=link $(CXX) -ifndef SHARED_LIBRARY -Relink += -only-static -endif # # Configure where the item being compiled should go.