Makefile revision 1.123
11.123Smrg#	$NetBSD: Makefile,v 1.123 2023/10/19 04:27:24 mrg 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.62Schristos#XXX: For testing only.
291.115Skre#CPPFLAGS+=-DDEBUG=1
301.112Skre#COPTS+=-g
311.62Schristos#CFLAGS+=-funsigned-char
321.62Schristos#TARGET_CHARFLAG?= -DTARGET_CHAR="unsigned char" -funsigned-char
331.54Slukem
341.105Skre# Reproducible build parameters ... export into sh for NETBSD_SHELL setting
351.105Skre.if ${MKREPRO_TIMESTAMP:Uno} != "no"
361.116SchristosBUILD_DATE!=	${TOOL_DATE} -u -r "${MKREPRO_TIMESTAMP}" "+%Y%m%d%H%M%S"
371.105Skre# These are (should be) equivalent, but the 2nd is easier to understand
381.105Skre#CPPFLAGS+= -DBUILD_DATE='"${BUILD_DATE:C/([^0]0?)(00)*$/\1/}Z"'
391.106SkreCPPFLAGS+= -DBUILD_DATE='"${BUILD_DATE:S/00$//:S/00$//:S/00$//}Z"'
401.105Skre.endif
411.105Skre
421.54Slukem.ifdef SMALLPROG
431.54SlukemCPPFLAGS+=-DSMALL
441.101Sjoerg.endif
451.101Sjoerg.ifdef TINYPROG
461.101SjoergCPPFLAGS+=-DTINY
471.78Schristos.else
481.78SchristosSRCS+=printf.c
491.54Slukem.endif
501.24Schristos
511.61Schristos.PATH:	${.CURDIR}/bltin ${NETBSDSRCDIR}/bin/test \
521.61Schristos	${NETBSDSRCDIR}/usr.bin/printf \
531.61Schristos	${NETBSDSRCDIR}/bin/kill
541.1Scgd
551.104SkreCLEANFILES+= ${GENSRCS} ${GENHDRS} sh.html1
561.103SkreCLEANFILES+= trace.*
571.24Schristos
581.24Schristostoken.h: mktokens
591.72Slukem	${_MKTARGET_CREATE}
601.82Sapb	${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC}
611.1Scgd
621.89Schristos.ORDER: builtins.h builtins.c
631.89Schristosbuiltins.h builtins.c: mkbuiltins shell.h builtins.def
641.72Slukem	${_MKTARGET_CREATE}
651.89Schristos	${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} ${.OBJDIR}
661.89Schristos	[ -f builtins.h ]
671.1Scgd
681.75Sdslinit.c: mkinit.sh ${SHSRCS}
691.72Slukem	${_MKTARGET_CREATE}
701.82Sapb	${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC}
711.10Sjtc
721.89Schristos.ORDER: nodes.h nodes.c
731.88Suebayasinodes.c nodes.h: mknodes.sh nodetypes nodes.c.pat
741.88Suebayasi	${_MKTARGET_CREATE}
751.89Schristos	${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} ${.OBJDIR}
761.89Schristos	[ -f nodes.h ]
771.87Suebayasi
781.102Schristosnodenames.h: mknodenames.sh nodes.h
791.102Schristos	${_MKTARGET_CREATE}
801.102Schristos	${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} > ${.TARGET}
811.102Schristos
821.108Skreoptinit.h: mkoptions.sh option.list
831.108Skre	${_MKTARGET_CREATE}
841.108Skre	${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} ${.TARGET} ${.OBJDIR}
851.108Skre
861.68Slukem.if ${USETOOLS} == "yes"
871.99SapbNBCOMPATLIB=   -L${TOOLDIR}/lib -lnbcompat
881.68Slukem.endif
891.68Slukem
901.114SchristosSUBDIR.roff+=USD.doc
911.92Sperry
921.97SchristosCOPTS.printf.c = -Wno-format-nonliteral
931.98SchristosCOPTS.jobs.c = -Wno-format-nonliteral
941.113SkreCOPTS.var.c = -Wno-format-nonliteral
951.97Schristos
961.121Smrg# XXXGCC12 - only on some targets
971.123SmrgCOPTS.parser.c+=	${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 12:? -Wno-error=clobbered :}
981.121Smrg
991.43Scgd.include <bsd.prog.mk>
1001.93Sperry.include <bsd.subdir.mk>
101