1 # $NetBSD: archive.mk,v 1.5 2020/08/23 17:51:24 rillig Exp $
3 # Very basic demonstration of handling archives, based on the description
4 # in PSD.doc/tutorial.ms.
6 ARCHIVE= libprog.${EXT.a}
7 FILES= archive.${EXT.mk} modmisc.${EXT.mk} varmisc.mk
12 MAKE_CMD= ${.MAKE} -f ${MAKEFILE}
16 ${RUN} ${MAKE_CMD} remove-archive
17 ${RUN} ${MAKE_CMD} create-archive
18 ${RUN} ${MAKE_CMD} list-archive
19 ${RUN} ${MAKE_CMD} list-archive-wildcard
20 ${RUN} ${MAKE_CMD} depend-on-existing-member
21 ${RUN} ${MAKE_CMD} depend-on-nonexistent-member
22 ${RUN} ${MAKE_CMD} remove-archive
24 create-archive: ${ARCHIVE}
25 ${ARCHIVE}: ${ARCHIVE}(${FILES})
26 ar cru ${.TARGET} ${.OODATE}
29 list-archive: ${ARCHIVE}
32 # XXX: I had expected that this dependency would select all *.mk files from
33 # the archive. Instead, the globbing is done in the current directory.
34 # To prevent an overly long file list, the pattern is restricted to [at]*.mk.
35 list-archive-wildcard: ${ARCHIVE}([at]*.mk)
36 ${RUN} printf '%s\n' ${.ALLSRC:O:@member@${.TARGET:Q}': '${member:Q}@}
38 depend-on-existing-member: ${ARCHIVE}(archive.mk)
41 depend-on-nonexistent-member: ${ARCHIVE}(nonexistent.mk)