mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
1f291722b2
llvm-svn: 6400
48 lines
1.7 KiB
Makefile
48 lines
1.7 KiB
Makefile
# test/Libraries/Makefile.libs
|
|
#
|
|
# This makefile should be used by subdirectories, which are libraries that are
|
|
# to be compiled to llvm bytecode and linked together with a specified name.
|
|
#
|
|
# Variables to be defined before including this makefile:
|
|
#
|
|
# 1. LEVEL - Must be set as per normal semantics: The depth from the top of tree
|
|
# 2. LIBNAME - Name of library to link together. Forms lib<LIBNAME>.bc
|
|
# 3. EXPORTED_SYMBOL_LIST - If this symbol is defined, it contains a comma
|
|
# separated list of symbols that are exported by the library. All other
|
|
# symbols are marked internal, reducing namespace pollution.
|
|
#
|
|
|
|
DESTLIBDIR := $(LEVEL)/test/Libraries/Output
|
|
DESTLIBNAME := $(LEVEL)/test/Libraries/Output/lib$(LIBNAME).bc
|
|
|
|
all:: $(DESTLIBNAME)
|
|
|
|
include $(LEVEL)/test/Makefile.tests
|
|
|
|
# Figure out what object files we want to build...
|
|
LObjs := $(sort $(addsuffix .bc, $(basename $(Source))))
|
|
LObjects := $(addprefix Output/,$(LObjs))
|
|
|
|
.PRECIOUS: $(LObjects)
|
|
|
|
# If the library specified a list of symbols to export, add an internalize pass
|
|
# to the link options.
|
|
ifdef EXPORTED_SYMBOL_LIST
|
|
LLINK_OPTS += -internalize -internalize-public-api-list=$(EXPORTED_SYMBOL_LIST)
|
|
endif
|
|
|
|
# Standard set of postlink optimizations...
|
|
LLINK_OPTS += -inline -globaldce -funcresolve -deadtypeelim -instcombine -simplifycfg
|
|
|
|
# Link the library, then perform postlink optimization...
|
|
$(DESTLIBNAME): $(DESTLIBDIR)/.dir $(LObjects) $(LLINK) $(LOPT)
|
|
$(LLINK) -f $(LObjects) $(LDFLAGS) | \
|
|
$(LOPT) -f -q $(LLINK_OPTS) -o $@
|
|
|
|
# Install target for libraries: Copy into the gcc install directory.
|
|
#
|
|
INSTALL_DIR := $(LLVMGCCDIR)/bytecode-libs/
|
|
|
|
install:: $(DESTLIBNAME)
|
|
cp $(DESTLIBNAME) $(INSTALL_DIR)
|