I have the following source layout: ~/cvs/llvm is my llvm tree ~/llvm is a symlink to ~/cvs/llvm Because PROJ_OBJ_DIR and PROJ_OBJ_ROOT are defined as: PROJ_OBJ_DIR := $(shell pwd) PROJ_OBJ_ROOT := $(subst //,/,$(shell cd $(PROJ_OBJ_DIR)/$(LEVEL); pwd)) They fully resolve the symlink to ~/cvs/llvm, but PROJ_SRC_ROOT is the un-fully-resolved path ~/llvm. This breaks stuff that checks to see if SRCDIR==OBJDIR, such as 'make dist' and other stuff: # If the Makefile in the source tree has been updated, copy it over into the # build tree. # We MUST build distribution with OBJ_DIR != SRC_DIR -Chris
Mine.
Chris: I have a patch for this, but not sure how to test it. I've recreate the symlink situation and everything builds fine in it. To test, is it sufficient to touch lib/System/Makefile and see if the "Updating Makefile" message appears? If it doesn't, are we good to go on this?
Using /bin/pwd seems to do the trick. Patches here: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20060724/036308.html http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20060724/036309.html Resolved.