xref: /netbsd-src/usr.bin/make/unit-tests/archive.mk (revision cef8759bd76c1b621f8eab8faa6f208faabc2e15)
1# $NetBSD: archive.mk,v 1.3 2020/08/16 14:39:50 rillig Exp $
2#
3# Very basic demonstration of handling archives, based on the description
4# in PSD.doc/tutorial.ms.
5
6ARCHIVE=	libprog.${EXT.a}
7FILES=		archive.${EXT.mk} modmisc.${EXT.mk} varmisc.mk
8
9EXT.a=		a
10EXT.mk=		mk
11
12MAKE_CMD=	${.MAKE} -f ${MAKEFILE}
13RUN?=		@set -eu;
14
15all:
16	${RUN} ${MAKE_CMD} remove-archive
17	${RUN} ${MAKE_CMD} create-archive
18	${RUN} ${MAKE_CMD} list-archive
19	${RUN} ${MAKE_CMD} depend-on-existing-member
20	${RUN} ${MAKE_CMD} depend-on-nonexistent-member
21	${RUN} ${MAKE_CMD} remove-archive
22
23create-archive: ${ARCHIVE}
24${ARCHIVE}: ${ARCHIVE}(${FILES})
25	ar cru ${.TARGET} ${.OODATE}
26	ranlib ${.TARGET}
27
28list-archive: ${ARCHIVE}
29	ar t ${.ALLSRC}
30
31depend-on-existing-member: ${ARCHIVE}(archive.mk)
32	${RUN} echo $@
33
34depend-on-nonexistent-member: ${ARCHIVE}(nonexistent.mk)
35	${RUN} echo $@
36
37remove-archive:
38	rm -f ${ARCHIVE}
39