|
version 1.1.2.4, 2012/03/20 15:10:06
|
version 1.9, 2021/03/11 13:59:50
|
|
Line 1
|
Line 1
|
| #!/bin/sh |
#!/bin/sh |
| # |
# |
| # ELWIX build script for cross | # ELWIX build script for tools |
| # |
# |
| # (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org> |
# (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org> |
| # by Michael Pounov <misho@elwix.org> |
# by Michael Pounov <misho@elwix.org> |
|
Line 15 if [ X"${ELWIX_IS_CONFIGURED}" != X"YES" ]; then
|
Line 15 if [ X"${ELWIX_IS_CONFIGURED}" != X"YES" ]; then
|
| echo |
echo |
| exit 1 |
exit 1 |
| fi |
fi |
| [ -r ${CENV} ] && . ${CENV} | V=${VERSION} |
| | #[ -r ${CENV} ] && . ${CENV} |
| | unset INSTALL |
| | unset VERSION |
| | VERSION="$V" |
| |
|
| |
# Set TARGET_CPUTYPE only for world compiling. Don't use this in kernel build! |
| |
X_TARGET_CPUTYPE="TARGET_CPUTYPE=${TARGET_CPUTYPE}" |
| |
|
| if [ ! -d $BSDSRC ]; then |
if [ ! -d $BSDSRC ]; then |
| echo |
echo |
| echo "ELWIX project is not configured - missing BSD sources !?!" |
echo "ELWIX project is not configured - missing BSD sources !?!" |
|
Line 33 fi
|
Line 40 fi
|
| |
|
| clean_tools() |
clean_tools() |
| { |
{ |
| echo "+++ Clean ELWIX FreeBSD tools ..." | echo "+++ Clean ELWIX FreeBSD tools ... ${WORLD}/usr/local" |
| |
|
| rm -rf ${WORLD}/usr/local |
rm -rf ${WORLD}/usr/local |
| install -d ${WORLD}/usr/local |
install -d ${WORLD}/usr/local |
|
Line 49 clean_bootstrap()
|
Line 56 clean_bootstrap()
|
| { |
{ |
| echo "+++ Clean ELWIX pkgsrc bootstrap tools ..." |
echo "+++ Clean ELWIX pkgsrc bootstrap tools ..." |
| |
|
| rm -rf ${WORLD}/usr/pkgsrc/bootstrap/work | rm -Rf ${WORLD}/usr/pkgsrc/bootstrap/work |
| rm -f /elwix ${WORLD}/usr/pkgsrc |
rm -f /elwix ${WORLD}/usr/pkgsrc |
| rm -rf ${WORLD}/elwix | rm -Rf ${WORLD}/elwix |
| install -d ${WORLD}/elwix |
install -d ${WORLD}/elwix |
| ln -sf ${WORLD}/elwix /elwix |
ln -sf ${WORLD}/elwix /elwix |
| ln -sf ${PKGSRC} ${WORLD}/usr/pkgsrc |
ln -sf ${PKGSRC} ${WORLD}/usr/pkgsrc |
| |
|
| install -d ${PKGDIR} |
install -d ${PKGDIR} |
| install -d ${PKGDIR}/db |
install -d ${PKGDIR}/db |
| |
install -d ${PKGDIR}/etc |
| } |
} |
| |
|
| |
compile_deps() |
| |
{ |
| |
echo "+++ Compile ELWIX programs bootstrap tools ..." |
| |
if [ -d tools -a -f tools/Makefile ]; then |
| |
cd tools |
| |
make cleandepend |
| |
make clean |
| |
make obj |
| |
make |
| |
make install |
| |
cd - |
| |
fi |
| |
} |
| |
|
| compile_bootstrap() |
compile_bootstrap() |
| { |
{ |
| echo "+++ Compile ELWIX pkgsrc bootstrap tools ..." |
echo "+++ Compile ELWIX pkgsrc bootstrap tools ..." |
| if [ ! -d ${WORLD}/usr/pkgsrc/bootstrap/work ]; then |
if [ ! -d ${WORLD}/usr/pkgsrc/bootstrap/work ]; then |
| cd ${WORLD}/usr/pkgsrc/bootstrap |
cd ${WORLD}/usr/pkgsrc/bootstrap |
| |
./cleanup --prefix /elwix/pkg --pkgdbdir /elwix/pkg/db |
| ./bootstrap --prefix /elwix/pkg --pkgdbdir /elwix/pkg/db |
./bootstrap --prefix /elwix/pkg --pkgdbdir /elwix/pkg/db |
| cd - |
cd - |
| else |
else |
| echo " Skip bootstrap pkgsrc - already inited pkgsrc" |
echo " Skip bootstrap pkgsrc - already inited pkgsrc" |
| fi |
fi |
| |
|
| echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix/elwix.ver | cat >>/elwix/pkg/etc/mk.conf << _EOF |
| | |
| | .if defined(USE_CROSS_COMPILE) && !empty(USE_CROSS_COMPILE:M[yY][eE][sS]) |
| | USE_DESTDIR= yes |
| | DEPENDS_TARGET= package-install |
| | |
| | TOOLDIR= ${CROSSTOOLDIR} |
| | CROSS_DESTDIR= ${WORLD} |
| | |
| | TARGET= ${TARGET} |
| | TARGET_ARCH= ${TARGET_ARCH} |
| | MACHINE_PLATFORM= FreeBSD-${PLATFORM}-${TARGET_ARCH} |
| | MACHINE_GNU_PLATFORM= ${TARGET_ARCH}-elwix-freebsd |
| | |
| | PKGSRC_COMPILER= gcc |
| | USE_PKGSRC_GCC= no |
| | USE_NATIVE_GCC= yes |
| | |
| | .endif # end cross-compilation settings |
| | _EOF |
| } |
} |
| |
|
| compile_fbsdtools() |
compile_fbsdtools() |
| { |
{ |
| echo "+++ Compile ELWIX FreeBSD tools ..." |
echo "+++ Compile ELWIX FreeBSD tools ..." |
| |
|
| |
if [ "$(uname -m)" != ${TARGET} ]; then |
| |
BSDSTATDIR="${BSDOBJ}/${TARGET}.${TARGET_ARCH}${BSDSRC}/lib/libbsdstat" |
| |
else |
| |
BSDSTATDIR="${BSDOBJ}${BSDSRC}/lib/libbsdstat" |
| |
fi |
| |
|
| cd $CROSS_FT_ATH |
cd $CROSS_FT_ATH |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | ${CBUILD} DESTDIR=${WORLD} clean || exit 1 |
| clean DESTDIR=${WORLD} | # cp ${CROSSTOOLDIR}/usr/include/private/bsdstat/bsdstat.h ${BSDTOOLS}/ath/common || exit 1 |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | ${CBUILD} DESTDIR=${WORLD} LIBBSDSTATDIR="${BSDSTATDIR}" || exit 1 |
| DESTDIR=${WORLD} | ${CBUILD} DESTDIR=${WORLD} install || exit 1 |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | |
| install DESTDIR=${WORLD} | |
| cd - |
cd - |
| |
|
| cd $CROSS_FT_IPW | cd $CROSS_FT_CXGB |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | ${CBUILD} DESTDIR=${WORLD} clean || exit 1 |
| clean DESTDIR=${WORLD} | ${CBUILD} DESTDIR=${WORLD} || exit 1 |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | ${CBUILD} DESTDIR=${WORLD}/usr/local/bin BINDIR="" install || exit 1 |
| DESTDIR=${WORLD} | |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | |
| install DESTDIR=${WORLD}/usr/local/bin | |
| cd - |
cd - |
| |
|
| cd $CROSS_FT_IWI | cd $CROSS_FT_IFINFO |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | ${CBUILD} DESTDIR=${WORLD} clean || exit 1 |
| clean DESTDIR=${WORLD} | ${CBUILD} DESTDIR=${WORLD} || exit 1 |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | ${CBUILD} DESTDIR=${WORLD}/usr/local/bin BINDIR="" install || exit 1 |
| DESTDIR=${WORLD} | |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | |
| install DESTDIR=${WORLD}/usr/local/bin | |
| cd - |
cd - |
| |
|
| cd $CROSS_FT_MWL | # cd $CROSS_FT_MCTEST |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | # ${CBUILD} DESTDIR=${WORLD} clean || exit 1 |
| clean DESTDIR=${WORLD} | # ${CBUILD} DESTDIR=${WORLD} MK_MAN="no" || exit 1 |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | # ${CBUILD} DESTDIR=${WORLD}/usr/local/bin MK_MAN="no" BINDIR="" install || exit 1 |
| DESTDIR=${WORLD} | # cd - |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | |
| install DESTDIR=${WORLD} | |
| cd - | |
| |
|
| cd $CROSS_FT_NET80211 | # cd $CROSS_FT_NETMAP |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | # ${CBUILD} DESTDIR=${WORLD} clean || exit 1 |
| clean DESTDIR=${WORLD} | # ${CBUILD} DESTDIR=${WORLD} || exit 1 |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | # ${CBUILD} DESTDIR=${WORLD}/usr/local/bin BINDIR="" install || exit 1 |
| DESTDIR=${WORLD} | |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | |
| install DESTDIR=${WORLD} | |
| cd - | |
| |
| cd $CROSS_FT_VIMAGE | |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | |
| clean DESTDIR=${WORLD} | |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | |
| DESTDIR=${WORLD} | |
| env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | |
| install DESTDIR=${WORLD} | |
| cd - | |
| |
| # cd $CROSS_FT_WTAP | |
| # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | |
| # clean DESTDIR=${WORLD} | |
| # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | |
| # DESTDIR=${WORLD} | |
| # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ | |
| # install DESTDIR=${WORLD} | |
| # cd - |
# cd - |
| } |
|
| |
|
| compile_tools() | cd $CROSS_FT_NETBLAST |
| { | ${CBUILD} DESTDIR=${WORLD} clean || exit 1 |
| echo "+++ Compile ELWIX Cross ..." | ${CBUILD} DESTDIR=${WORLD} || exit 1 |
| ${CBUILD} DESTDIR=${WORLD}/usr/local/bin BINDIR="" install || exit 1 |
| unset INSTALL | |
| |
| cd $CROSS_AXL | |
| ${AXL_CFG} | |
| ${CBUILD} clean | |
| ${CBUILD} | |
| ${CBUILD} install | |
| cd - |
cd - |
| |
|
| cd $CROSS_AITIO | cd $CROSS_FT_NETRCV |
| ${AITIO_CFG} | ${CBUILD} DESTDIR=${WORLD} clean || exit 1 |
| ${CBUILD} clean | ${CBUILD} DESTDIR=${WORLD} || exit 1 |
| ${CBUILD} | ${CBUILD} DESTDIR=${WORLD}/usr/local/bin BINDIR="" install || exit 1 |
| ${CBUILD} install | |
| cd - |
cd - |
| |
|
| cd $CROSS_AITCRC | cd $CROSS_FT_NETSND |
| ${AITCRC_CFG} | ${CBUILD} DESTDIR=${WORLD} clean || exit 1 |
| ${CBUILD} clean | ${CBUILD} DESTDIR=${WORLD} || exit 1 |
| ${CBUILD} | ${CBUILD} DESTDIR=${WORLD}/usr/local/bin BINDIR="" install || exit 1 |
| ${CBUILD} install | |
| cd - |
cd - |
| |
} |
| |
|
| cd $CROSS_AITCFG | compile_files() |
| ${AITCFG_CFG} | { |
| ${CBUILD} clean | cd files |
| ${CBUILD} | ${CBUILD} DESTDIR=${WORLD} clean || exit 1 |
| ${CBUILD} install | ${CBUILD} DESTDIR=${WORLD} obj || exit 1 |
| | ${CBUILD} DESTDIR=${WORLD} depend || exit 1 |
| | ${CBUILD} DESTDIR=${WORLD} || exit 1 |
| | ${CBUILD} DESTDIR=${WORLD} install || exit 1 |
| cd - |
cd - |
| |
} |
| |
|
| cd $CROSS_AITSESS | compile_sw() |
| ${AITSESS_CFG} | { |
| ${CBUILD} clean | CROSS_OPTS=$(eval echo "\$$2_OPTS") |
| ${CBUILD} | |
| ${CBUILD} install | |
| cd - | |
| |
|
| cd $CROSS_AITRPC | cd $1$2 |
| ${AITRPC_CFG} | ${CEXEC} INSTALL="/usr/bin/install" ./configure $CROSS_OPTS ${CROSS_PFX} |
| ${CBUILD} clean |
${CBUILD} clean |
| ${CBUILD} |
${CBUILD} |
| ${CBUILD} install |
${CBUILD} install |
| cd - |
cd - |
| |
} |
| |
|
| cd $CROSS_AITSCHED | compile_tools() |
| ${AITSCHED_CFG} | { |
| ${CBUILD} clean | echo "+++ Compile ELWIX Cross ..." |
| ${CBUILD} | |
| ${CBUILD} install | |
| cd - | |
| |
|
| cd $CROSS_AITWWW | for i in ${CROSS_TOOLS}; do |
| ${AITWWW_CFG} | if [ -d "${CROSS_PATH}$i" ]; then |
| ${CBUILD} clean | compile_sw ${CROSS_PATH} $i |
| ${CBUILD} | else |
| ${CBUILD} install | Die "Error:: ${CROSS_PATH}$i not found!" |
| cd - | fi |
| | done |
| | } |
| |
|
| cd $CROSS_AITPELCO | install_tools() |
| ${AITPELCO_CFG} | { |
| ${CBUILD} clean | LIBS="${ROMFS_USR2}/lib" |
| ${CBUILD} | LIBEXEC="${ROMFS_USR2}/libexec" |
| ${CBUILD} install | BIN="${ROMFS_USR2}/bin" |
| cd - | SBIN="${ROMFS_USR2}/sbin" |
| | ETC="${ROMFS_USR2}/etc" |
| |
|
| cd $CROSS_AITPWD | echo "+++ Install ELWIX RomFS secondary firmware ... ${ROMFS_USR2}" |
| ${AITPWD_CFG} | |
| ${CBUILD} clean | |
| ${CBUILD} | |
| ${CBUILD} install | |
| cd - | |
| |
|
| cd $CROSS_AITSYNC | StripFiles \*.so\* ${PKG}/lib |
| ${AITSYNC_CFG} | InstallFiles \*.so\* ${PKG}/lib $LIBS |
| ${CBUILD} clean | StripFiles \* ${PKG}/libexec |
| ${CBUILD} | InstallFiles \* ${PKG}/libexec $LIBEXEC |
| ${CBUILD} install | StripFiles \* ${PKG}/bin |
| cd - | InstallFiles \* ${PKG}/bin $BIN |
| | StripFiles \* ${PKG}/sbin |
| | InstallFiles \* ${PKG}/sbin $SBIN |
| |
|
| cd $CROSS_AITCLI | InstallFiles \* ${PKG}/etc $ETC |
| ${AITCLI_CFG} | |
| ${CBUILD} clean | |
| ${CBUILD} | |
| ${CBUILD} install | |
| cd - | |
| |
|
| cd $CROSS_AITMQTT | chown -R root:wheel $SBIN $BIN $LIBDATA $LIBEXEC $LIBS |
| ${AITMQTT_CFG} | } |
| ${CBUILD} clean | |
| ${CBUILD} | |
| ${CBUILD} install | |
| cd - | |
| |
|
| cd $CROSS_EMBEDTOOLS | build_tools() |
| ${EMBEDTOOLS_CFG} | { |
| ${CBUILD} clean | echo "+++ Build ELWIX core firmware image ... ${WORLD}/usr/local --> ${REL}/${LOCALFS_IMG}" |
| ${CBUILD} | |
| ${CBUILD} install | |
| cd - | |
| |
|
| cd $CROSS_ANSH | cd ${WORLD}/usr/local |
| ${ANSH_CFG} | find . -name ".debug" -exec rm -rf {} \; |
| ${CBUILD} clean | pax -w -z -v -f${REL}/${LOCALFS_IMG} . |
| ${CBUILD} | |
| ${CBUILD} install | |
| cd - |
cd - |
| |
|
| echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/usr/local/elwix.ver | echo "+++ Completed ELWIX core firmware image ... ${REL}/${LOCALFS_IMG}" |
| } |
} |
| |
|
| ### main() |
### main() |
| if SnitVer ${WORLD}/elwix/elwix.ver; then | if [ -n "${1}" ]; then |
| clean_bootstrap | rm ${WORLD}/usr/local/elwix.ver |
| compile_bootstrap | |
| else | |
| echo "Skipped ELWIX bootstrap pkgsrc tools build ..." | |
| fi |
fi |
| |
|
| if SnitVer ${WORLD}/usr/local/elwix.ver; then | if [ "${COMPILE_DEPTOOLS}" = "YES" ]; then |
| clean_tools | compile_deps || exit 1 |
| compile_fbsdtools | fi |
| compile_tools | |
| | #if ! SnitVer ${WORLD}/elwix/elwix.ver; then |
| | # clean_bootstrap |
| | # compile_bootstrap || exit 1 |
| | # |
| | # echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix/elwix.ver |
| | #else |
| | # echo "Skipped ELWIX bootstrap pkgsrc tools build ..." |
| | #fi |
| | |
| | if ! SnitVer ${WORLD}/usr/local/elwix.ver; then |
| | clean_tools || exit 1 |
| | |
| | compile_fbsdtools || exit 1 |
| | compile_files || exit 1 |
| | compile_tools || exit 1 |
| | |
| | build_tools || exit 1 |
| | |
| | echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/usr/local/elwix.ver |
| else |
else |
| echo "Skipped ELWIX tools build ..." |
echo "Skipped ELWIX tools build ..." |
| fi |
fi |