Commit Graph

271 Commits

Author SHA1 Message Date
Chris Lattner 2a02390beb When tblgen changes, regenerate all .inc files, but do not rebuild any .o
files that USE the .inc file unless the contents of the .inc file changes.

This should fix the problem where reconfiguring causes all targets to be
completely rebuilt (because config.h is usually modified, causing libsystem
to be rebuilt, causing tblgen to be rebuilt, causing .inc files to be
rebuilt, causing .o files to be rebuilt).

This patch also checks in a gross hack where .o files now explicitly depend
on $(BUILT_SOURCES), to avoid problems where the .inc files are not completely
generated before the .o files start to compile.

llvm-svn: 18986
2004-12-16 17:28:50 +00:00
Reid Spencer 5581437308 Add a "make spotless" rule for environments with BUILD_OBJ_ROOT not equal
to BUILD_OBJ_SRC. This will save the config.status and mklib files, then
wipe out the BUILD_OBJ_ROOT, copy back config.status and mklib, and then
run config.status to regenerate the makefiles. This target gives you a
completely clean/fresh BUILD_OBJ_ROOT.

llvm-svn: 18981
2004-12-16 08:00:46 +00:00
Reid Spencer aeea3cf764 Get rid of extraneous dependencies on $(BUILT_SOURCES) now that we've fixed
the bug with BUILT_SOURCES being dependencies of the user targets.

llvm-svn: 18980
2004-12-16 07:36:08 +00:00
Reid Spencer 97e40f1eb6 Fix a major bug with BUILT_SOURCES. You actually have to dereference a
variable before you can filter its value. Duh!

llvm-svn: 18979
2004-12-16 07:15:16 +00:00
Reid Spencer 3c90f0e3ed Revert last patch which breaks PowerPC target because it fails to build
the 32bit and 64bit variants.

llvm-svn: 18978
2004-12-16 07:14:19 +00:00
Chris Lattner b63ff380f1 Make %'s a bit more explicit
llvm-svn: 18975
2004-12-15 23:38:13 +00:00
Chris Lattner c0bd4b19b8 Make archive rules properly depend on llvm-ar.
llvm-svn: 18963
2004-12-15 17:14:06 +00:00
Reid Spencer 05d4d6026c Fix the default install directory of modules from / to $(libdir) !
Many thanks to Vladimir Merzliakov for pointing this out!

llvm-svn: 18942
2004-12-14 22:44:05 +00:00
Alkis Evlogimenos 7c7705d108 Fix typo.
llvm-svn: 18901
2004-12-13 18:08:29 +00:00
Alkis Evlogimenos a20de02919 Add llvm tool variables.
llvm-svn: 18897
2004-12-13 17:44:14 +00:00
Reid Spencer efe3a82813 Finish the implementation of the BYTECODE_DESTINATION feature for modules
too and getting rid of the last remnants of bytecode_libdir.

llvm-svn: 18880
2004-12-13 07:38:07 +00:00
Reid Spencer 65086be55f Implement a new feature, BYTECODE_DESTINATION, to allow a user makefile to
specify where the bytecode library is to be installed. This allows the
default location ($prefix/lib) to be overridden, for special case runtime
libraries like the cfe runtime libs.

llvm-svn: 18879
2004-12-13 07:28:21 +00:00
Reid Spencer 85d55ad803 Make sure the archive doesn't have to exist before we remove it.
llvm-svn: 18873
2004-12-13 03:59:35 +00:00
Reid Spencer 72bf78d9f5 Always remove bytecode archives so that path mismatches don't cause the
contents to not be updated.

llvm-svn: 18872
2004-12-13 03:56:42 +00:00
Reid Spencer 993b95e796 Fix output for Flexing to not print full path of source.
llvm-svn: 18769
2004-12-10 19:44:16 +00:00
Reid Spencer 4e197480e1 Implement the LLVM_DO_NOT_BUILD feature. If a file of that name is
present in a directory that LLVM normally builds, it will skip building
the directory entirely. This is useful for allowing a bunch of projects to
live in the source tree but not be compiled from time to time.

