Commit Graph

178 Commits

Author SHA1 Message Date
nathanw 31bbd833a9 Change the make(1) command lines generated by crunchgen from:
"make -a -b VAR=VALUE -c -d target" to
"make -a -b -c -d VAR=VALUE target"

to avoid depending on make's undocumented and unportably-implemented
handling of the former case.

Makes crunchgen and nbmake work together on Cygwin.
2003-11-19 22:44:15 +00:00
lukem 171d653219 Overhaul how `build.sh tools' are used:
*	Rename "config.h" to "nbtool_config.h" and
	HAVE_CONFIG_H to HAVE_NBTOOL_CONFIG_H.
	This makes in more obvious in the source when we're using
	tools/compat/config.h versus "standard autoconf" config.h

    *	Consistently move the inclusion of nbtool_config.h to before
    	<sys/cdefs.h> so that the former can provide __RCSID() (et al),
    	and there's no need to protect those macros any more.

These changes should make it easier to "tool-ify" a program by adding:
	#if HAVE_NBTOOL_CONFIG_H
	#include "nbtool_config.h"
	#endif
to the top of the source files (for the general case).
2003-10-27 00:12:41 +00:00
lukem 130ab7336b Rework how MAKEVERBOSE operates:
*	Don't bother prefixing commands with a line of  ${_MKCMD}\
	and instead rely upon "make -s".  This is less intrusive on
	all the Makefiles than the former.  Idea from David Laight.

    *	Rename the variables use to print messages.  The scheme now is:
	    _MKMSG_FOO		Run  _MKMSG 'foo'
	    _MKTARGET_FOO	Run  _MKMSG_FOO ${.TARGET}
	From discussion with Alistair Crooks.
2003-10-21 10:01:19 +00:00
lukem 87755a0463 support MAKEVERBOSE and use ${HOST_SH} 2003-10-19 04:05:01 +00:00
lukem 53a9d2856c fix typo that prevented ${PROG}.unstripped from being removed in "clean" 2003-10-07 07:08:20 +00:00
salo 0f5a0c156d netbsd.org->NetBSD.org 2003-07-26 20:34:11 +00:00
lukem 29a6151db1 NOxxx= variables should appear first 2003-07-10 11:21:51 +00:00
dsl 9778762a60 Keep unstripped binary in $OBJ, use are timestamp instead of prog.stripped.
Patentially useful as a source of symbol information for debugging.
2003-07-09 19:51:07 +00:00
thorpej d6c02b1523 "objcopy --redefine-syms-file" is now "objcopy --redefine-syms". 2003-06-01 02:03:22 +00:00
lukem 826a14607a Now that <bsd.prog.mk> DTRT if HOSTPROG is defined (i.e, it is a no-op),
there's no need to special-case .include-ing it.
2003-05-18 07:57:31 +00:00
dsl cd7432d0cb Add an extra target to the xxx.mk file that is equivalent to 'all', but which
doesn't pick up baggage from bsd.own.mk and bsd.prog.mk.
This stops parallel makes exploding because they try to build ${PROG} to soon.
Fixes toolchain/21563 (with change to src/distrib/common/Makefile.crunch).
Upped version of crunchgen to 0.3
2003-05-15 17:49:46 +00:00
dsl 606b795c6a Add a .WAIT to ensure that all the program objects are built before
trying to build the crunched binary.
Might fix toolchain/21563
2003-05-14 11:20:01 +00:00
dsl 13d371ab4c Make the prog.mk makefile run make in each of the target directories and
then build the program itself.
This means that changes to any of the program source files cause the
crunched binary to be rebuilt.
Seems to work ok with the sysinst ramdisks.
2003-05-09 12:10:15 +00:00
perry 2bb5ccc638 progams->programs (Igor Sobrado, PR misc/19700) + homegrown->home-grown 2003-03-31 01:46:29 +00:00
fvdl 083af7aab4 Back out rev 1.43 for now, it seems to create some new problems (see
the sysinst Makefile).
2003-03-18 01:30:54 +00:00
enami 3d76616fbe No need to invoke the make command so many times. It can handle all
the target specified in command line.
2003-03-01 08:36:05 +00:00
wiz 990562bfef .Nm does not need a dummy argument ("") before punctuation or
for correct formatting of the SYNOPSIS any longer.
2003-02-25 10:34:36 +00:00
msaitoh f81acfd9b4 The name of the working directory for each prog is converted by "s/-/_/".
The directory list to be removed (i.e. make clean) has to be set with
the converted name.
2003-02-18 18:12:07 +00:00
simonb 6960865826 Use new the --redefine-syms-file option to objcopy to rename the symbols
we want to hide instead of making global symbols local (which doesn't
work on MIPS).
2003-01-29 10:32:34 +00:00
fvdl 286cf86961 Get the right formats for x86_64. 2002-12-05 01:38:26 +00:00
wiz ceff784594 Two typos. From Adrian Mrva. eg -> e.g. 2002-10-02 16:04:58 +00:00
thorpej 3b08abd277 * Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

  TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
  no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

  EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
  an external toolchain (e.g. /usr/local/gnu).  This enables the cross-build
  framework even for TOOLCHAIN_MISSING platforms.

  If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
  unconditionally set to "no", since the bits are not there to build.

  If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
  since the external toolchain's compiler is not in-sync with the
  in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
  that file can use it.
2002-09-17 23:18:25 +00:00
lukem 951972b555 - move LDSTATIC=-static to the bottom, so that "LDSTATIC=" in /etc/mk.conf
doesn't cause lossage
- set NOMAN= at the top (rather than MKMAN=no)
2002-08-20 01:52:58 +00:00
scw 4c8e482124 Add SH5 support. (Missed these during the last sweep of my local tree) 2002-07-11 21:46:21 +00:00
pooka ade9640026 Add -o, -D, and -L to usage() to get it in sync with reality. 2002-07-09 12:49:10 +00:00
pooka d395d11df0 Add envp argument support to crunchgen.
Even though envp is not the POSIX way of crawling through the environment,
this will hopefully save someone from having to scratch their head
really hard with a crunched program using envp.

from henric@aimnet.com, via OpenBSD
2002-07-03 12:45:06 +00:00
tsutsui 490896d4c4 Include <limits.h> for SIZE_T_MAX since time.h no longer
includes <machine/limits.h>.
2002-06-30 03:26:59 +00:00
pooka b31cb5dea9 add -o to synopsis 2002-06-12 11:22:41 +00:00
lukem f5aa03d2fa revert revision 1.37; it causes problems when running make(1) on a
crunchgen-created makefile with a partiallly complete build
(a situation which is more common than you think...)

solving the "parallel build" problem for crunchgen-created makefiles
needs to be done a different way...

fixes [toolchain/17012] from me.
2002-05-29 09:41:51 +00:00
sommerfeld 508e207b01 Some tweaks to (hopefully) make the crunchgen-generated makefile
parallel-build-safe.
2002-05-02 21:18:31 +00:00
sommerfeld 128f7ba0f7 Invoke the "make crunchgen_objs" submake with -B so we aren't confused
if we're being invoked in the context of a parallel build.
2002-04-29 04:20:56 +00:00
tv b0f4369532 Move check of USE_NEW_TOOLCHAIN so it'll actually be *defined* for a native
crunchgen binary where appropriate.
2002-04-10 17:29:25 +00:00
tsutsui aed1e4e07e Note -d flag in SYNOPSIS. 2002-04-06 18:30:02 +00:00
lukem 9aa4b4fe5d Move tempfname[] to fillin_program_objs() (the only place that calls it),
and assign it before each use of mkstemp(3).
Problem noted by Ben Harris <bjh21@netbsd.org> in [toolchain/16140].
2002-03-31 08:02:08 +00:00
lukem 1cdb82d0a7 Use "r" instead of "r+" to popen(3), since the latter is not portable
and the I/O stream is only read from in any case. Problem noted and fix
suggested by Ben Harris <bjh21@netbsd.org> in [toolchain/16139].
2002-03-31 07:48:15 +00:00
ross 2a76afae02 Generate <>& symbolically. I'm avoiding .../dist/... directories for now. 2002-02-08 01:36:18 +00:00
lukem 2321ad750f CRUNCHEDPROG=1 is a bit more useful if it's also defined when
determining prog_OBJPATHS ...
2002-02-02 12:25:35 +00:00
lukem ab2c3dcd21 pass CRUNCHEDPROG=1 to make(1) when building progs from their Makefiles.
allows different options for programs that are being crunchgen(3)ed.
2002-02-02 12:14:41 +00:00
tv 554a73a4ce Include config.h for host tool; protect __RCSID. 2002-01-31 19:24:47 +00:00
ragge a8858d3140 Add special command "keepsymbols", allows the specified external symbols
not to be hidden. From Jens Nilsson, jens@rockstorm.se.
2002-01-25 12:05:00 +00:00
fredette a01e8e37b1 Define both NLIST_AOUT and NLIST_ELF32 for m68000. 2001-12-12 22:14:46 +00:00
tv 8e6f7afb5b MKfoo=no -> NOfoo 2001-12-12 01:48:43 +00:00
wiz a48cf1293d Use .Bd -literal. 2001-12-01 19:02:07 +00:00
tv 5da3f37a1c Use .PATH to find mkskel.sh; formatting cleanup. 2001-11-12 18:53:40 +00:00
jmc edf781f5fc Oops...don't nuke the global symbols with objcopy. Just keep the crunched stub
and revert the others to locals
2001-11-08 07:35:00 +00:00
drochner ae7b2f469f remove superflouos arguments to fprintf() 2001-11-07 18:22:39 +00:00
christos 3058ad6190 make sure that we ramdiskbin is static. By the numbscull! Nobody tested this?
BTW. it seems that only make working floppies with USETOOLS=no. Will
investigate more.
2001-11-07 04:48:07 +00:00
thorpej 32928fda0d When adding something to CPPFLAGS, use +=, not = 2001-10-25 01:47:11 +00:00
jmc 0fbad14c98 Check for MAKEFLAGS in the env and pass those to the test make's run for
finding obj files. Otherwise -m <new mk files> won't get passed and can
cause problems on some cross builds.
2001-10-21 23:06:59 +00:00
jmc 6addac288f If USE_NEW_TOOLCHAIN is defined use objcopy instead of crunchide as it works now. 2001-10-05 22:52:56 +00:00
wiz fc7396be3d Whitespace, punctuation, section header fixes, sort sections. 2001-10-04 11:20:39 +00:00
wiz c0de7313ab Whitespace fixes. 2001-10-04 11:20:17 +00:00
jmc ab4dcdab07 Convert makefile to use bsd.prog.mk. Makes linking work since the .mk file
takes care of it and this will handle a DESTDIR build setup then.
2001-10-04 07:34:47 +00:00
jmc 03648a201b Add a -d option to set the DBG flag to whatever flags the builder wants. If
it's not set, default to -Os (so it's not hard coded into the binary.)

Generate a makefile by default that does all object file builds in local
subdirs by binary (i.e. bad144 gets built in $OBJDIR/bad144) via a reach over
make. (Sets .PATH and .CURDIR and does a make for the objects needed in that
dir).

Add a -o option that does the old behavior of searching for obj files by
querying the various object environment vars and searching. Without this
option none of the objdir special options, environment vars, etc will have
effect.

Document all the changes in the man page (and specificly note that without -o
none of the objdir functions take effect).
2001-10-04 04:17:04 +00:00
tls 5cb98b6cb9 Fix some lossage in previous commit: don't remove everything when cleaning
in a source directory, just the object files.  This is a _very temporary_
fix; I will untangle the meaning of UPDATE, etc. in this context presently.
2001-09-24 01:05:47 +00:00
tls 0b6a2936aa Changes to the emitted makefiles that actually build the objects:
1) Always do a make clean before building objects in any directory.  This
   is wasteful, but there's really no other simple way to cope with the
   fact that the compilation settings (e.g. CFLAGS) appropriate for the
   non-crunched build of a program may not be appropriate for the crunched
   build.  If the objdir magic in make didn't rely upon the presence of an
   "obj" or "obj.${MACHINE}" symlink, we could abuse it to handle this but
   unfortunately, it does.

2) Override $DBG to cause object files to be built with -Os.  We can't emit
   "DBG?=" into the generated makefile because of order-of-inclusion issues
   with the system Makefiles; the result would be that the default setting
   (currently -O2) would always be used instead of -Os.  If you're crunching,
   you almost certainly are doing it to get a smaller executable (!) so -Os
   is almost certainly appropriate for you.
2001-09-24 00:40:35 +00:00
bjh21 b7abea421d Build in ELF32 support on all ARM platforms. 2001-06-30 14:52:42 +00:00
tsutsui de539bb089 Define both NLIST_AOUT and NLIST_ELF32 on all m68k
rather than checking ${MACHINE}.
2001-02-18 05:22:46 +00:00
christos 35d2e40e99 fix nested extern 2001-02-05 01:39:27 +00:00
itojun 92ee339d1c sh3 split 2001-01-04 09:43:05 +00:00
simonb 0a76fbb1e6 Another object file format reference for hp300. 2001-01-02 12:30:14 +00:00
mrg ad2b8edf8a fix oversight in previous: also look for $MACHINE_ARCH of mipse[bl]. 2000-12-23 09:06:06 +00:00
scw 9bb48d10db Pick the supported object formats in the Makefile instead of extern.h.
This gives more control of which platforms support which formats.
(Basically because __%{MACHINE}__ is not pre-defined by the compiler)
2000-12-18 08:51:39 +00:00
lukem 279552d3db fix up various .Nm abuses:
- keep the case consistent between the actual name and what's referenced.
  e.g, if it's `foo', don't use '.Nm Foo' at the start of a sentence.
