d19d7d58aa
upgrade to NetBSD CVS release from 2012/10/17 12:00:00 UTC Makefiles updates to imporve portability Made sure to be consistent in the usage of braces/parenthesis at least on a per file basis. For variables, it is recommended to continue to use braces.
116 lines
3.1 KiB
Makefile
116 lines
3.1 KiB
Makefile
# Makefile for ramdisk image
|
|
|
|
.include <bsd.own.mk>
|
|
|
|
# Remove "drivers/ramdisk" component from path
|
|
PROGROOT:= ${.OBJDIR:S,drivers/ramdisk,,}
|
|
|
|
TOOL_PWD_MKDB?= ${NETBSDSRCDIR}/usr.sbin/pwd_mkdb/pwd_mkdb
|
|
install:
|
|
|
|
all:
|
|
|
|
PROG_DRIVERS=at_wini floppy pci
|
|
PROG_COMMANDS=cdprobe loadramdisk mount fsck.mfs sysenv sh \
|
|
service
|
|
PROG_SERVERS=mfs procfs
|
|
PROG_USRSBIN=pwd_mkdb
|
|
PROGRAMS=${PROG_DRIVERS} ${PROG_COMMANDS} ${PROG_SERVERS} ${PROG_USRSBIN}
|
|
EXTRA=system.conf master.passwd rs.single
|
|
PROTO_FILES=proto.common.etc proto.common.dynamic proto.sh proto.dev
|
|
|
|
.if ${MKSMALL} != "yes"
|
|
PROG_DRIVERS+= ahci
|
|
PROG_SERVERS+= ext2
|
|
PROTO= proto
|
|
.else
|
|
PROTO= proto.small
|
|
.endif
|
|
|
|
.if ${MKACPI} != "no"
|
|
PROG_DRIVERS+= acpi
|
|
.endif
|
|
|
|
CPPFLAGS+= -I${NETBSDSRCDIR}/servers
|
|
CLEANFILES += ${PROGRAMS} ${SCRIPTS} ${EXTRA} image image.c t proto.gen
|
|
CLEANFILES += ${LIBRARIES}
|
|
CLEANFILES += ${.OBJDIR}/etc/*
|
|
|
|
image: proto.gen ${EXTRA} mtab rc pwd.db spwd.db passwd
|
|
${_MKMSG_CREATE} "Generating ramdisk image"
|
|
${TOOL_MKFSMFS} image proto.gen || { rm -f image; false; }
|
|
# if fsck.mfs -s image | grep -q CLEAN; \
|
|
# then : ; \
|
|
# else echo "CLEAN sanity check of image failed." ; \
|
|
# echo "(Perhaps install current mkfs and fsck.)" ; \
|
|
# rm -f image; false; \
|
|
# fi
|
|
|
|
# LSC ramdisk rc file != /etc/rc
|
|
# mtab not empty!, force execution of the rule to ensure installation
|
|
# Conditionnally execute the command if the target file already exists
|
|
# I have to place .PHONY for the target to work as expected, but I cannot
|
|
# execute the command during an in-tree build (= make xxx)
|
|
.for file in rc mtab ${PROTO} ${PROTO_FILES}
|
|
${file}: ${.CURDIR}/${file} .PHONY
|
|
[ -e $@ ] || ${INSTALL} $> $@
|
|
.endfor
|
|
|
|
.for driver in ${PROG_DRIVERS}
|
|
${driver}: ${PROGROOT}/drivers/${driver}/${driver}
|
|
${INSTALL} $> $@
|
|
|
|
${PROGROOT}/drivers/${driver}/${driver}:
|
|
${MAKE} -C ${NETBSDSRCDIR}/drivers/${driver} ${driver}
|
|
.endfor
|
|
|
|
.for cmd in ${PROG_COMMANDS}
|
|
.if ${cmd} == sh
|
|
dir.${cmd}=ash
|
|
.else
|
|
dir.${cmd}=${cmd}
|
|
.endif
|
|
${cmd}: ${PROGROOT}/commands/${dir.${cmd}}/${cmd}
|
|
${INSTALL} $> $@
|
|
|
|
${PROGROOT}/commands/$(dir.${cmd})/${cmd}:
|
|
${MAKE} -C ${NETBSDSRCDIR}/commands/${dir.${cmd}} ${cmd}
|
|
.endfor
|
|
|
|
.for etc in ${EXTRA}
|
|
${etc}: ${NETBSDSRCDIR}/etc/${etc}
|
|
${INSTALL} $> $@
|
|
.endfor
|
|
|
|
.for cmd in ${PROG_USRSBIN}
|
|
${cmd}: ${PROGROOT}/usr.sbin/${cmd}/${cmd}
|
|
${INSTALL} $> $@
|
|
|
|
${PROGROOT}/usr.sbin/${cmd}/${cmd}:
|
|
${MAKE} -C ${NETBSDSRCDIR}/usr.sbin/${cmd} ${cmd}
|
|
.endfor
|
|
|
|
.for server in ${PROG_SERVERS}
|
|
${server}: ${PROGROOT}/servers/${server}/${server}
|
|
${INSTALL} $> $@
|
|
|
|
${PROGROOT}/servers/${server}/${server}:
|
|
${MAKE} -C ${NETBSDSRCDIR}/servers/${server} ${server}
|
|
.endfor
|
|
|
|
etc/master.passwd: ${NETBSDSRCDIR}/etc/master.passwd
|
|
rm -rf ${.OBJDIR}/etc/
|
|
mkdir -p ${.OBJDIR}/etc
|
|
${INSTALL} $> $@
|
|
${TOOL_PWD_MKDB} -V 0 -p -d . etc/master.passwd
|
|
|
|
# LSC We use @F because some version of make still output a full path for @,
|
|
# even when the target is just a file name
|
|
pwd.db spwd.db passwd: etc/master.passwd
|
|
${INSTALL} etc/${@F} ${@F}
|
|
|
|
proto.gen: ${PROTO} ${PROTO_FILES} ${PROGRAMS}
|
|
${STRIP} ${PROGRAMS}
|
|
${HOST_SH} -e proto.sh ${PROTO} >${.OBJDIR}/${.TARGET}
|
|
|
|
.include <minix.service.mk>
|