1 1.1.4.2 tls # $NetBSD: Makefile.minirootkmod,v 1.1.4.2 2012/11/20 02:57:41 tls Exp $ 2 1.1.4.2 tls # 3 1.1.4.2 tls # Makefile snippet to build a miniroot kernel module (e.g. miniroot.kmod) 4 1.1.4.2 tls # 5 1.1.4.2 tls # Required variables: 6 1.1.4.2 tls # NETBSDSRCDIR top level of src tree (set by <bsd.own.mk>) 7 1.1.4.2 tls # 8 1.1.4.2 tls # Optional variables: 9 1.1.4.2 tls # MINIROOT Basename of the kernel module to be created. 10 1.1.4.2 tls # ".kmod" will be appended to get the file name. 11 1.1.4.2 tls # [default: miniroot] 12 1.1.4.2 tls # RAMDISK Basename of the ramdisk to be embedded in the 13 1.1.4.2 tls # kernel module. This is used as both a directory 14 1.1.4.2 tls # name (${.CURDIR}/../ramdisks/${RAMDISK}) and 15 1.1.4.2 tls # as a file name within the .OBJDIR of that 16 1.1.4.2 tls # directory (${RAMDISK}.fs). [default: ramdisk] 17 1.1.4.2 tls # 18 1.1.4.2 tls 19 1.1.4.2 tls MINIROOT?= miniroot 20 1.1.4.2 tls RAMDISK?= ramdisk 21 1.1.4.2 tls 22 1.1.4.2 tls .include <bsd.own.mk> 23 1.1.4.2 tls .include "${.PARSEDIR}/Makefile.distrib" 24 1.1.4.2 tls 25 1.1.4.2 tls MKMAN= no 26 1.1.4.2 tls PROG= ${MINIROOT}.kmod 27 1.1.4.2 tls 28 1.1.4.2 tls # SRCMOD is a skeleton version of miniroot.kmod, without an embedded ramdisk. 29 1.1.4.2 tls # It should already have been created by "make install" in 30 1.1.4.2 tls # .../sys/modules/miniroot, and its name includes literal "miniroot", 31 1.1.4.2 tls # not variable ${MINIROOT}. 32 1.1.4.2 tls # 33 1.1.4.2 tls # DSTMOD is a copy of SRCMOD that is modified to include an embedded ramdisk. 34 1.1.4.2 tls # It will be created by rules in this Makefile. 35 1.1.4.2 tls # 36 1.1.4.2 tls # RAMDISKFS is the ramdisk image to be included inside DSTMOD. It should 37 1.1.4.2 tls # already have been created by the Makefile in RAMDISKSRCDIR. 38 1.1.4.2 tls # 39 1.1.4.2 tls SRCMOD= ${DESTDIR}/stand/${MACHINE}/${MODULEVER}/modules/miniroot/miniroot.kmod 40 1.1.4.2 tls DSTMOD= ${.OBJDIR}/${MINIROOT}.kmod 41 1.1.4.2 tls RAMDISKSRCDIR= ${.CURDIR}/../ramdisks/${RAMDISK} 42 1.1.4.2 tls RAMDISKOBJDIR!= cd ${RAMDISKSRCDIR} && ${PRINTOBJDIR} 43 1.1.4.2 tls RAMDISKFS= ${RAMDISKOBJDIR}/${RAMDISK}.fs 44 1.1.4.2 tls 45 1.1.4.2 tls ${MINIROOT}.kmod: ${RAMDISKFS} ${SRCMOD} 46 1.1.4.2 tls ${OBJCOPY} --add-section miniroot=${RAMDISKFS} \ 47 1.1.4.2 tls --set-section-flags miniroot=alloc,contents,load,data \ 48 1.1.4.2 tls ${SRCMOD} ${DSTMOD}.tmp 49 1.1.4.2 tls gzip -9nc < ${DSTMOD}.tmp > ${DSTMOD} 50 1.1.4.2 tls rm -f ${DSTMOD}.tmp 51 1.1.4.2 tls 52 1.1.4.2 tls .include <bsd.prog.mk> 53 1.1.4.2 tls 54 1.1.4.2 tls release: ${PROG} 55 1.1.4.2 tls ${HOST_INSTALL_FILE} -m ${BINMODE} ${PROG} \ 56 1.1.4.2 tls ${RELEASEDIR}/${RELEASEMACHINEDIR}/installation/miniroot/ 57