[BACK]Return to Makefile CVS log [TXT][DIR] Up to [local] / src

Annotation of src/Makefile, Revision 1.40

1.40    ! niklas      1: #      $OpenBSD: Makefile,v 1.39 1998/08/28 22:46:02 mickey Exp $
1.1       deraadt     2:
1.16      deraadt     3: #
                      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.
                      7: #
                      8: # Building recommendations:
                      9: #
                     10: # 1) If at all possible, put this source tree in /usr/src.  If /usr/src
                     11: # must be a symbolic link, setenv BSDSRCDIR to point to the real location.
                     12: #
                     13: # 2) It is also recommended that you compile with objects outside the
                     14: # source tree. To do this, ensure /usr/obj exists or points to some
                     15: # area of disk of sufficient size.  Then do "cd /usr/src; make obj".
                     16: # This will make a symbolic link called "obj" in each directory, as
                     17: # well as populate the /usr/obj properly with directories for the
                     18: # objects.
                     19: #
                     20: # 3) If you are reasonably sure that things will compile OK, use the
                     21: # "make build" target supplied here. Good luck.
1.38      mickey     22: #
                     23: # 4) If you want to setup a cross-build environment, there is a "cross-tools"
                     24: # target available which upon completion of "make TARGET=<target> cross-tools"
                     25: # (where <target> is one of the names in the /sys/arch directory) will produce
                     26: # a set of compilation tools along with the includes in the /usr/cross/<target>
                     27: # directory.
                     28: #
1.16      deraadt    29:
1.6       mickey     30: .include <bsd.own.mk>  # for NOMAN, if it's there.
1.1       deraadt    31:
                     32: SUBDIR+= lib include bin libexec sbin usr.bin usr.sbin share games
                     33: SUBDIR+= gnu
                     34:
1.5       tholo      35: SUBDIR+= sys lkm
1.1       deraadt    36:
1.17      millert    37: .if (${KERBEROS} == "yes")
1.2       tholo      38: SUBDIR+= kerberosIV
1.21      deraadt    39: .endif
                     40:
                     41: .if   make(clean) || make(cleandir) || make(obj)
                     42: SUBDIR+= distrib
1.4       tholo      43: .endif
1.2       tholo      44:
1.1       deraadt    45: .if exists(regress)
                     46: .ifmake !(install)
                     47: SUBDIR+= regress
                     48: .endif
                     49:
                     50: regression-tests:
                     51:        @echo Running regression tests...
                     52:        @(cd ${.CURDIR}/regress && ${MAKE} regress)
                     53: .endif
1.10      deraadt    54:
                     55: includes:
                     56:        (cd ${.CURDIR}/include; ${MAKE} includes)
1.1       deraadt    57:
1.7       deraadt    58: beforeinstall:
                     59: .ifndef DESTDIR
                     60:        (cd ${.CURDIR}/etc && ${MAKE} DESTDIR=/ distrib-dirs)
                     61: .else
                     62:        (cd ${.CURDIR}/etc && ${MAKE} distrib-dirs)
                     63: .endif
1.9       deraadt    64:        (cd ${.CURDIR}/include; ${MAKE} includes)
1.1       deraadt    65:
                     66: afterinstall:
                     67: .ifndef NOMAN
                     68:        (cd ${.CURDIR}/share/man && ${MAKE} makedb)
                     69: .endif
                     70:
                     71: build:
1.19      kstailey   72: .ifdef GLOBAL_AUTOCONF_CACHE
1.20      kstailey   73:        rm -f ${GLOBAL_AUTOCONF_CACHE}
1.18      kstailey   74: .endif
1.40    ! niklas     75:        (cd ${.CURDIR}/share/mk && ${SUDO} ${MAKE} install)
        !            76:        (cd ${.CURDIR}/include; ${SUDO} ${MAKE} includes)
1.1       deraadt    77:        ${MAKE} cleandir
1.40    ! niklas     78:        (cd ${.CURDIR}/lib && ${MAKE} depend && ${MAKE} && \
        !            79:            ${SUDO} ${MAKE} install)
        !            80:        (cd ${.CURDIR}/gnu/lib && ${MAKE} depend && ${MAKE} && \
        !            81:            ${SUDO} ${MAKE} install)
1.13      deraadt    82: .if (${MACHINE_ARCH} == "mips")
1.14      briggs     83:        ldconfig
1.13      deraadt    84: .endif
1.17      millert    85: .if (${KERBEROS} == "yes")
1.2       tholo      86:        (cd ${.CURDIR}/kerberosIV && ${MAKE} build)
1.23      niklas     87: .endif
                     88: .if (${MACHINE_ARCH} == "mips")
                     89:        ldconfig
