Add DynamicLinker support for systems that provide windows.h
[oota-llvm.git] / Makefile.rules
index bae0e9c001373146f55d49180ae58f11e5da90c8..59eec663afa0d52f555b6021b3151a3150f5703a 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.
@@ -78,6 +78,7 @@ ifdef BYTECODE_LIBRARY
 # if BYTECODE_LIBRARY is specified, the default is to build the bytecode lib
 all:: bytecodelib
 install:: install-bytecode-library
+install-bytecode:: install-bytecode-library
 endif
 
 # Default Rule:  Make sure it's also a :: rule
@@ -92,6 +93,9 @@ test::
 # Default rule for building only bytecode.
 bytecode::
 
+# Default rule for installing only bytecode.
+install-bytecode::
+
 # Print out the directories used for building
 prdirs::
        @${ECHO} "Build Source Root: " $(BUILD_SRC_ROOT)
@@ -289,6 +293,9 @@ CPPFLAGS += -D_GNU_SOURCE
 # Pull in limit macros from stdint.h, even in C++:
 CPPFLAGS += -D__STDC_LIMIT_MACROS
 
+### FIXME: this is GCC specific
+CPPFLAGS += -DATTR_DEPRECATED='__attribute__ ((deprecated))'
+
 CompileCommonOpts := -Wall -W -Wwrite-strings -Wno-unused
 CompileOptimizeOpts := -O3 -DNDEBUG -finline-functions
 
@@ -352,7 +359,7 @@ Depend   := $(CXX) -MM -I$(LEVEL)/include $(CPPFLAGS)
 DependC  := $(CC)  -MM -I$(LEVEL)/include $(CPPFLAGS) 
 
 # Archive a bunch of .o files into a .a file...
-AR       = ${AR_PATH} cq 
+AR       = $(AR_PATH) cr
 
 #----------------------------------------------------------
 
@@ -388,14 +395,14 @@ RObjectsG := $(addprefix $(BUILD_OBJ_DIR)/Debug/,$(RObjs))
 #---------------------------------------------------------
 
 ifdef DIRS
-all install clean test bytecode stripped-bytecode::
+all install clean test bytecode stripped-bytecode install-bytecode::
        $(VERB) for dir in ${DIRS}; do \
                if [ ! -f $$dir/Makefile ]; \
                then \
                        $(MKDIR) $$dir; \
                        cp $(SourceDir)/$$dir/Makefile $$dir/Makefile; \
                fi; \
-               ($(MAKE) -C $$dir $@) || exit 1; \
+               ($(MAKE) -C $$dir $@ $(MFLAGS)) || exit 1; \
        done
 endif
 
@@ -407,19 +414,20 @@ clean    :: $(addsuffix /.makeclean   , $(PARALLEL_DIRS))
 test     :: $(addsuffix /.maketest    , $(PARALLEL_DIRS))
 bytecode :: $(addsuffix /.makebytecode, $(PARALLEL_DIRS))
 stripped-bytecode :: $(addsuffix /.makestripped-bytecode, $(PARALLEL_DIRS))
+install-bytecode :: $(addsuffix /.makeinstall-bytecode, $(PARALLEL_DIRS))
 
-%/.makeall %/.makeinstall %/.makeclean %/.maketest %/.makebytecode %/.makestripped-bytecode:
+%/.makeall %/.makeinstall %/.makeclean %/.maketest %/.makebytecode %/.makestripped-bytecode %/.makeinstall-bytecode:
        $(VERB) if [ ! -f $(@D)/Makefile ]; \
        then \
                $(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
 ifdef OPTIONAL_DIRS
-all install clean test bytecode stripped-bytecode::
+all install clean test bytecode stripped-bytecode install-bytecode::
        $(VERB) for dir in ${OPTIONAL_DIRS}; do \
                if [ -d $(SourceDir)/$$dir ]; \
                then\
@@ -428,7 +436,7 @@ all install clean test bytecode stripped-bytecode::
                                $(MKDIR) $$dir; \
                                cp $(SourceDir)/$$dir/Makefile $$dir/Makefile; \
                        fi; \
-                       ($(MAKE) -C$$dir $@) || exit 1; \
+                       ($(MAKE) -C$$dir $@ $(MFLAGS)) || exit 1; \
                fi \
        done
 endif
@@ -548,7 +556,7 @@ $(LIBNAME_G): $(ObjectsG) $(LibSubDirs) $(DESTLIBDEBUG)/.dir
        @${ECHO} ======= Finished building $(LIBRARYNAME) dynamic debug library =======
 
 install-dynamic-library: $(LIBNAME_CUR)
-       $(MKDIR) $(libdir)
+       $(MKDIR) $(DESTDIR)$(libdir)
        $(VERB) $(LIBTOOL) --mode=install $(INSTALL) $(LIBNAME_CUR) $(DESTDIR)$(libdir)/lib$(LIBRARYNAME)$(SHLIBEXT)
 
 #
@@ -573,7 +581,7 @@ $(LIBNAME_AG): $(ObjectsG) $(LibSubDirs) $(DESTLIBDEBUG)/.dir
        @${ECHO} ======= Finished building $(LIBRARYNAME) archive debug library =======
 
 install-archive-library: $(LIBNAME_ACUR)
-       $(MKDIR) $(libdir)
+       $(MKDIR) $(DESTDIR)$(libdir)
        $(VERB) $(LIBTOOL) --mode=install $(INSTALL) $(LIBNAME_ACUR) $(DESTDIR)$(libdir)/lib$(LIBRARYNAME).a
 
 #
@@ -603,7 +611,7 @@ $(LIBNAME_OBJG): $(ObjectsG) $(LibSubDirs) $(DESTLIBDEBUG)/.dir
        $(VERB) $(Relink) -o $@ $(RObjectsG) $(LibSubDirs)
 
 install-single-object-library: $(LIBNAME_OBJCUR)
-       $(MKDIR) $(libdir)
+       $(MKDIR) $(DESTDIR)$(libdir)
        $(VERB) $(LIBTOOL) --mode=install $(INSTALL) $(LIBNAME_OBJCUR) $(DESTDIR)$(libdir)/$(LIBRARYNAME).o
 
 endif
@@ -686,7 +694,7 @@ $(TOOLEXENAME_P): $(ObjectsP) $(USED_LIB_PATHS_P) $(DESTTOOLPROFILE)/.dir
        @${ECHO} ======= Finished building $(TOOLNAME) profile executable =======
 
 install:: $(TOOLEXENAMES)
-       $(MKDIR) $(bindir)
+       $(MKDIR) $(DESTDIR)$(bindir)
        $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) -c -m 0755 $(TOOLEXENAMES) $(DESTDIR)$(bindir)/$(TOOLNAME)
 
 endif