From 112a72ce805e2f66850ca1f1932924b0cc6fd670 Mon Sep 17 00:00:00 2001 From: "Vikram S. Adve" Date: Sun, 15 Jul 2001 13:16:47 +0000 Subject: Changed default to building library archives instead of shared objects. Added support for compiling *.c files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197 91177308-0d34-0410-b5e6-96231b3b80d8 --- Makefile.common | 34 +++++++++++++++++++++++++++++----- Makefile.rules | 34 +++++++++++++++++++++++++++++----- 2 files changed, 58 insertions(+), 10 deletions(-) diff --git a/Makefile.common b/Makefile.common index 5755ece34d..027c4b6226 100644 --- a/Makefile.common +++ b/Makefile.common @@ -77,6 +77,7 @@ Depend = $(CXX) -MM -I$(LEVEL)/include $(CPPFLAGS) # Archive a bunch of .o files into a .a file... AR = ar cq +MakeLib = $(AR) #---------------------------------------------------------- @@ -85,7 +86,8 @@ AR = ar cq ifndef Source Source = $(wildcard *.cpp *.c *.y *.l) endif -Objs = $(sort $(addsuffix .o,$(basename $(Source)))) + +Objs = $(addsuffix .o,$(basename $(Source))) ObjectsO = $(addprefix Release/,$(Objs)) ObjectsG = $(addprefix Debug/,$(Objs)) @@ -108,11 +110,13 @@ endif #--------------------------------------------------------- ifdef LIBRARYNAME + LIBNAME_O := Release/lib$(LIBRARYNAME).so LIBNAME_G := Debug/lib$(LIBRARYNAME).so +LIBNAME_AO := Release/lib$(LIBRARYNAME).a +LIBNAME_AG := Debug/lib$(LIBRARYNAME).a -all:: $(LIBNAME_G) -#$(LIBNAME_O) +all:: $(LIBNAME_AG) # TODO: Enable optimized builds $(LIBNAME_O): $(ObjectsO) $(LibSubDirs) Release/.dir Depend/.dir @@ -123,22 +127,42 @@ $(LIBNAME_G): $(ObjectsG) $(LibSubDirs) Debug/.dir Depend/.dir @echo ======= Linking $(LIBRARYNAME) debug library ======= $(MakeSOG) -o $@ $(ObjectsG) $(LibSubDirs) $(LibLinkOpts) +$(LIBNAME_AO): $(ObjectsO) $(LibSubDirs) Release/.dir Depend/.dir + @echo ======= Linking $(LIBRARYNAME) release library ======= + rm -f $@ + $(MakeLib) $@ $(ObjectsO) $(LibSubDirs) + +$(LIBNAME_AG): $(ObjectsG) $(LibSubDirs) Debug/.dir Depend/.dir + @echo ======= Linking $(LIBRARYNAME) debug library ======= + rm -f $@ + $(MakeLib) $@ $(ObjectsG) $(LibSubDirs) + endif #--------------------------------------------------------- -# Create dependacies for the cpp files... +# Create dependencies for the *.cpp files... Depend/%.d: %.cpp Depend/.dir $(Depend) $< | sed 's|$*\.o *|Release/& Debug/& Depend/$(@F)|g' > $@ -# Create .o files in the ObjectFiles directory from the .cpp files... +# Create dependencies for the *.c files... +Depend/%.d: %.c Depend/.dir + $(Depend) $< | sed 's|$*\.o *|Release/& Debug/& Depend/$(@F)|g' > $@ + +# Create .o files in the ObjectFiles directory from the .cpp and .c files... Release/%.o: %.cpp Release/.dir Depend/.dir $(CompileO) $< -o $@ +Release/%.o: %.c Release/.dir Depend/.dir + $(CompileO) $< -o $@ + Debug/%.o: %.cpp Debug/.dir Depend/.dir $(CompileG) $< -o $@ +Debug/%.o: %.c Debug/.dir Depend/.dir + $(CompileG) $< -o $@ + # Create a .cpp source file from a flex input file... this uses sed to cut down # on the warnings emited by GCC... %.cpp: %.l diff --git a/Makefile.rules b/Makefile.rules index 5755ece34d..027c4b6226 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -77,6 +77,7 @@ Depend = $(CXX) -MM -I$(LEVEL)/include $(CPPFLAGS) # Archive a bunch of .o files into a .a file... AR = ar cq +MakeLib = $(AR) #---------------------------------------------------------- @@ -85,7 +86,8 @@ AR = ar cq ifndef Source Source = $(wildcard *.cpp *.c *.y *.l) endif -Objs = $(sort $(addsuffix .o,$(basename $(Source)))) + +Objs = $(addsuffix .o,$(basename $(Source))) ObjectsO = $(addprefix Release/,$(Objs)) ObjectsG = $(addprefix Debug/,$(Objs)) @@ -108,11 +110,13 @@ endif #--------------------------------------------------------- ifdef LIBRARYNAME + LIBNAME_O := Release/lib$(LIBRARYNAME).so LIBNAME_G := Debug/lib$(LIBRARYNAME).so +LIBNAME_AO := Release/lib$(LIBRARYNAME).a +LIBNAME_AG := Debug/lib$(LIBRARYNAME).a -all:: $(LIBNAME_G) -#$(LIBNAME_O) +all:: $(LIBNAME_AG) # TODO: Enable optimized builds $(LIBNAME_O): $(ObjectsO) $(LibSubDirs) Release/.dir Depend/.dir @@ -123,22 +127,42 @@ $(LIBNAME_G): $(ObjectsG) $(LibSubDirs) Debug/.dir Depend/.dir @echo ======= Linking $(LIBRARYNAME) debug library ======= $(MakeSOG) -o $@ $(ObjectsG) $(LibSubDirs) $(LibLinkOpts) +$(LIBNAME_AO): $(ObjectsO) $(LibSubDirs) Release/.dir Depend/.dir + @echo ======= Linking $(LIBRARYNAME) release library ======= + rm -f $@ + $(MakeLib) $@ $(ObjectsO) $(LibSubDirs) + +$(LIBNAME_AG): $(ObjectsG) $(LibSubDirs) Debug/.dir Depend/.dir + @echo ======= Linking $(LIBRARYNAME) debug library ======= + rm -f $@ + $(MakeLib) $@ $(ObjectsG) $(LibSubDirs) + endif #--------------------------------------------------------- -# Create dependacies for the cpp files... +# Create dependencies for the *.cpp files... Depend/%.d: %.cpp Depend/.dir $(Depend) $< | sed 's|$*\.o *|Release/& Debug/& Depend/$(@F)|g' > $@ -# Create .o files in the ObjectFiles directory from the .cpp files... +# Create dependencies for the *.c files... +Depend/%.d: %.c Depend/.dir + $(Depend) $< | sed 's|$*\.o *|Release/& Debug/& Depend/$(@F)|g' > $@ + +# Create .o files in the ObjectFiles directory from the .cpp and .c files... Release/%.o: %.cpp Release/.dir Depend/.dir $(CompileO) $< -o $@ +Release/%.o: %.c Release/.dir Depend/.dir + $(CompileO) $< -o $@ + Debug/%.o: %.cpp Debug/.dir Depend/.dir $(CompileG) $< -o $@ +Debug/%.o: %.c Debug/.dir Depend/.dir + $(CompileG) $< -o $@ + # Create a .cpp source file from a flex input file... this uses sed to cut down # on the warnings emited by GCC... %.cpp: %.l -- cgit v1.2.3