Several Changes To Support Building llvm-config:

1. If Perl is not available, don't run Perl dependent targets.
2. Check in FinalLibDeps.txt for build environments that can't build it
   because there's no Perl processor.
3. Ensure that FinalLibDeps.txt depends on LibDeps.txt so it is
   automatically regenerated.
4. Support objdir != srcdir building.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27915 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer 2006-04-20 21:13:58 +00:00
parent 563ff1cc92
commit 05dee5064f
2 changed files with 42 additions and 10 deletions

View File

@ -0,0 +1,25 @@
LLVMAlpha.o: LLVMCodeGen.o LLVMCore.o LLVMSelectionDAG.o libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a
LLVMAsmParser.o: LLVMCore.o
LLVMBCReader.o: LLVMCore.o libLLVMSupport.a libLLVMSystem.a
LLVMBCWriter.o: LLVMCore.o libLLVMSupport.a
LLVMCBackend.o: LLVMCodeGen.o LLVMCore.o libLLVMAnalysis.a libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a libLLVMipa.a
LLVMCodeGen.o LLVMSelectionDAG.o libLLVMAnalysis.a libLLVMTarget.a libLLVMTransformUtils.a libLLVMipa.a libLLVMAnalysis.a libLLVMTarget.a libLLVMTransformUtils.a libLLVMipa.a: LLVMCore.o libLLVMSupport.a libLLVMSystem.a
LLVMCore.o: libLLVMSupport.a
LLVMDataStructure.o: LLVMCore.o libLLVMAnalysis.a libLLVMSupport.a libLLVMTarget.a
LLVMDebugger.o: LLVMBCReader.o LLVMCore.o libLLVMSupport.a libLLVMSystem.a
LLVMExecutionEngine.o: LLVMCore.o libLLVMSupport.a libLLVMSystem.a libLLVMTarget.a
LLVMIA64.o: LLVMCodeGen.o LLVMCore.o LLVMSelectionDAG.o libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a
LLVMInterpreter.o: LLVMCore.o LLVMExecutionEngine.o libLLVMSupport.a libLLVMSystem.a libLLVMTarget.a
LLVMJIT.o: LLVMCore.o LLVMExecutionEngine.o libLLVMSupport.a libLLVMSystem.a libLLVMTarget.a
LLVMPowerPC.o: LLVMCodeGen.o LLVMCore.o LLVMSelectionDAG.o libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a
LLVMSparc.o: LLVMCodeGen.o LLVMCore.o LLVMSelectionDAG.o libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a
LLVMX86.o: LLVMCodeGen.o LLVMCore.o LLVMSelectionDAG.o libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a
LLVMbzip2.o:
libLLVMArchive.a: LLVMBCReader.o LLVMCore.o libLLVMSupport.a libLLVMSystem.a
libLLVMInstrumentation.a: LLVMCore.o libLLVMScalarOpts.a libLLVMSupport.a libLLVMTransformUtils.a
libLLVMLinker.a: LLVMBCReader.o LLVMCore.o libLLVMArchive.a libLLVMSystem.a
libLLVMScalarOpts.a: LLVMCore.o libLLVMAnalysis.a libLLVMSupport.a libLLVMTarget.a libLLVMTransformUtils.a
libLLVMSupport.a: LLVMbzip2.o libLLVMSystem.a
libLLVMSystem.a:
libLLVMTransforms.a: LLVMCore.o libLLVMSupport.a libLLVMTarget.a libLLVMTransformUtils.a
libLLVMipo.a: LLVMCore.o libLLVMAnalysis.a libLLVMSupport.a libLLVMTarget.a libLLVMTransformUtils.a libLLVMipa.a

View File