- remove unnecessary `.Nm foo' after the first occurrence (except for
  using `.Nm ""' if there's stuff following, or for the 2nd and so on
  occurrences in a SYNOPSIS
- use Sx, Ic, Li, Em, Sq, and Xr as appropriate
2000-11-07 06:43:24 +00:00
garbled 35e9659b6d change the direct call to crunchide to ${CRUNCHIDE} 2000-11-01 07:16:02 +00:00
garbled 3cc7cf211a While I'm here.. document the rest of the environment variables I found in
this program.
2000-10-30 10:16:15 +00:00
garbled 4c2d830e97 Document the MAKE environment variable. 2000-10-30 10:02:39 +00:00
garbled 331c044669 Modify this to obey $MAKE in the environment, instead of allways calling
"make" hardcoded.  This should cause my cross-ramdisk-builds to stop
blowing a gasket.
2000-10-30 09:55:09 +00:00
matt a28f4d4751 Teach crunchgen.c about MAKEOBJDIRPREFIX. 2000-09-08 17:20:47 +00:00
jhawk a022cf9d37 Use
${MAKE}
instead of
  make
2000-08-30 23:51:46 +00:00
mrg 14e83027c8 add sparc64 support. 2000-08-09 14:22:15 +00:00
cgd db755e7c76 sweep of my licenses (userland files w/o only my copyright) for
consistency.  (no functional changes)
2000-06-14 17:24:02 +00:00
cgd d220ca5ba3 fix up NetBSD RCS Ids to match the standard, and the leading comment as
to match as well.  No functional changes.
2000-06-14 06:48:47 +00:00
mycroft 886d104ff1 Fix uninitialized structure element. 2000-06-11 14:31:11 +00:00
bjh21 6c97e2bd78 Initial commit of arm26 port 2000-05-09 21:55:44 +00:00
mycroft d14de3b0e1 __sparc -> __sparc__ 2000-05-07 18:16:51 +00:00
simonb d88dfea295 Don't declare 'extern opt*' getopt variables. 2000-04-14 06:11:07 +00:00
mycroft 5086341bbf Don't try to use /tmp/Makefile... 2000-01-24 18:07:54 +00:00
sommerfeld dd51978a5a Make rules for finding object directory match those used by make:
obj.${MACHINE} takes precedence over obj.
the generated makefile should probably just use the print-objdir hack instead.
2000-01-09 16:37:28 +00:00
tsutsui 5cb06e6456 Use uname(3) to determine MACHINE type. 2000-01-09 04:54:53 +00:00
msaitoh 049ad0d982 machine/exec_coff.h -> sys/exec_coff.h 2000-01-07 09:40:33 +00:00
msaitoh 17b68982ad crunchide for coff (COFF executables not currently supported!) 1999-11-26 13:47:52 +00:00
erh 6752f572d8 Remove ELFNAME defines since they are defined in sys/exec_elf.h 1999-11-04 02:00:17 +00:00
kleink 522cbf0248 Update to match new SVR4-style definition names in <sys/exec_elf.h>. 1999-10-25 13:55:06 +00:00
hannken b383db3e6c Undo last change. While these macros are defined in exec_elf.h, they are
enclosed by `#ifdef _KERNEL'.
1999-10-22 10:47:37 +00:00
erh e896ce55a0 Remove ELFNAME macros which are already defined in exec_elf.h 1999-10-21 21:16:07 +00:00
christos f6ae64deff Free the right thing. 1999-09-20 04:12:16 +00:00
cgd 7c91150061 put temporary file in /tmp, and cd into src dirs and make w/ "Makefile"
(rather than making w/ "srcdir/Makefile") so that relative path specs in
srcdirs work out correctly.
1999-06-21 05:57:10 +00:00
wrstuden ad4097b67b Generate a makefile which is cross-crunching compatabile:
1) Include bsd.sys.mk so we pick up DESTDIR changes to fine .h files.
2) Only set STRIP if it's unset.
3) Generate .cro files rather than .lo files. .lo now is used for "local
	objects" - obj's for the host machine not the target machine.
1999-05-06 18:40:39 +00:00
garbled 9e44e9b578 More and more .Os cleanups. .Os is defined in the tmac.doc-common file,
so we shouldn't override it with versions in the manpages.  Many more to
come.
1999-03-22 18:16:34 +00:00
mycroft a1c657fe56 Clean up SYNOPSIS formatting. 1999-03-07 11:29:58 +00:00
christos 19a77af4a3 Add ELF for sparc and i386 (Andrew Gillham) 1999-03-03 12:23:20 +00:00
lukem dcab0210a0 convert from NOxxx= to MKxxx=no.
include <bsd.own.mk> if testing a MKxxx variable.
1999-02-13 02:54:17 +00:00
kleink 3ed4fcf61e In userland, pull in <errno.h> instead of <sys/errno.h> for the declaration
of errno.
1999-01-11 22:39:59 +00:00
mrg 227ed1e3ff add another caveat entry. 1998-12-21 13:41:38 +00:00
cgd ca87c75e7d completely reimplement ELF symbol hiding. now it's even more of a gross
hack, but more likely to work on non-alpha ELF systems.
1998-11-03 02:30:16 +00:00
wrstuden 67db0c4b38 Teach crunchgen to play nice in a cross-compiling environment. Make
the machine type a run-time decision a la make. Also, use ${LD}
for the linker, not ld.

Note: you will have to delete the crunchgen cache file for these
changes to take effect.
1998-09-13 05:32:18 +00:00
mycroft 519d858510 __AUDIT__ cleanup. 1998-07-28 19:22:54 +00:00
mycroft c563c17d5a Define NLIST_ELF32 on PowerPC. 1998-05-06 13:16:57 +00:00
perry 34a98169f0 macroize BSD, NetBSD, FreeBSD and misc cleanup 1998-02-06 05:54:12 +00:00