Imported from ../bash-2.05b.tar.gz.
[platform/upstream/bash.git] / Makefile.in
index 5462426..a3dcd7e 100644 (file)
@@ -1,5 +1,21 @@
-# Makefile for bash-2.02, version 2.84
+# Makefile for bash-2.05b, version 2.142
 #
+# Copyright (C) 1996-2002 Free Software Foundation, Inc.
+
+# This program 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 2, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+
 # Make sure the first target in the makefile is the right one
 all: .made
 
@@ -11,14 +27,20 @@ bindir = @bindir@
 libdir = @libdir@
 infodir = @infodir@
 includedir = @includedir@
+datadir = @datadir@
 
 mandir = @mandir@
 manpfx = man
 
-man1ext = 1
-man1dir = $(mandir)/$(manpfx)$(man1ext)
-man3ext = 3
-man3dir = $(mandir)/$(manpfx)$(man3ext)
+man1ext = .1
+man1dir = $(mandir)/$(manpfx)1
+man3ext = .3
+man3dir = $(mandir)/$(manpfx)3
+
+htmldir = @htmldir@
+
+# Support an alternate destination root directory for package building
+DESTDIR =
 
 topdir = @top_srcdir@
 BUILD_DIR = @BUILD_DIR@
@@ -29,18 +51,19 @@ VPATH = .:@srcdir@
 CC = @CC@
 CC_FOR_BUILD = @CC_FOR_BUILD@
 YACC = @YACC@
-SHELL=/bin/sh
+SHELL = @MAKE_SHELL@
 CP = cp
 RM = rm -f
 AR = @AR@
+ARFLAGS = @ARFLAGS@
 RANLIB = @RANLIB@
 
 INSTALL = @INSTALL@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_DATA = @INSTALL_DATA@
-
-COMPRESS = gzip
-COMPRESS_EXT = .gz
+INSTALLMODE= -m 0755
+INSTALLMODE2 = -m 0555
 
 TESTSCRIPT = @TESTSCRIPT@
 
@@ -55,46 +78,65 @@ PURIFY = @PURIFY@
        $(RM) $@
        $(CC) $(CCFLAGS) -c $<
 
+EXEEXT = @EXEEXT@
+OBJEXT = @OBJEXT@
+
 # The name of this program and some version information.
-Program = bash
+VERSPROG = bashversion$(EXEEXT)
+VERSOBJ = bashversion.$(OBJEXT)
+
+Program = bash$(EXEEXT)
 Version = @BASHVERS@
-PatchLevel = @BASHPATCH@
-RELSTATUS = release
+PatchLevel = `$(BUILD_DIR)/$(VERSPROG) -p`
+RELSTATUS = @RELSTATUS@
 
 Machine = @host_cpu@
 OS = @host_os@
+VENDOR = @host_vendor@
 MACHTYPE = @host@
 
+# comment out for release
+DEBUG = @DEBUG@
+MALLOC_DEBUG = @MALLOC_DEBUG@
+
 THIS_SH = $(BUILD_DIR)/$(Program)
 
 # PROFILE_FLAGS is either -pg, to generate profiling info for use
 # with gprof, or nothing (the default).
 PROFILE_FLAGS= @PROFILE_FLAGS@
 
-# The GNU coding standards don't recognize the possibility that
-# other information besides optimization and debugging might be
-# passed to cc.  A different name should have been used.
 CFLAGS = @CFLAGS@
+CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
 CPPFLAGS = @CPPFLAGS@
-LOCAL_CFLAGS = @LOCAL_CFLAGS@
+CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
+LOCAL_CFLAGS = @LOCAL_CFLAGS@ ${DEBUG}
 DEFS = @DEFS@
 LOCAL_DEFS = @LOCAL_DEFS@
+
 LOCAL_LIBS = @LOCAL_LIBS@
-LIBS = $(BUILTINS_LIB) $(LIBRARIES) $(LOCAL_LIBS) @LIBS@
-LDFLAGS = @LDFLAGS@ $(LOCAL_LDFLAGS) $(PROFILE_FLAGS) $(CFLAGS)
+LIBS = $(BUILTINS_LIB) $(LIBRARIES) @LIBS@
+STATIC_LD = @STATIC_LD@
 LOCAL_LDFLAGS = @LOCAL_LDFLAGS@
 
-SYSTEM_FLAGS = -DPROGRAM='"$(Program)"' -DHOSTTYPE='"$(Machine)"' -DOSTYPE='"$(OS)"' -DMACHTYPE='"$(MACHTYPE)"'
+SYSTEM_FLAGS = -DPROGRAM='"$(Program)"' -DCONF_HOSTTYPE='"$(Machine)"' -DCONF_OSTYPE='"$(OS)"' -DCONF_MACHTYPE='"$(MACHTYPE)"' -DCONF_VENDOR='"$(VENDOR)"'
+
+BASE_CCFLAGS = $(PROFILE_FLAGS) $(SYSTEM_FLAGS) $(LOCAL_DEFS) \
+         $(DEFS) $(LOCAL_CFLAGS) $(INCLUDES)
+
+CCFLAGS = $(BASE_CCFLAGS) $(CPPFLAGS) $(CFLAGS)
+
+CCFLAGS_FOR_BUILD = $(BASE_CCFLAGS) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD)
 
-CCFLAGS        = $(PROFILE_FLAGS) $(SYSTEM_FLAGS) $(LOCAL_DEFS) \
-         $(DEFS) $(LOCAL_CFLAGS) $(CPPFLAGS) $(INCLUDES) $(CFLAGS)
+LDFLAGS = @LDFLAGS@ $(STATIC_LD) $(LOCAL_LDFLAGS) $(PROFILE_FLAGS) $(CFLAGS)
+LDFLAGS_FOR_BUILD = $(LDFLAGS)
 
-INCLUDES = -I. -I$(srcdir) -I$(LIBSRC)
+INCLUDES = -I. @RL_INCLUDE@ -I$(srcdir) -I$(BASHINCDIR) -I$(LIBSRC)
 
-GCC_LINT_FLAGS = -ansi -Wall -Wshadow -Wpointer-arith -Wcast-qual \
-                -Wwrite-strings -Werror -Wstrict-prototypes \
-                -Wmissing-prototypes
-GCC_LINT_CFLAGS = $(CCFLAGS) $(GCC_LINT_FLAGS)
+GCC_LINT_FLAGS = -Wall -Wshadow -Wpointer-arith -Wcast-qual \
+                -Wcast-align -Wstrict-prototypes -Wconversion \
+                -Wmissing-prototypes -Wtraditional -Wredundant-decls -pedantic
+
+GCC_LINT_CFLAGS = $(BASE_CCFLAGS) $(CPPFLAGS) $(GCC_LINT_FLAGS)
 
 #
 # Support libraries
@@ -105,7 +147,7 @@ dot = .
 LIBSUBDIR = lib
 LIBSRC = $(srcdir)/$(LIBSUBDIR)
 
-SUBDIR_INCLUDES = -I. -I$(topdir) -I$(topdir)/$(LIBSUBDIR) -I$(includedir)
+SUBDIR_INCLUDES = -I. @RL_INCLUDE@ -I$(topdir) -I$(topdir)/$(LIBSUBDIR)
 
 # the bash library
 # the library is a mix of functions that the C library does not provide on
@@ -114,13 +156,30 @@ SH_LIBSRC = $(LIBSRC)/sh
 SH_LIBDIR = $(dot)/${LIBSUBDIR}/sh
 SH_ABSSRC = ${topdir}/${SH_LIBSRC}
 
-SHLIB_SOURCE = ${SH_LIBSRC}/clktck.c ${SH_LIBSRC}/getcwd.c \
-              ${SH_LIBSRC}/getenv.c ${SH_LIBSRC}/oslib.c \
-              ${SH_LIBSRC}/setlinebuf.c \
-              ${SH_LIBSRC}/strcasecmp.c ${SH_LIBSRC}/strerror.c \
-              ${SH_LIBSRC}/strtod.c ${SH_LIBSRC}/strtol.c \
-              ${SH_LIBSRC}/strtoul.c ${SH_LIBSRC}/vprint.c \
-              ${SH_LIBSRC}/itos.c
+SHLIB_SOURCE = ${SH_LIBSRC}/clktck.c ${SH_LIBSRC}/getcwd.c \
+               ${SH_LIBSRC}/getenv.c ${SH_LIBSRC}/oslib.c \
+               ${SH_LIBSRC}/setlinebuf.c \
+               ${SH_LIBSRC}/strcasecmp.c ${SH_LIBSRC}/strerror.c \
+               ${SH_LIBSRC}/strtod.c ${SH_LIBSRC}/strtol.c \
+               ${SH_LIBSRC}/strtoul.c ${SH_LIBSRC}/vprint.c \
+               ${SH_LIBSRC}/itos.c ${SH_LIBSRC}/rename.c \
+               ${SH_LIBSRC}/zread.c ${SH_LIBSRC}/zwrite.c \
+               ${SH_LIBSRC}/shtty.c ${SH_LIBSRC}/inet_aton.c \
+               ${SH_LIBSRC}/netopen.c ${SH_LIBSRC}/strpbrk.c \
+               ${SH_LIBSRC}/timeval.c ${SH_LIBSRC}/clock.c \
+               ${SH_LIBSRC}/makepath.c ${SH_LIBSRC}/pathcanon.c \
+               ${SH_LIBSRC}/pathphys.c ${SH_LIBSRC}/stringlist.c \
+               ${SH_LIBSRC}/stringvec.c ${SH_LIBSRC}/tmpfile.c \
+               ${SH_LIBSRC}/spell.c ${SH_LIBSRC}/strtrans.c \
+               ${SH_LIBSRC}/strindex.c ${SH_LIBSRC}/shquote.c \
+               ${SH_LIBSRC}/snprintf.c ${SH_LIBSRC}/mailstat.c \
+               ${SH_LIBSRC}/fmtulong.c ${SH_LIBSRC}/fmtullong.c \
+               ${SH_LIBSRC}/strtoll.c ${SH_LIBSRC}/strtoull.c \
+               ${SH_LIBSRC}/strtoimax.c ${SH_LIBSRC}/strtoumax.c \
+               ${SH_LIBSRC}/fmtumax.c ${SH_LIBSRC}/netconn.c \
+               ${SH_LIBSRC}/mktime.c ${SH_LIBSRC}/strftime.c \
+               ${SH_LIBSRC}/memset.c ${SH_LIBSRC}/xstrchr.c \
+               ${SH_LIBSRC}/zcatfd.c
 
 SHLIB_LIB = -lsh
 SHLIB_LIBNAME = libsh.a
