#
# g4u main Makefile
#

# Build a kernel?
BUILD_KERNEL=	true
#BUILD_KERNEL=	false

# Kernel build flags:
BUILD_KERNEL_FLAGS=	-u	# Don't 'make clean' first

# Object directory  (depends on OBJMACHINE)
O= obj.i386

###########################################################################

all: g4u1.fs g4u.iso

g4u1.fs: ${.CURDIR}/../bootfloppy-g4u-floppy/$O/g4u1.fs
	cp ${.CURDIR}/../bootfloppy-g4u-floppy/$O/g4u*.fs .

g4u.iso: ${.CURDIR}/../bootfloppy-g4u-cdrom/$O/g4u1.fs
	rm -fr iso
	mkdir -p iso
	ln -f ${.CURDIR}/../bootfloppy-g4u-cdrom/$O/g4u1.fs iso/g4ucd.fs
	mkisofs -o g4u.iso -b g4ucd.fs iso
	ls -la g4u.iso

${.CURDIR}/../bootfloppy-g4u-floppy/$O/g4u1.fs: ${.CURDIR}/../ramdisk-g4u/$O/ramdisk-g4u.fs
	cd ${.CURDIR}/../bootfloppy-g4u-floppy ;  ${MAKE}

${.CURDIR}/../bootfloppy-g4u-cdrom/$O/g4u1.fs: ${.CURDIR}/../ramdisk-g4u/$O/ramdisk-g4u.fs
	cd ${.CURDIR}/../bootfloppy-g4u-cdrom ;  ${MAKE}

${.CURDIR}/../ramdisk-g4u/$O/ramdisk-g4u.fs: obj
	if ! grep HF/G4U ${.CURDIR}/../../../../sys/dev/ata/wd.c >/dev/null ; \
	then echo "***" Please apply wd.c.patch-g4u in ${.CURDIR}/../../../../sys/dev/ata ; exit 1 ; fi
	if ! grep HF/G4U ${.CURDIR}/../../../../sys/dev/scsipi/sd.c >/dev/null ; \
	then echo "***" Please apply sd.c.patch-g4u in ${.CURDIR}/../../../../sys/dev/scsipi ; exit 1 ; fi
	if ! grep HF/G4U ${.CURDIR}/../../../../sys/kern/subr_prf.c >/dev/null ; \
	then echo "***" Please apply subr_prf.c.patch-g4u in ${.CURDIR}/../../../../sys/kern ; exit 1 ; fi
	${BUILD_KERNEL} && ${.CURDIR}/../../../../build.sh ${BUILD_KERNEL_FLAGS} kernel=INSTALL_G4U
	cd ${.CURDIR}/../../../../etc ;    	 ${MAKE} MAKEDEV
	cd ${.CURDIR}/../ramdisk-g4u ;    	 ${MAKE} 
	cd ${.CURDIR}/../instkernel ;     	 ${MAKE} -f Makefile.g4u 

obj:
	cd ${.CURDIR}/../instkernel ;            ${MAKE} -f Makefile.g4u obj
	cd ${.CURDIR}/../ramdisk-g4u ;           ${MAKE} obj 
	cd ${.CURDIR}/../bootfloppy-g4u-floppy ; ${MAKE} obj 
	cd ${.CURDIR}/../bootfloppy-g4u-cdrom  ; ${MAKE} obj 

clean distclean cleandir:
	-cd ${.CURDIR}/../ramdisk-g4u ; ${MAKE} $*
	-cd ${.CURDIR}/../instkernel ; ${MAKE} -f Makefile.g4u $*
	-cd ${.CURDIR}/../bootfloppy-g4u-floppy ; ${MAKE} $*
	-cd ${.CURDIR}/../bootfloppy-g4u-cdrom ; ${MAKE} $*
	-rm -fr iso
	-rm -f g4u.iso
	-rm -f g4u*.fs

release distribution: #g4u1.fs g4u.iso
	cp g4u*.fs /tmp
	cp g4u.iso /tmp
	cd ${.CURDIR} ; ${MAKE} distclean
	cd ${.CURDIR}/../../../.. ;				\
	tar -plzvcf /tmp/g4u.tgz				\
	    --exclude '*/$O*'				\
		distrib/i386/floppies/g4u			\
		distrib/i386/floppies/ramdisk-g4u		\
		distrib/i386/floppies/bootfloppy-g4u-floppy	\
		distrib/i386/floppies/bootfloppy-g4u-cdrom	\
		distrib/i386/floppies/instkernel/*g4u		\
		distrib/i386/floppies/common/*g4u		\
		sys/dev/scsipi/sd.c.patch-g4u			\
		sys/dev/ata/wd.c.patch-g4u			\
		sys/kern/subr_prf.c.patch-g4u			\
		sys/arch/i386/conf/INSTALL_G4U
	cp ${.CURDIR}/../../../../sys/arch/i386/conf/INSTALL_G4U /tmp