1.4       tholo      90: .endif
1.40    ! niklas     91:        ${MAKE} depend && ${MAKE} && ${SUDO} ${MAKE} install
1.15      niklas     92:
                     93: .if !defined(TARGET)
                     94: cross-tools:
                     95:        echo "TARGET must be set"; exit 1
                     96: .else
1.32      niklas     97: cross-tools:   cross-helpers cross-includes cross-binutils cross-gcc cross-lib
1.15      niklas     98:
                     99: CROSSDIR=      ${DESTDIR}/usr/cross/${TARGET}
1.32      niklas    100: CROSSENV=      AR=${CROSSDIR}/usr/bin/ar AS=${CROSSDIR}/usr/bin/as \
                    101:                CC=${CROSSDIR}/usr/bin/cc CPP=${CROSSDIR}/usr/bin/cpp \
                    102:                LD=${CROSSDIR}/usr/bin/ld NM=${CROSSDIR}/usr/bin/nm \
                    103:                RANLIB=${CROSSDIR}/usr/bin/ranlib \
                    104:                SIZE=${CROSSDIR}/usr/bin/size STRIP=${CROSSDIR}/usr/bin/strip \
1.34      niklas    105:                HOSTCC=cc
1.15      niklas    106:
                    107: cross-helpers:
                    108:        -mkdir -p ${CROSSDIR}/usr/include
                    109:        echo _MACHINE_ARCH | \
                    110:            cat ${.CURDIR}/sys/arch/${TARGET}/include/param.h - | \
1.25      mickey    111:            ${CPP} -E -I${.CURDIR}/sys/arch | \
                    112:            sed -n '$$p' >${CROSSDIR}/TARGET_ARCH
1.15      niklas    113:        eval `grep '^osr=' sys/conf/newvers.sh`; \
                    114:           sed "s/\$$/-unknown-openbsd$$osr/" ${CROSSDIR}/TARGET_ARCH > \
                    115:           ${CROSSDIR}/TARGET_CANON
                    116:
                    117: cross-includes:
1.32      niklas    118:        -mkdir -p ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/include
1.15      niklas    119:        ${MAKE} MACHINE=${TARGET} MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \
                    120:            DESTDIR=${CROSSDIR} includes
1.32      niklas    121:        ln -sf ${CROSSDIR}/usr/include \
                    122:            ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/include
1.15      niklas    123:
1.27      niklas    124: .if ${TARGET} == "powerpc" || ${TARGET} == "alpha" || ${TARGET} == "arc" || \
1.28      mickey    125:     ${TARGET} == "pmax" || ${TARGET} == "wgrisc" || ${TARGET} == "hppa"
1.27      niklas    126: cross-binutils: cross-binutils-new
                    127: .else
                    128: cross-binutils: cross-binutils-old
                    129: .endif
                    130:
                    131: cross-binutils-new:
1.15      niklas    132:        -mkdir -p ${CROSSDIR}/usr/obj
1.32      niklas    133:        -mkdir -p ${CROSSDIR}/usr/bin
1.15      niklas    134:        export BSDSRCDIR=`pwd`; \
                    135:            (cd ${.CURDIR}/gnu/usr.bin/binutils; \
                    136:            BSDOBJDIR=${CROSSDIR}/usr/obj \
                    137:            MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                    138:            ${MAKE} -f Makefile.bsd-wrapper obj); \
                    139:            (cd ${CROSSDIR}/usr/obj/gnu/usr.bin/binutils; \
1.25      mickey    140:            /bin/sh ${BSDSRCDIR}/gnu/usr.bin/binutils/configure \
1.15      niklas    141:            --prefix ${CROSSDIR}/usr \
                    142:            --target `cat ${CROSSDIR}/TARGET_CANON` && \
1.39      mickey    143:            ${MAKE} CFLAGS=${CFLAGS} && ${MAKE} DESTDIR=${CROSSDIR} install)
1.15      niklas    144:        ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 755 \
                    145:            ${.CURDIR}/usr.bin/lorder/lorder.sh.gnm \
                    146:            ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-lorder
1.35      mickey    147:        ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-as \
                    148:            ${CROSSDIR}/usr/bin/as
                    149:        ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-ar \
                    150:            ${CROSSDIR}/usr/bin/ar
                    151:        ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-ld \
                    152:            ${CROSSDIR}/usr/bin/ld
                    153:        ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-strip \
                    154:            ${CROSSDIR}/usr/bin/strip
                    155:        ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-size \
                    156:            ${CROSSDIR}/usr/bin/size
                    157:        ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-ranlib \
                    158:            ${CROSSDIR}/usr/bin/ranlib
                    159:        ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-nm \
                    160:            ${CROSSDIR}/usr/bin/nm
1.37      mickey    161:        ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-strings \
                    162:            ${CROSSDIR}/usr/bin/strings
