Factor platform specific makefile directives out into their own makefile
authorChris Lattner <sabre@nondot.org>
Fri, 13 Sep 2002 22:14:47 +0000 (22:14 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 13 Sep 2002 22:14:47 +0000 (22:14 +0000)
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

Makefile.Linux [new file with mode: 0644]
Makefile.SunOS [new file with mode: 0644]
Makefile.common
Makefile.rules

diff --git a/Makefile.Linux b/Makefile.Linux
new file mode 100644 (file)
index 0000000..2a3e4a6
--- /dev/null
@@ -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 (file)
index 0000000..9afae8a
--- /dev/null
@@ -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 :=
+
+
index ba24c10dc64e477a28c66dc8332bb5fb9d127529..38a4e66cf6a9c0315a9658a041ee86cf855058fb 100644 (file)
@@ -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
index ba24c10dc64e477a28c66dc8332bb5fb9d127529..38a4e66cf6a9c0315a9658a041ee86cf855058fb 100644 (file)
@@ -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