1#
2# Simple makefile for the sample loadable builtins
3#
4# Copyright (C) 1996 Free Software Foundation, Inc.     
5
6# This program is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation; either version 2, or (at your option)
9# any later version.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU General Public License for more details.
15
16# You should have received a copy of the GNU General Public License
17# along with this program; if not, write to the Free Software
18# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
19
20# Include some boilerplate Gnu makefile definitions.
21prefix = @prefix@
22
23exec_prefix = @exec_prefix@
24bindir = @bindir@
25libdir = @libdir@
26infodir = @infodir@
27includedir = @includedir@
28
29topdir = @top_srcdir@
30BUILD_DIR = @BUILD_DIR@
31srcdir = @srcdir@
32VPATH = .:@srcdir@
33
34@SET_MAKE@
35CC = @CC@
36RM = rm -f
37
38SHELL = @MAKE_SHELL@
39
40host_os = @host_os@
41host_cpu = @host_cpu@
42host_vendor = @host_vendor@
43
44CFLAGS = @CFLAGS@
45LOCAL_CFLAGS = @LOCAL_CFLAGS@
46DEFS = @DEFS@
47LOCAL_DEFS = @LOCAL_DEFS@
48
49CPPFLAGS = @CPPFLAGS@
50
51BASHINCDIR = ${topdir}/include
52
53LIBBUILD = ${BUILD_DIR}/lib
54
55INTL_LIBSRC = ${topdir}/lib/intl
56INTL_BUILDDIR = ${LIBBUILD}/intl
57INTL_INC = @INTL_INC@
58LIBINTL_H = @LIBINTL_H@
59
60CCFLAGS = $(DEFS) $(LOCAL_DEFS) $(LOCAL_CFLAGS) $(CFLAGS)
61
62#
63# These values are generated for configure by ${topdir}/support/shobj-conf.
64# If your system is not supported by that script, but includes facilities for
65# dynamic loading of shared objects, please update the script and send the
66# changes to bash-maintainers@gnu.org.
67#
68SHOBJ_CC = @SHOBJ_CC@
69SHOBJ_CFLAGS = @SHOBJ_CFLAGS@
70SHOBJ_LD = @SHOBJ_LD@
71SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@
72SHOBJ_XLDFLAGS = @SHOBJ_XLDFLAGS@
73SHOBJ_LIBS = @SHOBJ_LIBS@
74SHOBJ_STATUS = @SHOBJ_STATUS@
75
76INC = -I. -I.. -I$(topdir) -I$(topdir)/lib -I$(topdir)/builtins \
77      -I$(BASHINCDIR) -I$(BUILD_DIR) -I$(LIBBUILD) \
78      -I$(BUILD_DIR)/builtins $(INTL_INC)
79
80.c.o:
81	$(SHOBJ_CC) $(SHOBJ_CFLAGS) $(CCFLAGS) $(INC) -c -o $@ $<
82
83
84ALLPROG = print truefalse sleep pushd finfo logname basename dirname \
85	  tty pathchk tee head mkdir rmdir printenv id whoami \
86	  uname sync push ln unlink cut realpath getconf strftime
87OTHERPROG = necho hello cat
88
89all:	$(SHOBJ_STATUS)
90
91supported:	$(ALLPROG)
92others:		$(OTHERPROG)
93
94unsupported:
95	@echo "Your system (${host_os}) is not supported by the"
96	@echo "${topdir}/support/shobj-conf script."
97	@echo "If your operating system provides facilities for dynamic"
98	@echo "loading of shared objects using the dlopen(3) interface,"
99	@echo "please update the script and re-run configure.
100	@echo "Please send the changes you made to bash-maintainers@gnu.org"
101	@echo "for inclusion in future bash releases."
102
103everything: supported others
104
105print:	print.o
106	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ print.o $(SHOBJ_LIBS)
107
108necho:	necho.o
109	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ necho.o $(SHOBJ_LIBS)
110
111getconf: getconf.o
112	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ getconf.o $(SHOBJ_LIBS)
113
114hello:	hello.o
115	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ hello.o $(SHOBJ_LIBS)
116
117truefalse: truefalse.o
118	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ truefalse.o $(SHOBJ_LIBS)
119
120sleep:	sleep.o
121	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ sleep.o $(SHOBJ_LIBS)
122
123finfo:	finfo.o
124	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ finfo.o $(SHOBJ_LIBS)
125
126cat:	cat.o
127	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ cat.o $(SHOBJ_LIBS)
128
129logname:	logname.o
130	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ logname.o $(SHOBJ_LIBS)
131
132basename:	basename.o
133	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ basename.o $(SHOBJ_LIBS)
134
135dirname:	dirname.o
136	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ dirname.o $(SHOBJ_LIBS)
137
138tty:	tty.o
139	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ tty.o $(SHOBJ_LIBS)
140
141pathchk:	pathchk.o
142	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ pathchk.o $(SHOBJ_LIBS)
143
144tee:	tee.o
145	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ tee.o $(SHOBJ_LIBS)
146
147mkdir:	mkdir.o
148	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ mkdir.o $(SHOBJ_LIBS)
149
150rmdir:	rmdir.o
151	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ rmdir.o $(SHOBJ_LIBS)
152
153head:	head.o
154	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ head.o $(SHOBJ_LIBS)
155
156printenv:	printenv.o
157	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ printenv.o $(SHOBJ_LIBS)
158
159id:	id.o
160	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ id.o $(SHOBJ_LIBS)
161
162whoami:	whoami.o
163	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ whoami.o $(SHOBJ_LIBS)
164
165uname:	uname.o
166	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ uname.o $(SHOBJ_LIBS)
167
168sync:	sync.o
169	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ sync.o $(SHOBJ_LIBS)
170
171push:	push.o
172	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ push.o $(SHOBJ_LIBS)
173
174ln:	ln.o
175	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ ln.o $(SHOBJ_LIBS)
176
177unlink:	unlink.o
178	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ unlink.o $(SHOBJ_LIBS)
179
180cut:	cut.o
181	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ cut.o $(SHOBJ_LIBS)
182
183realpath:	realpath.o
184	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ realpath.o $(SHOBJ_LIBS)
185
186strftime:	strftime.o
187	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ strftime.o $(SHOBJ_LIBS)
188
189# pushd is a special case.  We use the same source that the builtin version
190# uses, with special compilation options.
191#
192pushd.c:	${topdir}/builtins/pushd.def
193	$(RM) $@
194	${BUILD_DIR}/builtins/mkbuiltins -D ${topdir}/builtins ${topdir}/builtins/pushd.def
195
196pushd.o:	pushd.c
197	$(RM) $@
198	$(SHOBJ_CC) -DHAVE_CONFIG_H -DPUSHD_AND_POPD -DLOADABLE_BUILTIN $(SHOBJ_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(INC) -c -o $@ $<
199
200pushd:	pushd.o
201	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ pushd.o $(SHOBJ_LIBS)
202
203clean:
204	$(RM) $(ALLPROG) $(OTHERPROG) *.o
205	-( cd perl && ${MAKE} ${MFLAGS} $@ )
206
207mostlyclean:	clean
208	-( cd perl && ${MAKE} ${MFLAGS} $@ )
209
210distclean maintainer-clean: clean
211	$(RM) Makefile pushd.c
212	-( cd perl && ${MAKE} ${MFLAGS} $@ )
213
214print.o: print.c
215truefalse.o: truefalse.c
216sleep.o: sleep.c
217finfo.o: finfo.c
218logname.o: logname.c
219basename.o: basename.c
220dirname.o: dirname.c
221tty.o: tty.c
222pathchk.o: pathchk.c
223tee.o: tee.c
224head.o: head.c
225rmdir.o: rmdir.c
226necho.o: necho.c
227getconf.o: getconf.c
228hello.o: hello.c
229cat.o: cat.c
230printenv.o: printenv.c
231id.o: id.c
232whoami.o: whoami.c
233uname.o: uname.c
234sync.o: sync.c
235push.o: push.c
236mkdir.o: mkdir.c
237realpath.o: realpath.c
238strftime.o: strftime.c
239