History log of /openbsd-current/Makefile
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.136 05-Apr-2020 deraadt

minor cranking of libraries exposes a problem, details too long to explain.
Run ldconfig -R after installing base libraries, and once again after
installing gnu libraries.
ok kettenis


# 1.135 21-Dec-2019 espie

a few depend:-related thingies that were still in.

okay millert@, tb@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE
# 1.134 05-Jul-2017 espie

bye bye depends
okay tb@ deraadt@


# 1.133 14-Apr-2017 espie

mark newish phony targets as phony.
okay tb@


Revision tags: OPENBSD_6_1_BASE
# 1.132 29-Jan-2017 rpe

Ensure the build user can write to the GLOBAL_AUTOCONF_CACHE file by
creating or truncating it with the proper ownership and permissions.

OK tb@


# 1.131 19-Nov-2016 tb

Enable builds with a dedicated user that cannot elevate privileges or write
to /usr/src or /usr/xenocara.

Change /usr/{,x}obj to owner build:wobj with mode 770 and install the
systemwide makefiles before starting a build. The root of the noperm fs
containing DESTDIR should also be owned by build:wobj.

Developers will need to add their users to group wobj to be able to write
to /usr/{,x}obj/.

"push forward" deraadt; testing, input & ok rpe


# 1.130 18-Oct-2016 tb

Swap 'make cleandir' and 'make includes' for real.
Should have been part of commitid uHRFWpwUBjIz0UuR.

Original message:

Move libcrypto, librpcsvc and gnu/usr.bin/cc/include from RDIRS to PRDIRS,
and add prereq targets, so some header files are generated by BUILDUSER
during 'make prereq' instead of by root during 'make includes'.

Switch the order of 'make cleandir' and 'make includes' during 'make build'
so we don't generate many files twice.

Except for some machine@ symlinks from ${MACHINE}/stand, /usr/obj is now
clean from files generated by root during 'make build'. Those will be
cleaned up in a second step.

help, testing & ok deraadt, input from natano, further testing rpe


# 1.129 06-Oct-2016 natano

Print the root check error message to stderr. While there add the name
of the target to the message to be more descriptive.

ok deraadt tb


# 1.128 06-Oct-2016 tb

Simplify the 'make includes' step in 'make build': move the privdrop
bit up into 'make includes', so the latter benefits from that idiom
as well. Sprinkle a few 'exec' while there.

ok natano


# 1.127 05-Oct-2016 natano

De-escalate to an unprivileged users during 'make build' and 'make release'.

- If you start make build as root, everything will be run as root.
Nothing new here. New is, that you can set BUILDUSER=somebody and the
unprived parts will be run as somebody.
- If you start make build with sudo, the unprived parts will be run as
the real user (meaning YOU). You can still set BUILDUSER=somebody and
the uprived parts will run as somebody.
- If you start make build as a normal user it will error out. "I'm sorry
Dave."

Note that DESTDIR must be on partition with the noperm flag set for make
release to work correctly as an unprivileged user.

idea and ok deraadt
input and ok tb ratchov millert
rpe, halex and probably others where part of the conversation to make
this happen, thanks!


# 1.126 04-Oct-2016 deraadt

stop supporting SUDO builds. Something better is coming, so let's
align everyone who is using SUDO builds towards the new strategy.
ok natano


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.125 23-Aug-2015 deraadt

must make obj in etc as well; the etc.*/Makefile stubs depend upon it.


Revision tags: OPENBSD_5_8_BASE
# 1.124 02-Jun-2015 deraadt

missing " spotted by Kyle Milz


Revision tags: OPENBSD_5_7_BASE
# 1.123 26-Aug-2014 rpe

Create etc set during 'make build' and embed it in base set to make
it available during a regular install or upgrade so that it doesn't
need to be independently fetched.

Idea, directions and OK deraadt@
Feedback and Ok halex@ and aja@


Revision tags: OPENBSD_5_6_BASE
# 1.122 09-Jul-2014 espie

do locatedb as part of the build process
"works for me" deraadt@


# 1.121 22-Apr-2014 reyk

Remove KERBEROS5 from the Makefiles (except ssh for now, where it is
already manually disabled).

ok deraadt@


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.120 23-Jul-2013 todd

enter keberosV/doc to resurrect heimdal.info for real this time
ok deraadt@


# 1.119 17-Jun-2013 robert

switch to new kerberosV directory layout


Revision tags: OPENBSD_5_3_BASE
# 1.118 29-Aug-2012 espie

remove ancient cruft.
okay deraadt@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.117 17-Sep-2011 pirofti

Document proper cross-tools command to run, specially when working on a
new port.

Okay miod@


Revision tags: OPENBSD_5_0_BASE
# 1.116 24-Apr-2011 guenther

Head off attempts to do 'make build' with DESTDIR set, as it doesn't work

ok sthen@, deraadt@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.115 23-Mar-2010 espie

install mtree always
okay deraadt@


Revision tags: OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.114 02-Dec-2005 deraadt

do not enter lkm


# 1.113 16-Sep-2005 jmc

use shell-neutral language (in a comment);

from ray lai;
ok krw@


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE
# 1.112 09-Jan-2005 espie

move cross-stuff into its own file.
okay mickey@, niklas@


# 1.111 09-Jan-2005 espie

Synch with bsd.own.mk: USE_GCC3 is always set now, so we must set it to no
explicitly.


# 1.110 09-Jan-2005 espie

i386 is gcc3 for cross too.


# 1.109 25-Dec-2004 grange

We don't need cross-{nm,size} anymore, our host tools are good enough.

mickey ok a long time ago.


# 1.108 30-Nov-2004 mickey

need to pass MAKEOBJDIR to prereq and includes


# 1.107 26-Oct-2004 mickey

match cross-binutils-new selection w/ bsd.own.mk and add hppa64 where needed


# 1.106 21-Oct-2004 grange

Move the cross glue from the root makefile to the toolchain's,
allowing bulding cross-tools with new binutils and gcc3.

ok drahn@ brad@ espie@


# 1.105 16-Oct-2004 grange

cross-nm doesn't need TARGET_MACHINE_ARCH anymore.

ok mickey@


Revision tags: OPENBSD_3_6_BASE
# 1.104 06-Aug-2004 pefo

fix/add sgi


# 1.103 03-May-2004 drahn

Remove OpenBSD/pegaos, this has been announced before but delayed until
the tree was stable. No point in code supporting a company which screws
its employees being in the OpenBSD tree.


# 1.102 21-Apr-2004 miod

Add luna88k related directories and information to the build infrastructure.

ok deraadt@, millert@, krw@ - mdoc ok jmc@


# 1.101 31-Mar-2004 mickey

repair cross-tools


Revision tags: OPENBSD_3_5_BASE
# 1.100 27-Feb-2004 deraadt

change amd64's MACHINE_ARCH from x86_64 to amd64. There are many many
reasons for this, quite a few of them technical, and not all of them
in response to Intel's broken ia32e crud. The gcc toolchain stays at
x86_64 for now.


# 1.99 01-Feb-2004 brad

- remove sun3
- use "new" ld/gas/etc. for pegasos with cross-compile
- reorder arch/machine names in alpha order

ok drahn@


# 1.98 28-Jan-2004 mickey

amd64 hook ups


# 1.97 14-Jan-2004 brad

add pegasos as a powerpc system for cross-compile target

ok drahn@


# 1.96 05-Jan-2004 mickey

abcomodate cross for the new nm+size


# 1.95 14-Dec-2003 matthieu

Don't go into kerberosV/lib explicitely for now. Nothing to do there.
Ok deraadt@, miod@.


# 1.94 05-Oct-2003 mickey

need to escape the quotes in cross-{lib,bin}


# 1.93 05-Oct-2003 mickey

need to eval the CROSSENV


Revision tags: OPENBSD_3_4_BASE
# 1.92 17-May-2003 millert

