Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

# $NetBSD: Makefile,v 1.31 2014/08/05 15:40:58 apb Exp $

.include "../../../Makefile.inc"

# Make a distribution for the alpha, on a spare disk.
# This creates a large, gzipped disk image in ${.OBJDIR}

LOCALTARGETS=	bin.tar.gz etc.tar.gz x11.tar.gz diskimage.gz

.if !defined(DESTDIR) || !defined(DESTDISK)
all:
	@echo both 'DESTDIR' and 'DESTDISK' must be defined.
	@false
.else

KERNEL?= ${KERNOBJDIR}/GENERIC/netbsd

SECPERCYL=	343
CYLS=		1189

all: ${LOCALTARGETS}

mount-fs:
	disklabel -W ${DESTDISK}
	-dd if=/dev/zero of=/dev/r${DESTDISK}c bs=`expr ${SECPERCYL} \* 512` \
	    count=${CYLS}
	disklabel -w -r ${DESTDISK} ImageDisk
	disklabel -W ${DESTDISK}
	newfs -B le -O /dev/r${DESTDISK}a
	newfs -B le -O /dev/r${DESTDISK}d
	mount /dev/${DESTDISK}a ${DESTDIR}
	mkdir ${DESTDIR}/usr
	mount /dev/${DESTDISK}d ${DESTDIR}/usr

build-fs:
	cd ${.CURDIR}/../../../etc && ${MAKE} distribution
	if [ -d ${.CURDIR}/../../../toolchain ]; then \
		cd ${.CURDIR}/../../../toolchain && \
		    ${MAKE} prefix=${DESTDIR}/usr/local install; \
	else \
		true; \
	fi
	if [ -d ${.CURDIR}/../../../xc ]; then \
		cd ${.CURDIR}/../../../xc && ${MAKE} install install.man; \
	else \
		true; \
	fi
	cp ${KERNEL} ${DESTDIR}
	ln -s gcc ${DESTDIR}/usr/local/bin/cc
	(cd ${DESTDIR}/usr/libexec && ln -s \
	    ../local/lib/gcc-lib/alpha-unknown-netbsd*/*/cpp .)
	ln -s ../local/bin/ar ${DESTDIR}/usr/bin
	ln -s ../local/bin/as ${DESTDIR}/usr/bin
	ln -s ../local/bin/cc ${DESTDIR}/usr/bin
	ln -s ../local/bin/gcc ${DESTDIR}/usr/bin
	ln -s ../local/bin/ld ${DESTDIR}/usr/bin
	ln -s ../local/bin/nm ${DESTDIR}/usr/bin
	ln -s ../local/bin/ranlib ${DESTDIR}/usr/bin
	ln -s ../local/bin/size ${DESTDIR}/usr/bin
	ln -s ../local/bin/strip ${DESTDIR}/usr/bin
	cp -p ${DESTDIR}/usr/mdec/boot ${DESTDIR}/
	sync; sleep 1; sync; sleep 1
	${TOOL_INSTALLBOOT} -v /dev/r${DESTDISK}c ${DESTDIR}/usr/mdec/bootxx_ffs

unmount-fs:
	umount ${DESTDIR}/usr ${DESTDIR}
	fsck -f -t ffs /dev/r${DESTDISK}a /dev/r${DESTDISK}d

diskimage.gz: mount-fs build-fs unmount-fs
	mount /dev/${DESTDISK}a ${DESTDIR}
	mount /dev/${DESTDISK}d ${DESTDIR}/usr
#	mkdir ${DESTDIR}/alphadist
#	cp -p ${DESTDIR}/usr/sbin/sysctl ${DESTDIR}/alphadist
#	mv ${DESTDIR}/etc/rc ${DESTDIR}/alphadist/rc.real
#	cp ${.CURDIR}/rc.hack ${DESTDIR}/alphadist/rc.hack
#	cp -p ${DESTDIR}/alphadist/rc.hack ${DESTDIR}/etc/rc
	umount ${DESTDIR}/usr ${DESTDIR}
	/bin/rm -f $@
	dd if=/dev/r${DESTDISK}c bs=`expr ${SECPERCYL} \* 512` \
	    count=${CYLS} | ${TOOL_GZIP_N} -9 > $@

bin.tar.gz: mount-fs build-fs
	/bin/rm -f $@
	(cd ${DESTDIR} ; find . | grep -v '^./etc' | \
	    grep -v '^./usr/X11R6' | grep -v '^./netbsd' | \
	    grep -v '^./boot' | pax -w -d | ${TOOL_GZIP_N} -9) > $@

etc.tar.gz: mount-fs build-fs
	/bin/rm -f $@
	(cd ${DESTDIR} ; find ./etc | pax -w -d | ${TOOL_GZIP_N} -9) > $@

x11.tar.gz: mount-fs build-fs
	/bin/rm -f $@
	(cd ${DESTDIR} ; find ./usr/X11R6 | pax -w -d | ${TOOL_GZIP_N} -9) > $@

.endif

# clean dependencies in case somebody decides to shortcut the build.
clean cleandir distclean:
	/bin/rm -f ${LOCALTARGETS}
	/bin/rm -f mount-fs build-fs unmount-fs

.include <bsd.kernobj.mk>
.include <bsd.own.mk>
.include <bsd.obj.mk>