Hi list,

I put together a Makefile to build an oldworld boot+utility cd, but it's, 
unfortunately, only for those having a proprietary Mac OS Install CD ..  It's 
tested, but not thoroughly, so please consider it alpha ..

cat > Makefile <<EOF

# This is a convenience Makefile to add SystemDisk, BootX and
# a couple of current linux kernels to a bootable Mac OS CD.
# It tries to do the right thing (tm) ;-)
#
# 
# $name: Makefile$ 
# $author: Christian Mueller <cmue81 at gmx dot de>$ 
# $copyright: Copyright (C) 1999 by Christian Mueller$
# $license: http://www.gnu.org/licenses/gpl.html - licensed under GNU GPL 
version 2$ 
# $date: 2007-01-09$ 
# 
#
# Dependencies: hfsutils, cdr-tools
#
# Usage: The only thing you should need to adjust is the
#        BOOTABLE_MAC_CD variable or *URL if the URLs listed
#        deliver a "404 not found".
# 
# Motivation: Even in the lucky case you get bootloaders for
#             a Beige G3 working (miboot, quik, etc.) you
#             would still need a booting Mac OS System to
#             apply the System Disk patches in case they
#             get screwed up.  So if you're the owner of a
#             proprietary Mac OS CD let this Makefile convert
#             it to a useful utility CD in case you get stuck
#             with stand-alone-linux on your Mac-Box.
#
# WARNING: The image given with BOOTABLE_MAC_CD will get
#          modified! It might not work, so do backups !!
#
# Tested on a Beige G3 with OpenFirmware 2.4, might work on
# other models.  Hopefully we will not need this anymore
# some day, when support for Apple's oldworld machines has
# grown up ;-)  Ciao ..
#
BOOTABLE_MAC_CD = /media/hdb1/macos8.iso
CDBURNER = ATAPI:0,0,0


SYSDISK = SystemDisk2.3.1.smi.bin

STUFFIT = stuffit520.611linux-i386.tar.gz
UNSTUFF = bin/unstuff

BOOTX = BootX_1.2.2.sit
BOOTX_DIR = BootX_1.2.2
BOOTX_DIR_KRNL = $(BOOTX_DIR)/Linux_Kernels

GEN_IMG = install-ppc-minimal-2006.1.iso


SYSDISKURL = ftp://ftp.apple.com/developer/macosxserver/utilities/$(SYSDISK)
STUFFITURL = http://www.allume.com/downloads/files/$(STUFFIT)
BOOTXURL = http://penguinppc.org/historical/benh/$(BOOTX)
DEBURL = http://people.debian.org/~wouter/d-i/powerpc/daily/powerpc
GENURL = 
ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo/releases/ppc/current/ppc32/installcd/$(GEN_IMG)




modimage:    mount \
        $(SYSDISK).copy \
        debianstuff \
        gentoostuff \
        $(BOOTX_DIR).treecopy \
        umount

cd: modimage
        cdrecord -dao $(CDBURNER) $(BOOTABLE_MAC_CD)

cdclean:
        cdrecord $(CDBURNER) blank=fast

clean:
        umount -d genloop || exit 0
        rm -rf bin/ genloop/ "$(BOOTX_DIR)" *irdmerge .*irdmerge

distclean: clean
        rm $(SYSDISK) $(STUFFIT) $(BOOTX) $(GEN_IMG)




$(SYSDISK):
        wget $(SYSDISKURL)

$(STUFFIT):
        wget $(STUFFITURL)

$(UNSTUFF): $(STUFFIT)
        tar xzf $(STUFFIT) $(UNSTUFF)
        touch $(UNSTUFF)

$(BOOTX):
        wget $(BOOTXURL)

$(BOOTX_DIR): $(UNSTUFF) $(BOOTX)
        $(UNSTUFF) -m=on $(BOOTX)
        mv "$(subst _, ,$@)" "$@"

$(BOOTX_DIR_KRNL): $(BOOTX_DIR)
        mv "$(subst Linux_,Linux ,$@)" "$@"




%.irdmerge:
        test -e "$*" || { \
        mkdir -p "$(suffix $*).irdmerge" && \
        cd "$(suffix $*).irdmerge" && \
        gunzip -c "../$(BOOTX_DIR_KRNL)/$(subst .,,$(suffix $*))$(patsubst 
%$(suffix $*),%,$*)ird.gz" > "initrd.tmp" && \
        cpio -i < "initrd.tmp" 2> /dev/null && \
        rm "initrd.tmp" && \
        cd .. \
        touch "$*" ; }