Don't build libperl separately in the libs pass, just build it when
we build perl itself. We need perl to run Configure *after* the
other libraries are installed, since Configure looks at what symbols
exist in libc and the other libs. If anfd when other things in the tree
link against libperl we may need to revisit this issue.


# 1.91 14-May-2003 mho

Remove krb4 support.


# 1.90 17-Apr-2003 drahn

Add i386 to list of archs which use binutils.


Revision tags: OPENBSD_3_3_BASE
# 1.89 05-Jan-2003 mickey

enquote flags and opts in cross-env; reported by david krause


Revision tags: OPENBSD_3_2_BASE
# 1.88 17-Sep-2002 miod

Prevent the a.out cross-ld from building rtld too early in the build.


# 1.87 16-Aug-2002 wcobb

- add cross-distrib target to cross-compile the world (except gnu)
- add cross-obj, cross-depend, cross-clean and cross-cleandir targets
- add dependencies between the cross-tools targets
- simplify cross-binutils
- build a cross c++ compiler
- use distribution-etc-root-var in etc for preparing ${CROSSDIR}

ok art@, miod@


# 1.86 11-Aug-2002 art

Let cross-sparc use new bintuils.


# 1.85 09-Jun-2002 todd

knf


# 1.84 15-May-2002 mickey

install cross-links for objdumpc,objcopy,strings


Revision tags: OPENBSD_3_1_BASE
# 1.83 22-Feb-2002 art

Change the regression-tests target to do depend before running regress.


# 1.82 03-Jan-2002 art

Only go into regress on "obj", "clean" and "cleandir".


Revision tags: OPENBSD_3_0_BASE
# 1.81 25-Sep-2001 espie

a bit too soon.


# 1.80 25-Sep-2001 espie

link gnu files in.


# 1.79 17-Sep-2001 art

This change (and a little change for alpha gcc config) allowed me to build
cross tools and kernels with those cross tools on all archs except mvme88k
and hppa.

1. Pass MACHINE_ARCH, not MACHINE to TARGET_MACHINE_ARCH when building old
binutils.
2. Instead of using the "intelligent" cpp voodoo to find out MACHINE_ARCH
from MACHINE (which has never worked correctly for sparc, 68k and
recently it broke for powerpc), we have a table of machine->machine_arch
translations. It's easier to modify one table once per arch instead of
juggling for a few hours every time some include files change.
3. Remove some sparc64 cruft.
4. Set MACHINE and MACHINE_ARCH in cross-env, otherwise the kernel will
try to build libkern for the host.

Please note that this doesn't allow you to do complete builds. I haven't
even tested cross-lib. Only kernel builds have been tested.


# 1.78 14-Sep-2001 fgsch

Cross-tools changes:

o Enable c++.
o Add missing lib/apache/xml/include directory.
o Use lorder from /usr/bin.

art@, mickey@ ok.


# 1.77 07-Sep-2001 mickey

put quotes on CFLAGS in binutils-new


# 1.76 07-Sep-2001 mickey

don't forget to make depend for croos-binutils-old sub-targets, dunno how it got broken but let's blame art since he commits into cross-tools all by himself all the time and breaks it


# 1.75 03-Sep-2001 art

new target: cross-env that prints all environment variables that
need to be set for cross building:
cd /usr/src/sbin/init
make `cd /usr/src ; make TARGET=sparc64 cross-env`

Also, xcpp was wrong, cccp is wrong, cpp is probably better.


# 1.74 01-Sep-2001 drahn

powerpc -> macppc rename changes


# 1.73 31-Aug-2001 art

Use more brute force when making links for binutils.
We simply make sure that there always is a TARGET_CANON-X and an X
regardless of which one is the regular file and which one is the symlink.

(this is for cross-tools)


# 1.72 31-Aug-2001 art

cccp, not xcpp


# 1.71 31-Aug-2001 brad

more leftover arc/pmax stuff
--
Ok'd by art@


# 1.70 31-Aug-2001 art

Magic to make sparc64 cross-tools not bomb in the first 5 minutes
of building cross-tools.


# 1.69 26-Jun-2001 brad

bye bye MIPS related bits and pieces.
--
Ok'd by deraadt@


# 1.68 26-Jun-2001 hin

Build kerberosV when enabled.


# 1.67 24-Jun-2001 niklas

yet another old M: missing SUDO i includes target


# 1.66 14-May-2001 espie

Speed-up:
- remove extra subshells;
- use exec on terminal commands, avoiding dangling shells that don't
control anything.

