Makefile revision 9df5561a952cbfe32aea4e1fbde16655af82efd0
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. llvm-gcc4 is the only supported one. 29# FIXME: Remove runtime entirely once we have an understanding of where 30# libprofile etc should go. 31#ifeq ($(LLVMGCC_MAJVERS),4) 32 DIRS := $(filter-out runtime, $(DIRS)) 33#endif 34 35ifeq ($(MAKECMDGOALS),libs-only) 36 DIRS := $(filter-out tools runtime docs, $(DIRS)) 37 OPTIONAL_DIRS := 38endif 39 40ifeq ($(MAKECMDGOALS),tools-only) 41 DIRS := $(filter-out runtime docs, $(DIRS)) 42 OPTIONAL_DIRS := 43endif 44 45# Don't install utils, examples, or projects they are only used to 46# build LLVM. 47ifeq ($(MAKECMDGOALS),install) 48 DIRS := $(filter-out utils, $(DIRS)) 49 OPTIONAL_DIRS := 50endif 51 52# Include the main makefile machinery. 53include $(LLVM_SRC_ROOT)/Makefile.rules 54 55# Specify options to pass to configure script when we're 56# running the dist-check target 57DIST_CHECK_CONFIG_OPTIONS = --with-llvmgccdir=$(LLVMGCCDIR) 58 59.PHONY: debug-opt-prof 60debug-opt-prof: 61 $(Echo) Building Debug Version 62 $(Verb) $(MAKE) 63 $(Echo) 64 $(Echo) Building Optimized Version 65 $(Echo) 66 $(Verb) $(MAKE) ENABLE_OPTIMIZED=1 67 $(Echo) 68 $(Echo) Building Profiling Version 69 $(Echo) 70 $(Verb) $(MAKE) ENABLE_PROFILING=1 71 72dist-hook:: 73 $(Echo) Eliminating files constructed by configure 74 $(Verb) $(RM) -f \ 75 $(TopDistDir)/include/llvm/ADT/hash_map \ 76 $(TopDistDir)/include/llvm/ADT/hash_set \ 77 $(TopDistDir)/include/llvm/ADT/iterator \ 78 $(TopDistDir)/include/llvm/Config/config.h \ 79 $(TopDistDir)/include/llvm/Support/DataTypes.h \ 80 $(TopDistDir)/include/llvm/Support/ThreadSupport.h 81 82tools-only: all 83libs-only: all 84 85#------------------------------------------------------------------------ 86# Make sure the generated headers are up-to-date. This must be kept in 87# sync with the AC_CONFIG_HEADER invocations in autoconf/configure.ac 88#------------------------------------------------------------------------ 89FilesToConfig := \ 90 include/llvm/Config/config.h \ 91 include/llvm/Support/DataTypes.h \ 92 include/llvm/ADT/hash_map \ 93 include/llvm/ADT/hash_set \ 94 include/llvm/ADT/iterator 95FilesToConfigPATH := $(addprefix $(LLVM_OBJ_ROOT)/,$(FilesToConfig)) 96 97all-local:: $(FilesToConfigPATH) 98$(FilesToConfigPATH) : $(LLVM_OBJ_ROOT)/% : $(LLVM_SRC_ROOT)/%.in 99 $(Echo) Regenerating $* 100 $(Verb) cd $(LLVM_OBJ_ROOT) && $(ConfigStatusScript) $* 101.PRECIOUS: $(FilesToConfigPATH) 102 103# NOTE: This needs to remain as the last target definition in this file so 104# that it gets executed last. 105all:: 106 $(Echo) '*****' Completed $(BuildMode)$(AssertMode) Build 107ifeq ($(BuildMode),Debug) 108 $(Echo) '*****' Note: Debug build can be 10 times slower than an 109 $(Echo) '*****' optimized build. Use 'make ENABLE_OPTIMIZED=1' to 110 $(Echo) '*****' make an optimized build. 111endif 112 113check-llvm2cpp: 114 $(MAKE) check TESTSUITE=Feature RUNLLVM2CPP=1 115 116check-one: 117 $(MAKE) -C test check-one TESTONE=$(TESTONE) 118 119srpm: $(LLVM_OBJ_ROOT)/llvm.spec 120 rpmbuild -bs $(LLVM_OBJ_ROOT)/llvm.spec 121 122rpm: $(LLVM_OBJ_ROOT)/llvm.spec 123 rpmbuild -bb --target $(TARGET_TRIPLE) $(LLVM_OBJ_ROOT)/llvm.spec 124 125show-footprint: 126 $(Verb) du -sk $(LibDir) 127 $(Verb) du -sk $(ToolDir) 128 $(Verb) du -sk $(ExmplDir) 129 $(Verb) du -sk $(ObjDir) 130 131.PHONY: srpm rpm 132