Annotation of elwix/build_tools.sh, revision 1.7

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.7     ! misho       8: # $Id: build_tools.sh,v 1.6.6.10 2014/09/11 22:55:36 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: V=${VERSION}
1.7     ! misho      19: #[ -r ${CENV} ] && . ${CENV}
1.2       misho      20: unset INSTALL
                     21: unset VERSION
                     22: VERSION="$V"
                     23: 
1.7     ! misho      24: # Set TARGET_CPUTYPE only for world compiling. Don't use this in kernel build!
        !            25: X_TARGET_CPUTYPE="TARGET_CPUTYPE=${TARGET_CPUTYPE}"
1.6       misho      26: 
1.2       misho      27: if [ ! -d $BSDSRC ]; then
                     28:        echo
                     29:        echo "ELWIX project is not configured - missing BSD sources !?!"
                     30:        echo
                     31:        exit 1
                     32: fi
                     33: 
                     34: if [ ! -d $DEST ]; then
                     35:        echo
                     36:        echo "ELWIX project is not configured - missing Dest directory !?!"
                     37:        echo
                     38:        exit 1
                     39: fi
                     40: 
                     41: clean_tools()
                     42: {
                     43:        echo "+++ Clean ELWIX FreeBSD tools ..."
                     44: 
                     45:        rm -rf ${WORLD}/usr/local
                     46:        install -d ${WORLD}/usr/local
                     47:        install -d ${WORLD}/usr/local/bin
                     48:        install -d ${WORLD}/usr/local/include
                     49:        install -d ${WORLD}/usr/local/lib
                     50:        install -d ${WORLD}/usr/local/libdata
                     51:        install -d ${WORLD}/usr/local/sbin
                     52: 
                     53: }
                     54: 
                     55: clean_bootstrap()
                     56: {
                     57:        echo "+++ Clean ELWIX pkgsrc bootstrap tools ..."
                     58: 
1.6       misho      59:        rm -Rf ${WORLD}/usr/pkgsrc/bootstrap/work
1.2       misho      60:        rm -f /elwix ${WORLD}/usr/pkgsrc
1.6       misho      61:        rm -Rf ${WORLD}/elwix
1.2       misho      62:        install -d ${WORLD}/elwix
                     63:        ln -sf ${WORLD}/elwix /elwix
                     64:        ln -sf ${PKGSRC} ${WORLD}/usr/pkgsrc
                     65: 
                     66:        install -d ${PKGDIR}
                     67:        install -d ${PKGDIR}/db
                     68:        install -d ${PKGDIR}/etc
                     69: }
                     70: 
1.6       misho      71: compile_deps()
                     72: {
                     73:        echo "+++ Compile ELWIX programs bootstrap tools ..."
                     74:        if [ -d tools -a -f tools/Makefile ]; then
                     75:                cd tools
                     76:                make cleandepend
                     77:                make clean
                     78:                make obj
                     79:                make
                     80:                make install
                     81:                cd -
                     82:        fi
                     83: }
                     84: 
