xref: /original-bsd/local/toolchest/ksh/Makefile (revision 3b6250d9)
1
2#
3#      Copyright (c) 1984, 1985, 1986 AT&T
4#      All Rights Reserved
5#
6#      THIS IS UNPUBLISHED PROPRIETARY SOURCE
7#      CODE OF AT&T.
8#      The copyright notice above does not
9#      evidence any actual or intended
10#      publication of such source code.
11#
12/*
13 *  Fourth Generation make, makefile
14 */
15
16.OPTIONS:	-m -u
17
18.SOURCE:	sh shlib jsh
19
20/*  These are files that contain documentation */
21
22DOCFILES= shlib/makefile jsh/makefile sh/makefile sh/makelib sh/makesh \
23	sh/Makefile sh.memo sh.1 ksh.mk makefile getopts substring \
24	README RELEASE COMPATIBILITY
25
26KSHELL = 1
27MULTIBYTE =		/* set to 1 for  multi-byte character sets */
28BSD =			/* set to 1 for BSD Unix */
29BSD_4_2 =		/* set to 1 for BSD 4.2 */
30BSD_4_1c =		/* set to 1 for BSD 4.1c */
31ARK = lib.a		/* name for library for common shell procedures */
32EDITLIB = libedit.a	/* name for editing library */
33SH = ksh		/* name of the shell program */
34JSH = jsh		/* name of jobs control shell for shell layers */
35ESH = 1			/* set for emacs/gmacs edit mode */
36VSH = 1			/* set for vi edit mode */
37JOBS = 1		/* needed if jobs monitor option is selected */
38VFORK = 		/* needed if vfork option is selected */
39JOBLIB =		/* set to name of library needed for job control */
40LDFLAGS = -n		/* default loader option */
41NOBUF =			/* set if _sibuf and _sobuf not in stdio library */
42RAWONLY =		/* set to 1 if tty does not have alternate eof char */
43INT16 =			/* set to -DINT16 for sixteen bit machines */
44MYIO = 			/* set to stdio.c if you don't want to use native stdio */
45ACCT =			/* set to 1 for shell accounting (Sys V only ) */
46APOLLO =		/* set to apollo.c for DOMAIN/IX */
47SYSCALL=		/* set to syscall.s for 3b20's */
48EMACS = emacs.c		/* name of the file needed for ESH */
49VI = vi.c		/* name of the file needed for VSH */
50EDIT = edit.c		/* name of file needed if ESH|VSH selected */
51JOBFILE = jobs.c	/* name of file needed if jobs option is selected */
52VFORKFILE = 		/* name of file needed for VFORK option */
53SUID_EXEC = suid_exec	/* set to null to disallow suid/sgid shell scripts */
54
55#if release(bsd) || release(research)
56BSD = 1
57ECHO_N = 1
58LDFLAGS = -z
59#   if version(4.2) || version(4.3)
60BSD_4_2 = 1
61#   else
62JOBLIB = -ljobs
63#   endif
64#   if machine(sun)
65NOBUF = 1
66#   endif
67#endif
68
69#undef apollo
70#if machine(apollo)
71VFORK = 1
72VFORKFILE = vfork.c	/* name of file needed for VFORK option */
73RAWONLY = 1
74NOBUF = 1
75APOLLO=apollo.c
76#endif
77
78#ifdef future
79#if exists("/dev/sxt/.")
80SXT = 1		/* set to 1 if there is an SXT driver */
81#endif
82#endif future
83
84#if exists("/dev/fd/.")
85DEVFD = 1	/* set to 1 if there is a /dev/fd directory */
86#endif
87
88#if architecture(ibm) || release(uts)
89DRAWONLY = 1
90U370 = U370	/* for ibms and amdahls */
91NOBUF = 1
92#endif
93
94#if	architecture(pdp11) || architecture(i8086)
95INT16 = 1
96LDFLAGS = -i
97#endif
98
99.ALL:	$(SH) $(SUID_EXEC:T=V)
100
101$(SH)::	(KSHELL) (BSD) (BSD_4_2) (BSD_4_1c) (INT16) (SXT)  \
102	shlib/$(ARK) shlib/$(ARK) $(JOBLIB) \
103	$(APOLLO) args.c blok.c brkincr.h builtin.c sh/builtins.h cmd.c \
104	ctype.c defs.h sh/defs.c $(EDIT) edit.h $(EMACS) echo.c \
105	error.c expand.c fault.c sh/flags.h history.c history.h \
106	io.c io.h $(JOBFILE) jobs.h macro.c main.c mode.h msg.c name.c \
107	sh/name.h sh/national.h print.c service.c string.c $(MYIO) \
108	sh/shtype.h stak.c stak.h sym.h test.c test.h timeout.h \
109	$(VFORKFILE) $(VI) word.c xec.c
110
111args.o defs.o error.o history.o io.o $(JOBFILE:BS=.o) main.o msg.o \
112	print.o xec.o: (ESH) (VSH)
113
114args.o edit.o vi.o:	(RAWONLY)
115
116builtin.o args.o defs.o error.o fault.o $(JOBFILE:BS=.o) macro.o main.o msg.o \
117	print.o service.o word.o $(VFORKFILE:BS=.o) xec.o: (JOBS)
118
119args.o cmd.o msg.o word.o xec.o:	(DEVFD)
120
121builtin.o msg.o name.o:		(ECHO_N)
122
123error.o fault.o main.o service.o xec.o:	(VFORK)
124
125emacs.o edit.o history.o macro.o msg.o string.o vi.o assign.o gmatch.o:	(MULTIBYTE)
126
127error.o main.o msg.o service.o xec.o:	(ACCT)
128
129main.o msg.o service.o:	(SUID_EXEC)
130
131defs.o:		(NOBUF)
132
133(ECHO_N):
134	if	test -f /bin/echo -a X"`/bin/echo -n`" = X
135	then	@ ECHO_N=1
136	fi
137
138jsh/$(JSH)::	(BSD)  jsh/defs.h jsh/defs.c jsh.c mpx.c
139
140
141shlib/$(ARK)::	(BSD)  (KSHELL) adjust.c arith.c assign.c \
142	assnum.c shlib/builtins.h  cannon.c chkid.c convert.c failed.c \
143	findnod.c shlib/flags.h gettree.c gmatch.c growaray.c gsort.c \
144	linknod.c shlib/name.h shlib/national.h  namscan.c rjust.c \
145	shlib/shtype.h tilde.c unassign.c utos.c valup.c
146
147suid_exec::	suid_exec.c (BSD) (BSD_4_2)
148
149editlib:	nokshell sh/$(EDITLIB)
150
151nokshell:	.MAKE
152	KSHELL=
153
154sh/$(EDITLIB)::	nokshell (BSD)  edit.c edit.h editlib.c $(EMACS) \
155		history.c history.h  $(VI)  $(SYSCALL)
156
157msg.o ctype.o:	.READONLY
158
159/* The following rule is only for the benefit of cpio, tar and print */
160ConditionalFiles::	syscall.s apollo.c edit.c jobs.c vi.c emacs.c \
161			stdio.c vfork.c $(DOCFILES)
162
163