Makefile revision 1.76
11.76Srillig# $NetBSD: Makefile,v 1.76 2020/07/29 20:57:31 rillig Exp $ 21.8Schristos# @(#)Makefile 5.2 (Berkeley) 12/28/90 31.1Scgd 41.1ScgdPROG= make 51.74SrilligSRCS= arch.c buf.c compat.c cond.c dir.c for.c hash.c job.c lst.c main.c 61.70SrilligSRCS+= make.c make_malloc.c metachar.c parse.c 71.72SrilligSRCS+= str.c strlist.c suff.c targ.c trace.c var.c util.c 81.40Sdsl 91.73SrilligUSE_COVERAGE?= no # works only with gcc; clang9 fails to link 101.73Srillig.if ${USE_COVERAGE} == "yes" 111.73SrilligCOPTS= --coverage -O0 -ggdb 121.73SrilligLDADD= --coverage 131.73SrilligCLEANFILES+= ${SRCS:.c=.gcda} ${SRCS:.c=.gcno} ${SRCS:=.gcov} 141.73Srillig.endif 151.73Srillig 161.71SrilligUSE_META?= yes 171.51Ssjg.if ${USE_META:tl} != "no" 181.68Sriastrad 191.71SrilligSRCS+= meta.c 201.71SrilligCPPFLAGS+= -DUSE_META 211.68Sriastrad 221.71SrilligUSE_FILEMON?= ktrace 231.72Srillig. if ${USE_FILEMON:tl} != "no" 241.68Sriastrad 251.67Sriastrad.PATH: ${.CURDIR}/filemon 261.71SrilligSRCS+= filemon_${USE_FILEMON}.c 271.71SrilligCPPFLAGS+= -DUSE_FILEMON 281.71SrilligCPPFLAGS+= -DUSE_FILEMON_${USE_FILEMON:tu} 291.68Sriastrad 301.72Srillig. if ${USE_FILEMON} == "dev" 311.71SrilligFILEMON_H?= /usr/include/dev/filemon/filemon.h 321.72Srillig. if exists(${FILEMON_H}) && ${FILEMON_H:T} == "filemon.h" 331.71SrilligCOPTS.filemon_dev.c+= \ 341.71Srillig -DHAVE_FILEMON_H -I${FILEMON_H:H} 351.72Srillig. endif 361.72Srillig. endif 371.72Srillig. endif 381.65Smaxv.endif 391.51Ssjg 401.60SchristosSUBDIR.roff+= PSD.doc 411.29Ssjg.if make(obj) || make(clean) 421.71SrilligSUBDIR+= unit-tests 431.29Ssjg.endif 441.1Scgd 451.75Srillig${SRCS:M*.c:.c=.o}: buf.h config.h dir.h hash.h job.h lst.h make.h make_malloc.h 461.75Srillig${SRCS:M*.c:.c=.o}: meta.h metachar.h nonints.h pathnames.h sprite.h strlist.h trace.h 471.75Srillig 481.1Scgd.include <bsd.prog.mk> 491.16Smycroft.include <bsd.subdir.mk> 501.24Ssjg 511.71SrilligCPPFLAGS+= -DMAKE_NATIVE 521.71SrilligCOPTS.var.c+= -Wno-cast-qual 531.71SrilligCOPTS.job.c+= -Wno-format-nonliteral 541.71SrilligCOPTS.parse.c+= -Wno-format-nonliteral 551.71SrilligCOPTS.var.c+= -Wno-format-nonliteral 561.29Ssjg 571.72Srillig.if defined(TOOLDIR) 581.71Srillig# This is a native NetBSD build, use libutil rather than the local emalloc etc. 591.71SrilligCPPFLAGS+= -DUSE_EMALLOC 601.71SrilligLDADD+= -lutil 611.71SrilligDPADD+= ${LIBUTIL} 621.38Schristos.endif 631.37Schristos 641.63SmrgCOPTS.arch.c+= ${GCC_NO_FORMAT_TRUNCATION} 651.63SmrgCOPTS.dir.c+= ${GCC_NO_FORMAT_TRUNCATION} 661.63SmrgCOPTS.main.c+= ${GCC_NO_FORMAT_TRUNCATION} ${GCC_NO_STRINGOP_TRUNCATION} 671.63SmrgCOPTS.meta.c+= ${GCC_NO_FORMAT_TRUNCATION} 681.63SmrgCOPTS.parse.c+= ${GCC_NO_FORMAT_TRUNCATION} 691.61Smrg 701.29Ssjg# A simple unit-test driver to help catch regressions 711.73Srilligtest: .MAKE 721.73Srillig cd ${.CURDIR}/unit-tests \ 731.73Srillig && MAKEFLAGS= ${.MAKE} -r -m / TEST_MAKE=${TEST_MAKE:U${.OBJDIR}/${PROG:T}} ${.TARGET} 741.73Srillig.if ${USE_COVERAGE} == yes 751.73Srillig gcov ${SRCS} 761.73Srillig.endif 771.73Srillig 781.73Srilligaccept: .MAKE 791.73Srillig cd ${.CURDIR}/unit-tests && ${.MAKE} ${.TARGET} 801.76Srillig 811.76Srilligretest: 821.76Srillig ${.MAKE} -C ${.CURDIR}/unit-tests cleandir 831.76Srillig.if ${USE_COVERAGE} == yes 841.76Srillig rm -f *.gcov *.gcda 851.76Srillig.endif 861.76Srillig ${.MAKE} test 87