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# 59ifndef LLVM_OBJ_ROOT 60include $(LEVEL)/Makefile.config 61else 62include $(LLVM_OBJ_ROOT)/Makefile.config 63endif 64 65# 66# Include all of the build rules used for making LLVM 67# 68include $(LLVM_SRC_ROOT)/Makefile.rules 69 70