@@ -131,9 +190,11 @@ SHLIB_DEP = ${SHLIB_LIBRARY}
 # we assume for now that readline source is being shipped with bash
 RL_LIBSRC = $(LIBSRC)/readline
 RL_LIBDOC = $(RL_LIBSRC)/doc
-RL_LIBDIR = $(dot)/$(LIBSUBDIR)/readline
+RL_LIBDIR = @RL_LIBDIR@
 RL_ABSSRC = ${topdir}/$(RL_LIBDIR)
 
+RL_INCLUDEDIR = @RL_INCLUDEDIR@
+
 READLINE_LIB = @READLINE_LIB@
 READLINE_LIBRARY = $(RL_LIBDIR)/libreadline.a
 READLINE_LDFLAGS = -L${RL_LIBDIR}
@@ -145,6 +206,8 @@ READLINE_SOURCE     = $(RL_LIBSRC)/rldefs.h $(RL_LIBSRC)/rlconf.h \
                  $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/keymaps.h \
                  $(RL_LIBSRC)/history.h $(RL_LIBSRC)/histlib.h \
                  $(RL_LIBSRC)/posixstat.h $(RL_LIBSRC)/tilde.h \
+                 $(RL_LIBSRC)/rlstdc.h ${RL_LIBSRC}/xmalloc.h \
+                 $(RL_LIBSRC)/rlshell.h ${RL_LIBSRC}/rlprivate.h \
                  $(RL_LIBSRC)/funmap.c $(RL_LIBSRC)/emacs_keymap.c \
                  $(RL_LIBSRC)/search.c $(RL_LIBSRC)/vi_keymap.c \
                  $(RL_LIBSRC)/keymaps.c $(RL_LIBSRC)/parens.c \
@@ -153,11 +216,12 @@ READLINE_SOURCE   = $(RL_LIBSRC)/rldefs.h $(RL_LIBSRC)/rlconf.h \
                  $(RL_LIBSRC)/rltty.c $(RL_LIBSRC)/complete.c \
                  $(RL_LIBSRC)/bind.c $(RL_LIBSRC)/isearch.c \
                  $(RL_LIBSRC)/display.c $(RL_LIBSRC)/signals.c \
-                 $(RL_LIBSRC)/util.c $(RL_LIBSRC)/kill.c \
+                 $(RL_LIBSRC)/util.c $(RL_LIBSRC)/kill.c $(RL_LIBSRC)/text.c \
                  $(RL_LIBSRC)/undo.c $(RL_LIBSRC)/macro.c \
                  $(RL_LIBSRC)/terminal.c $(RL_LIBSRC)/nls.c \
                  $(RL_LIBSRC)/input.c $(RL_LIBSRC)/xmalloc.c \
-                 $(RL_LIBSRC)/shell.c \
+                 $(RL_LIBSRC)/shell.c $(RL_LIBSRC)/savestring.c \
+                 $(RL_LIBSRC)/misc.c $(RL_LIBSRC)/compat.c \
                  $(RL_LIBSRC)/histexpand.c $(RL_LIBSRC)/history.c \
                  $(RL_LIBSRC)/histsearch.c $(RL_LIBSRC)/histfile.c
 
@@ -171,12 +235,13 @@ READLINE_OBJ      = $(RL_LIBDIR)/readline.o $(RL_LIBDIR)/funmap.o \
                  $(RL_LIBDIR)/kill.o $(RL_LIBDIR)/undo.o $(RL_LIBDIR)/nls.o \
                  $(RL_LIBDIR)/macro.o $(RL_LIBDIR)/input.o \
                  $(RL_LIBDIR)/terminal.o $(RL_LIBDIR)/callback.o \
-                 $(RL_LIBDIR)/shell.o \
+                 $(RL_LIBDIR)/shell.o $(RL_LIBDIR)/savestring.o \
+                 $(RL_LIBDIR)/compat.o \
                  $(RL_LIBDIR)/history.o $(RL_LIBDIR)/histexpand.o \
                  $(RL_LIBDIR)/histsearch.o $(RL_LIBDIR)/histfile.o
 
 HIST_LIBSRC = $(LIBSRC)/readline
-HIST_LIBDIR = $(dot)/$(LIBSUBDIR)/readline
+HIST_LIBDIR = @HIST_LIBDIR@
 HIST_ABSSRC = ${topdir}/$(HIST_LIBDIR)
 
 HISTORY_LIB = @HISTORY_LIB@
@@ -215,9 +280,12 @@ GLOB_LIBRARY = $(GLOB_LIBDIR)/libglob.a
 GLOB_LDFLAGS = -L$(GLOB_LIBDIR)
 GLOB_DEP = $(GLOB_LIBRARY)
 
-GLOB_SOURCE = $(GLOB_LIBSRC)/glob.c $(GLOB_LIBSRC)/fnmatch.c \
-             $(GLOB_LIBSRC)/glob.h $(GLOB_LIBSRC)/fnmatch.h
-GLOB_OBJ    = $(GLOB_LIBDIR)/glob.o $(GLOB_LIBDIR)/fnmatch.o
+GLOB_SOURCE = $(GLOB_LIBSRC)/glob.c $(GLOB_LIBSRC)/strmatch.c \
+             $(GLOB_LIBSRC)/smatch.c $(GLOB_LIBSRC)/xmbsrtowcs.c \
+             $(GLOB_LIBSRC)/glob_loop.c $(GLOB_LIBSRC)/sm_loop.c \
+             $(GLOB_LIBSRC)/glob.h $(GLOB_LIBSRC)/strmatch.h
+GLOB_OBJ    = $(GLOB_LIBDIR)/glob.o $(GLOB_LIBDIR)/strmatch.o \
+             $(GLOB_LIBDIR)/smatch.o $(GLOB_LIBDIR)/xmbsrtowcs.o
 
 # The source, object and documentation for the GNU Tilde library.
 TILDE_LIBSRC = $(LIBSRC)/tilde
@@ -243,33 +311,43 @@ ALLOC_LIBDIR = $(dot)/$(LIBSUBDIR)/malloc
 ALLOC_ABSSRC = ${topdir}/$(ALLOC_LIBDIR)
 
 MALLOC_SRC = @MALLOC_SRC@
-MALLOC_SOURCE = ${ALLOC_LIBSRC}/${MALLOC_SRC}
-MALLOC_CFLAGS = -DRCHECK -Dbotch=programming_error
+MALLOC_OTHERSRC = ${ALLOC_LIBSRC}/trace.c ${ALLOC_LIBSRC}/stats.c \
+                 ${ALLOC_LIBSRC}/table.c ${ALLOC_LIBSRC}/watch.c
+MALLOC_SOURCE = ${ALLOC_LIBSRC}/${MALLOC_SRC} ${MALLOC_OTHERSRC}
+MALLOC_CFLAGS = -DRCHECK -Dbotch=programming_error ${MALLOC_DEBUG}
 
-MALLOC_LIB     = -lmalloc
-MALLOC_LIBRARY = $(ALLOC_LIBDIR)/libmalloc.a
-MALLOC_LDFLAGS = -L$(ALLOC_LIBDIR)
-MALLOC_DEP = $(MALLOC_LIBRARY)
+MALLOC_LIB     = @MALLOC_LIB@
+MALLOC_LIBRARY = @MALLOC_LIBRARY@
+MALLOC_LDFLAGS = @MALLOC_LDFLAGS@
+MALLOC_DEP = @MALLOC_DEP@
 
-ALLOC_HEADERS = $(ALLOC_LIBSRC)/getpagesize.h
+ALLOC_HEADERS = $(ALLOC_LIBSRC)/getpagesize.h $(ALLOC_LIBSRC)/shmalloc.h \
+               $(ALLOC_LIBSRC)/imalloc.h $(ALLOC_LIBSRC)/mstats.h \
+               $(ALLOC_LIBSRC)/table.h $(ALLOC_LIBSRC)/watch.h
 
-$(MALLOC_LIBRARY):     ${MALLOC_SOURCE}
+$(MALLOC_LIBRARY):     ${MALLOC_SOURCE} ${ALLOC_HEADERS} config.h
                @(cd $(ALLOC_LIBDIR) && \
                 $(MAKE) $(MFLAGS) \
                 MALLOC_CFLAGS="$(MALLOC_CFLAGS)" ${MALLOC_TARGET} ) || exit 1
 
-BASHPOSIX_LIB     = $(LIBSRC)/posixheaders
-BASHPOSIX_SUPPORT = $(BASHPOSIX_LIB)/posixstat.h $(BASHPOSIX_LIB)/ansi_stdlib.h \
-                   $(BASHPOSIX_LIB)/memalloc.h $(BASHPOSIX_LIB)/stdc.h
+BASHINCDIR = ${srcdir}/include
+BASHINCFILES =  $(BASHINCDIR)/posixstat.h $(BASHINCDIR)/ansi_stdlib.h \
+                $(BASHINCDIR)/filecntl.h $(BASHINCDIR)/posixdir.h \
+                $(BASHINCDIR)/memalloc.h $(BASHINCDIR)/stdc.h \
+                $(BASHINCDIR)/posixjmp.h $(BASHINCDIR)/posixwait.h \
+                $(BASHINCDIR)/posixtime.h $(BASHINCDIR)/systimes.h \
+                $(BASHINCDIR)/unionwait.h $(BASHINCDIR)/maxpath.h \
+                $(BASHINCDIR)/shtty.h $(BASHINCDIR)/typemax.h \
+                $(BASHINCDIR)/ocache.h
 
-LIBRARIES = $(READLINE_LIB) $(HISTORY_LIB) $(TERMCAP_LIB) $(GLOB_LIB) \
-           $(TILDE_LIB) $(MALLOC_LIB) $(SHLIB_LIB) $(LOCAL_LIBS)
+LIBRARIES = $(SHLIB_LIB) $(READLINE_LIB) $(HISTORY_LIB) $(TERMCAP_LIB) $(GLOB_LIB) \
+           $(TILDE_LIB) $(MALLOC_LIB) $(LOCAL_LIBS)
 
-LIBDEP = $(READLINE_DEP) $(TERMCAP_DEP) $(GLOB_DEP) $(HISTORY_DEP) \
-        $(TILDE_DEP) $(MALLOC_DEP) $(SHLIB_DEP)
+LIBDEP = $(SHLIB_DEP) $(READLINE_DEP) $(HISTORY_DEP) $(TERMCAP_DEP) $(GLOB_DEP) \
+        $(TILDE_DEP) $(MALLOC_DEP)
 
