Commit Graph

545 Commits

Author SHA1 Message Date
Chris Lattner
6599c75ccc Convert the bison-output-checked-into-cvs makefile handling stuff to work
like the flex stuff, which actually works when people do cvs updates and
get conflicts in the updated checked in file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26205 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-15 07:16:57 +00:00
Duraid Madina
197ab8787f HP aCC (and a bunch of other compilers, no doubt) don't share
GCC's syntax for auto-dependency generation stuff. This should
be changed to be disabling dependency stuff unless GCC/ICC is
found.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26201 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-15 03:23:26 +00:00
Duraid Madina
eb713400cb oops, I meant this
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26200 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-15 03:20:16 +00:00
Chris Lattner
342567c987 Implement an alternative way of handling generated lex files in CVS. This
should solve the "updating cvs when .l files change give me conflict markers
that break my build" issue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26160 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-14 05:12:00 +00:00
Chris Lattner
77efe27ef1 Wrap a couple more long lines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26159 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-14 04:27:15 +00:00
Chris Lattner
d25ad61086 wrap long lines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26158 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-14 04:25:54 +00:00
Chris Lattner
896811180f * Eliminate FAKE_SOURCES
* Make runtimes and projects build with the new front-end by not relying on
  'llvm-gcc -c' to build a .bc file.  Instead, use llvm-gcc -S -emit-llvm,
  then an explicit invocation of gccas.  Also, don't use llvm-gcc to link
  .bc files together, use gccld directly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25707 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-27 22:13:12 +00:00
Reid Spencer
443045a816 For PR625:
Don't install contents of CVS directories and don't double install when
srcdir == objdir.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24998 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-23 22:27:56 +00:00
Reid Spencer
25e8a70ea3 Some simple cleanups:
1. When srcdir == objdir have "spotless" say that it isn't supported in
   that mode rather than just let make say "no such target"
2. Minor doc cleanups
3. Fix the double rebuild problem with yacc files. A missing dependency
   caused parallel builds to skip building the .cpp file after the .cpp
   file was regenerated by bison.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24924 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-21 23:17:06 +00:00
Reid Spencer
6e96d81c87 Implement fix for PR471:
* Add --enable-debug-runtime option, defaults to disabled
* Pass the new config var, DEBUG_RUNTIME, to Makefiles
* Don't use -Wa,-strip-debug if debug-runtime is enabled


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24891 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-21 03:31:53 +00:00
John Criswell
a115643357 Move some constant folding code shared by Analysis and Transform passes
into the LLVMAnalysis library.
This allows LLVMTranform and LLVMTransformUtils to be archives and linked
with LLVMAnalysis.a, which provides any missing definitions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24036 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-27 15:54:34 +00:00
John Criswell
e96a1a576b 1. Remove libraries no longer created from the list of libraries linked into the
SparcV9 JIT.
2. Make LLVMTransformUtils a relinked object file and always link it before
   LLVMAnalysis.a.  These two libraries have circular dependencies on each
   other which creates problem when building the SparcV9 JIT.  This change
   fixes the dependency on all platforms problems with a minimum of fuss.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24023 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-26 20:35:13 +00:00
Chris Lattner
0366fcb396 analyses after transformations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23977 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-25 17:54:19 +00:00
Chris Lattner
89938080a6 Now that all libraries are built in either .o or .a form, make BUILD_ARCHIVE
default to turning off building of relinked objects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23939 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-24 02:21:45 +00:00
Chris Lattner
aafbaaa204 pull in the .a version of scalaropts lib to reduce the size of programs
using the JIT


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23930 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-24 01:15:14 +00:00
Jeff Cohen
9dc33e53d6 Remove redundant flag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23889 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-23 04:51:22 +00:00
Jeff Cohen
66c5fd6c53 When a function takes a variable number of pointer arguments, with a zero
pointer marking the end of the list, the zero *must* be cast to the pointer
type.  An un-cast zero is a 32-bit int, and at least on x86_64, gcc will
not extend the zero to 64 bits, thus allowing the upper 32 bits to be
random junk.

The new END_WITH_NULL macro may be used to annotate a such a function
so that GCC (version 4 or newer) will detect the use of un-casted zero
at compile time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23888 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-23 04:37:20 +00:00
Jim Laskey
f5fc2cbd6b Plugin new subtarget backend into the build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23870 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-21 19:05:19 +00:00
Chris Lattner
0b61677ae0 Make sure targets depend on TargetSelectionDAG.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23732 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-14 06:31:58 +00:00
Chris Lattner
0cb09f1a7a Add some rules for building preprocessed files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23629 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-05 00:28:41 +00:00
Chris Lattner
f31f09e67c allow for a target to ask for a dag isel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23237 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-03 01:15:25 +00:00
Reid Spencer
68a24bdba4 Implement PR614:
These changes modify the makefiles so that the output of flex and bison are
placed in the SRC directory, not the OBJ directory. It is intended that they
be checked in as any other LLVM source so that platforms without convenient
access to flex/bison can be compiled. From now on, if you change a .y or
.l file you *must* also commit the generated .cpp and .h files.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23115 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-27 18:50:39 +00:00
Reid Spencer
ca739c685b For PR614:
Move the implementation of the fix from Makefile.rules to Makefile. This
ensures that it is only checked on a top-level rebuild, and not in every
single subdirectory. This removes some annoying messages from the build and
numerous executions of config.status if the .in file changes but not
substantively enough to cause the .h file to be modified by config.status.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23039 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-25 04:59:49 +00:00
Reid Spencer
6f5f8b380a Don't attempt to update LLVM configured header files from a build in a
project. Thanks to Chris for pointing out this deficiency.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23037 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-25 04:44:18 +00:00
Reid Spencer
0ced4fbcd7 Whoops, don't use PROJ variables, these are all LLVM headers. This allows
projects to compile properly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23007 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24 10:55:07 +00:00
Reid Spencer
755bcf086d For PR619:
Make any header files that are automatically generated be preconditions of
the compilation. This ensures that if a *.h.in file is changed then its
corresponding *.h file gets updated on the next rebuild. Note that this can
lead to confusing (but correct) results if the *.h.in file changed
unsubstantially so that autoheader doesn't update the *.h file. In that case,
manually touch the *.h file in question to restore order. Moral of the story,
if you're going to "touch" a *.in file then modify it substantially.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23006 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24 10:43:10 +00:00
Misha Brukman
6c26da6c04 Fix grammar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22821 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17 02:38:56 +00:00
Andrew Lenharth
7ac17529d2 Fix oversized GOT problem with gcc-4 on alpha
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22777 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-13 05:09:50 +00:00
Misha Brukman
ab25eda801 No, really, it's an Alpha! And you probably thought it was a PowerPC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22506 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-22 22:43:40 +00:00
Andrew Lenharth
22894e980f I know PowerPC wishes it could be alpha, but it cannot. so there
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22504 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-22 22:00:24 +00:00
Andrew Lenharth
ddc31e813d Alpha has JIT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22501 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-22 20:54:01 +00:00
Reid Spencer
45eeed9b35 Two dist-check related changes:
1. Allow DIST_CHECK_CONFIG_OPTION to specify a set of options to be passed
   to the configure script during the dist-check target. This allows things
   to be passed down on a project basis so the configure doesn't fail.

