blob: 99549bf36b989d02dfe107264a8d706a2c7aa9c4 [file] [log] [blame]
Jari Aaltocce855b1998-04-17 19:52:44 +00001#
2# Simple makefile for the sample loadable builtins
3#
Jari Aalto31859422009-01-12 13:36:28 +00004# Copyright (C) 1996-2009 Free Software Foundation, Inc.
Jari Aaltobb706242000-03-17 21:46:59 +00005
Jari Aalto31859422009-01-12 13:36:28 +00006# 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 3 of the License, or
9# (at your option) 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, see <http://www.gnu.org/licenses/>.
18#
Jari Aaltobb706242000-03-17 21:46:59 +000019
Jari Aaltocce855b1998-04-17 19:52:44 +000020# Include some boilerplate Gnu makefile definitions.
21prefix = @prefix@
22
23exec_prefix = @exec_prefix@
24bindir = @bindir@
25libdir = @libdir@
26infodir = @infodir@
27includedir = @includedir@
28
Jari Aalto31859422009-01-12 13:36:28 +000029datarootdir = @datarootdir@
30
Jari Aaltocce855b1998-04-17 19:52:44 +000031topdir = @top_srcdir@
32BUILD_DIR = @BUILD_DIR@
33srcdir = @srcdir@
34VPATH = .:@srcdir@
35
36@SET_MAKE@
37CC = @CC@
38RM = rm -f
39
Jari Aaltob72432f1999-02-19 17:11:39 +000040SHELL = @MAKE_SHELL@
Jari Aaltocce855b1998-04-17 19:52:44 +000041
Jari Aaltob72432f1999-02-19 17:11:39 +000042host_os = @host_os@
43host_cpu = @host_cpu@
44host_vendor = @host_vendor@
Jari Aaltocce855b1998-04-17 19:52:44 +000045
Jari Aaltob72432f1999-02-19 17:11:39 +000046CFLAGS = @CFLAGS@
Jari Aalto7117c2d2002-07-17 14:10:11 +000047LOCAL_CFLAGS = @LOCAL_CFLAGS@
48DEFS = @DEFS@
49LOCAL_DEFS = @LOCAL_DEFS@
50
Jari Aalto95732b42005-12-07 14:08:12 +000051CPPFLAGS = @CPPFLAGS@
52
53BASHINCDIR = ${topdir}/include
54
55LIBBUILD = ${BUILD_DIR}/lib
56
57INTL_LIBSRC = ${topdir}/lib/intl
58INTL_BUILDDIR = ${LIBBUILD}/intl
59INTL_INC = @INTL_INC@
60LIBINTL_H = @LIBINTL_H@
61
Jari Aalto7117c2d2002-07-17 14:10:11 +000062CCFLAGS = $(DEFS) $(LOCAL_DEFS) $(LOCAL_CFLAGS) $(CFLAGS)
Jari Aaltocce855b1998-04-17 19:52:44 +000063
Jari Aaltob72432f1999-02-19 17:11:39 +000064#
65# These values are generated for configure by ${topdir}/support/shobj-conf.
66# If your system is not supported by that script, but includes facilities for
67# dynamic loading of shared objects, please update the script and send the
68# changes to bash-maintainers@gnu.org.
69#
70SHOBJ_CC = @SHOBJ_CC@
71SHOBJ_CFLAGS = @SHOBJ_CFLAGS@
72SHOBJ_LD = @SHOBJ_LD@
Jari Aalto31859422009-01-12 13:36:28 +000073SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@ @LDFLAGS@
Jari Aaltob72432f1999-02-19 17:11:39 +000074SHOBJ_XLDFLAGS = @SHOBJ_XLDFLAGS@
75SHOBJ_LIBS = @SHOBJ_LIBS@
76SHOBJ_STATUS = @SHOBJ_STATUS@
Jari Aaltocce855b1998-04-17 19:52:44 +000077
78INC = -I. -I.. -I$(topdir) -I$(topdir)/lib -I$(topdir)/builtins \
Jari Aalto95732b42005-12-07 14:08:12 +000079 -I$(BASHINCDIR) -I$(BUILD_DIR) -I$(LIBBUILD) \
80 -I$(BUILD_DIR)/builtins $(INTL_INC)
Jari Aaltocce855b1998-04-17 19:52:44 +000081
82.c.o:
Jari Aalto7117c2d2002-07-17 14:10:11 +000083 $(SHOBJ_CC) $(SHOBJ_CFLAGS) $(CCFLAGS) $(INC) -c -o $@ $<
Jari Aaltocce855b1998-04-17 19:52:44 +000084
85
86ALLPROG = print truefalse sleep pushd finfo logname basename dirname \
Jari Aaltof73dda02001-11-13 17:56:06 +000087 tty pathchk tee head mkdir rmdir printenv id whoami \
Chet Rameyac50fba2014-02-26 09:36:43 -050088 uname sync push ln unlink realpath strftime mypid
Jari Aaltof73dda02001-11-13 17:56:06 +000089OTHERPROG = necho hello cat
Jari Aaltocce855b1998-04-17 19:52:44 +000090
Jari Aaltob72432f1999-02-19 17:11:39 +000091all: $(SHOBJ_STATUS)
Jari Aaltocce855b1998-04-17 19:52:44 +000092
Jari Aaltob72432f1999-02-19 17:11:39 +000093supported: $(ALLPROG)
94others: $(OTHERPROG)
95
96unsupported:
97 @echo "Your system (${host_os}) is not supported by the"
98 @echo "${topdir}/support/shobj-conf script."
99 @echo "If your operating system provides facilities for dynamic"
100 @echo "loading of shared objects using the dlopen(3) interface,"
101 @echo "please update the script and re-run configure.
102 @echo "Please send the changes you made to bash-maintainers@gnu.org"
103 @echo "for inclusion in future bash releases."
104
105everything: supported others
Jari Aaltocce855b1998-04-17 19:52:44 +0000106
Jari Aaltocce855b1998-04-17 19:52:44 +0000107print: print.o
Jari Aaltob72432f1999-02-19 17:11:39 +0000108 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ print.o $(SHOBJ_LIBS)
Jari Aaltocce855b1998-04-17 19:52:44 +0000109
110necho: necho.o
Jari Aaltob72432f1999-02-19 17:11:39 +0000111 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ necho.o $(SHOBJ_LIBS)
Jari Aaltocce855b1998-04-17 19:52:44 +0000112
Jari Aaltocce855b1998-04-17 19:52:44 +0000113hello: hello.o
Jari Aaltob72432f1999-02-19 17:11:39 +0000114 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ hello.o $(SHOBJ_LIBS)
Jari Aaltocce855b1998-04-17 19:52:44 +0000115
116truefalse: truefalse.o
Jari Aaltob72432f1999-02-19 17:11:39 +0000117 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ truefalse.o $(SHOBJ_LIBS)
Jari Aaltocce855b1998-04-17 19:52:44 +0000118
119sleep: sleep.o
Jari Aaltob72432f1999-02-19 17:11:39 +0000120 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ sleep.o $(SHOBJ_LIBS)
Jari Aaltocce855b1998-04-17 19:52:44 +0000121
122finfo: finfo.o
Jari Aaltob72432f1999-02-19 17:11:39 +0000123 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ finfo.o $(SHOBJ_LIBS)
Jari Aaltocce855b1998-04-17 19:52:44 +0000124
125cat: cat.o
Jari Aaltob72432f1999-02-19 17:11:39 +0000126 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ cat.o $(SHOBJ_LIBS)
Jari Aaltocce855b1998-04-17 19:52:44 +0000127
128logname: logname.o
Jari Aaltob72432f1999-02-19 17:11:39 +0000129 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ logname.o $(SHOBJ_LIBS)
Jari Aaltocce855b1998-04-17 19:52:44 +0000130
131basename: basename.o
Jari Aaltob72432f1999-02-19 17:11:39 +0000132 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ basename.o $(SHOBJ_LIBS)
Jari Aaltocce855b1998-04-17 19:52:44 +0000133
134dirname: dirname.o
Jari Aaltob72432f1999-02-19 17:11:39 +0000135 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ dirname.o $(SHOBJ_LIBS)
Jari Aaltocce855b1998-04-17 19:52:44 +0000136
137tty: tty.o
Jari Aaltob72432f1999-02-19 17:11:39 +0000138 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ tty.o $(SHOBJ_LIBS)
Jari Aaltocce855b1998-04-17 19:52:44 +0000139
140pathchk: pathchk.o
Jari Aaltob72432f1999-02-19 17:11:39 +0000141 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ pathchk.o $(SHOBJ_LIBS)
Jari Aaltocce855b1998-04-17 19:52:44 +0000142
143tee: tee.o
Jari Aaltob72432f1999-02-19 17:11:39 +0000144 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ tee.o $(SHOBJ_LIBS)
145
146mkdir: mkdir.o
147 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ mkdir.o $(SHOBJ_LIBS)
Jari Aaltocce855b1998-04-17 19:52:44 +0000148
149rmdir: rmdir.o
Jari Aaltob72432f1999-02-19 17:11:39 +0000150 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ rmdir.o $(SHOBJ_LIBS)
Jari Aaltocce855b1998-04-17 19:52:44 +0000151
152head: head.o
Jari Aaltob72432f1999-02-19 17:11:39 +0000153 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ head.o $(SHOBJ_LIBS)
154
155printenv: printenv.o
156 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ printenv.o $(SHOBJ_LIBS)
157
158id: id.o
159 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ id.o $(SHOBJ_LIBS)
160
161whoami: whoami.o
162 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ whoami.o $(SHOBJ_LIBS)
163
164uname: uname.o
165 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ uname.o $(SHOBJ_LIBS)
166
167sync: sync.o
168 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ sync.o $(SHOBJ_LIBS)
169
170push: push.o
171 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ push.o $(SHOBJ_LIBS)
172
173ln: ln.o
174 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ ln.o $(SHOBJ_LIBS)
175
176unlink: unlink.o
177 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ unlink.o $(SHOBJ_LIBS)
178
Jari Aalto28ef6c32001-04-06 19:14:31 +0000179realpath: realpath.o
180 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ realpath.o $(SHOBJ_LIBS)
Jari Aaltob72432f1999-02-19 17:11:39 +0000181
Jari Aaltob80f6442004-07-27 13:29:18 +0000182strftime: strftime.o
183 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ strftime.o $(SHOBJ_LIBS)
184
Jari Aalto31859422009-01-12 13:36:28 +0000185mypid: mypid.o
186 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ mypid.o $(SHOBJ_LIBS)
187
Jari Aaltob72432f1999-02-19 17:11:39 +0000188# pushd is a special case. We use the same source that the builtin version
189# uses, with special compilation options.
190#
191pushd.c: ${topdir}/builtins/pushd.def
192 $(RM) $@
193 ${BUILD_DIR}/builtins/mkbuiltins -D ${topdir}/builtins ${topdir}/builtins/pushd.def
194
195pushd.o: pushd.c
196 $(RM) $@
Jari Aalto95732b42005-12-07 14:08:12 +0000197 $(SHOBJ_CC) -DHAVE_CONFIG_H -DPUSHD_AND_POPD -DLOADABLE_BUILTIN $(SHOBJ_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(INC) -c -o $@ $<
Jari Aaltob72432f1999-02-19 17:11:39 +0000198
199pushd: pushd.o
200 $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ pushd.o $(SHOBJ_LIBS)
Jari Aaltocce855b1998-04-17 19:52:44 +0000201
202clean:
203 $(RM) $(ALLPROG) $(OTHERPROG) *.o
Jari Aaltobb706242000-03-17 21:46:59 +0000204 -( cd perl && ${MAKE} ${MFLAGS} $@ )
Jari Aaltocce855b1998-04-17 19:52:44 +0000205
206mostlyclean: clean
Jari Aaltobb706242000-03-17 21:46:59 +0000207 -( cd perl && ${MAKE} ${MFLAGS} $@ )
Jari Aaltocce855b1998-04-17 19:52:44 +0000208
209distclean maintainer-clean: clean
Jari Aaltob72432f1999-02-19 17:11:39 +0000210 $(RM) Makefile pushd.c
Jari Aaltobb706242000-03-17 21:46:59 +0000211 -( cd perl && ${MAKE} ${MFLAGS} $@ )
Jari Aaltocce855b1998-04-17 19:52:44 +0000212
213print.o: print.c
214truefalse.o: truefalse.c
215sleep.o: sleep.c
Jari Aaltocce855b1998-04-17 19:52:44 +0000216finfo.o: finfo.c
217logname.o: logname.c
218basename.o: basename.c
219dirname.o: dirname.c
220tty.o: tty.c
221pathchk.o: pathchk.c
222tee.o: tee.c
223head.o: head.c
224rmdir.o: rmdir.c
Jari Aaltocce855b1998-04-17 19:52:44 +0000225necho.o: necho.c
Jari Aaltocce855b1998-04-17 19:52:44 +0000226hello.o: hello.c
227cat.o: cat.c
Jari Aaltob72432f1999-02-19 17:11:39 +0000228printenv.o: printenv.c
229id.o: id.c
230whoami.o: whoami.c
231uname.o: uname.c
232sync.o: sync.c
233push.o: push.c
234mkdir.o: mkdir.c
Jari Aalto28ef6c32001-04-06 19:14:31 +0000235realpath.o: realpath.c
Jari Aaltob80f6442004-07-27 13:29:18 +0000236strftime.o: strftime.c
Jari Aalto31859422009-01-12 13:36:28 +0000237mypid.o: mypid.c