Commit Graph

333 Commits

Author SHA1 Message Date
wiz 8237994500 No more arm32. 2002-04-08 12:25:22 +00:00
lukem 266f41b284 add INSTALLBOOT. sort some entries in bsd.sys.mk 2002-04-03 05:32:58 +00:00
bjh21 c3e2abe891 Add CKSUM. 2002-03-31 15:01:39 +00:00
bjh21 c18727ccec MACHINE_ARCH can't be "arm26", so don't bother checking for that. 2002-03-31 14:59:04 +00:00
matt 6c83577293 Change VAX to default to new toolchain. 2002-03-30 21:53:27 +00:00
matt c670c2a754 Don't complain if vax && ELF. 2002-03-28 06:59:39 +00:00
shiba a3b10f5127 Switch mac68k to ELF. Now the default executable binaries are ELF.
Approved by Scott,briggs,fredb,wormey
2002-03-25 14:03:05 +00:00
thorpej 9c33b55e7c Split the notion of building Hesiod, Kerberos, S/key, and YP
infrastructure and using that infrastructure in programs.

	* MKHESIOD, MKKERBEROS, MKSKEY, and MKYP control building
	  of the infratsructure (libraries, support programs, etc.)

	* USE_HESIOD, USE_KERBEROS, USE_SKEY, and USE_YP control
	  building of support for using the corresponding API
	  in various libraries/programs that can use it.

As discussed on tech-toolchain.
2002-03-22 18:10:19 +00:00
lukem 1e73b16611 - ensure that check_DESTDIR and check_RELEASEDIR are always available,
even if USETOOLS==no.
- wrap setting of DESTDIR?= with own USETOOLS==yes check.

should fix a problem noted on current-users with USETOOLS=no
2002-03-19 11:03:05 +00:00
bjh21 6ee155e761 We never set MACHINE_ARCH to "arm26" so remove the MACHINE_GNU_ARCH mapping
for it.
2002-03-18 18:42:52 +00:00
tv cb25cef027 Remove the ability to set "USE_NEW_TOOLCHAIN=no" explicitly. This is a
one-way transition, so once it's defined by default for a port, it can't
be turned off.
2002-03-09 15:17:45 +00:00
lukem 1142a4b638 oops; should define check_DESTDIR before setting default for DESTDIR... 2002-03-05 03:53:58 +00:00
lukem 4b99ad4ad4 provide check_DESTDIR and check_RELEASEDIR targets in <bsd.own.mk>
and use those rather than local versions
2002-03-05 03:51:21 +00:00
is 92a181b637 Move Amiga PORT to ELF and new toolchain. Still missing:
support in UPGRADE to move old shared libs to /emul/aout
2002-02-15 21:28:03 +00:00
matthias dd580ad301 ".else if" doesn't work, thus everything was "COFF". Changed to ".elif". 2002-02-15 10:20:24 +00:00
ross 8a40adb0ab if NOMAN is defined, also define NOHTML 2002-02-07 00:53:34 +00:00
thorpej 300e827b31 * Turn lint and profiling on for SuperH.
* Turn lint on for m68000.
2002-02-04 08:49:04 +00:00
thorpej 085ea65576 Allow PIC on SuperH if HAVE_GCC3 is defined. 2002-02-03 23:52:23 +00:00
tv 9fbd88883c Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
round has been tested on Solaris/x86 and Linux hosts.

* Add host tools cap_mkdb, ctags, m4, uudecode.
* Protect __RCSID() and __COPYRIGHT() better.
* Reduce the number of places that need to include "config.h", to keep
  sources closer to their "vanilla" versions.