2. Use the tar | (cd ; tar ) idiom to copy files which is more flexible
   than using the cp command. THis allows us to exclude CVS .svn
   directories at source rather than stripping them out of the tar ball.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22166 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-24 02:33:20 +00:00
Reid Spencer
5da2d08433 Make sure that tool names don't have any leading or trailing spaces in them.
If they do, it screws up the concatenation of the .exe suffix on cygwin.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22141 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-19 21:03:11 +00:00
Reid Spencer
aa8bc43007 Build the install directories just exactly as any others. Hopefully this
helps out cygwin build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22140 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-19 20:26:14 +00:00
Reid Spencer
8f9e21e3de Two changes to support building shared libraries that contain multiple
llvm archive or re-linked libraries:
1. Permit the "JIT" special keyword on LLVMLIBS to be recognized when
   building a library, not just for building tools
2. If LINK_LIBS_IN_SHARED is set, the LLVMLIBS and USEDLIBS can be specified
   when linking a shared library and the libraries listed will be
   incorported into the shared library. THis is only used when the
   SHARED_LIBRARY variable is set.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22127 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-19 00:37:31 +00:00
Duraid Madina
0ad8fcf936 hp-ux needs this to get through the System/Support libs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22078 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-16 06:38:09 +00:00
Reid Spencer
0d255bd5ce * Make some warning messages stand out a bit by putting **** at the end
* Fix a typo that prevents BuildMode from being printed


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21954 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 18:32:54 +00:00
Misha Brukman
a37ed05ede * Remove extraneous spaces
* Convert some tabs to spaces


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20560 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-11 04:15:18 +00:00
Nate Begeman
bf18b267b8 Add SelectionDAG library to PPC JIT so that lli will link when
PPC32ISelPattern.cpp is present.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20559 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-11 03:58:53 +00:00
Reid Spencer
e0acb769f4 Correct a typo in Makefile.rules.
Patch idea contributed by Vladimir Merzliakov.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20384 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-01 16:27:06 +00:00
Alkis Evlogimenos
eebaf33b5d Add llc to tools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20345 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-27 10:21:37 +00:00
Reid Spencer
b80621fb7e Don't try to strip bytecode files!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20320 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 21:36:32 +00:00
Reid Spencer
151bbe44ac The install program doesn't know how to strip bytecode files so install
bytecode as data, not program.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20319 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 21:30:37 +00:00
Reid Spencer
860598a295 Fix the other half of PR528 .. don't try to strip header files!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20301 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 07:12:43 +00:00
Reid Spencer
4a0aaea3de For PR528:
* Consolidate all "install" usage to the install program/script found by
  autoconf which includes the autoconf/install-sh script if necessary
* Change Makefile.rules to not use the -D flag to install but use the
  MKDIR command as necessary.
* Change Makefile.rules to differentiate between installation of executable
  files and regular data files to get the permission modes correct.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20294 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 03:56:32 +00:00
Reid Spencer
2804201b63 Fix installation of configuration files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20215 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-16 16:17:11 +00:00
Reid Spencer
1a9a69c596 * Don't flatten the directory hierarchy when installing headers
* Make it possible to have the Install program run in verbose mode when
  the TOOL_VERBOSE=1 option is set
