Makefile revision 06a801a38c43716564b3b9fb6c7a04ed242ecb61
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
1187b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattner
1287b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattnerinclude $(LEVEL)/Makefile.config 
137c788888872233748da10a8177a9a1eb176c1bc8Peter Collingbourne
14fe4c10caecc31dcb7a630091e1250e284ed528d5Chandler Carruthifeq ($(MAKECMDGOALS),tools-only)
15fe4c10caecc31dcb7a630091e1250e284ed528d5Chandler Carruth  DIRS += tools
161ad92131abbed3d2992d5996969274a8e1ae9a6bDaniel Dunbarelse
171ad92131abbed3d2992d5996969274a8e1ae9a6bDaniel Dunbar  ifneq ($(MAKECMDGOALS),libs-only)
181ad92131abbed3d2992d5996969274a8e1ae9a6bDaniel Dunbar    DIRS += tools
1987b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattner    ifneq ($(LLVMGCC_MAJVERS),4)
20569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov      DIRS += runtime
21569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov    else
224a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings      $(warning Skipping runtime libraries, llvm-gcc 4 detected.)
234a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings    endif
244a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings    OPTIONAL_DIRS := examples projects
254a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings    DIRS += docs
264a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings  endif
272cdc80c0671617ca9ff74ebcd8b8bd3a7097877eJim Grosbachendif
282cdc80c0671617ca9ff74ebcd8b8bd3a7097877eJim GrosbachEXTRA_DIST := test llvm.spec include
29569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov
30cb497b888aabebe13de431c8a6e7c7d31f4dea0cDaniel Dunbarinclude $(LLVM_SRC_ROOT)/Makefile.rules
310be07d39b1815536fadebf447008ff1ae9a78869Peter Collingbourne
32569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov# Specify options to pass to configure script when we're
33fe4c10caecc31dcb7a630091e1250e284ed528d5Chandler Carruth# running the dist-check target
34cb497b888aabebe13de431c8a6e7c7d31f4dea0cDaniel DunbarDIST_CHECK_CONFIG_OPTIONS = --with-llvmgccdir=$(LLVMGCCDIR)
35da589a3a963e6cc179d850c5fd395d3e10ce741cDaniel Dunbar
36da589a3a963e6cc179d850c5fd395d3e10ce741cDaniel Dunbar.PHONY: debug-opt-prof
37da589a3a963e6cc179d850c5fd395d3e10ce741cDaniel Dunbardebug-opt-prof:
38da589a3a963e6cc179d850c5fd395d3e10ce741cDaniel Dunbar	$(Echo) Building Debug Version
39da589a3a963e6cc179d850c5fd395d3e10ce741cDaniel Dunbar	$(Verb) $(MAKE)
40569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov	$(Echo)
41df93e579757961d9a43c3fee9b97b43da8fb652cDavid Greene	$(Echo) Building Optimized Version
428fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukman	$(Echo)
43009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner	$(Verb) $(MAKE) ENABLE_OPTIMIZED=1
44ef5dc7072fb96a66cc744c0fd6550def9e7f7159Misha Brukman	$(Echo)
4593bc3cdd43a7f4e764049d12bd6aad019b834432Reid Spencer	$(Echo) Building Profiling Version
46c90171961d020d93e4ce548016d8ccb8aab00c57Jeffrey Yasskin	$(Echo)
47c90171961d020d93e4ce548016d8ccb8aab00c57Jeffrey Yasskin	$(Verb) $(MAKE) ENABLE_PROFILING=1
48c90171961d020d93e4ce548016d8ccb8aab00c57Jeffrey Yasskin
49c90171961d020d93e4ce548016d8ccb8aab00c57Jeffrey Yasskindist-hook::
509d9ae9fb59ee3897ffc21dfa3b7078478ac6d674Rafael Espindola	$(Echo) Eliminating files constructed by configure
519d9ae9fb59ee3897ffc21dfa3b7078478ac6d674Rafael Espindola	$(Verb) $(RM) -f \
529d9ae9fb59ee3897ffc21dfa3b7078478ac6d674Rafael Espindola	  $(TopDistDir)/include/llvm/ADT/hash_map  \
539d9ae9fb59ee3897ffc21dfa3b7078478ac6d674Rafael Espindola	  $(TopDistDir)/include/llvm/ADT/hash_set  \
545720be4138bba4fafb72a0f3034cfe47af40b696Chris Lattner	  $(TopDistDir)/include/llvm/ADT/iterator  \
558b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer	  $(TopDistDir)/include/llvm/Config/config.h  \
565720be4138bba4fafb72a0f3034cfe47af40b696Chris Lattner	  $(TopDistDir)/include/llvm/Support/DataTypes.h  \
575720be4138bba4fafb72a0f3034cfe47af40b696Chris Lattner	  $(TopDistDir)/include/llvm/Support/ThreadSupport.h
5822033b2a4e0330b24fd601ef36e36bb1e544bf9dChris Lattner
59544f83db6b124d042cdb4eba1c83528056e81f09Nate Begemantools-only: all
60544f83db6b124d042cdb4eba1c83528056e81f09Nate Begemanlibs-only: all
61544f83db6b124d042cdb4eba1c83528056e81f09Nate Begeman
62544f83db6b124d042cdb4eba1c83528056e81f09Nate Begeman#------------------------------------------------------------------------
63544f83db6b124d042cdb4eba1c83528056e81f09Nate Begeman# Make sure the generated headers are up-to-date. This must be kept in
648b1f7676bddcf099e30b849f511ad5a6a86ea8a0Reid Spencer# sync with the AC_CONFIG_HEADER invocations in autoconf/configure.ac
658b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer#------------------------------------------------------------------------
665720be4138bba4fafb72a0f3034cfe47af40b696Chris LattnerFilesToConfig := \
676a8c2907b0721ce53ad6887be5b10eef50dac060Chris Lattner  include/llvm/Config/config.h \
6822033b2a4e0330b24fd601ef36e36bb1e544bf9dChris Lattner  include/llvm/Support/DataTypes.h \
69b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump  include/llvm/ADT/hash_map \
706b8dfed15e765e7b3d2121cd7fef377e6c9e00daDaniel Dunbar  include/llvm/ADT/hash_set \
714e33d94304c499083b2a3d4a8904084001f83882Bob Wilson  include/llvm/ADT/iterator
729d8c6786588458e741ca38559f3d66bf006dfa69Argyrios KyrtzidisFilesToConfigPATH  := $(addprefix $(LLVM_OBJ_ROOT)/,$(FilesToConfig))
739fbf6173b8730e18b39c0a6f3f348451f506780eBob Wilson
74e160a520ce94adfb1e1afbaddc2bd5ea7cd12d5cDaniel Dunbarall-local:: $(FilesToConfigPATH)
75a1f21e69c4d3c658975ff4dc914ea6f2ccdaeaa0Bill Wendling$(FilesToConfigPATH) : $(LLVM_OBJ_ROOT)/% : $(LLVM_SRC_ROOT)/%.in 
76b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump	$(Echo) Regenerating $*
77b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump	$(Verb) cd $(LLVM_OBJ_ROOT) && $(ConfigStatusScript) $*
78b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump.PRECIOUS: $(FilesToConfigPATH)
79b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump
80b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump# NOTE: This needs to remain as the last target definition in this file so
81a1f21e69c4d3c658975ff4dc914ea6f2ccdaeaa0Bill Wendling# that it gets executed last.
82e160a520ce94adfb1e1afbaddc2bd5ea7cd12d5cDaniel Dunbarall:: 
83b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump	$(Echo) '*****' Completed $(BuildMode)$(AssertMode) Build
84b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stumpifeq ($(BuildMode),Debug)
85b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump	$(Echo) '*****' Note: Debug build can be 10 times slower than an
868fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukman	$(Echo) '*****' optimized build. Use 'make ENABLE_OPTIMIZED=1' to
878fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukman	$(Echo) '*****' make an optimized build.
888fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukmanendif
898fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukman
908fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukman