Commit Graph

317 Commits

Author SHA1 Message Date
John Criswell 816deb775d Modified the SUFFIXES pseudo targets so that we remove all default suffixes
and explicitly declare all the ones we're using for LLVM.
This quickly cancels many of GNU Make's implicit rules and reduces build time.
The only caveat is that any new suffixes may need to be explictly added to
the .SUFFIXES pseudo target.

Removed the -only-static option as it is no longer used.

llvm-svn: 7979
2003-08-20 15:18:41 +00:00
Chris Lattner 598222b5e8 Add new cleandeps target, to allow easy cleaning out of .d files
llvm-svn: 7954
2003-08-18 17:27:40 +00:00
Chris Lattner 92fc9b0fc5 Remove extraneous ;'s, no functional changes
llvm-svn: 7902
2003-08-15 20:00:47 +00:00
Chris Lattner 5c0b0ba3f8 Add llvm tools to path of LLVMGCC
llvm-svn: 7882
2003-08-15 15:20:52 +00:00
Chris Lattner 2e9fc94afc Make sure to create the directory before we cram a .bc file into it
llvm-svn: 7864
2003-08-15 03:02:52 +00:00
Chris Lattner 0c4f4fe11b Implement BYTECODE_LIBRARY support
llvm-svn: 7855
2003-08-15 02:18:35 +00:00
Chris Lattner 23991d5d65 Simplifications to Makefile.common, remove support for Purify since it was
broken by libtoolification anyways, and noone can use it because purify doesn't
support the 64-bit sparc compilers even if it weren't broken!

llvm-svn: 7850
2003-08-14 21:10:25 +00:00
John Criswell 48ecca60e1 Merged in changes between PRE11_ROOT and LLVM_PRE111 (i.e. the beginning of
the pre-release 1.1 branch and pre-release 1.1.1).
Made the USE_SPEC option work.
Silenced unnecessary error output from the cmp command when checking for
updates to lex/yacc generated files.  This fixes a problem where we get error
messages the first time the file is generated.
Fixed the distclean option.  It is now in the Makefile (i.e. only runs in the
top level source directory), removes more files, and plays nicely with
external project Makefiles.

llvm-svn: 7780
2003-08-12 18:51:51 +00:00
Brian Gaeke 360855a017 Makefile.common: Remove commented-out and duplicate rules.
llvm-svn: 7650
2003-08-06 21:44:22 +00:00
John Criswell 1943f88a79 Reverted back to using OR for cmp/mv operations for lex/yacc output.
The shell AND/OR operators short-circuit on command success/failure, which is
the inverse of exit status (i.e. 0 means success, non-zero means failure).

llvm-svn: 7616
2003-08-05 21:38:28 +00:00
John Criswell 4d79702a4c Switched from using diff to cmp for two reasons:
o Not all versions of diff have the -q option
	o The cmp program is probably faster than diff
Fixed the logic that only copies the file over if no differences are found.

llvm-svn: 7615
2003-08-05 21:21:58 +00:00
Chris Lattner 5d4f4e8ba8 Urg, do not print "foo has changed" messages
llvm-svn: 7573
2003-08-04 20:07:01 +00:00
Chris Lattner b3aae61c5f While I'm looking at it, line up the SED lines
llvm-svn: 7572
2003-08-04 19:48:10 +00:00
Chris Lattner 7d0adf79ec * Don't print out HOW we are running Flex unless in verbose mode. We already
hide the bison command line.
* If running flex or bison gives us the files we already have, don't overwrite
  the ones we have, which cause unnecessary compilation.  I demand the ability
  to make meaningless changes without penalty!

llvm-svn: 7571
2003-08-04 19:47:06 +00:00
John Criswell 3601f37b0f Modified the use of libtool so that we don't compile every file twice.
This can be done using the disable-shared tag that comes with libtool.
This change also required changing how .o libraries are linked.

llvm-svn: 7458
2003-07-31 20:58:51 +00:00
John Criswell 8d3a83cef7 Renamed libtool to mklib for your tab completion pleasure.
llvm-svn: 7255
2003-07-23 16:52:50 +00:00
John Criswell af4d13026c Marked some of the phony targets are PHONY. This will hopefully speed
up builds a little bit since it will prevent GNU make from matching these
phony targets against implicit rules.

llvm-svn: 7183
2003-07-16 20:26:06 +00:00
Misha Brukman 7b14a19965 The word `separate' only has one `e'.
llvm-svn: 7174
2003-07-14 17:26:34 +00:00
Vikram S. Adve 5fc4aee04e Add phony target "bytecode" to ensure that it works in recursive makes.
llvm-svn: 7147
2003-07-10 19:25:29 +00:00
Misha Brukman fd3e0afe65 Move the space separator to where it really belongs: in the print statement, not
in a variable assignment.

