summary refs log tree commit diff
path: root/bin/1sh/Makefile
blob: ad85a46a817fee43cea799167a2f060ed46f5a70 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
PREFIX = /usr/local
MANDIR = $(PREFIX)/share/man

CFLAGS += -std=c99 -Wall -Wextra -DSHELL -Ilibedit
LDLIBS = -lcurses

-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) libedit/libedit.a

MAN1 = 1sh.1 1sh-kill.1 1sh-printf.1 1sh-test.1

all: tags 1sh

1sh: $(OBJS)
	$(CC) $(LDFLAGS) $(OBJS) $(LDLIBS) -o $@

$(OBJS): $(GENHDRS)

libedit/libedit.a:
	$(MAKE) -C libedit libedit.a

builtins.c builtins.h: mkbuiltins builtins.def
	sh mkbuiltins .

nodes.c nodes.h: mknodes nodetypes nodes.c.pat
	./mknodes nodetypes nodes.c.pat

syntax.c syntax.h: mksyntax
	./mksyntax

token.h: mktokens
	sh mktokens

tags: *.h *.c
	ctags -w *.h *.c

depend: $(SRCS) $(GENHDRS)
	$(CC) $(CFLAGS) -MM $(SRCS) > .depend

-include .depend

clean:
	rm -f 1sh $(OBJS) mknodes mksyntax $(GENSRCS) $(GENHDRS) tags .depend

install: 1sh $(MAN1)
	install -d $(PREFIX)/bin $(MANDIR)/man1
	install 1sh $(PREFIX)/bin
	install -m 644 $(MAN1) $(MANDIR)/man1

uninstall:
	rm -f $(PREFIX)/bin/1sh $(MAN1:%=$(MANDIR)/man1/%)

shell:
	grep -q '^$(PREFIX)/bin/1sh$$' /etc/shells \
		|| echo '$(PREFIX)/bin/1sh' >> /etc/shells

unshell:
	sed -i sed '\;^$(PREFIX)/bin/1sh$$;d' /etc/shells
ogheader'>2017-07-24Name dogJune McEnroe 2017-07-23Add nethackrcJune McEnroe 2017-07-23Remove useless setuid in briJune McEnroe Don't you think it would be better if the setuid bit only gave you permission to do it and didn't do it for you? 2017-07-23Clean up hnel a tiny bitJune McEnroe 2017-07-21Set window size in hnelJune McEnroe 2017-07-21Add hnelJune McEnroe 2017-07-19chmod 600 in dtchJune McEnroe