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