Annotation of elwix/build_romfs.sh, revision 1.1
1.1 ! misho 1: #!/bin/sh
! 2: #
! 3: # ELWIX Build script for ELWIX userland RomFS firmware
! 4: #
! 5: # (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org>
! 6: # by Michael Pounov <misho@elwix.org>
! 7: #
! 8: # $Id:$
! 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 [ "${USER}" != "root" ]; then
! 27: echo
! 28: echo "ELWIX project is not configured - RomFS must build under root !?!"
! 29: echo
! 30: exit 1
! 31: fi
! 32:
! 33: clean_romfs()
! 34: {
! 35: echo "+++ Clean ELWIX RomFS firmware ..."
! 36: chflags -Rf noschg $ROMFS
! 37: rm -rf $ROMFS
! 38:
! 39: echo "+++ Clean ELWIX RomFS image ..."
! 40: rm -f $REL/$ROMFS_IMG
! 41: }
! 42:
! 43: build_romfs()
! 44: {
! 45: echo "+++ Build ELWIX RomFS directory ..."
! 46: mkdir -p $ROMFS_USR
! 47:
! 48: cd $ROMFS_USR
! 49:
! 50: install -d bin;
! 51: install -d sbin;
! 52: install -d lib;
! 53: install -d lib/geom;
! 54: install -d libdata;
! 55: install -d libexec;
! 56: install -d share;
! 57: install -d share/misc;
! 58: install -d share/skel;
! 59: install -d share/zoneinfo;
! 60:
! 61: ln -s /elwix/local local;
! 62:
! 63: chown -hR root:wheel .
! 64: cd -
! 65: }
! 66:
! 67: install_romfs()
! 68: {
! 69: LIBS="${ROMFS_USR}/lib"
! 70: LIBEXEC="${ROMFS_USR}/libexec"
! 71: SKEL="${ROMFS_USR}/share/skel"
! 72: MISC="${ROMFS_USR}/share/misc"
! 73: BIN="${ROMFS_USR}/bin"
! 74: SBIN="${ROMFS_USR}/sbin"
! 75:
! 76: echo "+++ Install ELWIX RomFS software ..."
! 77: if [ -r ${BSDSRC}/release/picobsd/mfs_tree/etc/termcap ]; then
! 78: install -v -m 644 ${BSDSRC}/release/picobsd/mfs_tree/etc/termcap $MISC;
! 79: install -v -m 644 ${BSDSRC}/release/picobsd/mfs_tree/etc/services $MISC;
! 80: else
! 81: install -v -m 644 ${BSDSRC}/etc/termcap.small $MISC/termcap;
! 82: install -v -m 644 ${BSDSRC}/etc/services $MISC;
! 83: fi
! 84:
! 85: install -v -m 0555 /libexec/ld-elf.so.1 ${ROMFS_USR}/libexec
! 86:
! 87: install -v ${CFGDIR}/root.skel/cshrc $SKEL/dot.cshrc;
! 88: install -v ${CFGDIR}/root.skel/login $SKEL/dot.login;
! 89: install -v ${CFGDIR}/root.skel/logout $SKEL/dot.logout;
! 90: install -v ${CFGDIR}/root.skel/profile $SKEL/dot.profile;
! 91: install -v ${CFGDIR}/root.skel/vimrc $SKEL/dot.vimrc;
! 92:
! 93: find ${WORLD}/lib -type f -name \*.so.\* -exec install {} $LIBS \;
! 94: find ${WORLD}/lib -type f -name libalias_\*.so -exec install {} $LIBS \;
! 95: find ${WORLD}/lib/geom -type f -name \*.so -exec install {} $LIBS/geom \;
! 96: find ${WORLD}/usr/lib -type f -name \*.so.\* -exec install {} $LIBS \;
! 97:
! 98: InstallList ${ELWIX_ROMFS} ${WORLD} ${ROMFS}
! 99:
! 100: InstallProg ${ELWIX_LIB_AITIO} $LIBS;
! 101: InstallProg ${ELWIX_LIB_AITCRC} $LIBS;
! 102: InstallProg ${ELWIX_LIB_AITCFG} $LIBS;
! 103: InstallProg ${ELWIX_LIB_AITSESS} $LIBS;
! 104: InstallProg ${ELWIX_LIB_AITRPC} $LIBS;
! 105: InstallProg ${ELWIX_LIB_AITPELCO} $LIBS;
! 106: InstallProg ${ELWIX_LIB_AITPWD} $LIBS;
! 107: InstallProg ${ELWIX_LIB_AITSYNC} $LIBS;
! 108: InstallProg ${ELWIX_LIB_AITCLI} $LIBS;
! 109:
! 110: InstallProg ${AXL_LIB} $LIBS;
! 111: InstallProg ${AXL_LIB_NS} $LIBS;
! 112: InstallProg ${AXL_LIB_BABEL} $LIBS;
! 113:
! 114: # find $PKG/elwix_tools/bin -type f -perm +111 -exec install -v {} $BIN \;
! 115: # find $PKG/elwix_tools/sbin -type f -perm +111 -exec install -v {} $SBIN \;
! 116:
! 117: # content of OS from 3th party software
! 118: # echo "+++ Install elwix additional programes ..."
! 119: # install -v -m 0111 $PKG/sudo/sudoreplay $BIN;
! 120: # install -v -o root -g wheel -m 4111 $PKG/sudo/sudo $BIN;
! 121: # ln -f $BIN/sudo $BIN/sudoedit;
! 122: # install -v -m 0111 $PKG/sudo/visudo $SBIN;
! 123: # install -v $PKG/sudo/.libs/libsudo_noexec.so $LIBS;
! 124: #
! 125: # install -v $PKG/ttcp/ttcp $BIN;
! 126: # install -v $PKG/ntpd/ntpd $SBIN;
! 127: # install -v $PKG/choparp/choparp $SBIN;
! 128: # install -v $PKG/ipguard/ipguard $SBIN;
! 129: # install -v $PKG/mini_sendmail/mini_sendmail $SBIN/sendmail;
! 130: #
! 131: # install -v $PKG/pftop/pftop $BIN;
! 132: # install -v $PKG/pfflowd/pfflowd $SBIN;
! 133: #
! 134: # install -v $PKG/dhcp/work.freebsd/dhcpctl/omshell $BIN;
! 135: # install -v $PKG/dhcp/work.freebsd/server/dhcpd $SBIN;
! 136: # install -v $PKG/dhcp/work.freebsd/relay/dhcrelay $SBIN;
! 137: # install -v $PKG/dhcping/dhcping $SBIN;
! 138: # install -v $PKG/dhcdrop/src/dhcdrop $SBIN;
! 139: #
! 140: # install -v $PKG/mrouted/map-mbone $SBIN;
! 141: # install -v $PKG/mrouted/mrinfo $SBIN;
! 142: # install -v $PKG/mrouted/mrouted $SBIN;
! 143: #
! 144: # install -v $PKG/bmon/src/bmon $BIN;
! 145: # install -v $PKG/iftop/iftop $BIN;
! 146: # install -v $PKG/trafshow/trafshow $BIN;
! 147: #
! 148: # install -v $PKG/libevent/.libs/libevent-1.4.so.4 $LIBS;
! 149: # install -v $PKG/libevent/.libs/libevent_extra-1.4.so.4 $LIBS;
! 150: # install -v $PKG/expat/.libs/libexpat.so.6 $LIBS;
! 151: # install -v $PKG/libpdel/libpdel.so.0 $LIBS;
! 152: #
! 153: # install -v $PKG/mpd/src/mpd5 $SBIN;
! 154: # install -v $PKG/ifstated/ifstated $SBIN;
! 155: #
! 156: # install -v $PKG/ipsec-tools/src/libipsec/.libs/libipsec.so.0 $LIBS;
! 157: # install -v $PKG/ipsec-tools/src/racoon/.libs/libracoon.so.0 $LIBS;
! 158: # install -v $PKG/ipsec-tools/src/racoon/eaytest $BIN;
! 159: # install -v $PKG/ipsec-tools/src/racoon/plainrsa-gen $BIN;
! 160: # install -v $PKG/ipsec-tools/src/racoon/.libs/racoonctl $BIN;
! 161: # install -v $PKG/ipsec-tools/src/racoon/.libs/racoon $SBIN;
! 162: # install -v $PKG/ipsec-tools/src/setkey/.libs/setkey $BIN;
! 163: #
! 164: # install -v $PKG/arping/src/arping $SBIN;
! 165: # install -v $PKG/hping2/hping2 $SBIN;
! 166: # install -v $PKG/mtr/mtr $SBIN;
! 167: #
! 168: # install -v $PKG/smartmontools/smartctl $BIN;
! 169: # install -v $PKG/smartmontools/smartd $SBIN;
! 170: #
! 171: # install -v $PKG/conserver/conserver/conserver $SBIN;
! 172: # install -v $PKG/conserver/console/console $BIN;
! 173: #
! 174: ## eeproms for atheros, used from elwix service tools
! 175: # cp -r /usr/local/libdata/athprom $FW_USR/libdata;
! 176: }
! 177:
! 178: build_image()
! 179: {
! 180: echo "+++ Build elwix firmware image ..."
! 181: makefs -ominfree=0,bsize=8192,fsize=1024,optimization=space -s${FW_SIZE} \
! 182: $REL/$FW_IMG $FW_USR
! 183:
! 184: MDDEV=$(mdconfig -a -t vnode -f $REL/$FW_IMG);
! 185: tunefs -L elwixFirmware /dev/$MDDEV;
! 186: # mount /dev/$MDDEV /mnt
! 187: # umount /mnt
! 188: mdconfig -d -u $MDDEV;
! 189:
! 190: mkuzip -s 8192 -o $REL/${FW_IMG}.uzip $REL/$FW_IMG;
! 191: mv $REL/${FW_IMG}.uzip $REL/${FW_IMG}
! 192: }
! 193:
! 194: ### main()
! 195: if SnitVer ${WORLD}/elwix.ver; then
! 196: clean_romfs
! 197:
! 198: build_romfs
! 199: install_romfs
! 200:
! 201: #build_image
! 202: else
! 203: echo "Skipped ELWIX RomFS build ..."
! 204: fi
! 205:
! 206: echo "+++ Complete build ELWIX RomFS"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>