1.35      mickey    163:        ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-lorder \
                    164:            ${CROSSDIR}/usr/bin/lorder
1.37      mickey    165:        ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-objcopy \
                    166:            ${CROSSDIR}/usr/bin/objcopy
                    167:        ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-objdump \
                    168:            ${CROSSDIR}/usr/bin/objdump
                    169:        ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-gdb \
                    170:            ${CROSSDIR}/usr/bin/gdb
1.24      niklas    171:
1.29      niklas    172: cross-binutils-old: cross-gas cross-ar cross-ld cross-strip cross-size \
                    173:        cross-ranlib cross-nm
1.27      niklas    174:
1.24      niklas    175: cross-gas:
                    176:        -mkdir -p ${CROSSDIR}/usr/obj
                    177:        -mkdir -p ${CROSSDIR}/usr/bin
1.27      niklas    178:        -mkdir -p ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin
1.36      mickey    179:        (cd ${.CURDIR}/gnu/usr.bin/gas; \
1.24      niklas    180:            BSDOBJDIR=${CROSSDIR}/usr/obj \
                    181:            BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.32      niklas    182:            ${MAKE} obj; \
1.24      niklas    183:            TARGET_MACHINE_ARCH=${TARGET} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.32      niklas    184:            ${MAKE}; \
1.27      niklas    185:            TARGET_MACHINE_ARCH=${TARGET} \
                    186:            DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                    187:            ${MAKE} NOMAN= install)
                    188:        ln -sf ${CROSSDIR}/usr/bin/as \
                    189:            ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/as
                    190:
                    191: cross-ld:
                    192:        -mkdir -p ${CROSSDIR}/usr/obj
                    193:        -mkdir -p ${CROSSDIR}/usr/bin
1.36      mickey    194:        (cd ${.CURDIR}/gnu/usr.bin/ld; \
1.27      niklas    195:            BSDOBJDIR=${CROSSDIR}/usr/obj \
                    196:            BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.32      niklas    197:            ${MAKE} obj; \
1.27      niklas    198:            TARGET_MACHINE_ARCH=${TARGET} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.32      niklas    199:            ${MAKE} NOMAN=; \
1.27      niklas    200:            TARGET_MACHINE_ARCH=${TARGET} \
                    201:            DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                    202:            ${MAKE} NOMAN= install)
                    203:        ln -sf ${CROSSDIR}/usr/bin/ld \
                    204:            ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/ld
                    205:
                    206: cross-ar:
                    207:        -mkdir -p ${CROSSDIR}/usr/obj
                    208:        -mkdir -p ${CROSSDIR}/usr/bin
1.36      mickey    209:        (cd ${.CURDIR}/usr.bin/ar; \
1.27      niklas    210:            BSDOBJDIR=${CROSSDIR}/usr/obj \
                    211:            BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.32      niklas    212:            ${MAKE} obj; \
                    213:            MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN=; \
1.24      niklas    214:            DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                    215:            ${MAKE} NOMAN= install)
1.27      niklas    216:        ln -sf ${CROSSDIR}/usr/bin/ar \
                    217:            ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/ar
1.29      niklas    218:
                    219: cross-ranlib:
                    220:        -mkdir -p ${CROSSDIR}/usr/obj
                    221:        -mkdir -p ${CROSSDIR}/usr/bin
1.36      mickey    222:        (cd ${.CURDIR}/usr.bin/ranlib; \
1.29      niklas    223:            BSDOBJDIR=${CROSSDIR}/usr/obj \
                    224:            BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.32      niklas    225:            ${MAKE} obj; \
                    226:            MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN=; \
1.29      niklas    227:            DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                    228:            ${MAKE} NOMAN= install)
                    229:        ln -sf ${CROSSDIR}/usr/bin/ranlib \
                    230:            ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/ranlib
                    231:
                    232: cross-strip:
                    233:        -mkdir -p ${CROSSDIR}/usr/obj
                    234:        -mkdir -p ${CROSSDIR}/usr/bin
1.36      mickey    235:        (cd ${.CURDIR}/usr.bin/strip; \
1.29      niklas    236:            BSDOBJDIR=${CROSSDIR}/usr/obj \
                    237:            BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.32      niklas    238:            ${MAKE} obj; \
1.29      niklas    239:            MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.32      niklas    240:            ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN=; \
1.29      niklas    241:            DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                    242:            ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN= install)
                    243:        ln -sf ${CROSSDIR}/usr/bin/strip \
                    244:            ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/strip
                    245:
                    246: cross-size:
                    247:        -mkdir -p ${CROSSDIR}/usr/obj
                    248:        -mkdir -p ${CROSSDIR}/usr/bin
