Makefile revision 5b30ee1c13a742f0c1843f867a6f75680c14e894
16d5ab866fc1492c12b1f2531bbe7dcdb55ac9e15Misha Brukman#===- ./Makefile -------------------------------------------*- Makefile -*--===#
2ef5dc7072fb96a66cc744c0fd6550def9e7f7159Misha Brukman# 
3e488e9360b1a865ba604330965edcf139e590b65John Criswell#                     The LLVM Compiler Infrastructure
4e488e9360b1a865ba604330965edcf139e590b65John Criswell#
557360d1f1cede3b26744d0ce3ade814fcc0f332dChris Lattner# This file was developed by the LLVM research group and is distributed under
657360d1f1cede3b26744d0ce3ade814fcc0f332dChris Lattner# the University of Illinois Open Source License. See LICENSE.TXT for details.
7ef5dc7072fb96a66cc744c0fd6550def9e7f7159Misha Brukman# 
86d5ab866fc1492c12b1f2531bbe7dcdb55ac9e15Misha Brukman#===------------------------------------------------------------------------===#
922033b2a4e0330b24fd601ef36e36bb1e544bf9dChris LattnerLEVEL = .
105720be4138bba4fafb72a0f3034cfe47af40b696Chris LattnerDIRS = lib/System lib/Support utils lib/VMCore lib
1187b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattner
1287b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattnerinclude $(LEVEL)/Makefile.config 
1387b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattner
1487b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattnerifeq ($(MAKECMDGOALS),tools-only)
1587b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattner  DIRS += tools
1687b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattnerelse
1787b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattner  ifneq ($(MAKECMDGOALS),libs-only)
188b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer    DIRS += tools
1987b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattner    ifneq ($(LLVMGCC_MAJVERS),4)
20569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov      DIRS += runtime
21569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov    else
22569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov      $(warning Skipping runtime libraries, llvm-gcc 4 detected.)
23569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov    endif
24569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov    OPTIONAL_DIRS := examples projects
25569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov    DIRS += docs
26569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov  endif
27569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovendif
28569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton KorobeynikovEXTRA_DIST := test llvm.spec include win32 Xcode
29569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov
30df93e579757961d9a43c3fee9b97b43da8fb652cDavid Greeneinclude $(LLVM_SRC_ROOT)/Makefile.rules
318fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukman
32009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner# Specify options to pass to configure script when we're
33ef5dc7072fb96a66cc744c0fd6550def9e7f7159Misha Brukman# running the dist-check target
3493bc3cdd43a7f4e764049d12bd6aad019b834432Reid SpencerDIST_CHECK_CONFIG_OPTIONS = --with-llvmgccdir=$(LLVMGCCDIR)
35c6b66ebba9e77ecc766780f4c860ec554f963855Chris Lattner
36c6b66ebba9e77ecc766780f4c860ec554f963855Chris Lattner.PHONY: debug-opt-prof
37c6b66ebba9e77ecc766780f4c860ec554f963855Chris Lattnerdebug-opt-prof:
38c6b66ebba9e77ecc766780f4c860ec554f963855Chris Lattner	$(Echo) Building Debug Version
398b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer	$(Verb) $(MAKE)
40c6b66ebba9e77ecc766780f4c860ec554f963855Chris Lattner	$(Echo)
418b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer	$(Echo) Building Optimized Version
425720be4138bba4fafb72a0f3034cfe47af40b696Chris Lattner	$(Echo)
438b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer	$(Verb) $(MAKE) ENABLE_OPTIMIZED=1
445720be4138bba4fafb72a0f3034cfe47af40b696Chris Lattner	$(Echo)
455720be4138bba4fafb72a0f3034cfe47af40b696Chris Lattner	$(Echo) Building Profiling Version
4622033b2a4e0330b24fd601ef36e36bb1e544bf9dChris Lattner	$(Echo)
47544f83db6b124d042cdb4eba1c83528056e81f09Nate Begeman	$(Verb) $(MAKE) ENABLE_PROFILING=1
48544f83db6b124d042cdb4eba1c83528056e81f09Nate Begeman
49544f83db6b124d042cdb4eba1c83528056e81f09Nate Begemandist-hook::
50544f83db6b124d042cdb4eba1c83528056e81f09Nate Begeman	$(Echo) Eliminating files constructed by configure
51544f83db6b124d042cdb4eba1c83528056e81f09Nate Begeman	$(Verb) $(RM) -f \
528b1f7676bddcf099e30b849f511ad5a6a86ea8a0Reid Spencer	  $(TopDistDir)/include/llvm/ADT/hash_map  \
538b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer	  $(TopDistDir)/include/llvm/ADT/hash_set  \
545720be4138bba4fafb72a0f3034cfe47af40b696Chris Lattner	  $(TopDistDir)/include/llvm/ADT/iterator  \
556a8c2907b0721ce53ad6887be5b10eef50dac060Chris Lattner	  $(TopDistDir)/include/llvm/Config/config.h  \
5622033b2a4e0330b24fd601ef36e36bb1e544bf9dChris Lattner	  $(TopDistDir)/include/llvm/Support/DataTypes.h  \
57b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump	  $(TopDistDir)/include/llvm/Support/ThreadSupport.h
58e568f641311883c2a1240e8e50d2e1e2cf04e15fMike Stump
59166c9e244c18d0c4003b80d80cbc5d32ec3e5dbeMike Stumptools-only: all
60b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stumplibs-only: all
61b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump
62b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump#------------------------------------------------------------------------
63b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump# Make sure the generated headers are up-to-date. This must be kept in
64b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump# sync with the AC_CONFIG_HEADER invocations in autoconf/configure.ac
65b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump#------------------------------------------------------------------------
66b76ace310ad72f4c540f260ee18eef6674b15f31Mike StumpFilesToConfig := \
67b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump  include/llvm/Config/config.h \
68b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump  include/llvm/Support/DataTypes.h \
698fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukman  include/llvm/ADT/hash_map \
708fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukman  include/llvm/ADT/hash_set \
718fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukman  include/llvm/ADT/iterator
728fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha BrukmanFilesToConfigPATH  := $(addprefix $(LLVM_OBJ_ROOT)/,$(FilesToConfig))
738fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukman
74c89146587ac8a030b1c63a52bdecd8eedbc87b09Chris Lattnerall-local:: $(FilesToConfigPATH)
75c89146587ac8a030b1c63a52bdecd8eedbc87b09Chris Lattner$(FilesToConfigPATH) : $(LLVM_OBJ_ROOT)/% : $(LLVM_SRC_ROOT)/%.in 
76122c05571141b695d9683b3fb4ce060e1ea1c009Chris Lattner	$(Echo) Regenerating $*
778ef426baa36639458f6777309db25c1768dc9c8aGordon Henriksen	$(Verb) cd $(LLVM_OBJ_ROOT) && $(ConfigStatusScript) $*
78122c05571141b695d9683b3fb4ce060e1ea1c009Chris Lattner.PRECIOUS: $(FilesToConfigPATH)
79122c05571141b695d9683b3fb4ce060e1ea1c009Chris Lattner
80569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov# NOTE: This needs to remain as the last target definition in this file so
81569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov# that it gets executed last.
82569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovall:: 
83569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov	$(Echo) '*****' Completed $(BuildMode)$(AssertMode) Build
84569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovifeq ($(BuildMode),Debug)
85569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov	$(Echo) '*****' Note: Debug build can be 10 times slower than an
86569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov	$(Echo) '*****' optimized build. Use 'make ENABLE_OPTIMIZED=1' to
87569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov	$(Echo) '*****' make an optimized build.
88569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovendif
89569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov
90569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovcheck-llvm2cpp:
91569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov	$(MAKE) check TESTSUITE=Feature RUNLLVM2CPP=1
92569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov