Home | History | Annotate | Download | only in llvm
      1 #===-- Makefile.common - Common make rules for LLVM --------*- Makefile -*--===#
      2 #
      3 #                     The LLVM Compiler Infrastructure
      4 #
      5 # This file is distributed under the University of Illinois Open Source
      6 # License. See LICENSE.TXT for details.
      7 #
      8 #===------------------------------------------------------------------------===#
      9 #
     10 # This file is included by all of the LLVM makefiles.  This file defines common
     11 # rules to do things like compile a .cpp file or generate dependency info.
     12 # These are platform dependent, so this is the file used to specify these
     13 # system dependent operations.
     14 #
     15 # The following functionality can be set by setting incoming variables.
     16 # The variable $(LEVEL) *must* be set:
     17 #
     18 # 1. LEVEL - The level of the current subdirectory from the top of the
     19 #    source directory.  This level should be expressed as a path, for
     20 #    example, ../.. for two levels deep.
     21 #
     22 # 2. DIRS - A list of subdirectories to be built.  Fake targets are set up
     23 #    so that each of the targets "all", "install", and "clean" each build
     24 #    the subdirectories before the local target.  DIRS are guaranteed to be
     25 #    built in order.
     26 #
     27 # 3. PARALLEL_DIRS - A list of subdirectories to be built, but that may be
     28 #    built in any order.  All DIRS are built in order before PARALLEL_DIRS are
     29 #    built, which are then built in any order.
     30 #
     31 # 4. Source - If specified, this sets the source code filenames.  If this
     32 #    is not set, it defaults to be all of the .cpp, .c, .y, and .l files
     33 #    in the current directory.  Also, if you want to build files in addition
     34 #    to the local files, you can use the ExtraSource variable
     35 #
     36 # 5. SourceDir - If specified, this specifies a directory that the source files
     37 #    are in, if they are not in the current directory.  This should include a
     38 #    trailing / character.
     39 #
     40 # 6. LLVM_SRC_ROOT - If specified, points to the top of the LLVM source tree.
     41 #
     42 # 8. PROJ_SRC_DIR - The directory which contains the current set of Makefiles
     43 #    and usually the source code too (unless SourceDir is set).
     44 #
     45 # 9. PROJ_SRC_ROOT - The root directory of the source code being compiled.
     46 #
     47 # 10. PROJ_OBJ_DIR - The directory where object code should be placed.
     48 #
     49 # 11. PROJ_OBJ_ROOT - The root directory for where object code should be
     50 #     placed.
     51 #
     52 # For building,
     53 # 	LLVM, LLVM_SRC_ROOT = PROJ_SRC_ROOT
     54 #
     55 #===-----------------------------------------------------------------------====
     56 
     57 #
     58 # Configuration file to set paths specific to local installation of LLVM
     59 #
     60 ifndef LLVM_OBJ_ROOT
     61 include $(LEVEL)/Makefile.config
     62 else
     63 include $(LLVM_OBJ_ROOT)/Makefile.config
     64 endif
     65 
     66 #
     67 # Include all of the build rules used for making LLVM
     68 #
     69 include $(LLVM_SRC_ROOT)/Makefile.rules
     70 
     71