-LIBRARY_LDFLAGS = $(READLINE_LDFLAGS) $(HISTORY_LDFLAGS) $(TILDE_LDFLAGS) \
-                 $(GLOB_LDFLAGS) $(MALLOC_LDFLAGS) $(SHLIB_LDFLAGS)
+LIBRARY_LDFLAGS = $(READLINE_LDFLAGS) $(HISTORY_LDFLAGS) $(GLOB_LDFLAGS) \
+                 $(TILDE_LDFLAGS) $(MALLOC_LDFLAGS) $(SHLIB_LDFLAGS)
 
 #
 # The shell itself
@@ -280,18 +358,19 @@ CSOURCES = shell.c eval.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 hashcmd.c hashlib.c mailcheck.c \
           test.c trap.c alias.c jobs.c nojobs.c $(ALLOC_FILES) braces.c \
-          input.c bashhist.c array.c sig.c pathexp.c \
+          input.c bashhist.c array.c arrayfunc.c sig.c pathexp.c \
           unwind_prot.c siglist.c bashline.c bracecomp.c error.c \
-          list.c stringlib.c locale.c findcmd.c redir.c xmalloc.c
+          list.c stringlib.c locale.c findcmd.c redir.c \
+          pcomplete.c pcomplib.c syntax.c xmalloc.c
 
 HSOURCES = shell.h flags.h trap.h hashcmd.h hashlib.h jobs.h builtins.h \
-          general.h variables.h config.h $(ALLOC_HEADERS) alias.h maxpath.h \
-          quit.h posixdir.h posixstat.h filecntl.h unwind_prot.h ansi_stdlib.h \
+          general.h variables.h config.h $(ALLOC_HEADERS) alias.h \
+          quit.h unwind_prot.h syntax.h ${GRAM_H} \
           command.h input.h error.h bashansi.h dispose_cmd.h make_cmd.h \
           subst.h externs.h siglist.h bashhist.h bashline.h bashtypes.h \
-          array.h sig.h mailcheck.h bashtty.h bashintl.h bashjmp.h ${GRAM_H} \
-          posixwait.h execute_cmd.h memalloc.h parser.h pathexp.h pathnames.h \
-          posixjmp.h stdc.h unionwait.h $(BASHPOSIX_SUPPORT)
+          array.h arrayfunc.h sig.h mailcheck.h bashintl.h bashjmp.h \
+          execute_cmd.h parser.h pathexp.h pathnames.h pcomplete.h \
+          $(BASHINCFILES)
 
 SOURCES         = $(CSOURCES) $(HSOURCES) $(BUILTIN_DEFS)
 
@@ -300,14 +379,16 @@ SIGNAMES_H = @SIGNAMES_H@
 
 # object files chosen based on running of configure
 JOBS_O = @JOBS_O@
+SIGLIST_O = @SIGLIST_O@
 
 # Matching object files.
 OBJECTS         = shell.o eval.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 hashcmd.o hashlib.o mailcheck.o \
           trap.o input.o unwind_prot.o pathexp.o sig.o test.o version.o \
-          alias.o array.o braces.o bracecomp.o bashhist.o bashline.o \
-          siglist.o list.o stringlib.o locale.o findcmd.o redir.o xmalloc.o
+          alias.o array.o arrayfunc.o braces.o bracecomp.o bashhist.o \
+          bashline.o $(SIGLIST_O) list.o stringlib.o locale.o findcmd.o redir.o \
+          pcomplete.o pcomplib.o syntax.o xmalloc.o
 
 # Where the source code of the shell builtins resides.
 BUILTIN_SRCDIR=$(srcdir)/builtins
@@ -317,7 +398,8 @@ DEFDIR = $(dot)/builtins
 
 BUILTIN_DEFS = $(DEFSRC)/alias.def $(DEFSRC)/bind.def $(DEFSRC)/break.def \
               $(DEFSRC)/builtin.def $(DEFSRC)/cd.def $(DEFSRC)/colon.def \
-              $(DEFSRC)/command.def $(DEFSRC)/declare.def \
+              $(DEFSRC)/command.def ${DEFSRC}/complete.def \
+              $(DEFSRC)/declare.def \
               $(DEFSRC)/echo.def $(DEFSRC)/enable.def $(DEFSRC)/eval.def \
               $(DEFSRC)/exec.def $(DEFSRC)/exit.def $(DEFSRC)/fc.def \
               $(DEFSRC)/fg_bg.def $(DEFSRC)/hash.def $(DEFSRC)/help.def \
@@ -365,16 +447,19 @@ SIGNAMES_SUPPORT = $(SUPPORT_SRC)mksignames.c
 SUPPORT_SRC = $(srcdir)/support/
 SDIR = $(dot)/support/
 
-TESTS_SUPPORT = recho zecho printenv
-CREATED_SUPPORT = signames.h recho zecho printenv tests/recho tests/zecho \
-                 tests/printenv mksignames lsignames.h
+TESTS_SUPPORT = recho$(EXEEXT) zecho$(EXEEXT) printenv$(EXEEXT)
+CREATED_SUPPORT = signames.h recho$(EXEEXT) zecho$(EXEEXT) printenv$(EXEEXT) \
+                 tests/recho$(EXEEXT) tests/zecho$(EXEEXT) \
+                 tests/printenv$(EXEEXT) mksignames$(EXEEXT) lsignames.h \
+                 mksyntax${EXEEXT} syntax.c $(VERSPROG) $(VERSOBJ) \
+                 buildversion.o
 CREATED_CONFIGURE = config.h config.cache config.status config.log \
                    stamp-h
 CREATED_MAKEFILES = Makefile builtins/Makefile doc/Makefile \
                    lib/readline/Makefile lib/glob/Makefile \
                    lib/sh/Makefile lib/tilde/Makefile lib/malloc/Makefile \
                    lib/termcap/Makefile examples/loadables/Makefile \
-                   support/Makefile
+                   examples/loadables/perl/Makefile support/Makefile
 
 # Keep GNU Make from exporting the entire environment for small machines.
 .NOEXPORT:
@@ -388,16 +473,16 @@ $(Program):  .build $(OBJECTS) $(BUILTINS_DEP) $(LIBDEP)
        ls -l $(Program)
        size $(Program)
 
-.build:        $(SOURCES) config.h Makefile version.h
+.build:        $(SOURCES) config.h Makefile version.h $(VERSPROG)
        @echo
        @echo "   ***********************************************************"
        @echo "   *                                                         *"
-       @echo "   * Making Bash-$(Version).$(PatchLevel)-$(RELSTATUS) for a $(Machine) running $(OS)"
+       @echo "   * `$(BUILD_DIR)/$(VERSPROG) -l`"
        @echo "   *                                                         *"
        @echo "   ***********************************************************"
        @echo
 
-bashbug: $(SUPPORT_SRC)bashbug.sh config.h Makefile
+bashbug: $(SUPPORT_SRC)bashbug.sh config.h Makefile $(VERSPROG)
        @sed -e "s%!MACHINE!%$(Machine)%" -e "s%!OS!%$(OS)%" \
             -e "s%!CFLAGS!%$(CCFLAGS)%" -e "s%!CC!%$(CC)%" \
             -e "s%!RELEASE!%$(Version)%" -e "s%!PATCHLEVEL!%$(PatchLevel)%" \
@@ -410,13 +495,22 @@ strip:    $(Program) .made
        ls -l $(Program)
        size $(Program)
 
+lint:
+       ${MAKE} ${MFLAGS} CFLAGS='${GCC_LINT_FLAGS}' .made
+
 version.h:  $(SOURCES) config.h Makefile 
-       if $(SHELL) $(SUPPORT_SRC)mkversion.sh -b -s $(RELSTATUS) -d $(Version) -p $(PatchLevel) -o newversion.h; \
-       then mv newversion.h version.h; fi;
+       $(SHELL) $(SUPPORT_SRC)mkversion.sh -b -S ${topdir} -s $(RELSTATUS) -d $(Version) -o newversion.h \
+               && mv newversion.h version.h
+
+bashversion$(EXEEXT):  patchlevel.h conftypes.h version.h buildversion.o $(SUPPORT_SRC)bashversion.c
+       $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)bashversion.c buildversion.o
+
+buildversion.o: version.h conftypes.h patchlevel.h $(srcdir)/version.c
+       $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -c -o $@ $(srcdir)/version.c
 
 # old rules
 GRAM_H = parser-built
-y.tab.o: y.tab.c ${GRAM_H} command.h stdc.h input.h
+y.tab.o: y.tab.c ${GRAM_H} command.h ${BASHINCDIR}/stdc.h input.h
 ${GRAM_H}:     y.tab.h
        @-if test -f y.tab.h ; then \
                cmp -s $@ y.tab.h 2>/dev/null || cp -p y.tab.h $@; \
@@ -424,29 +518,30 @@ ${GRAM_H}:        y.tab.h
 y.tab.c y.tab.h: parse.y
 #      -if test -f y.tab.h; then mv -f y.tab.h old-y.tab.h; fi
        $(YACC) -d $(srcdir)/parse.y
+       touch parser-built
 #      -if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; else cp -p y.tab.h ${GRAM_H}; fi
 
 # experimental new rules - work with GNU make but not BSD (or OSF) make
 #y.tab.o: y.tab.c y.tab.h
-#y.tab.c y.tab.h: parse.y command.h stdc.h input.h
+#y.tab.c y.tab.h: parse.y command.h ${BASHINCDIR}/stdc.h input.h
 #      -if test -f y.tab.h; then mv -f y.tab.h old-y.tab.h; fi
 #      $(YACC) -d $(srcdir)/parse.y
 #      -if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; fi
 
 $(READLINE_LIBRARY): config.h $(READLINE_SOURCE)
        @echo making $@ in ${RL_LIBDIR}
-       @(cd ${RL_LIBDIR} && \
-               $(MAKE) $(MFLAGS) libreadline.a) || exit 1
+       @( { test "${RL_LIBDIR}" = "${libdir}" && exit 0; } || \
+               cd ${RL_LIBDIR} && $(MAKE) $(MFLAGS) libreadline.a) || exit 1
 
 $(HISTORY_LIBRARY): config.h $(HISTORY_SOURCE)
        @echo making $@ in ${HIST_LIBDIR}
