Hopefully simplified the build system a lot
This commit is contained in:
parent
21266c7075
commit
eb4a1d3174
|
@ -1,3 +1,11 @@
|
||||||
[ -z "$KERNEL" ] && KERNEL="/vmlinuz"
|
[ -z "$DU" ] && DU="du -h"
|
||||||
|
[ -z "$GZIP" ] && GZIP="gzip -9"
|
||||||
|
[ -z "$KERNEL" ]&& KERNEL="/boot/vmlinuz"
|
||||||
|
[ -z "$LN" ] && LN="ln"
|
||||||
|
[ -z "$MKFS" ] && MKFS="mke2fs -F"
|
||||||
|
[ -z "$MKISOFS" ]&& MKISOFS="mkisofs -J -V \"$VENDOR\""
|
||||||
[ -z "$MOUNT" ] && MOUNT="$SUDO mount -o loop"
|
[ -z "$MOUNT" ] && MOUNT="$SUDO mount -o loop"
|
||||||
[ -z "$UMOUNT" ] && UMOUNT="$SUDO umount"
|
[ -z "$RAMDISK" ]&& RAMDISK="/boot/initrd.img"
|
||||||
|
[ -z "$TAR" ] && TAR="tar"
|
||||||
|
[ -z "$TUNE2FS" ]&& TUNE2FS="tune2fs"
|
||||||
|
[ -z "$UMOUNT" ]&& UMOUNT="$SUDO umount"
|
||||||
|
|
|
@ -5,11 +5,6 @@
|
||||||
#variables
|
#variables
|
||||||
[ -z "$LD" ] && LD="cc -shared -nostdlib"
|
[ -z "$LD" ] && LD="cc -shared -nostdlib"
|
||||||
[ -z "$MKFS" ] && MKFS="mkfs.jffs2 -n -e 0x4000 -l -q -r $DESTDIR -X zlib -o"
|
[ -z "$MKFS" ] && MKFS="mkfs.jffs2 -n -e 0x4000 -l -q -r $DESTDIR -X zlib -o"
|
||||||
#executables
|
|
||||||
[ -z "$DU" ] && DU="du -h"
|
|
||||||
[ -z "$MKDIR" ] && MKDIR="mkdir -p"
|
|
||||||
[ -z "$MV" ] && MV="mv -f"
|
|
||||||
[ -z "$TAR" ] && TAR="tar"
|
|
||||||
|
|
||||||
|
|
||||||
#includes
|
#includes
|
||||||
|
@ -31,10 +26,45 @@ _create_directories()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#public
|
_image_ramdisk()
|
||||||
target_image()
|
|
||||||
{
|
{
|
||||||
_create_directories 'bin' 'dev' 'etc' 'lib' 'sbin'
|
USAGE="Options for $IMAGE_TYPE on $TARGET:\n\
|
||||||
|
IMAGE_FILE Where to write the filesystem image\n\
|
||||||
|
MKFS Command used to format the filesystem"
|
||||||
|
|
||||||
|
#sanity check
|
||||||
|
check "$USAGE" DU GZIP IMAGE_FILE MKFS
|
||||||
|
|
||||||
|
target "install" || exit 2
|
||||||
|
|
||||||
|
_create_directories "dev" "proc" "mnt/cdrom" "sbin"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -n "Building ramdisk image:"
|
||||||
|
$MKFS "$IMAGE_FILE" || exit 2
|
||||||
|
echo
|
||||||
|
$DU "$IMAGE_FILE"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -n "Compressing ramdisk:"
|
||||||
|
$GZIP "$IMAGE_FILE" || exit 2
|
||||||
|
$MV "$IMAGE_FILE.gz" "$IMAGE_FILE" || exit 2
|
||||||
|
echo
|
||||||
|
$DU "$IMAGE_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
_image_rootfs()
|
||||||
|
{
|
||||||
|
USAGE="Options for $IMAGE_TYPE on $TARGET:\n\
|
||||||
|
IMAGE_FILE Where to write the filesystem image\n\
|
||||||
|
IMAGE_MODULES Path to a tar.gz archive of kernel modules (optional)\n\
|
||||||
|
MKFS Command used to format the filesystem"
|
||||||
|
|
||||||
|
#sanity check
|
||||||
|
check "$USAGE" DESTDIR DU GZIP IMAGE_FILE MKFS MV SUDO TAR
|
||||||
|
|
||||||
|
_create_directories "bin" "dev" "etc" "lib" "sbin"
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo -n "Fixing installation paths:"
|
echo -n "Fixing installation paths:"
|
||||||
|
@ -56,7 +86,7 @@ target_image()
|
||||||
echo
|
echo
|
||||||
echo "Installing kernel modules:"
|
echo "Installing kernel modules:"
|
||||||
#progress -ef "$KERNEL_MODULES" -- gunzip -c \
|
#progress -ef "$KERNEL_MODULES" -- gunzip -c \
|
||||||
gunzip -c "$KERNEL_MODULES" \
|
$GZIP -dc "$KERNEL_MODULES" \
|
||||||
| (cd "$DESTDIR" && $TAR -xf -) || exit 2
|
| (cd "$DESTDIR" && $TAR -xf -) || exit 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -76,37 +106,28 @@ EOF
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Building rootfs image:"
|
echo "Building rootfs image:"
|
||||||
$MKFS "$IMAGE_IMAGE" || exit 2
|
$MKFS "$IMAGE_FILE" || exit 2
|
||||||
$DU "$IMAGE_IMAGE"
|
$DU "$IMAGE_FILE"
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Building tarball:"
|
echo "Building tarball:"
|
||||||
OLDPWD="$PWD"
|
OLDPWD="$PWD"
|
||||||
(cd "$DESTDIR" && $TAR -cvzf "$OLDPWD/$IMAGE_IMAGE.tar.gz" .) \
|
(cd "$DESTDIR" && $TAR -cvzf "$OLDPWD/$IMAGE_FILE.tar.gz" .) \
|
||||||
| while read filename; do
|
| while read filename; do
|
||||||
echo -en "\r$filename"
|
echo -en "\r$filename"
|
||||||
done || (echo && exit 2)
|
done || (echo && exit 2)
|
||||||
echo -en "\r"
|
echo -en "\r"
|
||||||
$DU "$IMAGE_IMAGE.tar.gz"
|
$DU "$IMAGE_FILE.tar.gz"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
target_ramdisk()
|
#public
|
||||||
|
target_image()
|
||||||
{
|
{
|
||||||
target "install" || exit 2
|
case "$IMAGE_TYPE" in
|
||||||
|
"ramdisk")
|
||||||
_create_directories 'dev' 'proc' 'mnt/cdrom' 'sbin'
|
return _image_ramdisk
|
||||||
|
"rootfs"|*)
|
||||||
echo
|
return _image_rootfs
|
||||||
echo -n "Building ramdisk image:"
|
esac
|
||||||
$MKFS "$RAMDISK_IMAGE" || exit 2
|
|
||||||
echo
|
|
||||||
$DU "$RAMDISK_IMAGE"
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo -n "Compressing ramdisk:"
|
|
||||||
$GZIP "$RAMDISK_IMAGE" || exit 2
|
|
||||||
$MV "$RAMDISK_IMAGE.gz" "$RAMDISK_IMAGE" || exit 2
|
|
||||||
echo
|
|
||||||
$DU "$RAMDISK_IMAGE"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,7 @@
|
||||||
|
|
||||||
|
|
||||||
#variables
|
#variables
|
||||||
[ -z "$MKFS" ] && MKFS="mke2fs -F"
|
#XXX insert i386-specific variables here (grub...)
|
||||||
[ -z "$TUNE2FS" ] && TUNE2FS="tune2fs"
|
|
||||||
|
|
||||||
|
|
||||||
#includes
|
#includes
|
||||||
|
@ -12,13 +11,24 @@ source "`dirname $0`/Apps/Devel/src/scripts/targets/Linux"
|
||||||
|
|
||||||
|
|
||||||
#functions
|
#functions
|
||||||
target_image()
|
#private
|
||||||
|
_image_image()
|
||||||
{
|
{
|
||||||
$UMOUNT "$DESTDIR"
|
USAGE="Options for $IMAGE_TYPE on $TARGET:\n\
|
||||||
|
IMAGE_FILE Where to write the filesystem image\n\
|
||||||
|
IMAGE_KERNEL Path to the kernel\n\
|
||||||
|
IMAGE_SIZE Size of the filesystem image in kilobytes\n\
|
||||||
|
MKFS Command used to create the filesystem"
|
||||||
|
|
||||||
|
#sanity check
|
||||||
|
check "$USAGE" DD DESTDIR DEVZERO IMAGE_FILE IMAGE_KERNEL IMAGE_SIZE \
|
||||||
|
MKDIR MKFS MOUNT UMOUNT
|
||||||
|
|
||||||
$MKDIR "$DESTDIR" || exit 2
|
$MKDIR "$DESTDIR" || exit 2
|
||||||
$DD if="$DEVZERO" of="$DISK_IMAGE" count="$DISK_SIZE" &&
|
$UMOUNT "$DESTDIR"
|
||||||
$MKFS "$DISK_IMAGE" || exit 2
|
$DD if="$DEVZERO" of="$IMAGE_FILE" count="$IMAGE_SIZE" &&
|
||||||
$MOUNT "$DISK_IMAGE" "$DESTDIR" || exit 2
|
$MKFS "$IMAGE_FILE" || exit 2
|
||||||
|
$MOUNT "$IMAGE_FILE" "$DESTDIR" || exit 2
|
||||||
target "install"
|
target "install"
|
||||||
RET=$?
|
RET=$?
|
||||||
$UMOUNT "$DESTDIR"
|
$UMOUNT "$DESTDIR"
|
||||||
|
@ -26,54 +36,93 @@ target_image()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
target_iso()
|
_image_iso()
|
||||||
{
|
{
|
||||||
|
USAGE="Options for $IMAGE_TYPE on $TARGET:\n\
|
||||||
|
IMAGE_FILE Where to write the filesystem image\n\
|
||||||
|
IMAGE_KERNEL Path to the kernel\n\
|
||||||
|
IMAGE_MODULES Path to a tar.gz archive of kernel modules (optional)\n\
|
||||||
|
IMAGE_RAMDISK Path to the ramdisk (optional)\n\
|
||||||
|
IMAGE_SIZE Size of the filesystem image in kilobytes\n\
|
||||||
|
KERNEL_ARGS Additional arguments to give to the kernel (optional)\n\
|
||||||
|
MKISOFS Command used to create the ISO image"
|
||||||
|
|
||||||
|
#sanity check
|
||||||
|
check "$USAGE" DESTDIR KERNEL IMAGE_FILE IMAGE_KERNEL IMAGE_SIZE \
|
||||||
|
INSTALL MKDIR MKISOFS MOUNT RAMDISK TAR UMOUNT
|
||||||
|
|
||||||
$MKDIR "$DESTDIR/boot/grub" || exit 2
|
$MKDIR "$DESTDIR/boot/grub" || exit 2
|
||||||
$CP "/usr/lib/grub/i386-pc/stage2_eltorito" \
|
$INSTALL -m 644 "/usr/lib/grub/i386-pc/stage2_eltorito" \
|
||||||
"$DESTDIR/boot/grub" || exit 2
|
"$DESTDIR/boot/grub" || exit 2
|
||||||
$CP "$KERNEL" "$DESTDIR/boot/uKernel" || exit 2
|
$INSTALL -m 755 "$IMAGE_KERNEL" "$DESTDIR/$KERNEL" || exit 2
|
||||||
if [ ! -z "$RAMDISK_IMAGE" ]; then
|
if [ ! -z "$IMAGE_RAMDISK" ]; then
|
||||||
$CP "$RAMDISK_IMAGE" "$DESTDIR/boot/initrd.img"
|
$INSTALL -m 644 "$IMAGE_RAMDISK" "$DESTDIR/$RAMDISK"
|
||||||
GRUB_INITRD="initrd /boot/initrd.img"
|
GRUB_INITRD="initrd $RAMDISK"
|
||||||
fi
|
fi
|
||||||
$CAT > "$DESTDIR/boot/grub/menu.lst" << EOF
|
$CAT > "$DESTDIR/boot/grub/menu.lst" << EOF
|
||||||
default 0
|
default 0
|
||||||
timeout 10
|
timeout 10
|
||||||
|
|
||||||
title $VENDOR
|
title $VENDOR
|
||||||
kernel /boot/uKernel $KERNEL_ARGS
|
kernel $KERNEL $KERNEL_ARGS
|
||||||
$GRUB_INITRD
|
$GRUB_INITRD
|
||||||
EOF
|
EOF
|
||||||
[ ! -z "$KERNEL_MODULES" ] && cat "$KERNEL_MODULES" | \
|
[ ! -z "$IMAGE_MODULES" ] && cat "$IMAGE_MODULES" | \
|
||||||
(cd "$DESTDIR" && tar xzf -)
|
(cd "$DESTDIR" && $TAR -xzf -)
|
||||||
$MKISOFS -b "boot/grub/stage2_eltorito" -no-emul-boot \
|
$MKISOFS -b "boot/grub/stage2_eltorito" -no-emul-boot \
|
||||||
-boot-load-size 4 -boot-info-table \
|
-boot-load-size 4 -boot-info-table \
|
||||||
-o "$CDROM_IMAGE" "$DESTDIR"
|
-o "$IMAGE_FILE" "$DESTDIR"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
target_ramdisk()
|
_image_ramdisk()
|
||||||
{
|
{
|
||||||
[ -z "$MOUNTPOINT" ] && error "MOUNTPOINT needs to be set"
|
USAGE="Options for $IMAGE_TYPE on $TARGET:\n\
|
||||||
$UMOUNT "$MOUNTPOINT"
|
IMAGE_FILE Where to write the filesystem image\n\
|
||||||
|
IMAGE_SIZE Size of the filesystem image in kilobytes\n\
|
||||||
|
MKFS Command used to format the ramdisk image\n\
|
||||||
|
MOUNTPOINT Path where to temporarily mount the ramdisk image"
|
||||||
|
|
||||||
|
#sanity check
|
||||||
|
check "$USAGE" DD DEVZERO DU GZIP IMAGE_FILE IMAGE_SIZE INSTALL LN \
|
||||||
|
MKDIR MKFS MOUNTPOINT MV UMOUNT
|
||||||
|
|
||||||
$MKDIR "$MOUNTPOINT"
|
$MKDIR "$MOUNTPOINT"
|
||||||
$DD if="$DEVZERO" of="$RAMDISK_IMAGE" count="$RAMDISK_SIZE"|| exit 2
|
$UMOUNT "$MOUNTPOINT"
|
||||||
$MKFS "$RAMDISK_IMAGE" || exit 2
|
$DD if="$DEVZERO" of="$IMAGE_FILE" count="$IMAGE_SIZE" || exit 2
|
||||||
[ ! -z "$TUNE2FS" ] && $TUNE2FS -i 0 "$RAMDISK_IMAGE"
|
$MKFS "$IMAGE_FILE" || exit 2
|
||||||
$MOUNT "$RAMDISK_IMAGE" "$MOUNTPOINT" || exit 2
|
[ ! -z "$TUNE2FS" ] && $TUNE2FS -i 0 "$IMAGE_FILE"
|
||||||
|
#FIXME umount on subsequent failures
|
||||||
|
$MOUNT "$IMAGE_FILE" "$MOUNTPOINT" || exit 2
|
||||||
|
|
||||||
|
#compile and install linuxrc
|
||||||
SUBDIRS="Apps/Unix/src/others/tools" target linuxrc || exit 2
|
SUBDIRS="Apps/Unix/src/others/tools" target linuxrc || exit 2
|
||||||
|
|
||||||
DESTDIR="$MOUNTPOINT" _create_directories 'dev' 'proc' 'mnt/cdrom' \
|
DESTDIR="$MOUNTPOINT" _create_directories "dev" "proc" "mnt/cdrom" \
|
||||||
'sbin'
|
"sbin"
|
||||||
|
|
||||||
$LN "../mnt/cdrom/usr/bin/sh" "$MOUNTPOINT/sbin/init"
|
$LN "../mnt/cdrom/usr/bin/sh" "$MOUNTPOINT/sbin/init"
|
||||||
$CP "Apps/Unix/src/others/tools/linuxrc" "$MOUNTPOINT" || exit 2
|
$INSTALL -m 755 "Apps/Unix/src/others/tools/linuxrc" \
|
||||||
|
"$MOUNTPOINT/linuxrc" || exit 2
|
||||||
$UMOUNT "$MOUNTPOINT"
|
$UMOUNT "$MOUNTPOINT"
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo -n "Compressing ramdisk:"
|
echo -n "Compressing ramdisk:"
|
||||||
$GZIP "$RAMDISK_IMAGE" || exit 2
|
$GZIP "$IMAGE_FILE" || exit 2
|
||||||
$MV "$RAMDISK_IMAGE.gz" "$RAMDISK_IMAGE" || exit 2
|
$MV "$IMAGE_FILE.gz" "$IMAGE_FILE" || exit 2
|
||||||
echo
|
echo
|
||||||
$DU "$RAMDISK_IMAGE"
|
$DU "$IMAGE_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#public
|
||||||
|
target_image()
|
||||||
|
{
|
||||||
|
case "$IMAGE_TYPE" in
|
||||||
|
"iso")
|
||||||
|
return _image_iso
|
||||||
|
"ramdisk")
|
||||||
|
return _image_ramdisk
|
||||||
|
*)
|
||||||
|
return _image_image
|
||||||
|
esac
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
[ -z "$KERNEL" ] && KERNEL="/netbsd"
|
[ -z "$KERNEL" ]&& KERNEL="/netbsd"
|
||||||
[ -z "$MKFS" ] && MKFS="newfs -F"
|
[ -z "$MKFS" ] && MKFS="newfs -F"
|
||||||
[ -z "$MOUNT" ] && MOUNT="netbsd_mount"
|
[ -z "$MOUNT" ] && MOUNT="_netbsd_mount"
|
||||||
[ -z "$UMOUNT" ] && UMOUNT="netbsd_umount"
|
[ -z "$UMOUNT" ]&& UMOUNT="_netbsd_umount"
|
||||||
|
|
||||||
|
|
||||||
#functions
|
#functions
|
||||||
netbsd_mount()
|
_netbsd_mount()
|
||||||
{
|
{
|
||||||
$SUDO vnconfig -c vnd0 "$1" &&
|
$SUDO vnconfig -c vnd0 "$1" &&
|
||||||
$SUDO mount /dev/vnd0a "$2"
|
$SUDO mount /dev/vnd0a "$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
netbsd_umount()
|
_netbsd_umount()
|
||||||
{
|
{
|
||||||
$SUDO umount "$1" &&
|
$SUDO umount "$1" &&
|
||||||
$SUDO vnconfig -u vnd0
|
$SUDO vnconfig -u vnd0
|
||||||
|
|
|
@ -4,3 +4,32 @@
|
||||||
|
|
||||||
#includes
|
#includes
|
||||||
source "`dirname $0`/Apps/Devel/src/scripts/targets/NetBSD"
|
source "`dirname $0`/Apps/Devel/src/scripts/targets/NetBSD"
|
||||||
|
|
||||||
|
|
||||||
|
#functions
|
||||||
|
#public
|
||||||
|
target_image()
|
||||||
|
{
|
||||||
|
USAGE="Options for $IMAGE_TYPE on $TARGET:\n\
|
||||||
|
IMAGE_FILE Where to write the filesystem image\n\
|
||||||
|
IMAGE_KERNEL Path to the kernel\n\
|
||||||
|
IMAGE_SIZE Size of the filesystem image in kilobytes\n\
|
||||||
|
MKFS Command used to format the filesystem"
|
||||||
|
|
||||||
|
#sanity check
|
||||||
|
check "$USAGE" DD DESTDIR DEVZERO IMAGE_FILE IMAGE_SIZE INSTALL MKDIR \
|
||||||
|
MKFS MOUNT UMOUNT
|
||||||
|
|
||||||
|
$MKDIR "$DESTDIR" || exit 2
|
||||||
|
$UMOUNT "$DESTDIR"
|
||||||
|
$DD if="$DEVZERO" of="$IMAGE_FILE" count="$IMAGE_SIZE" &&
|
||||||
|
$MKFS "$IMAGE_FILE" || exit 2
|
||||||
|
$MOUNT "$IMAGE_FILE" "$DESTDIR" || exit 2
|
||||||
|
target "install"
|
||||||
|
RET=$?
|
||||||
|
#FIXME detect errors here too
|
||||||
|
[ ! -z "$IMAGE_KERNEL" ] &&
|
||||||
|
$INSTALL -m 755 "$IMAGE_KERNEL" "$DESTDIR/$KERNEL"
|
||||||
|
$UMOUNT "$DESTDIR"
|
||||||
|
exit $RET
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user