More correct:
- use && some more;
- remove `-' in front of includes, so that failures WILL fail...

Okay millert@, deraadt@


Revision tags: OPENBSD_2_9_BASE
# 1.65 28-Mar-2001 todd

unbreak broken cross-binutils-new target (missing ')' )


# 1.64 27-Jan-2001 niklas

Fix cross-tools symlinks for old toolchain too


# 1.63 27-Jan-2001 niklas

Improve the cross-tools targets so that it now can at least finish
pmax libs. I have yet to test that they actually work though.


# 1.62 17-Jan-2001 mickey

at least cross-gcc was broken, can't test cross-binutils, but i bet they are broken too


# 1.61 15-Jan-2001 art

Random fixes for cross builds. (especiaslly new binutils)


# 1.60 30-Dec-2000 angelos

Truncate the autoconf cache, rather than outright deleting it (PR 1488)


# 1.59 12-Dec-2000 art

Fix cross-binutils-new.
Pass the same --disable-foo flags as we do in gnu/usr.bin/binutils
This allows me to build alpha -> alpha binutils (Don't ask).


Revision tags: OPENBSD_2_8_BASE
# 1.58 03-Sep-2000 espie

Boring... Add :L modifier to all tweakable variables tests.

Closes PR 1246


# 1.57 01-Aug-2000 millert

Only install man pages once. Previously, they would be installed
during the lib install stage too.


Revision tags: OPENBSD_2_7_BASE
# 1.56 21-Apr-2000 millert

Don't need to explicitly make perl's config.sh, the beforedepend target
will do that.


# 1.55 09-Apr-2000 deraadt

using just ldconfig is a bad idea, use -R


# 1.54 10-Mar-2000 niklas

A more normal way of building kerberos, faster, and it works with SUDO


# 1.53 01-Mar-2000 todd

rm dup


# 1.52 22-Dec-1999 mickey

repair a few breakages in cross-tools caused by switch to egcs and new lorder


# 1.51 26-Nov-1999 millert

Build libperl with the other libs


Revision tags: OPENBSD_2_6_BASE
# 1.50 27-Sep-1999 deraadt

I mean, I hate that prereq *garbage*. but then you guys had to break
make includes, too, by not fixing it. Gee, thanks.


Revision tags: OPENBSD_2_5_BASE
# 1.49 02-Mar-1999 niklas

Provide a method to do prerequisites needed before
installation of includes can happen. Do these before and not run via ${SUDO}.


# 1.48 02-Feb-1999 imp

Don't do two ldconfigs on mips if we're not building kerberos.
Many cross-tools cleanups:
o remove mkdirs from the front of each of the rules, but instead have them
depend on new target cross-dirs, which makes all the directories
o Add new target, cross-dirs, to create the directories and symlinks. Before
the symlinks in /usr/cross/$TARGET/blah-unknown-openbsd2.4 were
never right.
o KLUDGE for arc/pmax. MACHINE_ARCH is mips for these machines, but they
differ from other machines in that they use mipsel-unknown-openbsd
for their gnu config string (failure to have the el causes big endian tools
to be built).

These fixes allow me to build a usable toolchain and libraries for
OpenBSD/arc on FreeBSD/i386 (with a few fixes to FreeBSD as well). I
can also build a bootable kernel on the FreeBSD box.

I'd like to add a cross-build target shortly that will build
cross-tools, then will build and install stuff in DESTDIR with the
cross tools living in ${DESTDIR}/usr/cross/${TARGET}.


# 1.47 02-Feb-1999 imp

Make cross targets more robust:
o Don't build kerberos if KERBEROS==no
o Use the lorder in the target tree, rather than relying on the
system's lorder to do the right thing in a cross build environment.


# 1.46 24-Jan-1999 niklas

make depend stuff in cross-*.
Also build the kerberos libs for the cross environment


# 1.45 24-Jan-1999 art

pass SUDO to make build in kerberosIV. From: jakob@crt.se


# 1.44 08-Jan-1999 millert

kill local change that should not have gotten committed in last change


# 1.43 07-Jan-1999 millert

make cleandir needs to run run as well; marc@snafu.org


# 1.42 30-Oct-1998 millert

set DESTDIR to be empty, not '/' when doing 'make distrib-dirs' so we don't get /etc/foo, not //etc/foo


Revision tags: OPENBSD_2_4_BASE
# 1.41 30-Sep-1998 art

add a note about building kernel before "make build"


# 1.40 07-Sep-1998 niklas

Optionally use make SUDO=sudo build to build as non-root


# 1.39 28-Aug-1998 mickey

fix cross-lib install


# 1.38 18-May-1998 mickey

insert a note about the cross-tools target


# 1.37 18-May-1998 mickey

more links for binutils-new; hmm shouldn't this be single commit w/ the prev one?


# 1.36 18-May-1998 mickey

use .CURDIR-relative paths navigating within source tree.
that is, instead of 'cd lib' use 'cd ${.CURDIR}/lib'.
PS: what about strings and gdb for cross-binutils-old?
those guys are present in the '-new target.


# 1.35 18-May-1998 mickey

setup links for new binutils in an old binutils cosistant way


# 1.34 17-May-1998 niklas

Revert to 1.32, in the future CROSSENV will be used with different
MAKEOBJDIR values


# 1.33 17-May-1998 mickey

include MAKEOBJDIR definition into CROSSENV


# 1.32 16-May-1998 niklas

cross-tools cleanup + build the libs too


# 1.31 14-May-1998 niklas

cross-gcc improvement, install cc link, and a nice cpp


# 1.30 11-May-1998 niklas

Build nm ok for cross-envs


# 1.29 11-May-1998 niklas

Add a bunch of cross-a.out targets


# 1.28 04-May-1998 mickey

use binutils for hppa


# 1.27 25-Apr-1998 niklas

Improved cross-compilation targets, still need work


Revision tags: OPENBSD_2_3_BASE
# 1.26 18-Mar-1998 mickey

cross-gcc: make things work, finally


# 1.25 17-Mar-1998 mickey

cross-tools: use /bin/sh to run configure, add -I for mips-*


# 1.24 15-Feb-1998 niklas

A new rule cross-gas for building an a.out cross assembler, i.e. *not* from
the new binutils, but from the old gnu/usr.bin/gas sources. Not yet called
from cross-tools for any architectures.


# 1.23 09-Dec-1997 niklas

on mips systems, ldconfig after kerberos too as new libs get installed


Revision tags: OPENBSD_2_2_BASE
# 1.22 21-Sep-1997 deraadt

$OpenBSD$


# 1.21 06-Aug-1997 deraadt

attempt to clean/cleandir/obj in distrib


# 1.20 29-Jul-1997 kstailey

add braces to variable


# 1.19 29-Jul-1997 kstailey

Changed the rules.
The variable is now GLOBAL_AUTOCONF_CACHE. You must set it to the name
of the cache file to use. Ether "setenv GLOBAL_AUTOCONF_CACHE /var/tmp/foo"
or add it to /etc/mk.conf


# 1.18 29-Jul-1997 kstailey

remove global cache at start of "make build" if GLOBAL_CACHE option is in effect


Revision tags: OPENBSD_2_1_BASE
# 1.17 19-Apr-1997 millert

Changed ``defined(KERBEROS)'' to ``(${KERBEROS} == "yes")''
Same change doen for SKEY, YP, and KERBEROS5. This allows
people to override those setting in /etc/mk.conf.


# 1.16 18-Apr-1997 deraadt

doc recommended build process somewhat


# 1.15 28-Feb-1997 niklas

First stab at a target for making cross-development tools:
try "make TARGET=machine cross-tools" and you should get a little
hierarchy in /usr/cross/<machine>. This is probably not in its final
shape yet ;-)


# 1.14 27-Feb-1997 briggs

We don't need this in /usr/src/Makefile. Call me a prude, if you like.


# 1.13 13-Dec-1996 deraadt

ldconfig hack for the mips


Revision tags: OPENBSD_2_0_BASE
# 1.12 02-Jun-1996 tholo

Don't install kerberosIV headers twice when doing "make build"


# 1.11 02-Jun-1996 tholo

kerberosIV now understand "includes" target too


# 1.10 18-May-1996 deraadt

allow "make includes" to work from here too


# 1.9 14-May-1996 deraadt

when making distributions, make sure the include directory gets filled


# 1.8 06-May-1996 deraadt

hard-code the include installation path (mostly for speed)


# 1.7 06-May-1996 deraadt

use beforeinstall; includes walks the tree


# 1.6 23-Apr-1996 mickey

sync w/ NetBSD 960418.


# 1.5 02-Mar-1996 tholo

Build lkm directory by default


# 1.4 28-Jan-1996 tholo

Do not build KerberosIV if Kerberos has been disabled in <bsd.own.mk>


# 1.3 17-Dec-1995 deraadt

domestic goes away, kerberosIV always exists


# 1.2 16-Dec-1995 tholo

Add support for building kerberosIV


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.135 21-Dec-2019 espie

a few depend:-related thingies that were still in.

okay millert@, tb@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE
# 1.134 05-Jul-2017 espie

bye bye depends
okay tb@ deraadt@


# 1.133 14-Apr-2017 espie

mark newish phony targets as phony.
okay tb@


Revision tags: OPENBSD_6_1_BASE
# 1.132 29-Jan-2017 rpe

Ensure the build user can write to the GLOBAL_AUTOCONF_CACHE file by
creating or truncating it with the proper ownership and permissions.

OK tb@


# 1.131 19-Nov-2016 tb

Enable builds with a dedicated user that cannot elevate privileges or write
to /usr/src or /usr/xenocara.

Change /usr/{,x}obj to owner build:wobj with mode 770 and install the
systemwide makefiles before starting a build. The root of the noperm fs
containing DESTDIR should also be owned by build:wobj.

Developers will need to add their users to group wobj to be able to write
to /usr/{,x}obj/.

"push forward" deraadt; testing, input & ok rpe


# 1.130 18-Oct-2016 tb

Swap 'make cleandir' and 'make includes' for real.
Should have been part of commitid uHRFWpwUBjIz0UuR.

Original message:

Move libcrypto, librpcsvc and gnu/usr.bin/cc/include from RDIRS to PRDIRS,
and add prereq targets, so some header files are generated by BUILDUSER
during 'make prereq' instead of by root during 'make includes'.

Switch the order of 'make cleandir' and 'make includes' during 'make build'
so we don't generate many files twice.

Except for some machine@ symlinks from ${MACHINE}/stand, /usr/obj is now
clean from files generated by root during 'make build'. Those will be
cleaned up in a second step.

help, testing & ok deraadt, input from natano, further testing rpe


# 1.129 06-Oct-2016 natano

Print the root check error message to stderr. While there add the name
of the target to the message to be more descriptive.

ok deraadt tb


# 1.128 06-Oct-2016 tb

Simplify the 'make includes' step in 'make build': move the privdrop
bit up into 'make includes', so the latter benefits from that idiom
as well. Sprinkle a few 'exec' while there.

ok natano


# 1.127 05-Oct-2016 natano

De-escalate to an unprivileged users during 'make build' and 'make release'.

- If you start make build as root, everything will be run as root.
Nothing new here. New is, that you can set BUILDUSER=somebody and the
unprived parts will be run as somebody.
- If you start make build with sudo, the unprived parts will be run as
the real user (meaning YOU). You can still set BUILDUSER=somebody and
the uprived parts will run as somebody.
- If you start make build as a normal user it will error out. "I'm sorry
Dave."

Note that DESTDIR must be on partition with the noperm flag set for make
release to work correctly as an unprivileged user.

idea and ok deraadt
input and ok tb ratchov millert
rpe, halex and probably others where part of the conversation to make
this happen, thanks!


# 1.126 04-Oct-2016 deraadt

stop supporting SUDO builds. Something better is coming, so let's
align everyone who is using SUDO builds towards the new strategy.
ok natano


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.125 23-Aug-2015 deraadt

must make obj in etc as well; the etc.*/Makefile stubs depend upon it.


Revision tags: OPENBSD_5_8_BASE
# 1.124 02-Jun-2015 deraadt

missing " spotted by Kyle Milz


Revision tags: OPENBSD_5_7_BASE
# 1.123 26-Aug-2014 rpe

Create etc set during 'make build' and embed it in base set to make
it available during a regular install or upgrade so that it doesn't
need to be independently fetched.

Idea, directions and OK deraadt@
Feedback and Ok halex@ and aja@


Revision tags: OPENBSD_5_6_BASE
# 1.122 09-Jul-2014 espie

do locatedb as part of the build process
"works for me" deraadt@


# 1.121 22-Apr-2014 reyk

Remove KERBEROS5 from the Makefiles (except ssh for now, where it is
already manually disabled).

ok deraadt@


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.120 23-Jul-2013 todd

enter keberosV/doc to resurrect heimdal.info for real this time
ok deraadt@


# 1.119 17-Jun-2013 robert

switch to new kerberosV directory layout


Revision tags: OPENBSD_5_3_BASE
# 1.118 29-Aug-2012 espie

remove ancient cruft.
okay deraadt@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.117 17-Sep-2011 pirofti

Document proper cross-tools command to run, specially when working on a
new port.

Okay miod@


Revision tags: OPENBSD_5_0_BASE
# 1.116 24-Apr-2011 guenther

Head off attempts to do 'make build' with DESTDIR set, as it doesn't work

ok sthen@, deraadt@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.115 23-Mar-2010 espie

install mtree always
okay deraadt@


Revision tags: OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.114 02-Dec-2005 deraadt

do not enter lkm


# 1.113 16-Sep-2005 jmc

use shell-neutral language (in a comment);

from ray lai;
ok krw@


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE
# 1.112 09-Jan-2005 espie

move cross-stuff into its own file.
okay mickey@, niklas@


# 1.111 09-Jan-2005 espie

Synch with bsd.own.mk: USE_GCC3 is always set now, so we must set it to no
explicitly.


# 1.110 09-Jan-2005 espie

i386 is gcc3 for cross too.


# 1.109 25-Dec-2004 grange

We don't need cross-{nm,size} anymore, our host tools are good enough.

mickey ok a long time ago.


# 1.108 30-Nov-2004 mickey

need to pass MAKEOBJDIR to prereq and includes


# 1.107 26-Oct-2004 mickey

match cross-binutils-new selection w/ bsd.own.mk and add hppa64 where needed


# 1.106 21-Oct-2004 grange

Move the cross glue from the root makefile to the toolchain's,
allowing bulding cross-tools with new binutils and gcc3.

ok drahn@ brad@ espie@


# 1.105 16-Oct-2004 grange

cross-nm doesn't need TARGET_MACHINE_ARCH anymore.

ok mickey@


Revision tags: OPENBSD_3_6_BASE
# 1.104 06-Aug-2004 pefo

fix/add sgi


# 1.103 03-May-2004 drahn

Remove OpenBSD/pegaos, this has been announced before but delayed until
the tree was stable. No point in code supporting a company which screws
its employees being in the OpenBSD tree.


# 1.102 21-Apr-2004 miod

Add luna88k related directories and information to the build infrastructure.

ok deraadt@, millert@, krw@ - mdoc ok jmc@


# 1.101 31-Mar-2004 mickey

repair cross-tools


Revision tags: OPENBSD_3_5_BASE
# 1.100 27-Feb-2004 deraadt

change amd64's MACHINE_ARCH from x86_64 to amd64. There are many many
reasons for this, quite a few of them technical, and not all of them
in response to Intel's broken ia32e crud. The gcc toolchain stays at
x86_64 for now.


# 1.99 01-Feb-2004 brad

- remove sun3
- use "new" ld/gas/etc. for pegasos with cross-compile
- reorder arch/machine names in alpha order

ok drahn@


# 1.98 28-Jan-2004 mickey

amd64 hook ups


# 1.97 14-Jan-2004 brad

add pegasos as a powerpc system for cross-compile target

ok drahn@


# 1.96 05-Jan-2004 mickey

abcomodate cross for the new nm+size


# 1.95 14-Dec-2003 matthieu

Don't go into kerberosV/lib explicitely for now. Nothing to do there.
Ok deraadt@, miod@.


# 1.94 05-Oct-2003 mickey

need to escape the quotes in cross-{lib,bin}


# 1.93 05-Oct-2003 mickey

need to eval the CROSSENV


Revision tags: OPENBSD_3_4_BASE
# 1.92 17-May-2003 millert

Don't build libperl separately in the libs pass, just build it when
we build perl itself. We need perl to run Configure *after* the
other libraries are installed, since Configure looks at what symbols
exist in libc and the other libs. If anfd when other things in the tree
link against libperl we may need to revisit this issue.


# 1.91 14-May-2003 mho

Remove krb4 support.


# 1.90 17-Apr-2003 drahn

Add i386 to list of archs which use binutils.


Revision tags: OPENBSD_3_3_BASE
# 1.89 05-Jan-2003 mickey

enquote flags and opts in cross-env; reported by david krause


Revision tags: OPENBSD_3_2_BASE
# 1.88 17-Sep-2002 miod

Prevent the a.out cross-ld from building rtld too early in the build.


# 1.87 16-Aug-2002 wcobb

- add cross-distrib target to cross-compile the world (except gnu)
- add cross-obj, cross-depend, cross-clean and cross-cleandir targets
- add dependencies between the cross-tools targets
- simplify cross-binutils
- build a cross c++ compiler
- use distribution-etc-root-var in etc for preparing ${CROSSDIR}

ok art@, miod@


# 1.86 11-Aug-2002 art

Let cross-sparc use new bintuils.


# 1.85 09-Jun-2002 todd

knf


# 1.84 15-May-2002 mickey

install cross-links for objdumpc,objcopy,strings


Revision tags: OPENBSD_3_1_BASE
# 1.83 22-Feb-2002 art

Change the regression-tests target to do depend before running regress.


# 1.82 03-Jan-2002 art

Only go into regress on "obj", "clean" and "cleandir".


Revision tags: OPENBSD_3_0_BASE
# 1.81 25-Sep-2001 espie

a bit too soon.


# 1.80 25-Sep-2001 espie

link gnu files in.


# 1.79 17-Sep-2001 art

This change (and a little change for alpha gcc config) allowed me to build
cross tools and kernels with those cross tools on all archs except mvme88k
and hppa.

1. Pass MACHINE_ARCH, not MACHINE to TARGET_MACHINE_ARCH when building old
binutils.
2. Instead of using the "intelligent" cpp voodoo to find out MACHINE_ARCH
from MACHINE (which has never worked correctly for sparc, 68k and
recently it broke for powerpc), we have a table of machine->machine_arch
translations. It's easier to modify one table once per arch instead of
juggling for a few hours every time some include files change.
3. Remove some sparc64 cruft.
4. Set MACHINE and MACHINE_ARCH in cross-env, otherwise the kernel will
try to build libkern for the host.

Please note that this doesn't allow you to do complete builds. I haven't
even tested cross-lib. Only kernel builds have been tested.


# 1.78 14-Sep-2001 fgsch

Cross-tools changes:

o Enable c++.
o Add missing lib/apache/xml/include directory.
o Use lorder from /usr/bin.

art@, mickey@ ok.


# 1.77 07-Sep-2001 mickey

put quotes on CFLAGS in binutils-new


# 1.76 07-Sep-2001 mickey

don't forget to make depend for croos-binutils-old sub-targets, dunno how it got broken but let's blame art since he commits into cross-tools all by himself all the time and breaks it


# 1.75 03-Sep-2001 art

new target: cross-env that prints all environment variables that
need to be set for cross building:
cd /usr/src/sbin/init
make `cd /usr/src ; make TARGET=sparc64 cross-env`

Also, xcpp was wrong, cccp is wrong, cpp is probably better.


# 1.74 01-Sep-2001 drahn

powerpc -> macppc rename changes


# 1.73 31-Aug-2001 art

Use more brute force when making links for binutils.
We simply make sure that there always is a TARGET_CANON-X and an X
regardless of which one is the regular file and which one is the symlink.

(this is for cross-tools)


# 1.72 31-Aug-2001 art

cccp, not xcpp


# 1.71 31-Aug-2001 brad

more leftover arc/pmax stuff
--
Ok'd by art@


# 1.70 31-Aug-2001 art

Magic to make sparc64 cross-tools not bomb in the first 5 minutes
of building cross-tools.


# 1.69 26-Jun-2001 brad

bye bye MIPS related bits and pieces.
--
Ok'd by deraadt@


# 1.68 26-Jun-2001 hin

Build kerberosV when enabled.


# 1.67 24-Jun-2001 niklas

yet another old M: missing SUDO i includes target


# 1.66 14-May-2001 espie

Speed-up:
- remove extra subshells;
- use exec on terminal commands, avoiding dangling shells that don't
control anything.

More correct:
- use && some more;
- remove `-' in front of includes, so that failures WILL fail...

