1 # $NetBSD: Makefile,v 1.35 2019/02/04 04:05:15 mrg Exp $ 2 3 WARNS=3 4 CWARNFLAGS.clang+= -Wno-error=cast-qual 5 6 .include <bsd.own.mk> 7 8 CPPFLAGS+= -I. 9 10 PROG= ksh 11 SRCS= alloc.c c_ksh.c c_sh.c c_test.c c_ulimit.c edit.c emacs.c \ 12 eval.c exec.c expr.c history.c io.c jobs.c lex.c mail.c \ 13 main.c misc.c path.c shf.c syn.c table.c trap.c tree.c tty.c \ 14 var.c version.c vi.c 15 DPSRCS= emacs.out siglist.out 16 .if (${MKMAN} != "no") 17 DPSRCS+=ksh.1 18 .endif 19 20 # needs tbl for the man page. 21 USETBL= 22 23 # Environment for scripts executed during build. 24 SCRIPT_ENV= \ 25 AWK=${TOOL_AWK:Q} \ 26 SED=${TOOL_SED:Q} 27 28 CLEANFILES+= siglist.out siglist.out.tmp 29 # two steps to prevent the creation of a bogus siglist.out 30 siglist.out: config.h sh.h siglist.in siglist.sh 31 ${_MKTARGET_CREATE} 32 ${SCRIPT_ENV} \ 33 ${HOST_SH} $(.CURDIR)/siglist.sh "$(CC) -E $(CPPFLAGS) $(DEFS) -I. -I$(.CURDIR)" < $(.CURDIR)/siglist.in > siglist.out.tmp \ 34 && mv siglist.out.tmp siglist.out 35 36 # two steps to prevent the creation of a bogus emacs.out 37 CLEANFILES+= emacs.out emacs.out.tmp 38 emacs.out: emacs.c 39 ${_MKTARGET_CREATE} 40 ${SCRIPT_ENV} \ 41 ${HOST_SH} $(.CURDIR)/emacs-gen.sh $(.CURDIR)/emacs.c > emacs.out.tmp \ 42 && mv emacs.out.tmp emacs.out 43 44 CLEANFILES+= ksh.1 ksh.1.tmp 45 ksh.1: ksh.Man mkman 46 ${_MKTARGET_CREATE} 47 ${SCRIPT_ENV} \ 48 ${HOST_SH} $(.CURDIR)/mkman ksh $(.CURDIR)/ksh.Man >ksh.1.tmp \ 49 && mv ksh.1.tmp ksh.1 50 51 .if defined(HAVE_GCC) && ${HAVE_GCC} == 7 && ${ACTIVE_CC} == "gcc" 52 COPTS+= -Wno-error=implicit-fallthrough 53 .endif 54 55 .include <bsd.prog.mk> 56