1# $NetBSD: Makefile,v 1.124 2024/10/14 08:13:23 kre Exp $ 2# @(#)Makefile 8.4 (Berkeley) 5/5/95 3 4.include <bsd.own.mk> 5 6PROG= sh 7SHSRCS= alias.c arith_token.c arithmetic.c cd.c echo.c error.c eval.c exec.c \ 8 expand.c histedit.c input.c jobs.c mail.c main.c memalloc.c \ 9 miscbltin.c mystring.c options.c parser.c redir.c show.c trap.c \ 10 output.c var.c test.c kill.c syntax.c 11GENSRCS=builtins.c init.c nodes.c 12GENHDRS=builtins.h nodes.h token.h nodenames.h optinit.h 13SRCS= ${SHSRCS} ${GENSRCS} 14 15DPSRCS+=${GENHDRS} 16 17LDADD+= -ledit -lterminfo 18DPADD+= ${LIBEDIT} ${LIBTERMINFO} 19 20# Environment for scripts executed during build. 21SCRIPT_ENV= \ 22 AWK=${TOOL_AWK:Q} \ 23 MKTEMP=${TOOL_MKTEMP:Q} \ 24 SED=${TOOL_SED:Q} 25 26CPPFLAGS+=-DSHELL -I. -I${.CURDIR} -I${NETBSDSRCDIR}/lib/libedit 27CPPFLAGS+= -DUSE_LRAND48 28CPPFLAGS+= -DREJECT_NULS 29 30#XXX: For testing only. 31#CPPFLAGS+=-DDEBUG=1 32#COPTS+=-g 33#CFLAGS+=-funsigned-char 34#TARGET_CHARFLAG?= -DTARGET_CHAR="unsigned char" -funsigned-char 35 36# Reproducible build parameters ... export into sh for NETBSD_SHELL setting 37.if ${MKREPRO_TIMESTAMP:Uno} != "no" 38BUILD_DATE!= ${TOOL_DATE} -u -r "${MKREPRO_TIMESTAMP}" "+%Y%m%d%H%M%S" 39# These are (should be) equivalent, but the 2nd is easier to understand 40#CPPFLAGS+= -DBUILD_DATE='"${BUILD_DATE:C/([^0]0?)(00)*$/\1/}Z"' 41CPPFLAGS+= -DBUILD_DATE='"${BUILD_DATE:S/00$//:S/00$//:S/00$//}Z"' 42.endif 43 44.ifdef SMALLPROG 45CPPFLAGS+=-DSMALL 46.endif 47.ifdef TINYPROG 48CPPFLAGS+=-DTINY 49.else 50SRCS+=printf.c 51.endif 52 53.PATH: ${.CURDIR}/bltin ${NETBSDSRCDIR}/bin/test \ 54 ${NETBSDSRCDIR}/usr.bin/printf \ 55 ${NETBSDSRCDIR}/bin/kill 56 57CLEANFILES+= ${GENSRCS} ${GENHDRS} sh.html1 58CLEANFILES+= trace.* 59 60token.h: mktokens 61 ${_MKTARGET_CREATE} 62 ${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} 63 64.ORDER: builtins.h builtins.c 65builtins.h builtins.c: mkbuiltins shell.h builtins.def 66 ${_MKTARGET_CREATE} 67 ${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} ${.OBJDIR} 68 [ -f builtins.h ] 69 70init.c: mkinit.sh ${SHSRCS} 71 ${_MKTARGET_CREATE} 72 ${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} 73 74.ORDER: nodes.h nodes.c 75nodes.c nodes.h: mknodes.sh nodetypes nodes.c.pat 76 ${_MKTARGET_CREATE} 77 ${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} ${.OBJDIR} 78 [ -f nodes.h ] 79 80nodenames.h: mknodenames.sh nodes.h 81 ${_MKTARGET_CREATE} 82 ${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} > ${.TARGET} 83 84optinit.h: mkoptions.sh option.list 85 ${_MKTARGET_CREATE} 86 ${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} ${.TARGET} ${.OBJDIR} 87 88.if ${USETOOLS} == "yes" 89NBCOMPATLIB= -L${TOOLDIR}/lib -lnbcompat 90.endif 91 92SUBDIR.roff+=USD.doc 93 94COPTS.printf.c = -Wno-format-nonliteral 95COPTS.jobs.c = -Wno-format-nonliteral 96COPTS.var.c = -Wno-format-nonliteral 97 98# XXXGCC12 - only on some targets 99COPTS.parser.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 12:? -Wno-error=clobbered :} 100 101.include <bsd.prog.mk> 102.include <bsd.subdir.mk> 103 104${OBJS}: Makefile 105