* Add more compat #defines and autoconf-checked functions.
2002-01-31 22:43:33 +00:00
thorpej f8e5e3f153 Simplify OBJECT_FMT assignment:
* All new-toolchain platforms are ELF.
* Else, if SuperH, old toolchain is COFF.
* Else, a.out.
2002-01-29 19:17:49 +00:00
tv aaa9568b4c rpcgen now accepts CPP from the environment; set it here for TOOLDIR builds. 2002-01-29 10:21:35 +00:00
thorpej 186e6c6ef1 Make sun2 use the new toolchain. 2002-01-28 21:46:49 +00:00
thorpej 546bb05742 GNU_ARCH.m68000=m68010 2002-01-28 19:22:52 +00:00
thorpej fbf7ff9f0c m68000 also gets "-netbsdelf", for consistency with m68k. 2002-01-28 01:44:19 +00:00
thorpej 82405f125e Reverse the sense of the check for new-toolchain platforms. Instead,
list the MACHINE_ARCHs and MACHINEs that have NOT yet converted to
the new-toolchain.
2002-01-28 00:37:25 +00:00
ross de50fe2e64 Drink ALL the Kool-Aid.
(Move -mieee from lib/ to bsd.*.mk; new var MKIEEEFP defaults to yes.)
2002-01-27 23:33:51 +00:00
reinoud 7eeda2c9b1 Some targets were obmitted in the .PHONY declaration in the bsd.own.mk file
resulting in (number of suffix rules) times stat() calls to be made to the
kernel.

Also fixing typo cheanhtml to cleanhtml.
2002-01-26 23:53:00 +00:00
lukem 47737da33b add $PAX to both, and $MAKEFS to bsd.sys.mk 2002-01-25 05:21:40 +00:00
mrg e00fc7b09f add SUNLABEL & SPARCINSTALLBOOT. 2002-01-19 13:32:52 +00:00
tv 1e3d9d1775 Remove parentheticals from _HOST_OSREL, to avoid them showing up in
directory names (which would confuse shells).
2002-01-15 19:13:59 +00:00
lukem 328430b633 revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5
2002-01-10 05:17:20 +00:00
tv bc23e55bd1 Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now.  (Temporary workaround for PR 15175.)
2002-01-09 16:58:35 +00:00
mrg ed3bd49a81 add ${ZIC} 2002-01-05 07:34:08 +00:00
mrg b193186a84 add ${MAKEFS} 2002-01-05 07:29:31 +00:00
thorpej 4a756ca168 Switch the MIPS ports to the new-toolchain. 2002-01-04 06:23:41 +00:00
tv 06f06e280f Add more tolerant script-based implementation of mkdep for host tool
compiles.  Based loosely on mkdep.old.compiler (so CSRG license copied),
but now uses just one rewrite (awk) process per cpp invocation and
determines the proper way to run cpp and awk via a "configure" script.

Use HOST_MKDEP in bsd.hostlib/hostprog.mk (defaulting to the old override
value of MKDEP), and give it a TOOLDIR equivalent in bsd.own.mk.
2002-01-03 22:45:23 +00:00
thorpej 3797a3f56f Remove x86-64 "nolint" hack. 2002-01-02 23:58:18 +00:00
thorpej 6e1a67a44b Remove the "MKLINT=no if HAVE_GCC3" hack; a patch to support lint
comments has been submitted to the GCC maintainers, so if you're
using a GCC 3.x that doesn't support lint, set MKLINT=no in mk.conf.
2002-01-02 23:48:19 +00:00
thorpej 4c0be6ef79 If HAVE_GCC3 is set, force MKLINT to "no", since GCC 3.x's C pre-processor
does not yet support our lint(1).
2002-01-01 01:44:29 +00:00
thorpej c32d4e9692 Don't set NOPROFILE for x86-64. 2002-01-01 01:17:32 +00:00
thorpej 1c95f6c025 * Remove -Wno-format -fno-builtin from CFLAGS in the x86-64 case.
* Default MKBFD, MKGDB, and MKGCC to "yes".  Set them to "no" for
  x86-64.
