assert() on MachineInstr properties instead of checking them dynamically
[oota-llvm.git] / Makefile.rules
index c8a831161e473c6fbee979d6fd8c812c7625f7a6..b0624272087775030dbff205ea439daeefd3a80e 100644 (file)
@@ -1,11 +1,11 @@
-#===-- Makefile.rules - Common make rules for LLVM -------*- makefile -*--====
-# 
+#===-- Makefile.rules - Common make rules for LLVM ---------*- Makefile -*--===#
+#
 #                     The LLVM Compiler Infrastructure
 #
 # This file was developed by the LLVM research group and is distributed under
 # the University of Illinois Open Source License. See LICENSE.TXT for details.
 # 
-##===----------------------------------------------------------------------===##
+#===------------------------------------------------------------------------===#
 #
 # This file is included by all of the LLVM makefiles.  This file defines common
 # rules to do things like compile a .cpp file or generate dependency info.
@@ -244,10 +244,10 @@ endif
 #--------------------------------------------------------------------------
 # Utilities used while building the LLVM tree, which live in the utils dir
 #
-BURG       := $(LLVMTOOLCURRENT)/burg
+BURG       := $(LLVMTOOLCURRENT)/burg$(EXEEXT)
 RunBurg    := $(BURG) $(BURG_OPTS)
-TBLGEN     := $(LLVMTOOLCURRENT)/tblgen
-LGCCLDPROG := $(LLVMTOOLCURRENT)/gccld
+TBLGEN     := $(LLVMTOOLCURRENT)/tblgen$(EXEEXT)
+LGCCLDPROG := $(LLVMTOOLCURRENT)/gccld$(EXEEXT)
 
 #--------------------------------------------------------------------------
 # The LLVM GCC front-end in C and C++ flavors
@@ -256,10 +256,24 @@ LLVMGCC := PATH=$(LLVMTOOLCURRENT):$(PATH) $(LLVMGCCDIR)/bin/gcc
 LLVMGXX := PATH=$(LLVMTOOLCURRENT):$(PATH) $(LLVMGCCDIR)/bin/g++
 
 #--------------------------------------------------------------------------
-# Some of the compiled LLVM tools which are used for compilation of runtime
-# libraries.
-#
-LLVMAS  := $(LLVMTOOLCURRENT)/llvm-as
+# The compiled LLVM tools
+#
+
+LLVMAS  := $(LLVMTOOLCURRENT)/llvm-as$(EXEEXT)
+# Find the location of the platform specific LLVM GCC libraries
+LLVMGCCLIBDIR=$(dir $(shell $(LLVMGCC) -print-file-name=libgcc.a))
+# LLVM Tool Definitions (LLVMGCC, LLVMGXX, LLVMAS are provided by
+# Makefile.rules) 
+LLI       = $(LLVMTOOLCURRENT)/lli$(EXEEXT)
+LLC       = $(LLVMTOOLCURRENT)/llc$(EXEEXT)
+LGCCAS    = $(LLVMTOOLCURRENT)/gccas$(EXEEXT)
+LGCCLD    = $(LGCCLDPROG) -L$(LLVMGCCLIBDIR) -L$(LLVMGCCDIR)/lib
+LDIS      = $(LLVMTOOLCURRENT)/llvm-dis$(EXEEXT)
+LOPT      = $(LLVMTOOLCURRENT)/opt$(EXEEXT)
+LLINK     = $(LLVMTOOLCURRENT)/llvm-link$(EXEEXT)
+LPROF     = $(LLVMTOOLCURRENT)/llvm-prof$(EXEEXT)
+LANALYZE  = $(LLVMTOOLCURRENT)/analyze$(EXEEXT)
+LBUGPOINT = $(LLVMTOOLCURRENT)/bugpoint$(EXEEXT)
 
 
 ###########################################################################
@@ -294,7 +308,7 @@ CPPFLAGS += -D_GNU_SOURCE
 CPPFLAGS += -D__STDC_LIMIT_MACROS
 
 ### FIXME: this is GCC specific
