summary refs log tree commit diff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rw-r--r--bin/1sh/Makefile134
1 files changed, 73 insertions, 61 deletions
diff --git a/bin/1sh/Makefile b/bin/1sh/Makefile
index 619d5e24..26ce125f 100644
--- a/bin/1sh/Makefile
+++ b/bin/1sh/Makefile
@@ -1,72 +1,84 @@
-#	@(#)Makefile	8.4 (Berkeley) 5/5/95
-# $FreeBSD: releng/12.1/bin/sh/Makefile 338374 2018-08-29 16:59:19Z brd $
-
-.include <src.opts.mk>
-
-CONFS=	dot.profile profile
-CONFSDIR_dot.profile=	/root
-CONFSNAME_dot.profile=	.profile
-PACKAGE=runtime
-PROG=	sh
-INSTALLFLAGS= -S
-SHSRCS=	alias.c arith_yacc.c arith_yylex.c cd.c echo.c error.c eval.c \
-	exec.c expand.c \
-	histedit.c input.c jobs.c kill.c mail.c main.c memalloc.c miscbltin.c \
-	mystring.c options.c output.c parser.c printf.c redir.c show.c \
-	test.c trap.c var.c
-GENSRCS= builtins.c nodes.c syntax.c
-GENHDRS= builtins.h nodes.h syntax.h token.h
-SRCS= ${SHSRCS} ${GENSRCS} ${GENHDRS}
-
-# 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/.
-
-LIBADD=	edit
-
-CFLAGS+=-DSHELL -I. -I${.CURDIR}
-# for debug:
-# DEBUG_FLAGS+= -g -DDEBUG=2 -fno-inline
-WARNS?=	2
-WFORMAT=0
-
-.PATH:	${.CURDIR}/bltin \
-	${.CURDIR:H}/kill \
-	${.CURDIR:H}/test \
-	${SRCTOP}/usr.bin/printf
-
-CLEANFILES+= mknodes mksyntax
-CLEANFILES+= ${GENSRCS} ${GENHDRS}
-
-build-tools: mknodes mksyntax
-
-.ORDER: builtins.c builtins.h
-builtins.h: .NOMETA
-builtins.c builtins.h: mkbuiltins builtins.def
-	sh ${.CURDIR}/mkbuiltins ${.CURDIR}
+PREFIX = /usr/local
+MANDIR = ${PREFIX}/share/man
+
+CFLAGS += -std=c99 -Wall -Wextra -DSHELL
+LDLIBS = -ledit
+
+-include config.mk
+
+SRCS += alias.c
+SRCS += arith_yacc.c
+SRCS += arith_yylex.c
+SRCS += cd.c
+SRCS += echo.c
+SRCS += error.c
+SRCS += eval.c
+SRCS += exec.c
+SRCS += expand.c
+SRCS += histedit.c
+SRCS += input.c
+SRCS += jobs.c
+SRCS += kill.c
+SRCS += mail.c
+SRCS += main.c
+SRCS += memalloc.c
+SRCS += miscbltin.c
+SRCS += mystring.c
+SRCS += options.c
+SRCS += output.c
+SRCS += parser.c
+SRCS += printf.c
+SRCS += redir.c
+SRCS += show.c
+SRCS += test.c
+SRCS += trap.c
+SRCS += var.c
+
+GENSRCS = builtins.c nodes.c syntax.c
+GENHDRS = builtins.h nodes.h syntax.h token.h
+
+SRCS += ${GENSRCS}
+OBJS = ${SRCS:.c=.o}
+
+MANS = 1sh.1 1sh-kill.1 1sh-printf.1 1sh-test.1
+
+all: tags 1sh
+
+1sh: ${OBJS}
+	${CC} ${LDFLAGS} ${OBJS} ${LDLIBS} -o $@
+
+${OBJS}: ${GENHDRS}
 
-mknodes mksyntax: ${BUILD_TOOLS_META}
+builtins.c builtins.h: mkbuiltins builtins.def
+	sh mkbuiltins .
 
-.ORDER: nodes.c nodes.h
-nodes.h: .NOMETA
 nodes.c nodes.h: mknodes nodetypes nodes.c.pat
-	${BTOOLSPATH:U.}/mknodes ${.CURDIR}/nodetypes ${.CURDIR}/nodes.c.pat
+	./mknodes nodetypes nodes.c.pat
 
-.ORDER: syntax.c syntax.h
-syntax.h: .NOMETA
 syntax.c syntax.h: mksyntax
-	${BTOOLSPATH:U.}/mksyntax
+	./mksyntax
 
 token.h: mktokens
-	sh ${.CURDIR}/mktokens
+	sh mktokens
+
+tags: *.h *.c
+	ctags -w *.h *.c
+
+depend: ${SRCS} ${GENHDRS}
+	${CC} ${CFLAGS} -MM ${SRCS} > .depend
 
-HAS_TESTS=
-SUBDIR.${MK_TESTS}+= tests
+-include .depend
 
-beforeinstallconfig:
-	rm -f ${DESTDIR}/.profile
+clean:
+	rm -f 1sh ${OBJS} mknodes mksyntax ${GENSRCS} ${GENHDRS} tags .depend
 
-afterinstallconfig:
-	${INSTALL_LINK} ${TAG_ARGS} ${DESTDIR}/root/.profile ${DESTDIR}/.profile
+install: 1sh ${MANS}
+	install -d ${PREFIX}/bin ${MANDIR}/man1
+	install 1sh ${PREFIX}/bin
+	for man in ${MANS}; do gzip -c $$man > ${MANDIR}/man1/$$man.gz; done
+	grep -q '^${PREFIX}/bin/1sh$$' /etc/shells \
+		|| echo '${PREFIX}/bin/1sh' >> /etc/shells
 
-.include <bsd.prog.mk>
+uninstall:
+	rm -f ${PREFIX}/bin/1sh ${MANS:%=${MANDIR}/man1/%.gz}
+	sed -i sed '\;^${PREFIX}/bin/1sh$$;d' /etc/shells