summaryrefslogtreecommitdiffstats
path: root/release
diff options
context:
space:
mode:
Diffstat (limited to 'release')
-rwxr-xr-xrelease/picobsd/build/picobsd128
1 files changed, 75 insertions, 53 deletions
diff --git a/release/picobsd/build/picobsd b/release/picobsd/build/picobsd
index c002626b..326ca2b 100755
--- a/release/picobsd/build/picobsd
+++ b/release/picobsd/build/picobsd
@@ -56,20 +56,10 @@ init_vars() { # OK
# BUILDDIR is the build directory, which is the current one.
SRC=${SRC:-/usr/src}
- OBJ=${OBJ:-/usr/obj-pico}
+ OBJ=${OBJ:-${SRC}/usr/obj-pico}
PICO_TREE=${PICO_TREE:-${SRC}/release/picobsd}
START_DIR=`pwd`
- # select the right memory disk name
- case `uname -r` in
- 5.*)
- VN="md"
- MAKEDEV="${SRC}/etc/MAKEDEV"
- ;;
- *)
- VN="vn"
- MAKEDEV="/dev/MAKEDEV"
- esac
# Various temporary files and directories.
# User replies will be put in $RISU
@@ -150,6 +140,7 @@ clean_tree() {
# free as much as possible from the vnode
free_vnode() {
+ log "free_vnode, VN is ${VN} "
umount ${MFS_MOUNTPOINT} 2> /dev/null || true
umount /dev/${VNDEV} 2> /dev/null || true
if [ "${VN}" = "vn" ] ; then
@@ -667,54 +658,84 @@ fill_floppy_image() {
rm ${BUILDDIR}/kernel.gz ${BUILDDIR}/${MFS_NAME}
}
-#-------------------------------------------------------------------
-# Main entry of the script
+#
+# this code creates variables to point to the correct
+# source tree, and optionally initializes it.
+init_src_tree() {
+ if [ "${src}" = "" ] ; then
+ return
+ fi
+ SRC=${src}
+ log "using src tree in ${SRC}, init ${init_src}"
+ if [ "${init_src}" != "" ] ; then
+ # Optionally creates include directory and libraries.
+ mkdir -p ${SRC}/usr/include # the include directory...
+ mkdir -p ${SRC}/usr/share/misc # a few things go here
+ mkdir -p ${SRC}/usr/lib # libraries
+
+ (cd ${SRC}; INCOWN=`id -un` BINOWN=`id -un` DESTDIR=${SRC} \
+ make includes ) || fail $? includes
+ # libraries already have the include path in the Makefile
+ CFLAGS="-nostdinc" ; export CFLAGS
+
+ (cd ${SRC}
+ # $e is the invocation of make with correct environment
+ e="MAKEOBJDIRPREFIX=${SRC}/usr/obj-pico/picobsd/libraries \
+ INCOWN=`id -un` BINOWN=`id -un` DESTDIR=${SRC} \
+ make -DNOHTML -DNOINFO -DNOMAN -DNOSHARE -DNOFSCHG "
+ # need to 'make obj' in a few places. This is very
+ # version-specific... The following works for 5.0
+ for i in lib secure/lib gnu/lib usr.sbin/pcvt/keycap \
+ gnu/usr.bin/perl usr.bin/lex ; do
+ (cd ${i}; eval $e obj)
+ done
+ # now make the static libraries
+ eval $e -DNOPROFILE -DNOPIC libraries
+ ) || fail $? "libraries"
+ log "libraries done"
+ fi
+ # pass the right LIBS and CFLAGS to the Makefile,
+ # and build the config program
+ LIBS="-L${SRC}/usr/lib"
+ CFLAGS="-nostdinc -I${SRC}/usr/include"
+ export LIBS CFLAGS
+ (cd ${SRC}/usr.sbin/config ; CFLAGS="" make )
+ CONFIG=${SRC}/usr.sbin/config/config
+}
-verbose=""
-TAR_VERBOSE=""
-CONFIG=config
+# set some default values for variables.
+# needs to be done as the first thing in the script.
+default_vars() {
+ verbose=""
+ TAR_VERBOSE=""
+ CONFIG=config
+ src="" # not set by user
+ init_src=""
+ # select the right memory disk name
+ case `uname -r` in
+ 5.*)
+ VN="md"
+ MAKEDEV="${SRC}/etc/MAKEDEV"
+ ;;
+ *)
+ VN="vn"
+ MAKEDEV="/dev/MAKEDEV"
+ esac
+}
+
+#-------------------------------------------------------------------
+# Main entry of the script
+default_vars
while [ true ]; do
case $1 in
--src) # set the source path instead of /usr/src
- SRC=$2
- if [ "$3" = "--init" ] ; then
+ src=$2
+ shift
+ if [ "$2" = "--init" ] ; then
+ init_src=$2
shift
- # Optionally creates include directory and libraries.
- mkdir -p ${SRC}/usr/include # the include directory...
- mkdir -p ${SRC}/usr/share/misc # a few things go here
- mkdir -p ${SRC}/usr/lib # libraries
-
- (cd ${SRC}; INCOWN=`id -un` DESTDIR=${SRC} make includes ) || \
- fail $? includes
- # libraries already have the include path in the Makefile
- CFLAGS="-nostdinc" ; export CFLAGS
-
- (cd ${SRC}
- # $e is the invocation of make with correct environment
- e="MAKEOBJDIRPREFIX=/usr/obj-pico/picobsd/libraries \
- BINOWN=`id -un` DESTDIR=${SRC} \
- make -DNOHTML -DNOINFO -DNOMAN -DNOSHARE -DNOFSCHG "
- # need to 'make obj' in a few places. This is very
- # version-specific... The following works for 5.0
- for i in lib secure/lib gnu/lib usr.sbin/pcvt/keycap \
- gnu/usr.bin/perl usr.bin/lex ; do
- (cd ${i}; eval $e obj)
- done
- # now make the static libraries
- eval $e -DNOPROFILE -DNOPIC libraries
- ) || fail $? "libraries"
- log "libraries done"
fi
- # pass the right LIBS and CFLAGS to the Makefile,
- # and build the config program
- LIBS="-L${SRC}/usr/lib"
- CFLAGS="-nostdinc -I${SRC}/usr/include"
- export LIBS CFLAGS
- (cd ${SRC}/usr.sbin/config ; CFLAGS="" make )
- CONFIG=${SRC}/usr.sbin/config/config
-
- shift
;;
--floppy_size)
@@ -740,7 +761,8 @@ while [ true ]; do
esac
shift
done
-init_vars
+init_src_tree # possibly a nop. Needs to be done before init_vars
+init_vars # set other variables depending on cmdline args.
THETYPE=$1
SITE=$2
OpenPOWER on IntegriCloud