1*45447996SSimon J. Gerraty# $Id: Makefile,v 1.77 2016/12/12 07:34:19 sjg Exp $ 23cbdda60SSimon J. Gerraty 33cbdda60SSimon J. Gerraty# Base version on src date 4*45447996SSimon J. Gerraty_MAKE_VERSION= 20161212 53cbdda60SSimon J. Gerraty 63cbdda60SSimon J. GerratyPROG= bmake 73cbdda60SSimon J. Gerraty 83cbdda60SSimon J. GerratySRCS= \ 93cbdda60SSimon J. Gerraty arch.c \ 103cbdda60SSimon J. Gerraty buf.c \ 113cbdda60SSimon J. Gerraty compat.c \ 123cbdda60SSimon J. Gerraty cond.c \ 133cbdda60SSimon J. Gerraty dir.c \ 143cbdda60SSimon J. Gerraty for.c \ 153cbdda60SSimon J. Gerraty hash.c \ 163cbdda60SSimon J. Gerraty job.c \ 173cbdda60SSimon J. Gerraty main.c \ 183cbdda60SSimon J. Gerraty make.c \ 193cbdda60SSimon J. Gerraty make_malloc.c \ 203cbdda60SSimon J. Gerraty meta.c \ 214c620fe5SSimon J. Gerraty metachar.c \ 223cbdda60SSimon J. Gerraty parse.c \ 233cbdda60SSimon J. Gerraty str.c \ 243cbdda60SSimon J. Gerraty strlist.c \ 253cbdda60SSimon J. Gerraty suff.c \ 263cbdda60SSimon J. Gerraty targ.c \ 273cbdda60SSimon J. Gerraty trace.c \ 283cbdda60SSimon J. Gerraty util.c \ 293cbdda60SSimon J. Gerraty var.c 303cbdda60SSimon J. Gerraty 313cbdda60SSimon J. Gerraty# from lst.lib/ 323cbdda60SSimon J. GerratySRCS+= \ 333cbdda60SSimon J. Gerraty lstAppend.c \ 343cbdda60SSimon J. Gerraty lstAtEnd.c \ 353cbdda60SSimon J. Gerraty lstAtFront.c \ 363cbdda60SSimon J. Gerraty lstClose.c \ 373cbdda60SSimon J. Gerraty lstConcat.c \ 383cbdda60SSimon J. Gerraty lstDatum.c \ 393cbdda60SSimon J. Gerraty lstDeQueue.c \ 403cbdda60SSimon J. Gerraty lstDestroy.c \ 413cbdda60SSimon J. Gerraty lstDupl.c \ 423cbdda60SSimon J. Gerraty lstEnQueue.c \ 433cbdda60SSimon J. Gerraty lstFind.c \ 443cbdda60SSimon J. Gerraty lstFindFrom.c \ 453cbdda60SSimon J. Gerraty lstFirst.c \ 463cbdda60SSimon J. Gerraty lstForEach.c \ 473cbdda60SSimon J. Gerraty lstForEachFrom.c \ 483cbdda60SSimon J. Gerraty lstInit.c \ 493cbdda60SSimon J. Gerraty lstInsert.c \ 503cbdda60SSimon J. Gerraty lstIsAtEnd.c \ 513cbdda60SSimon J. Gerraty lstIsEmpty.c \ 523cbdda60SSimon J. Gerraty lstLast.c \ 533cbdda60SSimon J. Gerraty lstMember.c \ 543cbdda60SSimon J. Gerraty lstNext.c \ 553cbdda60SSimon J. Gerraty lstOpen.c \ 563cbdda60SSimon J. Gerraty lstPrev.c \ 573cbdda60SSimon J. Gerraty lstRemove.c \ 583cbdda60SSimon J. Gerraty lstReplace.c \ 593cbdda60SSimon J. Gerraty lstSucc.c 603cbdda60SSimon J. Gerraty 613cbdda60SSimon J. Gerraty# this file gets generated by configure 623cbdda60SSimon J. Gerraty.-include "Makefile.config" 633cbdda60SSimon J. Gerraty 643cbdda60SSimon J. Gerraty.if !empty(LIBOBJS) 653cbdda60SSimon J. GerratySRCS+= ${LIBOBJS:T:.o=.c} 663cbdda60SSimon J. Gerraty.endif 673cbdda60SSimon J. Gerraty 683cbdda60SSimon J. Gerraty# just in case 693cbdda60SSimon J. Gerratyprefix?= /usr 703cbdda60SSimon J. Gerratysrcdir?= ${.CURDIR} 713cbdda60SSimon J. Gerraty 720dede8b0SSimon J. GerratyDEFAULT_SYS_PATH?= ${prefix}/share/mk 733cbdda60SSimon J. Gerraty 743cbdda60SSimon J. GerratyCPPFLAGS+= -DUSE_META 753cbdda60SSimon J. GerratyCFLAGS+= ${CPPFLAGS} 763cbdda60SSimon J. GerratyCFLAGS+= -D_PATH_DEFSYSPATH=\"${DEFAULT_SYS_PATH}\" 773cbdda60SSimon J. GerratyCFLAGS+= -I. -I${srcdir} ${XDEFS} -DMAKE_NATIVE 783cbdda60SSimon J. GerratyCFLAGS+= ${COPTS.${.ALLSRC:M*.c:T:u}} 793bebe729SSimon J. GerratyCOPTS.main.c+= "-DMAKE_VERSION=\"${_MAKE_VERSION}\"" 803cbdda60SSimon J. Gerraty 813cbdda60SSimon J. Gerraty# meta mode can be useful even without filemon 823cbdda60SSimon J. GerratyFILEMON_H ?= /usr/include/dev/filemon/filemon.h 833cbdda60SSimon J. Gerraty.if exists(${FILEMON_H}) && ${FILEMON_H:T} == "filemon.h" 843cbdda60SSimon J. GerratyCOPTS.meta.c += -DHAVE_FILEMON_H -I${FILEMON_H:H} 853cbdda60SSimon J. Gerraty.endif 863cbdda60SSimon J. Gerraty 873cbdda60SSimon J. Gerraty.PATH: ${srcdir} 883cbdda60SSimon J. Gerraty.PATH: ${srcdir}/lst.lib 893cbdda60SSimon J. Gerraty 903cbdda60SSimon J. Gerraty.if make(obj) || make(clean) 913cbdda60SSimon J. GerratySUBDIR+= unit-tests 923cbdda60SSimon J. Gerraty.endif 933cbdda60SSimon J. Gerraty 943cbdda60SSimon J. Gerraty# start-delete1 for bsd.after-import.mk 953cbdda60SSimon J. Gerraty# we skip a lot of this when building as part of FreeBSD etc. 963cbdda60SSimon J. Gerraty 973cbdda60SSimon J. Gerraty# list of OS's which are derrived from BSD4.4 9828a6bc81SSimon J. GerratyBSD44_LIST= NetBSD FreeBSD OpenBSD DragonFly MirBSD Bitrig 993cbdda60SSimon J. Gerraty# we are... 1003cbdda60SSimon J. GerratyOS!= uname -s 1013cbdda60SSimon J. Gerraty# are we 4.4BSD ? 1023cbdda60SSimon J. GerratyisBSD44:=${BSD44_LIST:M${OS}} 1033cbdda60SSimon J. Gerraty 1043cbdda60SSimon J. Gerraty.if ${isBSD44} == "" 1053cbdda60SSimon J. GerratyMANTARGET= cat 1063cbdda60SSimon J. GerratyINSTALL?=${srcdir}/install-sh 1073cbdda60SSimon J. Gerraty.if (${MACHINE} == "sun386") 1083cbdda60SSimon J. Gerraty# even I don't have one of these anymore :-) 1093cbdda60SSimon J. GerratyCFLAGS+= -DPORTAR 1103cbdda60SSimon J. Gerraty.elif (${MACHINE} != "sunos") 1113cbdda60SSimon J. GerratySRCS+= sigcompat.c 1123cbdda60SSimon J. GerratyCFLAGS+= -DSIGNAL_FLAGS=SA_RESTART 1133cbdda60SSimon J. Gerraty.endif 1143cbdda60SSimon J. Gerraty.else 1153cbdda60SSimon J. GerratyMANTARGET?= man 1163cbdda60SSimon J. Gerraty.endif 1173cbdda60SSimon J. Gerraty 1183cbdda60SSimon J. Gerraty# turn this on by default - ignored if we are root 1193cbdda60SSimon J. GerratyWITH_INSTALL_AS_USER= 1203cbdda60SSimon J. Gerraty 1215bcb7424SSimon J. Gerraty# suppress with -DWITHOUT_* 1223cbdda60SSimon J. GerratyOPTIONS_DEFAULT_YES+= \ 1233cbdda60SSimon J. Gerraty AUTOCONF_MK \ 1243cbdda60SSimon J. Gerraty INSTALL_MK \ 1253cbdda60SSimon J. Gerraty PROG_LINK 1263cbdda60SSimon J. Gerraty 1273cbdda60SSimon J. GerratyOPTIONS_DEFAULT_NO+= \ 1283cbdda60SSimon J. Gerraty PROG_VERSION 1293cbdda60SSimon J. Gerraty 1303cbdda60SSimon J. Gerraty# process options now 1313cbdda60SSimon J. Gerraty.include <own.mk> 1323cbdda60SSimon J. Gerraty 1333cbdda60SSimon J. Gerraty.if ${MK_PROG_VERSION} == "yes" 134e48f47ddSSimon J. GerratyPROG_NAME= ${PROG}-${_MAKE_VERSION} 1353cbdda60SSimon J. Gerraty.if ${MK_PROG_LINK} == "yes" 136e48f47ddSSimon J. GerratySYMLINKS+= ${PROG_NAME} ${BINDIR}/${PROG} 1373cbdda60SSimon J. Gerraty.endif 1383cbdda60SSimon J. Gerraty.endif 1393cbdda60SSimon J. Gerraty 1403cbdda60SSimon J. GerratyEXTRACT_MAN=no 1413cbdda60SSimon J. Gerraty# end-delete1 1423cbdda60SSimon J. Gerraty 1433cbdda60SSimon J. GerratyMAN= ${PROG}.1 1443cbdda60SSimon J. GerratyMAN1= ${MAN} 1453cbdda60SSimon J. Gerraty 1463cbdda60SSimon J. Gerraty.if (${PROG} != "make") 1473cbdda60SSimon J. GerratyCLEANFILES+= my.history 1483cbdda60SSimon J. Gerraty.if make(${MAN}) || !exists(${srcdir}/${MAN}) 1493cbdda60SSimon J. Gerratymy.history: ${MAKEFILE} 1503cbdda60SSimon J. Gerraty @(echo ".Nm"; \ 1513cbdda60SSimon J. Gerraty echo "is derived from NetBSD"; \ 1523cbdda60SSimon J. Gerraty echo ".Xr make 1 ."; \ 1533cbdda60SSimon J. Gerraty echo "It uses autoconf to facilitate portability to other platforms."; \ 1543cbdda60SSimon J. Gerraty echo ".Pp") > $@ 1553cbdda60SSimon J. Gerraty 1563cbdda60SSimon J. Gerraty.NOPATH: ${MAN} 1573cbdda60SSimon J. Gerraty${MAN}: make.1 my.history 1583cbdda60SSimon J. Gerraty @echo making $@ 159*45447996SSimon J. Gerraty @sed \ 160*45447996SSimon J. Gerraty -e '/^.Dt/s/MAKE/${PROG:tu}/' \ 161*45447996SSimon J. Gerraty -e 's/^.Nx/NetBSD/' \ 162*45447996SSimon J. Gerraty -e '/^.Nm/s/make/${PROG}/' \ 1633cbdda60SSimon J. Gerraty -e '/^.Sh HISTORY/rmy.history' \ 1643cbdda60SSimon J. Gerraty -e '/^.Sh HISTORY/,$$s,^.Nm,make,' ${srcdir}/make.1 > $@ 1653cbdda60SSimon J. Gerraty 1663cbdda60SSimon J. Gerratyall beforeinstall: ${MAN} 1673cbdda60SSimon J. Gerraty_mfromdir=. 1683cbdda60SSimon J. Gerraty.endif 1693cbdda60SSimon J. Gerraty.endif 1703cbdda60SSimon J. Gerraty 1713cbdda60SSimon J. GerratyMANTARGET?= cat 1723cbdda60SSimon J. GerratyMANDEST?= ${MANDIR}/${MANTARGET}1 1733cbdda60SSimon J. Gerraty 1743cbdda60SSimon J. Gerraty.if ${MANTARGET} == "cat" 1753cbdda60SSimon J. Gerraty_mfromdir=${srcdir} 1763cbdda60SSimon J. Gerraty.endif 1773cbdda60SSimon J. Gerraty 1783cbdda60SSimon J. Gerraty.include <prog.mk> 1793cbdda60SSimon J. Gerraty 1803cbdda60SSimon J. GerratyCPPFLAGS+= -DMAKE_NATIVE -DHAVE_CONFIG_H 1813cbdda60SSimon J. GerratyCOPTS.var.c += -Wno-cast-qual 1823cbdda60SSimon J. GerratyCOPTS.job.c += -Wno-format-nonliteral 1833cbdda60SSimon J. GerratyCOPTS.parse.c += -Wno-format-nonliteral 1843cbdda60SSimon J. GerratyCOPTS.var.c += -Wno-format-nonliteral 1853cbdda60SSimon J. Gerraty 1863cbdda60SSimon J. Gerraty# Force these 187db29cad8SSimon J. GerratySHAREDIR= ${SHAREDIR.bmake:U${prefix}/share} 188db29cad8SSimon J. GerratyBINDIR= ${BINDIR.bmake:U${prefix}/bin} 189db29cad8SSimon J. GerratyMANDIR= ${MANDIR.bmake:U${SHAREDIR}/man} 1903cbdda60SSimon J. Gerraty 1913cbdda60SSimon J. Gerraty.if !exists(.depend) 1923cbdda60SSimon J. Gerraty${OBJS}: config.h 1933cbdda60SSimon J. Gerraty.endif 1943cbdda60SSimon J. Gerraty 1953cbdda60SSimon J. Gerraty# make sure that MAKE_VERSION gets updated. 1963cbdda60SSimon J. Gerratymain.o: ${SRCS} ${MAKEFILE} 1973cbdda60SSimon J. Gerraty 1983cbdda60SSimon J. Gerraty# start-delete2 for bsd.after-import.mk 1991748de26SSimon J. Gerraty.if ${MK_AUTOCONF_MK} == "yes" 2001748de26SSimon J. Gerraty.include <autoconf.mk> 2011748de26SSimon J. Gerraty.endif 2023cbdda60SSimon J. GerratySHARE_MK?=${SHAREDIR}/mk 2033cbdda60SSimon J. GerratyMKSRC=${srcdir}/mk 2043cbdda60SSimon J. GerratyINSTALL?=${srcdir}/install-sh 2053cbdda60SSimon J. Gerraty 2063cbdda60SSimon J. Gerraty.if ${MK_INSTALL_MK} == "yes" 2073cbdda60SSimon J. Gerratyinstall: install-mk 2083cbdda60SSimon J. Gerraty.endif 2093cbdda60SSimon J. Gerraty 2103cbdda60SSimon J. Gerratybeforeinstall: 2113cbdda60SSimon J. Gerraty test -d ${DESTDIR}${BINDIR} || ${INSTALL} -m 775 -d ${DESTDIR}${BINDIR} 2123cbdda60SSimon J. Gerraty test -d ${DESTDIR}${MANDEST} || ${INSTALL} -m 775 -d ${DESTDIR}${MANDEST} 2133cbdda60SSimon J. Gerraty 2143cbdda60SSimon J. Gerratyinstall-mk: 2153cbdda60SSimon J. Gerraty.if exists(${MKSRC}/install-mk) 2163cbdda60SSimon J. Gerraty test -d ${DESTDIR}${SHARE_MK} || ${INSTALL} -m 775 -d ${DESTDIR}${SHARE_MK} 2173cbdda60SSimon J. Gerraty sh ${MKSRC}/install-mk -v -m 644 ${DESTDIR}${SHARE_MK} 2183cbdda60SSimon J. Gerraty.else 2193cbdda60SSimon J. Gerraty @echo need to unpack mk.tar.gz under ${srcdir} or set MKSRC; false 2203cbdda60SSimon J. Gerraty.endif 2213cbdda60SSimon J. Gerraty# end-delete2 2223cbdda60SSimon J. Gerraty 2233cbdda60SSimon J. Gerraty# A simple unit-test driver to help catch regressions 2243cbdda60SSimon J. Gerratyaccept test: 2253cbdda60SSimon J. Gerraty cd ${.CURDIR}/unit-tests && MAKEFLAGS= ${.MAKE} -r -m / TEST_MAKE=${TEST_MAKE:U${.OBJDIR}/${PROG:T}} ${.TARGET} 226