1.2       misho      85: compile_bootstrap()
                     86: {
                     87:        echo "+++ Compile ELWIX pkgsrc bootstrap tools ..."
                     88:        if [ ! -d ${WORLD}/usr/pkgsrc/bootstrap/work ]; then
                     89:                cd ${WORLD}/usr/pkgsrc/bootstrap
1.6       misho      90:                ./cleanup --prefix /elwix/pkg --pkgdbdir /elwix/pkg/db 
1.2       misho      91:                ./bootstrap --prefix /elwix/pkg --pkgdbdir /elwix/pkg/db
                     92:                cd -
                     93:        else
                     94:                echo " Skip bootstrap pkgsrc - already inited pkgsrc"
                     95:        fi
                     96: 
                     97:        cat >>/elwix/pkg/etc/mk.conf << _EOF
                     98: 
                     99: .if defined(USE_CROSS_COMPILE) && !empty(USE_CROSS_COMPILE:M[yY][eE][sS])
                    100: USE_DESTDIR=           yes
                    101: DEPENDS_TARGET=                package-install
                    102: 
                    103: TOOLDIR=                ${CROSSTOOLDIR}
                    104: CROSS_DESTDIR=         ${WORLD}
                    105: 
                    106: TARGET=                        ${TARGET}
                    107: TARGET_ARCH=           ${TARGET_ARCH}
                    108: MACHINE_PLATFORM=      FreeBSD-${PLATFORM}-${TARGET_ARCH}
                    109: MACHINE_GNU_PLATFORM=  ${TARGET_ARCH}-elwix-freebsd
                    110: 
                    111: PKGSRC_COMPILER=       gcc
                    112: USE_PKGSRC_GCC=                no
                    113: USE_NATIVE_GCC=                yes
                    114: 
                    115: .endif                 # end cross-compilation settings
                    116: _EOF
                    117: }
                    118: 
                    119: compile_fbsdtools()
                    120: {
                    121:        echo "+++ Compile ELWIX FreeBSD tools ..."
                    122: 
1.3       misho     123:        cd $CROSS_FT_VIMAGE
1.7     ! misho     124:        ${CBUILD} DESTDIR=${WORLD} clean
        !           125:        ${CBUILD} DESTDIR=${WORLD}
        !           126:        ${CBUILD} DESTDIR=${WORLD} install
1.2       misho     127:        cd -
                    128: 
1.3       misho     129:        cd $CROSS_FT_ATH
1.7     ! misho     130:        ${CBUILD} DESTDIR=${WORLD} clean
        !           131:        ${CBUILD} DESTDIR=${WORLD} LIBBSDSTATDIR="${BSDOBJ}${BSDSRC}/lib/libbsdstat"
        !           132:        ${CBUILD} DESTDIR=${WORLD} install
        !           133:        cd -
        !           134: 
        !           135:        cd $CROSS_FT_NET80211/wlanstats
        !           136:        ${CBUILD} DESTDIR=${WORLD} clean
        !           137:        ${CBUILD} DESTDIR=${WORLD} LIBBSDSTATDIR="${BSDOBJ}${BSDSRC}/lib/libbsdstat"
        !           138:        ${CBUILD} DESTDIR=${WORLD} install
1.2       misho     139:        cd -
                    140: 
1.3       misho     141:        cd $CROSS_FT_IPW
1.7     ! misho     142:        ${CBUILD} DESTDIR=${WORLD} clean
        !           143:        ${CBUILD} DESTDIR=${WORLD}
        !           144:        ${CBUILD} DESTDIR=${WORLD}/usr/local/bin install
1.2       misho     145:        cd -
                    146: 
1.3       misho     147:        cd $CROSS_FT_IWI
1.7     ! misho     148:        ${CBUILD} DESTDIR=${WORLD} clean
        !           149:        ${CBUILD} DESTDIR=${WORLD}
        !           150:        ${CBUILD} DESTDIR=${WORLD}/usr/local/bin install
1.2       misho     151:        cd -
                    152: 
1.3       misho     153:        cd $CROSS_FT_MWL
1.7     ! misho     154:        ${CBUILD} DESTDIR=${WORLD} clean
        !           155:        ${CBUILD} DESTDIR=${WORLD} LIBBSDSTATDIR="${BSDOBJ}${BSDSRC}/lib/libbsdstat"
        !           156:        ${CBUILD} DESTDIR=${WORLD} install
1.2       misho     157:        cd -
                    158: }
                    159: 
                    160: compile_files()
                    161: {
                    162:        cd files
1.7     ! misho     163:        ${CBUILD} DESTDIR=${WORLD} clean
        !           164:        ${CBUILD} DESTDIR=${WORLD} obj
        !           165:        ${CBUILD} DESTDIR=${WORLD} depend 
        !           166:        ${CBUILD} DESTDIR=${WORLD}
        !           167:        ${CBUILD} DESTDIR=${WORLD} install 
1.2       misho     168:        cd -
                    169: }
                    170: 
                    171: compile_tools()
                    172: {
                    173:        echo "+++ Compile ELWIX Cross ..."
                    174: 
1.7     ! misho     175: #      cd $CROSS_AXL
        !           176: #      ${AXL_CFG}
        !           177: #      ${CBUILD} clean
        !           178: #      ${CBUILD}
        !           179: #      ${CBUILD} install
        !           180: #      cd -
        !           181: 
        !           182:        cd $CROSS_ELWIX
        !           183:        ${ELWIX_CFG}
1.2       misho     184:        ${CBUILD} clean
                    185:        ${CBUILD}
                    186:        ${CBUILD} install
                    187:        cd -
                    188: 
1.7     ! misho     189:        cd $CROSS_AITSCHED
        !           190:        ${AITSCHED_CFG}
1.2       misho     191:        ${CBUILD} clean
                    192:        ${CBUILD}
                    193:        ${CBUILD} install
                    194:        cd -
                    195: 
                    196:        cd $CROSS_AITIO
                    197:        ${AITIO_CFG}
                    198:        ${CBUILD} clean
                    199:        ${CBUILD}
                    200:        ${CBUILD} install
                    201:        cd -
                    202: 
                    203:        cd $CROSS_AITCFG
                    204:        ${AITCFG_CFG}
                    205:        ${CBUILD} clean
                    206:        ${CBUILD}
                    207:        ${CBUILD} install
                    208:        cd -
                    209: 
1.6       misho     210:        cd $CROSS_AITRPC
                    211:        ${AITRPC_CFG}
1.2       misho     212:        ${CBUILD} clean
                    213:        ${CBUILD}
                    214:        ${CBUILD} install
                    215:        cd -
                    216: 
                    217:        cd $CROSS_AITWWW
                    218:        ${AITWWW_CFG}
                    219:        ${CBUILD} clean
                    220:        ${CBUILD}
                    221:        ${CBUILD} install
                    222:        cd -
                    223: 
                    224:        cd $CROSS_AITPELCO
                    225:        ${AITPELCO_CFG}
                    226:        ${CBUILD} clean
                    227:        ${CBUILD}
                    228:        ${CBUILD} install
                    229:        cd -
                    230: 
                    231:        cd $CROSS_AITSYNC
                    232:        ${AITSYNC_CFG}
                    233:        ${CBUILD} clean
                    234:        ${CBUILD}
                    235:        ${CBUILD} install
                    236:        cd -
                    237: 
                    238:        cd $CROSS_AITCLI
                    239:        ${AITCLI_CFG}
                    240:        ${CBUILD} clean
                    241:        ${CBUILD}
                    242:        ${CBUILD} install
                    243:        cd -
                    244: 
                    245:        cd $CROSS_AITMQTT
                    246:        ${AITMQTT_CFG}
                    247:        ${CBUILD} clean
                    248:        ${CBUILD}
                    249:        ${CBUILD} install
                    250:        cd -
                    251: 
                    252:        cd $CROSS_EMBEDTOOLS
                    253:        ${EMBEDTOOLS_CFG}
                    254:        ${CBUILD} clean
                    255:        ${CBUILD}
                    256:        ${CBUILD} install
                    257:        cd -
                    258: 
                    259:        cd $CROSS_ANSH
                    260:        ${ANSH_CFG}
                    261:        ${CBUILD} clean
                    262:        ${CBUILD}
                    263:        ${CBUILD} install
                    264:        cd -
                    265: 
                    266:        cd $CROSS_MQTT
                    267:        ${MQTT_CFG}
                    268:        ${CBUILD} clean
                    269:        ${CBUILD}
                    270:        ${CBUILD} install
                    271:        cd -
                    272: 
1.6       misho     273:        cd $CROSS_WIFINATOR
                    274:        ${WIFINATOR_CFG}
                    275:        ${CBUILD} clean
                    276:        ${CBUILD}
                    277:        ${CBUILD} install
                    278:        cd -
1.7     ! misho     279: 
        !           280:        cd $CROSS_TFTPD
        !           281:        ${TFTPD_CFG}
        !           282:        ${CBUILD} clean
        !           283:        ${CBUILD}
        !           284:        ${CBUILD} install
        !           285:        cd -
1.6       misho     286: }
                    287: 
                    288: install_tools()
                    289: {
                    290:        LIBS="${ROMFS_USR2}/lib"
                    291:        LIBEXEC="${ROMFS_USR2}/libexec"
                    292:        BIN="${ROMFS_USR2}/bin"
                    293:        SBIN="${ROMFS_USR2}/sbin"
                    294:        ETC="${ROMFS_USR2}/etc"
                    295: 
                    296:        echo "+++ Install ELWIX RomFS secondary firmware ..."
                    297: 
                    298:        StripFiles \*.so\* ${PKG}/lib
                    299:        InstallFiles \*.so\* ${PKG}/lib $LIBS
                    300:        StripFiles \* ${PKG}/libexec
                    301:        InstallFiles \* ${PKG}/libexec $LIBEXEC
                    302:        StripFiles \* ${PKG}/bin
                    303:        InstallFiles \* ${PKG}/bin $BIN
                    304:        StripFiles \* ${PKG}/sbin
                    305:        InstallFiles \* ${PKG}/sbin $SBIN
                    306: 
                    307:        InstallFiles \* ${PKG}/etc $ETC
                    308: 
                    309:        chown -R root:wheel $SBIN $BIN $LIBDATA $LIBEXEC $LIBS
                    310: }
                    311: 
                    312: build_tools()
                    313: {
                    314:        echo "+++ Build ELWIX core firmware image ..."
                    315: 
                    316:        cd ${WORLD}/usr/local
                    317:        pax -w -z -v -f${REL}/${LOCALFS_IMG} .
                    318:        cd -
1.2       misho     319: }
                    320: 
                    321: ### main()
1.7     ! misho     322: compile_deps || exit 1
1.6       misho     323: 
1.7     ! misho     324: #if ! SnitVer ${WORLD}/elwix/elwix.ver; then
        !           325: #      clean_bootstrap
        !           326: #      compile_bootstrap || exit 1
        !           327: #
        !           328: #      echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix/elwix.ver
        !           329: #else
        !           330: #      echo "Skipped ELWIX bootstrap pkgsrc tools build ..."
        !           331: #fi
1.2       misho     332: 
                    333: if ! SnitVer ${WORLD}/usr/local/elwix.ver; then
1.7     ! misho     334:        clean_tools || exit 1
        !           335: 
        !           336:        compile_fbsdtools || exit 1
        !           337:        compile_files || exit 1
        !           338:        compile_tools || exit 1
        !           339: 
        !           340:        build_tools || exit 1
1.6       misho     341: 
                    342:        echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/usr/local/elwix.ver
1.2       misho     343: else
                    344:        echo "Skipped ELWIX tools build ..."
                    345: fi
                    346: 
                    347: echo "+++ Complete build ELWIX tools"

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