mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:40:38 +00:00
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. llvm-svn: 3705
This commit is contained in:
parent
d7ccee7961
commit
64ea4a3bd2
18
Makefile.Linux
Normal file
18
Makefile.Linux
Normal file
@ -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
|
||||
|
||||
|
18
Makefile.SunOS
Normal file
18
Makefile.SunOS
Normal file
@ -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 :=
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user