1.36      mickey    249:        (cd ${.CURDIR}/usr.bin/size; \
1.29      niklas    250:            BSDOBJDIR=${CROSSDIR}/usr/obj \
                    251:            BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.32      niklas    252:            ${MAKE} obj; \
                    253:            MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                    254:            ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN=; \
1.29      niklas    255:            DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                    256:            ${MAKE} NOMAN= install)
                    257:        ln -sf ${CROSSDIR}/usr/bin/size \
                    258:            ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/size
                    259:
                    260: cross-nm:
                    261:        -mkdir -p ${CROSSDIR}/usr/obj
                    262:        -mkdir -p ${CROSSDIR}/usr/bin
1.36      mickey    263:        (cd ${.CURDIR}/usr.bin/nm; \
1.29      niklas    264:            BSDOBJDIR=${CROSSDIR}/usr/obj \
                    265:            BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.32      niklas    266:            ${MAKE} obj; \
                    267:            MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                    268:            ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN=; \
1.29      niklas    269:            DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                    270:            ${MAKE} NOMAN= install)
                    271:        ln -sf ${CROSSDIR}/usr/bin/nm \
                    272:            ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/nm
1.15      niklas    273:
                    274: cross-gcc:
                    275:        -mkdir -p ${CROSSDIR}/usr/obj
1.32      niklas    276:        -mkdir -p ${CROSSDIR}/usr/bin
1.36      mickey    277:        cd ${.CURDIR}/gnu/usr.bin/gcc; \
1.15      niklas    278:            BSDOBJDIR=${CROSSDIR}/usr/obj BSDSRCDIR=${.CURDIR} \
                    279:            MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.32      niklas    280:            ${MAKE} -f Makefile.bsd-wrapper obj
1.15      niklas    281:        (cd ${CROSSDIR}/usr/obj/gnu/usr.bin/gcc; \
1.25      mickey    282:            /bin/sh ${.CURDIR}/gnu/usr.bin/gcc/configure \
1.15      niklas    283:            --prefix ${CROSSDIR}/usr \
                    284:            --target `cat ${CROSSDIR}/TARGET_CANON` && \
1.26      mickey    285:            ${MAKE} BISON=yacc LANGUAGES=c LDFLAGS=${LDSTATIC} \
1.32      niklas    286:            build_infodir=. \
1.15      niklas    287:            GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \
1.26      mickey    288:            ${MAKE} BISON=yacc LANGUAGES=c LDFLAGS=${LDSTATIC} \
1.32      niklas    289:            GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" \
                    290:            build_infodir=. INSTALL_MAN= INSTALL_HEADERS_DIR= install)
1.31      niklas    291:        ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-gcc \
                    292:            ${CROSSDIR}/usr/bin/cc
                    293:        CPP=`${CROSSDIR}/usr/bin/cc -print-libgcc-file-name | \
                    294:            sed 's/libgcc\.a/cpp/'`; \
                    295:            sed -e 's#/usr/libexec/cpp#'$$CPP'#' \
1.36      mickey    296:            -e 's#/usr/include#${CROSSDIR}/usr/include#' \
                    297:            ${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/bin/cpp
1.31      niklas    298:        chmod ${BINMODE} ${CROSSDIR}/usr/bin/cpp
                    299:        chown ${BINOWN}.${BINGRP} ${CROSSDIR}/usr/bin/cpp
1.32      niklas    300:
                    301: cross-lib:
                    302:        -mkdir -p ${CROSSDIR}/usr/obj
                    303:        -mkdir -p ${CROSSDIR}/usr/lib
                    304:        -mkdir -p ${CROSSDIR}/var/db
                    305:        MACHINE=${TARGET} MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH`; \
                    306:        export MACHINE MACHINE_ARCH; \
1.36      mickey    307:        (cd ${.CURDIR}/lib; \
1.32      niklas    308:            BSDOBJDIR=${CROSSDIR}/usr/obj \
                    309:            BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                    310:            ${MAKE} obj; \
                    311:            for lib in csu libc; do \
                    312:                (cd $$lib; \
1.34      niklas    313:                    ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                    314:                    ${MAKE} NOMAN=; \
1.39      mickey    315:                    ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                    316:                    DESTDIR=${CROSSDIR} ${MAKE} NOMAN= install); \
1.32      niklas    317:            done; \
1.34      niklas    318:            ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN=; \
1.39      mickey    319:            ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                    320:            DESTDIR=${CROSSDIR} SKIPDIR=libocurses/PSD.doc \
                    321:            ${MAKE} NOMAN= install)
1.32      niklas    322:        ln -sf ${CROSSDIR}/usr/lib \
                    323:            ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/lib
1.31      niklas    324:
1.15      niklas    325: .endif
1.1       deraadt   326:
                    327: .include <bsd.subdir.mk>