Commit Graph

70 Commits

Author SHA1 Message Date
snj f2a7edf211 Only generate SHA512 and MD5 checksums for releases. 2009-09-19 07:09:53 +00:00
apb 06867cdace If there are errors in creating a ${set}.tgz tar file, then don't
just press on regardless.
2009-09-12 11:01:55 +00:00
apb 7461501a27 Add "-M" flag to the mtree invocation in sanitise_METALOG. This should
avoid errors in cases where a build poduct changes type (e.g. a file
becomes a symlink) between one build with older sources and a subsequent
update build with newer sources.
2009-07-12 12:30:31 +00:00
apb 3ae1376a23 Clean up the handling of METALOG.sanitised:
* Don't change METALOG in place while creating METALOG.sanitised in the
  sanitise_METALOG target.  This makes it easier to manually inspect
  METALOG to find the order in which lines were added during a build.

* Add a clean_METALOG target, to be invoked from src/Makefile early in
  the build, to prevent unbounded growth of METALOG during multiple
  MKUPDATE builds.

* Remove the old hack of incorporating etc/mtree/NetBSD.dist into
  METALOG.sanitised.  It was needed only during a short transition
  period when people might have done MKUPDATE builds starting from
  existing DESTDIR and OBJDIR trees that had been created before
  revision 1.317 of src/etc/Makefile.

* Since etc/mtree/NetBSD.dist is no longer added, there's will not
  be any "optional" lines, so there's no need to filter them from
  METALOG.sanitised.

* There's no need for two different METALOG.unpriv and
  METALOG.sanitised.unpriv variables; combine them into a single
  METALOG.unpriv variable whose value is "-M ${METALOG}.sanitised".

* Reorder some lines in the Makefile, to bring related targets,
  variables and comments together.
2009-04-23 09:37:03 +00:00
apb c62615c020 In various places that manipulate mtree specs, use "mtree -CS" to sort.
Remove some now-redundant standalone sort commands.
2009-04-11 15:09:32 +00:00
apb c89f08d79b Add support for new MAKEVERBOSE levels 3 and 4. The complete list is now:
0   Minimal output ("quiet")
 1   Describe what is occurring
 2   Describe what is occurring and echo the actual command
 3   Ignore the effect of the "@" prefix in make commands
 4   Trace shell commands using the shell's -x flag

The default remains MAKEVERBOSE=2.
2008-11-13 20:40:11 +00:00
mrg 9c8df5ee67 - retire MKXORG from public use
- introduce X11FLAVOUR to choose src/x11 vs src/external/mit/xorg
  for the X11 to build if MKX11=yes is set.  it takes the values
  of either Xorg or XFree86.
- default to Xorg on alpha, i386, macppc, shark, sparc and sparc64
- remove MKXORG_WITH_XSRC_XSERVER, unused and never useful
2008-11-09 23:02:28 +00:00
apb 89799ead73 Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build. 2008-10-25 22:23:55 +00:00
apb 96230fab84 Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.
2008-10-19 22:05:19 +00:00
lukem e95c8a6849 Remove set lists for the non-cross-compiled ("vendor provided") build of
XFree86; we've used our src/x11 framework for four years.
2008-08-31 00:19:33 +00:00
lukem d6e6997551 Improve support for MKXORG!=no to enable builds into external/mit/xorg.
This will be mutually exclusive to MKX11!=no.
2008-08-28 07:21:49 +00:00
matt 7cd6f44757 Change remaining instances of ${RELEASEDIR}/${MACHINES} to
${RELEASEDIR}/${RELEASEMACHINEDIR}
2008-06-23 02:16:53 +00:00
apb 3ba96f4940 If MAKETARS_SERIAL is set to "YES" or "yes", then the tar sets will be
made in series, even if make's "-j" flag requests multiple parallel
jobs.  This is useful on systems that exhibit poor performance when
running multiple parallel disk-intensive operations.  The default is
MAKETARS_SERIAL=NO, which will obey the "-j" flag passed to the make
command.

Requested in tech-toolchain.  Reverts the change made in revision 1.56.
2008-05-02 19:25:42 +00:00
lukem 6c8d08d4c7 Add '-q' to maketars and makesrctars, to quieten them.
Improve MAKEVERBOSE support.
2008-03-16 07:02:22 +00:00
apb 959aea0471 Serialise making the "sets" tarballs in the maketars target.
On many systems, making them in parallel causes very poor
system performance due to disk I/O.  (Requested by jmmv.)
2007-03-10 20:34:57 +00:00
apb 686a052354 Let do-${tar} depend on sanitise_METALOG. 2007-01-27 06:46:43 +00:00
he 2e013abffa Ensure that ${METALOG} does not grow without bounds as an effect of
repeated unprivileged UPDATE builds.

Discussed with lukem@
2006-11-05 18:04:44 +00:00
mrg db19e89e04 remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.
2006-06-02 22:16:18 +00:00
mrg 0db1500b43 retire HAVE_GCC3/HAVE_GCC4 and introduce HAVE_GCC that is set to 2, 3 or 4. 2006-04-07 19:38:58 +00:00
apb 69a903d0c3 Prepend etc/mtree/NetBSD.dist to the metalog before passing it to
${TOOL_MTREE}.  Previously this was done by maketars.  In the long
term there should be a better solution.  In the short term, this
should fix the build for people who do unprivileged update builds and
who had an old METALOG from before the recent syspkg-related changes.

