Makefile revision 06a801a38c43716564b3b9fb6c7a04ed242ecb61
16d5ab866fc1492c12b1f2531bbe7dcdb55ac9e15Misha Brukman#===- ./Makefile -------------------------------------------*- Makefile -*--===#
2e488e9360b1a865ba604330965edcf139e590b65John Criswell# 
3e488e9360b1a865ba604330965edcf139e590b65John Criswell#                     The LLVM Compiler Infrastructure
4e488e9360b1a865ba604330965edcf139e590b65John Criswell#
5e488e9360b1a865ba604330965edcf139e590b65John Criswell# This file was developed by the LLVM research group and is distributed under
6e488e9360b1a865ba604330965edcf139e590b65John Criswell# the University of Illinois Open Source License. See LICENSE.TXT for details.
7e488e9360b1a865ba604330965edcf139e590b65John Criswell# 
86d5ab866fc1492c12b1f2531bbe7dcdb55ac9e15Misha Brukman#===------------------------------------------------------------------------===#
9009505452b713ed2e3a8e99c5545a6e721c65495Chris LattnerLEVEL = .
108b1f7676bddcf099e30b849f511ad5a6a86ea8a0Reid SpencerDIRS = lib/System lib/Support utils lib
11009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner
1206a801a38c43716564b3b9fb6c7a04ed242ecb61Reid Spencerinclude $(LEVEL)/Makefile.config 
1393bc3cdd43a7f4e764049d12bd6aad019b834432Reid Spencer
148b1f7676bddcf099e30b849f511ad5a6a86ea8a0Reid Spencerifeq ($(MAKECMDGOALS),tools-only)
1593bc3cdd43a7f4e764049d12bd6aad019b834432Reid Spencer  DIRS += tools
168b1f7676bddcf099e30b849f511ad5a6a86ea8a0Reid Spencerelse
178b1f7676bddcf099e30b849f511ad5a6a86ea8a0Reid Spencer  ifneq ($(MAKECMDGOALS),libs-only)
1893bc3cdd43a7f4e764049d12bd6aad019b834432Reid Spencer    DIRS += tools
1930ea2fa93314e5b6ce3f58beaffe37f04ba76ac8Reid Spencer    ifneq ($(LLVMGCC_MAJVERS),4)
2093bc3cdd43a7f4e764049d12bd6aad019b834432Reid Spencer      DIRS += runtime
2193bc3cdd43a7f4e764049d12bd6aad019b834432Reid Spencer    else
2293bc3cdd43a7f4e764049d12bd6aad019b834432Reid Spencer      $(warning Skipping runtime libraries, llvm-gcc 4 detected.)
2393bc3cdd43a7f4e764049d12bd6aad019b834432Reid Spencer    endif
2406a801a38c43716564b3b9fb6c7a04ed242ecb61Reid Spencer    OPTIONAL_DIRS := examples projects
2593bc3cdd43a7f4e764049d12bd6aad019b834432Reid Spencer    DIRS += docs
268b1f7676bddcf099e30b849f511ad5a6a86ea8a0Reid Spencer  endif
276a8c2907b0721ce53ad6887be5b10eef50dac060Chris Lattnerendif
2890c29494121e3a4cefb5cae5d272178bbc49d3a9Reid SpencerEXTRA_DIST := test llvm.spec include
2990c29494121e3a4cefb5cae5d272178bbc49d3a9Reid Spencer
3006a801a38c43716564b3b9fb6c7a04ed242ecb61Reid Spencerinclude $(LLVM_SRC_ROOT)/Makefile.rules
3106a801a38c43716564b3b9fb6c7a04ed242ecb61Reid Spencer
3245eeed9b359eba3a69fd0911c543feed3d112d15Reid Spencer# Specify options to pass to configure script when we're
3345eeed9b359eba3a69fd0911c543feed3d112d15Reid Spencer# running the dist-check target
3445eeed9b359eba3a69fd0911c543feed3d112d15Reid SpencerDIST_CHECK_CONFIG_OPTIONS = --with-llvmgccdir=$(LLVMGCCDIR)
3545eeed9b359eba3a69fd0911c543feed3d112d15Reid Spencer
36df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer.PHONY: debug-opt-prof
37df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencerdebug-opt-prof:
38df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Echo) Building Debug Version
39df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Verb) $(MAKE)
40df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Echo)
41df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Echo) Building Optimized Version
42df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Echo)
43df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Verb) $(MAKE) ENABLE_OPTIMIZED=1
44df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Echo)
45df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Echo) Building Profiling Version
46df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Echo)
47df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Verb) $(MAKE) ENABLE_PROFILING=1
48df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer
49151f8ba3645defc371eb4b68427384e411305734Reid Spencerdist-hook::
50cc2d1e25f37d0d00c7f7f3ec562be61bc34e54caReid Spencer	$(Echo) Eliminating files constructed by configure
51cc2d1e25f37d0d00c7f7f3ec562be61bc34e54caReid Spencer	$(Verb) $(RM) -f \
5290c29494121e3a4cefb5cae5d272178bbc49d3a9Reid Spencer	  $(TopDistDir)/include/llvm/ADT/hash_map  \
5390c29494121e3a4cefb5cae5d272178bbc49d3a9Reid Spencer	  $(TopDistDir)/include/llvm/ADT/hash_set  \
5490c29494121e3a4cefb5cae5d272178bbc49d3a9Reid Spencer	  $(TopDistDir)/include/llvm/ADT/iterator  \
5590c29494121e3a4cefb5cae5d272178bbc49d3a9Reid Spencer	  $(TopDistDir)/include/llvm/Config/config.h  \
5690c29494121e3a4cefb5cae5d272178bbc49d3a9Reid Spencer	  $(TopDistDir)/include/llvm/Support/DataTypes.h  \
5790c29494121e3a4cefb5cae5d272178bbc49d3a9Reid Spencer	  $(TopDistDir)/include/llvm/Support/ThreadSupport.h
58151f8ba3645defc371eb4b68427384e411305734Reid Spencer
599cf662b367795f07ddf2c6deca33839b6581548bChris Lattnertools-only: all
608b1f7676bddcf099e30b849f511ad5a6a86ea8a0Reid Spencerlibs-only: all
61ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer
62ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer#------------------------------------------------------------------------
63ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer# Make sure the generated headers are up-to-date. This must be kept in
64ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer# sync with the AC_CONFIG_HEADER invocations in autoconf/configure.ac
65ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer#------------------------------------------------------------------------
66ca739c685b963b103ae2d201e038ac37e7af4b29Reid SpencerFilesToConfig := \
67ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer  include/llvm/Config/config.h \
68ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer  include/llvm/Support/DataTypes.h \
69ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer  include/llvm/ADT/hash_map \
70ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer  include/llvm/ADT/hash_set \
71ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer  include/llvm/ADT/iterator
72ca739c685b963b103ae2d201e038ac37e7af4b29Reid SpencerFilesToConfigPATH  := $(addprefix $(LLVM_OBJ_ROOT)/,$(FilesToConfig))
73ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer
74ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencerall-local:: $(FilesToConfigPATH)
75ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer$(FilesToConfigPATH) : $(LLVM_OBJ_ROOT)/% : $(LLVM_SRC_ROOT)/%.in 
76ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer	$(Echo) Regenerating $*
77ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer	$(Verb) cd $(LLVM_OBJ_ROOT) && $(ConfigStatusScript) $*
78ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer.PRECIOUS: $(FilesToConfigPATH)
79e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencer
8038ab6d887c660c7e2fe08707e8f982ab451fb224Chris Lattner# NOTE: This needs to remain as the last target definition in this file so
8138ab6d887c660c7e2fe08707e8f982ab451fb224Chris Lattner# that it gets executed last.
82e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencerall:: 
83e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencer	$(Echo) '*****' Completed $(BuildMode)$(AssertMode) Build
84e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencerifeq ($(BuildMode),Debug)
85e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencer	$(Echo) '*****' Note: Debug build can be 10 times slower than an
86e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencer	$(Echo) '*****' optimized build. Use 'make ENABLE_OPTIMIZED=1' to
87e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencer	$(Echo) '*****' make an optimized build.
88e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencerendif
8938ab6d887c660c7e2fe08707e8f982ab451fb224Chris Lattner
90