Okay millert@, deraadt@


Revision tags: OPENBSD_2_9_BASE
# 1.65 28-Mar-2001 todd

unbreak broken cross-binutils-new target (missing ')' )


# 1.64 27-Jan-2001 niklas

Fix cross-tools symlinks for old toolchain too


# 1.63 27-Jan-2001 niklas

Improve the cross-tools targets so that it now can at least finish
pmax libs. I have yet to test that they actually work though.


# 1.62 17-Jan-2001 mickey

at least cross-gcc was broken, can't test cross-binutils, but i bet they are broken too


# 1.61 15-Jan-2001 art

Random fixes for cross builds. (especiaslly new binutils)


# 1.60 30-Dec-2000 angelos

Truncate the autoconf cache, rather than outright deleting it (PR 1488)


# 1.59 12-Dec-2000 art

Fix cross-binutils-new.
Pass the same --disable-foo flags as we do in gnu/usr.bin/binutils
This allows me to build alpha -> alpha binutils (Don't ask).


Revision tags: OPENBSD_2_8_BASE
# 1.58 03-Sep-2000 espie

Boring... Add :L modifier to all tweakable variables tests.

Closes PR 1246


# 1.57 01-Aug-2000 millert

Only install man pages once. Previously, they would be installed
during the lib install stage too.


Revision tags: OPENBSD_2_7_BASE
# 1.56 21-Apr-2000 millert

Don't need to explicitly make perl's config.sh, the beforedepend target
will do that.


# 1.55 09-Apr-2000 deraadt

using just ldconfig is a bad idea, use -R


# 1.54 10-Mar-2000 niklas

A more normal way of building kerberos, faster, and it works with SUDO


# 1.53 01-Mar-2000 todd

rm dup


# 1.52 22-Dec-1999 mickey

repair a few breakages in cross-tools caused by switch to egcs and new lorder


# 1.51 26-Nov-1999 millert

Build libperl with the other libs


Revision tags: OPENBSD_2_6_BASE
# 1.50 27-Sep-1999 deraadt

I mean, I hate that prereq *garbage*. but then you guys had to break
make includes, too, by not fixing it. Gee, thanks.


Revision tags: OPENBSD_2_5_BASE
# 1.49 02-Mar-1999 niklas

Provide a method to do prerequisites needed before
installation of includes can happen. Do these before and not run via ${SUDO}.


# 1.48 02-Feb-1999 imp

Don't do two ldconfigs on mips if we're not building kerberos.
Many cross-tools cleanups:
o remove mkdirs from the front of each of the rules, but instead have them
depend on new target cross-dirs, which makes all the directories
o Add new target, cross-dirs, to create the directories and symlinks. Before
the symlinks in /usr/cross/$TARGET/blah-unknown-openbsd2.4 were
never right.
o KLUDGE for arc/pmax. MACHINE_ARCH is mips for these machines, but they
differ from other machines in that they use mipsel-unknown-openbsd
for their gnu config string (failure to have the el causes big endian tools
to be built).

These fixes allow me to build a usable toolchain and libraries for
OpenBSD/arc on FreeBSD/i386 (with a few fixes to FreeBSD as well). I
can also build a bootable kernel on the FreeBSD box.

I'd like to add a cross-build target shortly that will build
cross-tools, then will build and install stuff in DESTDIR with the
cross tools living in ${DESTDIR}/usr/cross/${TARGET}.


# 1.47 02-Feb-1999 imp

Make cross targets more robust:
o Don't build kerberos if KERBEROS==no
o Use the lorder in the target tree, rather than relying on the
system's lorder to do the right thing in a cross build environment.


# 1.46 24-Jan-1999 niklas

make depend stuff in cross-*.
Also build the kerberos libs for the cross environment


# 1.45 24-Jan-1999 art

pass SUDO to make build in kerberosIV. From: jakob@crt.se


# 1.44 08-Jan-1999 millert

kill local change that should not have gotten committed in last change


# 1.43 07-Jan-1999 millert

make cleandir needs to run run as well; marc@snafu.org


# 1.42 30-Oct-1998 millert

set DESTDIR to be empty, not '/' when doing 'make distrib-dirs' so we don't get /etc/foo, not //etc/foo


Revision tags: OPENBSD_2_4_BASE
# 1.41 30-Sep-1998 art

add a note about building kernel before "make build"


# 1.40 07-Sep-1998 niklas

Optionally use make SUDO=sudo build to build as non-root


# 1.39 28-Aug-1998 mickey

fix cross-lib install


# 1.38 18-May-1998 mickey

insert a note about the cross-tools target


# 1.37 18-May-1998 mickey

more links for binutils-new; hmm shouldn't this be single commit w/ the prev one?


# 1.36 18-May-1998 mickey

use .CURDIR-relative paths navigating within source tree.
that is, instead of 'cd lib' use 'cd ${.CURDIR}/lib'.
PS: what about strings and gdb for cross-binutils-old?
those guys are present in the '-new target.


# 1.35 18-May-1998 mickey

setup links for new binutils in an old binutils cosistant way


# 1.34 17-May-1998 niklas

Revert to 1.32, in the future CROSSENV will be used with different
MAKEOBJDIR values


# 1.33 17-May-1998 mickey

include MAKEOBJDIR definition into CROSSENV


# 1.32 16-May-1998 niklas

cross-tools cleanup + build the libs too


# 1.31 14-May-1998 niklas

cross-gcc improvement, install cc link, and a nice cpp


# 1.30 11-May-1998 niklas

Build nm ok for cross-envs


# 1.29 11-May-1998 niklas

Add a bunch of cross-a.out targets


# 1.28 04-May-1998 mickey

use binutils for hppa


# 1.27 25-Apr-1998 niklas

Improved cross-compilation targets, still need work


Revision tags: OPENBSD_2_3_BASE
# 1.26 18-Mar-1998 mickey

cross-gcc: make things work, finally


# 1.25 17-Mar-1998 mickey

cross-tools: use /bin/sh to run configure, add -I for mips-*


# 1.24 15-Feb-1998 niklas

A new rule cross-gas for building an a.out cross assembler, i.e. *not* from
the new binutils, but from the old gnu/usr.bin/gas sources. Not yet called
from cross-tools for any architectures.


# 1.23 09-Dec-1997 niklas

on mips systems, ldconfig after kerberos too as new libs get installed


Revision tags: OPENBSD_2_2_BASE
# 1.22 21-Sep-1997 deraadt

$OpenBSD$


# 1.21 06-Aug-1997 deraadt

attempt to clean/cleandir/obj in distrib


# 1.20 29-Jul-1997 kstailey

add braces to variable


# 1.19 29-Jul-1997 kstailey

Changed the rules.
The variable is now GLOBAL_AUTOCONF_CACHE. You must set it to the name
of the cache file to use. Ether "setenv GLOBAL_AUTOCONF_CACHE /var/tmp/foo"
or add it to /etc/mk.conf


# 1.18 29-Jul-1997 kstailey

remove global cache at start of "make build" if GLOBAL_CACHE option is in effect


Revision tags: OPENBSD_2_1_BASE
# 1.17 19-Apr-1997 millert

Changed ``defined(KERBEROS)'' to ``(${KERBEROS} == "yes")''
Same change doen for SKEY, YP, and KERBEROS5. This allows
people to override those setting in /etc/mk.conf.


# 1.16 18-Apr-1997 deraadt

doc recommended build process somewhat


# 1.15 28-Feb-1997 niklas

First stab at a target for making cross-development tools:
try "make TARGET=machine cross-tools" and you should get a little
hierarchy in /usr/cross/<machine>. This is probably not in its final
shape yet ;-)