* Ensure non-executable installed files do not install with execute perms.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20214 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-16 16:13:02 +00:00
Reid Spencer
2edabc00dc Don't use pax for installing header files. Use the install program instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20213 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-16 15:54:03 +00:00
Reid Spencer
9a8398e7a6 For PR496:
When llvm-gcc is not available, bypass rules for Modules and Bytecode
Libraries that require llvm-gcc and emit instead a warning that llvm-gcc
is not available. This permits "make LLVMGCC=" to build LLVM completely
without error and provides warnings about the modules and bc libs that
could not be constructed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20185 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-14 21:54:08 +00:00
Andrew Lenharth
39bcf5b8d0 non-ieee arith crashes passes on alpha
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20144 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-13 03:41:10 +00:00
Chris Lattner
ca94fa21a3 Fix installation of configured headers when objdir != srcdir. Patch
contributed by Vladimir Merzliakov!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20084 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-09 02:24:00 +00:00
Chris Lattner
b05a76c67d Add support for .cc and .hpp files. Patch contributed by Vladimir Merzliakov!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20042 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-04 21:28:50 +00:00
Alkis Evlogimenos
270e851c59 Add variable for bugpoint.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19981 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-02 00:40:15 +00:00
Reid Spencer
f8f5740a37 Fix some typos in the Makefile.rules.
Patch contributed by Vladimer Merzliakov.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19877 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-28 19:52:32 +00:00
Reid Spencer
11fde54f23 Several changes:
* Rename BUILD_* to PROJ_*
* Differentiate between LLVM's Makefile.conf and the project's
* Use project specific install locations


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19590 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-16 02:20:54 +00:00
Reid Spencer
3ca6d8bf85 Allow the Echo and EchoCmd variables to be overridden.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19551 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-14 16:33:36 +00:00
Reid Spencer
492c2935be Implement the LOADABLE_MODULE option when building a shared library. This
passes the -module option on the libtool command line to ensure that the
shared library being built can be dlopened and dlsym can work on that
module. LOADABLE_MODULE should be sent only in conjunction with the
SHARED_LIBRARY directive. It should generally be used for any module that
is intended to be the target of an LLVM -load option. Note that loadable
modules will not have the lib prefix but otherwise look like shared
libraries. This is per the libtool recommendations and prevents these
special shared libraries from being linked in via -l option to the linker.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19454 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11 04:31:07 +00:00
Chris Lattner
85139f5ec3 X86 JIT requires the selection dag library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19336 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 07:51:11 +00:00
John Criswell
f5629d037f Quote the paths and not the assignment of the PATH variable.
This seems to make things happier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19276 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-03 17:42:57 +00:00
John Criswell
447d5bba27 Joining the quote fray...
Reverting the quote patch.  For some reason, this breaks the building of
llvm/runtime (the shell doesn't like it for some reason).  I might play
with it to see if I can get the quotes done in such a way that the shell
like it, but no promises.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19275 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-03 17:41:56 +00:00
Reid Spencer
140935a5a1 Re-apply last (reverted) patch. Reverting doesn't solve the actual problem
and creates issues on other platforms like Cygwin and MingW.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19266 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-03 04:04:54 +00:00
Jeff Cohen
22e7eddcd6 Don't quote the PATH variable value just in case it has spaces in it, as
it breaks "gmake check".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19265 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-03 02:44:54 +00:00
Reid Spencer
325a87e3fd Avoid use of -fomit-frame-pointer on FreeBSD platforms. It causes thrown
exceptions to abort() in cases where it should not.

Many thanks to Duraid Madina for doing the heavy lifting on the analysis
of this problem.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19256 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-02 17:43:20 +00:00
Reid Spencer
4a1e5c09bb Quote the PATH variable value just in case it has spaces in it (like on
Cygwin).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19255 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-02 09:45:54 +00:00
Reid Spencer
775bf890e1 Correct the name of the variable for the LLVM examples directory so that
parallel builds don't attempt to create it twice.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19171 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-28 07:59:22 +00:00
Reid Spencer
f3664e0a4f Make it possible to reconfigure a project as well as just LLVM main dir.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19164 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-27 08:50:27 +00:00
Reid Spencer
bc52ad7920 Make sure llvm-g++ gets the right path for the llvm tools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19138 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-24 14:47:34 +00:00
Reid Spencer
32924e01f3 Two corrections:
* When reconfiguring, make sure the config.cache file is blown away so that
  its (old) values don't short-circuit doing the tests. When a reconfigure
  is done, it should be done from scratch, without the cache.
* For dist-check, don't pass --with-llvmgccdir any more because configure
  doesn't have this option any more.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19126 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-24 03:36:31 +00:00
Reid Spencer
2f138e726f For PR432:
* Cleanup LLVMGCXX and LLVMGCC by providing LLVMGXXWITHPATH and LLVMGCCWITHPATH
  variables that add the $(LLVMToolDir) to the path so the CFE tools can find
  the right LLVM tools they depend on.
* Standardize the name of a variable: cferuntime_libdir -> CFERuntimeLibDir


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19095 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-22 05:57:21 +00:00
Reid Spencer
39b7363617 Complete the implementation of the spotless rule and make it not depend on
the .. directory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19012 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-17 07:45:03 +00:00
Chris Lattner
10ce496201 X86 doesn't actually use SelectionDAG yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18996 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-16 19:40:10 +00:00
Reid Spencer
c371984598 Some minor upgrades
* Convert "cmp" usage to $(CMP)
* Convert "cp" usage to $(CP)
* Fix some build messages to reflect what's actually going on
* Add a "reconfigure" target for forcing a reconfigure. Helps with testing
  things like Chris's recent changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18991 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-16 18:26:53 +00:00
Chris Lattner
23ee79579d Factor all of the .inc : .inc.tmp rules into one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18989 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-16 17:38:56 +00:00
Chris Lattner
02a4f90903 Add spaces between rule groups to make it more obvious which ones pair
Remove instrselector generation, remove Intel/ATT specifics from Makefile.rules.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18988 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-16 17:34:04 +00:00
Chris Lattner
3c4734765e 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18986 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-16 17:28:50 +00:00
Reid Spencer
31f9524f7e 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18981 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-16 08:00:46 +00:00
Reid Spencer
f2ac189e52 Get rid of extraneous dependencies on $(BUILT_SOURCES) now that we've fixed
the bug with BUILT_SOURCES being dependencies of the user targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18980 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-16 07:36:08 +00:00
Reid Spencer
07a549aeb0 Fix a major bug with BUILT_SOURCES. You actually have to dereference a
variable before you can filter its value. Duh!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18979 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-16 07:15:16 +00:00
Reid Spencer
c8afbd5c2f Revert last patch which breaks PowerPC target because it fails to build
the 32bit and 64bit variants.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18978 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-16 07:14:19 +00:00
Chris Lattner
34717e114a Make %'s a bit more explicit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18975 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-15 23:38:13 +00:00
Chris Lattner
264ccbef75 Make archive rules properly depend on llvm-ar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18963 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-15 17:14:06 +00:00
Reid Spencer
18d3b982b4 Fix the default install directory of modules from / to $(libdir) !
Many thanks to Vladimir Merzliakov for pointing this out!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18942 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-14 22:44:05 +00:00
Alkis Evlogimenos
20d793aad1 Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18901 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-13 18:08:29 +00:00
Alkis Evlogimenos
7e80cd9993 Add llvm tool variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18897 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-13 17:44:14 +00:00
Reid Spencer
ab3690bdd1 Finish the implementation of the BYTECODE_DESTINATION feature for modules
too and getting rid of the last remnants of bytecode_libdir.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18880 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-13 07:38:07 +00:00
Reid Spencer
8f094f3a8b 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18879 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-13 07:28:21 +00:00
Reid Spencer
efd6bb37a3 Make sure the archive doesn't have to exist before we remove it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18873 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-13 03:59:35 +00:00
Reid Spencer
30f3256b8e Always remove bytecode archives so that path mismatches don't cause the
contents to not be updated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18872 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-13 03:56:42 +00:00
Reid Spencer
c2ef8cd934 Fix output for Flexing to not print full path of source.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18769 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-10 19:44:16 +00:00
Reid Spencer
a23c0662dc 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18671 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-08 22:58:34 +00:00
Reid Spencer
519799e340 Remove -Woverloaded-virtual usage that was committed by accident.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18615 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-08 04:34:51 +00:00
Reid Spencer
2e2035b35b Remove variables that are not used by any of the LLVM makefiles
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18614 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-08 04:26:23 +00:00
Reid Spencer
9e8d54a059 Add the check target so all projects can have this
functionality.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18566 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-06 05:35:13 +00:00
Reid Spencer
4362003b22 Provide a variable to compute where the libstdc++.a is
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18544 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-05 19:14:19 +00:00
Reid Spencer
7980ea4cfa Add ability to make a single bytecode module from others
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18523 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-05 05:17:22 +00:00
Reid Spencer
345235ca5c 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18504 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-04 22:34:09 +00:00
Chris Lattner
672d71dcb6 Remove all recursive check support from Makefile.rules
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18470 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-03 23:56:41 +00:00
Chris Lattner
7dc02825dc 'make check' at the top level shouldn't recurse through the sourcedirs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18463 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-03 21:05:57 +00:00
Reid Spencer
44cb1b3e07 Resurrect the install-bytecode target for installing just the bytecode
libraries to the CFE.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18462 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-03 20:08:48 +00:00
Reid Spencer
776b80503f Pass -strip-debug to gccas when bytecode libraries are being built.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18452 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-03 06:04:35 +00:00
Chris Lattner
b0ea864bbd Quiet!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18437 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-02 21:23:43 +00:00
Reid Spencer
9a2f137765 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18425 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-02 09:28:21 +00:00
Chris Lattner
478b3b42e2 Make built bytecode libraries depend on gccas/gccld as appropriate. This
should fix the stale runtime libraries problem.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18361 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-29 19:47:58 +00:00
Reid Spencer
7d277000af 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18351 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-29 12:37:44 +00:00
Reid Spencer
7c787c9355 Incorporate tools/Makefile.JIT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18332 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-29 07:17:07 +00:00
Reid Spencer
fbbf307b15 * 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18329 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-29 05:00:33 +00:00
Reid Spencer
1b426abbbd Allow configuration files to be themselves configured and found in the
OBJ dir instead of only in the SRC dir.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18143 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-23 05:59:53 +00:00
Reid Spencer
9a5acafd04 Duh, put tools in *bin* directory, not *tools* directory as per
PR456.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17964 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-18 20:04:39 +00:00
Reid Spencer
815cbcf0f1 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17953 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-18 10:03:46 +00:00
Reid Spencer
023c4469c3 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17920 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-17 19:08:44 +00:00
Reid Spencer
5991dcb5d8 Add a command for using llvm-ar correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17753 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:46:55 +00:00
Reid Spencer
12d7951d04 * 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17688 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-12 02:27:36 +00:00
Reid Spencer
cceed9fc77 Implement and document the TOOL_VERBOSE option that asks each tool invoked
to be verbose about its actions too.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17624 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-08 17:32:12 +00:00
Reid Spencer
ca5fe8fb0c * 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17433 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-02 16:56:15 +00:00
Reid Spencer
3d65949fa1 * New Recursive Target: clean-all
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17432 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-02 16:36:03 +00:00
Reid Spencer
9af3b29405 Eliminate redundant variable definition. Rename Configuration -> BuildMode
Make lex/yacc output cleaned only if in a directory that has those sources.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17391 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-01 07:50:27 +00:00
Chris Lattner
e4cb90f41c When compiling a file, indicate what build it is for
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17388 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-01 06:14:59 +00:00
Reid Spencer
8dce0ad40e Get the shared library extension right on all platforms, regardless of what
Chris wants on his platform.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17379 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 22:53:06 +00:00
Reid Spencer
2e6e8e5862 Fix output for building shared libraries per Chris' requirements
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17376 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 21:07:34 +00:00
Reid Spencer
8676b7eed0 Actually use the correct variable name for building bytecode files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17374 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 18:52:15 +00:00
Reid Spencer
cc2d1e25f3 Internalize variable names to prevent recursive assignment. Cleanup docs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17359 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-30 09:19:36 +00:00
Reid Spencer
7614e5130b 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17348 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 22:14:56 +00:00
Reid Spencer
85ec003b1d Make the list of automatic Makefile* files updated explicit instead of
generally wildcarded.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17334 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 04:47:33 +00:00
Chris Lattner
da033ce57a This line breaks FreeBSD and apparently isn't useful anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17332 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 03:46:38 +00:00
Reid Spencer
a69b1ea1f3 Bug Fixes:
* Move rules that build directories earlier in the file so that they are
  always built before the things that depend on them. This enables a
  parallel "dist-check" target.
* Fix use of TOOLLINKOPTS and TOOLLINKOPTSB (thanks to Henrik Bach)
* Standardize the output - some scripts using plain echo instead of $(ECHO)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17318 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-28 09:15:28 +00:00
Reid Spencer
c6dcc6a0fc Make parallel "install" and "uninstall" targets not step on itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17315 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-28 07:57:28 +00:00
Reid Spencer
80f0ef7291 Bug Fixes:
* Ensure that BUILT_SOURCES depends on OBJ_DIR/Makefile so that they do not
  get built before the Makefile is updated.
* Fix build script for yacc & lex files by stopping it from thwarting the
  dependencies on the file. If the .y file changes, it needs to be rebuilt.
  This also cleans up the problem with llvmAsmParser ALWAYS rebuilding its
  Yacc files just to throw them away because there's no change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17288 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-28 00:41:43 +00:00
Reid Spencer
0b8d2f9706 Fix auto-reconfigure bug: make sure we actually reconfigure not just
regenerate the config.status script.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17283 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-27 22:48:58 +00:00
Reid Spencer
1654448063 Get the *.inc files to depend on tblgen so if tblgen gets fixed, all the
*.inc files get regenerated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17273 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-27 04:34:35 +00:00
Reid Spencer
8660678631 Make sure that Makefile.rules and Makefile.config.in are not candidates for
automatic makefile update.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17269 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-26 23:10:00 +00:00
Reid Spencer
9411c64c51 Cleanup/Fixes:
* Force preconditions to be met FIRST
* Fix dist-check dependency
* Add some variables to the printvars target
* Automatically update Makefile.* as well as just Makefile


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17268 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-26 22:26:33 +00:00
Chris Lattner
58aef7f43f Unless someone seriously objects, I don't think we really need this. Sorry
resistor :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17265 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-26 20:02:50 +00:00
Reid Spencer
e45ebfa8c3 * Implement the "dist-check" target that verifies the contents of a zipped
tarball.
* Fix bugs in the "dist" target (a precursor to dist-check).
* Correct the implementation of the "install" targets so that they ensure
  the installation directories are created before attmpting to install
  directories in them.
* Reduce the verbosity of the output of the makefile system
* Ensure output includes the configuration whenever libraries or tools are
  built, installed, or uninstalled.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17250 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-26 07:09:33 +00:00
Chris Lattner
7f2cd27ff1 Give a useful hint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17232 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-26 02:58:10 +00:00
Reid Spencer
151f8ba364 New Makefile Features:
* "dist" target now builds tar.gz, tar.bz2, and zip files suitable for
  distribution. "dist" can only be run from $(BUILD_OBJ_ROOT) and implies
  a "check".

* made the preconditions not do a recursive make and ensured that they are
  executed sequentially.

* made the messages output by the makefile be prefixed with "llvm" and the
  make level (e.g. llvm[1]: ) in the same way that make does so that the
  messages are uniform and more readable.

* Fixed the tags target so that tags depends on TAGS which contains the
  rules to build a file named TAGS

* Implemented the EXTRA_DIST feature in a few directories to make sure it
  works.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17210 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-25 08:27:37 +00:00
Reid Spencer
b1dd3dde03 Fix uninstall from rebuilding everything (wrong dependency)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17204 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-24 08:21:04 +00:00
Reid Spencer
e5487baa47 Implemented New Features:
* Fixed the install target to install files correctly
* Implemented the uninstall target to remove files from install dirs
* Isolated the top level targets (dist, dist-check, dist-clean, tags) so
  they only run/exist from the top level directory
* Put if/endif gaurds around potentially dangerous $(RM) commands.
* Implemented place-holder rules for distribution targets to just say that
  they aren't implemented yet.
* Implemented tags target in Makefile.rules so all projects can use it
* Made a pony for resistor


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17202 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-24 07:53:21 +00:00
Reid Spencer
83cbcb9250 Make the $(OBJDIR) go away on clean-local.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17197 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-24 02:26:09 +00:00
Reid Spencer
3a561f5478 Several Changes:
* Fix parallel build problem on generated dependency files
* Fix rule confusion between .a and .la libraries so that parallel builds
  don't get confused on who is building which .o and which library it is
  going into.
* Fix dependency inclusion to only include C/C++ dependency files because
  other types of sources won't have dependencies auto generated.
* Change "Source" to "SOURCES" for naming consistency
* Update parallel build rules for new recursive targets
* Implement EXPERIMENTAL_DIRS (failure allowed) feature
* Implement -local version of targets (all-local, clean-local, etc)
* Implement recursive targets in terms of their local counterparts
* Clarify names of some internal variables
* Move documentation to docs/MakefileGuide.html
* Clean up commentary


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17192 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-23 20:04:14 +00:00
Reid Spencer
c64b2b350d * Actually ignore build errors in optional directories
* Use LLVM_SRC_ROOT as the anchor for the Target.td file
* Use MFLAGS instead of MAKEFLAGS for recursive makes so we don't try
  to build a target "w" or "s" mysteriously.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17186 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-23 08:19:37 +00:00
Reid Spencer
e53e397a96 Make sure that we don't set up a circular dependency if OBJDIR == SRCDIR
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17172 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-22 23:06:30 +00:00
Misha Brukman
8567ccf6d0 Pull in Target.td using absolute path from source root instead of relative path;
this allows us to have sub-targets whose depth in the tree is not the same as it
is for the standard X86/PowerPC/Sparc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17170 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-22 22:18:27 +00:00
Reid Spencer
4d71b6611e Shorten the rules, speed it up, correct library contruction, add *.td rules
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17166 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-22 21:01:56 +00:00
Misha Brukman
5e94a21907 Fix grammar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16910 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-11 02:06:40 +00:00
Chris Lattner
6856912f5b Don't add libz or libbz2 to the USEDLIBS lists, those are for LLVM libraries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16798 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-07 00:03:11 +00:00
Reid Spencer
37130d2b5e Provide support for auto-detection and use of compression libraries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16643 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-04 07:05:07 +00:00
John Criswell
ef672a691c Corrected spelling of Makefile variable, thereby re-enabling profile
builds for projects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16540 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 14:52:58 +00:00
Reid Spencer
ad9590e12c Missed one $*.a -> $@ conversion for the Release build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16494 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 06:07:24 +00:00
Reid Spencer
53a4b60a76 Correct the rules for making shared libraries per libtool 1.5.10
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16489 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 00:58:06 +00:00
Reid Spencer
9c96c72b84 libtool's name is now back to mklib.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16423 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 01:43:00 +00:00
John Criswell
fe785bd49d Add dependencies so that project tools are recompiled if LLVM libraries
are updated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16378 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-16 14:11:25 +00:00
Brian Gaeke
67f9349175 Use libtool, not mklib (which somehow doesn't get generated anymore)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16243 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-07 19:03:35 +00:00
Reid Spencer
5f8c6b2546 Add LLVMC as a supported tool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16183 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-05 16:39:01 +00:00
Reid Spencer
ec9d780153 Get rid of an un-needed and un-used GCCism. ATTR_DEPRECATED is used nowhere
in the LLVM source base.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16162 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-03 23:38:25 +00:00
Reid Spencer
05e90a0f64 Remove even the slightest chance of a race condition occurring :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15951 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-20 09:32:32 +00:00
Reid Spencer
fc9450855d Added a set of rules for installing configuration files. You can now say
CONFIG_FILES=a b c
in a Makefile and when you "make install" the files a b and c will get
installed into the $prefix/etc directory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15948 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-20 09:20:05 +00:00
Misha Brukman
712c0e256e * Uncomment rule for location of LLI (formerly commented out: typo?)
* Add space between VAR and `='


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15074 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 12:47:40 +00:00
Brian Gaeke
0b441227e2 Move LLVM tool definitions to Makefile.rules
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15049 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 01:31:47 +00:00
Chris Lattner
d85b7a48e9 Really, it is not necessary to recompile all files in a profile build every
time!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14680 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-08 03:42:20 +00:00
Brian Gaeke
10c508b286 Explicitly specify libtool tag "CXX" so that if you setenv CXX to something
libtool can't parse, e.g., "/path/to/g++ -some-funny-options",
then it will still be able to compile and link.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14072 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 18:52:45 +00:00
Chris Lattner
396d96bd27 Make tool names end with .exe on windows. This isn't needed to run the
tools, but is required for rules that depend on the executables, e.g.:

a: b $(LLVMAS)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13926 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-01 19:06:43 +00:00
Misha Brukman
694b3ff967 Pass the Makefile flags to recursive makes in {PARALLEL,OPTIONAL}_DIRS targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13623 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-21 23:21:11 +00:00
Misha Brukman
c2fb006ecb Pass given flags on to recursive sub-makes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13616 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-21 00:09:21 +00:00
Alkis Evlogimenos
972c0c9f0a Change DEPRECATED macro to ATTR_DEPRECATED as this conflicts with some
java constants.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13611 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-20 21:31:43 +00:00
Misha Brukman
6d5ab866fc Standardize header comments of top-level Makefiles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13143 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-24 00:10:56 +00:00
Brian Gaeke
f313ea7da4 Add support for 'install-bytecode' target, used for ONLY installing
bytecode-libs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12268 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-10 17:38:01 +00:00
Alkis Evlogimenos
bccab5ed5e Define DEPRECATED so that it can be used in function and variable
declarations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11391 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 20:05:44 +00:00
Brian Gaeke
6c0969696a Fix bug in installation process: MKDIR must respect DESTDIR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11236 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 17:38:52 +00:00
Brian Gaeke
7a45c49344 Always replace instead of appending when creating archive files. It may be
slightly slower, but I think we can handle it, especially if it means
BytecodeLibs are correctly regenerated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11122 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-04 21:41:23 +00:00
Brian Gaeke
8abff7945a Move bytecode_libdir def'n to Makefile.config.in from Makefile.rules, so it
lives near the other installation dirs (like libdir, bindir, etc.).

Move the rule for making bytecode_libdir out of the ifdef LIBRARYNAME...endif.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10964 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-22 22:53:48 +00:00
Brian Gaeke
6fdaf4a219 Move support for building tags database from Makefile.rules to Makefile, because
it's only used in the top-level directory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10960 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-22 21:54:51 +00:00
Brian Gaeke
13f99329ce Give the ".../llvm-gcc/bytecode-libs" directory a variable of its own,
called bytecode_libdir.  Make install-bytecode-library depend on
the existence of that directory, and add a rule for creating it if
it does not exist by calling mkinstalldirs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10946 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-21 23:57:21 +00:00
Brian Gaeke
819567d437 Add DESTDIR support for installation, to support RPM etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10940 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-21 21:20:44 +00:00
Brian Gaeke
d252d75d60 Maybe Misha isn't so buggy after all. He caught the rest of my huge thinko
w.r.t. SHLIBEXT starting with a dot.

:-)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10939 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-21 21:17:37 +00:00
Brian Gaeke
d65ed3fbe8 Remember, SHLIBEXT begins with a period.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10936 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-21 19:59:19 +00:00
Brian Gaeke
9d3cd40343 Modified version of patch from mkahl@apple.com to stop hardcoding ".so".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10935 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-21 19:53:11 +00:00
Brian Gaeke
dacca356a7 Take settings of LCC and LCC1XX from configure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10899 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-16 21:31:20 +00:00
Brian Gaeke
7976e97e1e I'm fairly certain this was just a typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10897 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-16 21:12:34 +00:00
John Criswell
b1f5cfe0c4 Allow C++ programs to end in .cc. This allows C++ test programs in the
test suite to compile.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10644 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-29 22:02:12 +00:00
Brian Gaeke
78cb3f218a Add install target for libraries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10519 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 20:57:48 +00:00
Brian Gaeke
44909cf54a Add support for installing tool executables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10351 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 00:26:28 +00:00
Chris Lattner
d180300c92 Stop using the -fshort-enum compile option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10296 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-06 20:59:45 +00:00
Chris Lattner
a8df7bdbac Make stripped-bytecode a recursive target
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10283 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-01 07:28:25 +00:00
Chris Lattner
eefa3d3cfb Simplify some rules
Move LGCCLDPROG from test/Makefile.tests


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10256 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-29 09:50:15 +00:00
John Criswell
b3866b69a5 All directory targets now install the Makefile only if it is missing.
Directory targets no longer check for existance of the directory in the
object tree; if the Makefile doesn't exist, we will re-create the directory.
This seems to be a pretty good assumption and saves us from checking
directory existance each time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10211 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-25 19:32:22 +00:00
John Criswell
6057760793 Added a pseudo-hack: The Makefile now copies Makefiles from source tree to
object tree if it is missing.  This means that new Makefiles should get
picked up automagically, requiring less bothersome re-configuring after
updates.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10209 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-25 17:49:22 +00:00
John Criswell
5af06f62ea Modified directory building rules so that using the cd program/alias is
not necessary.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10199 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-24 18:31:01 +00:00
Misha Brukman
2fe6909be6 Shorten the "updating Makefile" status print-out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9874 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-11 00:05:29 +00:00
Misha Brukman
4f7a8cf8c2 If the source tree's Makefile is more up-to-date, copy it over into the build
tree.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9836 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-09 21:36:19 +00:00
Chris Lattner
52d792cec1 Fix broken makefile dependency generation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9810 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-08 21:23:06 +00:00
Chris Lattner
94ed65f864 Fix a really bad build problem for users who have .o in their build directory!
Thanks to Reid Spencer for figuring this out!  :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9763 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-07 04:39:53 +00:00
Misha Brukman
b6d59a29ea Output only the .y filename, not the full path to it for ease of reading.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9729 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-05 06:41:14 +00:00
John Criswell
a4c535284e Modified build rules so that a messages appears before and after linking.
This helps to disambiguate when linking begins and when the library/program
is linked and ready to be used.
This is sort of as preference thing, so feel free to modify/revert the change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9687 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-03 21:12:49 +00:00
Dinakar Dhurjati
79903c8115 Fixed LinkO, LinkP error in TOOLLINKOPTSB
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9591 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-29 20:34:13 +00:00
Dinakar Dhurjati
87ea8aa5e7 Added TOOLLINKOPTSB to pass options to the linker (e.g. adding search
path for external libraries).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9582 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-29 14:28:35 +00:00
Brian Gaeke
90eca5505f Add __STDC_LIMIT_MACROS here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9549 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-28 19:09:28 +00:00
Chris Lattner
771ed15f65 When linking the runtime libraries, do not link -lc and -lgcc into the libraries
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9339 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-21 18:00:37 +00:00
John Criswell
d8846c19bd Added LLVM copyright notice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9319 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-21 14:33:46 +00:00
John Criswell
7ec78aa645 Added autoconf support for the sample project.
Fixed the header comment in Makefile.rules
Changed all references to the echo program in Makefile.rules to the value
found by autoconf.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9151 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-16 01:49:00 +00:00
Misha Brukman
10c1d77a32 Print out just the filename being compiled/linked, not the full path to it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9018 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-10 17:37:22 +00:00
Chris Lattner
4faf860168 Make the message stand out more
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9004 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-10 15:55:43 +00:00
Misha Brukman
94fe1f99e2 Depend on config.status instead of config.h, because config.h timestamp may not
change even though configure changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8923 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-07 15:24:23 +00:00
John Criswell
bd082800ec Added targets that force users to re-run autoconf when the script has been
updated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8921 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-07 14:16:44 +00:00
John Criswell
e0f9ac6d45 Fixed the conditional targets for postscript files and tags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8823 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-02 19:02:02 +00:00
John Criswell
4b6e5d1198 Changed the empty rule for .h files. The rule needs an empty command so that
Make actually uses it to "regenerate" header files that have been
moved/removed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8600 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-18 18:37:08 +00:00
Chris Lattner
0df847aa5e Put llvm .bc files into the BytecodeObj subdirectory instead of the Bytecode
subdirectory.  This prevents the 'make clean' rule from removing lib/Bytecode


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8550 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-15 22:17:02 +00:00
Chris Lattner
22c8328058 Allow specifying a file with symbols to export
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8531 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-15 15:06:54 +00:00
Chris Lattner
069f930a3b Wrap long lines at 80 cols
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8512 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-15 01:12:04 +00:00
Chris Lattner
00e730abc3 Make sure to #include the OBJROOT config.h file, not the SRCROOT config.h file!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8511 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-15 01:07:32 +00:00
John Criswell
613758d55d Fixed SPEC so that it would run correctly with the new autoconf-style object
directory.
Added Makefile.spec to the list of files to copy to the object directory.
Moved the configuration of $SourceDir to Makefile.config and corrected the
conditional that surrounds it.  This allows SPEC to reset it and get the correct
VPATH.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8475 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-11 18:03:50 +00:00
John Criswell
b2f76bf93e Removed the aposthrophes endings and the elipses suffixes from build output.
This makes the output more consistent, and I just find aposthrophes annoying.
:)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8465 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-11 15:15:53 +00:00
Chris Lattner
ad2be6cc41 Avoid dumping runtime library bytecode files into lib/Bytecode if building
into the source directory


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8450 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-10 19:37:51 +00:00
John Criswell
410d1b5dea Updated to find source files using VPATH. This makes writing build rules
much cleaner and easier.
Labeled .td as a suffix for tblgen files in Makefile.rules.
Modified build rules so that source files generated during the build are placed
in the build directory and not the source directory (and not in a Debug
directory).  This makes the system cleaner and allows us to have a read-only
source tree.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8424 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-09 20:57:03 +00:00
John Criswell
7f33695eac Checkin of autoconf-style object root.
Moved Makefile.common to Makefile.rules.  This makes project Makefiles easier
to support, and allows for easier overriding of default configuration values
that used to be in Makefile.common.
Modified Makefile.config.in to determine paths for directories (like
LLVM_SRC_ROOT) and to use the pwd binary as opposed to the shell builtin (this
works better for symbolic links).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8377 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-06 14:44:17 +00:00
Chris Lattner
15444a9bd4 Slightly simplify make logic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8211 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-29 14:07:02 +00:00
Misha Brukman
a86b04246a Start using llvm-as' instead of as'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8193 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-28 21:45:08 +00:00
Chris Lattner
bb3dd47d8f Refactor code slightly. Make code compiled with llvmgcc use the warning options
as well.  Compile with -fshort-enums whether in debug or release mode, because it breaks the ABI


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8164 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-27 18:26:44 +00:00
Chris Lattner
72987eeafd Fix typeo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8069 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-23 15:56:38 +00:00
Chris Lattner
33ad24a096 Remove last remenants of cleandeps
Allow disabling generation of .d files for a whole directory


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8053 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-22 14:10:16 +00:00
Chris Lattner
7d4d892e14 Ugh, really fix it now... :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8047 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-22 05:22:13 +00:00
Chris Lattner
f0f463eb63 Fix computation of LLVM_OBJ_ROOT for non-projects :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8046 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-22 05:18:49 +00:00
Chris Lattner
56e4fa4565 Include the top-level Makefile.config from the LLVM tree for projects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8035 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-21 22:28:46 +00:00
Chris Lattner
e430a1eefb Projects no longer need to specify LLVM_OBJ_ROOT. Also, for the prdirs target, don't let make print out all of the echo commands before the echos get echo'd
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8034 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-21 22:23:49 +00:00
Misha Brukman
36bc6424f2 The word dependence' and its derivatives have no a'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8028 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-21 22:02:18 +00:00
Chris Lattner
942f904af7 Make the tags rule tolerate lack of one of the standard directories
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8027 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-21 21:53:38 +00:00
Chris Lattner
fbb574d7a1 * Remove cleandeps target
* Implement much nicer .d files, as suggested by Casey Carter


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8020 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-21 20:39:08 +00:00
Chris Lattner
eb6b47c3e6 fix dependency
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8004 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-21 15:47:37 +00:00
Chris Lattner
98892653e5 Point to the correct cc1/cc1plus binaries
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7997 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-20 22:11:45 +00:00
John Criswell
9621a2b073 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7979 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-20 15:18:41 +00:00
Chris Lattner
1ddb6b61ea Add new cleandeps target, to allow easy cleaning out of .d files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7954 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-18 17:27:40 +00:00
Chris Lattner
b7dc2b9251 Remove extraneous ;'s, no functional changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7902 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-15 20:00:47 +00:00
Chris Lattner
9a86a0171f Add llvm tools to path of LLVMGCC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7882 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-15 15:20:52 +00:00
Chris Lattner
af06a08584 Make sure to create the directory before we cram a .bc file into it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7864 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-15 03:02:52 +00:00
Chris Lattner
481cc7c79e Implement BYTECODE_LIBRARY support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7855 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-15 02:18:35 +00:00
Chris Lattner
95cc1b39e0 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!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7850 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-14 21:10:25 +00:00
John Criswell
d741bcfa16 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7780 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-12 18:51:51 +00:00
Brian Gaeke
6a80975505 Makefile.common: Remove commented-out and duplicate rules.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7650 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-06 21:44:22 +00:00
John Criswell
cb048097c9 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).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7616 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-05 21:38:28 +00:00
John Criswell
75a005ff4c 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7615 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-05 21:21:58 +00:00
Chris Lattner
68a13dc8c0 Urg, do not print "foo has changed" messages
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7573 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-04 20:07:01 +00:00
Chris Lattner
7bb107de41 While I'm looking at it, line up the SED lines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7572 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-04 19:48:10 +00:00
Chris Lattner
a328f887c7 * 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!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7571 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-04 19:47:06 +00:00
John Criswell
82f4a5a00c 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7458 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-31 20:58:51 +00:00
John Criswell
8d4221eeaa Renamed libtool to mklib for your tab completion pleasure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7255 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 16:52:50 +00:00
John Criswell
96914390e6 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7183 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-16 20:26:06 +00:00
Misha Brukman
1ba3138cdc The word separate' only has one e'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7174 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-14 17:26:34 +00:00
Vikram S. Adve
6edfe27195 Add phony target "bytecode" to ensure that it works in recursive makes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7147 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-10 19:25:29 +00:00
Misha Brukman
9b51b6fab2 Move the space separator to where it really belongs: in the print statement, not
in a variable assignment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7141 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-10 16:52:41 +00:00
Misha Brukman
f8873ed9d8 Removed an extra slash that appears in the path name when these variables are
combined with a '/' separating them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7121 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-07 22:27:05 +00:00
John Criswell
f4ccd99310 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7024 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-01 14:52:28 +00:00