X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=Makefile.rules;h=bc93c39f0dc361f4840de487391332d9ec147234;hb=8b16a1691882faf169c61fe7adbaeb8c25355881;hp=e058640578701b6c76ea26819cc7e4c6310bc2e9;hpb=dacca356a7ff5e3f1e823a72aaffc457fba447bf;p=oota-llvm.git diff --git a/Makefile.rules b/Makefile.rules index e0586405787..bc93c39f0dc 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -109,7 +109,7 @@ prdirs:: ########################################################################### .SUFFIXES: .SUFFIXES: .c .cpp .h .hpp .y .l -.SUFFIXES: .lo .o .a .so .bc .td +.SUFFIXES: .lo .o .a $(SHLIBEXT) .bc .td .SUFFIXES: .ps .dot .d # @@ -289,6 +289,9 @@ CPPFLAGS += -D_GNU_SOURCE # Pull in limit macros from stdint.h, even in C++: CPPFLAGS += -D__STDC_LIMIT_MACROS +### FIXME: this is GCC specific +CPPFLAGS += -DDEPRECATED='__attribute__ ((deprecated))' + CompileCommonOpts := -Wall -W -Wwrite-strings -Wno-unused CompileOptimizeOpts := -O3 -DNDEBUG -finline-functions @@ -352,7 +355,7 @@ Depend := $(CXX) -MM -I$(LEVEL)/include $(CPPFLAGS) DependC := $(CC) -MM -I$(LEVEL)/include $(CPPFLAGS) # Archive a bunch of .o files into a .a file... -AR = ${AR_PATH} cq +AR = $(AR_PATH) cr #---------------------------------------------------------- @@ -454,15 +457,20 @@ endif # of it. For this reason, sometimes it's useful to use libraries as .a files. ########################################################################### +# Install rule for making bytecode library directory if it does not exist. +# Trigger this by making libraries that need to be installed here depend on it. +$(DESTDIR)$(bytecode_libdir): + $(MKDIR) $@ + ifdef LIBRARYNAME # Make sure there isn't any extranous whitespace on the LIBRARYNAME option LIBRARYNAME := $(strip $(LIBRARYNAME)) -LIBNAME_O := $(DESTLIBRELEASE)/lib$(LIBRARYNAME).so -LIBNAME_P := $(DESTLIBPROFILE)/lib$(LIBRARYNAME).so -LIBNAME_G := $(DESTLIBDEBUG)/lib$(LIBRARYNAME).so -LIBNAME_CUR := $(DESTLIBCURRENT)/lib$(LIBRARYNAME).so +LIBNAME_O := $(DESTLIBRELEASE)/lib$(LIBRARYNAME)$(SHLIBEXT) +LIBNAME_P := $(DESTLIBPROFILE)/lib$(LIBRARYNAME)$(SHLIBEXT) +LIBNAME_G := $(DESTLIBDEBUG)/lib$(LIBRARYNAME)$(SHLIBEXT) +LIBNAME_CUR := $(DESTLIBCURRENT)/lib$(LIBRARYNAME)$(SHLIBEXT) LIBNAME_AO := $(DESTLIBRELEASE)/lib$(LIBRARYNAME).a LIBNAME_AP := $(DESTLIBPROFILE)/lib$(LIBRARYNAME).a LIBNAME_AG := $(DESTLIBDEBUG)/lib$(LIBRARYNAME).a @@ -482,9 +490,9 @@ LIBNAME_BC := $(DESTLIBBYTECODE)/lib$(LIBRARYNAME).bc # dynamic target builds a shared object version of the library... dynamic:: $(LIBNAME_CUR) bytecodelib:: $(LIBNAME_BC) -install-bytecode-library:: $(LLVMGCCDIR)/bytecode-libs/lib$(LIBRARYNAME).bc +install-bytecode-library:: $(DESTDIR)$(bytecode_libdir)/lib$(LIBRARYNAME).bc -$(LLVMGCCDIR)/bytecode-libs/lib$(LIBRARYNAME).bc: $(LIBNAME_BC) +$(DESTDIR)$(bytecode_libdir)/lib$(LIBRARYNAME).bc: $(LIBNAME_BC) $(DESTDIR)$(bytecode_libdir) @${ECHO} ======= Installing $(LIBRARYNAME) bytecode library ======= cp $< $@ @@ -543,8 +551,8 @@ $(LIBNAME_G): $(ObjectsG) $(LibSubDirs) $(DESTLIBDEBUG)/.dir @${ECHO} ======= Finished building $(LIBRARYNAME) dynamic debug library ======= install-dynamic-library: $(LIBNAME_CUR) - $(MKDIR) $(libdir) - $(VERB) $(LIBTOOL) --mode=install $(INSTALL) $(LIBNAME_CUR) $(libdir)/lib$(LIBRARYNAME).so + $(MKDIR) $(DESTDIR)$(libdir) + $(VERB) $(LIBTOOL) --mode=install $(INSTALL) $(LIBNAME_CUR) $(DESTDIR)$(libdir)/lib$(LIBRARYNAME)$(SHLIBEXT) # # Rules for building static archive libraries. @@ -568,8 +576,8 @@ $(LIBNAME_AG): $(ObjectsG) $(LibSubDirs) $(DESTLIBDEBUG)/.dir @${ECHO} ======= Finished building $(LIBRARYNAME) archive debug library ======= install-archive-library: $(LIBNAME_ACUR) - $(MKDIR) $(libdir) - $(VERB) $(LIBTOOL) --mode=install $(INSTALL) $(LIBNAME_ACUR) $(libdir)/lib$(LIBRARYNAME).a + $(MKDIR) $(DESTDIR)$(libdir) + $(VERB) $(LIBTOOL) --mode=install $(INSTALL) $(LIBNAME_ACUR) $(DESTDIR)$(libdir)/lib$(LIBRARYNAME).a # # Rules for building .o libraries. @@ -598,28 +606,11 @@ $(LIBNAME_OBJG): $(ObjectsG) $(LibSubDirs) $(DESTLIBDEBUG)/.dir $(VERB) $(Relink) -o $@ $(RObjectsG) $(LibSubDirs) install-single-object-library: $(LIBNAME_OBJCUR) - $(MKDIR) $(libdir) - $(VERB) $(LIBTOOL) --mode=install $(INSTALL) $(LIBNAME_OBJCUR) $(libdir)/$(LIBRARYNAME).o + $(MKDIR) $(DESTDIR)$(libdir) + $(VERB) $(LIBTOOL) --mode=install $(INSTALL) $(LIBNAME_OBJCUR) $(DESTDIR)$(libdir)/$(LIBRARYNAME).o endif -#------------------------------------------------------------------------ -# Create a TAGS database for emacs -#------------------------------------------------------------------------ - -ifneq ($(ETAGS),false) -ifeq ($(LEVEL), .) -SRCDIRS := $(wildcard $(SourceDir)/include $(SourceDir)/lib $(SourceDir)/tools) - -tags: - $(ETAGS) -l c++ `find $(SRCDIRS) -name '*.cpp' -o -name '*.h'` -all:: tags -endif -else -tags: - ${ECHO} "Cannot build $@: The program etags is not installed" -endif - #------------------------------------------------------------------------ # Handle the TOOLNAME option - used when building tool executables... #------------------------------------------------------------------------ @@ -698,8 +689,8 @@ $(TOOLEXENAME_P): $(ObjectsP) $(USED_LIB_PATHS_P) $(DESTTOOLPROFILE)/.dir @${ECHO} ======= Finished building $(TOOLNAME) profile executable ======= install:: $(TOOLEXENAMES) - $(MKDIR) $(bindir) - $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) -c -m 0755 $(TOOLEXENAMES) $(bindir)/$(TOOLNAME) + $(MKDIR) $(DESTDIR)$(bindir) + $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) -c -m 0755 $(TOOLEXENAMES) $(DESTDIR)$(bindir)/$(TOOLNAME) endif @@ -813,7 +804,10 @@ clean:: $(VERB) $(RM) -rf $(BUILD_OBJ_DIR)/Debug $(BUILD_OBJ_DIR)/Release $(VERB) $(RM) -rf $(BUILD_OBJ_DIR)/Profile $(BUILD_OBJ_DIR)/Depend $(VERB) $(RM) -rf $(BUILD_OBJ_DIR)/BytecodeObj - $(VERB) $(RM) -f core core.[0-9][0-9]* *.o *.d *.so *~ *.flc + $(VERB) $(RM) -f core core.[0-9][0-9]* *.o *.d *~ *.flc +ifneq ($(strip $(SHLIBEXT)),) # Extra paranoia - make real sure SHLIBEXT is set + $(VERB) $(RM) -f *$(SHLIBEXT) +endif $(VERB) $(RM) -f $(LEX_OUTPUT) $(YACC_OUTPUT) ###########################################################################