llvm-svn: 18671
2004-12-08 22:58:34 +00:00
Reid Spencer cd7d6cf6a6 Remove -Woverloaded-virtual usage that was committed by accident.
llvm-svn: 18615
2004-12-08 04:34:51 +00:00
Reid Spencer cc52c2ce8a Remove variables that are not used by any of the LLVM makefiles
llvm-svn: 18614
2004-12-08 04:26:23 +00:00
Reid Spencer 8b5ebe561e Add the check target so all projects can have this
functionality.

llvm-svn: 18566
2004-12-06 05:35:13 +00:00
Reid Spencer 6d6503a9b3 Provide a variable to compute where the libstdc++.a is
llvm-svn: 18544
2004-12-05 19:14:19 +00:00
Reid Spencer d78077dd13 Add ability to make a single bytecode module from others
llvm-svn: 18523
2004-12-05 05:17:22 +00:00
Reid Spencer 81546587d5 Getting dist-check to work:\
* Implement the FAKE_SOURCES feature for GCCLibraries/crtend \
* Search for distribution files >first< in srcdir and >second< in objdir \
* Make dist-hook only run in top level directory. \
* Make dist-check run correctly in parallel builds \
* Wrap lines to 80 cols \
* Standardize variable names

llvm-svn: 18504
2004-12-04 22:34:09 +00:00
Chris Lattner 1701409c9a Remove all recursive check support from Makefile.rules
llvm-svn: 18470
2004-12-03 23:56:41 +00:00
Chris Lattner 661a714d2c 'make check' at the top level shouldn't recurse through the sourcedirs
llvm-svn: 18463
2004-12-03 21:05:57 +00:00
Reid Spencer d4bd375d37 Resurrect the install-bytecode target for installing just the bytecode
libraries to the CFE.

llvm-svn: 18462
2004-12-03 20:08:48 +00:00
Reid Spencer 2b1b83a520 Pass -strip-debug to gccas when bytecode libraries are being built.
llvm-svn: 18452
2004-12-03 06:04:35 +00:00
Chris Lattner e3d98f1fd8 Quiet!
llvm-svn: 18437
2004-12-02 21:23:43 +00:00
Reid Spencer 32f7e42744 For PR466:
Change construction of bytecode libraries from producing a single bytecode
file to producing a library containing bytecode files. This gets around the
problem of multiple symbol definitions in the linker if something like
-lc -lc is attempted on the command line. Previously this happened because
the linker would find libc.bc as a "library". It will now find libc.a which
it can simply search for missing symbols instead of linking in wholesale.

llvm-svn: 18425
2004-12-02 09:28:21 +00:00
Chris Lattner 0ea40c935f Make built bytecode libraries depend on gccas/gccld as appropriate. This
should fix the stale runtime libraries problem.

llvm-svn: 18361
2004-11-29 19:47:58 +00:00
Reid Spencer 50f3487fad Allow reconfig from any directory, not just the top build directory, by
changing directory first. Also make sure that we don't attempt to run
config.status if the recheck didn't work.

llvm-svn: 18351
2004-11-29 12:37:44 +00:00
Reid Spencer af4495a8c4 Incorporate tools/Makefile.JIT
llvm-svn: 18332
2004-11-29 07:17:07 +00:00
Reid Spencer fc66af4476 * Allow date command to be printed in verbose mode
* Get rid of appending -lbz2 and -lz to ExtraLibs now that we don't need
  them any more.
* Fix the dist-check target so that EXTRA_DIST can be defined AFTER the
  include of Makefile.common. This is needed because Makefile.common
  provides variable definitions that may need to be used in computing the
  value of EXTRA_DIST.
* Clean up some "distdir" target output.

llvm-svn: 18329
2004-11-29 05:00:33 +00:00
Reid Spencer 39d6a6116a Allow configuration files to be themselves configured and found in the
OBJ dir instead of only in the SRC dir.

llvm-svn: 18143
2004-11-23 05:59:53 +00:00
Reid Spencer 0dbf101c90 Duh, put tools in *bin* directory, not *tools* directory as per
PR456.

