+/* This -*- C -*- file (cpp-Makefile) is run through the C preprocessor
+ to produce bash-Makefile which is machine specific.
+
+ If you have Gcc and/or Bison, you might wish to mention that right
+ below here.
+
+ Since this is to become a Makefile, blank lines which appear outside
+ of comments may not contain a TAB character.
+
+ Copyright (C) 1987,1991 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+
+ Bash is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 1, or (at your option) any later
+ version.
+
+ Bash is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with Bash; see the file COPYING. If not, write to the Free Software
+ Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/**/# This Makefile is automagically made from cpp-Makefile. You should
+/**/# not be editing this file; edit cpp-Makefile, machines.h, or
+/**/# support/mksysdefs instead. Then, assuming the edits were required
+/**/# to compile Bash on your system, mail the changes you had to make to
+/**/# bash-maintainers@ai.mit.edu. We will do our best to incorporate
+/**/# them into the next release.
+
+/* **************************************************************** */
+/* */
+/* Which compiler are you using? */
+/* */
+/* **************************************************************** */
+
+/* Define HAVE_GCC if you have the GNU C compiler. */
+/* #define HAVE_GCC */
+
+/* Define HAVE_FIXED_INCLUDES if you are using GCC with the fixed
+ header files. */
+#if defined (HAVE_GCC) && !defined (HAVE_FIXED_INCLUDES)
+/* #define HAVE_FIXED_INCLUDES */
+#endif /* HAVE_GCC && !HAVE_FIXED_INCLUDES */
+
+/* Define HAVE_BISON if you have the GNU replacement for Yacc. */
+/**/# We would like you to use Bison instead of Yacc since some
+/**/# versions of Yacc cannot handle reentrant parsing. Unfortunately,
+/**/# this includes the Yacc currently being shipped with SunOS4.x.
+/**/# If you do use Yacc, please make sure that any bugs in parsing
+/**/# are not really manifestations of Yacc bugs before you report
+/**/# them.
+#define HAVE_BISON
+
+/* This includes the appropriate description for the machine that you are
+ using (we hope). If the compilation doesn't work correctly, then you
+ will have to edit the file `machines.h' to include a description for the
+ machine that your Cpp uniquely identifies this as. For example, Sun 4's
+ are recognized by the Cpp identifier `sparc', Vax is recognized with `vax',
+ etc. The order of these files is very important. Config.h must come last,
+ since it is capable of undef'ing various things. */
+#define BUILDING_MAKEFILE /* Tell config.h to avoid #including anything. */
+#include "sysdefs.h"
+#include "machines.h"
+#include "config.h"
+
+/**/# Here is a rule for making .o files from .c files that does not
+/**/# force the type of the machine (like -M_MACHINE) into the flags.
+.c.o:
+ $(RM) $@
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c $*.c
+
+#if defined (HAVE_BISON)
+BISON = bison -y
+#else
+BISON = yacc
+#endif
+
+#if defined (HAVE_GCC)
+# if defined (GCC_FLAGS)
+GCC_EXTRAS = GCC_FLAGS
+# endif /* GCC_FLAGS */
+# if !defined (HAVE_FIXED_INCLUDES)
+/* This is guaranteed to work, even if you have the fixed includes!
+ (Unless, of course, you have the fixed include files installed in
+ /usr/include. Then it will break.) */
+# if defined (isc386)
+CC = gcc -traditional -posix -I/usr/include $(GCC_EXTRAS)
+# else
+CC = gcc -traditional -I/usr/include $(GCC_EXTRAS)
+# endif /* isc386 */
+# else /* HAVE_FIXED_INCLUDES */
+# if defined (isc386)
+CC = gcc -posix $(GCC_EXTRAS)
+# else /* !isc386 */
+CC = gcc $(GCC_EXTRAS)
+# endif /* isc386 */
+# endif /* HAVE_FIXED_INCLUDES */
+#else /* !HAVE_GCC */
+CC = CPP_CC
+#endif /* !HAVE_GCC */
+
+/**/# Of course, you cannot do this the first time through...
+/**/#SHELL=$(DESTDIR)/bash
+SHELL=/bin/sh
+
+RM = rm -f
+AR = ar
+
+MACHINE = M_MACHINE
+OS = M_OS
+
+/**/# PROFILE_FLAGS is either -pg, to generate profiling info for use
+/**/# with gprof, or nothing (the default).
+PROFILE_FLAGS=
+
+#if defined (HAVE_SHARED_LIBS) && defined (sun)
+# if !defined (HAVE_GCC)
+/**/# On Sun systems, we compile without shared libraries so we
+/**/# can debug the shell with gdb.
+NOSHARE = -Bstatic
+# endif
+#endif
+
+#if defined (SYSDEP_CFLAGS)
+/**/# This system has some peculiar flags that must be passed to the
+/**/# the C compiler (or to cpp).
+SYSDEP = SYSDEP_CFLAGS
+#endif /* SYSDEP_CFLAGS */
+
+#if defined (SYSDEP_LDFLAGS)
+/**/# This system has some peculiar flags that must be passed to the
+/**/# link editor (ld).
+SYSDEP_LD = SYSDEP_LDFLAGS
+#endif /* SYSDEP_LDFLAGS */
+
+#if defined (HAVE_SETLINEBUF)
+/**/# This system has the setlinebuf () call.
+LINEBUF = -DHAVE_SETLINEBUF
+#endif
+
+#if defined (HAVE_VFPRINTF)
+/**/# This system has the vprintf () and vfprintf () calls.
+VPRINTF = -DHAVE_VFPRINTF
+#endif /* HAVE_VFPRINTF */
+
+#if defined (HAVE_UNISTD_H)
+/**/# This system has <unistd.h>.
+UNISTD = -DHAVE_UNISTD_H
+#endif
+
+#if defined (HAVE_GETGROUPS)
+/**/# This system has multiple groups.
+GROUPS = -DHAVE_GETGROUPS
+#endif
+
+#if defined (HAVE_RESOURCE)
+/**/# This system has <sys/resource.h>
+RESOURCE = -DHAVE_RESOURCE
+#endif
+
+#if defined (VOID_SIGHANDLER)
+/**/# The signal () call of this system returns a pointer to a function
+/**/# returning void. The signal handlers themselves are thus void functions.
+SIGHANDLER = -DVOID_SIGHANDLER
+#endif
+
+#if defined (HAVE_STRERROR)
+/**/# This system has the strerror () function.
+STRERROR = -DHAVE_STRERROR
+#endif
+
+#if defined (HAVE_WAIT_H)
+/**/# This system has <sys/wait.h>
+WAITH = -DHAVE_WAIT_H
+#endif
+
+#if defined (HAVE_GETWD)
+/**/# This system has the getwd () call.
+GETWD = -DHAVE_GETWD
+#endif
+
+#if defined (HAVE_DUP2)
+/**/# This system has a working version of dup2 ().
+DUP2 = -DHAVE_DUP2
+#endif /* HAVE_DUP2 */
+
+SYSTEM_FLAGS = $(LINEBUF) $(VPRINTF) $(UNISTD) $(GROUPS) $(RESOURCE) \
+ $(SIGHANDLER) $(SYSDEP) $(WAITH) $(GETWD) $(DUP2) $(STRERROR) \
+ -D$(MACHINE) -D$(OS)
+DEBUG_FLAGS = $(PROFILE_FLAGS) -g
+LDFLAGS = $(NOSHARE) $(SYSDEP_LD) $(EXTRA_LD_PATH) $(DEBUG_FLAGS)
+CFLAGS = $(DEBUG_FLAGS) $(SYSTEM_FLAGS) -DSHELL $(ALLOCA_CFLAGS)
+CPPFLAGS= -I$(LIBSRC)
+
+/* It is conceviable that you wish to edit some things beyond this point,
+ but I guess that it is highly unlikely, and may give you a headache. */
+
+/* **************************************************************** */
+/* */
+/* How to Build a Library */
+/* */
+/* **************************************************************** */
+
+/* Defines used when building libraries. */
+#define LIB_CFLAGS_DECL CFLAGS='$(LIBRARY_CFLAGS) '$(LIBINC_USAGE)
+#define LIB_CPPFLAGS_DECL CPPFLAGS='$(CPPFLAGS)'
+#define LIB_LDFLAGS_DECL LDFLAGS='$(LDFLAGS)'
+#define LIBMAKE_FLAGS LIB_CFLAGS_DECL LIB_CPPFLAGS_DECL LIB_LDFLAGS_DECL \
+ RANLIB='$(RANLIB)' AR='$(AR)' CC='$(CC)'
+
+/* Macro does library building. */
+#define build_lib_in_dir(directory) \
+ @echo "Building in " directory "..."; \
+ ($(LIBINC_DECL); cd directory; $(MAKE) $(MFLAGS) LIBMAKE_FLAGS)
+
+/* The builtins are somewhat special in that more information is needed
+ to compile them correctly. */
+#define build_builtins_in_dir(directory) \
+ ($(LIBINC_DECL); cd directory; \
+ $(MAKE) $(MFLAGS) CPPFLAGS='$(CPPFLAGS)' \
+ CFLAGS='$(CFLAGS) '$(LIBINC_USAGE)' -I.' LDFLAGS='$(LDFLAGS)' \
+ RANLIB='$(RANLIB)' AR='$(AR)' CC='$(CC)' DIRECTDEFINE='-D 'directory)
+
+/* Flags used when building libraries. */
+LIBRARY_CFLAGS = $(DEBUG_FLAGS) $(SIGHANDLER) $(ALLOCA_CFLAGS) \
+ $(SYSDEP) -D$(MACHINE) -D$(OS) $(UNISTD) -DSHELL
+
+/**/# These are required for sending bug reports.
+SYSTEM_NAME = $(MACHINE)
+OS_NAME = $(OS)
+
+/**/# The name of this program.
+PROGRAM = bash
+
+/**/# The type of machine Bash is being compiled on.
+HOSTTYPE_DECL = -DHOSTTYPE='$(SYSTEM_NAME)'
+
+#if defined (NotYet)
+/**/# The name of the manufacturer of this machine.
+MachineManufacturer = ConfiguredManufacturer
+
+/**/# The name of the operating system this machine is using.
+MachineSystem = ConfiguredOS
+
+/**/# How to pass the above two variables into a source compilation.
+MachineInfo = -DMachineManufacturer="$(MachineManufacturer)" \
+ -DMachineSystem="$(MachineSystem)"
+#endif /* NotYet */
+
+/**/# The default primary and secondary prompts.
+PPROMPT = '"${PROGRAM}\\$$ "'
+SPROMPT = '"> "'
+
+#if defined (MAINTAINER)
+bash_maintainer = MAINTAINER
+MAINTAIN_DEFINE = -DMAINTAINER='"$(bash_maintainer)"'
+#endif
+
+/**/# The group of configuration flags. These are for shell.c
+CFG_FLAGS = -DPPROMPT=$(PPROMPT) -DSPROMPT=$(SPROMPT) -DOS_NAME='"$(OS_NAME)"'\
+ -DSYSTEM_NAME='$(SYSTEM_NAME)' $(SIGLIST_FLAG) $(MAINTAIN_DEFINE)
+
+/**/# The directory which contains the source for malloc. The name must
+/**/# end in a slash, as in "./lib/malloc/".
+ALLOC_DIR = ./lib/malloc/
+
+/**/# Our malloc.
+#if defined (USE_GNU_MALLOC)
+MALLOC = $(ALLOC_DIR)malloc.o
+MALLOC_DEP = $(ALLOC_DIR)malloc.c $(ALLOC_DIR)getpagesize.h
+MALLOC_FLAGS = -Drcheck -Dbotch=programming_error
+#endif /* USE_GNU_MALLOC */
+
+/* If this user doesn't have alloca (), then we must try to supply them
+ with a working one. */
+#if !defined (HAVE_ALLOCA)
+ALLOCA = $(ALLOC_DIR)alloca.o
+# if defined (ALLOCA_ASM)
+ALLOCA_SOURCE = $(ALLOC_DIR)ALLOCA_ASM
+# else
+ALLOCA_SOURCE = $(ALLOC_DIR)alloca.c
+# endif /* ALLOCA_ASM */
+#endif /* !HAVE_ALLOCA */
+
+/* Compilation flags to use in the shell directory and to pass to builds
+ in subdirectories (readline, termcap) to ensure that alloca is treated
+ in a consistent fashion. */
+#if defined (HAVE_ALLOCA_H)
+ALLOCA_H_DEFINE = -DHAVE_ALLOCA_H
+#else
+ALLOCA_H_DEFINE =
+#endif /* HAVE_ALLOCA_H */
+
+#if defined (HAVE_ALLOCA)
+ALLOCA_DEFINE = -DHAVE_ALLOCA
+#else
+ALLOCA_DEFINE =
+#endif /* HAVE_ALLOCA */
+
+ALLOCA_CFLAGS = $(ALLOCA_DEFINE) $(ALLOCA_H_DEFINE)
+
+/* Protect the `i386' used in the definition of ALLOC_FILES. */
+#if defined (i386)
+# undef i386
+# define i386_defined
+#endif /* i386 */
+
+ALLOC_HEADERS = $(ALLOC_DIR)getpagesize.h
+ALLOC_FILES = $(ALLOC_DIR)malloc.c $(ALLOC_DIR)alloca.c $(ALLOC_DIR)xmalloc.c \
+ $(ALLOC_DIR)i386-alloca.s $(ALLOC_DIR)x386-alloca.s
+
+/* Perhaps restore the `i386' define. */
+#if defined (i386_defined)
+# define i386
+# undef i386_defined
+#endif /* i386_defined */
+
+#if !defined (HAVE_SYS_SIGLIST)
+/**/# Since this system does not have sys_siglist, we define SIGLIST
+/**/# as siglist.o.
+SIGLIST = siglist.o
+SIGLIST_FLAG=-DINITIALIZE_SIGLIST
+#endif /* HAVE_SYS_SIGLIST */
+
+#if !defined (HAVE_GETCWD)
+/**/# Since this system does not have a correctly working getcwd (), we
+/**/# define GETCWD as getcwd.o.
+GETCWD = getcwd.o
+#endif /* !HAVE_GETCWD */
+
+/**/# The location of ranlib on your system.
+#if defined (RANLIB_LOCATION)
+RANLIB = RANLIB_LOCATION
+#else
+RANLIB = ranlib
+#endif /* RANLIB_LOCATION */
+
+/**/# Support for the libraries required. Termcap, Glob, and Readline.
+/**/# The location of sources for the support libraries.
+LIBSRC = ./lib/
+LIBINC_DECL = LIBINCDIR=`pwd`; export LIBINCDIR
+LIBINC_USAGE = "-I$${LIBINCDIR} -I$${LIBINCDIR}/$(LIBSRC)"
+
+/* Does this machine's linker need a space after -L? */
+#if defined (HAVE_GCC)
+# undef SEARCH_LIB_NEEDS_SPACE
+#endif /* HAVE_GCC */
+
+#if defined (SEARCH_LIB_NEEDS_SPACE)
+/**/# The native compiler for this machines requires a space after '-L'.
+SEARCH_LIB = -L $(UNSET_VARIABLE_CREATES_SPACE)
+#else
+SEARCH_LIB = -L
+#endif /* !SEARCH_LIB_NEEDS_SPACE */
+
+#if defined (EXTRA_LIB_SEARCH_PATH)
+LOCAL_LD_PATH = EXTRA_LIB_SEARCH_PATH
+EXTRA_LD_PATH = $(SEARCH_LIB)$(LOCAL_LD_PATH)
+#endif /* EXTRA_LIB_SEARCH_PATH */
+
+RLIBSRC = $(LIBSRC)readline/
+RLIBDOC = $(RLIBSRC)doc/
+
+/**/# The source, object and documentation of the history library.
+HISTORY_SOURCE = $(RLIBSRC)history.c $(RLIBSRC)history.h
+HISTORY_OBJ = $(RLIBSRC)history.o
+HISTORY_DOC = $(RLIBDOC)hist.texinfo $(RLIBDOC)hsuser.texinfo \
+ $(RLIBDOC)hstech.texinfo
+
+/**/# The source, object and documentation of the GNU Readline library.
+/**/# The source to the history library is inherently part of this.
+READLINE_SOURCE = $(RLIBSRC)readline.c $(RLIBSRC)readline.h\
+ $(RLIBSRC)chardefs.h $(RLIBSRC)keymaps.h\
+ $(RLIBSRC)funmap.c $(RLIBSRC)emacs_keymap.c\
+ $(RLIBSRC)vi_keymap.c $(RLIBSRC)keymaps.c\
+ $(RLIBSRC)vi_mode.c $(GLIBSRC)tilde.c $(HISTORY_SOURCE)
+
+READLINE_OBJ = $(RLIBSRC)readline.o $(RLIBSRC)funmap.o \
+ $(RLIBSRC)keymaps.o $(GLIBSRC)tilde.o $(HISTORY_OBJ)
+
+READLINE_DOC = $(RLIBDOC)rlman.texinfo $(RLIBDOC)rluser.texinfo \
+ $(RLIBDOC)rltech.texinfo
+
+READLINE_DOC_SUPPORT = $(RLIBDOC)Makefile $(RLIBDOC)texinfo.tex \
+ $(RLIBDOC)texindex.c $(RLIBDOC)readline.dvi \
+ $(RLIBDOC)readline.info $(RLIBDOC)history.dvi \
+ $(RLIBDOC)history.info
+
+/**/# This has to be written funny to avoid looking like a C comment starter.
+READLINE_EXAMPLES = $(RLIBSRC)examples/[a-zA-Z]*.[ch] \
+ $(RLIBSRC)examples/Makefile $(RLIBSRC)examples/Inputrc
+
+/**/# Support files for GNU Readline.
+READLINE_SUPPORT = $(RLIBSRC)Makefile $(RLIBSRC)ChangeLog $(RLIBSRC)COPYING \
+ $(READLINE_EXAMPLES) $(READLINE_DOC_SUPPORT)
+
+#if defined (HAVE_READLINE_SOURCE)
+READLINE_CFLAGS = $(DEBUG_FLAGS) $(SIGHANDLER) $(ALLOCA_CFLAGS) \
+ $(SYSDEP) -D$(MACHINE) -D$(OS) $(UNISTD)
+#define READLINE_LIBRARY ./lib/readline/libreadline.a
+#else
+#define READLINE_LIBRARY -lreadline
+#endif
+
+#if defined (USE_GNU_TERMCAP)
+#define HAVE_TERMCAP_SOURCE
+/**/# The source, object and documentation for the GNU Termcap library.
+TLIBSRC = $(LIBSRC)termcap/
+#define TERMCAP_LIBRARY ./lib/termcap/libtermcap.a
+
+TERMCAP_SOURCE = $(TLIBSRC)termcap.c $(TLIBSRC)tparam.c
+TERMCAP_OBJ = $(TLIBSRC)libtermcap.a
+TERMCAP_DOC = $(TLIBSRC)termcap.texinfo
+TERMCAP_SUPPORT = $(TLIBSRC)Makefile $(TLIBSRC)ChangeLog
+TERMCAP_LDFLAGS = $(SEARCH_LIB)$(TLIBSRC)
+#endif /* USE_GNU_TERMCAP */
+
+/* The glob library is always used. */
+#define USE_GLOB_LIBRARY
+
+/* If we have the source to the glob library, then compile it. */
+#if defined (USE_GLOB_LIBRARY)
+GLIBSRC = $(LIBSRC)glob/
+#define GLOB_LIBRARY ./lib/glob/libglob.a
+
+/* Sometime in the future, we will have the finished GNU C Library globber. */
+#if defined (POSIX_GLOBBING_SOURCE)
+GLOB_SOURCE = $(GLIBSRC)glob.c $(GLIBSRC)fnmatch.c $(GLIBSRC)tilde.c \
+ $(GLIBSRC)glob.h $(GLIBSRC)ndir.h $(GLIBSRC)fnmatch.h
+#else
+GLOB_SOURCE = $(GLIBSRC)glob.c $(GLIBSRC)tilde.c \
+ $(GLIBSRC)fnmatch.c $(GLIBSRC)fnmatch.h
+#endif /* POSIX_GLOBBING_SOURCE */
+
+GLOB_OBJ = $(GLIBSRC)libglob.a
+GLOB_DOC = $(GLIBSRC)glob.texinfo
+GLOB_SUPPORT = $(GLIBSRC)Makefile $(GLIBSRC)ChangeLog
+GLOB_LDFLAGS = $(SEARCH_LIB)$(GLIBSRC)
+GLOB_LIB = -lglob
+#endif /* USE_GLOB_LIBRARY */
+
+/**/# Declare all of the sources for the libraries that we have.
+LIBRARY_SOURCE = $(READLINE_SOURCE) $(TERMCAP_SOURCE) $(GLOB_SOURCE)
+LIBRARY_DOC = $(READLINE_DOC) $(HISTORY_DOC) $(TERMCAP_DOC) $(GLOB_DOC)
+LIBRARY_SUPPORT = $(READLINE_SUPPORT) $(TERMCAP_SUPPORT) $(GLOB_SUPPORT)
+LIBRARY_TAR = $(LIBRARY_SOURCE) $(LIBRARY_DOC) $(LIBRARY_SUPPORT)
+
+#if defined (READLINE)
+/**/# You wish to compile with the line editing features installed.
+READLINE_LIB = -lreadline
+
+/**/# You only need termcap for readline.
+#if defined (USE_TERMCAP_EMULATION)
+TERMCAP_LIB = -lcurses
+#else
+TERMCAP_LIB = -ltermcap
+#endif /* USE_TERMCAP_EMULATION */
+
+/**/# Directory list for -L so that the link editor (ld) can find -lreadline.
+#if defined (HAVE_READLINE_SOURCE)
+READLINE_LDFLAGS = $(SEARCH_LIB)$(RLIBSRC) $(TERMCAP_LDFLAGS)
+#else
+READLINE_LDFLAGS = $(TERMCAP_LDFLAGS) $(SEARCH_LIB)/usr/gnu/lib \
+ $(SEARCH_LIB)/usr/local/lib
+#endif /* HAVE_READLINE_SOURCE */
+
+/**/# The source and object of the bash<->readline interface code.
+RL_SUPPORT_SRC = bashline.c
+RL_SUPPORT_OBJ = bashline.o
+#endif /* READLINE */
+
+#if defined (REQUIRED_LIBRARIES)
+/**/# Locally required libraries.
+LOCAL_LIBS = REQUIRED_LIBRARIES
+#endif /* REQUIRED_LIBRARIES */
+
+/**/# The order is important. Most dependent first.
+LIBRARIES = $(READLINE_LIB) $(TERMCAP_LIB) $(GLOB_LIB) $(LOCAL_LIBS)
+
+#if defined (HAVE_TERMCAP_SOURCE)
+TERMCAP_DEP = TERMCAP_LIBRARY
+#endif
+
+#if defined (HAVE_READLINE_SOURCE)
+READLINE_DEP = READLINE_LIBRARY
+#endif
+
+#if defined (USE_GLOB_LIBRARY)
+GLOB_DEP = GLOB_LIBRARY
+#else
+GLOBC = glob.c tilde.c
+GLOBO = glob.o tilde.o
+#endif /* USE_GLOB_LIBRARY */
+
+/**/# Source files for libraries that Bash depends on.
+LIBDEP = $(READLINE_DEP) $(TERMCAP_DEP) $(GLOB_DEP)
+
+/**/# Rules for cleaning the readline and termcap sources.
+#if defined (HAVE_READLINE_SOURCE)
+# define CLEAN_READLINE (cd $(RLIBSRC); $(MAKE) $(MFLAGS) clean)
+#else
+# define CLEAN_READLINE :
+#endif /* HAVE_READLINE_SOURCE */
+
+#if defined (HAVE_TERMCAP_SOURCE)
+# define CLEAN_TERMCAP (cd $(TLIBSRC); $(MAKE) $(MFLAGS) clean)
+#else
+# define CLEAN_TERMCAP :
+#endif /* HAVE_TERMCAP_SOURCE */
+
+#if defined (USE_GLOB_LIBRARY)
+# define CLEAN_GLOB (cd $(GLIBSRC); $(MAKE) $(MFLAGS) clean)
+#else
+# define CLEAN_GLOB :
+#endif /* USE_GLOB_LIBRARY */
+
+BUILTINS_LIB = builtins/libbuiltins.a
+
+/**/# The main source code for the Bourne Again SHell.
+CSOURCES = shell.c parse.y general.c make_cmd.c print_cmd.c y.tab.c \
+ dispose_cmd.c execute_cmd.c variables.c $(GLOBC) version.c \
+ expr.c copy_cmd.c flags.c subst.c hash.c mailcheck.c \
+ test.c trap.c jobs.c nojobs.c $(ALLOC_FILES) braces.c \
+ unwind_prot.c siglist.c getcwd.c $(RL_SUPPORT_SRC) error.c
+
+HSOURCES = shell.h flags.h trap.h hash.h jobs.h builtins.h alias.c y.tab.h \
+ general.h variables.h config.h $(ALLOC_HEADERS) alias.h maxpath.h \
+ quit.h machines.h posixstat.h filecntl.h unwind_prot.h parser.h \
+ command.h input.h error.h
+
+SOURCES = $(CSOURCES) $(HSOURCES) $(BUILTIN_DEFS)
+
+/**/# Matching object files.
+OBJECTS = shell.o y.tab.o general.o make_cmd.o print_cmd.o $(GLOBO) \
+ dispose_cmd.o execute_cmd.o variables.o copy_cmd.o error.o \
+ expr.o flags.o jobs.o subst.o hash.o mailcheck.o test.o \
+ trap.o alias.o $(MALLOC) $(ALLOCA) braces.o unwind_prot.o \
+ $(SIGLIST) $(GETCWD) version.o $(RL_SUPPORT_OBJ) $(BUILTINS_LIB)
+
+/**/# Where the source code of the shell builtins resides.
+DEFDIR = builtins/
+BUILTIN_DEFS = $(DEFDIR)alias.def $(DEFDIR)bind.def $(DEFDIR)break.def \
+ $(DEFDIR)builtin.def $(DEFDIR)cd.def $(DEFDIR)colon.def \
+ $(DEFDIR)command.def $(DEFDIR)declare.def \
+ $(DEFDIR)echo.def $(DEFDIR)enable.def $(DEFDIR)eval.def \
+ $(DEFDIR)exec.def $(DEFDIR)exit.def $(DEFDIR)fc.def \
+ $(DEFDIR)fg_bg.def $(DEFDIR)hash.def $(DEFDIR)help.def \
+ $(DEFDIR)history.def $(DEFDIR)jobs.def $(DEFDIR)kill.def \
+ $(DEFDIR)let.def $(DEFDIR)read.def $(DEFDIR)return.def \
+ $(DEFDIR)set.def $(DEFDIR)setattr.def $(DEFDIR)shift.def \
+ $(DEFDIR)source.def $(DEFDIR)suspend.def $(DEFDIR)test.def \
+ $(DEFDIR)times.def $(DEFDIR)trap.def $(DEFDIR)type.def \
+ $(DEFDIR)ulimit.def $(DEFDIR)umask.def $(DEFDIR)wait.def \
+ $(DEFDIR)getopts.def $(DEFDIR)reserved.def
+BUILTIN_C_CODE = $(DEFDIR)mkbuiltins.c $(DEFDIR)common.c \
+ $(DEFDIR)hashcom.h $(GETOPT_SOURCE)
+GETOPT_SOURCE = $(DEFDIR)getopt.c $(DEFDIR)getopt.h
+PSIZE_SOURCE = $(DEFDIR)psize.sh $(DEFDIR)psize.c
+BUILTIN_SUPPORT = $(DEFDIR)Makefile $(DEFDIR)ChangeLog $(PSIZE_SOURCE) \
+ $(BUILTIN_C_CODE)
+
+/**/# Documentation for the shell.
+DOCDIR = ./documentation/
+BASH_TEXINFO = $(DOCDIR)*.texi $(DOCDIR)*.tex $(DOCDIR)texindex.c \
+ $(DOCDIR)*.dvi $(DOCDIR)Makefile
+BASH_MAN = $(DOCDIR)bash.1
+BASHDOCS = $(BASH_TEXINFO) $(BASH_MAN) INSTALL README RELEASE
+DOCUMENTATION = $(BASHDOCS) $(LIBRARY_DOC)
+
+/**/# Some example files demonstrating use of the shell.
+/* This has to be written funny to avoid looking like a comment starter. */
+EXAMPLES = examples/[a-zA-Z]*
+
+ENDIAN_SUPPORT = endian.c
+SDIR = ./support/
+MKTARFILE = $(SDIR)mktarfile
+SCRIPTS_SUPPORT = $(SDIR)mksysdefs $(SDIR)cppmagic $(SDIR)cat-s \
+ $(MKTARFILE) $(SDIR)mail-shell $(SDIR)inform
+
+TEST_SUITE = ./test-suite/
+TEST_SUITE_SUPPORT = $(TEST_SUITE)[a-zA-Z0-9]*
+
+CREATED_SUPPORT = endian.aux endian.h sysdefs.h $(SDIR)getcppsyms
+
+SUPPORT = configure $(ENDIAN_SUPPORT) $(SCRIPTS_SUPPORT) $(BUILTIN_SUPPORT) \
+ COPYING Makefile cpp-Makefile ChangeLog .distribution newversion.c \
+ $(EXAMPLES) $(SDIR)bash.xbm $(SDIR)getcppsyms.c $(TEST_SUITE_SUPPORT)
+
+/**/# BAGGAGE consists of things that you want to keep with the shell for some
+/**/# reason, but do not actually use; old source code, etc.
+BAGGAGE = longest_sig.c
+
+/**/# Things that the world at large needs.
+THINGS_TO_TAR = $(SOURCES) $(LIBRARY_TAR) $(BASHDOCS) $(SUPPORT) $(BAGGAGE)
+
+all: .made
+
+/**/# Keep GNU Make from exporting the entire environment for small machines.
+.NOEXPORT:
+
+.made: $(PROGRAM)
+ cp .machine .made
+
+$(PROGRAM): .build $(OBJECTS) $(LIBDEP) .distribution
+ $(RM) $@
+ $(CC) $(LDFLAGS) $(READLINE_LDFLAGS) $(GLOB_LDFLAGS) \
+ -o $(PROGRAM) $(OBJECTS) $(LIBRARIES)
+
+.build: $(SOURCES) cpp-Makefile newversion.aux
+ if ./newversion.aux -build; then mv -f newversion.h version.h; fi
+ @echo
+ @echo " ***************************************************"
+ @echo " * *"
+ @echo " * Making Bash-`cat .distribution` for a $(MACHINE) running $(OS)."
+ @echo " * *"
+ @echo " ***************************************************"
+ @echo
+ @echo "$(PROGRAM) last made for a $(MACHINE) running $(OS)" >.machine
+
+version.h: newversion.aux
+ if ./newversion.aux -build; then mv -f newversion.h version.h; fi
+
+y.tab.c: parse.y parser.h command.h input.h
+ -if test -f y.tab.h; then mv -f y.tab.h old-y.tab.h; fi
+ @echo "Expect 12 reduce/reduce errors. No Problem."
+ $(BISON) -d parse.y
+ -if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; fi
+
+#if defined (HAVE_READLINE_SOURCE)
+READLINE_LIBRARY: $(READLINE_SOURCE)
+ build_lib_in_dir ($(RLIBSRC))
+#endif /* HAVE_READLINE_SOURCE */
+
+#if defined (HAVE_TERMCAP_SOURCE)
+TERMCAP_LIBRARY: $(TERMCAP_SOURCE)
+ build_lib_in_dir ($(TLIBSRC))
+#endif /* HAVE_TERMCAP_SOURCE */
+
+#if defined (USE_GLOB_LIBRARY)
+GLOB_LIBRARY: $(GLOB_SOURCE)
+ build_lib_in_dir ($(GLIBSRC))
+#endif /* USE_GLOB_LIBRARY */
+
+version.o: version.h version.c
+
+shell.o: shell.h flags.h shell.c posixstat.h filecntl.h endian.h \
+ parser.h
+ $(CC) $(CFG_FLAGS) $(CFLAGS) $(CPPFLAGS) -c shell.c
+
+endian.h: endian.aux
+ ./endian.aux endian.h
+
+endian.aux: endian.c
+ $(CC) $(CFLAGS) -o $@ endian.c
+
+#if defined (USE_GNU_MALLOC)
+/* Note that gcc correctly leaves the output file in the source directory. */
+#if !defined (__GNUC__)
+$(MALLOC): $(MALLOC_DEP)
+ $(CC) -I$(ALLOC_DIR) $(CFLAGS) $(MALLOC_FLAGS) -c $*.c
+ @-mv `basename $*`.o $(MALLOC) 2>/dev/null
+#else
+$(MALLOC): $(MALLOC_DEP)
+ $(CC) -I$(ALLOC_DIR) $(CFLAGS) $(MALLOC_FLAGS) \
+ -o $(MALLOC) -c $*.c
+#endif /* __GNUC__ */
+#endif /* USE_GNU_MALLOC */
+
+#if !defined (HAVE_ALLOCA)
+/* Note that gcc correctly leaves the output file in the source directory. */
+$(ALLOCA): $(ALLOCA_SOURCE)
+ $(CC) -I$(ALLOC_DIR) $(CFLAGS) -c $(ALLOCA_SOURCE)
+ @-mv `basename $*`.o $(ALLOCA) >/dev/null 2>&1
+#endif /* !HAVE_ALLOCA */
+
+variables.o: shell.h hash.h flags.h variables.h variables.c
+ $(CC) -c $(CFLAGS) $(CPPFLAGS) $(HOSTTYPE_DECL) variables.c
+
+builtins/libbuiltins.a: $(BUILTIN_DEFS) $(BUILTIN_C_CODE)
+ build_builtins_in_dir ($(DEFDIR))
+
+/* Dependencies for the main bash source. */
+shell.h: general.h variables.h config.h quit.h
+jobs.h: endian.h quit.h
+variables.h: hash.h
+braces.o: general.h
+copy_cmd.o: shell.h hash.h
+copy_cmd.o: general.h variables.h config.h quit.h
+dispose_cmd.o: shell.h
+dispose_cmd.o: general.h variables.h config.h quit.h
+error.o: error.h
+execute_cmd.o: shell.h y.tab.h posixstat.h flags.h jobs.h
+execute_cmd.o: general.h variables.h config.h quit.h hash.h endian.h
+execute_cmd.o: unwind_prot.h
+expr.o: shell.h hash.h
+expr.o: general.h variables.h config.h quit.h
+flags.o: flags.h config.h general.h quit.h
+general.o: shell.h maxpath.h
+general.o: general.h variables.h config.h quit.h
+hash.o: shell.h hash.h
+hash.o: general.h variables.h config.h quit.h
+jobs.o: shell.h hash.h trap.h jobs.h
+jobs.o: general.h variables.h config.h endian.h quit.h
+mailcheck.o: posixstat.h maxpath.h variables.h
+mailcheck.o: hash.h quit.h
+make_cmd.o: shell.h flags.h
+make_cmd.o: general.h variables.h config.h quit.h
+y.tab.o: shell.h flags.h maxpath.h
+y.tab.o: general.h variables.h config.h quit.h
+print_cmd.o: shell.h y.tab.h
+print_cmd.o: general.h variables.h config.h quit.h
+shell.o: shell.h flags.h
+shell.o: general.h variables.h config.h quit.h
+subst.o: shell.h flags.h alias.h jobs.h
+subst.o: general.h variables.h config.h endian.h quit.h
+test.o: posixstat.h
+trap.o: trap.h shell.h hash.h unwind_prot.h
+trap.o: general.h variables.h config.h quit.h
+unwind_prot.o: config.h general.h unwind_prot.h
+
+#if !defined (JOB_CONTROL)
+jobs.o: nojobs.c
+#endif
+
+#if defined (READLINE)
+bashline.o: shell.h hash.h builtins.h
+bashline.o: general.h variables.h config.h quit.h alias.h
+#endif
+
+/* Dependencies which rely on the user using the source to READLINE. */
+#if defined (HAVE_READLINE_SOURCE)
+bashline.o: $(RLIBSRC)chardefs.h $(RLIBSRC)history.h $(RLIBSRC)readline.h
+bashline.o: $(RLIBSRC)keymaps.h $(RLIBSRC)history.h
+y.tab.o: $(RLIBSRC)keymaps.h $(RLIBSRC)chardefs.h $(RLIBSRC)history.h
+y.tab.o: $(RLIBSRC)readline.h
+subst.o: $(RLIBSRC)history.h
+#endif /* HAVE_READLINE_SOURCE */
+
+#if defined (USE_GLOB_LIBRARY)
+subst.o: $(GLIBSRC)fnmatch.h
+execute_cmd.o: $(GLIBSRC)fnmatch.h
+# if defined (POSIX_GLOBBING_SOURCE)
+subst.o: $(GLIBSRC)glob.h
+# endif /* POSIX_GLOBBING_SOURCE */
+#endif /* USE_GLOB_LIBRARY */
+
+$(PROGRAM).tar: $(THINGS_TO_TAR) .distribution
+ @$(MKTARFILE) $(PROGRAM) `cat .distribution` $(THINGS_TO_TAR)
+
+$(PROGRAM).tar.Z: $(PROGRAM).tar
+ compress -f $(PROGRAM).tar
+
+clone: $(THINGS_TO_TAR)
+ @$(MKTARFILE) +notar $(MACHINE) $(OS) $(THINGS_TO_TAR)
+
+install: .made
+ -if [ -f $(DESTDIR)/$(PROGRAM) ]; \
+ then mv $(DESTDIR)/$(PROGRAM) $(DESTDIR)/$(PROGRAM).old; \
+ fi
+ cp $(PROGRAM) $(DESTDIR)/$(PROGRAM)
+ $(RM) installed-$(PROGRAM)
+ ln -s $(DESTDIR)/$(PROGRAM) installed-$(PROGRAM)
+
+mailable: distribution
+ /bin/rm -rf uuencoded
+ mkdir uuencoded
+ $(SHELL) -c 'f=$(PROGRAM)-`cat .distribution`.tar.Z;uuencode $$f $$f | split -800 - uuencoded/$$f.uu.'
+
+.distribution:
+ ./newversion.aux -dist `$(PROGRAM) -c 'echo $$BASH_VERSION'`
+
+distribution: $(PROGRAM) $(PROGRAM).tar.Z .distribution
+ @echo cp $(PROGRAM).tar.Z $(PROGRAM)-`cat .distribution`.tar.Z
+ @cp $(PROGRAM).tar.Z $(PROGRAM)-`cat .distribution`.tar.Z
+
+newversion.aux: newversion.c
+ $(CC) $(DEBUG_FLAGS) -o newversion.aux newversion.c -lm
+
+newversion: newversion.aux
+ $(RM) .build
+ ./newversion.aux -dist
+ mv -f newversion.h version.h
+ $(MAKE) $(MFLAGS)
+
+documentation: documentation-frob
+ (cd $(DOCDIR); make)
+
+documentation-frob:
+
+tags: $(SOURCES) $(BUILTIN_C_CODE) $(LIBRARY_SOURCE)
+ etags $(SOURCES) $(BUILTIN_C_CODE) $(LIBRARY_SOURCE)
+
+INDEX: $(SOURCES) $(BUILTIN_C_CODE) $(LIBRARY_SOURCE)
+ ctags -x $(SOURCES) $(BUILTIN_C_CODE) $(LIBRARY_SOURCE) > $@
+
+clean:
+ $(RM) $(OBJECTS) $(PROGRAM) aix-Makefile *.aux
+ $(RM) .build .made version.h
+ $(RM) $(CREATED_SUPPORT) bash-Makefile
+ (cd $(DOCDIR); $(MAKE) $(MFLAGS) clean)
+ (cd builtins; $(MAKE) $(MFLAGS) clean)
+ CLEAN_READLINE;CLEAN_TERMCAP;CLEAN_GLOB
+
+/**/# Here is a convenient rule when you arrive at a new site and wish to
+/**/# install bash on several different architectures. It creates a new
+/**/# directory to hold the results of compilatation. The directory is
+/**/# named MACHINE-OS.
+architecture: $(MACHINE)-$(OS)/$(PROGRAM)
+
+$(MACHINE)-$(OS):
+ -mkdir $(MACHINE)-$(OS)
+
+$(MACHINE)-$(OS)/$(PROGRAM): $(MACHINE)-$(OS) $(PROGRAM)
+ mv $(PROGRAM) $(MACHINE)-$(OS)
+ mv sysdefs.h $(MACHINE)-$(OS)
+ mv $(SDIR)getcppsyms $(MACHINE)-$(OS)
+ $(MAKE) $(MFLAGS) clean