llvm-svn: 7141
2003-07-10 16:52:41 +00:00
Misha Brukman 6d1871c28b Removed an extra slash that appears in the path name when these variables are
combined with a '/' separating them.

llvm-svn: 7121
2003-07-07 22:27:05 +00:00
John Criswell 7320d2fd32 Renamed all of the LObj* variables (which represent libtool objects) to Obj*.
One of the test Makefiles uses the same variable names for something else,
and this was probably interfering with it.

llvm-svn: 7024
2003-07-01 14:52:28 +00:00
John Criswell 3ef61afb76 Merged in autoconf branch. This provides configuration via the autoconf
system.

llvm-svn: 7014
2003-06-30 21:59:07 +00:00
John Criswell 8224df947c Added the OPTIONAL_DIRS variable for specifying optional directories to build.
llvm-svn: 6926
2003-06-27 16:58:44 +00:00
John Criswell d9b7c5f430 Reverted back to revision 1.91.
llvm-svn: 6812
2003-06-20 21:24:54 +00:00
John Criswell ef1c153975 Added a hack that takes the path relative to the home directory into account
if a home directory is provided by the environment.

llvm-svn: 6805
2003-06-20 18:35:39 +00:00
Chris Lattner f6791e5458 Fix problem building optmized build
llvm-svn: 6798
2003-06-20 15:41:57 +00:00
Chris Lattner 8e31d81bd7 Remove extra line
llvm-svn: 6773
2003-06-18 19:20:11 +00:00
John Criswell 668fbc229a Modified the environment variables that determine where things are located to
do the following:
	1) Determine their default values without $HOME
	2) Configure the default values as full absolute pathnames.
This should help fix the nightly test builds.

llvm-svn: 6719
2003-06-16 19:14:31 +00:00
John Criswell 0607d88385 Modified Makefile.common to handle compilation of projects inside and outside
of the llvm source directory.
The main modification was to add new environment variables: one set for llvm
entities and another set for source entities current being compiled.
This should make the Makefile more flexible and easier to understand as each
environment variable only does one thing.

llvm-svn: 6679
2003-06-11 13:55:44 +00:00
John Criswell 857ec18910 Added configurable options for the Linker and Archiver.
llvm-svn: 6432
2003-05-30 15:50:31 +00:00
Dinakar Dhurjati 55512b1873 Added documentation for the project options
llvm-svn: 6418
2003-05-29 21:49:00 +00:00
Chris Lattner db34fb511d Get rid of extraneous ""s
llvm-svn: 6416
2003-05-29 20:40:32 +00:00
Misha Brukman 3484432e4e Added a path to the current version of the built TableGen.
llvm-svn: 6409
2003-05-29 20:09:23 +00:00
John Criswell 9cca31fb4e Removed configuration options that are better served in Makefile.config.
Fixed the LibInstDir macro.
Added the use of the FLEX variable.

llvm-svn: 6405
2003-05-29 18:52:10 +00:00
Dinakar Dhurjati 41f7748489 Added project options to the Makefile.common
llvm-svn: 6402
2003-05-29 16:18:20 +00:00
Chris Lattner 021249f3f3 Add facilities for building source that is outside of the current directory
llvm-svn: 6238
2003-05-15 21:28:55 +00:00
Chris Lattner c2bd7cf9fa Fix several bugs in the build system, including the use of the Debug version of Burg no matter what configuration is currently configured.
llvm-svn: 5744
2003-03-14 20:25:22 +00:00
Chris Lattner 61493ff1d6 Fix warnings compiling C files
llvm-svn: 5600
2003-02-19 22:12:20 +00:00
Chris Lattner 4bb0806f91 Fix profile builds
llvm-svn: 5551
2003-02-13 16:56:30 +00:00
Chris Lattner 936e61bcbc Add -fomit-frame-pointer when optimizing
llvm-svn: 5547
2003-02-12 20:45:45 +00:00
Chris Lattner d119b565fd Fix strip issue Joel ran into
llvm-svn: 5449
2003-01-31 19:00:26 +00:00
Chris Lattner 9e46166980 Fix problem with flex scanners and huge token sizes
llvm-svn: 5410
2003-01-23 16:33:10 +00:00
Chris Lattner 3ecb776d34 Fix lli build problem with parallel makes
llvm-svn: 5396
2003-01-22 16:13:31 +00:00
Chris Lattner db644ddfe7 Simplify and correct rules for building lex/yacc files. Make sure to delete
output upon make clean