-       @(cd ${HIST_LIBDIR} && \
-               $(MAKE) $(MFLAGS) libhistory.a) || exit 1
+       @( { test "${HIST_LIBDIR}" = "${libdir}" && exit 0; } || \
+               cd ${HIST_LIBDIR} && $(MAKE) $(MFLAGS) libhistory.a) || exit 1
 
 $(GLOB_LIBRARY): config.h $(GLOB_SOURCE)
        @echo making $@ in ${GLOB_LIBDIR}
        @(cd ${GLOB_LIBDIR} && \
-               $(MAKE) $(MFLAGS) libglob.a) || exit 1
+               $(MAKE) $(MFLAGS) DEBUG=${DEBUG} libglob.a) || exit 1
 
 $(TILDE_LIBRARY): config.h $(TILDE_SOURCE)
        @echo making $@ in ${TILDE_LIBDIR}
@@ -461,14 +556,17 @@ $(TERMCAP_LIBRARY): config.h ${TERMCAP_SOURCE}
 $(SHLIB_LIBRARY): config.h ${SHLIB_SOURCE}
        @echo making $@ in ${SH_LIBDIR}
        @(cd ${SH_LIBDIR} && \
-               $(MAKE) $(MFLAGS) ${SHLIB_LIBNAME}) || exit 1
+               $(MAKE) $(MFLAGS) DEBUG=${DEBUG} ${SHLIB_LIBNAME}) || exit 1
+
+mksignames$(EXEEXT):   $(SUPPORT_SRC)mksignames.c
+       $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)mksignames.c
 
-mksignames:    $(SUPPORT_SRC)mksignames.c
-       $(CC) $(CCFLAGS) $(CPPFLAGS) -o $@ $(SUPPORT_SRC)mksignames.c
+mksyntax$(EXEEXT):     ${srcdir}/mksyntax.c config.h syntax.h ${BASHINCDIR}/chartypes.h
+       ${CC_FOR_BUILD} ${CCFLAGS_FOR_BUILD} -o $@ ${srcdir}/mksyntax.c
 
 # make a list of signals for the local system -- this is done when we're
 # *not* cross-compiling
-lsignames.h:   mksignames
+lsignames.h:   mksignames$(EXEEXT)
        $(RM) $@
        ./mksignames $@
 
@@ -476,15 +574,19 @@ lsignames.h:   mksignames
 signames.h: $(SIGNAMES_H)
        -if cmp -s $(SIGNAMES_H) $@ ; then :; else $(RM) $@ ; $(CP) $(SIGNAMES_H) $@ ; fi
 
-$(BUILTINS_LIBRARY): $(BUILTIN_DEFS) $(BUILTIN_C_SRC) config.h memalloc.h
-       @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) libbuiltins.a ) || exit 1
+syntax.c:      mksyntax${EXEEXT} $(srcdir)/syntax.h 
+       $(RM) $@
+       ./mksyntax -o $@
+
+$(BUILTINS_LIBRARY): $(BUILTIN_DEFS) $(BUILTIN_C_SRC) config.h ${BASHINCDIR}/memalloc.h
+       @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) DEBUG=${DEBUG} libbuiltins.a ) || exit 1
 
 # these require special rules to circumvent make builtin rules
 ${DEFDIR}/common.o:    $(BUILTIN_SRCDIR)/common.c
-       @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) common.o) || exit 1
+       @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) DEBUG=${DEBUG} common.o) || exit 1
 
 ${DEFDIR}/bashgetopt.o:        $(BUILTIN_SRCDIR)/bashgetopt.c
-       @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) bashgetopt.o) || exit 1
+       @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) DEBUG=${DEBUG} bashgetopt.o) || exit 1
 
 ${DEFDIR}/builtext.h: $(BUILTIN_DEFS)
        @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) builtext.h ) || exit 1
@@ -502,15 +604,19 @@ Makefiles makefiles:      config.status $(srcdir)/Makefile.in
 
 config.h:      stamp-h 
 
-stamp-h:       config.status $(srcdir)/config.h.in $(srcdir)/config.h.top $(srcdir)/config.h.bot
+stamp-h:       config.status $(srcdir)/config.h.in $(srcdir)/config-top.h $(srcdir)/config-bot.h
        CONFIG_FILES= CONFIG_HEADERS=config.h $(SHELL) ./config.status
 
 config.status: $(srcdir)/configure
        $(SHELL) ./config.status --recheck
 
 # comment out for distribution
-#$(srcdir)/configure:  $(srcdir)/configure.in $(srcdir)/aclocal.m4
-#      cd $(srcdir) && autoconf
+$(srcdir)/configure:   $(srcdir)/configure.in $(srcdir)/aclocal.m4 $(srcdir)/config.h.in
+       cd $(srcdir) && autoconf
+
+# for chet
+reconfig: force
+       sh $(srcdir)/configure
 
 #newversion:   mkversion
 #      $(RM) .build
@@ -535,30 +641,33 @@ TAGS:     $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE)
 # Targets that actually do things not part of the build
 
 installdirs:
-       @${SHELL} $(SUPPORT_SRC)mkdirs $(bindir)
-       @${SHELL} $(SUPPORT_SRC)mkdirs $(man1dir) $(man3dir)
-       @${SHELL} $(SUPPORT_SRC)mkdirs $(infodir)
+       @${SHELL} $(SUPPORT_SRC)mkdirs $(DESTDIR)$(bindir)
+       @${SHELL} $(SUPPORT_SRC)mkdirs $(DESTDIR)$(man1dir)
+       @${SHELL} $(SUPPORT_SRC)mkdirs $(DESTDIR)$(infodir)
 
 install:       .made installdirs
-       $(INSTALL_PROGRAM) $(Program) $(bindir)/$(Program)
-       $(INSTALL_PROGRAM) bashbug $(bindir)/bashbug
+       $(INSTALL_PROGRAM) $(INSTALLMODE) $(Program) $(DESTDIR)$(bindir)/$(Program)
+       $(INSTALL_SCRIPT) $(INSTALLMODE2) bashbug $(DESTDIR)$(bindir)/bashbug
        -( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) \
                man1dir=$(man1dir) man1ext=$(man1ext) \
                man3dir=$(man3dir) man3ext=$(man3ext) \
-               infodir=$(infodir) $@ )
+               infodir=$(infodir) htmldir=$(htmldir) DESTDIR=$(DESTDIR) $@ )
+       -( cd $(DEFDIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ )
 
 install-strip:
        $(MAKE) $(MFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \
-               prefix=${prefix} exec_prefix=${exec_prefix} install
+               prefix=${prefix} exec_prefix=${exec_prefix} \
+               DESTDIR=$(DESTDIR) install
 
 uninstall:     .made
-       $(RM) $(bindir)/$(Program) $(bindir)/bashbug
+       $(RM) $(DESTDIR)$(bindir)/$(Program) $(DESTDIR)$(bindir)/bashbug
        -( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) \
                man1dir=$(man1dir) man1ext=$(man1ext) \
                man3dir=$(man3dir) man3ext=$(man3ext) \
-               infodir=$(infodir) $@ )
+               infodir=$(infodir) htmldir=$(htmldir) DESTDIR=$(DESTDIR) $@ )
+
+.PHONY: basic-clean clean realclean maintainer-clean distclean mostlyclean maybe-clean
 
-.PHONY: basic-clean clean realclean maintainer-clean distclean mostlyclean
 basic-clean:
        $(RM) $(OBJECTS) $(Program) bashbug
        $(RM) .build .made version.h
@@ -566,61 +675,74 @@ basic-clean:
 clean: basic-clean
        ( cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ )
        ( cd builtins && $(MAKE) $(MFLAGS) $@ )
