Makefile revision 242102
1241279Smarcel# This is a generated file, do NOT edit! 2241279Smarcel# See contrib/bmake/bsd.after-import.mk 3241279Smarcel# 4241279Smarcel# $FreeBSD: head/usr.bin/bmake/Makefile 242102 2012-10-25 23:18:05Z sjg $ 5241279Smarcel 6241279Smarcel.sinclude "Makefile.inc" 7241279Smarcel 8241279SmarcelSRCTOP?= ${.CURDIR:H:H} 9241279Smarcel 10241279Smarcel# look here first for config.h 11241279SmarcelCFLAGS+= -I${.CURDIR} 12241279Smarcel 13241279Smarcel# $NetBSD: Makefile,v 1.56 2012/05/30 21:54:23 sjg Exp $ 14241279Smarcel# @(#)Makefile 5.2 (Berkeley) 12/28/90 15241279Smarcel 16242102Ssjg# $Id: Makefile.in,v 1.174 2012/10/10 18:46:24 sjg Exp $ 17241279Smarcel 18241279SmarcelPROG?= ${.CURDIR:T} 19241279SmarcelSRCS= arch.c buf.c compat.c cond.c dir.c for.c hash.c job.c main.c \ 20241279Smarcel make.c parse.c str.c suff.c targ.c trace.c var.c util.c 21241279SmarcelSRCS+= strlist.c 22241279SmarcelSRCS+= make_malloc.c 23241279SmarcelSRCS+= lstAppend.c lstAtEnd.c lstAtFront.c lstClose.c lstConcat.c \ 24241279Smarcel lstDatum.c lstDeQueue.c lstDestroy.c lstDupl.c lstEnQueue.c \ 25241279Smarcel lstFind.c lstFindFrom.c lstFirst.c lstForEach.c lstForEachFrom.c \ 26241279Smarcel lstInit.c lstInsert.c lstIsAtEnd.c lstIsEmpty.c lstLast.c \ 27241279Smarcel lstMember.c lstNext.c lstOpen.c lstRemove.c lstReplace.c lstSucc.c 28241279SmarcelSRCS += lstPrev.c 29241279Smarcel 30241279Smarcel# you can use this Makefile if you have an earlier version of bmake. 31241279Smarcelprefix= /usr 32241279Smarcelsrcdir= ${SRCTOP}/contrib/bmake 33241279SmarcelCC?= gcc 34241279Smarcel 35241279Smarcel# Base version on src date 36242102SsjgMAKE_VERSION= 20121010 37241279SmarcelDEFAULT_SYS_PATH = .../share/mk:/usr/share/mk 38241279Smarcel 39241279SmarcelCPPFLAGS+= 40241279SmarcelCFLAGS+= ${CPPFLAGS} 41241279SmarcelCFLAGS+= -D_PATH_DEFSYSPATH=\"${DEFAULT_SYS_PATH}\" 42241279SmarcelCFLAGS+= -I. -I${srcdir} -DHAVE_CONFIG_H ${XDEFS} -DMAKE_NATIVE 43241279SmarcelCFLAGS+= ${CFLAGS_${.TARGET:T}} 44241279SmarcelCFLAGS+= ${COPTS.${.ALLSRC:M*.c:T:u}} 45241279SmarcelCOPTS.main.c+= "-DMAKE_VERSION=\"${MAKE_VERSION}\"" 46241279SmarcelLDFLAGS= 47241279SmarcelLIBOBJS= ${LIBOBJDIR}stresep$U.o 48241279SmarcelLDADD= 49241279Smarcel 50241279Smarcel.if !empty(LIBOBJS) 51241279SmarcelSRCS+= ${LIBOBJS:T:.o=.c} 52241279Smarcel.endif 53241279Smarcel 54241279SmarcelUSE_META = yes 55241279Smarcel.if ${USE_META} != "no" 56241279SmarcelSRCS+= meta.c 57241279SmarcelCPPFLAGS+= -DUSE_META 58241279SmarcelFILEMON_H ?= /usr/include/dev/filemon/filemon.h 59241279Smarcel.if exists(${FILEMON_H}) && ${FILEMON_H:T} == "filemon.h" 60241279SmarcelCOPTS.meta.c += -DHAVE_FILEMON_H -I${FILEMON_H:H} 61241279Smarcel.endif 62241279Smarcel.endif 63241279Smarcel 64241279Smarcel.PATH: ${srcdir} 65241279Smarcel.PATH: ${srcdir}/lst.lib 66241279Smarcel 67241279SmarcelOS!= uname -s 68241279SmarcelARCH!= uname -p 2>/dev/null || uname -m 69241279Smarcel 70241279Smarcel# list of OS's which are derrived from BSD4.4 71241279SmarcelisBSD44= NetBSD FreeBSD OpenBSD DragonFly 72241279Smarcel 73241279Smarcel.if ${OS} == "NetBSD" 74241279Smarcel# Don't set these for anyone else since we don't know what the effect may be. 75241279Smarcel# On FreeBSD WARNS=2 sets a bunch of -W flags that make does not handle. 76241279SmarcelWFORMAT= 1 77241279SmarcelWARNS=4 78241279Smarcel.NOPATH: bmake.cat1 79241279Smarcel.if make(install) && exists(${DESTDIR}/usr/share/doc) 80241279SmarcelSUBDIR= PSD.doc 81241279Smarcel.endif 82241279Smarcel.endif 83241279Smarcel 84241751Smarcel.if defined(.PARSEDIR) 85241751Smarcel# we cannot rely on anything but bmake to parse this correctly. 86241279Smarcel.if empty(isBSD44:M${OS}) 87241279SmarcelMANTARGET=cat 88241279SmarcelINSTALL?=${srcdir}/install-sh 89241279Smarcel.if (${MACHINE} == "sun386") 90241279Smarcel# even I don't have one of these anymore :-) 91241279SmarcelCFLAGS+= -DPORTAR 92241279Smarcel.elif (${MACHINE} != "sunos") 93241279SmarcelSRCS+= sigcompat.c 94241279SmarcelCFLAGS+= -DSIGNAL_FLAGS=SA_RESTART 95241279Smarcel.endif 96241279Smarcel.endif 97241751Smarcel 98241279Smarcel.if make(obj) || make(clean) 99241279SmarcelSUBDIR+= unit-tests 100241279Smarcel.endif 101241279Smarcel.endif 102241279Smarcel 103241279Smarcel# many systems use gcc these days 104241279SmarcelCC_IS_GCC=yes 105241279Smarcel.if ${CC_IS_GCC} == "yes" 106241279Smarcel# problem with gcc3 107241279SmarcelCFLAGS_var.o+= -Wno-cast-qual 108241279Smarcel.endif 109241279Smarcel 110241279SmarcelCFLAGS_main.o+= "-DMACHINE=\"${MACHINE}\"" "-DMACHINE_ARCH=\"${MACHINE_ARCH}\"" 111241279Smarcel 112241279SmarcelEXTRACT_MAN=no 113241279Smarcel 114241279SmarcelMAN=${PROG}.1 115241279Smarcel.if (${PROG} != "make") 116242102Ssjgmy.history: ${MAKEFILE} 117242102Ssjg @(echo ".Nm"; \ 118241279Smarcel echo "is derived from NetBSD"; \ 119241279Smarcel echo ".Xr make 1 ."; \ 120242102Ssjg echo "It uses autoconf to facilitate portability to other platforms."; \ 121242102Ssjg echo ".Pp") > $@ 122241279Smarcel 123242102Ssjg${MAN}: make.1 my.history 124242102Ssjg @echo making ${PROG}.1 125242102Ssjg @sed -e 's/^.Nx/NetBSD/' -e '/^.Nm/s/make/${PROG}/' \ 126242102Ssjg -e '/^.Sh HISTORY/rmy.history' \ 127242102Ssjg -e '/^.Sh HISTORY/,$$s,^.Nm,make,' ${srcdir}/make.1 > $@ 128242102Ssjg 129241279Smarcel.endif 130241279Smarcel 131241279Smarcel.if !empty(isBSD44:M${OS}) 132241279Smarcel.if "${OS}" != "NetBSD" 133241279SmarcelMAN1=${MAN} 134241279Smarcel.endif 135241279SmarcelMANTARGET?=man 136241279Smarcel.endif 137241279Smarcel 138241279SmarcelMANTARGET?= cat 139241279SmarcelMANDEST?= ${MANDIR}/${MANTARGET}1 140241279Smarcel 141241279Smarcel.if ${MANTARGET} == "cat" 142241279Smarcel_mfromdir=${srcdir} 143241279Smarcel.endif 144241279Smarcel 145241279Smarcel.if exists(${srcdir}/../Makefile.inc) 146241279Smarcel.include "${srcdir}/../Makefile.inc" 147241279Smarcel.endif 148241279Smarcel.sinclude <bsd.prog.mk> 149241279Smarcel# sigh, FreeBSD at least includes bsd.subdir.mk via bsd.obj.mk 150241279Smarcel# so the inclusion below, results in complaints about re-defined 151241279Smarcel# targets. For NetBSD though we need to explicitly include it. 152241279Smarcel.if defined(.PARSEDIR) 153241279Smarcel.if defined(SUBDIR) && !target(${SUBDIR:[1]}) 154241279Smarcel.sinclude <bsd.subdir.mk> 155241279Smarcel.endif 156241279Smarcel.endif 157241279Smarcel 158241279SmarcelCPPFLAGS+= -DMAKE_NATIVE 159241279SmarcelCOPTS.var.c += -Wno-cast-qual 160241279SmarcelCOPTS.job.c += -Wno-format-nonliteral 161241279SmarcelCOPTS.parse.c += -Wno-format-nonliteral 162241279SmarcelCOPTS.var.c += -Wno-format-nonliteral 163241279Smarcel 164241279Smarcel# Force these 165241279SmarcelBINDIR= ${prefix}/bin 166241279SmarcelMANDIR= ${prefix}/man 167241279Smarcel 168241279Smarcelarch.o: config.h 169241279Smarcel# make sure that MAKE_VERSION gets updated. 170241279Smarcelmain.o: ${SRCS} ${MAKEFILE} 171241279Smarcel 172241279SmarcelMK?=${prefix}/share/mk 173241279SmarcelMKSRC?=mk 174241279SmarcelINSTALL?=${srcdir}/install-sh 175241279Smarcel 176241279Smarcelbeforeinstall: 177241279Smarcel test -d ${DESTDIR}${BINDIR} || ${INSTALL} -m 775 -d ${DESTDIR}${BINDIR} 178241279Smarcel test -d ${DESTDIR}${MANDEST} || ${INSTALL} -m 775 -d ${DESTDIR}${MANDEST} 179241279Smarcel 180241279Smarcel# latest version of *.mk includes an installer. 181241279Smarcel# you should not need to set USE_OS 182241279Smarcelinstall-mk: 183241279Smarcel.if exists(${MKSRC}/install-mk) 184241279Smarcel test -d ${DESTDIR}${MK} || ${INSTALL} -m 775 -d ${DESTDIR}${MK} 185241279Smarcel ${MKSRC}/install-mk -v -m 644 ${DESTDIR}${MK} ${USE_OS} 186241279Smarcel.else 187241279Smarcel @echo need to unpack mk.tar.gz under ${srcdir} or set MKSRC; false 188241279Smarcel.endif 189241279Smarcel 190241279Smarcel.ifdef TOOLDIR 191241279Smarcel# this is a native netbsd build, 192241279Smarcel# use libutil rather than the local emalloc etc. 193241279SmarcelCPPFLAGS+= -DUSE_EMALLOC 194241279SmarcelLDADD+=-lutil 195241279SmarcelDPADD+=${LIBUTIL} 196241279Smarcel.endif 197241279Smarcel 198241279Smarcel# A simple unit-test driver to help catch regressions 199241279Smarcelaccept test: 200241279Smarcel cd ${.CURDIR}/unit-tests && MAKEFLAGS= ${.MAKE} -r -m / TEST_MAKE=${TEST_MAKE:U${.OBJDIR}/${PROG:T}} ${.TARGET} 201241279Smarcel 202241279Smarcel# override some simple things 203241279SmarcelBINDIR= /usr/bin 204241279SmarcelMANDIR= /usr/share/man/man 205241279Smarcel 206241279Smarcel# make sure we get this 207241279SmarcelCFLAGS+= ${COPTS.${.IMPSRC:T}} 208241279SmarcelCLEANFILES+= bootstrap 209241279Smarcel 210241279Smarcelafter-import: ${SRCTOP}/contrib/bmake/bsd.after-import.mk 211241279Smarcel cd ${.CURDIR} && ${.MAKE} -f ${SRCTOP}/contrib/bmake/bsd.after-import.mk 212241279Smarcel 213