llvm-svn: 5347
2003-01-16 22:44:19 +00:00
Chris Lattner 23d4739e17 Add helper
llvm-svn: 5342
2003-01-16 21:06:18 +00:00
Chris Lattner e48c528442 Add support for a recursive test target
llvm-svn: 5332
2003-01-16 20:02:30 +00:00
Vikram S. Adve 879874e602 Use -Wl,-x instead of -s: it is more portable, and in particular,
is needed on BSD (MacOS).
Also, use -Ldir instead of -L dir on the link line.  Same reason...

llvm-svn: 5068
2002-12-16 01:31:18 +00:00
Misha Brukman 8b6e7d50b7 On `make clean', kill the core files produced, which are of the form:
core.### where ### is the process ID. We use core.[0-9][0-9]* to avoid killing
core.c, core.cpp, and core.h files which may be part of benchmarks.

llvm-svn: 4913
2002-12-04 17:08:15 +00:00
Chris Lattner f131358f59 Generalize ExportSymbols into PLATFORMLINKOPTS
llvm-svn: 4542
2002-11-04 20:50:33 +00:00
Chris Lattner 2ec11d03d8 Don't link tools with -g objects!
llvm-svn: 4370
2002-10-29 15:15:22 +00:00
Chris Lattner 1ad7c12018 Patch submited by Casey to remove obnoxious warnings.
llvm-svn: 4278
2002-10-25 14:32:42 +00:00
Chris Lattner cf388bb247 Disable optimization that doesn't apply to C
llvm-svn: 4264
2002-10-22 23:35:28 +00:00
Chris Lattner d3fcf42efc Fix misspelled variable
llvm-svn: 4262
2002-10-22 23:28:23 +00:00
Vikram S. Adve a12d4c0065 Warn when we are linking an executable without symbols.
llvm-svn: 4236
2002-10-20 21:45:49 +00:00
Vikram S. Adve 7fc4b5c779 Remove outdated line which of course cvs merging never detects...
llvm-svn: 4175
2002-10-15 01:59:45 +00:00
Vikram S. Adve 53738841e6 Allow the Source variable to be overridden completely if needed.
llvm-svn: 4172
2002-10-14 16:40:04 +00:00
Chris Lattner 8d081dd436 Make sure to print message when linking a debug .o file
llvm-svn: 3918
2002-09-25 17:15:22 +00:00
Chris Lattner a8ce09e2de * Minor fixes to support C files.
* Build burg as a utility now, change its location
* Clean up other rules

llvm-svn: 3876
2002-09-22 02:47:15 +00:00
Vikram S. Adve 6a2258b230 Fix yet another profile linking issue.
llvm-svn: 3865
2002-09-20 18:16:20 +00:00
Vikram S. Adve a0abb97e71 Fix link error for profile version. Also, build Burg differently
for different architectures.

llvm-svn: 3862
2002-09-20 16:15:57 +00:00
Vikram S. Adve 20aa62f1cb The ENABLE_PROFILING flag now builds the profiled libraries and executables
into a Profile/ directory to keep them separate from the Debug/ and
Release/ versions.  Also, it turns on ENABLE_OPTIMIZED automatically.

llvm-svn: 3854
2002-09-20 14:03:13 +00:00
Chris Lattner c58930c52c Move the burg option out of Makefile.config into Makefile.common since
it no longer needs to be configured.

llvm-svn: 3828
2002-09-19 19:42:24 +00:00
Vikram S. Adve d141c281a4 Strip tools/Debug/ executables by default. Define KEEP_SYMBOLS to
turn off stripping for any executable.

llvm-svn: 3812
2002-09-18 11:55:13 +00:00
Anand Shukla 8c2a0eeacb corrected small bug, to handle when DIRS is not defined.
llvm-svn: 3810
2002-09-18 04:29:30 +00:00
Chris Lattner f3dd5f5888 Add support for the new PARALLEL_DIRS option
llvm-svn: 3807
2002-09-18 03:22:27 +00:00
Chris Lattner 59ded8e5c0 Allow the VERBOSE=1 option to turn on output of recursive make behavior
llvm-svn: 3796
2002-09-17 23:45:34 +00:00
Chris Lattner 539a23cffa Fix parallel recursive make to build directories in order
llvm-svn: 3794
2002-09-17 23:35:02 +00:00
Chris Lattner 0100eab505 Comment line of the makefile
llvm-svn: 3770
2002-09-16 22:36:42 +00:00
Chris Lattner e6e193cacd Handle whitespace in LIBRARYNAME gracefully
llvm-svn: 3769
2002-09-16 22:34:56 +00:00
Chris Lattner e5ad7bd9cf Factor platform specific makefile directives out into their own makefile
fragments.  This is gross, but having tons of confusing conditionals all
throughout the build system seems worst.

Credits got to Casey Carter for the idea.

llvm-svn: 3705
2002-09-13 22:14:47 +00:00
Chris Lattner 5296f06851 Link .so files correctly on either linux or solaris
llvm-svn: 3703
2002-09-13 21:41:07 +00:00
Chris Lattner 2efcf430d0 Build with -D_GNU_SOURCE to enable gnu extensions in header files
llvm-svn: 3702
2002-09-13 16:02:26 +00:00
Chris Lattner 500f06490d Make sure to print a message when linking a tool
llvm-svn: 3687
2002-09-12 17:02:40 +00:00
Misha Brukman 1326a7c7db Compiling with "gmake" should produce less output. The compilation/linking
flags are always the same anyway, who wants to see so much text on the
screen? Compiling with "gmake VERBOSE=1" should produce all the output
you're used to.

Basically it checks for VERBOSE being defined, and if it is, sets VERB
appropriately. VERB is then prepended in a bunch of key places such that
when VERB is "@", the command is not echoed, when VERB is not set to
anything, it's as before.

One thing I could not get rid of is "gmake[1]: Entering directory <blah>",
but running "gmake -s" suppresses it all, and shows just the interesting
stuff.

Now output (when running "gmake -s" will look something like):

<snip>
======= Linking target debug library =======
Compiling Writer.cpp
Compiling getLLVMinfo.cpp
Compiling as.cpp
Compiling dis.cpp
Compiling opt.cpp
Compiling gccas.cpp
<snip>

llvm-svn: 3686
2002-09-12 16:05:39 +00:00
Vikram S. Adve 728de92db4 Simplified significantly by pulling out local configuration options
into Makefile.config.

llvm-svn: 3527
2002-08-29 23:28:46 +00:00
Vikram S. Adve 0bfb4cc5d1 Factor out /shared/... path to simplify changing it.
llvm-svn: 3521
2002-08-29 18:40:51 +00:00
Vikram S. Adve fddb117695 Fix clean command to clean in /shared when that is used.
llvm-svn: 3449
2002-08-22 03:20:27 +00:00
Chris Lattner 56b56d90f0 Throw purify temporary files into /shared if we have it.
llvm-svn: 3365
2002-08-17 21:39:58 +00:00
Chris Lattner 01f68c6d78 - Makefile changes:
- Now build executables into /shared
   - New BUILD_ROOT_TOP variable which is basically = $(BUILD_ROOT)/$(LEVEL) but
     cleaner and works for llvm/test/*
   - Use := more in Makefile.common

llvm-svn: 3291
2002-08-12 21:19:28 +00:00
Chris Lattner e5b0f6574b Oops, I accidentally broke the .d files. Fixed thusly
llvm-svn: 3272
2002-08-09 19:18:12 +00:00
Chris Lattner 77330fa15c * Remove some bogus dependencies on Depend/.dir
* Build into the machine local /shared directory instead of using local
  Debug/Depend/Release directories

llvm-svn: 3269
2002-08-09 15:41:55 +00:00
Chris Lattner ead864f089 Comment options that may be enabled
llvm-svn: 3237
2002-08-03 20:19:30 +00:00
Vikram S. Adve 15bd3ad996 Don't build Debug/ versions when ENABLE_OPTIMIZED is on.
llvm-svn: 3216
2002-08-02 18:34:12 +00:00
Chris Lattner d711a5e493 Cleanup Makefile a bit
llvm-svn: 3192
2002-07-31 21:32:05 +00:00
Chris Lattner d1a72292ef Changes to allow building lib/Target/Sparc the FIRST time.
llvm-svn: 3078
2002-07-25 15:01:19 +00:00
Chris Lattner 570c6a6114 Allow directories to specify that they want to be built as a shared object by default
llvm-svn: 3027
2002-07-23 19:21:31 +00:00
Chris Lattner 76d98ba598 Enable USEDLIBS to contain .a and .o files
llvm-svn: 3003
2002-07-23 17:56:16 +00:00
Vikram S. Adve 24132e8983 Add makefile-mode flag for emacs.
llvm-svn: 2841
2002-07-09 12:04:21 +00:00
Chris Lattner 198d5eb1c4 * Allow a profile'd code build to be done with a simple 'make ENABLE_PROFILING=1'
* Only build tags for include, lib, and tools, not tests
* Turn on verbose output from bison to get information about shift/reduce
  conficts (why isn't this the default??)

llvm-svn: 2603
2002-05-10 18:51:54 +00:00
Chris Lattner c0427b9ce9 Hopefully this change will make the makefile work for other people without hacking it.
llvm-svn: 2128
2002-04-07 06:18:40 +00:00
Chris Lattner f0a88d107f * Allow purify builds to be enabled without hacking the makefile. Now you
just have to run: make ENABLE_PURIFY=1
* Add command to the link line that makes the broken GCC 3.0 compiler work
  without affecting 2.95.3

llvm-svn: 2116
2002-04-05 18:56:58 +00:00
Chris Lattner 0559443280 Try to fix build error
llvm-svn: 1723
2002-02-11 17:12:03 +00:00
Chris Lattner 068f8222dc Add := to make stuff more efficient
llvm-svn: 1551
2002-01-23 05:46:01 +00:00
Chris Lattner 1677feaf72 Reenable warning now that Chuck fixed GCC
llvm-svn: 1517
2002-01-21 23:15:20 +00:00
Chris Lattner 7f74a56e24 Changes to build successfully with GCC 3.02
llvm-svn: 1503
2002-01-20 22:54:45 +00:00
Chris Lattner 75586e2ace 1. -Winline emits spurious warnings that aren't useful right now
2. Fix the "rebuild everything if I change one file" problem

llvm-svn: 1176
2001-11-07 14:50:58 +00:00
Chris Lattner b20b290c5e Add easy way to enable purify support
llvm-svn: 1045
2001-10-30 20:24:08 +00:00
Vikram S. Adve 4dedee5dc4 Simplify etags command.
llvm-svn: 954
2001-10-22 13:58:22 +00:00
Chris Lattner ee6e199f0e Change Sources specifier to ExtraSources
llvm-svn: 874
2001-10-18 01:48:09 +00:00
Vikram S. Adve bd9cae260d Allow only extra Source files to be listed in a local Makefile.
Needed for automatically generated .cpp files.

llvm-svn: 853
2001-10-17 12:33:55 +00:00
Chris Lattner 082479a583 Burg files should come out of the Debug Directory for temporary files
llvm-svn: 790
2001-10-14 17:23:55 +00:00
Vikram S. Adve a0e99085b2 Fixed tags target so it only happens at root level.
llvm-svn: 787
2001-10-13 12:26:59 +00:00
Chris Lattner 1fd501fff5 Each tools should not make tags
llvm-svn: 730
2001-10-13 05:10:29 +00:00
Vikram S. Adve fa9dc58c9e Added a rule for building TAGS.
llvm-svn: 723
2001-10-10 22:35:00 +00:00
Chris Lattner f0afd8bac7 Add support for tool specified linker options
llvm-svn: 527
2001-09-10 04:49:26 +00:00
Chris Lattner d196e04234 Fix automatic dependence on static libs
llvm-svn: 513
2001-09-09 20:59:28 +00:00
Chris Lattner 07c7c19f7d Support TOOLNAME and USEDLIBS options for easier tool building
llvm-svn: 498
2001-09-07 22:57:58 +00:00
Vikram S. Adve 88bee9f363 Added InstrSched library to link line.
llvm-svn: 386
2001-08-28 21:33:33 +00:00
Vikram S. Adve 75b9add9fa And add rule to create a .cpp source file from burg input file!
llvm-svn: 345
2001-08-06 19:06:43 +00:00
Vikram S. Adve ca4a382bf7 Add path and options for burg.
llvm-svn: 343
2001-08-06 19:01:20 +00:00
Vikram S. Adve 6b1d4f349a Remove lib/LLC library.
llvm-svn: 314
2001-07-28 04:39:27 +00:00
Vikram S. Adve 7161ef83f9 Added support for getting the dependence of an executable on its libs,
using a variable to get the list of libraries on the link path.
BUG: If the library in the same directory as the executable is missing,
BUG: gnumake will build the library but then fail when linking the executable
BUG: saying the library was not found.  Need a better hack.

llvm-svn: 225
2001-07-21 12:38:14 +00:00
Chris Lattner 6244d18477 Compile source files in alphabetical order
llvm-svn: 202
2001-07-18 23:43:37 +00:00
Vikram S. Adve fe34689e55 Changed default to building library archives instead of shared objects.
Added support for compiling *.c files.

llvm-svn: 197
2001-07-15 13:16:47 +00:00
Chris Lattner 44601ba46a Fixed the obnoxious problem that caused an entire directory to rebuild
even if you only change one .cpp file. Yaay

llvm-svn: 97
2001-06-29 05:20:16 +00:00
Chris Lattner 2f7c963559 Initial revision
llvm-svn: 2
2001-06-06 20:29:01 +00:00