Annotation of elwix/build_tools.sh, revision 1.5.4.1

1.2       misho       1: #!/bin/sh
                      2: #
                      3: # ELWIX build script for tools
                      4: #
                      5: # (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org>
                      6: #    by Michael Pounov <misho@elwix.org>
                      7: #
1.5.4.1 ! misho       8: # $Id: build_tools.sh,v 1.5 2013/05/07 20:46:47 misho Exp $
1.2       misho       9: #
                     10: 
                     11: [ -r ./config/rc.elwix ] && . ./config/rc.elwix
                     12: if [ X"${ELWIX_IS_CONFIGURED}" != X"YES" ]; then
                     13:        echo
                     14:        echo "ELWIX project is not configured !?!"
                     15:        echo
                     16:        exit 1
                     17: fi
                     18: 
                     19: if [ ! -d $BSDSRC ]; then
                     20:        echo
                     21:        echo "ELWIX project is not configured - missing BSD sources !?!"
                     22:        echo
                     23:        exit 1
                     24: fi
                     25: 
                     26: if [ ! -d $DEST ]; then
                     27:        echo
                     28:        echo "ELWIX project is not configured - missing Dest directory !?!"
                     29:        echo
                     30:        exit 1
                     31: fi
                     32: 
                     33: clean_tools()
                     34: {
                     35:        echo "+++ Clean ELWIX FreeBSD tools ..."
                     36: 
                     37:        rm -rf ${WORLD}/usr/local
                     38:        install -d ${WORLD}/usr/local
                     39:        install -d ${WORLD}/usr/local/bin
                     40:        install -d ${WORLD}/usr/local/include
                     41:        install -d ${WORLD}/usr/local/lib
                     42:        install -d ${WORLD}/usr/local/libdata
                     43:        install -d ${WORLD}/usr/local/sbin
                     44: 
                     45: }
                     46: 
                     47: clean_bootstrap()
                     48: {
                     49:        echo "+++ Clean ELWIX pkgsrc bootstrap tools ..."
                     50: 
1.5.4.1 ! misho      51:        rm -Rf ${WORLD}/usr/pkgsrc/bootstrap/work
1.2       misho      52:        rm -f /elwix ${WORLD}/usr/pkgsrc
1.5.4.1 ! misho      53:        rm -Rf ${WORLD}/elwix
1.2       misho      54:        install -d ${WORLD}/elwix
                     55:        ln -sf ${WORLD}/elwix /elwix
                     56:        ln -sf ${PKGSRC} ${WORLD}/usr/pkgsrc
                     57: 
                     58:        install -d ${PKGDIR}
                     59:        install -d ${PKGDIR}/db
                     60:        install -d ${PKGDIR}/etc
                     61: }
                     62: 
1.5.4.1 ! misho      63: compile_deps()
        !            64: {
        !            65:        echo "+++ Compile ELWIX programs bootstrap tools ..."
        !            66:        cd tools
        !            67:        make obj
        !            68:        make depend
        !            69:        make
        !            70:        make install
        !            71:        cd -
        !            72: }
        !            73: 
