summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2001-07-15 13:16:47 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2001-07-15 13:16:47 +0000
commit112a72ce805e2f66850ca1f1932924b0cc6fd670 (patch)
tree221efaff139ebfd590fa71c4d589dab8c3e0824e
parent739a56d26ddd76f7d073745d8be25c53cf39dce5 (diff)
downloadllvm-112a72ce805e2f66850ca1f1932924b0cc6fd670.tar.gz
llvm-112a72ce805e2f66850ca1f1932924b0cc6fd670.tar.bz2
llvm-112a72ce805e2f66850ca1f1932924b0cc6fd670.tar.xz
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
-rw-r--r--Makefile.common34
-rw-r--r--Makefile.rules34
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