]>
Commit | Line | Data |
---|---|---|
ccc6cda3 JA |
1 | # |
2 | # Simple makefile for the sample loadable builtins | |
3 | # | |
a0c0a00f | 4 | # Copyright (C) 1996-2015 Free Software Foundation, Inc. |
bb70624e | 5 | |
3185942a JA |
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 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 | # | |
bb70624e | 19 | |
a0c0a00f CR |
20 | PACKAGE = @PACKAGE_NAME@ |
21 | VERSION = @PACKAGE_VERSION@ | |
22 | ||
cce855bc JA |
23 | # Include some boilerplate Gnu makefile definitions. |
24 | prefix = @prefix@ | |
25 | ||
26 | exec_prefix = @exec_prefix@ | |
27 | bindir = @bindir@ | |
28 | libdir = @libdir@ | |
29 | infodir = @infodir@ | |
30 | includedir = @includedir@ | |
31 | ||
3185942a JA |
32 | datarootdir = @datarootdir@ |
33 | ||
a0c0a00f CR |
34 | loadablesdir = @loadablesdir@ |
35 | headersdir = @headersdir@ | |
36 | ||
cce855bc JA |
37 | topdir = @top_srcdir@ |
38 | BUILD_DIR = @BUILD_DIR@ | |
39 | srcdir = @srcdir@ | |
a0c0a00f CR |
40 | VPATH = @srcdir@ |
41 | ||
42 | # Support an alternate destination root directory for package building | |
43 | DESTDIR = | |
44 | ||
45 | INSTALL = @INSTALL@ | |
46 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | |
47 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | |
48 | INSTALL_DATA = @INSTALL_DATA@ | |
49 | INSTALLMODE= -m 0755 | |
cce855bc JA |
50 | |
51 | @SET_MAKE@ | |
52 | CC = @CC@ | |
53 | RM = rm -f | |
54 | ||
b72432fd | 55 | SHELL = @MAKE_SHELL@ |
cce855bc | 56 | |
b72432fd JA |
57 | host_os = @host_os@ |
58 | host_cpu = @host_cpu@ | |
59 | host_vendor = @host_vendor@ | |
60 | ||
61 | CFLAGS = @CFLAGS@ | |
7117c2d2 JA |
62 | LOCAL_CFLAGS = @LOCAL_CFLAGS@ |
63 | DEFS = @DEFS@ | |
64 | LOCAL_DEFS = @LOCAL_DEFS@ | |
65 | ||
95732b49 JA |
66 | CPPFLAGS = @CPPFLAGS@ |
67 | ||
68 | BASHINCDIR = ${topdir}/include | |
69 | ||
a0c0a00f CR |
70 | SUPPORT_SRC = $(topdir)/support/ |
71 | ||
95732b49 JA |
72 | LIBBUILD = ${BUILD_DIR}/lib |
73 | ||
74 | INTL_LIBSRC = ${topdir}/lib/intl | |
75 | INTL_BUILDDIR = ${LIBBUILD}/intl | |
76 | INTL_INC = @INTL_INC@ | |
77 | LIBINTL_H = @LIBINTL_H@ | |
78 | ||
7117c2d2 | 79 | CCFLAGS = $(DEFS) $(LOCAL_DEFS) $(LOCAL_CFLAGS) $(CFLAGS) |
b72432fd JA |
80 | |
81 | # | |
82 | # These values are generated for configure by ${topdir}/support/shobj-conf. | |
83 | # If your system is not supported by that script, but includes facilities for | |
84 | # dynamic loading of shared objects, please update the script and send the | |
85 | # changes to bash-maintainers@gnu.org. | |
86 | # | |
87 | SHOBJ_CC = @SHOBJ_CC@ | |
88 | SHOBJ_CFLAGS = @SHOBJ_CFLAGS@ | |
89 | SHOBJ_LD = @SHOBJ_LD@ | |
3185942a | 90 | SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@ @LDFLAGS@ |
b72432fd JA |
91 | SHOBJ_XLDFLAGS = @SHOBJ_XLDFLAGS@ |
92 | SHOBJ_LIBS = @SHOBJ_LIBS@ | |
93 | SHOBJ_STATUS = @SHOBJ_STATUS@ | |
ccc6cda3 | 94 | |
a0c0a00f | 95 | INC = -I. -I.. -I$(topdir) -I$(topdir)/lib -I$(topdir)/builtins -I${srcdir} \ |
95732b49 JA |
96 | -I$(BASHINCDIR) -I$(BUILD_DIR) -I$(LIBBUILD) \ |
97 | -I$(BUILD_DIR)/builtins $(INTL_INC) | |
ccc6cda3 JA |
98 | |
99 | .c.o: | |
7117c2d2 | 100 | $(SHOBJ_CC) $(SHOBJ_CFLAGS) $(CCFLAGS) $(INC) -c -o $@ $< |
ccc6cda3 | 101 | |
ccc6cda3 | 102 | |
a0c0a00f | 103 | ALLPROG = print truefalse sleep finfo logname basename dirname \ |
f73dda09 | 104 | tty pathchk tee head mkdir rmdir printenv id whoami \ |
a0c0a00f CR |
105 | uname sync push ln unlink realpath strftime mypid setpgid |
106 | OTHERPROG = necho hello cat pushd | |
cce855bc | 107 | |
b72432fd JA |
108 | all: $(SHOBJ_STATUS) |
109 | ||
110 | supported: $(ALLPROG) | |
111 | others: $(OTHERPROG) | |
112 | ||
113 | unsupported: | |
114 | @echo "Your system (${host_os}) is not supported by the" | |
115 | @echo "${topdir}/support/shobj-conf script." | |
116 | @echo "If your operating system provides facilities for dynamic" | |
117 | @echo "loading of shared objects using the dlopen(3) interface," | |
a0c0a00f | 118 | @echo "please update the script and re-run configure." |
b72432fd JA |
119 | @echo "Please send the changes you made to bash-maintainers@gnu.org" |
120 | @echo "for inclusion in future bash releases." | |
cce855bc | 121 | |
b72432fd | 122 | everything: supported others |
ccc6cda3 | 123 | |
ccc6cda3 | 124 | print: print.o |
b72432fd | 125 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ print.o $(SHOBJ_LIBS) |
ccc6cda3 JA |
126 | |
127 | necho: necho.o | |
b72432fd | 128 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ necho.o $(SHOBJ_LIBS) |
ccc6cda3 | 129 | |
ccc6cda3 | 130 | hello: hello.o |
b72432fd | 131 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ hello.o $(SHOBJ_LIBS) |
ccc6cda3 JA |
132 | |
133 | truefalse: truefalse.o | |
b72432fd | 134 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ truefalse.o $(SHOBJ_LIBS) |
ccc6cda3 JA |
135 | |
136 | sleep: sleep.o | |
b72432fd | 137 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ sleep.o $(SHOBJ_LIBS) |
ccc6cda3 JA |
138 | |
139 | finfo: finfo.o | |
b72432fd | 140 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ finfo.o $(SHOBJ_LIBS) |
ccc6cda3 JA |
141 | |
142 | cat: cat.o | |
b72432fd | 143 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ cat.o $(SHOBJ_LIBS) |
ccc6cda3 JA |
144 | |
145 | logname: logname.o | |
b72432fd | 146 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ logname.o $(SHOBJ_LIBS) |
ccc6cda3 JA |
147 | |
148 | basename: basename.o | |
b72432fd | 149 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ basename.o $(SHOBJ_LIBS) |
ccc6cda3 JA |
150 | |
151 | dirname: dirname.o | |
b72432fd | 152 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ dirname.o $(SHOBJ_LIBS) |
ccc6cda3 JA |
153 | |
154 | tty: tty.o | |
b72432fd | 155 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ tty.o $(SHOBJ_LIBS) |
ccc6cda3 JA |
156 | |
157 | pathchk: pathchk.o | |
b72432fd | 158 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ pathchk.o $(SHOBJ_LIBS) |
ccc6cda3 JA |
159 | |
160 | tee: tee.o | |
b72432fd JA |
161 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ tee.o $(SHOBJ_LIBS) |
162 | ||
163 | mkdir: mkdir.o | |
164 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ mkdir.o $(SHOBJ_LIBS) | |
ccc6cda3 JA |
165 | |
166 | rmdir: rmdir.o | |
b72432fd | 167 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ rmdir.o $(SHOBJ_LIBS) |
ccc6cda3 JA |
168 | |
169 | head: head.o | |
b72432fd JA |
170 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ head.o $(SHOBJ_LIBS) |
171 | ||
172 | printenv: printenv.o | |
173 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ printenv.o $(SHOBJ_LIBS) | |
174 | ||
175 | id: id.o | |
176 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ id.o $(SHOBJ_LIBS) | |
177 | ||
178 | whoami: whoami.o | |
179 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ whoami.o $(SHOBJ_LIBS) | |
180 | ||
181 | uname: uname.o | |
182 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ uname.o $(SHOBJ_LIBS) | |
183 | ||
184 | sync: sync.o | |
185 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ sync.o $(SHOBJ_LIBS) | |
186 | ||
187 | push: push.o | |
188 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ push.o $(SHOBJ_LIBS) | |
189 | ||
190 | ln: ln.o | |
191 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ ln.o $(SHOBJ_LIBS) | |
192 | ||
193 | unlink: unlink.o | |
194 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ unlink.o $(SHOBJ_LIBS) | |
195 | ||
28ef6c31 JA |
196 | realpath: realpath.o |
197 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ realpath.o $(SHOBJ_LIBS) | |
b72432fd | 198 | |
b80f6443 JA |
199 | strftime: strftime.o |
200 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ strftime.o $(SHOBJ_LIBS) | |
201 | ||
3185942a JA |
202 | mypid: mypid.o |
203 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ mypid.o $(SHOBJ_LIBS) | |
204 | ||
a0c0a00f CR |
205 | |
206 | setpgid: setpgid.o | |
207 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ setpgid.o $(SHOBJ_LIBS) | |
208 | ||
b72432fd JA |
209 | # pushd is a special case. We use the same source that the builtin version |
210 | # uses, with special compilation options. | |
211 | # | |
212 | pushd.c: ${topdir}/builtins/pushd.def | |
213 | $(RM) $@ | |
214 | ${BUILD_DIR}/builtins/mkbuiltins -D ${topdir}/builtins ${topdir}/builtins/pushd.def | |
215 | ||
216 | pushd.o: pushd.c | |
217 | $(RM) $@ | |
95732b49 | 218 | $(SHOBJ_CC) -DHAVE_CONFIG_H -DPUSHD_AND_POPD -DLOADABLE_BUILTIN $(SHOBJ_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(INC) -c -o $@ $< |
b72432fd JA |
219 | |
220 | pushd: pushd.o | |
221 | $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ pushd.o $(SHOBJ_LIBS) | |
cce855bc JA |
222 | |
223 | clean: | |
224 | $(RM) $(ALLPROG) $(OTHERPROG) *.o | |
bb70624e | 225 | -( cd perl && ${MAKE} ${MFLAGS} $@ ) |
cce855bc JA |
226 | |
227 | mostlyclean: clean | |
bb70624e | 228 | -( cd perl && ${MAKE} ${MFLAGS} $@ ) |
cce855bc JA |
229 | |
230 | distclean maintainer-clean: clean | |
a0c0a00f | 231 | $(RM) Makefile Makefile.inc pushd.c |
bb70624e | 232 | -( cd perl && ${MAKE} ${MFLAGS} $@ ) |
cce855bc | 233 | |
a0c0a00f CR |
234 | installdirs: |
235 | @${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(loadablesdir) | |
236 | ||
237 | install-dev: installdirs | |
238 | @$(INSTALL_DATA) Makefile.inc $(DESTDIR)$(loadablesdir)/Makefile.inc | |
239 | @( cd $(BUILD_DIR) && ${MAKE} ${MFLAGS} DESTDIR="$(DESTDIR)" install-headers) | |
240 | ||
241 | install-supported: all installdirs install-dev | |
242 | @echo installing example loadable builtins in $(DESTDIR)${loadablesdir} | |
243 | @for prog in ${ALLPROG}; do \ | |
244 | echo $$prog ; \ | |
245 | $(INSTALL_PROGRAM) $(INSTALLMODE) $$prog $(DESTDIR)$(loadablesdir)/$$prog ;\ | |
246 | done | |
247 | ||
248 | uninstall-dev: | |
249 | -$(RM) $(DESTDIR)$(loadablesdir)/Makefile.inc | |
250 | -( cd $(BUILD_DIR) && ${MAKE} ${MFLAGS} DESTDIR="$(DESTDIR)" uninstall-headers) | |
251 | ||
252 | uninstall-supported: uninstall-dev | |
253 | -( cd $(DESTDIR)${loadablesdir} && $(RM) ${ALLPROG} ) | |
254 | ||
255 | install-unsupported: | |
256 | uninstall-unsupported: | |
257 | ||
258 | install: install-$(SHOBJ_STATUS) | |
259 | uninstall: uninstall-$(SHOBJ_STATUS) | |
260 | ||
cce855bc JA |
261 | print.o: print.c |
262 | truefalse.o: truefalse.c | |
263 | sleep.o: sleep.c | |
cce855bc JA |
264 | finfo.o: finfo.c |
265 | logname.o: logname.c | |
266 | basename.o: basename.c | |
267 | dirname.o: dirname.c | |
268 | tty.o: tty.c | |
269 | pathchk.o: pathchk.c | |
270 | tee.o: tee.c | |
271 | head.o: head.c | |
272 | rmdir.o: rmdir.c | |
cce855bc | 273 | necho.o: necho.c |
cce855bc JA |
274 | hello.o: hello.c |
275 | cat.o: cat.c | |
b72432fd JA |
276 | printenv.o: printenv.c |
277 | id.o: id.c | |
278 | whoami.o: whoami.c | |
279 | uname.o: uname.c | |
280 | sync.o: sync.c | |
281 | push.o: push.c | |
282 | mkdir.o: mkdir.c | |
28ef6c31 | 283 | realpath.o: realpath.c |
b80f6443 | 284 | strftime.o: strftime.c |
a0c0a00f | 285 | setpgid.o: setpgid.c |