[llvm-commits] CVS: llvm/Makefile.rules

Chris Lattner lattner at cs.uiuc.edu
Sun Sep 3 21:47:36 PDT 2006



Changes in directory llvm:

Makefile.rules updated: 1.400 -> 1.401
---
Log message:

Add a new make option (LINK_COMPONENTS) which tools can use to specify what
libraries they need.  This uses llvm-config to link the tools.


---
Diffs of the changes:  (+14 -4)

 Makefile.rules |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)


Index: llvm/Makefile.rules
diff -u llvm/Makefile.rules:1.400 llvm/Makefile.rules:1.401
--- llvm/Makefile.rules:1.400	Sun Sep  3 20:02:25 2006
+++ llvm/Makefile.rules	Sun Sep  3 23:47:21 2006
@@ -297,6 +297,7 @@
     TBLGEN   := $(LLVMToolDir)/tblgen$(EXEEXT)
   endif
 endif
+LLVM_CONFIG := $(LLVMToolDir)/llvm-config 
 ifndef GCCAS
 GCCAS    := $(LLVMToolDir)/gccas$(EXEEXT)
 endif
@@ -629,7 +630,6 @@
 # JIT support for a library or a tool that runs JIT.
 #---------------------------------------------------------
 ifeq ($(firstword $(LLVMLIBS)),config)
-LLVM_CONFIG := $(LLVM_SRC_ROOT)/utils/llvm-config/llvm-config 
 LLVMLIBS := $(shell $(LLVM_CONFIG) --libnames $(wordlist 2,9999,$(LLVMLIBS)))
 LLVMLIBS := $(patsubst lib%.a,%.a,$(LLVMLIBS))
 LLVMLIBS := $(patsubst %.o,%,$(LLVMLIBS))
@@ -690,17 +690,27 @@
 # Define various command line options pertaining to the
 # libraries needed when linking. There are "Proj" libs 
 # (defined by the user's project) and "LLVM" libs (defined 
-# by the # LLVM project).
+# by the LLVM project).
 #---------------------------------------------------------
 
+ifdef USEDLIBS
 ProjLibsOptions := $(patsubst %.a.o, -l%, $(addsuffix .o, $(USEDLIBS)))
 ProjLibsOptions := $(patsubst %.o, $(LibDir)/%.o,  $(ProjLibsOptions))
+ProjUsedLibs    := $(patsubst %.a.o, lib%.a, $(addsuffix .o, $(USEDLIBS)))
+ProjLibsPaths   := $(addprefix $(LibDir)/,$(ProjUsedLibs))
+endif
+
+ifdef LLVMLIBS
 LLVMLibsOptions := $(patsubst %.a.o, -l%, $(addsuffix .o, $(LLVMLIBS)))
 LLVMLibsOptions := $(patsubst %.o, $(LLVMLibDir)/%.o, $(LLVMLibsOptions))
-ProjUsedLibs    := $(patsubst %.a.o, lib%.a, $(addsuffix .o, $(USEDLIBS)))
 LLVMUsedLibs    := $(patsubst %.a.o, lib%.a, $(addsuffix .o, $(LLVMLIBS)))
-ProjLibsPaths   := $(addprefix $(LibDir)/,$(ProjUsedLibs))
 LLVMLibsPaths   := $(addprefix $(LLVMLibDir)/,$(LLVMUsedLibs))
+endif
+
+ifdef LINK_COMPONENTS
+ProjLibsOptions := $(shell $(LLVM_CONFIG) --libs     $(LINK_COMPONENTS))
+ProjLibsPaths   := $(shell $(LLVM_CONFIG) --libfiles $(LINK_COMPONENTS))
+endif
 
 ###############################################################################
 # Library Build Rules: Four ways to build a library






More information about the llvm-commits mailing list