Commit Graph

52 Commits

Author SHA1 Message Date
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
lukem
e629b6c337 maketars:
- add "-N etcdir", to be used for pax & mtree -N.  defaults to ${DESTDIR}/etc

Makefile:
- if UNPRIVED, call maketars with "-N ${NETBSDSRCDIR}/etc", so that
  "make UNPRIVED= DESTDIR=/foo installsets" can work with an empty
  ${DESTDIR}/etc. (i.e, after a make build without install-etc-files)
2002-12-19 06:21:45 +00:00
lukem
e00ddd7131 If ${DESTDIR}="", ensure `maketars -d ...' is called with an argument ("/").
Fixes problem noted by simonb@
2002-12-16 00:30:39 +00:00
lukem
d5e024c747 Add "installsets" target, which copies the sets ${INSTALLSETS} from
${DESTDIR} into ${INSTALLDIR}.
INSTALLDIR is mandatory.
INSTALLSETS is optional, and if its not given, the following sets are used:
	base comp games man misc text
2002-12-12 08:54:25 +00:00
lukem
94989d34ca switch from checking USE_NEW_TOOLCHAIN == yes to TOOLCHAIN_MISSING != yes,
and don't bother with tc.old any more
2002-09-19 22:04:34 +00:00
lukem
dc4928f26f checkflist:
- add "-M metalog".  if metalog starts with "${DESTDIR}/", it
	  will be skipped in the flist check, to prevent unnecessary
	  warnings about extraneous ./METALOG
	- if the diff returned a non-zero exit code, print a warning message,
	  and for the default diff output, print a blurb describing the
	  meaning of the output.

Makefile:
	- call checkflist with "-M ${METALOG}" if UNPRIVED
	- run "${MAKE} checkflist" if ${DESTDIR} != ""

 NOTE:	this change will prevent maketars from running if the
	sets lists are out of date.  This is intentional.
	Better to fail than to build tar files with missing files.
2002-07-09 16:08:38 +00:00
lukem
ed8e534c7e yet another distrib overhaul:
- move guts of distrib/Makefile.inc to distrib/common/Makefile.distrib
  (fixes problem caused by implicit include of ../Makefile.inc in certain
  submake conditions triggered by makefiles not yet in tree)
- removed mkdir of ${RELEASEDIR}/*;  rely upon "snap_pre" target of
  etc/Makefile to create all the release directories
- renamed RELINSTALL to RELEASE_INSTALL
- renamed FLOPPYINSTDIR to FLOPPY_RELEASEDIR
- renamed MDSETDIR to MDSET_RELEASEDIR
- removed ITARGET
- move release target from top level to appropriate subdirectory
- ensure release target has correct depends
- replace miniroot's IMAGE_MD_POST with common/Makefile.image IMAGEPOSTBUILD
- Makefile.image: add realall: ${IMAGE}
2002-05-02 18:02:14 +00:00
sommerfeld
dbe42df9af Insert .WAIT between maketars and makesums in sets: dependancy.
An explicit makesums: maketars dependancy was not used because a
release engineer might want to regenerate the sums only and not the
tarballs; there's no explicit dependancy tracking here or elsewhere
between the input files and the output tarballs so everything gets
rebuild always.

XXX The existing "maketars" script is also not friendly to parallel
builds -- all of the sets files should be visible to the makefile so
they can be built in parallel.
2002-04-29 05:02:57 +00:00
lukem
9e5598221a replace _SRC_TOP_ with NETBSDSRCDIR, since the latter is the "public" version 2002-04-26 15:50:21 +00:00
lukem
c05d3b41d1 call maketars with ${MAKETARSETS}; if empty (default), all sets are built 2002-04-13 12:38:31 +00:00
lukem
501746db1f use ${MAKESUMS} from ../Makefile.inc 2002-04-11 06:11:10 +00:00
bjh21
85a0df2127 Remove a spurious crypto-related comment that should have gone long ago. 2002-03-31 15:49:58 +00:00
bjh21
080ea4721e Set CKSUM in the environment when calling makesums. 2002-03-31 15:49:20 +00:00
lukem
6cc7ab3543 Pull in <bsd.sys.mk> so that defaults for $PAX, $MTREE (etc) are
provided, which is required for USETOOLS=no because <bsd.own.mk>
doesn't set those in that case.  Should fix [toolchain/16009]
2002-03-22 23:15:32 +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
lukem
c71e0408fb Fixes to allow unprivileged building of the binary tar files to
contain the correct permissions.

Makefile:
- set SETSENV to the list of variables we wish to pass to each shell
  script and use that, rather than duplicating the effort below
- call maketars with "-M ${METALOG}" if UNPRIVED is set.

getdirs.awk:
- takes a list of filenames and outputs the list along with all the
  directories used by those filenames

maketars:
- support "-M metalog"
- merge etc/mtree/NetBSD.dist with the "-M metalog" for use in the tgz build
- for a given set, find the union between the set list and the metalog
  generated above and use that as the list of files to ${PAX} up as the
  tgz file.
2002-02-27 10:51:47 +00:00
tron
24a6d142c3 First step of supporting XFree86 4.x binary sets:
- Recognize version dependent X11 lists files.
- Move all files which only belong to XFree86 3.3.6 in lists for version 3.
2002-02-11 16:23:17 +00:00
mrg
4ea659d3c8 add a checkflist-x11 target 2002-01-01 07:59:32 +00:00
thorpej
b98949efa8 Use the logic in bsd.own.mk to figure out the toolchain format,
and to convert MACHINE_ARCH to a CPU.  Make this cross-build
friendly by specifying MACHINE, MACHINE_ARCH, and MAKE in the
makeflist/checkflist environment.
2001-11-24 02:54:50 +00:00