# 1.14 27-Feb-1997 briggs

We don't need this in /usr/src/Makefile. Call me a prude, if you like.


# 1.13 13-Dec-1996 deraadt

ldconfig hack for the mips


Revision tags: OPENBSD_2_0_BASE
# 1.12 02-Jun-1996 tholo

Don't install kerberosIV headers twice when doing "make build"


# 1.11 02-Jun-1996 tholo

kerberosIV now understand "includes" target too


# 1.10 18-May-1996 deraadt

allow "make includes" to work from here too


# 1.9 14-May-1996 deraadt

when making distributions, make sure the include directory gets filled


# 1.8 06-May-1996 deraadt

hard-code the include installation path (mostly for speed)


# 1.7 06-May-1996 deraadt

use beforeinstall; includes walks the tree


# 1.6 23-Apr-1996 mickey

sync w/ NetBSD 960418.


# 1.5 02-Mar-1996 tholo

Build lkm directory by default


# 1.4 28-Jan-1996 tholo

Do not build KerberosIV if Kerberos has been disabled in <bsd.own.mk>


# 1.3 17-Dec-1995 deraadt

domestic goes away, kerberosIV always exists


# 1.2 16-Dec-1995 tholo

Add support for building kerberosIV


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


Revision tags: OPENBSD_6_2_BASE
# 1.134 05-Jul-2017 espie

