printvars uninstall-local
TOPLEV_TARGETS := dist dist-check dist-clean tags
USER_TARGETS := $(RECURSIVE_TARGETS) $(LOCAL_TARGETS) $(TOPLEV_TARGETS)
-INTERNAL_TARGETS := preconditions \
- install-config-dir install-shared-library install-bytecode-library \
- install-archive-library install-relinked-library install-tool \
- uninstall-config-dir uninstall-shared-library uninstall-bytecode-library \
- uninstall-archive-library uninstall-relinked-library uninstall-tool
+INTERNAL_TARGETS := preconditions
###############################################################################
# INITIALIZATION: Basic things the makefile needs
# PRECONDITIONS: that which must be built/checked first
################################################################################
-SRCMKFILES := $(BUILD_SRC_DIR)/Makefile $(filter-out Makefile.rules %.in,\
- $(wildcard $(BUILD_SRC_DIR)/Makefile.*))
+SRCMKFILES := $(filter %Makefile %Makefile.rules %Makefile.tests \
+ %Makefile.JIT,$(wildcard $(BUILD_SRC_DIR)/Makefile*))
OBJMKFILES := $(subst $(BUILD_SRC_DIR),$(BUILD_OBJ_DIR),$(SRCMKFILES))
CONFIGURE := $(LLVM_SRC_ROOT)/configure
CONFIG_STATUS := $(LLVM_OBJ_ROOT)/config.status
# Adjust linker flags for building an executable
ifdef TOOLNAME
- LDFLAGS += -rpath $(TOOLDIR) -export-dynamic $(TOOLLINKOPTS)
-endif
-
-# Use TOOLLINKOPTSB to pass options to the linker like library search
-# path etc.
-# Note that this is different from TOOLLINKOPTS, these options
-# are passed to the linker *before* the USEDLIBS options are passed.
-# e.g. usage TOOLLINKOPTSB = -L/home/xxx/lib
-ifdef TOOLLINKOPTSB
-LDFLAGS += $(TOOLLINKOPTSB)
+ LDFLAGS += -rpath $(TOOLDIR) -export-dynamic
endif
#----------------------------------------------------------
BCCompile.C = $(LLVMGCC) $(CPPFLAGS) $(CompileCommonOpts) $(CFLAGS) -c
Link = $(LIBTOOL) --tag=CXX --mode=link $(CXX) $(CPPFLAGS) \
$(CompileCommonOpts) $(LDFLAGS) $(STRIP)
-Relink = $(LIBTOOL) --tag=CXX --mode=link $(CXX)
+Relink = $(LIBTOOL) --tag=CXX --mode=link $(CXX) $(CPPFLAGS) \
+ $(CompileCommonOpts)
BCLinkLib = $(LLVMGCC) -shared -nostdlib
Burg = $(BURG) -I $(BUILD_SRC_DIR)
TableGen = $(TBLGEN) -I $(BUILD_SRC_DIR)
# DIRECTORIES: Handle recursive descent of directory structure
###############################################################################
+#---------------------------------------------------------
+# Provide rules to make install dirs. This must be early
+# in the file so they get built before dependencies
+#---------------------------------------------------------
+
+$(bindir):
+ $(VERB) $(MKDIR) $(bindir)
+
+$(libdir):
+ $(VERB) $(MKDIR) $(libdir)
+
+$(bytecode_libdir):
+ $(VERB) $(MKDIR) $(bytecode_libdir)
+
+$(sysconfdir):
+ $(VERB) $(MKDIR) $(sysconfdir)
+
+
#---------------------------------------------------------
# Handle the DIRS options for sequential construction
#---------------------------------------------------------
#---------------------------------------------------------
ifdef CONFIG_FILES
-install-local:: install-config-dir
-
-install-config-dir: $(sysconfdir) $(CONFIG_FILES)
+install-local:: $(sysconfdir) $(CONFIG_FILES)
$(VERB)$(ECHO) Installing Configuration Files To $(sysconfdir)
$(VERB)for file in $(CONFIG_FILES); do \
$(INSTALL) $(BUILD_SRC_DIR)/$${file} $(sysconfdir) ; \
done
-uninstall-local:: uninstall-config-dir
-
-uninstall-config-dir:
+uninstall-local::
$(VERB)$(ECHO) Uninstalling Configuration Files From $(sysconfdir)
$(VERB)for file in $(CONFIG_FILES); do \
$(RM) -f $(sysconfdir)/$${file} ; \
done
-$(sysconfdir):
- $(VERB) $(MKDIR) $(sysconfdir)
-
endif
###############################################################################
# Library Build Rules: Four ways to build a library
###############################################################################
-$(libdir):
- $(VERB) $(MKDIR) $(libdir)
-
-$(bytecode_libdir):
- $(VERB) $(MKDIR) $(bytecode_libdir)
-
-
# if we're building a library ...
ifdef LIBRARYNAME
endif
DestSharedLib = $(libdir)/lib$(LIBRARYNAME)$(SHLIBEXT)
-install-local:: install-shared-library
-install-shared-library: $(libdir) $(DestSharedLib)
+install-local:: $(DestSharedLib)
-$(DestSharedLib): $(LIBNAME_LA)
+$(DestSharedLib): $(libdir) $(LIBNAME_LA)
@$(ECHO) Installing $(CONFIGURATION) Shared Library $(DestSharedLib)
$(VERB) $(LIBTOOL) --mode=install $(INSTALL) $(LIBNAME_LA) $(DestSharedLib)
$(VERB) $(LIBTOOL) --finish $(libdir)
-uninstall-local:: uninstall-shared-library
-
-uninstall-shared-library:
+uninstall-local::
@$(ECHO) Uninstalling $(CONFIGURATION) Shared Library $(DestSharedLib)
$(VERB) $(RM) -f $(DestSharedLib)
DestBytecodeLib = $(bytecode_libdir)/lib$(LIBRARYNAME).bc
-install-local:: install-bytecode-library
-
-install-bytecode-library: $(bytecode_libdir) $(DestBytecodeLib)
+install-local:: $(DestBytecodeLib)
-$(DestBytecodeLib): $(LIBNAME_BC) $(bytecode_libdir)
+$(DestBytecodeLib): $(bytecode_libdir) $(LIBNAME_BC)
@$(ECHO) Installing $(CONFIGURATION) Bytecode Library $(DestBytecodeLib)
- $(VERB) $(INSTALL) $< $@
-
-uninstall-local:: uninstall-bytecode-library
+ $(VERB) $(INSTALL) $(LIBNAME_BC) $@
-uninstall-bytecode-library:
+uninstall-local::
@$(ECHO) Uninstalling $(CONFIGURATION) Bytecode Library $(DestBytecodeLib)
$(VERB) $(RM) -f $(DestBytecodeLib)
DestRelinkedLib = $(libdir)/$(LIBRARYNAME).o
-install-local:: install-relinked-library
-
-install-relinked-library: $(libdir) $(DestRelinkedLib)
+install-local:: $(DestRelinkedLib)
-$(DestRelinkedLib): $(LIBNAME_O)
+$(DestRelinkedLib): $(libdir) $(LIBNAME_O)
@$(ECHO) Installing $(CONFIGURATION) Object Library $(DestRelinkedLib)
- $(VERB) $(MKDIR) $(libdir)
$(VERB) $(LIBTOOL) --mode=install $(INSTALL) $(LIBNAME_O) $(DestRelinkedLib)
-uninstall-local:: uninstall-relinked-library
-
-uninstall-relinked-library:
+uninstall-local::
@$(ECHO) Uninstalling $(CONFIGURATION) Object Library $(DestRelinkedLib)
$(VERB) $(RM) -f $(DestRelinkedLib)
DestArchiveLib := $(libdir)/lib$(LIBRARYNAME).a
-install-local:: install-archive-library
-
-install-archive-library: $(libdir) $(DestArchiveLib)
+install-local:: $(DestArchiveLib)
-$(DestArchiveLib): $(LIBNAME_A)
+$(DestArchiveLib): $(libdir) $(LIBNAME_A)
@$(ECHO) Installing $(CONFIGURATION) Archive Library $(DestArchiveLib)
+ $(VERB) $(MKDIR) $(libdir)
$(VERB) $(LIBTOOL) --mode=install $(INSTALL) $(LIBNAME_A) $(DestArchiveLib)
-uninstall-local:: uninstall-archive-library
-
-uninstall-archive-library:
+uninstall-local::
@$(ECHO) Uninstalling $(CONFIGURATION) Archive Library $(DestArchiveLib)
$(VERB) $(RM) -f $(DestArchiveLib)
ifdef TOOLNAME
-#---------------------------------------------------------
-# TOOLLINKOPTSB to pass options to the linker like library search path etc
-# Note that this is different from TOOLLINKOPTS, these options
-# are passed to the linker *before* the USEDLIBS options are passed.
-# e.g. usage TOOLLINKOPTSB = -L/home/xxx/lib
-#---------------------------------------------------------
-ifdef TOOLLINKOPTSB
-Link += $(TOOLLINKOPTSB)
-endif
-
# TOOLEXENAME - This is the output filenames to generate
TOOLEXENAME := $(TOOLDIR)/$(TOOLNAME)
PROJ_LIBS_PATHS := $(addprefix $(LIBDIR)/,$(PROJ_USED_LIBS))
LLVM_LIBS_PATHS := $(addprefix $(LLVMLIBDIR)/,$(LLVM_USED_LIBS))
-# Concatenate all the optoins
-LINK_OPTS := $(TOOLLINKOPTS) $(PROJ_LIBS_OPTIONS) $(LLVM_LIBS_OPTIONS)
-
# Handle compression libraries automatically
ifeq ($(HAVE_BZIP2),1)
LIBS += -lbz2
$(TOOLEXENAME): $(BUILT_SOURCES) $(ObjectsO) $(PROJ_LIBS_PATHS) $(LLVM_LIBS_PATHS) $(TOOLDIR)/.dir
@$(ECHO) Linking $(CONFIGURATION) executable $(TOOLNAME) $(STRIP_WARN_MSG)
- $(VERB) $(Link) -o $@ $(ObjectsO) $(PROJ_LIBS_OPTIONS) $(LLVM_LIBS_OPTIONS) $(LIBS)
+ $(VERB) $(Link) -o $@ $(TOOLLINKOPTS) $(ObjectsO) $(PROJ_LIBS_OPTIONS) \
+ $(LLVM_LIBS_OPTIONS) $(LIBS) $(TOOLLINKOPTSB)
@$(ECHO) ======= Finished Linking $(CONFIGURATION) Executable $(TOOLNAME) $(STRIP_WARN_MSG)
DestTool = $(bindir)/$(TOOLNAME)
-install-local:: install-tool
+install-local:: $(DestTool)
-install-tool: $(bindir) $(DestTool)
-
-$(DestTool): $(TOOLEXENAME)
+$(DestTool): $(bindir) $(TOOLEXENAME)
@$(ECHO) Installing $(CONFIGURATION) $(DestTool)
$(VERB) $(INSTALL) $(TOOLEXENAME) $(DestTool)
-$(bindir):
- $(VERB) $(MKDIR) $(bindir)
-
-uninstall-local:: uninstall-tool
-
-uninstall-tool:
+uninstall-local::
@$(ECHO) Uninstalling $(CONFIGURATION) $(DestTool)
$(VERB) $(RM) -f $(DestTool)
$(INCFILES) : $(TBLGEN) $(TDFILES)
%GenRegisterNames.inc : %.td
- @echo "Building $(<F) register names with tblgen"
+ @$(ECHO) "Building $(<F) register names with tblgen"
$(VERB) $(TableGen) -gen-register-enums -o $@ $<
%GenRegisterInfo.h.inc : %.td
- @echo "Building $(<F) register information header with tblgen"
+ @$(ECHO) "Building $(<F) register information header with tblgen"
$(VERB) $(TableGen) -gen-register-desc-header -o $@ $<
%GenRegisterInfo.inc : %.td
- @echo "Building $(<F) register info implementation with tblgen"
+ @$(ECHO) "Building $(<F) register info implementation with tblgen"
$(VERB) $(TableGen) -gen-register-desc -o $@ $<
%GenInstrNames.inc : %.td
- @echo "Building $(<F) instruction names with tblgen"
+ @$(ECHO) "Building $(<F) instruction names with tblgen"
$(VERB) $(TableGen) -gen-instr-enums -o $@ $<
%GenInstrInfo.inc : %.td
- @echo "Building $(<F) instruction information with tblgen"
+ @$(ECHO) "Building $(<F) instruction information with tblgen"
$(VERB) $(TableGen) -gen-instr-desc -o $@ $<
%GenAsmWriter.inc : %.td
- @echo "Building $(<F) assembly writer with tblgen"
+ @$(ECHO) "Building $(<F) assembly writer with tblgen"
$(VERB) $(TableGen) -gen-asm-writer -o $@ $<
%GenATTAsmWriter.inc : %.td
- @echo "Building $(<F) AT&T assembly writer with tblgen"
+ @$(ECHO) "Building $(<F) AT&T assembly writer with tblgen"
$(VERB) $(TableGen) -gen-asm-writer -o $@ $<
%GenIntelAsmWriter.inc : %.td
- @echo "Building $(<F) Intel assembly writer with tblgen"
+ @$(ECHO) "Building $(<F) Intel assembly writer with tblgen"
$(VERB) $(TableGen) -gen-asm-writer -asmwriternum=1 -o $@ $<
%GenInstrSelector.inc: %.td
- @echo "Building $(<F) instruction selector with tblgen"
+ @$(ECHO) "Building $(<F) instruction selector with tblgen"
$(VERB) $(TableGen) -gen-instr-selector -o $@ $<
%GenCodeEmitter.inc:: %.td
- @echo "Building $(<F) code emitter with tblgen"
+ @$(ECHO) "Building $(<F) code emitter with tblgen"
$(VERB) $(TableGen) -gen-emitter -o $@ $<
clean-local::
%.cpp: %.l
@$(ECHO) Flexing $<
$(VERB) $(FLEX) -t $< | \
- $(SED) '/^find_rule/d' | \
$(SED) 's/void yyunput/inline void yyunput/' | \
$(SED) 's/void \*yy_flex_realloc/inline void *yy_flex_realloc/' | \
$(SED) 's/#define YY_BUF_SIZE 16384/#define YY_BUF_SIZE (16384*64)/' \
find $(DistDir) -type d ! -perm -200 -exec chmod u+w {} ';' || \
exit 1 ; \
fi ; \
- echo Removing $(DistDir) ; \
+ $(ECHO) Removing $(DistDir) ; \
$(RM) -rf $(DistDir); \
fi
$(VERB) $(MKDIR) $(DistDir)