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