aboutsummaryrefslogtreecommitdiff
path: root/release/tool-Makefile
diff options
context:
space:
mode:
authorMichael I. Bushnell <mib@gnu.org>1996-07-08 20:21:02 +0000
committerMichael I. Bushnell <mib@gnu.org>1996-07-08 20:21:02 +0000
commit90f0dc86d50d5ada3c90be9fcd0abe9b9d4e8b2d (patch)
tree5137d8cd4538f0006e70ecf37a3efd6cc0f40ebf /release/tool-Makefile
parentc05364b65344a0cf83657b8abd3ac65b0e62f194 (diff)
downloadhurd-90f0dc86d50d5ada3c90be9fcd0abe9b9d4e8b2d.tar.gz
hurd-90f0dc86d50d5ada3c90be9fcd0abe9b9d4e8b2d.tar.bz2
hurd-90f0dc86d50d5ada3c90be9fcd0abe9b9d4e8b2d.zip
Initial revision
Diffstat (limited to 'release/tool-Makefile')
-rw-r--r--release/tool-Makefile124
1 files changed, 124 insertions, 0 deletions
diff --git a/release/tool-Makefile b/release/tool-Makefile
new file mode 100644
index 00000000..375042e4
--- /dev/null
+++ b/release/tool-Makefile
@@ -0,0 +1,124 @@
+# Makefile for hurd image frobnication.
+
+export GNUTARGET=elf32-i386
+export OBJCOPY=i386-gnu-objcopy
+
+BF=bfloppy-image
+RF=rfloppy-image
+
+bfloppy-files = $(bfloppy-bootfs:%=hurd/%) $(bfloppy-bootprogs:%=boot/%) \
+ lib/ld.so boot/servers.boot
+bfloppy-bootfs = ufs
+bfloppy-bootprogs = kernel bootstrap
+
+$(BF)/boot/servers.boot: hurd-image/boot/floppy.boot
+ -rm -f $@
+ @test -d $(@D) || mkdir -p $(@D)
+ cp $< $@
+
+$(BF)/%/: hurd-image/%/
+ test -d $@ || mkdir -p $@
+$(BF)/%: hurd-image/%
+ -rm -f $@
+ @test -d $(@D) || mkdir -p $(@D)
+ ln $< $@ || cp $< $@
+
+$(BF): $(bfloppy-files:%=$(BF)/%)
+$(BF).tar: $(bfloppy-files:%=$(BF)/%)
+ rm -f $@
+ cd $(BF); tar covf ../$@ $(^:$(BF)/%=%)
+
+rfloppy-files = $(rfloppy-hurd:%=hurd/%) $(rfloppy-progs:%=bin/%) \
+ $(rfloppy-solib:%=lib/%.so) hurd/exec \
+ lib/libc.so lib/libhurduser.so lib/libmachuser.so \
+ servers/exec servers/socket/1 \
+ README tmp/ dev/MAKEDEV
+rfloppy-hurd = auth devio null init proc term
+rfloppy-progs = sh ls cat settrans # mkfs
+rfloppy-solib = libtrivfs libthreads libshouldbeinlibc libports \
+ libpager libioserver libihash libfshelp ld
+
+libc-satisfies = $(rfloppy-hurd:%=hurd/%) $(rfloppy-progs:%=bin/%) $(rfloppy-solib:%=lib/%.so)
+
+libc-obj-dir = /gd4/gnu/libc/i386
+smallso-LDFLAGS = -Wl,-rpath-link=/lib
+
+libc-USERS =
+libc-DEPS =
+
+$(RF)/lib/libc.so: hurd-image/lib/libc.so hurd-image/lib/libhurduser.so hurd-image/lib/libmachuser.so $(libc-satisfies:%=hurd-image/%)
+ mksmallso $(smallso-LDFLAGS) \
+ $@ $(libc-obj-dir)/libc_pic.a '-Lhurd-image/lib -lhurduser -lmachuser' \
+ $(filter-out $(firstword $^),$^)
+
+$(RF)/lib/libhurduser.so: $(RF)/lib/libc.so $(libc-satisfies:%=hurd-image/%)
+ mksmallso $(smallso-LDFLAGS) $@ $(libc-obj-dir)/libhurduser_pic.a -Lhurd-image/lib -lmachuser $(filter-out $(firstword $^),$^)
+
+$(RF)/lib/libmachuser.so: $(RF)/lib/libc.so $(RF)/lib/libhurduser.so $(libc-satisfies:%=hurd-image/%)
+ mksmallso $(smallso-LDFLAGS) $@ $(libc-obj-dir)/libmachuser_pic.a '' $(filter-out $(firstword $^),$^)
+
+$(addprefix $(RF)/,$(rfloppy-hurd:%=hurd/%) $(rfloppy-progs:%=bin/%)): \
+ $(RF)/%: hurd-image/%
+ @test -d $(@D) || mkdir -p $(@D)
+ gzip -9v -c $< > $@.new
+ chmod 555 $@.new
+ mv -f $@.new $@
+
+$(RF)/%/: hurd-image/%/
+ test -d $@ || mkdir -p $@
+$(RF)/%: hurd-image/%
+ -rm -f $@
+ @test -d $(@D) || mkdir -p $(@D)
+ ln $< $@ || cp $< $@
+
+$(RF): $(rfloppy-files:%=$(RF)/%)
+$(RF).tar: $(rfloppy-files:%=$(RF)/%)
+ rm -f $@
+ cd $(RF); tar covf ../$@ $(^:$(RF)/%=%)
+
+MOUNT_POINT = /mnt
+VND = vnd0
+VND_DEV = /dev/${VND}a
+VND_RDEV = /dev/r${VND}a
+MDEC = /usr/mdec
+
+floppy%-image.fs: /tmp/floppy%-image.fs; cp -f $< $@
+
+/tmp/floppy%-image.fs: floppy%-image.tar
+ dd if=/dev/zero of=$@.new bs=10k count=144
+ vnconfig -v -c ${VND_DEV} $@.new
+ disklabel -w -B -b ${MDEC}/fdboot -s ${MDEC}/bootfd ${VND} floppy3
+ newfs -O -m 0 -o space -i 5120 -c 80 ${VND_RDEV} floppy3
+ mount ${VND_DEV} ${MOUNT_POINT}
+ tar -f $< -C ${MOUNT_POINT} -xv
+ df -i ${MOUNT_POINT}
+ umount ${MOUNT_POINT}
+ vnconfig -u ${VND_DEV} $@.new
+ mv -f $@.new $@
+
+hurd-image.tar: hurd-image hurd-image.stamp
+ tar cof $@ $<
+
+%.gz: %
+ gzip -9v -c $< > $@.new
+ mv -f $@.new $@
+
+%:: %.gz
+ gunzip -c $< > $@.new
+ mv -f $@.new $@
+
+
+instdirs := $(patsubst ../hurdinst/%,%,\
+ $(filter-out ../hurdinst,\
+ $(shell find ../hurdinst -type d -print \
+ | sort -r)))
+
+hurd-image/%/.stamp: ../hurdinst/%
+ @./install-stripped -N $@ $< $(@D)
+ @echo $< `date` > $@
+ @echo updated $(@D)/
+hurd-image.stamp: $(instdirs:%=hurd-image/%/.stamp); touch $@
+hurd-image: hurd-image.stamp
+
+
+ \ No newline at end of file