11.124Skre#	$NetBSD: Makefile,v 1.124 2024/10/14 08:13:23 kre Exp $
21.20Schristos#	@(#)Makefile	8.4 (Berkeley) 5/5/95
31.1Scgd
41.52Sbjh21.include <bsd.own.mk>
51.52Sbjh21
61.1ScgdPROG=	sh
71.104SkreSHSRCS=	alias.c arith_token.c arithmetic.c cd.c echo.c error.c eval.c exec.c \
81.104Skre	expand.c histedit.c input.c jobs.c mail.c main.c memalloc.c \
91.104Skre	miscbltin.c mystring.c options.c parser.c redir.c show.c trap.c \
101.104Skre	output.c var.c test.c kill.c syntax.c
111.104SkreGENSRCS=builtins.c init.c nodes.c
121.108SkreGENHDRS=builtins.h nodes.h token.h nodenames.h optinit.h
131.29SmycroftSRCS=	${SHSRCS} ${GENSRCS}
141.24Schristos
151.69SlukemDPSRCS+=${GENHDRS}
161.69Slukem
171.107SkreLDADD+=	-ledit -lterminfo
181.107SkreDPADD+=	${LIBEDIT} ${LIBTERMINFO}
191.24Schristos
201.82Sapb# Environment for scripts executed during build.
211.82SapbSCRIPT_ENV= \
221.82Sapb	AWK=${TOOL_AWK:Q} \
231.109Skre	MKTEMP=${TOOL_MKTEMP:Q} \
241.83Sapb	SED=${TOOL_SED:Q}
251.82Sapb
261.117SchristosCPPFLAGS+=-DSHELL -I. -I${.CURDIR} -I${NETBSDSRCDIR}/lib/libedit
271.113SkreCPPFLAGS+= -DUSE_LRAND48
281.124SkreCPPFLAGS+= -DREJECT_NULS
291.124Skre
301.62Schristos#XXX: For testing only.
311.115Skre#CPPFLAGS+=-DDEBUG=1
321.112Skre#COPTS+=-g
331.62Schristos#CFLAGS+=-funsigned-char
341.62Schristos#TARGET_CHARFLAG?= -DTARGET_CHAR="unsigned char" -funsigned-char
351.54Slukem
361.105Skre# Reproducible build parameters ... export into sh for NETBSD_SHELL setting
371.105Skre.if ${MKREPRO_TIMESTAMP:Uno} != "no"
381.116SchristosBUILD_DATE!=	${TOOL_DATE} -u -r "${MKREPRO_TIMESTAMP}" "+%Y%m%d%H%M%S"
391.105Skre# These are (should be) equivalent, but the 2nd is easier to understand
401.105Skre#CPPFLAGS+= -DBUILD_DATE='"${BUILD_DATE:C/([^0]0?)(00)*$/\1/}Z"'
411.106SkreCPPFLAGS+= -DBUILD_DATE='"${BUILD_DATE:S/00$//:S/00$//:S/00$//}Z"'
421.105Skre.endif
431.105Skre
441.54Slukem.ifdef SMALLPROG
451.54SlukemCPPFLAGS+=-DSMALL
461.101Sjoerg.endif
471.101Sjoerg.ifdef TINYPROG
481.101SjoergCPPFLAGS+=-DTINY
491.78Schristos.else
501.78SchristosSRCS+=printf.c
511.54Slukem.endif
521.24Schristos
531.61Schristos.PATH:	${.CURDIR}/bltin ${NETBSDSRCDIR}/bin/test \
541.61Schristos	${NETBSDSRCDIR}/usr.bin/printf \
551.61Schristos	${NETBSDSRCDIR}/bin/kill
561.1Scgd
571.104SkreCLEANFILES+= ${GENSRCS} ${GENHDRS} sh.html1
581.103SkreCLEANFILES+= trace.*
591.24Schristos
601.24Schristostoken.h: mktokens
611.72Slukem	${_MKTARGET_CREATE}
621.82Sapb	${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC}
631.1Scgd
641.89Schristos.ORDER: builtins.h builtins.c
651.89Schristosbuiltins.h builtins.c: mkbuiltins shell.h builtins.def
661.72Slukem	${_MKTARGET_CREATE}
671.89Schristos	${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} ${.OBJDIR}
681.89Schristos	[ -f builtins.h ]
691.1Scgd
701.75Sdslinit.c: mkinit.sh ${SHSRCS}
711.72Slukem	${_MKTARGET_CREATE}
721.82Sapb	${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC}
731.10Sjtc
741.89Schristos.ORDER: nodes.h nodes.c
751.88Suebayasinodes.c nodes.h: mknodes.sh nodetypes nodes.c.pat
761.88Suebayasi	${_MKTARGET_CREATE}
771.89Schristos	${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} ${.OBJDIR}
781.89Schristos	[ -f nodes.h ]
791.87Suebayasi
801.102Schristosnodenames.h: mknodenames.sh nodes.h
811.102Schristos	${_MKTARGET_CREATE}
821.102Schristos	${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} > ${.TARGET}
831.102Schristos
841.108Skreoptinit.h: mkoptions.sh option.list
851.108Skre	${_MKTARGET_CREATE}
861.108Skre	${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} ${.TARGET} ${.OBJDIR}
871.108Skre
881.68Slukem.if ${USETOOLS} == "yes"
891.99SapbNBCOMPATLIB=   -L${TOOLDIR}/lib -lnbcompat
901.68Slukem.endif
911.68Slukem
921.114SchristosSUBDIR.roff+=USD.doc
931.92Sperry
941.97SchristosCOPTS.printf.c = -Wno-format-nonliteral
951.98SchristosCOPTS.jobs.c = -Wno-format-nonliteral
961.113SkreCOPTS.var.c = -Wno-format-nonliteral
971.97Schristos
981.121Smrg# XXXGCC12 - only on some targets
991.123SmrgCOPTS.parser.c+=	${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 12:? -Wno-error=clobbered :}
1001.121Smrg
1011.43Scgd.include <bsd.prog.mk>
1021.93Sperry.include <bsd.subdir.mk>
1031.124Skre
1041.124Skre${OBJS}: Makefile
105