version 1.76, 2001/09/07 19:29:49 |
version 1.86, 2002/08/11 22:48:05 |
|
|
# For more information on building in tricky environments, please see |
# For more information on building in tricky environments, please see |
# the list of possible environment variables described in |
# the list of possible environment variables described in |
# /usr/share/mk/bsd.README. |
# /usr/share/mk/bsd.README. |
# |
# |
# Building recommendations: |
# Building recommendations: |
# |
# |
# 1) If at all possible, put this source tree in /usr/src. If /usr/src |
# 1) If at all possible, put this source tree in /usr/src. If /usr/src |
# must be a symbolic link, setenv BSDSRCDIR to point to the real location. |
# must be a symbolic link, setenv BSDSRCDIR to point to the real location. |
# |
# |
|
|
# "make build" target supplied here. Good luck. |
# "make build" target supplied here. Good luck. |
# |
# |
# 5) If you want to setup a cross-build environment, there is a "cross-tools" |
# 5) If you want to setup a cross-build environment, there is a "cross-tools" |
# target available which upon completion of "make TARGET=<target> cross-tools" |
# target available which upon completion of "make TARGET=<target> cross-tools" |
# (where <target> is one of the names in the /sys/arch directory) will produce |
# (where <target> is one of the names in the /sys/arch directory) will produce |
# a set of compilation tools along with the includes in the /usr/cross/<target> |
# a set of compilation tools along with the includes in the /usr/cross/<target> |
# directory. |
# directory. |
|
|
.endif |
.endif |
|
|
.if make(clean) || make(cleandir) || make(obj) |
.if make(clean) || make(cleandir) || make(obj) |
SUBDIR+= distrib |
SUBDIR+= distrib regress |
.endif |
.endif |
|
|
.if exists(regress) |
.if exists(regress) |
.ifmake !(install) |
|
SUBDIR+= regress |
|
.endif |
|
|
|
regression-tests: |
regression-tests: |
@echo Running regression tests... |
@echo Running regression tests... |
@cd ${.CURDIR}/regress && exec ${MAKE} regress |
@cd ${.CURDIR}/regress && ${MAKE} depend && exec ${MAKE} regress |
.endif |
.endif |
|
|
includes: |
includes: |
|
|
CROSSDIR= ${DESTDIR}/usr/cross/${TARGET} |
CROSSDIR= ${DESTDIR}/usr/cross/${TARGET} |
CROSSENV= AR=${CROSSDIR}/usr/bin/ar AS=${CROSSDIR}/usr/bin/as \ |
CROSSENV= AR=${CROSSDIR}/usr/bin/ar AS=${CROSSDIR}/usr/bin/as \ |
CC=${CROSSDIR}/usr/bin/cc CPP=${CROSSDIR}/usr/bin/cpp \ |
CC=${CROSSDIR}/usr/bin/cc CPP=${CROSSDIR}/usr/bin/cpp \ |
|
CXX=${CROSSDIR}/usr/bin/c++ \ |
LD=${CROSSDIR}/usr/bin/ld NM=${CROSSDIR}/usr/bin/nm \ |
LD=${CROSSDIR}/usr/bin/ld NM=${CROSSDIR}/usr/bin/nm \ |
LORDER=${CROSSDIR}/usr/bin/lorder \ |
LORDER=/usr/bin/lorder RANLIB=${CROSSDIR}/usr/bin/ranlib \ |
RANLIB=${CROSSDIR}/usr/bin/ranlib \ |
|
SIZE=${CROSSDIR}/usr/bin/size STRIP=${CROSSDIR}/usr/bin/strip \ |
SIZE=${CROSSDIR}/usr/bin/size STRIP=${CROSSDIR}/usr/bin/strip \ |
HOSTCC=cc |
HOSTCC=cc |
CROSSPATH= ${PATH}:${CROSSDIR}/usr/bin |
CROSSPATH= ${PATH}:${CROSSDIR}/usr/bin |
|
|
.if (${TARGET} == "sparc64") |
|
CROSSENV+= CPPFLAGS=-D__arch64__ |
|
CPPFLAGS=-D__arch64__ |
|
.endif |
|
|
|
cross-env: |
cross-env: |
@echo ${CROSSENV} DESTDIR=${CROSSDIR} |
@echo ${CROSSENV} DESTDIR=${CROSSDIR} MACHINE=${TARGET} MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` |
|
|
cross-helpers: |
cross-helpers: |
@-mkdir -p ${CROSSDIR} |
@-mkdir -p ${CROSSDIR} |
echo _MACHINE_ARCH | \ |
@case ${TARGET} in \ |
cat ${.CURDIR}/sys/arch/${TARGET}/include/param.h - | \ |
sparc|i386|m68k|alpha|hppa|powerpc|sparc64|m88k|vax) \ |
${CPP} ${CPPFLAGS} -E -I${.CURDIR}/sys/arch | \ |
echo ${TARGET} ;;\ |
sed -n '$$p' >${CROSSDIR}/TARGET_ARCH |
amiga|sun3|mac68k|hp300|mvme68k) \ |
eval `grep '^osr=' sys/conf/newvers.sh`; \ |
echo m68k ;;\ |
|
mvme88k) \ |
|
echo m88k ;;\ |
|
mvmeppc|macppc) \ |
|
echo powerpc ;;\ |
|
*) \ |
|
(echo Unknown arch ${TARGET} >&2) ; exit 1;; \ |
|
esac > ${CROSSDIR}/TARGET_ARCH |
|
@echo TARGET_ARCH is `cat ${CROSSDIR}/TARGET_ARCH` |
|
@eval `grep '^osr=' sys/conf/newvers.sh`; \ |
sed "s/\$$/-unknown-openbsd$$osr/" ${CROSSDIR}/TARGET_ARCH > \ |
sed "s/\$$/-unknown-openbsd$$osr/" ${CROSSDIR}/TARGET_ARCH > \ |
${CROSSDIR}/TARGET_CANON |
${CROSSDIR}/TARGET_CANON |
|
|
|
|
@-mkdir -p ${CROSSDIR} |
@-mkdir -p ${CROSSDIR} |
@-mkdir -p ${CROSSDIR}/usr/obj |
@-mkdir -p ${CROSSDIR}/usr/obj |
@-mkdir -p ${CROSSDIR}/usr/bin |
@-mkdir -p ${CROSSDIR}/usr/bin |
@-mkdir -p ${CROSSDIR}/usr/include |
|
@-mkdir -p ${CROSSDIR}/usr/include/kerberosIV |
@-mkdir -p ${CROSSDIR}/usr/include/kerberosIV |
@-mkdir -p ${CROSSDIR}/usr/include/kerberosV |
@-mkdir -p ${CROSSDIR}/usr/include/kerberosV |
@-mkdir -p ${CROSSDIR}/usr/lib |
@-mkdir -p ${CROSSDIR}/usr/lib/apache/include/xml |
@-mkdir -p ${CROSSDIR}/usr/libexec |
@-mkdir -p ${CROSSDIR}/usr/libexec |
@-mkdir -p ${CROSSDIR}/var/db |
@-mkdir -p ${CROSSDIR}/var/db |
@-mkdir -p ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON` |
@-mkdir -p ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON` |
@ln -sf ${CROSSDIR}/usr/include \ |
@ln -sf ${CROSSDIR}/usr/include \ |
${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/include |
${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/include |
@ln -sf ${CROSSDIR}/usr/lib \ |
@ln -sf ${CROSSDIR}/usr/lib \ |
${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/lib |
${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/lib |
@-mkdir -p ${CROSSDIR}/usr/obj |
@-mkdir -p ${CROSSDIR}/usr/obj |
|
|
${MAKE} DESTDIR=${CROSSDIR} includes |
${MAKE} DESTDIR=${CROSSDIR} includes |
|
|
.if ${TARGET} == "macppc" || ${TARGET} == "alpha" || ${TARGET} == "hppa" || \ |
.if ${TARGET} == "macppc" || ${TARGET} == "alpha" || ${TARGET} == "hppa" || \ |
${TARGET} == "sparc64"|| ${TARGET} == "mvmeppc" |
${TARGET} == "sparc64"|| ${TARGET} == "mvmeppc" || ${TARGET} == "sparc" |
cross-binutils: cross-binutils-new cross-binutils-links |
cross-binutils: cross-binutils-new cross-binutils-links |
.else |
.else |
cross-binutils: cross-binutils-old cross-binutils-links |
cross-binutils: cross-binutils-old cross-binutils-links |
.endif |
.endif |
|
|
cross-binutils-new: cross-dirs |
cross-binutils-new: cross-dirs |
export BSDSRCDIR=`pwd`; \ |
export BSDSRCDIR=`pwd`; \ |
(cd ${.CURDIR}/gnu/usr.bin/binutils; \ |
(cd ${.CURDIR}/gnu/usr.bin/binutils; \ |
BSDOBJDIR=${CROSSDIR}/usr/obj \ |
BSDOBJDIR=${CROSSDIR}/usr/obj \ |
|
|
--prefix ${CROSSDIR}/usr \ |
--prefix ${CROSSDIR}/usr \ |
--disable-nls --disable-gdbtk --disable-commonbfdlib \ |
--disable-nls --disable-gdbtk --disable-commonbfdlib \ |
--target `cat ${CROSSDIR}/TARGET_CANON` && \ |
--target `cat ${CROSSDIR}/TARGET_CANON` && \ |
${MAKE} CFLAGS=${CFLAGS} && ${MAKE} install ) && \ |
${MAKE} CFLAGS="${CFLAGS}" && ${MAKE} install ) |
${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 755 \ |
|
${.CURDIR}/usr.bin/lorder/lorder.sh \ |
|
${CROSSDIR}/usr/bin/lorder |
|
|
|
cross-binutils-old: cross-gas cross-ar cross-ld cross-strip cross-size \ |
cross-binutils-old: cross-gas cross-ar cross-ld cross-strip cross-size \ |
cross-ranlib cross-nm |
cross-ranlib cross-nm |
|
|
cross-binutils-links: cross-dirs |
cross-binutils-links: cross-dirs |
for cmd in ar as ld nm ranlib size strip; do \ |
for cmd in ar as ld nm ranlib objcopy objdump size strings strip; do \ |
if [ ! -e ${CROSSDIR}/usr/bin/$$cmd -a -e ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-$$cmd ]; then \ |
if [ ! -e ${CROSSDIR}/usr/bin/$$cmd -a -e ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-$$cmd ]; then \ |
ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-$$cmd \ |
ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-$$cmd \ |
${CROSSDIR}/usr/bin/$$cmd ;\ |
${CROSSDIR}/usr/bin/$$cmd ;\ |
|
|
BSDOBJDIR=${CROSSDIR}/usr/obj \ |
BSDOBJDIR=${CROSSDIR}/usr/obj \ |
BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${MAKE} obj; \ |
${MAKE} obj; \ |
TARGET_MACHINE_ARCH=${TARGET} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
TARGET_MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ |
${MAKE} depend all; \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} depend all; \ |
TARGET_MACHINE_ARCH=${TARGET} \ |
TARGET_MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ |
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${MAKE} NOMAN= install) |
${MAKE} NOMAN= install) |
ln -sf ${CROSSDIR}/usr/bin/as \ |
ln -sf ${CROSSDIR}/usr/bin/as \ |
|
|
BSDOBJDIR=${CROSSDIR}/usr/obj \ |
BSDOBJDIR=${CROSSDIR}/usr/obj \ |
BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${MAKE} obj; \ |
${MAKE} obj; \ |
TARGET_MACHINE_ARCH=${TARGET} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
TARGET_MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ |
${MAKE} NOMAN= depend all; \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \ |
TARGET_MACHINE_ARCH=${TARGET} \ |
TARGET_MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ |
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${MAKE} NOMAN= install) |
${MAKE} NOMAN= install) |
ln -sf ${CROSSDIR}/usr/bin/ld \ |
ln -sf ${CROSSDIR}/usr/bin/ld \ |
|
|
BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${MAKE} obj; \ |
${MAKE} obj; \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN= depend all; \ |
${MAKE} TARGET_MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ |
|
NOMAN= depend all; \ |
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN= install) |
${MAKE} TARGET_MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ |
|
NOMAN= install) |
ln -sf ${CROSSDIR}/usr/bin/strip \ |
ln -sf ${CROSSDIR}/usr/bin/strip \ |
${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/strip |
${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/strip |
|
|
|
|
BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${MAKE} obj; \ |
${MAKE} obj; \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN= depend all; \ |
${MAKE} TARGET_MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ |
|
NOMAN= depend all; \ |
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${MAKE} NOMAN= install) |
${MAKE} NOMAN= install) |
ln -sf ${CROSSDIR}/usr/bin/size \ |
ln -sf ${CROSSDIR}/usr/bin/size \ |
|
|
BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${MAKE} obj; \ |
${MAKE} obj; \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN= depend all; \ |
${MAKE} TARGET_MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ |
|
NOMAN= depend all; \ |
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${MAKE} NOMAN= install) |
${MAKE} NOMAN= install) |
ln -sf ${CROSSDIR}/usr/bin/nm \ |
ln -sf ${CROSSDIR}/usr/bin/nm \ |
|
|
(cd ${CROSSDIR}/usr/obj/gnu/egcs/gcc; \ |
(cd ${CROSSDIR}/usr/obj/gnu/egcs/gcc; \ |
/bin/sh ${.CURDIR}/gnu/egcs/gcc/configure \ |
/bin/sh ${.CURDIR}/gnu/egcs/gcc/configure \ |
--prefix ${CROSSDIR}/usr \ |
--prefix ${CROSSDIR}/usr \ |
--target `cat ${CROSSDIR}/TARGET_CANON` && \ |
--target `cat ${CROSSDIR}/TARGET_CANON` \ |
PATH=${CROSSPATH} ${MAKE} BISON=yacc LANGUAGES=c \ |
--with-gxx-include-dir=${CROSSDIR}/usr/include/g++ && \ |
|
PATH=${CROSSPATH} ${MAKE} BISON=yacc LANGUAGES="c c++" \ |
LDFLAGS=${LDSTATIC} build_infodir=. \ |
LDFLAGS=${LDSTATIC} build_infodir=. \ |
GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \ |
GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \ |
${MAKE} BISON=yacc LANGUAGES=c LDFLAGS=${LDSTATIC} \ |
${MAKE} BISON=yacc LANGUAGES="c c++" LDFLAGS=${LDSTATIC} \ |
GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" \ |
GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" \ |
build_infodir=. INSTALL_MAN= INSTALL_HEADERS_DIR= install) |
build_infodir=. INSTALL_MAN= INSTALL_HEADERS_DIR= install) |
ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-gcc \ |
ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-gcc \ |
${CROSSDIR}/usr/bin/cc |
${CROSSDIR}/usr/bin/cc |
|
ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-g++ \ |
|
${CROSSDIR}/usr/bin/c++ |
${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ |
${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ |
${CROSSDIR}/usr/obj/gnu/egcs/gcc/cpp \ |
${CROSSDIR}/usr/obj/gnu/egcs/gcc/cpp \ |
${CROSSDIR}/usr/libexec/cpp |
${CROSSDIR}/usr/libexec/cpp |