File:  [ELWIX - Embedded LightWeight unIX -] / elwix / build_tools.sh
Revision 1.5.4.3: download - view: text, annotated - select for diffs - revision graph
Wed May 22 15:29:14 2013 UTC (11 years, 1 month ago) by misho
Branches: elwix1_9_mips
Diff to: branchpoint 1.5: preferred, unified
finish cross compile compat

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

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