diff options
author | Chris Lattner <sabre@nondot.org> | 2002-09-13 22:14:47 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-09-13 22:14:47 +0000 |
commit | 4bb13b8eb1bf3314894c8d388770a6bc2665f6fb (patch) | |
tree | 6e6718c4bacaaaffe2e2b380b91218923d6b0195 | |
parent | 9ada838909e3577e044b05835bc69e092fb799d4 (diff) |
Factor platform specific makefile directives out into their own makefile
fragments. This is gross, but having tons of confusing conditionals all
throughout the build system seems worst.
Credits got to Casey Carter for the idea.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3705 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | Makefile.Linux | 18 | ||||
-rw-r--r-- | Makefile.SunOS | 18 | ||||
-rw-r--r-- | Makefile.common | 29 | ||||
-rw-r--r-- | Makefile.rules | 29 |
4 files changed, 60 insertions, 34 deletions
diff --git a/Makefile.Linux b/Makefile.Linux new file mode 100644 index 0000000000..2a3e4a6335 --- /dev/null +++ b/Makefile.Linux @@ -0,0 +1,18 @@ +#===-- Makefile.Linux - Linux specific makefile options ---*- makefile -*--====# +# +# This file is included by all other files, through Makefile.common, but only +# when compiling on a Linux based platform. +# +#===-----------------------------------------------------------------------====# + +# MakeSharedObjectOption - This option is passed to the linker by +# Makefile.common when compiling a shared object. +# +MakeSharedObjectOption := -shared + +# ExportSymbols - This is used by tools that need to make sure that all of their +# symbols are exported for use at runtime by dlsym. +# +ExportSymbols := -Wl,--export-dynamic + + diff --git a/Makefile.SunOS b/Makefile.SunOS new file mode 100644 index 0000000000..9afae8a176 --- /dev/null +++ b/Makefile.SunOS @@ -0,0 +1,18 @@ +#===-- Makefile.SunOS - SunOS specific makefile options ---*- makefile -*--====# +# +# This file is included by all other files, through Makefile.common, but only +# when compiling on a solaris based platform. +# +#===-----------------------------------------------------------------------====# + +# MakeSharedObjectOption - This option is passed to the linker by +# Makefile.common when compiling a shared object. +# +MakeSharedObjectOption := -G + +# ExportSymbols - This is used by tools that need to make sure that all of their +# symbols are exported for use at runtime by dlsym. +# +ExportSymbols := + + diff --git a/Makefile.common b/Makefile.common index ba24c10dc6..38a4e66cf6 100644 --- a/Makefile.common +++ b/Makefile.common @@ -46,6 +46,14 @@ include $(LEVEL)/Makefile.config # #ENABLE_OPTIMIZED = 1 + +# Figure out how to do platform specific stuff on this platform. This is really +# gross and should be autoconfiscated (automake actually), but should hopefully +# work on Linux and solaris (SunOS). +# +UNAME := $(shell uname) +include $(LEVEL)/Makefile.$(UNAME) + ifdef SHARED_LIBRARY # if SHARED_LIBRARY is specified, the default is to build the dynamic lib dynamic :: @@ -142,6 +150,10 @@ LinkO := $(Link) -O3 -L $(LIBRELEASE) # Create one .o file from a bunch of .o files... Relink = ld -r +# MakeSO - Create a .so file from a .o files... +MakeSO := $(CXX) $(MakeSharedObjectOption) $(PROFILE) +MakeSOO := $(MakeSO) -O3 + # Create dependancy file from CPP file, send to stdout. Depend := $(CXX) -MM -I$(LEVEL)/include $(CPPFLAGS) @@ -194,23 +206,6 @@ endif ifdef LIBRARYNAME -# Figure out how to make a .so file on this platform. This is really gross and -# should be autoconfiscated (automake actually), but should hopefully work on -# linux and solaris. -# - -# Create a .so file from a .o files... -UNAME := $(shell uname) - -ifeq ($(UNAME), SunOS) -MakeSO := $(CXX) -G $(PROFILE) -else -MakeSO := $(CXX) -shared $(PROFILE) -endif - -MakeSOO := $(MakeSO) -O3 - - LIBNAME_O := $(LIBRELEASE)/lib$(LIBRARYNAME).so LIBNAME_G := $(LIBDEBUG)/lib$(LIBRARYNAME).so LIBNAME_AO := $(LIBRELEASE)/lib$(LIBRARYNAME).a diff --git a/Makefile.rules b/Makefile.rules index ba24c10dc6..38a4e66cf6 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -46,6 +46,14 @@ include $(LEVEL)/Makefile.config # #ENABLE_OPTIMIZED = 1 + +# Figure out how to do platform specific stuff on this platform. This is really +# gross and should be autoconfiscated (automake actually), but should hopefully +# work on Linux and solaris (SunOS). +# +UNAME := $(shell uname) +include $(LEVEL)/Makefile.$(UNAME) + ifdef SHARED_LIBRARY # if SHARED_LIBRARY is specified, the default is to build the dynamic lib dynamic :: @@ -142,6 +150,10 @@ LinkO := $(Link) -O3 -L $(LIBRELEASE) # Create one .o file from a bunch of .o files... Relink = ld -r +# MakeSO - Create a .so file from a .o files... +MakeSO := $(CXX) $(MakeSharedObjectOption) $(PROFILE) +MakeSOO := $(MakeSO) -O3 + # Create dependancy file from CPP file, send to stdout. Depend := $(CXX) -MM -I$(LEVEL)/include $(CPPFLAGS) @@ -194,23 +206,6 @@ endif ifdef LIBRARYNAME -# Figure out how to make a .so file on this platform. This is really gross and -# should be autoconfiscated (automake actually), but should hopefully work on -# linux and solaris. -# - -# Create a .so file from a .o files... -UNAME := $(shell uname) - -ifeq ($(UNAME), SunOS) -MakeSO := $(CXX) -G $(PROFILE) -else -MakeSO := $(CXX) -shared $(PROFILE) -endif - -MakeSOO := $(MakeSO) -O3 - - LIBNAME_O := $(LIBRELEASE)/lib$(LIBRARYNAME).so LIBNAME_G := $(LIBDEBUG)/lib$(LIBRARYNAME).so LIBNAME_AO := $(LIBRELEASE)/lib$(LIBRARYNAME).a |