Use pattern rules instead of suffix rules
Rework the makefiles to use pattern rules instead of suffix rules. This is the preferred way to write implicit rules according to the gnu make manual.
This commit is contained in:
@@ -5,7 +5,7 @@ INC= net.example
|
||||
MK= ../mk
|
||||
include ${MK}/os.mk
|
||||
|
||||
${SFX}:
|
||||
%.example.in: %.example${SFX}
|
||||
${CP} $< $@
|
||||
|
||||
include ${MK}/scripts.mk
|
||||
|
@@ -37,7 +37,7 @@ SRCS-NetBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
|
||||
# These are NetBSD specific
|
||||
SRCS-NetBSD+= devdb.in swap-blk.in ttys.in wscons.in
|
||||
|
||||
${SFX}:
|
||||
%.in: %${SFX}
|
||||
sed ${SED_REPLACE} ${SED_EXTRA} $< > $@
|
||||
|
||||
include ${MK}/scripts.mk
|
||||
|
@@ -14,12 +14,10 @@ _LIBS= lib${LIB}.a ${SHLIB_NAME}
|
||||
|
||||
CLEANFILES+= ${OBJS} ${SOBJS} ${_LIBS} ${SHLIB_LINK}
|
||||
|
||||
.SUFFIXES: .So
|
||||
|
||||
.c.o:
|
||||
%.o: %.c
|
||||
${CC} ${CFLAGS} ${CPPFLAGS} -c $< -o $@
|
||||
|
||||
.c.So:
|
||||
%.So: %.c
|
||||
${CC} ${PICFLAG} -DPIC ${CPPFLAGS} ${CFLAGS} -c $< -o $@
|
||||
|
||||
all: depend ${_LIBS}
|
||||
|
3
mk/os.mk
3
mk/os.mk
@@ -9,6 +9,3 @@ OS?= ${_OS}
|
||||
include ${MK}/os-${OS}.mk
|
||||
|
||||
RC_LIB= /$(LIBNAME)/rc
|
||||
|
||||
SFX:= ${SFX_PFX}${SFX}
|
||||
.SUFFIXES: ${SFX}
|
||||
|
@@ -24,7 +24,7 @@ CLEANFILES+= ${OBJS} ${PROG}
|
||||
|
||||
all: depend ${PROG}
|
||||
|
||||
.c.o:
|
||||
%.o: %.c
|
||||
${CC} ${CFLAGS} ${CPPFLAGS} -c $< -o $@
|
||||
|
||||
${PROG}: ${SCRIPTS} ${OBJS}
|
||||
|
@@ -15,11 +15,10 @@ _LCL_SED:= $(shell ${_LCL_SED_SH})
|
||||
SED_REPLACE= -e 's:@SHELL@:${SH}:g' -e 's:@LIB@:${LIBNAME}:g' -e 's:@SYSCONFDIR@:${SYSCONFDIR}:g' -e 's:@LIBEXECDIR@:${LIBEXECDIR}:g' -e 's:@PREFIX@:${PREFIX}:g' -e 's:@RC_SYS_DEFAULT@:${MKRCSYS}:g' ${_PKG_SED} ${_LCL_SED}
|
||||
|
||||
# Tweak our shell scripts
|
||||
.SUFFIXES: .sh.in .in
|
||||
.sh.in.sh:
|
||||
%.sh: %.sh.in
|
||||
${SED} ${SED_REPLACE} ${SED_EXTRA} $< > $@
|
||||
|
||||
.in:
|
||||
%: %.in
|
||||
${SED} ${SED_REPLACE} ${SED_EXTRA} $< > $@
|
||||
|
||||
all: ${OBJS} ${TARGETS}
|
||||
|
@@ -18,7 +18,7 @@ INC-Linux= adsl.sh apipa.sh arping.sh bonding.sh br2684ctl.sh bridge.sh \
|
||||
SRCS-NetBSD=
|
||||
INC-NetBSD= ifwatchd.sh
|
||||
|
||||
${SFX}.sh:
|
||||
%.sh: %.sh${SFX}
|
||||
${CP} $< $@
|
||||
|
||||
include ${MK}/scripts.mk
|
||||
|
@@ -6,7 +6,6 @@ BIN= gendepends.sh init.sh runscript.sh ${BIN-${OS}}
|
||||
|
||||
INSTALLAFTER= _installafter
|
||||
|
||||
SFX_PFX= .sh
|
||||
MK= ../mk
|
||||
include ${MK}/os.mk
|
||||
|
||||
@@ -21,7 +20,7 @@ BIN-NetBSD= ifwatchd-carrier.sh ifwatchd-nocarrier.sh
|
||||
|
||||
include ${MK}/scripts.mk
|
||||
|
||||
${SFX}.sh:
|
||||
%.sh: %.sh${SFX}
|
||||
${SED} ${SED_REPLACE} ${SED_EXTRA} $< > $@
|
||||
|
||||
_installafter:
|
||||
|
@@ -39,8 +39,7 @@ endif
|
||||
endif
|
||||
SED_CMD+= ${_LCL_PREFIX}
|
||||
|
||||
.SUFFIXES: .h.in .h
|
||||
.h.in.h:
|
||||
%.h: %.h.in
|
||||
${SED} ${SED_CMD} $< > $@
|
||||
${SRCS}: rc.h
|
||||
|
||||
|
Reference in New Issue
Block a user