2004-02-15 22:05:45 +03:00
|
|
|
# $NetBSD: Makefile,v 1.31 2004/02/15 19:05:45 sjg Exp $
|
1995-06-14 19:18:37 +04:00
|
|
|
# @(#)Makefile 5.2 (Berkeley) 12/28/90
|
1993-03-21 12:45:37 +03:00
|
|
|
|
1997-10-24 13:00:17 +04:00
|
|
|
CPPFLAGS+= -I${.CURDIR}
|
1993-03-21 12:45:37 +03:00
|
|
|
PROG= make
|
1994-03-05 03:34:29 +03:00
|
|
|
SRCS= arch.c buf.c compat.c cond.c dir.c for.c hash.c job.c main.c \
|
2000-12-30 05:05:20 +03:00
|
|
|
make.c parse.c str.c suff.c targ.c trace.c var.c util.c
|
1993-03-21 12:45:37 +03:00
|
|
|
SRCS+= lstAppend.c lstAtEnd.c lstAtFront.c lstClose.c lstConcat.c \
|
|
|
|
lstDatum.c lstDeQueue.c lstDestroy.c lstDupl.c lstEnQueue.c \
|
|
|
|
lstFind.c lstFindFrom.c lstFirst.c lstForEach.c lstForEachFrom.c \
|
|
|
|
lstInit.c lstInsert.c lstIsAtEnd.c lstIsEmpty.c lstLast.c \
|
|
|
|
lstMember.c lstNext.c lstOpen.c lstRemove.c lstReplace.c lstSucc.c
|
1997-05-09 01:11:01 +04:00
|
|
|
.PATH: ${.CURDIR}/lst.lib
|
2003-07-14 22:19:11 +04:00
|
|
|
WARNS=3
|
2000-10-11 18:46:00 +04:00
|
|
|
WFORMAT= 1
|
1994-06-30 09:33:30 +04:00
|
|
|
.if make(install)
|
1997-10-11 13:34:07 +04:00
|
|
|
SUBDIR= PSD.doc
|
1994-06-25 09:57:47 +04:00
|
|
|
.endif
|
2003-07-29 02:52:10 +04:00
|
|
|
.if make(obj) || make(clean)
|
|
|
|
SUBDIR+= unit-tests
|
|
|
|
.endif
|
1994-06-25 09:57:47 +04:00
|
|
|
|
1993-03-21 12:45:37 +03:00
|
|
|
.include <bsd.prog.mk>
|
1997-10-11 13:34:07 +04:00
|
|
|
.include <bsd.subdir.mk>
|
2001-06-09 09:17:51 +04:00
|
|
|
|
|
|
|
# provide a clue as to what we are using
|
|
|
|
BUILD_DATE!= date +%Y%m%d
|
|
|
|
MAKE_VERSION:= netbsd-${BUILD_DATE}
|
|
|
|
CPPFLAGS_main.o:= "-DMAKE_VERSION=\"${MAKE_VERSION}\""
|
|
|
|
CPPFLAGS+= ${CPPFLAGS_${.TARGET}}
|
Overhaul the initialization and handling of .OBJDIR:
* Replace chdir_verify_path() with Main_SetObjdir(), which can be called
externally, and can take a "const char *". (There's a lot of non-const
"char *" passing around in var.c of what should be const strings....)
* Rewrite the initial "find my .OBJDIR" code to make use of the new
function. This still functions as it had in the past, but the comment
above this block was changed to reflect reality: if MAKEOBJDIRPREFIX
or MAKEOBJDIR are set in the environment, then *only that value* is
tried; make does not fall back to obj.MACHINE, obj, and /usr/obj/`pwd`
as it would without these env vars set.
* Add a new special target, .OBJDIR:, which when parsed will cause make to
change to a new object directory and reset .OBJDIR, and PWD in the
environment. This will allow some makefiles (mainly, src/tools)
to override the default objdir semantics in order to add custom logic.
2001-10-31 06:59:42 +03:00
|
|
|
main.o: ${OBJS:Nmain.o} ${MAKEFILE}
|
2003-07-26 20:04:29 +04:00
|
|
|
COPTS.var.c+= -Wno-cast-qual
|
2003-07-29 02:52:10 +04:00
|
|
|
|
|
|
|
# A simple unit-test driver to help catch regressions
|
|
|
|
accept test:
|
2004-02-15 22:05:45 +03:00
|
|
|
cd ${.CURDIR}/unit-tests && ${.MAKE:S,^./,${.CURDIR}/,} TEST_MAKE=${TEST_MAKE:U${.OBJDIR}/${PROG:T}} ${.TARGET}
|