#===-- Makefile.common - Common make rules for LLVM --------*- Makefile -*--===# # # The LLVM Compiler Infrastructure # # This file 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. # These are platform dependent, so this is the file used to specify these # system dependent operations. # # The following functionality can be set by setting incoming variables. # The variable $(LEVEL) *must* be set: # # 1. LEVEL - The level of the current subdirectory from the top of the # source directory. This level should be expressed as a path, for # example, ../.. for two levels deep. # # 2. DIRS - A list of subdirectories to be built. Fake targets are set up # so that each of the targets "all", "install", and "clean" each build # the subdirectories before the local target. DIRS are guaranteed to be # built in order. # # 3. PARALLEL_DIRS - A list of subdirectories to be built, but that may be # built in any order. All DIRS are built in order before PARALLEL_DIRS are # built, which are then built in any order. # # 4. SOURCES - If specified, this sets the source code filenames. If this # is not set, it defaults to be all of the .cpp, .c, .y, and .l files # in the current directory. # # 5. SourceDir - If specified, this specifies a directory that the source files # are in, if they are not in the current directory. This should include a # trailing / character. # # 6. LLVM_SRC_ROOT - If specified, points to the top of the LLVM source tree. # # 8. PROJ_SRC_DIR - The directory which contains the current set of Makefiles # and usually the source code too (unless SourceDir is set). # # 9. PROJ_SRC_ROOT - The root directory of the source code being compiled. # # 10. PROJ_OBJ_DIR - The directory where object code should be placed. # # 11. PROJ_OBJ_ROOT - The root directory for where object code should be # placed. # # For building, # LLVM, LLVM_SRC_ROOT = PROJ_SRC_ROOT # #===-----------------------------------------------------------------------==== # # Configuration file to set paths specific to local installation of LLVM # ifndef LLVM_OBJ_ROOT include $(LEVEL)/Makefile.config else include $(LLVM_OBJ_ROOT)/Makefile.config endif # # Include all of the build rules used for making LLVM # include $(LLVM_SRC_ROOT)/Makefile.rules