1 # $NetBSD: Makefile,v 1.69 2003/10/19 00:35:26 lukem Exp $ 2 # @(#)Makefile 8.4 (Berkeley) 5/5/95 3 4 .include <bsd.own.mk> 5 6 YHEADER=1 7 PROG= sh 8 SHSRCS= alias.c cd.c echo.c error.c eval.c exec.c expand.c \ 9 histedit.c input.c jobs.c mail.c main.c memalloc.c miscbltin.c \ 10 mystring.c options.c parser.c redir.c show.c trap.c output.c var.c \ 11 test.c printf.c kill.c 12 GENSRCS=arith.c arith_lex.c builtins.c init.c nodes.c syntax.c 13 GENHDRS=arith.h builtins.h nodes.h syntax.h token.h 14 SRCS= ${SHSRCS} ${GENSRCS} 15 16 DPSRCS+=${GENHDRS} 17 18 LDADD+= -ll -ledit -ltermcap 19 DPADD+= ${LIBL} ${LIBEDIT} ${LIBTERMCAP} 20 21 LFLAGS= -8 # 8-bit lex scanner for arithmetic 22 YFLAGS= -d 23 24 .ifdef CRUNCHEDPROG 25 LFLAGS+=-L 26 YFLAGS+=-l 27 .endif 28 29 CPPFLAGS+=-DSHELL -I. -I${.CURDIR} 30 #XXX: For testing only. 31 #CPPFLAGS+=-DDEBUG=1 32 #CFLAGS+=-funsigned-char 33 #TARGET_CHARFLAG?= -DTARGET_CHAR="unsigned char" -funsigned-char 34 35 .ifdef SMALLPROG 36 CPPFLAGS+=-DSMALL 37 .endif 38 39 .PATH: ${.CURDIR}/bltin ${NETBSDSRCDIR}/bin/test \ 40 ${NETBSDSRCDIR}/usr.bin/printf \ 41 ${NETBSDSRCDIR}/bin/kill 42 43 CLEANFILES+= mkinit mknodes mksyntax 44 CLEANFILES+= ${GENSRCS} ${GENHDRS} y.tab.h 45 CLEANFILES+= trace 46 47 token.h: mktokens 48 ${_MKMSG} " create ${.TARGET}" 49 ${_MKCMD}\ 50 ${HOST_SH} ${.ALLSRC} 51 52 builtins.h: builtins.c 53 ${_MKMSG} " create ${.TARGET}" 54 55 56 builtins.c: mkbuiltins shell.h builtins.def 57 ${_MKMSG} " create ${.TARGET}" 58 ${_MKCMD}\ 59 ${HOST_SH} ${.ALLSRC} ${.OBJDIR} 60 ${_MKCMD}\ 61 [ -f builtins.h ] 62 63 init.c: mkinit ${SHSRCS} 64 ${_MKMSG} " create ${.TARGET}" 65 ${_MKCMD}\ 66 ./${.ALLSRC} 67 68 nodes.h: nodes.c 69 70 nodes.c: mknodes nodetypes nodes.c.pat 71 ${_MKMSG} " create ${.TARGET}" 72 ${_MKCMD}\ 73 ./${.ALLSRC} 74 ${_MKCMD}\ 75 [ -f nodes.h ] 76 77 syntax.h: syntax.c 78 79 syntax.c: mksyntax 80 ${_MKMSG} " create ${.TARGET}" 81 ${_MKCMD}\ 82 ./${.ALLSRC} 83 ${_MKCMD}\ 84 [ -f syntax.h ] 85 86 .if ${USETOOLS} == "yes" 87 COMPATOBJDIR!= cd ${NETBSDSRCDIR}/tools/compat && ${PRINTOBJDIR} 88 NBCOMPATLIB= -L${COMPATOBJDIR} -lnbcompat 89 .endif 90 91 mkinit: mkinit.c 92 ${_MKMSG} " create ${.TARGET}" 93 ${_MKCMD}\ 94 ${HOST_LINK.c} -o mkinit ${.IMPSRC} ${NBCOMPATLIB} 95 96 mknodes: mknodes.c 97 ${_MKMSG} " create ${.TARGET}" 98 ${_MKCMD}\ 99 ${HOST_LINK.c} -o mknodes ${.IMPSRC} ${NBCOMPATLIB} 100 101 .if (${MACHINE_ARCH} == "powerpc") || \ 102 (${MACHINE_CPU} == "arm") 103 TARGET_CHARFLAG?= -DTARGET_CHAR="unsigned char" 104 .else 105 TARGET_CHARFLAG?= -DTARGET_CHAR="signed char" 106 .endif 107 108 mksyntax: mksyntax.c 109 ${_MKMSG} " create ${.TARGET}" 110 ${_MKCMD}\ 111 ${HOST_LINK.c} ${TARGET_CHARFLAG} -o mksyntax ${.IMPSRC} ${NBCOMPATLIB} 112 113 .include <bsd.prog.mk> 114