File:  [ELWIX - Embedded LightWeight unIX -] / elwix / build_tools.sh
Revision 1.6.6.2: download - view: text, annotated - select for diffs - revision graph
Wed Jan 15 08:44:56 2014 UTC (10 years, 5 months ago) by misho
Branches: elwix2_2
Diff to: branchpoint 1.6: preferred, unified
add separate make config

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

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