%.irdbuild:
        test -e "$(patsubst %$(suffix $*),%,$*).gz" || { \
        cd $(suffix $*).irdmerge && \
        find > ../files$(suffix $*).irdmerge && \
        cpio -o < ../files$(suffix $*).irdmerge > "../$(patsubst %$(suffix 
$*),%,$*)" && \
        cd .. ; }

%.gz: %
        test -e "$@" || gzip -9 "$*"




$(BOOTX_DIR_KRNL)/deb%ird.gz:
        wget -O "$@" $(DEBURL)/$*/initrd.gz

$(BOOTX_DIR_KRNL)/deballinitrd: $(BOOTX_DIR_KRNL)/debnetbootird.gz 
$(BOOTX_DIR_KRNL)/debcdromird.gz $(BOOTX_DIR_KRNL)/debhd-mediaird.gz 
netboot.deb.irdmerge cdrom.deb.irdmerge hd-media.deb.irdmerge 
$(BOOTX_DIR_KRNL)/deballinitrd.deb.irdbuild

$(BOOTX_DIR_KRNL)/debvmlinux:
        test -e "[EMAIL PROTECTED]" || wget -O "$@" $(DEBURL)/cdrom/vmlinux

debianstuff: $(BOOTX_DIR_KRNL) $(BOOTX_DIR_KRNL)/debnetbootird.gz 
$(BOOTX_DIR_KRNL)/debcdromird.gz $(BOOTX_DIR_KRNL)/debhd-mediaird.gz 
$(BOOTX_DIR_KRNL)/deballinitrd.gz $(BOOTX_DIR_KRNL)/debvmlinux.gz




$(GEN_IMG):
        wget $(GENURL)

$(GEN_IMG).mount: $(GEN_IMG)
        mkdir -p genloop && \
        mount -o loop $(GEN_IMG) genloop

$(BOOTX_DIR_KRNL)/genliveird.gz: $(GEN_IMG).mount
        cp genloop/boot/apple.igz "$@"

$(BOOTX_DIR_KRNL)/genallinitrd.gen.preirdbuild:
        cp "genloop/image.squashfs" ".gen.irdmerge/image.squashfs"

$(BOOTX_DIR_KRNL)/genallinitrd: $(GEN_IMG).mount 
$(BOOTX_DIR_KRNL)/genliveird.gz live.gen.irdmerge 
$(BOOTX_DIR_KRNL)/genallinitrd.gen.preirdbuild 
$(BOOTX_DIR_KRNL)/genallinitrd.gen.irdbuild

$(BOOTX_DIR_KRNL)/genvmlinux: $(GEN_IMG).mount
        test -e "[EMAIL PROTECTED]" || cp genloop/boot/apple "$@"

gentoostuff: $(BOOTX_DIR_KRNL) $(BOOTX_DIR_KRNL)/genliveird.gz 
$(BOOTX_DIR_KRNL)/genallinitrd.gz $(BOOTX_DIR_KRNL)/genvmlinux.gz
        umount -d genloop




mount:
        hmount $(BOOTABLE_MAC_CD)

umount:
        humount


TREECOPYSPECIALS = s|hcopy -m\(.*$(BOOTX_DIR_KRNL)\)|hcopy -r\1|;
%.treecopy: mount %
        echo "#!/bin/sh" > "$*.dirs" && chmod +x "$*.dirs"
        echo "#!/bin/sh" > "$*.files" && chmod +x "$*.files"
        find "$*" -type d -printf 'hmkdir "/%p"\n' | sed -e 's/\//:/g' >> 
"$*.dirs"
        find "$*" -not -type d -printf " '%p'\n" | sed -ne "h;s/^ '/ 
':/;s/\//:/g;H;g;s/\n//;s/^/hcopy -m/;$(TREECOPYSPECIALS)p" >> "$*.files"
        "./$*.dirs" 2>/dev/null || exit 0
        "./$*.files" || exit 0
        rm -f "./$*.dirs"
        rm -f "./$*.files"

%.copy: mount %
        hcopy -m "$*" ":"


EOF


Have fun,
cmuelle8
-- 
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! 
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to