1# $MirOS: src/distrib/common/Makefile.Grml,v 1.5 2013/03/29 16:49:52 tg Exp $
2
3CBIN?=		instbin
4IMAGESIZE=	8192
5IMAGETYPE=	ipldisc
6
7KERNEL_BUILD=	no
8#		(17,0) = rd0a
9RAMDISK_PREP=	print 'rootdev 17 0\nquit' | config -ef $@~
10
11FLOPPY=		no
12.if exists(${REALOBJDIR}/../../../sys/arch/i386/stand/liveboot/.)
13BOOT=		ldbsd.iso
14DO_LIVEBOOT=	#defined
15.endif
16CDROM=		bsd4grml.iso
17CDROM_OPTS+=	bootimage=i386\;eltorito.loo
18CDROM_OPTS+=	no-emul-boot
19
20CLEANFILES+=	ldbsd.* LICENCE.TXT gpl_srcs.tgz
21
22all: templates/bsd4grml.stamp
23
24bsd: ${BSDOBJDIR}/distrib/generic/bsd
25	cp -f $> $@
26
27LISTADDS=	boot bridge cd9660 dhclient disktools ext2fs i386 isdn msdos \
28		nettools nfs nfsd pager-less ppp-user pppoe-kernel \
29		pppoe-user
30MACHCONF:=	i386-big
31LISTADDS+=	Grml
32LGRUBCFG=	grml
33
34${CBIN}.conf: gnustuff
35
36gnustuff: .PHONY
37	for dir in ${.CURDIR}/tinyirc ${TOPDIR}/../contrib/gnu/e3; do \
38		(cd $$dir && ${MAKE} obj && ${MAKE} depend && ${MAKE}); \
39	done
40	cd ${TOPDIR}/../share/doc/legal && ${MAKE} grml
41	cp ${REALOBJDIR}/../../../share/doc/legal/grml LICENCE.TXT
42	rm -rf gplsrcs
43	mkdir -p gplsrcs/{e3,tinyirc}
44	cp ${TOPDIR}/../contrib/gnu/e3/{Makefile,README,e3.*} gplsrcs/e3/
45	cp ${TOPDIR}/../contrib/code/Snippets/tinyirc.c gplsrcs/tinyirc/
46	(cd gplsrcs && find * -type f | sort | cpio -oC512 -Hustar -Mdist | \
47	    gzip -n9) >gpl_srcs.tgz
48
49cleannobsd: clean_grmldirs
50
51clean_grmldirs:
52	-rm -rf gplsrcs templates
53
54cdrom-prepare: ldbsd.stamp
55
56ldbsd.stamp:
57.ifdef DO_LIVEBOOT
58	cd ${.CURDIR}/../../../sys/arch/i386/stand/liveboot; \
59	    ${MAKE} BSD4GRML=iso cleandir && \
60	    ${MAKE} BSD4GRML=iso depend && \
61	    exec ${MAKE} BSD4GRML=iso NOMAN=Yes
62	cp ${REALOBJDIR}/../../../sys/arch/i386/stand/liveboot/boot ldbsd.iso
63	cd ${.CURDIR}/../../../sys/arch/i386/stand/liveboot; \
64	    ${MAKE} BSD4GRML=Yes cleandir && \
65	    ${MAKE} BSD4GRML=Yes depend && \
66	    exec ${MAKE} BSD4GRML=Yes
67	cp ${REALOBJDIR}/../../../sys/arch/i386/stand/liveboot/boot ldbsd.com
68	cp ${REALOBJDIR}/../../../sys/arch/i386/stand/liveboot/ldbsd.txt .
69	@:>$@
70.else
71	@echo 'need [[ -d ${REALOBJDIR}/../../../sys/arch/i386/stand/liveboot/. ]]'
72	@exit 1
73.endif
74
75templates/bsd4grml.stamp: ${CDROM}
76
77cdrom-mdcopy:
78	dd if=/dev/arandom bs=2048 count=1 of=eltorito.loo
79	-rm -rf templates
80	mkdir -p templates/boot/{addons/bsd4grml,grub}
81	mv ${WRKDIR}/boot/grub/loopback.cfg templates/boot/grub/
82	mv ${WRKDIR}/boot/grub/loopback.* templates/boot/addons/bsd4grml/
83	mv ${WRKDIR}/v${OSrev}/${MACHINE}/bsd.rd templates/boot/addons/bsd4grml/
84	cd ${WRKDIR} && rm -rf *
85	cp ${.CURDIR}/boot.* LICENCE.TXT gpl_srcs.tgz ldbsd.{com,iso,txt} \
86	    templates/boot/addons/bsd4grml/
87	chmod 0644 templates/boot/addons/bsd4grml/* templates/boot/grub/*
88	cd templates && pax -rw -l -pe boot ${WRKDIR}/
89	rm -f templates/boot/addons/bsd4grml/ldbsd.iso
90	ln ${WRKDIR}/boot/addons/bsd4grml/ldbsd.iso ${WRKDIR}/b_${MACHINE}.ldr
91	@:>templates/bsd4grml.stamp
92
93cdrom-mdboot:
94	getextent_cd9660 -f ${CDROM} b_${MACHINE}.ldr | \
95	    ${MKSH} ${BOOTSH} \
96	    -g $$((#$$(stat -f %z ${CDROM}) / (512 * 32 * 16))):16:32 \
97	    -A -M 4:0x96 -S 2 | \
98	    dd of=${CDROM} conv=notrunc 2>/dev/null
99	getextent_cd9660 -f ${CDROM} b_${MACHINE}.ldr | \
100	    ${MKSH} ${BOOTSH} -B 11 | \
101	    dd of=${CDROM} conv=notrunc bs=2048 seek=$$(getextent_cd9660 \
102	    -f ${CDROM} -b '$$BootImage$$') 2>/dev/null
103