llvm-svn: 17964
2004-11-18 20:04:39 +00:00
Reid Spencer 7e9e0b0c82 Fix PR456:\
Tools and libraries will be built into $(BUILD_OBJ_ROOT)/$(BuildMode)/bin and \
$(BUILD_OBJ_ROOT)/$(BuildMode)/lib, respectively. Furthermore, the example \
programs will go in $(BUILD_OBJ_ROOT)/$(BuildMode)/examples to keep them \
separate from the tools and hopefully out of the PATH. Install targets \
have not changed.

llvm-svn: 17953
2004-11-18 10:03:46 +00:00
Reid Spencer 91234ff57a Fix PR458:
* Don't include Makefile.rules in set of preconditions, it never has to be
  copied to objdir.
* Enable the "update makefile first before executing targets" feature in
  gnu make by *not* using a full path to the Makefile in the rule.

llvm-svn: 17920
2004-11-17 19:08:44 +00:00
Reid Spencer ec7a80bad2 Add a command for using llvm-ar correctly.
llvm-svn: 17753
2004-11-14 21:46:55 +00:00
Reid Spencer aee67e6547 * Clean up all the shared library output on uninstall
* Provide the correct set of input directories to the TAGS target
* Provide a CTAGS target for building Vi style ctags files.

llvm-svn: 17688
2004-11-12 02:27:36 +00:00
Reid Spencer f8b4a8e988 Implement and document the TOOL_VERBOSE option that asks each tool invoked
to be verbose about its actions too.

llvm-svn: 17624
2004-11-08 17:32:12 +00:00
Reid Spencer 651dd3ad5a * New Recursive Target: clean-all. This target will recursively descend the
$(ObjDir) and clean out all build modes (Debug, Release, Profile) in
  addition to the normal "clean" rules.
* Fix "clean" problems with Lex/Yacc so all files are remove properly.
* Ensure errors from "rm" don't thwart the uninstall and clean targets.

llvm-svn: 17433
2004-11-02 16:56:15 +00:00
Reid Spencer 9d0c1e0de6 * New Recursive Target: clean-all
llvm-svn: 17432
2004-11-02 16:36:03 +00:00
Reid Spencer b5b92fbaf6 Eliminate redundant variable definition. Rename Configuration -> BuildMode
Make lex/yacc output cleaned only if in a directory that has those sources.

llvm-svn: 17391
2004-11-01 07:50:27 +00:00
Chris Lattner 615e7fbcf3 When compiling a file, indicate what build it is for
llvm-svn: 17388
2004-11-01 06:14:59 +00:00
Reid Spencer 737424ced3 Get the shared library extension right on all platforms, regardless of what
Chris wants on his platform.

llvm-svn: 17379
2004-10-31 22:53:06 +00:00
Reid Spencer 68172d44c2 Fix output for building shared libraries per Chris' requirements
llvm-svn: 17376
2004-10-31 21:07:34 +00:00
Reid Spencer 991f66abc1 Actually use the correct variable name for building bytecode files.
llvm-svn: 17374
2004-10-31 18:52:15 +00:00
Reid Spencer f88808ae43 Internalize variable names to prevent recursive assignment. Cleanup docs.
llvm-svn: 17359
2004-10-30 09:19:36 +00:00
Reid Spencer bd44bbdc0e Don't modify user vars because they will get passed down (modified) to
sub-makes and recursively append causing huge command lines and incorrect
compilation results.

Also, fix the printvars target to align its output and ensure that the
contents of variables can't get interpreted by the shell.

llvm-svn: 17348
2004-10-29 22:14:56 +00:00
Reid Spencer da86a3778a Make the list of automatic Makefile* files updated explicit instead of
generally wildcarded.

llvm-svn: 17334
2004-10-29 04:47:33 +00:00
Chris Lattner 124ea873ca This line breaks FreeBSD and apparently isn't useful anymore.
llvm-svn: 17332
2004-10-29 03:46:38 +00:00