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. SOURCES - 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. 34 # 35 # 5. SourceDir - If specified, this specifies a directory that the source files 36 # are in, if they are not in the current directory. This should include a 37 # trailing / character. 38 # 39 # 6. LLVM_SRC_ROOT - If specified, points to the top of the LLVM source tree. 40 # 41 # 8. PROJ_SRC_DIR - The directory which contains the current set of Makefiles 42 # and usually the source code too (unless SourceDir is set). 43 # 44 # 9. PROJ_SRC_ROOT - The root directory of the source code being compiled. 45 # 46 # 10. PROJ_OBJ_DIR - The directory where object code should be placed. 47 # 48 # 11. PROJ_OBJ_ROOT - The root directory for where object code should be 49 # placed. 50 # 51 # For building, 52 # LLVM, LLVM_SRC_ROOT = PROJ_SRC_ROOT 53 # 54 #===-----------------------------------------------------------------------==== 55 56 # 57 # Configuration file to set paths specific to local installation of LLVM 58 # 59 ifndef LLVM_OBJ_ROOT 60 include $(LEVEL)/Makefile.config 61 else 62 include $(LLVM_OBJ_ROOT)/Makefile.config 63 endif 64 65 # 66 # Include all of the build rules used for making LLVM 67 # 68 include $(LLVM_SRC_ROOT)/Makefile.rules 69 70