bye bye depends
okay tb@ deraadt@


# 1.133 14-Apr-2017 espie

mark newish phony targets as phony.
okay tb@


Revision tags: OPENBSD_6_1_BASE
# 1.132 29-Jan-2017 rpe

Ensure the build user can write to the GLOBAL_AUTOCONF_CACHE file by
creating or truncating it with the proper ownership and permissions.

OK tb@


# 1.131 19-Nov-2016 tb

Enable builds with a dedicated user that cannot elevate privileges or write
to /usr/src or /usr/xenocara.

Change /usr/{,x}obj to owner build:wobj with mode 770 and install the
systemwide makefiles before starting a build. The root of the noperm fs
containing DESTDIR should also be owned by build:wobj.

Developers will need to add their users to group wobj to be able to write
to /usr/{,x}obj/.

"push forward" deraadt; testing, input & ok rpe


# 1.130 18-Oct-2016 tb

Swap 'make cleandir' and 'make includes' for real.
Should have been part of commitid uHRFWpwUBjIz0UuR.

Original message:

Move libcrypto, librpcsvc and gnu/usr.bin/cc/include from RDIRS to PRDIRS,
and add prereq targets, so some header files are generated by BUILDUSER
during 'make prereq' instead of by root during 'make includes'.

Switch the order of 'make cleandir' and 'make includes' during 'make build'
so we don't generate many files twice.

Except for some machine@ symlinks from ${MACHINE}/stand, /usr/obj is now
clean from files generated by root during 'make build'. Those will be
cleaned up in a second step.

help, testing & ok deraadt, input from natano, further testing rpe


# 1.129 06-Oct-2016 natano

Print the root check error message to stderr. While there add the name
of the target to the message to be more descriptive.

ok deraadt tb


# 1.128 06-Oct-2016 tb

Simplify the 'make includes' step in 'make build': move the privdrop
bit up into 'make includes', so the latter benefits from that idiom
as well. Sprinkle a few 'exec' while there.

ok natano


# 1.127 05-Oct-2016 natano

De-escalate to an unprivileged users during 'make build' and 'make release'.

- If you start make build as root, everything will be run as root.
Nothing new here. New is, that you can set BUILDUSER=somebody and the
unprived parts will be run as somebody.
- If you start make build with sudo, the unprived parts will be run as
the real user (meaning YOU). You can still set BUILDUSER=somebody and
the uprived parts will run as somebody.
- If you start make build as a normal user it will error out. "I'm sorry
Dave."

Note that DESTDIR must be on partition with the noperm flag set for make
release to work correctly as an unprivileged user.

idea and ok deraadt
input and ok tb ratchov millert
rpe, halex and probably others where part of the conversation to make
this happen, thanks!


# 1.126 04-Oct-2016 deraadt

stop supporting SUDO builds. Something better is coming, so let's
align everyone who is using SUDO builds towards the new strategy.
ok natano


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.125 23-Aug-2015 deraadt

must make obj in etc as well; the etc.*/Makefile stubs depend upon it.


Revision tags: OPENBSD_5_8_BASE
# 1.124 02-Jun-2015 deraadt

missing " spotted by Kyle Milz


Revision tags: OPENBSD_5_7_BASE
# 1.123 26-Aug-2014 rpe

Create etc set during 'make build' and embed it in base set to make
it available during a regular install or upgrade so that it doesn't
need to be independently fetched.

Idea, directions and OK deraadt@
Feedback and Ok halex@ and aja@


Revision tags: OPENBSD_5_6_BASE
# 1.122 09-Jul-2014 espie

do locatedb as part of the build process
"works for me" deraadt@


# 1.121 22-Apr-2014 reyk

Remove KERBEROS5 from the Makefiles (except ssh for now, where it is
already manually disabled).

ok deraadt@


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.120 23-Jul-2013 todd

enter keberosV/doc to resurrect heimdal.info for real this time
ok deraadt@


# 1.119 17-Jun-2013 robert

switch to new kerberosV directory layout


Revision tags: OPENBSD_5_3_BASE
# 1.118 29-Aug-2012 espie

remove ancient cruft.
okay deraadt@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.117 17-Sep-2011 pirofti

Document proper cross-tools command to run, specially when working on a
new port.

Okay miod@


Revision tags: OPENBSD_5_0_BASE
# 1.116 24-Apr-2011 guenther

Head off attempts to do 'make build' with DESTDIR set, as it doesn't work

ok sthen@, deraadt@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.115 23-Mar-2010 espie

install mtree always
okay deraadt@


Revision tags: OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.114 02-Dec-2005 deraadt

do not enter lkm


# 1.113 16-Sep-2005 jmc

use shell-neutral language (in a comment);

from ray lai;
ok krw@


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE
# 1.112 09-Jan-2005 espie

move cross-stuff into its own file.
okay mickey@, niklas@


# 1.111 09-Jan-2005 espie

Synch with bsd.own.mk: USE_GCC3 is always set now, so we must set it to no
explicitly.


# 1.110 09-Jan-2005 espie

i386 is gcc3 for cross too.


# 1.109 25-Dec-2004 grange

