お手軽Makefile #10
bsd.prog.mkの話を延々してきたけど、これはもちろんNetBSDで各プログラムをコンパイルするのに使われている。以下適当に見繕って挙げてみる。
lsの場合。
$ cd /usr/src/bin/ls $ ls CVS/ extern.h ls.h stat_flags.c Makefile ls.1 main.c stat_flags.h cmp.c ls.c print.c util.c $ cat Makefile # $NetBSD: Makefile,v 1.13 2001/11/03 13:40:30 lukem Exp $ # @(#)Makefile 8.1 (Berkeley) 6/2/93 PROG= ls SRCS= cmp.c ls.c main.c print.c stat_flags.c util.c CFLAGS+= -DCOLORLS LDADD+= -ltermcap .include <bsd.prog.mk>
duの場合。
$ cd /usr/src/usr.bin/du $ ls CVS/ Makefile du.1 du.c $ cat Makefile # $NetBSD: Makefile,v 1.7 1995/09/28 06:24:35 perry Exp $ # @(#)Makefile 8.1 (Berkeley) 6/6/93 PROG= du .include <bsd.prog.mk>
findの場合。
$ cd /usr/src/usr.bin/find $ ls CVS/ find.1 find.h main.c option.c Makefile find.c function.c misc.c extern.h find.cat1 ls.c operator.c $ cat Makefile # $NetBSD: Makefile,v 1.8 1999/01/03 14:54:27 lukem Exp $ # from: @(#)Makefile 8.1 (Berkeley) 6/6/93 PROG= find SRCS= find.c function.c ls.c main.c misc.c operator.c option.c stat_flags.c CPPFLAGS+= -I${.CURDIR}/../../bin/ls .PATH: ${.CURDIR}/../../bin/ls .include <bsd.prog.mk>
それからついでなんだけど、例えばlsをデバッグオプション付きでコンパイルしたいんだど…‥って場合には、以下のように実行すればよい。
$ cd /usr/src/bin/ls $ ls CVS/ extern.h ls.h stat_flags.c Makefile ls.1 main.c stat_flags.h cmp.c ls.c print.c util.c $ DBG=-g make ... $ ls CVS/ extern.h ls.cat1 main.o stat_flags.h Makefile ls* ls.h print.c stat_flags.o cmp.c ls.1 ls.o print.o util.c cmp.o ls.c main.c stat_flags.c util.o $ file ls ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for NetBSD, static ally linked, not stripped