1 # $OpenBSD: Makefile,v 1.119 2013/06/17 19:16:02 robert Exp $
4 # For more information on building in tricky environments, please see
5 # the list of possible environment variables described in
6 # /usr/share/mk/bsd.README.
8 # Building recommendations:
10 # 1) If at all possible, put this source tree in /usr/src. If /usr/src
11 # must be a symbolic link, set BSDSRCDIR in the environment to point to
14 # 2) It is also recommended that you compile with objects outside the
15 # source tree. To do this, ensure /usr/obj exists or points to some
16 # area of disk of sufficient size. Then do "cd /usr/src; make obj".
17 # This will make a symbolic link called "obj" in each directory, as
18 # well as populate the /usr/obj properly with directories for the
21 # 3) It is strongly recommended that you build and install a new kernel
22 # before rebuilding your system. Some of the new programs may use new
23 # functionality or depend on API changes that your old kernel doesn't have.
25 # 4) If you are reasonably sure that things will compile OK, use the
26 # "make build" target supplied here. Good luck.
28 # 5) If you want to setup a cross-build environment, there is a "cross-gcc"
29 # target available which upon completion of:
30 # make -f Makefile.cross TARGET=<target> cross-gcc"
31 # (where <target> is one of the names in the /sys/arch directory) will produce
32 # a set of compilation tools along with the includes in the /usr/cross/<target>
33 # directory. The "cross-distrib" target will build cross-tools as well as
34 # binaries for a given <target>.
37 .
include <bsd.own.mk
> # for NOMAN, if it's there.
39 SUBDIR
+= lib
include bin libexec sbin usr.bin usr.sbin share
44 .if
(${KERBEROS5
:L
} == "yes")
45 SUBDIR
+=kerberosV
/tools
46 SUBDIR
+=kerberosV
/libexec
47 SUBDIR
+=kerberosV
/usr.bin
48 SUBDIR
+=kerberosV
/usr.sbin
51 .if make
(clean) || make
(cleandir
) || make
(obj
)
52 SUBDIR
+= distrib regress
56 @echo Running regression tests...
57 @cd
${.CURDIR
}/regress
&& ${MAKE} depend
&& exec
${MAKE} regress
60 cd
${.CURDIR
}/include && ${MAKE} prereq
&& exec
${SUDO} ${MAKE} includes
63 cd
${.CURDIR
}/etc
&& exec
${MAKE} DESTDIR
=${DESTDIR} distrib-dirs
64 cd
${.CURDIR
}/etc
&& exec
${MAKE} DESTDIR
=${DESTDIR} install-mtree
65 cd
${.CURDIR
}/include && exec
${MAKE} includes
69 cd
${.CURDIR
}/share
/man
&& exec
${MAKE} makedb
74 @echo cannot build with DESTDIR set
78 .
ifdef GLOBAL_AUTOCONF_CACHE
79 cp
/dev
/null
${GLOBAL_AUTOCONF_CACHE}
81 cd
${.CURDIR
}/share
/mk
&& exec
${SUDO} ${MAKE} install
82 cd
${.CURDIR
}/include && ${MAKE} prereq
&& exec
${SUDO} ${MAKE} includes
83 ${SUDO} ${MAKE} cleandir
84 cd
${.CURDIR
}/lib
/csu
&& ${MAKE} depend
&& ${MAKE} && \
85 NOMAN
=1 exec
${SUDO} ${MAKE} install
86 cd
${.CURDIR
}/lib
/libc
&& ${MAKE} depend
&& ${MAKE} && \
87 NOMAN
=1 exec
${SUDO} ${MAKE} install
88 cd
${.CURDIR
}/lib
&& ${MAKE} depend
&& ${MAKE} && \
89 NOMAN
=1 exec
${SUDO} ${MAKE} install
90 ${MAKE} depend
&& ${MAKE} && exec
${SUDO} ${MAKE} install
93 CROSS_TARGETS
=cross-env cross-dirs cross-obj cross-includes cross-binutils \
94 cross-gcc cross-tools cross-lib cross-bin cross-etc-root-var \
95 cross-depend cross-clean cross-cleandir
99 @echo
"TARGET must be set for $@"; exit
1
101 .
include "Makefile.cross"
102 .
endif # defined(TARGET)
104 .PHONY
: ${CROSS_TARGETS} \
105 build regression-tests includes beforeinstall afterinstall \
108 .if
!defined
(SNAPDIR
)
110 echo
"SNAPDIR must defined"
112 echo
"SNAPDIR must defined"
117 SNAPROOTDIR
=${SNAPDIR}/${ARCH}/root
118 .if defined
(SNAPDATE
)
119 SNAPRELDIR
!= echo
${SNAPDIR}/${ARCH}/release.
$$(date
"+%y%m%d%H%M")
121 SNAPRELDIR
!= echo
${SNAPDIR}/${ARCH}/release
123 SNAPLOGFILE
!= echo
${SNAPDIR}/buildlog.
${ARCH}.
$$(date
"+%y%m%d%H%M")
125 @echo rootdir
= ${SNAPROOTDIR}
126 @echo reldir
= ${SNAPRELDIR}
127 @echo logfile
= ${SNAPLOGFILE}
132 cd
${.CURDIR
} etc
&& DESTDIR
=/ make distrib-dirs
136 make do_snap
2>&1 | tee
${SNAPLOGFILE}
138 do_snap
: buildworld do_snap_rel
142 rm -rf
${SNAPROOTDIR}
143 mkdir
-p
${SNAPROOTDIR}
144 mkdir
-p
${SNAPRELDIR}
145 cd
${.CURDIR
} etc
&& DESTDIR
=${SNAPROOTDIR} RELEASEDIR
=${SNAPRELDIR} make release
146 cd
${.CURDIR
} distrib
/sets
&& DESTDIR
=${SNAPROOTDIR} sh checkflist
151 .
include <bsd.subdir.mk
>