@ -1,4 +1,4 @@
##===- utils/llvm-config/Makefile --------------------------*- Makefile -*-===## ##===- tools/llvm-config/Makefile --------------------------*- Makefile -*-===##
# #
# The LLVM Compiler Infrastructure # The LLVM Compiler Infrastructure
# #
@ -21,40 +21,47 @@ SUB_CXXFLAGS = ${CPP.BaseFlags} ${CXX.Flags}
# user to use libtool when linking against LLVM. # user to use libtool when linking against LLVM.
SUB_LDFLAGS = SUB_LDFLAGS =
FinalLibDeps = $(PROJ_SRC_DIR)/FinalLibDeps.txt
ifdef HAVE_PERL
ifeq ($(HAVE_PERL),1)
LibDeps = $(PROJ_SRC_DIR)/LibDeps.txt
GenLibDeps = $(PROJ_SRC_ROOT)/utils/GenLibDeps.pl
# MANUAL USE ONLY! GenLibDeps.pl is very non-portable, so LibDeps.txt # MANUAL USE ONLY! GenLibDeps.pl is very non-portable, so LibDeps.txt
# should only be re-built manually. No other rule in this file should # should only be re-built manually. No other rule in this file should
# depend on LibDeps.txt. # depend on LibDeps.txt.
LibDeps.txt: $(LEVEL)/utils/GenLibDeps.pl $(LibDir) $(LibDeps): $(GenLibDeps) $(LibDir)
$(Echo) "Regenerating LibDeps.txt" $(Echo) "Regenerating LibDeps.txt"
$(Verb) $(LLVM_SRC_ROOT)/utils/GenLibDeps.pl -flat $(LibDir) | \ $(Verb) $(GenLibDeps) -flat $(LibDir) | sort > $(LibDeps)
sort > LibDeps.txt
# Find all the cyclic dependencies between various LLVM libraries, so we # Find all the cyclic dependencies between various LLVM libraries, so we
# don't have to process them at runtime. # don't have to process them at runtime.
FinalLibDeps.txt: find-cycles.pl # LibDeps.txt deliberately omitted. $(FinalLibDeps): find-cycles.pl $(LibDeps)
$(Echo) "Finding cyclic dependencies between LLVM libraries." $(Echo) "Finding cyclic dependencies between LLVM libraries."
$(Verb) $(PERL) $< < $(PROJ_SRC_DIR)/LibDeps.txt > $@ $(Verb) $(PERL) $< < $(PROJ_SRC_DIR)/LibDeps.txt > $@
endif
endif
# Rerun our configure substitutions as needed. # Rerun our configure substitutions as needed.
llvm-config.in: llvm-config.in.in $(ConfigStatusScript) ConfigInIn = $(PROJ_SRC_DIR)/llvm-config.in.in
llvm-config.in: $(ConfigInIn) $(ConfigStatusScript)
$(Verb) cd $(PROJ_OBJ_ROOT) ; \ $(Verb) cd $(PROJ_OBJ_ROOT) ; \
$(ConfigStatusScript) utils/llvm-config/llvm-config.in $(ConfigStatusScript) tools/llvm-config/llvm-config.in
# Build our final script. # Build our final script.
llvm-config: llvm-config.in FinalLibDeps.txt llvm-config: llvm-config.in $(FinalLibDeps)
$(Echo) "Building llvm-config script." $(Echo) "Building llvm-config script."
$(Verb) $(ECHO) 's,@LLVM_CXXFLAGS@,$(SUB_CXXFLAGS),' > temp.sed $(Verb) $(ECHO) 's,@LLVM_CXXFLAGS@,$(SUB_CXXFLAGS),' > temp.sed
$(Verb) $(ECHO) 's,@LLVM_LDFLAGS@,$(SUB_LDFLAGS),' >> temp.sed $(Verb) $(ECHO) 's,@LLVM_LDFLAGS@,$(SUB_LDFLAGS),' >> temp.sed
$(Verb) $(ECHO) 's,@CORE_IS_ARCHIVE@,$(CORE_IS_ARCHIVE),' >> temp.sed $(Verb) $(ECHO) 's,@CORE_IS_ARCHIVE@,$(CORE_IS_ARCHIVE),' >> temp.sed
$(Verb) $(SED) -f temp.sed < $< > $@ $(Verb) $(SED) -f temp.sed < $< > $@
$(Verb) $(RM) temp.sed $(Verb) $(RM) temp.sed
$(Verb) cat FinalLibDeps.txt >> $@ $(Verb) cat $(FinalLibDeps) >> $@
$(Verb) chmod +x llvm-config $(Verb) chmod +x llvm-config
# Hook into the standard Makefile rules. # Hook into the standard Makefile rules.
all-local:: llvm-config all-local:: llvm-config
clean-local:: clean-local::
$(Verb) $(RM) -f FinalLibDeps.txt llvm-config llvm-config.in $(Verb) $(RM) -f llvm-config llvm-config.in
install-local:: all-local install-local:: all-local
$(Echo) Installing llvm-config $(Echo) Installing llvm-config
$(Verb) $(MKDIR) $(PROJ_bindir) $(Verb) $(MKDIR) $(PROJ_bindir)