2001-12-31 23:06:34 +00:00
thorpej 20f59a49c7 x86_64 doesn't use the "new toolchain" but it doesn't really use the
old one either.  The "new toolchain" environment is closer to what we
want, however, for using the external toolchain currently required for
x86_64, so set USE_NEW_TOOLCHAIN for x86_64.
2001-12-28 06:57:41 +00:00
lukem efcc9a4c9d * Add user-controlled mk.conf variables
- SHLIBDIR	Location to install shared libraries if ${USE_SHLIBDIR}
			is "yes".  Defaults to "/usr/lib".

	- USE_SHLIBDIR	If "yes", install shared libraries in ${SHLIBDIR}
			instead of ${LIBDIR}.  Defaults to "no".
			Sets ${_LIBSODIR} to the appropriate value.
			This may be set by individual Makefiles as well.

	- SHLINKDIR	Location of shared linker.  Defaults to "/usr/libexec".
			If != "/usr/libexec", change the dynamic-linker
			encoded in shared programs

* Set USE_SHLIBDIR for libraries used by /bin and /sbin:
	libc libcrypt libcrypto libedit libipsec libkvm libm libmi387
	libtermcap libutil libz

* If ${_LIBSODIR} != ${LIBDIR}, add symlinks from ${LIBDIR}/${LIB}.so*
  to ${_LIBSODIR}/${LIB}.so* for compatibility.

* Always install /sbin/init statically (for now)