+       -( cd $(SDIR) && $(MAKE) $(MFLAGS) $@ )
        -(cd $(RL_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(HIST_LIBDIR) && test -f Makefile && $(MAKE) $(MFLAGS) $@)
        -(cd $(TERM_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(GLOB_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(TILDE_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(ALLOC_LIBDIR) && $(MAKE) $(MFLAGS) $@)
+       -(cd $(SH_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        $(RM) $(CREATED_SUPPORT)
 
 mostlyclean: basic-clean
        ( cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ )
        ( cd builtins && $(MAKE) $(MFLAGS) $@ )
+       -( cd $(SDIR) && $(MAKE) $(MFLAGS) $@ )
        -(cd $(RL_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(HIST_LIBDIR) && test -f Makefile && $(MAKE) $(MFLAGS) $@)
        -(cd $(TERM_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(GLOB_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(TILDE_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(ALLOC_LIBDIR) && $(MAKE) $(MFLAGS) $@)
+       -(cd $(SH_LIBDIR) && $(MAKE) $(MFLAGS) $@)
 
-distclean:     basic-clean
+distclean:     basic-clean maybe-clean
        ( cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ )
        ( cd builtins && $(MAKE) $(MFLAGS) $@ )
+       -( cd $(SDIR) && $(MAKE) $(MFLAGS) $@ )
        -(cd $(RL_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(HIST_LIBDIR) && test -f Makefile && $(MAKE) $(MFLAGS) $@)
        -(cd $(TERM_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(GLOB_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(TILDE_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(ALLOC_LIBDIR) && $(MAKE) $(MFLAGS) $@)
+       -(cd $(SH_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        $(RM) $(CREATED_CONFIGURE) tags TAGS 
        $(RM) $(CREATED_SUPPORT) Makefile $(CREATED_MAKEFILES)
 
 maintainer-clean:      basic-clean
        @echo This command is intended for maintainers to use.
        @echo It deletes files that may require special tools to rebuild.
-       $(RM) y.tab.c y.tab.h parser-built.h tags TAGS
+       $(RM) y.tab.c y.tab.h parser-built tags TAGS
        ( cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ )
        ( cd builtins && $(MAKE) $(MFLAGS) $@ )
+       ( cd $(SDIR) && $(MAKE) $(MFLAGS) $@ )
        -(cd $(RL_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(HIST_LIBDIR) && test -f Makefile && $(MAKE) $(MFLAGS) $@)
        -(cd $(TERM_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(GLOB_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(TILDE_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        -(cd $(ALLOC_LIBDIR) && $(MAKE) $(MFLAGS) $@)
+       -(cd $(SH_LIBDIR) && $(MAKE) $(MFLAGS) $@)
        $(RM) $(CREATED_CONFIGURE) $(CREATED_MAKEFILES)
        $(RM) $(CREATED_SUPPORT) Makefile
 
-recho:         $(SUPPORT_SRC)recho.c
-       @$(CC) $(CCFLAGS) -o $@ $(SUPPORT_SRC)recho.c
+maybe-clean:
+       -if test "X$(topdir)" != "X$(BUILD_DIR)" ; then \
+               $(RM) parser-built y.tab.c y.tab.h ; \
+       fi
 
-zecho:         $(SUPPORT_SRC)zecho.c
-       @$(CC) $(CCFLAGS) -o $@ $(SUPPORT_SRC)zecho.c
+recho$(EXEEXT):                $(SUPPORT_SRC)recho.c
+       @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)recho.c
 
-printenv:              $(SUPPORT_SRC)printenv.c
-       @$(CC) $(CCFLAGS) -o $@ $(SUPPORT_SRC)printenv.c
+zecho$(EXEEXT):                $(SUPPORT_SRC)zecho.c
+       @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)zecho.c
 
-test tests check:              force $(Program) $(TESTS_SUPPORT)
+printenv$(EXEEXT):     $(SUPPORT_SRC)printenv.c
+       @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)printenv.c
+
+test tests check:      force $(Program) $(TESTS_SUPPORT)
        @-test -d tests || mkdir tests
        @cp $(TESTS_SUPPORT) tests
        @( cd $(srcdir)/tests && \
@@ -632,258 +754,303 @@ symlinks:
 dist:  force
        @echo Bash distributions are created using $(srcdir)/support/mkdist.
        @echo Here is a sample of the necessary commands:
-       @echo $(Program) $(srcdir)/support/mkdist -m $(srcdir)/MANIFEST -s $(srcdir) -r ${Program} $(Version)
-       @echo tar cf $(Program)-$(Version).tar ${Program}-$(Version)
-       @echo gzip $(Program)-$(Version).tar
+       @echo $(Program) $(srcdir)/support/mkdist -m $(srcdir)/MANIFEST -s $(srcdir) -r ${Program} $(Version)-${RELSTATUS}
+       @echo tar cf $(Program)-$(Version)-${RELSTATUS}.tar ${Program}-$(Version)-${RELSTATUS}
+       @echo gzip $(Program)-$(Version)-${RELSTATUS}.tar
 
 depend:        depends
 
-sdepend: force
+depends: force
        $(Program) $(SUPPORT_SRC)mkdep -c ${CC} -- ${CCFLAGS} ${CSOURCES}
 
+#### PRIVATE TARGETS ####
+hashtest:      hashlib.c
+       $(CC) -DTEST_HASHING $(CCFLAGS) -o $@ $(srcdir)/hashlib.c
+
 ############################ DEPENDENCIES ###############################
 
-# Files that depend on the definitions in config.h.top, which are not meant
+# Files that depend on the definitions in config-top.h, which are not meant
 # to be changed
-shell.o: config.h.top
-input.o: config.h.top
-y.tab.o: config.h.top
-jobs.o: config.h.top
-nojobs.o: config.h.top
-execute_cmd.o: config.h.top
-variables.o: config.h.top
-builtins/command.o: config.h.top
-builtins/common.o: config.h.top
-builtins/break.o: config.h.top
-builtins/echo.o: config.h.top
-builtins/evalstring.o: config.h.top
-builtins/exit.o: config.h.top
-builtins/kill.o: config.h.top
+shell.o: config-top.h
+input.o: config-top.h
+y.tab.o: config-top.h
+jobs.o: config-top.h
+nojobs.o: config-top.h
+execute_cmd.o: config-top.h
+variables.o: config-top.h
+builtins/command.o: config-top.h
+builtins/common.o: config-top.h
+builtins/break.o: config-top.h
+builtins/echo.o: config-top.h
+builtins/evalstring.o: config-top.h
+builtins/exit.o: config-top.h
+builtins/kill.o: config-top.h
 
 # shell basics
-copy_cmd.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-copy_cmd.o: general.h bashtypes.h variables.h array.h hashlib.h
-copy_cmd.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+copy_cmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+copy_cmd.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+copy_cmd.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 copy_cmd.o: make_cmd.h subst.h sig.h pathnames.h externs.h
-dispose_cmd.o: bashansi.h ansi_stdlib.h
-dispose_cmd.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h
-dispose_cmd.o: error.h general.h bashtypes.h variables.h array.h hashlib.h
-dispose_cmd.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+dispose_cmd.o: bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+dispose_cmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h
+dispose_cmd.o: error.h general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+dispose_cmd.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 dispose_cmd.o: make_cmd.h subst.h sig.h pathnames.h externs.h
-error.o: config.h bashtypes.h bashansi.h ansi_stdlib.h flags.h stdc.h error.h
-error.o: command.h general.h externs.h input.h bashhist.h
-eval.o: config.h bashansi.h ansi_stdlib.h trap.h flags.h ${DEFSRC}/common.h
-eval.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-eval.o: general.h bashtypes.h variables.h array.h hashlib.h
-eval.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+dispose_cmd.o: ${BASHINCDIR}/ocache.h
+error.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h flags.h ${BASHINCDIR}/stdc.h error.h
+error.o: command.h general.h xmalloc.h externs.h input.h bashhist.h
+eval.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h trap.h flags.h ${DEFSRC}/common.h
+eval.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+eval.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+eval.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 eval.o: make_cmd.h subst.h sig.h pathnames.h externs.h
 eval.o: input.h execute_cmd.h
-execute_cmd.o: config.h bashtypes.h filecntl.h posixstat.h bashansi.h ansi_stdlib.h
-execute_cmd.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-execute_cmd.o: general.h bashtypes.h variables.h array.h hashlib.h
-execute_cmd.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+execute_cmd.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+execute_cmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+execute_cmd.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+execute_cmd.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 execute_cmd.o: make_cmd.h subst.h sig.h pathnames.h externs.h
-execute_cmd.o: memalloc.h ${GRAM_H} flags.h builtins.h jobs.h quit.h siglist.h
+execute_cmd.o: ${BASHINCDIR}/memalloc.h ${GRAM_H} flags.h builtins.h jobs.h quit.h siglist.h
 execute_cmd.o: execute_cmd.h findcmd.h redir.h trap.h test.h pathexp.h
-execute_cmd.o: $(DEFSRC)/common.h ${DEFDIR}/builtext.h ${GLOB_LIBSRC}/fnmatch.h
-expr.o: config.h bashansi.h ansi_stdlib.h
-expr.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-expr.o: general.h bashtypes.h variables.h array.h hashlib.h
-expr.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+execute_cmd.o: $(DEFSRC)/common.h ${DEFDIR}/builtext.h ${GLOB_LIBSRC}/strmatch.h
+execute_cmd.o: ${BASHINCDIR}/posixtime.h ${BASHINCDIR}/chartypes.h
+expr.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+expr.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+expr.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+expr.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 expr.o: make_cmd.h subst.h sig.h pathnames.h externs.h
-findcmd.o: config.h bashtypes.h filecntl.h posixstat.h bashansi.h
-findcmd.o: ansi_stdlib.h memalloc.h shell.h bashjmp.h posixjmp.h command.h
-findcmd.o: stdc.h error.h general.h variables.h quit.h maxpath.h unwind_prot.h
+expr.o: ${BASHINCDIR}/chartypes.h
+findcmd.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h ${BASHINCDIR}/posixstat.h bashansi.h
+findcmd.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/memalloc.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h
+findcmd.o: ${BASHINCDIR}/stdc.h error.h general.h xmalloc.h variables.h arrayfunc.h conftypes.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h
 findcmd.o: dispose_cmd.h make_cmd.h subst.h sig.h pathnames.h externs.h
 findcmd.o: flags.h hashlib.h pathexp.h hashcmd.h 
+findcmd.o: ${BASHINCDIR}/chartypes.h
 flags.o: config.h flags.h
-flags.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-flags.o: general.h bashtypes.h variables.h array.h hashlib.h
-flags.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
-flags.o: make_cmd.h subst.h sig.h pathnames.h externs.h
-general.o: config.h bashtypes.h posixstat.h filecntl.h bashansi.h ansi_stdlib.h
-general.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-general.o: general.h bashtypes.h variables.h array.h hashlib.h
-general.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+flags.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+flags.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+flags.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+flags.o: make_cmd.h subst.h sig.h pathnames.h externs.h bashhist.h
+general.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+general.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+general.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+general.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 general.o: make_cmd.h subst.h sig.h pathnames.h externs.h
-general.o: maxpath.h
-hashcmd.o: config.h posixstat.h bashtypes.h bashansi.h ansi_stdlib.h
-hashcmd.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-hashcmd.o: general.h bashtypes.h variables.h array.h hashcmd.h
-hashcmd.o: execute_cmd.h findcmd.h stdc.h
-hashlib.o: config.h bashansi.h ansi_stdlib.h
-hashlib.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-hashlib.o: general.h bashtypes.h variables.h array.h hashlib.h
-hashlib.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+general.o: ${BASHINCDIR}/maxpath.h ${BASHINCDIR}/posixtime.h
+general.o: ${BASHINCDIR}/chartypes.h
+hashcmd.o: config.h ${BASHINCDIR}/posixstat.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+hashcmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+hashcmd.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashcmd.h
+hashcmd.o: execute_cmd.h findcmd.h ${BASHINCDIR}/stdc.h hashlib.h
+hashlib.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+hashlib.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+hashlib.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+hashlib.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 hashlib.o: make_cmd.h subst.h sig.h pathnames.h externs.h
-input.o: config.h bashtypes.h filecntl.h posixstat.h bashansi.h ansi_stdlib.h
-input.o: command.h stdc.h general.h input.h error.h externs.h
-list.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-list.o: general.h bashtypes.h variables.h array.h hashlib.h
-list.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+input.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+input.o: command.h ${BASHINCDIR}/stdc.h general.h xmalloc.h input.h error.h externs.h
+list.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+list.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+list.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 list.o: make_cmd.h subst.h sig.h pathnames.h externs.h
-locale.o: config.h bashtypes.h bashintl.h bashansi.h ansi_stdlib.h
-locale.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-locale.o: general.h bashtypes.h variables.h array.h hashlib.h
-locale.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+locale.o: config.h bashtypes.h bashintl.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+locale.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+locale.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+locale.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 locale.o: make_cmd.h subst.h sig.h pathnames.h externs.h
-mailcheck.o: config.h bashtypes.h posixstat.h bashansi.h ansi_stdlib.h
-mailcheck.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-mailcheck.o: general.h bashtypes.h variables.h array.h hashlib.h
-mailcheck.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+locale.o: ${BASHINCDIR}/chartypes.h
+mailcheck.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+mailcheck.o: ${BASHINCDIR}/posixtime.h
+mailcheck.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+mailcheck.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+mailcheck.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 mailcheck.o: make_cmd.h subst.h sig.h pathnames.h externs.h
 mailcheck.o: execute_cmd.h mailcheck.h
-make_cmd.o: config.h bashtypes.h filecntl.h bashansi.h
-make_cmd.o: command.h stdc.h general.h error.h flags.h make_cmd.h
-make_cmd.o: variables.h array.h hashlib.h subst.h input.h externs.h
-make_cmd.o: jobs.h quit.h siglist.h
-y.tab.o: config.h bashtypes.h bashansi.h ansi_stdlib.h memalloc.h
-y.tab.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-y.tab.o: general.h bashtypes.h variables.h array.h hashlib.h
-y.tab.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
-y.tab.o: make_cmd.h subst.h sig.h pathnames.h externs.h
+make_cmd.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h bashansi.h
+make_cmd.o: command.h ${BASHINCDIR}/stdc.h general.h xmalloc.h error.h flags.h make_cmd.h
+make_cmd.o: variables.h arrayfunc.h conftypes.h array.h hashlib.h subst.h input.h externs.h
+make_cmd.o: jobs.h quit.h siglist.h syntax.h dispose_cmd.h
+make_cmd.o: ${BASHINCDIR}/shmbutil.h ${BASHINCDIR}/ocache.h
+y.tab.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/memalloc.h
+y.tab.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+y.tab.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+y.tab.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+y.tab.o: make_cmd.h subst.h sig.h pathnames.h externs.h test.h
 y.tab.o: trap.h flags.h parser.h input.h mailcheck.h $(DEFSRC)/common.h
 y.tab.o: $(DEFDIR)/builtext.h bashline.h bashhist.h jobs.h siglist.h alias.h
-pathexp.o: config.h bashtypes.h bashansi.h ansi_stdlib.h
-pathexp.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-pathexp.o: general.h bashtypes.h variables.h array.h hashlib.h
-pathexp.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+pathexp.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+pathexp.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+pathexp.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+pathexp.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 pathexp.o: make_cmd.h subst.h sig.h pathnames.h externs.h
 pathexp.o: pathexp.h flags.h 
-pathexp.o: $(GLOB_LIBSRC)/glob.h $(GLOB_LIBSRC)/fnmatch.h
-print_cmd.o: config.h bashansi.h ansi_stdlib.h
-print_cmd.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-print_cmd.o: general.h bashtypes.h variables.h array.h hashlib.h
-print_cmd.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+pathexp.o: $(GLOB_LIBSRC)/glob.h $(GLOB_LIBSRC)/strmatch.h
+pathexp.o: ${BASHINCDIR}/shmbutil.h
+print_cmd.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+print_cmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+print_cmd.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+print_cmd.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 print_cmd.o: make_cmd.h subst.h sig.h pathnames.h externs.h
 print_cmd.o: ${GRAM_H} $(DEFSRC)/common.h
-redir.o: config.h bashtypes.h posixstat.h bashansi.h ansi_stdlib.h filecntl.h
-redir.o: memalloc.h shell.h bashjmp.h posixjmp.h command.h stdc.h error.h
-redir.o: general.h variables.h array.h hashlib.h quit.h maxpath.h unwind_prot.h
+redir.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/filecntl.h
+redir.o: ${BASHINCDIR}/memalloc.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+redir.o: general.h xmalloc.h variables.h arrayfunc.h conftypes.h array.h hashlib.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h
 redir.o: dispose_cmd.h make_cmd.h subst.h sig.h pathnames.h externs.h
 redir.o: flags.h execute_cmd.h redir.h input.h
-shell.o: config.h bashtypes.h posixstat.h bashansi.h ansi_stdlib.h filecntl.h
-shell.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-shell.o: general.h bashtypes.h variables.h array.h hashlib.h
-shell.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
-shell.o: make_cmd.h subst.h sig.h pathnames.h externs.h
+shell.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/filecntl.h
+shell.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+shell.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+shell.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+shell.o: make_cmd.h subst.h sig.h pathnames.h externs.h version.h
 shell.o: flags.h trap.h mailcheck.h builtins.h $(DEFSRC)/common.h
 shell.o: jobs.h siglist.h input.h execute_cmd.h findcmd.h bashhist.h
-shell.o: ${GLOB_LIBSRC}/fnmatch.h
+shell.o: ${GLOB_LIBSRC}/strmatch.h ${BASHINCDIR}/posixtime.h
 sig.o: config.h bashtypes.h
-sig.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-sig.o: general.h bashtypes.h variables.h array.h hashlib.h
-sig.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+sig.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+sig.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+sig.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 sig.o: make_cmd.h subst.h sig.h pathnames.h externs.h
 sig.o: jobs.h siglist.h trap.h $(DEFSRC)/common.h bashline.h bashhist.h
 siglist.o: config.h bashtypes.h siglist.h trap.h
-stringlib.o: bashtypes.h
-stringlib.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-stringlib.o: general.h bashtypes.h variables.h array.h hashlib.h
-stringlib.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+stringlib.o: bashtypes.h ${BASHINCDIR}/chartypes.h
+stringlib.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+stringlib.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+stringlib.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 stringlib.o: make_cmd.h subst.h sig.h pathnames.h externs.h
-subst.o: config.h bashtypes.h bashansi.h ansi_stdlib.h posixstat.h
-subst.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-subst.o: general.h bashtypes.h variables.h array.h hashlib.h
-subst.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+stringlib.o: ${GLOB_LIBSRC}/glob.h ${GLOB_LIBSRC}/strmatch.h
+subst.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/posixstat.h
+subst.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+subst.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+subst.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 subst.o: make_cmd.h subst.h sig.h pathnames.h externs.h
-subst.o: flags.h jobs.h siglist.h execute_cmd.h filecntl.h trap.h pathexp.h
+subst.o: flags.h jobs.h siglist.h execute_cmd.h ${BASHINCDIR}/filecntl.h trap.h pathexp.h
 subst.o: mailcheck.h input.h $(DEFSRC)/getopt.h $(DEFSRC)/common.h
-subst.o: bashline.h bashhist.h ${GLOB_LIBSRC}/fnmatch.h
-test.o: bashtypes.h posixstat.h filecntl.h
-test.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-test.o: general.h bashtypes.h variables.h array.h hashlib.h
-test.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+subst.o: bashline.h bashhist.h ${GLOB_LIBSRC}/strmatch.h
+subst.o: ${BASHINCDIR}/chartypes.h
+subst.o: ${BASHINCDIR}/shmbutil.h
+test.o: bashtypes.h ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
+test.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+test.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+test.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 test.o: make_cmd.h subst.h sig.h pathnames.h externs.h test.h
 test.o: ${DEFSRC}/common.h
-trap.o: config.h bashtypes.h trap.h bashansi.h ansi_stdlib.h
-trap.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-trap.o: general.h bashtypes.h variables.h array.h hashlib.h
-trap.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+trap.o: config.h bashtypes.h trap.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+trap.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+trap.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+trap.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 trap.o: make_cmd.h subst.h sig.h pathnames.h externs.h
 trap.o: signames.h $(DEFSRC)/common.h
-unwind_prot.o: config.h bashtypes.h bashansi.h ansi_stdlib.h command.h stdc.h
-unwind_prot.o: general.h unwind_prot.h quit.h sig.h
-variables.o: config.h bashtypes.h posixstat.h bashansi.h ansi_stdlib.h
-variables.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-variables.o: general.h bashtypes.h variables.h array.h hashlib.h
-variables.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+unwind_prot.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h command.h ${BASHINCDIR}/stdc.h
+unwind_prot.o: general.h xmalloc.h unwind_prot.h quit.h sig.h
+variables.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+variables.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+variables.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+variables.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 variables.o: make_cmd.h subst.h sig.h pathnames.h externs.h
 variables.o: flags.h execute_cmd.h mailcheck.h input.h $(DEFSRC)/common.h
-variables.o: findcmd.h bashhist.h
-version.o: version.h .build
-xmalloc.o: config.h bashtypes.h ansi_stdlib.h error.h
+variables.o: findcmd.h bashhist.h hashcmd.h pathexp.h
+variables.o: pcomplete.h version.h ${BASHINCDIR}/chartypes.h
+variables.o: ${BASHINCDIR}/posixtime.h
+version.o: version.h conftypes.h patchlevel.h
+xmalloc.o: config.h bashtypes.h ${BASHINCDIR}/ansi_stdlib.h error.h
 
 # job control
 
-jobs.o: config.h bashtypes.h trap.h filecntl.h input.h bashtty.h
-jobs.o: bashansi.h ansi_stdlib.h
-jobs.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-jobs.o: general.h bashtypes.h variables.h array.h hashlib.h
-jobs.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+jobs.o: config.h bashtypes.h trap.h ${BASHINCDIR}/filecntl.h input.h ${BASHINCDIR}/shtty.h
+jobs.o: bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+jobs.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+jobs.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+jobs.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 jobs.o: make_cmd.h subst.h sig.h pathnames.h externs.h
 jobs.o: jobs.h flags.h $(DEFSRC)/common.h $(DEFDIR)/builtext.h
-nojobs.o: config.h bashtypes.h filecntl.h bashjmp.h posixjmp.h
-nojobs.o: command.h stdc.h general.h jobs.h quit.h siglist.h externs.h
-nojobs.o: sig.h error.h bashtty.h input.h
+jobs.o: ${BASHINCDIR}/posixwait.h ${BASHINCDIR}/unionwait.h
+jobs.o: ${BASHINCDIR}/posixtime.h
+nojobs.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h bashjmp.h ${BASHINCDIR}/posixjmp.h
+nojobs.o: command.h ${BASHINCDIR}/stdc.h general.h xmalloc.h jobs.h quit.h siglist.h externs.h
+nojobs.o: sig.h error.h ${BASHINCDIR}/shtty.h input.h
 
 # shell features that may be compiled in
 
-array.o: config.h bashansi.h ansi_stdlib.h
-array.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-array.o: general.h bashtypes.h variables.h array.h hashlib.h
-array.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+array.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+array.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+array.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+array.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 array.o: make_cmd.h subst.h sig.h pathnames.h externs.h
 array.o: $(DEFSRC)/common.h
-braces.o: config.h bashansi.h ansi_stdlib.h
-braces.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-braces.o: general.h bashtypes.h variables.h array.h hashlib.h
-braces.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+arrayfunc.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+arrayfunc.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+arrayfunc.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+arrayfunc.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+arrayfunc.o: make_cmd.h subst.h sig.h pathnames.h externs.h
+arrayfunc.o: $(DEFSRC)/common.h
+arrayfunc.o: ${BASHINCDIR}/shmbutil.h
+braces.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+braces.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+braces.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+braces.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 braces.o: make_cmd.h subst.h sig.h pathnames.h externs.h
-alias.o: config.h bashansi.h ansi_stdlib.h command.h stdc.h
-alias.o: general.h bashtypes.h externs.h alias.h
+braces.o: ${BASHINCDIR}/shmbutil.h
+alias.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h command.h ${BASHINCDIR}/stdc.h
+alias.o: general.h xmalloc.h bashtypes.h externs.h alias.h
+alias.o: pcomplete.h
+alias.o: ${BASHINCDIR}/chartypes.h
+
+pcomplib.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h bashtypes.h
+pcomplib.o: ${BASHINCDIR}/stdc.h hashlib.h pcomplete.h shell.h syntax.h
+pcomplib.o: bashjmp.h command.h general.h xmalloc.h error.h variables.h arrayfunc.h conftypes.h quit.h
+pcomplib.o: unwind_prot.h dispose_cmd.h make_cmd.h subst.h sig.h pathnames.h
+pcomplib.o: externs.h ${BASHINCDIR}/maxpath.h
+
+pcomplete.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h bashtypes.h
+pcomplete.o: ${BASHINCDIR}/stdc.h hashlib.h pcomplete.h shell.h syntax.h
+pcomplete.o: bashjmp.h command.h general.h xmalloc.h error.h variables.h arrayfunc.h conftypes.h quit.h
+pcomplete.o: unwind_prot.h dispose_cmd.h make_cmd.h subst.h sig.h pathnames.h
+pcomplete.o: externs.h ${BASHINCDIR}/maxpath.h execute_cmd.h
 
 # library support files
 
-bashhist.o: config.h bashtypes.h bashansi.h ansi_stdlib.h posixstat.h
-bashhist.o: filecntl.h
-bashhist.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-bashhist.o: general.h bashtypes.h variables.h array.h hashlib.h
-bashhist.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+bashhist.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/posixstat.h
+bashhist.o: ${BASHINCDIR}/filecntl.h
+bashhist.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+bashhist.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+bashhist.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 bashhist.o: make_cmd.h subst.h sig.h pathnames.h externs.h
 bashhist.o: flags.h input.h parser.h pathexp.h $(DEFSRC)/common.h bashline.h
-bashhist.o: $(GLOB_LIBSRC)/fnmatch.h
-bashline.o: config.h bashtypes.h posixstat.h bashansi.h ansi_stdlib.h
-bashline.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-bashline.o: general.h bashtypes.h variables.h array.h hashlib.h
-bashline.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+bashhist.o: $(GLOB_LIBSRC)/strmatch.h
+bashline.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+bashline.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+bashline.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+bashline.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 bashline.o: make_cmd.h subst.h sig.h pathnames.h externs.h
 bashline.o: builtins.h bashhist.h bashline.h execute_cmd.h findcmd.h pathexp.h
 bashline.o: $(DEFSRC)/common.h $(GLOB_LIBSRC)/glob.h alias.h
-bracecomp.o: config.h bashansi.h ansi_stdlib.h
-bracecomp.o: shell.h config.h bashjmp.h posixjmp.h command.h stdc.h error.h
-bracecomp.o: general.h bashtypes.h variables.h array.h hashlib.h
-bracecomp.o: quit.h maxpath.h unwind_prot.h dispose_cmd.h
+bashline.o: pcomplete.h ${BASHINCDIR}/chartypes.h input.h
+bracecomp.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+bracecomp.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+bracecomp.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+bracecomp.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 bracecomp.o: make_cmd.h subst.h sig.h pathnames.h externs.h
-bracecomp.o: shell.h bashjmp.h posixjmp.h sig.h command.h hashlib.h builtins.h general.h
-bracecomp.o: quit.h alias.h config.h  variables.h
-bracecomp.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
+bracecomp.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h command.h hashlib.h builtins.h general.h xmalloc.h
+bracecomp.o: quit.h alias.h config.h  variables.h arrayfunc.h conftypes.h
+bracecomp.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
 
 # library dependencies
 
 bashline.o: $(RL_LIBSRC)/rlconf.h
-bashline.o: $(RL_LIBSRC)/keymaps.h
+bashline.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/rlstdc.h
 bashline.o: $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/readline.h
 bracecomp.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/chardefs.h
-bracecomp.o: $(RL_LIBSRC)/readline.h
-y.tab.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/readline.h
-subst.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/readline.h
-
-shell.o: $(HIST_LIBSRC)/history.h
-subst.o: $(HIST_LIBSRC)/history.h
-bashline.o: $(HIST_LIBSRC)/history.h
-bashhist.o: $(HIST_LIBSRC)/history.h
-y.tab.o: $(HIST_LIBSRC)/history.h
+bracecomp.o: $(RL_LIBSRC)/readline.h $(RL_LIBSRC)/rlstdc.h
+y.tab.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/chardefs.h
+y.tab.o: $(RL_LIBSRC)/readline.h $(RL_LIBSRC)/rlstdc.h
+subst.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/chardefs.h
+subst.o: $(RL_LIBSRC)/readline.h $(RL_LIBSRC)/rlstdc.h
+
+shell.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
+subst.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
+bashline.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
+bashhist.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
+y.tab.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
 
 execute_cmd.o: $(TILDE_LIBSRC)/tilde.h
 general.o: $(TILDE_LIBSRC)/tilde.h
@@ -895,191 +1062,206 @@ variables.o: $(TILDE_LIBSRC)/tilde.h
 # XXX - dependencies checked through here
 
 # builtin c sources
-builtins/bashgetopt.o: config.h bashansi.h ansi_stdlib.h
-builtins/bashgetopt.o: shell.h config.h bashjmp.h command.h general.h error.h
-builtins/bashgetopt.o: variables.h quit.h maxpath.h unwind_prot.h dispose_cmd.h
+builtins/bashgetopt.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+builtins/bashgetopt.o: shell.h syntax.h config.h bashjmp.h command.h general.h xmalloc.h error.h
+builtins/bashgetopt.o: variables.h arrayfunc.h conftypes.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 builtins/bashgetopt.o: make_cmd.h subst.h sig.h pathnames.h externs.h
 builtins/bashgetopt.o: $(DEFSRC)/common.h
-builtins/common.o: bashtypes.h posixstat.h bashansi.h ansi_stdlib.h
-builtins/common.o: shell.h config.h bashjmp.h posixjmp.h sig.h command.h
-builtins/common.o: memalloc.h variables.h input.h siglist.h
-builtins/common.o: quit.h unwind_prot.h maxpath.h jobs.h builtins.h
+builtins/bashgetopt.o: ${BASHINCDIR}/chartypes.h
+builtins/common.o: bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+builtins/common.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h command.h
+builtins/common.o: ${BASHINCDIR}/memalloc.h variables.h arrayfunc.h conftypes.h input.h siglist.h
+builtins/common.o: quit.h unwind_prot.h ${BASHINCDIR}/maxpath.h jobs.h builtins.h
 builtins/common.o: dispose_cmd.h make_cmd.h subst.h externs.h bashhist.h
-builtins/common.o: execute_cmd.h stdc.h general.h error.h pathnames.h
+builtins/common.o: execute_cmd.h ${BASHINCDIR}/stdc.h general.h xmalloc.h error.h pathnames.h
 builtins/common.o: ${DEFDIR}/builtext.h
-builtins/evalfile.o: bashtypes.h posixstat.h filecntl.h bashansi.h ansi_stdlib.h
-builtins/evalfile.o: shell.h config.h bashjmp.h command.h general.h error.h
-builtins/evalfile.o: variables.h quit.h maxpath.h unwind_prot.h dispose_cmd.h
+builtins/common.o: ${BASHINCDIR}/chartypes.h
+builtins/evalfile.o: bashtypes.h ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+builtins/evalfile.o: shell.h syntax.h config.h bashjmp.h command.h general.h xmalloc.h error.h
+builtins/evalfile.o: variables.h arrayfunc.h conftypes.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 builtins/evalfile.o: make_cmd.h subst.h sig.h pathnames.h externs.h
 builtins/evalfile.o: jobs.h builtins.h flags.h input.h execute_cmd.h
 builtins/evalfile.o: bashhist.h $(DEFSRC)/common.h
-builtins/evalstring.o: config.h bashansi.h ansi_stdlib.h
-builtins/evalstring.o: shell.h bashjmp.h posixjmp.h sig.h command.h siglist.h
-builtins/evalstring.o: memalloc.h variables.h input.h
-builtins/evalstring.o: quit.h unwind_prot.h maxpath.h jobs.h builtins.h
+builtins/evalstring.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+builtins/evalstring.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h command.h siglist.h
+builtins/evalstring.o: ${BASHINCDIR}/memalloc.h variables.h arrayfunc.h conftypes.h input.h
+builtins/evalstring.o: quit.h unwind_prot.h ${BASHINCDIR}/maxpath.h jobs.h builtins.h
 builtins/evalstring.o: dispose_cmd.h make_cmd.h subst.h externs.h 
 builtins/evalstring.o: jobs.h builtins.h flags.h input.h execute_cmd.h
 builtins/evalstring.o: bashhist.h $(DEFSRC)/common.h
-builtins/getopt.o: config.h memalloc.h
-builtins/getopt.o: shell.h bashjmp.h command.h general.h error.h
-builtins/getopt.o: variables.h quit.h maxpath.h unwind_prot.h dispose_cmd.h
+builtins/getopt.o: config.h ${BASHINCDIR}/memalloc.h
+builtins/getopt.o: shell.h syntax.h bashjmp.h command.h general.h xmalloc.h error.h
+builtins/getopt.o: variables.h arrayfunc.h conftypes.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
 builtins/getopt.o: make_cmd.h subst.h sig.h pathnames.h externs.h
 builtins/getopt.o: $(DEFSRC)/getopt.h
-builtins/mkbuiltins.o: config.h bashtypes.h posixstat.h filecntl.h
-builtins/mkbuiltins.o: bashansi.h ansi_stdlib.h
+builtins/mkbuiltins.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
+builtins/mkbuiltins.o: bashansi.h ${BASHINCDIR}/ansi_stdlib.h
 
 # builtin def files
-builtins/alias.o: command.h config.h memalloc.h error.h general.h maxpath.h
+builtins/alias.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
 builtins/alias.o: quit.h $(DEFSRC)/common.h
-builtins/alias.o: shell.h bashjmp.h posixjmp.h sig.h command.h stdc.h unwind_prot.h
-builtins/alias.o: dispose_cmd.h make_cmd.h subst.h externs.h variables.h 
-builtins/bind.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/bind.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/bind.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h quit.h
+builtins/alias.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h command.h ${BASHINCDIR}/stdc.h unwind_prot.h
+builtins/alias.o: dispose_cmd.h make_cmd.h subst.h externs.h variables.h arrayfunc.h conftypes.h 
+builtins/bind.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/bind.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/bind.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
 builtins/bind.o: $(DEFSRC)/bashgetopt.h
-builtins/break.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/break.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h quit.h
-builtins/break.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/builtin.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/builtin.o: quit.h $(DEFSRC)/common.h
-builtins/builtin.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h 
-builtins/builtin.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/cd.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/cd.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h
-builtins/cd.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
+builtins/break.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/break.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
+builtins/break.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/builtin.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/builtin.o: quit.h $(DEFSRC)/common.h $(DEFSRC)/bashgetopt.h
+builtins/builtin.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/builtin.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/cd.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/cd.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h
+builtins/cd.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
 builtins/cd.o: $(DEFSRC)/common.h quit.h 
-builtins/command.o: command.h config.h memalloc.h error.h general.h maxpath.h
+builtins/command.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
 builtins/command.o: quit.h $(DEFSRC)/bashgetopt.h
-builtins/command.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h 
-builtins/command.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/declare.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/declare.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h quit.h
-builtins/declare.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/echo.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/echo.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h quit.h
-builtins/echo.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/enable.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/enable.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h quit.h
-builtins/enable.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/eval.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/eval.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h quit.h 
-builtins/eval.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
+builtins/command.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/command.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/declare.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/declare.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
+builtins/declare.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/declare.o: $(DEFSRC)/bashgetopt.h
+builtins/echo.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/echo.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
+builtins/echo.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/enable.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/enable.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
+builtins/enable.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/enable.o: pcomplete.h
+builtins/eval.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/eval.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h 
+builtins/eval.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
 builtins/exec.o: bashtypes.h
-builtins/exec.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/exec.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h
+builtins/exec.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/exec.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h
 builtins/exec.o: dispose_cmd.h make_cmd.h subst.h externs.h execute_cmd.h
-builtins/exec.o: findcmd.h flags.h quit.h $(DEFSRC)/common.h stdc.h
+builtins/exec.o: findcmd.h flags.h quit.h $(DEFSRC)/common.h ${BASHINCDIR}/stdc.h
 builtins/exit.o: bashtypes.h
-builtins/exit.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/exit.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h quit.h
-builtins/exit.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/fc.o: bashtypes.h posixstat.h
-builtins/fc.o: bashansi.h ansi_stdlib.h builtins.h command.h stdc.h 
-builtins/fc.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/fc.o: flags.h unwind_prot.h variables.h shell.h bashjmp.h posixjmp.h sig.h 
-builtins/fc.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h quit.h 
+builtins/exit.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/exit.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
+builtins/exit.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/fc.o: bashtypes.h ${BASHINCDIR}/posixstat.h
+builtins/fc.o: bashansi.h ${BASHINCDIR}/ansi_stdlib.h builtins.h command.h ${BASHINCDIR}/stdc.h 
+builtins/fc.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/fc.o: flags.h unwind_prot.h variables.h arrayfunc.h conftypes.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h 
+builtins/fc.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h quit.h 
 builtins/fc.o: $(DEFSRC)/bashgetopt.h bashhist.h
-builtins/fg_bg.o: bashtypes.h
-builtins/fg_bg.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/fg_bg.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h quit.h
-builtins/fg_bg.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/getopts.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/getopts.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h quit.h 
-builtins/getopts.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
+builtins/fc.o: ${BASHINCDIR}/chartypes.h
+builtins/fg_bg.o: bashtypes.h $(DEFSRC)/bashgetopt.h
+builtins/fg_bg.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/fg_bg.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
+builtins/fg_bg.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/getopts.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/getopts.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h 
+builtins/getopts.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
 builtins/hash.o: bashtypes.h
-builtins/hash.o: builtins.h command.h findcmd.h stdc.h $(DEFSRC)/common.h
-builtins/hash.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/hash.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h quit.h 
-builtins/help.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/help.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/help.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h quit.h
-builtins/help.o: $(GLOB_LIBSRC)/glob.h
+builtins/hash.o: builtins.h command.h findcmd.h ${BASHINCDIR}/stdc.h $(DEFSRC)/common.h
+builtins/hash.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/hash.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h 
+builtins/help.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/help.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/help.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
+builtins/help.o: $(GLOB_LIBSRC)/glob.h version.h
 builtins/history.o: bashtypes.h
-builtins/history.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/history.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/history.o: filecntl.h shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h
-builtins/history.o: bashhist.h variables.h 
-builtins/inlib.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/inlib.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h quit.h 
-builtins/inlib.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/jobs.o: command.h config.h memalloc.h error.h general.h maxpath.h
+builtins/history.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/history.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/history.o: ${BASHINCDIR}/filecntl.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h
+builtins/history.o: bashhist.h variables.h arrayfunc.h conftypes.h 
+builtins/inlib.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/inlib.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h 
+builtins/inlib.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/jobs.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
 builtins/jobs.o: quit.h $(DEFSRC)/bashgetopt.h
-builtins/jobs.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h 
-builtins/jobs.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/kill.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/kill.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/kill.o: shell.h bashjmp.h posixjmp.h sig.h trap.h unwind_prot.h variables.h 
-builtins/let.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/let.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/let.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h 
-builtins/printf.o: config.h memalloc.h bashjmp.h command.h error.h
-builtins/printf.o: general.h quit.h dispose_cmd.h make_cmd.h subst.h
-builtins/printf.o: externs.h sig.h pathnames.h shell.h unwind_prot.h
-builtins/printf.o: variables.h stdc.h $(DEFSRC)/bashgetopt.h
-builtins/pushd.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/pushd.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/pushd.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h
+builtins/jobs.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/jobs.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/kill.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/kill.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/kill.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h trap.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/let.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/let.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/let.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/printf.o: config.h ${BASHINCDIR}/memalloc.h bashjmp.h command.h error.h
+builtins/printf.o: general.h xmalloc.h quit.h dispose_cmd.h make_cmd.h subst.h
+builtins/printf.o: externs.h sig.h pathnames.h shell.h syntax.h unwind_prot.h
+builtins/printf.o: variables.h arrayfunc.h conftypes.h ${BASHINCDIR}/stdc.h $(DEFSRC)/bashgetopt.h
+builtins/printf.o: ${BASHINCDIR}/chartypes.h
+builtins/pushd.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/pushd.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/pushd.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h
 builtins/pushd.o: $(DEFSRC)/common.h
-builtins/read.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/read.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/read.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h 
-builtins/return.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/return.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/return.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h 
-builtins/set.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/set.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/set.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h flags.h
-builtins/setattr.o: command.h config.h memalloc.h error.h general.h maxpath.h
+builtins/read.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/read.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/read.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/return.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/return.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/return.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/set.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/set.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/set.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h flags.h
+builtins/setattr.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
 builtins/setattr.o: quit.h $(DEFSRC)/common.h $(DEFSRC)/bashgetopt.h
-builtins/setattr.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h 
-builtins/setattr.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/shift.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/shift.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/shift.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h 
-builtins/shift.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/shopt.o: command.h config.h memalloc.h error.h general.h
+builtins/setattr.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/setattr.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/shift.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/shift.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/shift.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/shift.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/shopt.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h
 builtins/shopt.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h
-builtins/shopt.o: shell.h bashjmp.h posixjmp.h unwind_prot.h variables.h maxpath.h
+builtins/shopt.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h unwind_prot.h variables.h arrayfunc.h conftypes.h ${BASHINCDIR}/maxpath.h
 builtins/shopt.o: $(DEFSRC)/common.h $(DEFSRC)/bashgetopt.h
-builtins/source.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/source.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/source.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h
-builtins/source.o: findcmd.h
-builtins/suspend.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/suspend.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/suspend.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h 
-builtins/test.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/test.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/test.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h 
+builtins/source.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/source.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/source.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h
+builtins/source.o: findcmd.h $(DEFSRC)/bashgetopt.h
+builtins/suspend.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/suspend.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/suspend.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/test.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/test.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/test.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
 builtins/test.o: test.h
-builtins/times.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/times.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/times.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h 
-builtins/trap.o: command.h config.h memalloc.h error.h general.h maxpath.h
+builtins/times.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/times.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/times.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/trap.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
 builtins/trap.o: quit.h $(DEFSRC)/common.h
-builtins/trap.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h 
-builtins/trap.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/type.o: command.h config.h memalloc.h error.h general.h maxpath.h
+builtins/trap.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/trap.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/type.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
 builtins/type.o: quit.h $(DEFSRC)/common.h findcmd.h
-builtins/type.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h
-builtins/type.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/ulimit.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/ulimit.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/ulimit.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h 
-builtins/umask.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/umask.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/umask.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h 
-builtins/wait.o: command.h config.h memalloc.h error.h general.h maxpath.h
-builtins/wait.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
-builtins/wait.o: shell.h bashjmp.h posixjmp.h sig.h unwind_prot.h variables.h
+builtins/type.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h
+builtins/type.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/ulimit.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/ulimit.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/ulimit.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/umask.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/umask.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/umask.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/umask.o: ${BASHINCDIR}/chartypes.h
+builtins/wait.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/wait.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/wait.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h
+builtins/wait.o: ${BASHINCDIR}/chartypes.h
+
+builtins/complete.o: config.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h
+builtins/complete.o: unwind_prot.h variables.h arrayfunc.h conftypes.h
+builtins/complete.o: bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+builtins/complete.o: builtins.h
+builtins/complete.o: pcomplete.h
+builtins/complete.o: ${DEFSRC}/common.h ${DEFSRC}/bashgetopt.h
 
 # builtin library dependencies
 builtins/bind.o: $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/readline.h
-builtins/bind.o: $(RL_LIBSRC)/keymaps.h
+builtins/bind.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/rlstdc.h
 
-builtins/bind.o: $(HIST_LIBSRC)/history.h
-builtins/fc.o: $(HIST_LIBSRC)/history.h
-builtins/history.o: $(HIST_LIBSRC)/history.h
+builtins/bind.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
+builtins/fc.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
+builtins/history.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
 
 builtins/common.o: $(TILDE_LIBSRC)/tilde.h
 builtins/cd.o: $(TILDE_LIBSRC)/tilde.h 
@@ -1091,6 +1273,7 @@ builtins/builtin.o: $(DEFSRC)/builtin.def
 builtins/cd.o: $(DEFSRC)/cd.def
 builtins/colon.o: $(DEFSRC)/colon.def
 builtins/command.o: $(DEFSRC)/command.def
+builtins/complete.o: $(DEFSRC)/complete.def
 builtins/declare.o: $(DEFSRC)/declare.def
 builtins/echo.o: $(DEFSRC)/echo.def
 builtins/enable.o: $(DEFSRC)/enable.def