# building.
###########################################################################
+# Ensure people re-run configure when it gets updated
+all::$(LLVM_OBJ_ROOT)/config.status
+
ifdef SHARED_LIBRARY
# if SHARED_LIBRARY is specified, the default is to build the dynamic lib
all:: dynamic
# I think that is safe.
#
$(LIBNAME_OBJO): $(ObjectsO) $(LibSubDirs) $(DESTLIBRELEASE)/.dir
- @echo "Linking $@"
+ @echo "Linking `basename $@`"
$(VERB) $(Relink) -o $@ $(RObjectsO) $(LibSubDirs)
$(LIBNAME_OBJP): $(ObjectsP) $(LibSubDirs) $(DESTLIBPROFILE)/.dir
- @echo "Linking $@"
+ @echo "Linking `basename $@`"
$(VERB) $(Relink) -o $@ $(RObjectsP) $(LibSubDirs)
$(LIBNAME_OBJG): $(ObjectsG) $(LibSubDirs) $(DESTLIBDEBUG)/.dir
- @echo "Linking $@"
+ @echo "Linking `basename $@`"
$(VERB) $(Relink) -o $@ $(RObjectsG) $(LibSubDirs)
endif
# Create a TAGS database for emacs
#------------------------------------------------------------------------
-ifdef ETAGS
+ifneq ($(ETAGS),false)
ifeq ($(LEVEL), .)
SRCDIRS := $(wildcard $(SourceDir)/include $(SourceDir)/lib $(SourceDir)/tools)
# Create .lo files in the ObjectFiles directory from the .cpp and .c files...
$(BUILD_OBJ_DIR)/Release/%.lo: %.cpp $(BUILD_OBJ_DIR)/Release/.dir
- @echo "Compiling $<"
+ @echo "Compiling `basename $<`"
$(VERB) $(CompileO) $< -o $@
$(BUILD_OBJ_DIR)/Release/%.lo: %.c $(BUILD_OBJ_DIR)/Release/.dir
- @echo "Compiling $<"
+ @echo "Compiling `basename $<`"
$(VERB) $(CompileCO) $< -o $@
$(BUILD_OBJ_DIR)/Profile/%.lo: %.cpp $(BUILD_OBJ_DIR)/Profile/.dir
- @echo "Compiling $<"
+ @echo "Compiling `basename $<`"
$(VERB) $(CompileP) $< -o $@
$(BUILD_OBJ_DIR)/Profile/%.lo: %.c $(BUILD_OBJ_DIR)/Profile/.dir
- @echo "Compiling $<"
+ @echo "Compiling `basename $<`"
$(VERB) $(CompileCP) $< -o $@
$(BUILD_OBJ_DIR)/Debug/%.lo: %.cpp $(BUILD_OBJ_DIR)/Debug/.dir
- @echo "Compiling $<"
+ @echo "Compiling `basename $<`"
$(VERB) $(CompileG) $< -o $@
$(BUILD_OBJ_DIR)/Debug/%.lo: %.c $(BUILD_OBJ_DIR)/Debug/.dir
- @echo "Compiling $<"
+ @echo "Compiling `basename $<`"
$(VERB) $(CompileCG) $< -o $@
$(BUILD_OBJ_DIR)/BytecodeObj/%.bc: %.cpp $(BUILD_OBJ_DIR)/BytecodeObj/.dir $(LCC1XX)
- @echo "Compiling $< to bytecode"
+ @echo "Compiling `basename $<` to bytecode"
$(VERB) $(LLVMGXX) $(CompileWarnings) $(CPPFLAGS) -c $< -o $@
$(BUILD_OBJ_DIR)/BytecodeObj/%.bc: %.c $(BUILD_OBJ_DIR)/BytecodeObj/.dir $(LCC1)
- @echo "Compiling $< to bytecode"
+ @echo "Compiling `basename $<` to bytecode"
$(VERB) $(LLVMGCC) $(CompileWarnings) $(CPPFLAGS) -c $< -o $@
$(BUILD_OBJ_DIR)/BytecodeObj/%.bc: %.ll $(BUILD_OBJ_DIR)/BytecodeObj/.dir $(LLVMAS)
- @echo "Compiling $< to bytecode"
+ @echo "Compiling `basename $<` to bytecode"
$(VERB) $(LLVMAS) $< -f -o $@
@$(DATE) > $@
# To create postscript files from dot files...
-ifdef DOT
+ifneq ($(DOT),false)
%.ps: %.dot
${DOT} -Tps < $< > $@
else
$(BUILD_OBJ_DIR)/Depend/%.d: %.c $(BUILD_OBJ_DIR)/Depend/.dir
$(VERB) $(DependC) -o $@ $< | $(SED) 's|\.o|\.lo|' | $(SED) 's|$*\.lo *|$(BUILD_OBJ_DIR)/Release/& $(BUILD_OBJ_DIR)/Profile/& $(BUILD_OBJ_DIR)/Debug/& $(BUILD_OBJ_DIR)/Depend/$(@F)|g' > $@
+#
+# Autoconf Dependencies.
+#
+$(LLVM_OBJ_ROOT)/config.status:: $(LLVM_SRC_ROOT)/configure
+ @${ECHO} "****************************************************************"
+ @${ECHO} " You need to re-run $(LLVM_SRC_ROOT)/configure"
+ @${ECHO} " in directory $(LLVM_OBJ_ROOT)"
+ @${ECHO} "****************************************************************"
+ $(VERB) exit 1
+
#
# Include dependencies generated from C/C++ source files, but not if we
# are cleaning (this example taken from the GNU Make Manual).