1.2       misho      74: compile_bootstrap()
                     75: {
                     76:        echo "+++ Compile ELWIX pkgsrc bootstrap tools ..."
                     77:        if [ ! -d ${WORLD}/usr/pkgsrc/bootstrap/work ]; then
                     78:                cd ${WORLD}/usr/pkgsrc/bootstrap
1.5.4.1 ! misho      79:                ./cleanup --prefix /elwix/pkg --pkgdbdir /elwix/pkg/db 
1.2       misho      80:                ./bootstrap --prefix /elwix/pkg --pkgdbdir /elwix/pkg/db
                     81:                cd -
                     82:        else
                     83:                echo " Skip bootstrap pkgsrc - already inited pkgsrc"
                     84:        fi
                     85: 
                     86:        cat >>/elwix/pkg/etc/mk.conf << _EOF
                     87: 
                     88: .if defined(USE_CROSS_COMPILE) && !empty(USE_CROSS_COMPILE:M[yY][eE][sS])
                     89: USE_DESTDIR=           yes
                     90: DEPENDS_TARGET=                package-install
                     91: 
                     92: TOOLDIR=                ${CROSSTOOLDIR}
                     93: CROSS_DESTDIR=         ${WORLD}
                     94: 
                     95: TARGET=                        ${TARGET}
                     96: TARGET_ARCH=           ${TARGET_ARCH}
                     97: MACHINE_PLATFORM=      FreeBSD-${PLATFORM}-${TARGET_ARCH}
                     98: MACHINE_GNU_PLATFORM=  ${TARGET_ARCH}-elwix-freebsd
                     99: 
                    100: PKGSRC_COMPILER=       gcc
                    101: USE_PKGSRC_GCC=                no
                    102: USE_NATIVE_GCC=                yes
                    103: 
                    104: .endif                 # end cross-compilation settings
                    105: _EOF
                    106: 
                    107:        echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix/elwix.ver
                    108: }
                    109: 
                    110: compile_fbsdtools()
                    111: {
                    112:        echo "+++ Compile ELWIX FreeBSD tools ..."
                    113: 
1.3       misho     114:        cd $CROSS_FT_VIMAGE
1.2       misho     115:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    116:                clean DESTDIR=${WORLD}
                    117:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    118:                DESTDIR=${WORLD}
                    119:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    120:                install DESTDIR=${WORLD}
                    121:        cd -
                    122: 
1.3       misho     123:        cd $CROSS_FT_ATH
1.2       misho     124:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    125:                clean DESTDIR=${WORLD}
                    126:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    127:                DESTDIR=${WORLD}
                    128:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.3       misho     129:                install DESTDIR=${WORLD}
1.2       misho     130:        cd -
                    131: 
1.3       misho     132:        cd $CROSS_FT_IPW
1.2       misho     133:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    134:                clean DESTDIR=${WORLD}
                    135:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    136:                DESTDIR=${WORLD}
                    137:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    138:                install DESTDIR=${WORLD}/usr/local/bin
                    139:        cd -
                    140: 
1.3       misho     141:        cd $CROSS_FT_IWI
1.2       misho     142:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    143:                clean DESTDIR=${WORLD}
                    144:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    145:                DESTDIR=${WORLD}
                    146:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.3       misho     147:                install DESTDIR=${WORLD}/usr/local/bin
1.2       misho     148:        cd -
                    149: 
1.3       misho     150:        cd $CROSS_FT_MWL
1.2       misho     151:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    152:                clean DESTDIR=${WORLD}
                    153:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    154:                DESTDIR=${WORLD}
                    155:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    156:                install DESTDIR=${WORLD}
                    157:        cd -
                    158: 
1.3       misho     159:        cd $CROSS_FT_NET80211
1.2       misho     160:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    161:                clean DESTDIR=${WORLD}
                    162:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    163:                DESTDIR=${WORLD}
                    164:        env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    165:                install DESTDIR=${WORLD}
                    166:        cd -
                    167: 
                    168: #      cd $CROSS_FT_WTAP
                    169: #      env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    170: #              clean DESTDIR=${WORLD}
                    171: #      env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    172: #              DESTDIR=${WORLD}
                    173: #      env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
                    174: #              install DESTDIR=${WORLD}
                    175: #      cd -
                    176: }
                    177: 
                    178: compile_files()
                    179: {
                    180:        cd files
                    181:        env MAKEOBJDIRPREFIX=${BSDOBJ} BSDSRC=${BSDSRC} make TARGET=${TARGET} \
                    182:                TARGET_ARCH=${TARGET_ARCH} clean DESTDIR=${WORLD}
                    183:        env MAKEOBJDIRPREFIX=${BSDOBJ} BSDSRC=${BSDSRC} make TARGET=${TARGET} \
                    184:                TARGET_ARCH=${TARGET_ARCH} obj depend DESTDIR=${WORLD}
                    185:        env MAKEOBJDIRPREFIX=${BSDOBJ} BSDSRC=${BSDSRC} make TARGET=${TARGET} \
                    186:                TARGET_ARCH=${TARGET_ARCH} DESTDIR=${WORLD}
                    187:        env MAKEOBJDIRPREFIX=${BSDOBJ} BSDSRC=${BSDSRC} make TARGET=${TARGET} \
                    188:                TARGET_ARCH=${TARGET_ARCH} install DESTDIR=${WORLD}
                    189:        cd -
                    190: 
                    191:        strip -s ${WORLD}/usr/bin/csh
                    192: }
                    193: 
                    194: compile_tools()
                    195: {
                    196:        echo "+++ Compile ELWIX Cross ..."
                    197: 
1.5.4.1 ! misho     198: #      cd $CROSS_AXL
        !           199: #      ${AXL_CFG}
        !           200: #      ${CBUILD} clean
        !           201: #      ${CBUILD}
        !           202: #      ${CBUILD} install
        !           203: #      cd -
1.2       misho     204: 
1.3       misho     205:        cd $CROSS_ELWIX
                    206:        ${ELWIX_CFG}
1.2       misho     207:        ${CBUILD} clean
                    208:        ${CBUILD}
                    209:        ${CBUILD} install
                    210:        cd -
                    211: 
                    212:        cd $CROSS_AITIO
                    213:        ${AITIO_CFG}
                    214:        ${CBUILD} clean
                    215:        ${CBUILD}
                    216:        ${CBUILD} install
                    217:        cd -
                    218: 
                    219:        cd $CROSS_AITCFG
                    220:        ${AITCFG_CFG}
                    221:        ${CBUILD} clean
                    222:        ${CBUILD}
                    223:        ${CBUILD} install
                    224:        cd -
                    225: 
1.5.4.1 ! misho     226:        cd $CROSS_AITSCHED
        !           227:        ${AITSCHED_CFG}
1.2       misho     228:        ${CBUILD} clean
                    229:        ${CBUILD}
                    230:        ${CBUILD} install
                    231:        cd -
                    232: 
1.5.4.1 ! misho     233:        cd $CROSS_AITRPC
        !           234:        ${AITRPC_CFG}
1.2       misho     235:        ${CBUILD} clean
                    236:        ${CBUILD}
                    237:        ${CBUILD} install
                    238:        cd -
                    239: 
                    240:        cd $CROSS_AITWWW
                    241:        ${AITWWW_CFG}
                    242:        ${CBUILD} clean
                    243:        ${CBUILD}
                    244:        ${CBUILD} install
                    245:        cd -
                    246: 
                    247:        cd $CROSS_AITPELCO
                    248:        ${AITPELCO_CFG}
                    249:        ${CBUILD} clean
                    250:        ${CBUILD}
                    251:        ${CBUILD} install
                    252:        cd -
                    253: 
                    254:        cd $CROSS_AITSYNC
                    255:        ${AITSYNC_CFG}
                    256:        ${CBUILD} clean
                    257:        ${CBUILD}
                    258:        ${CBUILD} install
                    259:        cd -
                    260: 
                    261:        cd $CROSS_AITCLI
                    262:        ${AITCLI_CFG}
                    263:        ${CBUILD} clean
                    264:        ${CBUILD}
                    265:        ${CBUILD} install
                    266:        cd -
                    267: 
                    268:        cd $CROSS_AITMQTT
                    269:        ${AITMQTT_CFG}
                    270:        ${CBUILD} clean
                    271:        ${CBUILD}
                    272:        ${CBUILD} install
                    273:        cd -
                    274: 
                    275:        cd $CROSS_EMBEDTOOLS
                    276:        ${EMBEDTOOLS_CFG}
                    277:        ${CBUILD} clean
                    278:        ${CBUILD}
                    279:        ${CBUILD} install
                    280:        cd -
                    281: 
                    282:        cd $CROSS_ANSH
                    283:        ${ANSH_CFG}
                    284:        ${CBUILD} clean
                    285:        ${CBUILD}
                    286:        ${CBUILD} install
                    287:        cd -
                    288: 
                    289:        cd $CROSS_MQTT
                    290:        ${MQTT_CFG}
                    291:        ${CBUILD} clean
                    292:        ${CBUILD}
                    293:        ${CBUILD} install
                    294:        cd -
                    295: 
1.5.4.1 ! misho     296: #      echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/usr/local/elwix.ver
1.2       misho     297: }
                    298: 
                    299: ### main()
                    300: if ! SnitVer ${WORLD}/elwix/elwix.ver; then
1.5.4.1 ! misho     301:        compile_deps || exit 1
        !           302: #      clean_bootstrap
        !           303: #      compile_bootstrap || exit 1
1.2       misho     304: else
                    305:        echo "Skipped ELWIX bootstrap pkgsrc tools build ..."
                    306: fi
                    307: 
1.5.4.1 ! misho     308: V=${VERSION}
        !           309: [ -r ${CENV} ] && . ${CENV}
        !           310: unset INSTALL
        !           311: unset VERSION
        !           312: VERSION="$V"
        !           313: 
1.2       misho     314: if ! SnitVer ${WORLD}/usr/local/elwix.ver; then
                    315:        clean_tools
                    316:        compile_fbsdtools
                    317:        compile_files
                    318:        compile_tools
                    319: else
                    320:        echo "Skipped ELWIX tools build ..."
                    321: fi
                    322: 
                    323: echo "+++ Complete build ELWIX tools"

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>