summaryrefslogtreecommitdiff
path: root/Makefile
blob: 892f59b643d76a3d32f12b8d0a34cc8c153d6af5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#	$NetBSD: Makefile,v 1.35 2019/02/04 04:05:15 mrg Exp $

WARNS=3
CWARNFLAGS.clang+=	-Wno-error=cast-qual

.include <bsd.own.mk>

CPPFLAGS+=	-I.

PROG=	ksh
SRCS=	alloc.c c_ksh.c c_sh.c c_test.c c_ulimit.c edit.c emacs.c \
	eval.c exec.c expr.c history.c io.c jobs.c lex.c mail.c \
	main.c misc.c path.c shf.c syn.c table.c trap.c tree.c tty.c \
	var.c version.c vi.c
DPSRCS=	emacs.out siglist.out
.if (${MKMAN} != "no")
DPSRCS+=ksh.1
.endif

# needs tbl for the man page.
USETBL= 

# Environment for scripts executed during build.
SCRIPT_ENV= \
	AWK=${TOOL_AWK:Q} \
	SED=${TOOL_SED:Q}

CLEANFILES+=	siglist.out siglist.out.tmp
# two steps to prevent the creation of a bogus siglist.out
siglist.out: config.h sh.h siglist.in siglist.sh
	${_MKTARGET_CREATE}
	${SCRIPT_ENV} \
	${HOST_SH} $(.CURDIR)/siglist.sh "$(CC) -E $(CPPFLAGS) $(DEFS) -I. -I$(.CURDIR)" < $(.CURDIR)/siglist.in > siglist.out.tmp \
	    && mv siglist.out.tmp siglist.out

# two steps to prevent the creation of a bogus emacs.out
CLEANFILES+=	emacs.out emacs.out.tmp
emacs.out: emacs.c
	${_MKTARGET_CREATE}
	${SCRIPT_ENV} \
	${HOST_SH} $(.CURDIR)/emacs-gen.sh $(.CURDIR)/emacs.c > emacs.out.tmp \
	    && mv emacs.out.tmp emacs.out

CLEANFILES+=	ksh.1 ksh.1.tmp
ksh.1: ksh.Man mkman
	${_MKTARGET_CREATE}
	${SCRIPT_ENV} \
	${HOST_SH} $(.CURDIR)/mkman ksh $(.CURDIR)/ksh.Man >ksh.1.tmp \
	    && mv ksh.1.tmp ksh.1

.if defined(HAVE_GCC) && ${HAVE_GCC} == 7 && ${ACTIVE_CC} == "gcc"
COPTS+=	-Wno-error=implicit-fallthrough
.endif

.include <bsd.prog.mk>