Reviewed by christos
2006-01-06 18:08:59 +00:00
apb f644cbcf33 Add a "makedeps" target, to update the "deps" file.
XXX: Why is "deps" checked in to the source tree, instead of
just being created as necessary?

Reviewed by agc
2006-01-04 15:11:07 +00:00
apb 5b62001b7b * Add new user-visible "syspkgs" target, and internal "makesyspkgs" and
"makesyspkgsums" targets for it to use internally.
* Add internal "sanitize_METALOG" target that uses "${TOOL_MTREE} -C ..."
  to sanitise the METALOG file before invoking anything that will
  want to parse the METALOG (checkflist, regpkgset, maketars, or
  installsets).  Previously, maketars used to do this itself, but its
  better to do it only once.
* Add internal "checkflist_if_DESTDIR" target, which invokes checkflist iff
  DESTDIR is set and not empty.  Use it where appropriate.
* Add a few more host tools to SETSENV.
* A few minor related changes.

Reviewed by agc
2006-01-04 14:58:58 +00:00
jmc 4afc9e5b49 Restructure how makesrctars works so it spits out source balls that look like
they would from a release (files owned by root:wsrc, perms set, etc)
2005-10-07 20:00:54 +00:00
jmc a356b27a84 Add SHA512 into sums lists 2005-10-06 02:22:11 +00:00
cl 885c0b6fc9 ``build.sh -m xen-i386 release'' now builds a release for NetBSD/xen
for i386.  The resulting release consists of:
- NetBSD/xen for i386 kernel, loader and docuemntation
- NetBSD/i386 userland sets
2004-05-12 16:56:41 +00:00
lukem aa5498d450 makesrctars:
* Support '-x xsrcdir' to tar up xsrcdir as xsrc.tgz, with the
  contents of the tarfile being relative to xsrcdir and
  prefixed with 'usr/xsrc'
* Convert to getopts a la the other scripts in this directory

Makefile
* if ${MKX11} != no, call makesrctars with '-x ${X11SRCDIR}'
2004-04-20 06:36:34 +00:00
heas 27fdd34bb7 makeflist is .PRECIOUS, do not delete it if make is interrupted. 2004-03-06 16:12:06 +00:00
lukem 2e8d4db059 * Add "makesetfiles" target, to populate etc/mtree/set.* with maketars -S
* Some MAKEVERBOSE support.
* Add some variables to simplify various rules.
* Simply script startup by replacing ${SETSENV} with ${SETSCMD}, which
  cd's to ${.CURDIR} before doing the work.
2004-01-30 08:43:15 +00:00
lukem 79700b81fe Remove the set if maketars returns a non-zero exit code 2004-01-29 09:27:53 +00:00
lukem 0b419d3b93 * In installsets, pass ${MAKEFLIST_FLAGS} so that the X sets will also
be copied if MKX11 != no.
* Clean up .PHONY and my .PRECIOUS.
* Cosmetic tweaks.
2004-01-29 08:34:21 +00:00
lukem 399d0c9695 If MKX11 != no, invoke makeflist & checkflist with -b.
Use "makeflist -l" to determine MAKETARSETS

Use  sh -c '. ./sets.subr; echo $x11_version'  to implement print_x11_version.
2004-01-08 01:48:45 +00:00
jmc a481fc8f48 Simplify rules so tarfiles always attempt to rebuild (let maketars determine
whether or not to continue based on METALOG if it choses). Fixes bug where
tar files were rebuilding every other time
2003-12-29 04:46:18 +00:00
lukem b852db83fb Significant overhaul of how the sets are used:
* Add an optional third field to the sets file which is a list of
  comma separated keywords that control if the line is printed.
  Currently supported keywords
	kerberos4	${MKKERBEROS4} != no
	kerberos	${MKKERBEROS} != no
	lint		${MKLINT} != no
	obsolete	${obsolete} != 0.
			In this case, non obsolete files are not printed.
  (This will allow future support for builds with variables such as
  MKHESIOD and MKYP set to "no".)

* Use sh(1)'s getopts where appropriate, and otherwise cleanup the
  various scripts.

* Move defaults for sets.subr from sets.defaults into sets.subr.
  Move replicated code for determining stuff such as shlibs type
  from various scripts into sets.subr.

* Merge the obsolete.*, krb.*, krb4.* and lint.* into the appropriate
  main lists with the relevant third field keyword(s).
