f106663eef
* Consistently misspell built-in as builtin. * Add a builtin(1) manpage and create builtin(1) MLINKS for all shell builtin commands for which no standalone utility exists. These MLINKS replace those that were created for csh(1). * Add appropriate xrefs for builtin(1) to the csh(1) and sh(1) manpages, as well as to the manpages of standalone utilities which are supported as shell builtin commands in at least one of the shells. In such manpages, explain that similar functionality may be provided as a shell builtin command. * Improve sh(1)'s description of the cd builtin command. Csh(1) already describes it adequately. Replace the cd(1) manpage with a builtin(1) MLINKS link. * Clean up some mdoc problems: use Xr instead of literal "foo(n)"; use Ic instead of Xr for shell builtin commands. * Undo English contractions. Reviewed by: mpp, rgrimes
62 lines
1.8 KiB
Makefile
62 lines
1.8 KiB
Makefile
# @(#)Makefile 8.4 (Berkeley) 5/5/95
|
|
# $FreeBSD$
|
|
|
|
PROG= sh
|
|
SHSRCS= alias.c arith.y arith_lex.l cd.c echo.c error.c eval.c exec.c expand.c \
|
|
histedit.c input.c jobs.c mail.c main.c memalloc.c miscbltin.c \
|
|
mystring.c options.c output.c parser.c printf.c redir.c show.c \
|
|
trap.c var.c
|
|
GENSRCS= builtins.c init.c nodes.c syntax.c
|
|
GENHDRS= builtins.h nodes.h syntax.h token.h y.tab.h
|
|
SRCS= ${SHSRCS} ${GENSRCS} ${GENHDRS} y.tab.h
|
|
|
|
# MLINKS for Shell built in commands for which there are no userland
|
|
# utilities of the same name are handled with the associated manpage,
|
|
# builtin.1 in share/man/man1/.
|
|
|
|
DPADD+= ${LIBL} ${LIBEDIT} ${LIBTERMCAP}
|
|
LDADD+= -ll -ledit -ltermcap
|
|
|
|
LFLAGS= -8 # 8-bit lex scanner for arithmetic
|
|
CFLAGS+=-DSHELL -I. -I${.CURDIR}
|
|
# for debug:
|
|
# CFLAGS+= -g -DDEBUG=2
|
|
|
|
.PATH: ${.CURDIR}/bltin ${.CURDIR}/../../usr.bin/printf
|
|
|
|
CLEANFILES+= mkinit mkinit.o mknodes mknodes.o \
|
|
mksyntax mksyntax.o
|
|
CLEANFILES+= ${GENSRCS} ${GENHDRS}
|
|
|
|
build-tools: mkinit mknodes mksyntax
|
|
|
|
.ORDER: builtins.c builtins.h
|
|
builtins.c builtins.h: mkbuiltins builtins.def
|
|
cd ${.CURDIR}; sh mkbuiltins ${.OBJDIR}
|
|
|
|
init.c: mkinit alias.c eval.c exec.c input.c jobs.c options.c parser.c \
|
|
redir.c trap.c var.c
|
|
./mkinit ${.ALLSRC:S/^mkinit$//}
|
|
|
|
# XXX this is just to stop the default .c rule being used, so that the
|
|
# intermediate object has a fixed name.
|
|
# XXX we have a default .c rule, but no default .o rule.
|
|
.o:
|
|
${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
|
|
mkinit: mkinit.o
|
|
mknodes: mknodes.o
|
|
mksyntax: mksyntax.o
|
|
|
|
.ORDER: nodes.c nodes.h
|
|
nodes.c nodes.h: mknodes nodetypes nodes.c.pat
|
|
./mknodes ${.CURDIR}/nodetypes ${.CURDIR}/nodes.c.pat
|
|
|
|
.ORDER: syntax.c syntax.h
|
|
syntax.c syntax.h: mksyntax
|
|
./mksyntax
|
|
|
|
token.h: mktokens
|
|
sh ${.CURDIR}/mktokens
|
|
|
|
.include <bsd.prog.mk>
|