--- toast-linux 2004/04/04 23:20:58 1.1 +++ toast-linux 2004/04/05 19:48:43 1.2 @@ -9,17 +9,18 @@ my($rcsid) = q$Id$; $rcsid =~ /^Id: configure,v (\S+) (\S+ \S+) zaphod Exp (\S+ )?$/ || die; -my($version, $rcsdate) = ("toast linux", $1, $2); +my($version, $rcsdate) = ($1, $2); $version .= "+" if $3; # if this version may contain changes not in RCS my($gendate) = scalar localtime; my($genby) = "generated by toast linux configure version $version on $gendate"; my($configure) = $0 =~ m!/! ? $0 : "./$0"; my($target) = @ARGV; -if(length(@ARGV) != 1 || $target =~ /^-/) +if(scalar(@ARGV) != 1 || $target =~ /^-/) { warn("$0: ignoring command line arguments: @ARGV\n") if @ARGV; $target = "Makefile"; + print("generating $target\n"); } die unless defined($target); @@ -61,7 +62,7 @@ my($path); for(split('/', $dir)) { - $path = defined($path) ? $_ : "$path/$_"; + $path = defined($path) ? "$path/$_" : $_; -d($path) || mkdir($path) || die("mkdir $path: $!"); } } @@ -69,7 +70,7 @@ my($text) = $text{$_}; local(*OUTFILE); - sysopen(OUTFILE, $_, O_WRONLY, $text =~ m@^#!/@ ? 0777 : 0666) + sysopen(OUTFILE, $_, O_CREAT | O_TRUNC | O_WRONLY, $text =~ m@^#!/@ ? 0777 : 0666) || die("open $_ for write: $!"); binmode(OUTFILE); print OUTFILE $text or die("write $_: $!"); @@ -146,8 +147,9 @@ SYSLINUX_URL = http://kernel.org/pub/linux/utils/boot/syslinux/$(SYSLINUX_ARCHIVE) TOOLCHAIN_MAKE_DIR = $(TOOLCHAIN_DIR)/gcc-3.3.x -TOOLCHAIN_LIB_DIR = $(TOOLCHAIN_MAKE_DIR)/toolchain_i386/lib -TOOLCHAIN_BIN_DIR = $(CURDIR)/$(TOOLCHAIN_MAKE_DIR)/toolchain_i386/usr/bin +TOOLCHAIN_ROOT_DIR = $(TOOLCHAIN_MAKE_DIR)/toolchain_i386/i386-linux-uclibc +TOOLCHAIN_LIB_DIR = $(TOOLCHAIN_ROOT_DIR)/lib +TOOLCHAIN_BIN_DIR = $(CURDIR)/$(TOOLCHAIN_ROOT_DIR)/bin PKG_DIRS = $(foreach PKG, $(PKGS), $($(PKG)_DIR)) LINUX_PATCH_FILES = $(foreach PATCH, $(LINUX_PATCHES), $($(PATCH)_ARCHIVE)) @@ -199,7 +201,7 @@ cleaner: clean rm -f *.tar.gz *.tar.bz2 *.diff.gz -$(LINUX_DIR)/.config: $(LINUX_ARCHIVE) linux-config +$(LINUX_DIR)/.config: $(LINUX_ARCHIVE) linux-config smartcat rm -fr $(LINUX_DIR) ./smartcat $< | tar x cat linux-config > $@ @@ -216,14 +218,14 @@ modsize: modules cd modules/lib/modules/*/kernel/drivers; ls -lS `find -name '*.ko'` -$(TOOLCHAIN_DIR)/ok: $(TOOLCHAIN_ARCHIVE) +$(TOOLCHAIN_DIR)/ok: $(TOOLCHAIN_ARCHIVE) smartcat rm -fr $(TOOLCHAIN_DIR) ./smartcat $< | tar x ln -s $(CURDIR) $(TOOLCHAIN_MAKE_DIR)/sources/dl yes '' | $(MAKE) -C $(TOOLCHAIN_MAKE_DIR) touch $@ -$(BUSYBOX_DIR)/.config: $(BUSYBOX_ARCHIVE) busybox-config $(TOOLCHAIN_DIR)/ok +$(BUSYBOX_DIR)/.config: $(BUSYBOX_ARCHIVE) busybox-config $(TOOLCHAIN_DIR)/ok smartcat rm -fr $(BUSYBOX_DIR) ./smartcat $< | tar x perl -pe 's!^(CROSS_COMPILER_PREFIX=").*(")!$$1$(TOOLCHAIN_BIN_DIR)/$$2!' busybox-config > $@ @@ -233,20 +235,20 @@ $(BUSYBOX): $(BUSYBOX_DIR)/.config $(MAKE) -C $(BUSYBOX_DIR) all -$(TUNE2FS): $(E2FSPROGS_ARCHIVE) $(TOOLCHAIN_DIR)/ok +$(TUNE2FS): $(E2FSPROGS_ARCHIVE) $(TOOLCHAIN_DIR)/ok smartcat rm -fr $(E2FSPROGS_DIR) ./smartcat $< | tar x (cd $(E2FSPROGS_DIR) && ./configure --with-cc=$(TOOLCHAIN_BIN_DIR)/gcc --with-linker=$(TOOLCHAIN_BIN_DIR)/ld --with-ccopts=-Os --disable-{nls,evms,swapfs}) $(MAKE) -C $(E2FSPROGS_DIR) strip $@ -$(NTFSRESIZE): $(NTFSPROGS_ARCHIVE) $(TOOLCHAIN_DIR)/ok +$(NTFSRESIZE): $(NTFSPROGS_ARCHIVE) $(TOOLCHAIN_DIR)/ok smartcat rm -fr $(NTFSPROGS_DIR) ./smartcat $< | tar x (cd $(NTFSPROGS_DIR) && CC=$(TOOLCHAIN_BIN_DIR)/gcc CFLAGS="-static -Os" ./configure --disable-shared && $(MAKE)) strip $@ -$(PARTED): $(PARTED_ARCHIVE) $(TOOLCHAIN_DIR)/ok +$(PARTED): $(PARTED_ARCHIVE) $(TOOLCHAIN_DIR)/ok smartcat rm -fr $(PARTED_DIR) ./smartcat $< | tar x perl -p -i -e 's!(\#include <libintl.h>)!/* $1 */!' $(PARTED_DIR)/libparted/filesys.c @@ -254,13 +256,13 @@ $(MAKE) -C $(PARTED_DIR) strip $@ -$(DEVMAP): $(DEVMAP_ARCHIVE) $(TOOLCHAIN_DIR)/ok +$(DEVMAP): $(DEVMAP_ARCHIVE) $(TOOLCHAIN_DIR)/ok smartcat rm -fr $(DEVMAP_DIR) ./smartcat $< | tar x set -e; cd $(DEVMAP_DIR); ./configure; $(MAKE) CC="$(TOOLCHAIN_BIN_DIR)/gcc -Os" strip $@ -$(LVM2): $(LVM2_ARCHIVE) $(DEVMAP) $(TOOLCHAIN_DIR)/ok +$(LVM2): $(LVM2_ARCHIVE) $(DEVMAP) $(TOOLCHAIN_DIR)/ok smartcat rm -fr $(LVM2_DIR) ./smartcat $< | tar x perl -p -i -e 's/-O2/-Os/g' $(LVM2_DIR)/make.tmpl.in @@ -271,17 +273,21 @@ symbols: $(BUSYBOX) $(E2FSCK) $(TUNE2FS) $(NTFSRESIZE) $(PARTED) $(DEVMAP) $(LVM2) $(TOOLCHAIN_BIN_DIR)/nm -Dp $^ | perl -lne '/.{8} [BUV] (.+)/ && print "-u $$1"' | sort -u > $@ -Makefile dev smartcat mkhd linux-config busybox-config bochs-config: !CONFIGURE! - $< $@ +Makefile dev mkhd bochs-config: !CONFIGURE! + !CONFIGURE! $@ +# these depend on configure, but we pretend they don't to speed things up: +smartcat linux-config busybox-config: + !CONFIGURE! $@ + skel: !CONFIGURE! rm -fr $@ - $< $@ + !CONFIGURE! $@ mkdir -p $@/root/{proc,sys,tmp,mnt/{floppy,initrd,toast-root},var/{empty,run,log,lock}} for i in bin lib sbin share; do ln -sf usr/$$i $@/root/$$i; done - ln ../usr/share/zoneinfo/"`cat $@/root/etc/TZ`" $@/root/etc/localtime + ln -sf ../usr/share/zoneinfo/"`cat $@/root/etc/TZ`" $@/root/etc/localtime -root: $(LINUX) symbols +root: $(LINUX) symbols skel rm -fr $@ mkdir -p $(SCRIPTS_ROOTDIR) set -e; (cd skel/root && tar c .) | (cd $@ && tar x) @@ -292,7 +298,7 @@ $(MAKE) -C $(BUSYBOX_DIR) PREFIX=$(CURDIR)/$(BUSYBOX_ROOTDIR) install # install -D $(E2FSCK) $(OTHER_ROOTDIR)/sbin/e2fsck install -D $(TUNE2FS) $(OTHER_ROOTDIR)/sbin/tune2fs - install -D $(NTFSRESIZE) $(OTHER_ROOTDIR)/sbin/ntfsresize +# install -D $(NTFSRESIZE) $(OTHER_ROOTDIR)/sbin/ntfsresize install -D $(PARTED) $(OTHER_ROOTDIR)/sbin/parted install -D $(DEVMAP) $(OTHER_ROOTDIR)/lib/libdevmapper.so.1.00 install -D $(LVM2) $(OTHER_ROOTDIR)/sbin/lvm @@ -300,19 +306,19 @@ for i in $(BUSYBOX_ROOTDIR) $(SCRIPTS_ROOTDIR) $(OTHER_ROOTDIR); do echo "built by toast linux $(VERSION) on `date`" > $$i/../build.log; done toast --noprotect --relative --storedir=$(CURDIR)/root/toast --armdir=$(CURDIR)/root/usr --arm -$(GENEXT2FS): $(GENEXT2FS_ARCHIVE) $(GENEXT2FS_PATCH) +$(GENEXT2FS): $(GENEXT2FS_ARCHIVE) $(GENEXT2FS_PATCH) smartcat rm -fr $(GENEXT2FS_DIR) ./smartcat $< | tar x ./smartcat $(GENEXT2FS_PATCH) | patch -d $(GENEXT2FS_DIR) -p1 $(MAKE) -C $(GENEXT2FS_DIR) -$(MFORMAT) $(MCOPY) $(MDIR): $(MTOOLS_ARCHIVE) +$(MFORMAT) $(MCOPY) $(MDIR): $(MTOOLS_ARCHIVE) smartcat rm -fr $(MTOOLS_DIR) ./smartcat $< | tar x cd $(MTOOLS_DIR) && ./configure $(MAKE) -C $(MTOOLS_DIR) -$(SYSLINUX): $(SYSLINUX_ARCHIVE) +$(SYSLINUX): $(SYSLINUX_ARCHIVE) smartcat rm -fr $(SYSLINUX_DIR) ./smartcat $< | tar x touch $@ @@ -321,7 +327,7 @@ rm -f $@ $(GENEXT2FS) -d root -f dev -b $(ROOTFS_BLOCKS) -i $(ROOTFS_INODES) $@ -floppy: $(LINUX) rootfs.gz +floppy: $(LINUX) rootfs.gz skel rm -fr $@ mkdir $@ cp $(LINUX) $@/linux @@ -362,15 +368,6 @@ %.gz: % gzip -9 -c $< > $@ -dist: $(DIST_TARBALL) - -$(DIST_TARBALL): Makefile linux-config busybox-config dev smartcat skel bochs-config mkhd TODO - rm -fr $@ - tar czf $@ $^ - -backup: $(DIST_TARBALL) - scp $< ofb.net:. - --- FILE dev --- drwx /dev crw- 4, 0 /dev/tty0 @@ -392,7 +389,7 @@ esac done --- FILE mkhd --- +--- FILE mkhd --- #!/usr/bin/perl use warnings; @@ -514,34 +511,34 @@ DISKS=hda,hdb,sda install on specified disks only DESTROY=yes overwrite existing disk contents ---- FILE skel/etc/passwd --- +--- FILE skel/root/etc/passwd --- root:x:0:0:root:/root:/bin/sh toast:x:42:42:toast:/toast:/bin/sh ---- FILE skel/etc/group --- +--- FILE skel/root/etc/group --- root:x:0:root toast:x:42:toast ---- FILE skel/etc/hosts --- +--- FILE skel/root/etc/hosts --- 127.0.0.1 localhost ---- FILE skel/etc/host.conf --- +--- FILE skel/root/etc/host.conf --- order hosts,bind multi on ---- FILE skel/etc/nsswitch.conf --- +--- FILE skel/root/etc/nsswitch.conf --- hosts: files dns ---- FILE skel/etc/resolv.conf --- +--- FILE skel/root/etc/resolv.conf --- nameserver 205.217.153.34 ---- FILE skel/etc/TZ --- +--- FILE skel/root/etc/TZ --- PST8PDT ---- FILE skel/etc/syslog.conf --- +--- FILE skel/root/etc/syslog.conf --- *.* /var/log/syslog ---- FILE skel/etc/fstab --- +--- FILE skel/root/etc/fstab --- /dev/ram0 / ext2 rw 0 0 proc /proc proc rw 0 0 sys /sys sysfs rw 0 0 @@ -549,20 +546,20 @@ /dev/fd0 /mnt/floppy vfat rw,noauto,sync 0 0 /dev/toast/root /mnt/toast-root ext2 rw,noauto 0 0 ---- FILE skel/etc/fstab.hd --- +--- FILE skel/root/etc/fstab.hd --- /dev/toast/root / ext3 rw 0 0 proc /proc proc rw 0 0 sys /sys sysfs rw 0 0 devpts /dev/pts devpts rw 0 0 /dev/fd0 /mnt/floppy vfat rw,noauto,sync 0 0 ---- FILE skel/etc/mtab --- +--- FILE skel/root/etc/mtab --- /dev/ram0 / ext2 rw 0 0 ---- FILE skel/etc/mtab.hd --- +--- FILE skel/root/etc/mtab.hd --- /dev/ram0 / ext2 rw 0 0 ---- FILE skel/etc/lilo.conf --- +--- FILE skel/root/etc/lilo.conf --- boot = /dev/hda root = /dev/ram0 initrd = /usr/boot/initrd.gz @@ -596,10 +593,10 @@ label = toast.oldkernel.oldinitrd optional ---- FILE skel/etc/profile --- +--- FILE skel/root/etc/profile --- PS1='\u@\h:\w\$ ' ---- FILE skel/etc/inittab --- +--- FILE skel/root/etc/inittab --- ::sysinit:/etc/init.d/rcS ::restart:/etc/init.d/pivot ::respawn:-/bin/sh @@ -607,7 +604,7 @@ ::shutdown:/sbin/swapoff -a ::shutdown:/bin/umount -a -r ---- FILE skel/etc/inittab.hd --- +--- FILE skel/root/etc/inittab.hd --- ::sysinit:/etc/init.d/postpivot ::restart:/sbin/init ::respawn:-/bin/sh @@ -615,7 +612,7 @@ ::shutdown:/sbin/swapoff -a ::shutdown:/bin/umount -a -r ---- FILE skel/etc/init.d/rcS --- +--- FILE skel/root/etc/init.d/rcS --- #!/bin/sh devices mount -a @@ -623,7 +620,7 @@ hostname localhost autoinstall ---- FILE skel/etc/init.d/pivot --- +--- FILE skel/root/etc/init.d/pivot --- #!/bin/sh PATH=/sbin:/bin export PATH @@ -635,7 +632,7 @@ exec chroot . /sbin/init exec /bin/sh ---- FILE skel/etc/init.d/postpivot --- +--- FILE skel/root/etc/init.d/postpivot --- #!/bin/sh -e mount /proc grep -v '^rootfs ' /proc/mounts > /etc/mtab