-CPPFLAGS += -DDEPRECATED='__attribute__ ((deprecated))'
+CPPFLAGS += -DATTR_DEPRECATED='__attribute__ ((deprecated))'
 
 CompileCommonOpts := -Wall -W -Wwrite-strings -Wno-unused
 CompileOptimizeOpts := -O3 -DNDEBUG -finline-functions
@@ -302,7 +316,7 @@ CompileOptimizeOpts := -O3 -DNDEBUG -finline-functions
 #
 # Compile commands with libtool.
 #
-Compile  := $(LIBTOOL) --mode=compile $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CompileCommonOpts)
+Compile  := $(LIBTOOL) --tag=CXX --mode=compile $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CompileCommonOpts)
 CompileC  := $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(CompileCommonOpts)
 
 # Compile a cpp file, don't link...
@@ -323,7 +337,7 @@ CompileCP := $(CompileC) $(CompileOptimizeOpts) $(PROFILE)
 # Link final executable
 #      (Note that we always link with the C++ compiler).
 #
-Link     := $(LIBTOOL) --mode=link $(CXX)
+Link     := $(LIBTOOL) --tag=CXX --mode=link $(CXX)
 
 # link both projlib and llvmlib libraries
 LinkG    := $(Link) -g -L$(PROJLIBDEBUGSOURCE)  -L$(LLVMLIBDEBUGSOURCE) $(STRIP)
@@ -341,7 +355,7 @@ LinkP    := $(LinkP) $(TOOLLINKOPTSB)
 endif
 
 # Create one .o file from a bunch of .o files...
-Relink := ${LIBTOOL} --mode=link $(CXX)
+Relink := ${LIBTOOL} --tag=CXX --mode=link $(CXX)
 
 #
 # Configure where the item being compiled should go.
@@ -402,7 +416,7 @@ all install clean test bytecode stripped-bytecode install-bytecode::
                        $(MKDIR) $$dir; \
                        cp $(SourceDir)/$$dir/Makefile $$dir/Makefile; \
                fi; \
-               ($(MAKE) -C $$dir $@) || exit 1; \
+               ($(MAKE) -C $$dir $@ $(MFLAGS)) || exit 1; \
        done
 endif
 
@@ -422,7 +436,7 @@ install-bytecode :: $(addsuffix /.makeinstall-bytecode, $(PARALLEL_DIRS))
                $(MKDIR) $(@D); \
                cp $(SourceDir)/$(@D)/Makefile $(@D)/Makefile; \
        fi; \
-       $(MAKE) -C $(@D) $(subst $(@D)/.make,,$@)
+       $(MAKE) -C $(@D) $(subst $(@D)/.make,,$@) $(MFLAGS)
 endif
 
 # Handle directories that may or may not exist
@@ -436,7 +450,7 @@ all install clean test bytecode stripped-bytecode install-bytecode::
                                $(MKDIR) $$dir; \
                                cp $(SourceDir)/$$dir/Makefile $$dir/Makefile; \
                        fi; \
-                       ($(MAKE) -C$$dir $@) || exit 1; \
+                       ($(MAKE) -C$$dir $@ $(MFLAGS)) || exit 1; \
                fi \
        done
 endif
@@ -704,6 +718,7 @@ endif
 #---------------------------------------------------------
 .PRECIOUS: $(BUILD_OBJ_DIR)/Depend/.dir $(BUILD_OBJ_DIR)/BytecodeObj/.dir
 .PRECIOUS: $(BUILD_OBJ_DIR)/Debug/.dir $(BUILD_OBJ_DIR)/Release/.dir
+.PRECIOUS: $(BUILD_OBJ_DIR)/Profile/.dir
 
 # Create .lo files in the ObjectFiles directory from the .cpp and .c files...
 $(BUILD_OBJ_DIR)/Release/%.lo: %.cpp $(BUILD_OBJ_DIR)/Release/.dir