The net effect of these changes depends on how the variables are set:

  1.)	If nothing is set or changed, there is no change from the
	current behaviour:
		- Static /bin, /sbin, and bits of /usr/*
		- Dynamic rest
		- Shared linker is /usr/libexec/ld*so

  2.)	If the following make variables are set:
		LDSTATIC=
		SHLINKDIR=/lib
		SHLIBDIR=/lib
	Then the behaviour becomes:
		- Dynamic tools
		- .so libraries used by /bin and /sbin are installed to /lib,
		  with symlinks from /usr/lib/lib*so to -> /lib/lib*so
		  where appropriate
		- Shared linker is /lib/ld*so

  3.)	As per 2.), but add the following variable:
		USE_SHLIBDIR=yes
	This forces all .so's to be instaleld in /lib (with compat
	symlinks), not just those tagged by their Makefiles to be.
	Again, compat symlinks are installed
2001-12-28 01:32:37 +00:00
minoura ebfadba677 ELF!! 2001-12-24 11:38:04 +00:00
chs 450ff86b66 convert luna68k to ELF. ok'd by nisimura. 2001-12-22 23:38:20 +00:00
thorpej ab25dcd90e Switch alpha to the new toolchain. 2001-12-20 18:29:47 +00:00
scw 18449b952b Switch all OBJECT_FMT=elf m68k ports to new-toolchain. 2001-12-16 20:31:09 +00:00
thorpej a676fd1679 Err, after consulting FSF's config.sub, shl -> shle. 2001-12-15 01:50:33 +00:00
thorpej a78b7669d7 MACHINE_GNU_ARCH for sh3el is "shl". sh3eb and sh3el ELF targets
are also named "netbsdelf".
2001-12-15 00:39:08 +00:00
thorpej 3ff7b8a100 Per suggestion from Todd:
Wrap assignments of various tools within USETOOLS_BINUTILS and
USETOOLS_GCC (names reflect the FSF packages the tools are provided
by), which default to "yes", for easy testing of different versions
of these packages.
2001-12-12 05:50:09 +00:00
tv f845c9ab5f Revert rev. 1.228. If USE_NEW_TOOLCHAIN is set to "yes" explicitly by the
user on a platform that is not *OFFICIALLY* switched to the new toolchain,
WE REALLY, REALLY DO WANT A LOUD WARNING AT THE START OF THE BUILD!
2001-12-12 03:39:27 +00:00
tv ae87b37058 Revert previous. This breaks many things, since such variables as LD and AS
are defined in <sys.mk>!

A better way needs to be devised for this.
2001-12-12 03:28:37 +00:00
thorpej ebb6a06799 Set the following vars with FOO?= so that alternative versions
can be specified in mk.conf: AR, AS, LD, NM, OBJCOPY, OBJDUMP,
RANLIB, SIZE, and STRIP.

This, along with some symlinks in TOOLDIR, makes it much easier to
test different versions of the GNU toolchain (e.g. binutils-current).
2001-12-12 00:50:27 +00:00
tv e690fbabcd Major readability cleanups. 2001-12-11 23:25:23 +00:00
jmc 0ce9aa8e6c Add pwd_mkdb as a toolchain bit for builds 2001-12-07 02:28:53 +00:00
jmc 92a08ecf01 If USE_NEW_TOOLCHAIN is defined and set to yes treat that as a match (and then
reset it to nowarn so it lines up with ported platforms).
2001-12-04 04:25:21 +00:00
thorpej 79b30cbdeb Provide ${MAKEWHATIS}. 2001-11-29 23:53:23 +00:00
jmc df5817fef0 Make sure the tools built roff tools are first in the path before calling groff
as it calls troff/etc without any leading pathnames. Otherwise the tools
version is fairly useless as the installed system version will be used to
build all manpages
2001-11-28 05:03:18 +00:00
jmc 900d713ff9 Back out last change until some more testing is done. Should account for folks
not using objdirs and also force this to cd to $_SRC_TOP_ before doing the
make obj
2001-11-25 23:40:08 +00:00
jmc d271a36466 Before checking the value from PRINTOBJDIR force a make obj at $_SRC_TOP_. 2001-11-25 09:06:00 +00:00
perry 8382183dca 1) Use the -r flag for INSTALL_SYMLINK and INSTALL_LINK, just like
INSTALL_FILE does.
2) Patch around a bug that has been biting people in which bsd.own.mk
   attempts to cd into space when building outside of the tree. I may
   have a better solution for the whole thing later.
2001-11-24 21:26:34 +00:00
perry 77bd523e70 Snapshot of some things for builds as non-root -- work in progress:
0) rename UNPRIVILEGED UNPRIVED. It was too long. We'll argue about if
   we should replace it with yet something else later. It currently
   logs metadata by default. We'll argue more about that later too.
1) create a _SRC_TOP_OBJ_ variable pointing at the /usr/src objdir so
   we know where to dump metadata.
2) Add a METALOG variable pointing at the default location for the
   metadata log. (This may be moved or renamed -- the location is just
   for testing.)
3) Add a HOST_INSTALL_FILE used in host tools Makefiles instead of
   INSTALL_FILE, which doesn't include ${INSTPRIV} (i.e -U -M ${METALOG})
4) Add INSTALL_LINK, INSTALL_SYMLINK for use in other .mk files so we
   can get rid of explicit uses of ln. Slightly clean up INSTALL_FILE.
2001-11-19 04:44:32 +00:00
thorpej 8bfeb9a270 Use a little transitional hack to determine if we use -isystem
or -idirafter.  Use the former only of USE_NEW_TOOLCHAIN, since
-isystem causes the old toolchain to bomb out when building
libstdc++.
2001-11-19 02:46:50 +00:00
atatat 04faedd073 Add OBJDUMP to the toolchain list. 2001-11-15 21:43:54 +00:00
tv 42423ab0f9 Make it possible to warn about platforms that are not yet switched to the
new toolchain.
2001-11-15 19:24:07 +00:00
wiz dd7622f812 It's called nbmakeinfo now, not makeinfo. 2001-11-15 13:05:35 +00:00
tv d21f3d4a13 Prefix all target-specific things with `${MACHINE_GNU_PLATFORM}-'.
Prefix all non-target-specific things with `nb'.
2001-11-14 22:13:39 +00:00
thorpej f01d91b750 If MACHINE_ARCH == arm, set USE_NEW_TOOLCHAIN=yes and OBJECT_FMT=ELF.
It is infeasible for some ARM ports to use anything but ELF/new-toolchain,
and this allows for the ARM ports that aren't ready for ELF to stay at
MACHINE_ARCH == arm32 until they're ready.  The rest of the ARM ports
have a userbase such that if a flag day happens with the compiler (there
are a couple of ABI issues still being discussed), that it won't matter
so much.

Discussed with Ben Harris, Matt Thomas, and Chris Gilbert.
2001-11-14 19:46:38 +00:00
tv 0b806103d9 "${FOO}" -> ${FOO:Q} 2001-11-13 17:37:03 +00:00
tv b5cd2489b2 Major overhaul of src/tools and host toolchain. Summary of changes:
* Rewrite src/tools Make logic to work like the rest of the tree wrt
  "dependall" and "install".  The old "make build" hack is gone.

* Remove the MKTOOLS logic.  This was linked to the "make build" hack,
  and was only needed because TOOLDIR originally had no writable default.

* Redo the GNU configure/make logic to make it fit reasonably in a
  BSD make wrapper.  Use new ${.ALLTARGETS} variable to scan for
  targets in $(srcdir), and mark them with .MADE: to prevent rebuilding.

* Only build cross tools in src/tools; remove some messy logic in
  src/usr.* and src/gnu/usr.* that would do target filename rewriting
  (improves consistency and readability).

* Add the ability to build cross gdb at tool build time by setting
  MKCROSSGDB (default no) to "yes" in mk.conf.

* Add src/tools/groff and set up paths to work with this cross groff.
2001-11-12 23:16:17 +00:00
tv 300ea65311 MAKEFLAGS isn't accessible from a conditional during parse; use .MAKEFLAGS
instead.
2001-11-12 20:11:21 +00:00
tv d35dc81716 "true" doesn't output anything; use "echo" instead. 2001-11-12 20:05:15 +00:00
tv 84935b4037 Make PRINTOBJDIR use "${MAKE} -V .OBJDIR" so it will work correctly with
<bsd.obj.mk> rewrites of ${.OBJDIR}.  Add a failsafe (checking for the
-V option in MAKEFLAGS) to prevent infinite recursion.
2001-11-12 20:03:44 +00:00
thorpej 73f86f9fe4 Add a DBSYM variable for the dbsym(8) host tool. 2001-11-09 07:30:55 +00:00
tv e239fff11b Extend the use of NEED_OWN_INSTALL_TARGET (used by bsd.pkg.mk since its
creation, to exclude conflicting make targets from botching pkgsrc), to
avoid defining INSTALL_FILE.  pkgsrc is self-contained except for
<bsd.own.mk>, so this doesn't have an adverse effect on real <bsd.*.mk>
build trees.
2001-11-05 19:45:25 +00:00
thorpej 5f6d116c46 Switch PowerPC to the new toolchain. 2001-11-04 01:36:18 +00:00
thorpej fd329b8dd0 Fix typo in previous. 2001-11-03 20:46:25 +00:00
thorpej b437f0975b Switch NetBSD/sparc to the new toolchain. 2001-11-03 20:26:56 +00:00
tv 1129ed4afe Improve readability and reduce redundant redundancy in share/mk; add some
descriptive comments.  The guts of hostprog, lib, and prog are mostly
unchanged; this will be done in another pass.

Make several things work properly with UNPRIVILEGED set, and make the
install-time "cmp" logic work for MANZ.  Also reimplement INCS{DIR,NAME}_foo
(requested by wiz) in a backwards compatible way.

Reviewed by christos.
2001-11-02 05:21:47 +00:00
tv 61be23b431 * Create a variable HOST_OSTYPE that represents the host build environment,
using `uname -s`-`uname -r`-`uname -p || uname -m`.  This can be overridden
  in mk.conf or the environment, and is used by host tools to ensure that
  build hosts do not clobber each other.

* Now that there's an objdir in src/tools, make a default TOOLDIR by creating
  "tools.${HOST_OSTYPE}" in the objdir (if it exists) of src/tools.  This
  means that TOOLDIR is no longer required to be set in a build, though it
  still may be set manually if desired.

* Set MKTOOLS to "yes" by default, since the default TOOLDIR is now located
  in a known mutable location.  This may still be set manually if desired.
2001-10-31 17:46:08 +00:00
tv abb4800606 Make REQUIRETOOLS work properly -- don't error if USE_NEW_TOOLCHAIN is
not set.  Also, nuke redundant USE_NEW_TOOLCHAIN check with USETOOLS.
2001-10-31 16:25:21 +00:00
jmc 83fb4943af already gets checked and prints out an error if it's used without
being set. You want to use it if USE_NEW_TOOLCHAIN is set and you're in
the source tree by default.
2001-10-28 02:03:00 +00:00
chs 3116cf32a9 if TOOLDIR is not defined, USETOOLS should default to "no",
since defaulting to "yes" will just give an error every time.
2001-10-28 00:52:41 +00:00
jmc bffc850001 Remove debug echo statement 2001-10-26 06:41:46 +00:00
jmc a414473103 Change the check for BSD_PKG_MK into something which looks to see if we're
running from inside of $BSDSRCDIR (recurse back and look for file/dir
signatures or reach /, whichever comes first).

Do it once and then pass the results to sub-makes.

Finally, if using the new toolchain and USETOOLS=yes check $TOOLDIR
before using it. Print an error message out if it's not set when expected
here.
2001-10-26 04:59:10 +00:00
bjh21 cb7676b0ab USE_NEW_TOOLCHAIN for ARM ELF platforms (just arm26), since the old toolchain
doesn't do ARM ELF at all.
2001-10-25 22:31:11 +00:00
thorpej 09dacf298e Oops, typo. 2001-10-25 07:47:18 +00:00
thorpej 9c77726ed1 Add an ASN1_COMPILE variable for that host tool. 2001-10-25 07:46:48 +00:00
thorpej 5717160d3a MDSETIMAGE gets a MACHINE_GNU_PLATFORM prefix. 2001-10-24 23:58:21 +00:00
thorpej bae67ac435 LINT needs a ${MACHINE_GNU_PLATFORM}- prefix now. 2001-10-24 02:34:33 +00:00
thorpej 3a01dbbe6c Quote the ${CC} provided to mkdep's environment. 2001-10-23 22:55:30 +00:00
thorpej 8f508df026 When setting MACHINE_GNU_PLATFORM for ARM ports, we need compare
MACHINE_GNU_ARCH (not MACHINE_ARCH) to "arm", otherwise the GNU
platform won't be set properly if OBJECT_FMT=ELF.
2001-10-23 17:15:21 +00:00
jmc a831891141 Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).
2001-10-21 23:10:46 +00:00
jmc 910ace859f Pass ${.MAKE} to crunchgen so it uses the one for cross builds correctly 2001-10-21 23:08:59 +00:00
jmc 6289ed7a3e Change sets so the differing toolchain bits only (not the complete toolchain
at the moment) are pulled out into tc.mi and tc.old files.

tc.mi has any files which are in the new toolchain only and tc.old contains
the reverse (files which only existed in the old toolchain). The remainder
of the toolchain that is common between both old and new is still contained
in the various mi/md files.

Check for USE_NEW_TOOLCHAIN=yes in makeflist to determine which tc files to
pull in if they exist.

XXX - All the toolchain bits should eventually be pulled out into separate
lists as tc.mi and tc.<arch>. Leaving it for now until the new toolchain is
fully integrated on all ports.
2001-10-20 06:11:21 +00:00
jmc 37e7a6a0a9 Add mklocale to cross-tools and turn it back on for the builds. 2001-10-20 06:04:59 +00:00
jmc 1ea83aa531 Add crunchgen, msgc and menuc 2001-10-13 06:11:06 +00:00
enami a28fcd776c Make mtree a host tool and use it when appropriate. 2001-10-09 05:19:03 +00:00
mrg f650652253 use CC="${CC}" and NM="${NM}" so that, eg, "CC=cc -m64" works. 2001-10-08 10:01:35 +00:00
tv 4623186407 Make sure to define USETOOLS properly always (set it to "no" on systems
without USE_NEW_TOOLCHAIN).  This will allow conversion of in-tree
conditionals to use only USETOOLS....
2001-10-04 15:52:59 +00:00