We don't need cross-{nm,size} anymore, our host tools are good enough.

mickey ok a long time ago.


# 1.108 30-Nov-2004 mickey

need to pass MAKEOBJDIR to prereq and includes


# 1.107 26-Oct-2004 mickey

match cross-binutils-new selection w/ bsd.own.mk and add hppa64 where needed


# 1.106 21-Oct-2004 grange

Move the cross glue from the root makefile to the toolchain's,
allowing bulding cross-tools with new binutils and gcc3.

ok drahn@ brad@ espie@


# 1.105 16-Oct-2004 grange

cross-nm doesn't need TARGET_MACHINE_ARCH anymore.

ok mickey@


Revision tags: OPENBSD_3_6_BASE
# 1.104 06-Aug-2004 pefo

fix/add sgi


# 1.103 03-May-2004 drahn

Remove OpenBSD/pegaos, this has been announced before but delayed until
the tree was stable. No point in code supporting a company which screws
its employees being in the OpenBSD tree.


# 1.102 21-Apr-2004 miod

Add luna88k related directories and information to the build infrastructure.

ok deraadt@, millert@, krw@ - mdoc ok jmc@


# 1.101 31-Mar-2004 mickey

repair cross-tools


Revision tags: OPENBSD_3_5_BASE
# 1.100 27-Feb-2004 deraadt

change amd64's MACHINE_ARCH from x86_64 to amd64. There are many many
reasons for this, quite a few of them technical, and not all of them
in response to Intel's broken ia32e crud. The gcc toolchain stays at
x86_64 for now.


# 1.99 01-Feb-2004 brad

- remove sun3
- use "new" ld/gas/etc. for pegasos with cross-compile
- reorder arch/machine names in alpha order

ok drahn@


# 1.98 28-Jan-2004 mickey

amd64 hook ups


# 1.97 14-Jan-2004 brad

add pegasos as a powerpc system for cross-compile target

ok drahn@


# 1.96 05-Jan-2004 mickey

abcomodate cross for the new nm+size


# 1.95 14-Dec-2003 matthieu

Don't go into kerberosV/lib explicitely for now. Nothing to do there.
Ok deraadt@, miod@.


# 1.94 05-Oct-2003 mickey

need to escape the quotes in cross-{lib,bin}


# 1.93 05-Oct-2003 mickey

need to eval the CROSSENV


Revision tags: OPENBSD_3_4_BASE
# 1.92 17-May-2003 millert

Don't build libperl separately in the libs pass, just build it when
we build perl itself. We need perl to run Configure *after* the
other libraries are installed, since Configure looks at what symbols
exist in libc and the other libs. If anfd when other things in the tree
link against libperl we may need to revisit this issue.


# 1.91 14-May-2003 mho

Remove krb4 support.


# 1.90 17-Apr-2003 drahn

Add i386 to list of archs which use binutils.


Revision tags: OPENBSD_3_3_BASE
# 1.89 05-Jan-2003 mickey

enquote flags and opts in cross-env; reported by david krause


Revision tags: OPENBSD_3_2_BASE
# 1.88 17-Sep-2002 miod

Prevent the a.out cross-ld from building rtld too early in the build.


# 1.87 16-Aug-2002 wcobb

- add cross-distrib target to cross-compile the world (except gnu)
- add cross-obj, cross-depend, cross-clean and cross-cleandir targets
- add dependencies between the cross-tools targets
- simplify cross-binutils
- build a cross c++ compiler
- use distribution-etc-root-var in etc for preparing ${CROSSDIR}

ok art@, miod@


# 1.86 11-Aug-2002 art

Let cross-sparc use new bintuils.


# 1.85 09-Jun-2002 todd

knf


# 1.84 15-May-2002 mickey

install cross-links for objdumpc,objcopy,strings


Revision tags: OPENBSD_3_1_BASE
# 1.83 22-Feb-2002 art

Change the regression-tests target to do depend before running regress.


# 1.82 03-Jan-2002 art

Only go into regress on "obj", "clean" and "cleandir".


Revision tags: OPENBSD_3_0_BASE
# 1.81 25-Sep-2001 espie

a bit too soon.


# 1.80 25-Sep-2001 espie

link gnu files in.


# 1.79 17-Sep-2001 art

This change (and a little change for alpha gcc config) allowed me to build
cross tools and kernels with those cross tools on all archs except mvme88k
and hppa.

1. Pass MACHINE_ARCH, not MACHINE to TARGET_MACHINE_ARCH when building old
binutils.
2. Instead of using the "intelligent" cpp voodoo to find out MACHINE_ARCH
from MACHINE (which has never worked correctly for sparc, 68k and
recently it broke for powerpc), we have a table of machine->machine_arch
translations. It's easier to modify one table once per arch instead of
juggling for a few hours every time some include files change.
3. Remove some sparc64 cruft.
4. Set MACHINE and MACHINE_ARCH in cross-env, otherwise the kernel will
try to build libkern for the host.

Please note that this doesn't allow you to do complete builds. I haven't
even tested cross-lib. Only kernel builds have been tested.


# 1.78 14-Sep-2001 fgsch

Cross-tools changes:

o Enable c++.
o Add missing lib/apache/xml/include directory.
o Use lorder from /usr/bin.

art@, mickey@ ok.


# 1.77 07-Sep-2001 mickey

put quotes on CFLAGS in binutils-new


# 1.76 07-Sep-2001 mickey

don't forget to make depend for croos-binutils-old sub-targets, dunno how it got broken but let's blame art since he commits into cross-tools all by himself all the time and breaks it


# 1.75 03-Sep-2001 art

new target: cross-env that prints all environment variables that
need to be set for cross building:
cd /usr/src/sbin/init
make `cd /usr/src ; make TARGET=sparc64 cross-env`

Also, xcpp was wrong, cccp is wrong, cpp is probably better.


# 1.74 01-Sep-2001 drahn

powerpc -> macppc rename changes


# 1.73 31-Aug-2001 art

Use more brute force when making links for binutils.
We simply make sure that there always is a TARGET_CANON-X and an X
regardless of which one is the regular file and which one is the symlink.

(this is for cross-tools)


# 1.72 31-Aug-2001 art

cccp, not xcpp


# 1.71 31-Aug-2001 brad

more leftover arc/pmax stuff
--
Ok'd by art@


# 1.70 31-Aug-2001 art

Magic to make sparc64 cross-tools not bomb in the first 5 minutes
of building cross-tools.


# 1.69 26-Jun-2001 brad

bye bye MIPS related bits and pieces.
--
Ok'd by deraadt@


# 1.68 26-Jun-2001 hin

Build kerberosV when enabled.


# 1.67 24-Jun-2001 niklas

yet another old M: missing SUDO i includes target


# 1.66 14-May-2001 espie

Speed-up:
- remove extra subshells;
- use exec on terminal commands, avoiding dangling shells that don't
control anything.

