Vladimir Merzliakov
2005-Feb-09 09:24 UTC
[LLVMdev] Add ability for external projects use for buildinstalled version LLVM [PATCH]
>> Patch attached. >> >> This patch with header installation patch ( >> http://mail.cs.uiuc.edu/pipermail/llvmdev/2005-February/003300.html ) >> let external project (I am test it at my YAFL frontend for LLVM) build >> using installed LLVM version instead using LLVM obj/src dirs. > > I think the patch looks basically sane. The one wierd thing I notice is > the replacement of mklib with libtool.Ops... I must be more careful. Updated patch attached. I use for build libtool "ltmain.sh (GNU libtool) 1.5.10" without problems. But I add code to preserve use $(LLVM_OBJ_ROOT)/mklib if LLVM_OBJ_ROOT set In other cases if $(LLVM_OBJ_ROOT)/mklib using important it installation can be added to LLVM/PROJ install process> However, this is definitely something Reid should review. I think he's > currently out of town but will be back next week.Waiting... :) Vladimir -------------- next part -------------- A non-text attachment was scrubbed... Name: Makefile.rules.patch Type: application/octet-stream Size: 6229 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20050209/2834c32a/attachment.obj>
Reid Spencer
2005-Feb-10 05:46 UTC
[LLVMdev] Add ability for external projects use for buildinstalled version LLVM [PATCH]
Vladimir, I took a *very quick* look at your patch. I won't be able to look at it in more detail until this weekend, but perhaps you can address a couple of concerns: 1. I don't understand the need for LLVMToolDirSlash. This seems like a gratuitous change to me. 2. I don't think the change to CPP.Flags is right. It won't find the LLVM header files 3. Removing the .PRECIOUS line will interfere with correct operation of parallel (make -j N) builds. 4. I don't understand why LLVMUsedLibs and other variables should only be set if LLVMLibDir is defined. Before this change is committed, you need to test that all our scenarios, in each combination: 1. Both with and without OBJ_DIR == SRC_DIR 2. Single and Parallel builds 3. Building LLVM versus building a project (and now building from installed) Reid. Vladimir Merzliakov wrote:>>> Patch attached. >>> >>> This patch with header installation patch ( >>> http://mail.cs.uiuc.edu/pipermail/llvmdev/2005-February/003300.html ) >>> let external project (I am test it at my YAFL frontend for LLVM) >>> build using installed LLVM version instead using LLVM obj/src dirs. >> >> >> I think the patch looks basically sane. The one wierd thing I notice >> is the replacement of mklib with libtool. > > Ops... I must be more careful. Updated patch attached. > > I use for build libtool "ltmain.sh (GNU libtool) 1.5.10" without problems. > But I add code to preserve use $(LLVM_OBJ_ROOT)/mklib if LLVM_OBJ_ROOT set > In other cases if $(LLVM_OBJ_ROOT)/mklib using important it installation > can be added to LLVM/PROJ install process > >> However, this is definitely something Reid should review. I think >> he's currently out of town but will be back next week. > > Waiting... :) > > Vladimir > > > ------------------------------------------------------------------------ > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
Vladimir Merzliakov
2005-Feb-10 19:09 UTC
[LLVMdev] Add ability for external projects use for build installed version LLVM [PATCH]
> Vladimir, > > I took a *very quick* look at your patch. I won't be able to look at it in > more detail until this weekend, but perhaps you can address a couple of > concerns: > > 1. I don't understand the need for LLVMToolDirSlash. This seems like a > gratuitous change to me.If LLVM_OBJ_ROOT (with LLVM_SRC_ROOT) and LLVM_ROOT both not set without LLVMToolDirSlash we will have "/gccas$(EXEEXT)", for example. This is not problem for project that not use LLVM tools and libs. But this not permite one useful case: project that use only LLVM tools and LLVM tools directory added to PATH. In this case using LLVMToolDirSlash we have correct tool name "gccas$(EXEEXT)" and tool can find by PATHs.> 2. I don't think the change to CPP.Flags is right. It won't find the LLVM > header filesI build my frontend in LLVM_ROOT set case and LLVM headers find fine. I already found bug in LLVM_OBJ_ROOT case in proposed patch :( + LLVMIncDirs := $(LLVM_OBJ_ROOT)/$(BuildMode)/include instead + LLVMIncDirs := $(LLVM_OBJ_ROOT)/include> 3. Removing the .PRECIOUS line will interfere with correct operation of > parallel (make -j N) builds.When external project build $(LLVMLibDir)/.dir $(LLVMToolDir)/.dir $(LLVMExmplDir)/.dir files and directories already exist and then using .PRECIOUS redundent in this case (as i think). In time LLVM build this files and directories listed in line: .PRECIOUS: $(ObjDir)/.dir $(LibDir)/.dir $(ToolDir)/.dir $(ExmplDir)/.dir I will test patch with parallel builds. Related question lines: -LLVMExmplDir:= $(LLVM_OBJ_ROOT)/$(BuildMode)/examples and -.PRECIOUS: $(LLVMLibDir)/.dir $(LLVMToolDir)/.dir $(LLVMExmplDir)/.dir Is removing LLVMExmplDir definition is ok? It not used anywhere in LLVM CVS> 4. I don't understand why LLVMUsedLibs and other variables should only be > set if LLVMLibDir is defined.I don link strange filenames if LLVMLibDir will not define and project tooldir/Makefile set LLVMLIBS. But i will skip this part of changes in next version of patch.> Before this change is committed, you need to test that all our scenarios, > in each combination: > > 1. Both with and without OBJ_DIR == SRC_DIR > 2. Single and Parallel builds > 3. Building LLVM versus building a project (and now building from > installed)ok, will do... I found some bugs in my patch and then I will send updated version after it testing. Thank you for comments! Vladimir
Reasonably Related Threads
- [LLVMdev] Add ability for external projects use for buildinstalled version LLVM [PATCH]
- [LLVMdev] Add ability for external projects use for build installed version LLVM [PATCH]
- [LLVMdev] [PATCH] Capability of Win32.DLL with ENABLE_SHARED
- [LLVMdev] [PATCH] Capability of Win32.DLL with ENABLE_SHARED
- [LLVMdev] [Cygwin] llvm 'make install' build errors