Makefile revision 11c63a67916065a366fe4acc6081b99777c9303a
1#===- ./Makefile -------------------------------------------*- Makefile -*--===# 2# 3# The LLVM Compiler Infrastructure 4# 5# This file was developed by the LLVM research group and is distributed under 6# the University of Illinois Open Source License. See LICENSE.TXT for details. 7# 8#===------------------------------------------------------------------------===# 9 10LEVEL := . 11 12# Top-Level LLVM Build Stages: 13# 1. Build lib/System and lib/Support, which are used by utils (tblgen). 14# 2. Build utils, which is used by VMCore. 15# 3. Build VMCore, which builds the Intrinsics.inc file used by libs. 16# 4. Build libs, which are needed by llvm-config. 17# 5. Build llvm-config, which determines inter-lib dependencies for tools. 18# 6. Build tools, runtime, docs. 19# 20DIRS := lib/System lib/Support utils lib/VMCore lib tools/llvm-config \ 21 tools runtime docs 22 23OPTIONAL_DIRS := examples projects 24EXTRA_DIST := test llvm.spec include win32 Xcode 25 26include $(LEVEL)/Makefile.config 27 28# llvm-gcc4 doesn't need runtime libs. 29ifeq ($(LLVMGCC_MAJVERS),4) 30 DIRS := $(filter-out runtime, $(DIRS)) 31endif 32 33ifeq ($(MAKECMDGOALS),libs-only) 34 DIRS := $(filter-out tools runtime docs, $(DIRS)) 35 OPTIONAL_DIRS := 36endif 37 38ifeq ($(MAKECMDGOALS),tools-only) 39 DIRS := $(filter-out runtime docs, $(DIRS)) 40 OPTIONAL_DIRS := 41endif 42 43# Include the main makefile machinery. 44include $(LLVM_SRC_ROOT)/Makefile.rules 45 46# Specify options to pass to configure script when we're 47# running the dist-check target 48DIST_CHECK_CONFIG_OPTIONS = --with-llvmgccdir=$(LLVMGCCDIR) 49 50.PHONY: debug-opt-prof 51debug-opt-prof: 52 $(Echo) Building Debug Version 53 $(Verb) $(MAKE) 54 $(Echo) 55 $(Echo) Building Optimized Version 56 $(Echo) 57 $(Verb) $(MAKE) ENABLE_OPTIMIZED=1 58 $(Echo) 59 $(Echo) Building Profiling Version 60 $(Echo) 61 $(Verb) $(MAKE) ENABLE_PROFILING=1 62 63dist-hook:: 64 $(Echo) Eliminating files constructed by configure 65 $(Verb) $(RM) -f \ 66 $(TopDistDir)/include/llvm/ADT/hash_map \ 67 $(TopDistDir)/include/llvm/ADT/hash_set \ 68 $(TopDistDir)/include/llvm/ADT/iterator \ 69 $(TopDistDir)/include/llvm/Config/config.h \ 70 $(TopDistDir)/include/llvm/Support/DataTypes.h \ 71 $(TopDistDir)/include/llvm/Support/ThreadSupport.h 72 73tools-only: all 74libs-only: all 75 76#------------------------------------------------------------------------ 77# Make sure the generated headers are up-to-date. This must be kept in 78# sync with the AC_CONFIG_HEADER invocations in autoconf/configure.ac 79#------------------------------------------------------------------------ 80FilesToConfig := \ 81 include/llvm/Config/config.h \ 82 include/llvm/Support/DataTypes.h \ 83 include/llvm/ADT/hash_map \ 84 include/llvm/ADT/hash_set \ 85 include/llvm/ADT/iterator 86FilesToConfigPATH := $(addprefix $(LLVM_OBJ_ROOT)/,$(FilesToConfig)) 87 88all-local:: $(FilesToConfigPATH) 89$(FilesToConfigPATH) : $(LLVM_OBJ_ROOT)/% : $(LLVM_SRC_ROOT)/%.in 90 $(Echo) Regenerating $* 91 $(Verb) cd $(LLVM_OBJ_ROOT) && $(ConfigStatusScript) $* 92.PRECIOUS: $(FilesToConfigPATH) 93 94# NOTE: This needs to remain as the last target definition in this file so 95# that it gets executed last. 96all:: 97 $(Echo) '*****' Completed $(BuildMode)$(AssertMode) Build 98ifeq ($(BuildMode),Debug) 99 $(Echo) '*****' Note: Debug build can be 10 times slower than an 100 $(Echo) '*****' optimized build. Use 'make ENABLE_OPTIMIZED=1' to 101 $(Echo) '*****' make an optimized build. 102endif 103 104check-llvm2cpp: 105 $(MAKE) check TESTSUITE=Feature RUNLLVM2CPP=1 106 107srpm: $(LLVM_OBJ_ROOT)/llvm.spec 108 rpmbuild -bs $(LLVM_OBJ_ROOT)/llvm.spec 109 110rpm: $(LLVM_OBJ_ROOT)/llvm.spec 111 rpmbuild -bb --target $(TARGET_TRIPLE) $(LLVM_OBJ_ROOT)/llvm.spec 112 113.PHONY: srpm rpm 114