2003-12-29 03:13:25 +00:00
jmc 0a2cc9c412 Add a .ORDER so the checksums come out in the proper sequence. 2003-12-28 09:27:41 +00:00
jmc 50333acbf4 Nuke the sets before building to make sure the original behavior of makesets
rebuilding all sets is preserved.
2003-12-26 06:20:40 +00:00
jmc 5ebbfc359b Forgot that makesums creates the checksum files anew each time it's run. Save
outputs from each step and concat into place when done.
2003-12-22 04:56:53 +00:00
dsl 5a8b5dea23 Don't require '.' in PATH for sets.default 2003-12-20 17:08:32 +00:00
jmc 62fcaffaa9 Redo creation of sets/sums so this can be parallelized if using -j.
Suggested in PR#20115 and PR#20116
2003-12-19 22:25:53 +00:00
lukem 312f747986 Invoke ./checkflist with ${CHECKFLIST_FLAGS}, so that the end-user
can set CHECKFLIST_FLAGS="-e" in mk.conf so that extra files in
$DESTDIR are `non fatal'.

Remove unused '${CHECKFLISTFLAGS}' (which allowed selection of
different checkflist target in maketars target)
2003-09-30 06:26:37 +00:00
lukem 02ec5b66b9 add MKTEMP=${TOOL_MKTEMP:Q} to SETSENV 2003-09-30 04:58:20 +00:00
tron b02749036c Fix sets handling so that GCC specific lists are really used. 2003-09-21 19:26:02 +00:00
mrg 9347d6de64 add initial support for gcc3 2003-08-04 05:53:20 +00:00
mrg 11569a7f9b support XF4 on sparc. had to move parts of x{base,comp}4/mi into the
relevant ports as they do not apply to sparc (or other non-"hw/xfree86"
ports.)
2003-07-22 11:46:52 +00:00
lukem f134f3dc38 Add MKUNPRIVED; if not no has the same semantics as if UNPRIVED was defined.
Replace defined(UNPRIVED) tests with ${MKUNPRIVED} != "no"

Add MKUPDATE; if not no has the same semantics as if UPDATE was defined.
Replace defined(UPDATE) tests with ${MKUPDATE} != "no"

Improve documentation for these and other make flags.
2003-07-18 08:26:01 +00:00
lukem 001c68bd94 Rename a large chunk of the make(1) variables which refer to a
program/tool from "FOO" to "TOOL_FOO".  The new variables are:
	TOOL_ASN1_COMPILE  TOOL_CAP_MKDB  TOOL_CAT  TOOL_CKSUM  TOOL_COMPILE_ET
	TOOL_CONFIG  TOOL_CRUNCHGEN  TOOL_CTAGS  TOOL_DB  TOOL_EQN  TOOL_FGEN
	TOOL_GENCAT  TOOL_GROFF  TOOL_HEXDUMP  TOOL_INDXBIB  TOOL_INSTALLBOOT
	TOOL_INSTALL_INFO  TOOL_M4  TOOL_MAKEFS  TOOL_MAKEINFO  TOOL_MAKEWHATIS
	TOOL_MDSETIMAGE  TOOL_MENUC  TOOL_MKCSMAPPER  TOOL_MKESDB
	TOOL_MKLOCALE  TOOL_MKMAGIC  TOOL_MKTEMP  TOOL_MSGC  TOOL_MTREE
	TOOL_PAX  TOOL_PIC  TOOL_PREPMKBOOTIMAGE  TOOL_PWD_MKDB  TOOL_REFER
	TOOL_ROFF_ASCII  TOOL_ROFF_DVI  TOOL_ROFF_HTML  TOOL_ROFF_PS
	TOOL_ROFF_RAW  TOOL_RPCGEN  TOOL_SOELIM  TOOL_SUNLABEL  TOOL_TBL
	TOOL_UUDECODE  TOOL_VGRIND  TOOL_ZIC

For each, provide default in <bsd.sys.mk> of the form:
	TOOL_FOO?=	foo
and for the ${USETOOLS}=="yes" case in <bsd.own.mk>, provide override:
	TOOL_FOO=	${TOOLDIR}/bin/${_TOOL_PREFIX}foo

Document all of these in bsd.README.

This cleans up a chunk of potential (and actual) namespace collision
within our build infrastructure, as well as improves consistency in
the share/mk documentation and provision of appropriate defaults for
each of these variables.
2003-07-10 10:33:58 +00:00
lukem c5fa449210 - add makesrctars and sourcesets targets (latter just invokes former)
- use ${HOST_SH} instead of sh
2003-05-10 06:08:12 +00:00
lukem 4b3798a679 In "sets" target, ensure ${RELEASEDIR}/${MACHINE}/binary/sets exists.
Fixes [toolchain/20120] from Lubomir Sedlacik.
2003-01-30 12:16:18 +00:00
veego 3b63e47464 Check if DESTDIR is defined before checking for non empty DESTDIR 2003-01-12 18:51:26 +00:00
lukem a250e57c96 Install release files under "${RELEASEDIR}/${MACHINE}/..." instead of
"${RELEASEDIR}/...".

${RELEASEDIR} is never cleaned , and ${RELEASEDIR}/${MACHINE} is only
cleaned if UPDATE is not defined.
2003-01-03 15:34:30 +00:00
lukem a4a6515a36 Always call maketars (and subsequently pax) with -N ${NETBSDSRCDIR}/etc,
so that we always use the user & group databases from there rather than
the host systems.
2002-12-19 12:33:10 +00:00