[llvm-commits] CVS: llvm/Makefile.common

John Criswell criswell at choi.cs.uiuc.edu
Fri Jun 20 16:26:01 PDT 2003


Changes in directory llvm:

Makefile.common added (r1.93)

---
Log message:

Reverted back to revision 1.91.



---
Diffs of the changes:

Index: llvm/Makefile.common
diff -c /dev/null llvm/Makefile.common:1.1
*** /dev/null	Fri Jun 20 16:25:04 2003
--- llvm/Makefile.common	Wed Jun  6 15:29:01 2001
***************
*** 0 ****
--- 1,170 ----
+ #                                 Makefile.common
+ #
+ # This file is included by all of the LLVM makefiles.  This file defines common
+ # rules to do things like compile a .cpp file or generate dependancy info.
+ # These are platform dependant, so this is the file used to specify these
+ # system dependant operations.
+ #
+ # The following functionality may be set by setting incoming variables:
+ #
+ # 1. LEVEL - The level of the current subdirectory from the top of the 
+ #    MagicStats view.  This level should be expressed as a path, for 
+ #    example, ../.. for two levels deep.
+ #
+ # 2. DIRS - A list of subdirectories to be built.  Fake targets are set up
+ #    so that each of the targets "all", "install", and "clean" each build.
+ #    the subdirectories before the local target.
+ #
+ # 3. Source - If specified, this sets the source code filenames.  If this
+ #    is not set, it defaults to be all of the .cpp, .c, .y, and .l files 
+ #    in the current directory.
+ #
+ 
+ # Default Rule:
+ all ::
+ 
+ # Default for install is to at least build everything...
+ install ::
+ 
+ #--------------------------------------------------------------------
+ # Installation configuration options... 
+ #--------------------------------------------------------------------
+ 
+ #BinInstDir=/usr/local/bin
+ #LibInstDir=/usrl/local/lib/xxx
+ #DocInstDir=/usr/doc/xxx
+ 
+ #---------------------------------------------------------
+ # Compilation options...
+ #---------------------------------------------------------
+ 
+ # Add -L options to the link command lines...
+ LibPathsO = -L $(LEVEL)/lib/VMCore/Release \
+             -L $(LEVEL)/lib/Assembly/Parser/Release \
+             -L $(LEVEL)/lib/Assembly/Writer/Release \
+             -L $(LEVEL)/lib/Analysis/Release \
+             -L $(LEVEL)/lib/Bytecode/Writer/Release \
+             -L $(LEVEL)/lib/Bytecode/Reader/Release \
+             -L $(LEVEL)/lib/Optimizations/Release
+ 
+ LibPathsG = $(LibPathsO:Release=Debug)
+ 
+ # Enable this for profiling support with 'gprof'
+ #Prof = -pg
+ 
+ # TODO: Get rid of exceptions! : -fno-exceptions -fno-rtti
+ CompileCommonOpts = $(Prof) -Wall -Winline -W  -Wwrite-strings -Wno-unused -I$(LEVEL)/include
+ 
+ # Compile a file, don't link...
+ Compile  = $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CompileCommonOpts)
+ CompileG = $(Compile) -g  -D_DEBUG
+ # Add This for DebugMalloc: -fno-defer-pop
+ CompileO = $(Compile) -O3 -DNDEBUG -finline-functions -felide-constructors -fnonnull-objects -freg-struct-return -fshort-enums
+ 
+ # Link final executable
+ Link     = $(CXX) $(Prof) 
+ LinkG    = $(Link) -g $(LibPathsG)
+ LinkO    = $(Link) -O3 $(LibPathsO)
+ 
+ # Create a .so file from a .cpp file...
+ #MakeSO   = $(CXX) -shared $(Prof)
+ MakeSO   = $(CXX) -G $(Prof)
+ MakeSOG  = $(MakeSO) -g
+ MakeSOO  = $(MakeSO) -O3
+ 
+ # Create dependancy file from CPP file, send to stdout.
+ Depend   = $(CXX) -MM -I$(LEVEL)/include $(CPPFLAGS) 
+ 
+ # Archive a bunch of .o files into a .a file...
+ AR       = ar cq 
+ 
+ #----------------------------------------------------------
+ 
+ # Source includes all of the cpp files, and objects are derived from the
+ # source files...
+ ifndef Source
+ Source   = $(wildcard *.cpp *.c *.y *.l)
+ endif
+ Objs = $(sort $(addsuffix .o,$(basename $(Source))))
+ ObjectsO = $(addprefix Release/,$(Objs))
+ ObjectsG = $(addprefix Debug/,$(Objs))
+ 
+ #---------------------------------------------------------
+ # Handle the DIRS option
+ #---------------------------------------------------------
+ 
+ ifdef DIRS  # Only do this if we're using DIRS!
+ 
+ all     :: $(addsuffix /.makeall    , $(DIRS))
+ install :: $(addsuffix /.makeinstall, $(DIRS))
+ clean   :: $(addsuffix /.makeclean  , $(DIRS))
+ 
+ %/.makeall %/.makeclean %/.makeinstall:
+ 	cd $(@D); $(MAKE) $(subst $(@D)/.make,,$@)
+ endif
+ 
+ #---------------------------------------------------------
+ # Handle the LIBRARYNAME option - used when building libs...
+ #---------------------------------------------------------
+ 
+ ifdef LIBRARYNAME
+ LIBNAME_O := Release/lib$(LIBRARYNAME).so
+ LIBNAME_G := Debug/lib$(LIBRARYNAME).so
+ 
+ all:: $(LIBNAME_G)
+ #$(LIBNAME_O)
+ # TODO: Enable optimized builds
+ 
+ $(LIBNAME_O): $(ObjectsO) $(LibSubDirs) Release/.dir
+ 	@echo ======= Linking $(LIBRARYNAME) release library =======
+ 	$(MakeSOO) -o $@ $(ObjectsO) $(LibSubDirs) $(LibLinkOpts)
+ 
+ $(LIBNAME_G): $(ObjectsG) $(LibSubDirs) Debug/.dir
+ 	@echo ======= Linking $(LIBRARYNAME) debug library =======
+ 	$(MakeSOG) -o $@ $(ObjectsG) $(LibSubDirs) $(LibLinkOpts)
+ 
+ endif
+ 
+ 
+ #---------------------------------------------------------
+ 
+ # Create dependacies 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...
+ Release/%.o: %.cpp Release/.dir Depend/.dir
+ 	$(CompileO) $< -o $@
+ 
+ Debug/%.o: %.cpp 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
+ 	flex -t $< | sed '/^find_rule/d' | sed 's/void yyunput/inline void yyunput/' | sed 's/void \*yy_flex_realloc/inline void *yy_flex_realloc/' > $@
+ 
+ # Rule for building the bison parsers...
+ 
+ %.cpp %.h : %.y
+ 	bison -d -p $(<:%Parser.y=%) $(basename $@).y
+ 	mv -f $(basename $@).tab.c $(basename $@).cpp
+ 	mv -f $(basename $@).tab.h $(basename $@).h
+ 
+ # To create the directories...
+ %/.dir:
+ 	mkdir -p $(@D)
+ 	@date > $@
+ 
+ # Clean does not remove the output files... just the temporaries
+ clean::
+ 	rm -rf Debug Release Depend
+ 	rm -f core *.o *.d *.so *~ *.flc
+ 
+ # If dependancies were generated for the file that included this file,
+ # include the dependancies now...
+ #
+ SourceDepend = $(addsuffix .d,$(addprefix Depend/,$(basename $(Source))))
+ ifneq ($(SourceDepend),)
+ include $(SourceDepend)
+ endif





More information about the llvm-commits mailing list