2 # Simple makefile for the sample loadable builtins
4 # Copyright (C) 1996-2019 Free Software Foundation, Inc.
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.
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.
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/>.
20 PACKAGE
= @PACKAGE_NAME@
21 VERSION
= @PACKAGE_VERSION@
23 # Include some boilerplate Gnu makefile definitions.
26 exec_prefix = @
exec_prefix@
30 includedir = @
includedir@
32 datarootdir
= @datarootdir@
34 loadablesdir
= @loadablesdir@
35 headersdir
= @headersdir@
38 BUILD_DIR
= @BUILD_DIR@
42 # Support an alternate destination root directory for package building
46 INSTALL_PROGRAM
= @INSTALL_PROGRAM@
47 INSTALL_SCRIPT
= @INSTALL_SCRIPT@
48 INSTALL_DATA
= @INSTALL_DATA@
59 host_vendor
= @host_vendor@
62 LOCAL_CFLAGS
= @LOCAL_CFLAGS@
64 LOCAL_DEFS
= @LOCAL_DEFS@
68 BASHINCDIR
= ${topdir}/include
70 SUPPORT_SRC
= $(topdir
)/support
/
72 LIBBUILD
= ${BUILD_DIR}/lib
74 INTL_LIBSRC
= ${topdir}/lib
/intl
75 INTL_BUILDDIR
= ${LIBBUILD}/intl
77 LIBINTL_H
= @LIBINTL_H@
79 CCFLAGS
= $(DEFS
) $(LOCAL_DEFS
) $(LOCAL_CFLAGS
) $(CPPFLAGS
) $(CFLAGS
)
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.
88 SHOBJ_CFLAGS
= @SHOBJ_CFLAGS@
90 SHOBJ_LDFLAGS
= @SHOBJ_LDFLAGS@ @LDFLAGS@
91 SHOBJ_XLDFLAGS
= @SHOBJ_XLDFLAGS@
92 SHOBJ_LIBS
= @SHOBJ_LIBS@
93 SHOBJ_STATUS
= @SHOBJ_STATUS@
95 INC
= -I.
-I..
-I
$(topdir
) -I
$(topdir
)/lib
-I
$(topdir
)/builtins
-I
${srcdir} \
96 -I
$(BASHINCDIR
) -I
$(BUILD_DIR
) -I
$(LIBBUILD
) \
97 -I
$(BUILD_DIR
)/builtins
$(INTL_INC
)
100 $(SHOBJ_CC
) $(SHOBJ_CFLAGS
) $(CCFLAGS
) $(INC
) -c
-o
$@
$<
103 ALLPROG
= print truefalse sleep finfo logname
basename dirname fdflags \
104 tty pathchk tee head mkdir rmdir mkfifo mktemp printenv id whoami \
105 uname sync push ln unlink realpath strftime mypid setpgid seq
rm \
107 OTHERPROG
= necho hello cat pushd stat asort
111 supported
: $(ALLPROG
)
115 @echo
"Your system (${host_os}) is not supported by the"
116 @echo
"${topdir}/support/shobj-conf script."
117 @echo
"If your operating system provides facilities for dynamic"
118 @echo
"loading of shared objects using the dlopen(3) interface,"
119 @echo
"please update the script and re-run configure."
120 @echo
"Please send the changes you made to bash-maintainers@gnu.org"
121 @echo
"for inclusion in future bash releases."
123 everything
: supported others
126 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@
print.o
$(SHOBJ_LIBS
)
129 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ necho.o
$(SHOBJ_LIBS
)
132 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ hello.o
$(SHOBJ_LIBS
)
134 truefalse
: truefalse.o
135 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ truefalse.o
$(SHOBJ_LIBS
)
138 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ accept.o
$(SHOBJ_LIBS
)
141 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ sleep.o
$(SHOBJ_LIBS
)
144 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ finfo.o
$(SHOBJ_LIBS
)
147 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ cat.o
$(SHOBJ_LIBS
)
150 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@
rm.o
$(SHOBJ_LIBS
)
153 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ fdflags.o
$(SHOBJ_LIBS
)
156 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ seq.o
$(SHOBJ_LIBS
)
159 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ logname.o
$(SHOBJ_LIBS
)
162 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@
basename.o
$(SHOBJ_LIBS
)
165 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ dirname.o
$(SHOBJ_LIBS
)
168 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ tty.o
$(SHOBJ_LIBS
)
171 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ pathchk.o
$(SHOBJ_LIBS
)
174 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ tee.o
$(SHOBJ_LIBS
)
177 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ mkdir.o
$(SHOBJ_LIBS
)
180 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ rmdir.o
$(SHOBJ_LIBS
)
183 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ mkfifo.o
$(SHOBJ_LIBS
)
186 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ mktemp.o
$(SHOBJ_LIBS
)
189 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ head.o
$(SHOBJ_LIBS
)
192 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ printenv.o
$(SHOBJ_LIBS
)
195 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ id.o
$(SHOBJ_LIBS
)
198 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ whoami.o
$(SHOBJ_LIBS
)
201 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ uname.o
$(SHOBJ_LIBS
)
204 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ sync.o
$(SHOBJ_LIBS
)
207 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ push.o
$(SHOBJ_LIBS
)
210 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ ln.o
$(SHOBJ_LIBS
)
213 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ unlink.o
$(SHOBJ_LIBS
)
216 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ realpath.o
$(SHOBJ_LIBS
)
219 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ csv.o
$(SHOBJ_LIBS
)
222 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ cut.o
$(SHOBJ_LIBS
)
225 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ strftime.o
$(SHOBJ_LIBS
)
228 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ mypid.o
$(SHOBJ_LIBS
)
231 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ setpgid.o
$(SHOBJ_LIBS
)
234 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ stat.o
$(SHOBJ_LIBS
)
237 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ asort.o
$(SHOBJ_LIBS
)
239 # pushd is a special case. We use the same source that the builtin version
240 # uses, with special compilation options.
242 pushd.c
: ${topdir}/builtins
/pushd.def
244 ${BUILD_DIR}/builtins
/mkbuiltins
-D
${topdir}/builtins
${topdir}/builtins
/pushd.def
248 $(SHOBJ_CC
) -DHAVE_CONFIG_H
-DPUSHD_AND_POPD
-DLOADABLE_BUILTIN
$(SHOBJ_CFLAGS
) $(CFLAGS
) $(CPPFLAGS
) $(INC
) -c
-o
$@
$<
251 $(SHOBJ_LD
) $(SHOBJ_LDFLAGS
) $(SHOBJ_XLDFLAGS
) -o
$@ pushd.o
$(SHOBJ_LIBS
)
254 $(RM
) $(ALLPROG
) $(OTHERPROG
) *.o
255 -( cd perl
&& ${MAKE} ${MFLAGS} $@
)
258 -( cd perl
&& ${MAKE} ${MFLAGS} $@
)
260 distclean maintainer-clean
: clean
261 $(RM
) Makefile Makefile.inc pushd.c
262 -( cd perl
&& ${MAKE} ${MFLAGS} $@
)
265 @
${SHELL} $(SUPPORT_SRC
)mkinstalldirs
$(DESTDIR
)$(loadablesdir
)
267 install-dev
: installdirs
268 @
$(INSTALL_DATA
) Makefile.inc
$(DESTDIR
)$(loadablesdir
)/Makefile.inc
269 @
$(INSTALL_DATA
) $(srcdir)/loadables.h
$(DESTDIR
)$(loadablesdir
)/loadables.h
270 @
( cd
$(BUILD_DIR
) && ${MAKE} ${MFLAGS} DESTDIR
="$(DESTDIR)" install-headers
)
272 install-supported
: all installdirs install-dev
273 @echo installing example loadable builtins in
$(DESTDIR
)${loadablesdir}
274 @for prog in
${ALLPROG}; do \
276 $(INSTALL_PROGRAM
) $(INSTALLMODE
) $$prog $(DESTDIR
)$(loadablesdir
)/$$prog ;\
280 -$(RM
) $(DESTDIR
)$(loadablesdir
)/Makefile.inc
$(DESTDIR
)$(loadablesdir
)/loadables.h
281 -( cd
$(BUILD_DIR
) && ${MAKE} ${MFLAGS} DESTDIR
="$(DESTDIR)" uninstall-headers
)
283 uninstall-supported
: uninstall-dev
284 -( cd
$(DESTDIR
)${loadablesdir} && $(RM
) ${ALLPROG} )
287 uninstall-unsupported
:
289 install: install-
$(SHOBJ_STATUS
)
290 uninstall: uninstall-
$(SHOBJ_STATUS
)
293 truefalse.o
: truefalse.c
298 basename.o
: basename.c
310 printenv.o
: printenv.c
318 realpath.o
: realpath.c
319 strftime.o
: strftime.c