Annotation of elwix/build_world.sh, revision 1.3
1.1 misho 1: #!/bin/sh
2: #
3: # ELWIX build script for world
4: #
5: # (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org>
6: # by Michael Pounov <misho@elwix.org>
7: #
1.3 ! misho 8: # $Id: build_world.sh,v 1.2.12.2 2013/10/11 12:13:49 misho Exp $
1.1 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:
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 $ADIR ]; then
27: echo
28: echo "ELWIX project is not configured - missing TargetArch directory !?!"
29: echo
30: exit 1
31: fi
32:
33: if [ "${USER}" != "root" ]; then
34: echo
35: echo "ELWIX project is not configured - BSD kernel must compile under root !?!"
36: echo
37: exit 1
38: fi
39:
40: clean_world()
41: {
42: echo "+++ Clean ELWIX World ..."
43: rm -rf $WORLD
44: mkdir -p $WORLD
1.2 misho 45:
46: rm -f ${CBUILD} ${CGBUILD} ${CENV}
1.1 misho 47: }
48:
1.3 ! misho 49: build_toolchain()
! 50: {
! 51: echo "+++ Build ELWIX Toolchain ..."
! 52: cd $BSDSRC
! 53: env MAKEOBJDIRPREFIX=${BSDOBJ} make ${PARALLEL_BUILD} \
! 54: TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
! 55: MAKEOBJDIRPREFIX=${BSDOBJ} SRCCONF=${SRCCONF} \
! 56: DESTDIR=${WORLD} toolchain
! 57: if [ $? -eq 0 ]; then
! 58: cd -
! 59: else
! 60: exit 1
! 61: fi
! 62: }
! 63:
1.1 misho 64: build_world()
65: {
66: echo "+++ Build ELWIX World ..."
67: cd $BSDSRC
1.3 ! misho 68: if [ -z "$1" ]; then
! 69: env MAKEOBJDIRPREFIX=${BSDOBJ} make ${PARALLEL_BUILD} \
! 70: TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
! 71: MAKEOBJDIRPREFIX=${BSDOBJ} SRCCONF=${SRCCONF} buildworld
! 72: else
! 73: env MAKEOBJDIRPREFIX=${BSDOBJ} NO_CLEAN="YES" make ${PARALLEL_BUILD} \
! 74: TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
! 75: MAKEOBJDIRPREFIX=${BSDOBJ} SRCCONF=${SRCCONF} buildworld
! 76: fi
1.2 misho 77: if [ $? -eq 0 ]; then
78: cd -
79: else
80: exit 1
81: fi
1.1 misho 82: }
83:
84: install_world()
85: {
86: echo "+++ Install ELWIX World ..."
87: cd $BSDSRC
1.3 ! misho 88: env MAKEOBJDIRPREFIX=${BSDOBJ} make \
! 89: TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
! 90: MAKEOBJDIRPREFIX=${BSDOBJ} SRCCONF=${SRCCONF} DESTDIR=${WORLD} installworld
1.1 misho 91: cd -
92:
1.2 misho 93: if [ $? -eq 0 ]; then
94: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix.ver
95: fi
96: }
97:
98: build_cross()
99: {
100: echo "+++ Build ELWIX Cross script ..."
101: cd $BSDSRC
102: cat >${CENV} <<_EOF
103: #!/bin/sh
104: #
105: # Create auto cross build env script
106: #
107: export \\
108: _EOF
1.3 ! misho 109: make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
! 110: MAKEOBJDIRPREFIX=${BSDOBJ} buildenvvars >> ${CENV}
1.2 misho 111: cat >>${CENV} <<_EOF
112: PATH=$WORLD/elwix/pkg/bin:$WORLD/elwix/pkg/sbin:/elwix/pkg/bin:/elwix/pkg/sbin:$PKG/bin:$PKG/sbin:\$PATH:$PATH
113: _EOF
114: cd -
115: cp ${CENV} ${CBUILD}
116: cp ${CENV} ${CGBUILD}
117: cp ${CENV} ${CEXEC}
118: cat >>${CBUILD} <<_EOF
119: make \$*
120: _EOF
121: cat >>${CGBUILD} <<_EOF
122: gmake \$*
123: _EOF
124: cat >>${CEXEC} <<_EOF
125: eval \$*
126: _EOF
127: chmod +x ${CBUILD} ${CGBUILD} ${CEXEC} ${CENV}
128: echo "Done."
1.1 misho 129: }
130:
131: ### main()
132: if ! SnitVer ${WORLD}/elwix.ver; then
1.3 ! misho 133: if [ -z "$1" ]; then
! 134: clean_world
! 135: fi
! 136: # build_toolchain $1
! 137: build_world $1
1.1 misho 138: install_world
1.2 misho 139:
140: build_cross
1.1 misho 141: else
142: echo "Skipped ELWIX World build ..."
143: fi
144:
145: echo "+++ Complete build ELWIX World"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>