More correct:
- use && some more;
- remove `-' in front of includes, so that failures WILL fail...

Okay millert@, deraadt@


Revision tags: OPENBSD_2_9_BASE
# 1.65 28-Mar-2001 todd

unbreak broken cross-binutils-new target (missing ')' )


# 1.64 27-Jan-2001 niklas

Fix cross-tools symlinks for old toolchain too


# 1.63 27-Jan-2001 niklas

Improve the cross-tools targets so that it now can at least finish
pmax libs. I have yet to test that they actually work though.


# 1.62 17-Jan-2001 mickey

at least cross-gcc was broken, can't test cross-binutils, but i bet they are broken too


# 1.61 15-Jan-2001 art

Random fixes for cross builds. (especiaslly new binutils)


# 1.60 30-Dec-2000 angelos

Truncate the autoconf cache, rather than outright deleting it (PR 1488)


# 1.59 12-Dec-2000 art

Fix cross-binutils-new.
Pass the same --disable-foo flags as we do in gnu/usr.bin/binutils
This allows me to build alpha -> alpha binutils (Don't ask).


Revision tags: OPENBSD_2_8_BASE
# 1.58 03-Sep-2000 espie

Boring... Add :L modifier to all tweakable variables tests.

Closes PR 1246


# 1.57 01-Aug-2000 millert

Only install man pages once. Previously, they would be installed
during the lib install stage too.


Revision tags: OPENBSD_2_7_BASE
# 1.56 21-Apr-2000 millert

Don't need to explicitly make perl's config.sh, the beforedepend target
will do that.


# 1.55 09-Apr-2000 deraadt

using just ldconfig is a bad idea, use -R


# 1.54 10-Mar-2000 niklas

A more normal way of building kerberos, faster, and it works with SUDO


# 1.53 01-Mar-2000 todd

rm dup


# 1.52 22-Dec-1999 mickey

repair a few breakages in cross-tools caused by switch to egcs and new lorder


# 1.51 26-Nov-1999 millert

Build libperl with the other libs


Revision tags: OPENBSD_2_6_BASE
# 1.50 27-Sep-1999 deraadt

I mean, I hate that prereq *garbage*. but then you guys had to break
make includes, too, by not fixing it. Gee, thanks.


Revision tags: OPENBSD_2_5_BASE
# 1.49 02-Mar-1999 niklas

Provide a method to do prerequisites needed before
installation of includes can happen. Do these before and not run via ${SUDO}.


# 1.48 02-Feb-1999 imp

Don't do two ldconfigs on mips if we're not building kerberos.
Many cross-tools cleanups:
o remove mkdirs from the front of each of the rules, but instead have them
depend on new target cross-dirs, which makes all the directories
o Add new target, cross-dirs, to create the directories and symlinks. Before
the symlinks in /usr/cross/$TARGET/blah-unknown-openbsd2.4 were
never right.
o KLUDGE for arc/pmax. MACHINE_ARCH is mips for these machines, but they
differ from other machines in that they use mipsel-unknown-openbsd
for their gnu config string (failure to have the el causes big endian tools
to be built).

These fixes allow me to build a usable toolchain and libraries for
OpenBSD/arc on FreeBSD/i386 (with a few fixes to FreeBSD as well). I
can also build a bootable kernel on the FreeBSD box.

I'd like to add a cross-build target shortly that will build
cross-tools, then will build and install stuff in DESTDIR with the
cross tools living in ${DESTDIR}/usr/cross/${TARGET}.


# 1.47 02-Feb-1999 imp

Make cross targets more robust:
o Don't build kerberos if KERBEROS==no
o Use the lorder in the target tree, rather than relying on the
system's lorder to do the right thing in a cross build environment.


# 1.46 24-Jan-1999 niklas

make depend stuff in cross-*.
Also build the kerberos libs for the cross environment


# 1.45 24-Jan-1999 art

pass SUDO to make build in kerberosIV. From: jakob@crt.se


# 1.44 08-Jan-1999 millert

kill local change that should not have gotten committed in last change


# 1.43 07-Jan-1999 millert

make cleandir needs to run run as well; marc@snafu.org


# 1.42 30-Oct-1998 millert

set DESTDIR to be empty, not '/' when doing 'make distrib-dirs' so we don't get /etc/foo, not //etc/foo


Revision tags: OPENBSD_2_4_BASE
# 1.41 30-Sep-1998 art

add a note about building kernel before "make build"


# 1.40 07-Sep-1998 niklas

Optionally use make SUDO=sudo build to build as non-root


# 1.39 28-Aug-1998 mickey

fix cross-lib install


# 1.38 18-May-1998 mickey

insert a note about the cross-tools target


# 1.37 18-May-1998 mickey

more links for binutils-new; hmm shouldn't this be single commit w/ the prev one?


# 1.36 18-May-1998 mickey

use .CURDIR-relative paths navigating within source tree.
that is, instead of 'cd lib' use 'cd ${.CURDIR}/lib'.
PS: what about strings and gdb for cross-binutils-old?
those guys are present in the '-new target.


# 1.35 18-May-1998 mickey

setup links for new binutils in an old binutils cosistant way


# 1.34 17-May-1998 niklas

Revert to 1.32, in the future CROSSENV will be used with different
MAKEOBJDIR values


# 1.33 17-May-1998 mickey

include MAKEOBJDIR definition into CROSSENV


# 1.32 16-May-1998 niklas

cross-tools cleanup + build the libs too


# 1.31 14-May-1998 niklas

cross-gcc improvement, install cc link, and a nice cpp


# 1.30 11-May-1998 niklas

Build nm ok for cross-envs


# 1.29 11-May-1998 niklas

Add a bunch of cross-a.out targets


# 1.28 04-May-1998 mickey

use binutils for hppa


# 1.27 25-Apr-1998 niklas

Improved cross-compilation targets, still need work


Revision tags: OPENBSD_2_3_BASE
# 1.26 18-Mar-1998 mickey

cross-gcc: make things work, finally


# 1.25 17-Mar-1998 mickey

cross-tools: use /bin/sh to run configure, add -I for mips-*


# 1.24 15-Feb-1998 niklas

A new rule cross-gas for building an a.out cross assembler, i.e. *not* from
the new binutils, but from the old gnu/usr.bin/gas sources. Not yet called
from cross-tools for any architectures.


# 1.23 09-Dec-1997 niklas

on mips systems, ldconfig after kerberos too as new libs get installed


Revision tags: OPENBSD_2_2_BASE
# 1.22 21-Sep-1997 deraadt

$OpenBSD$


# 1.21 06-Aug-1997 deraadt

attempt to clean/cleandir/obj in distrib


# 1.20 29-Jul-1997 kstailey

add braces to variable


# 1.19 29-Jul-1997 kstailey

Changed the rules.
The variable is now GLOBAL_AUTOCONF_CACHE. You must set it to the name
of the cache file to use. Ether "setenv GLOBAL_AUTOCONF_CACHE /var/tmp/foo"
or add it to /etc/mk.conf


# 1.18 29-Jul-1997 kstailey

remove global cache at start of "make build" if GLOBAL_CACHE option is in effect


Revision tags: OPENBSD_2_1_BASE
# 1.17 19-Apr-1997 millert

Changed ``defined(KERBEROS)'' to ``(${KERBEROS} == "yes")''
Same change doen for SKEY, YP, and KERBEROS5. This allows
people to override those setting in /etc/mk.conf.


# 1.16 18-Apr-1997 deraadt

doc recommended build process somewhat


# 1.15 28-Feb-1997 niklas

First stab at a target for making cross-development tools:
try "make TARGET=machine cross-tools" and you should get a little
hierarchy in /usr/cross/<machine>. This is probably not in its final
shape yet ;-)


# 1.14 27-Feb-1997 briggs

We don't need this in /usr/src/Makefile. Call me a prude, if you like.


# 1.13 13-Dec-1996 deraadt

ldconfig hack for the mips


Revision tags: OPENBSD_2_0_BASE
# 1.12 02-Jun-1996 tholo

Don't install kerberosIV headers twice when doing "make build"


# 1.11 02-Jun-1996 tholo

kerberosIV now understand "includes" target too


# 1.10 18-May-1996 deraadt

allow "make includes" to work from here too


# 1.9 14-May-1996 deraadt

when making distributions, make sure the include directory gets filled


# 1.8 06-May-1996 deraadt

hard-code the include installation path (mostly for speed)


# 1.7 06-May-1996 deraadt

use beforeinstall; includes walks the tree


# 1.6 23-Apr-1996 mickey

sync w/ NetBSD 960418.


# 1.5 02-Mar-1996 tholo

Build lkm directory by default


# 1.4 28-Jan-1996 tholo

Do not build KerberosIV if Kerberos has been disabled in <bsd.own.mk>


# 1.3 17-Dec-1995 deraadt

domestic goes away, kerberosIV always exists


# 1.2 16-Dec-1995 tholo

Add support for building kerberosIV


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision