1554 lines
57 KiB
C
1554 lines
57 KiB
C
/* 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@prep.ai.mit.edu. We will do our best to incorporate
|
|
/**/# them into the next release.
|
|
|
|
/**/# Make sure the first target in the makefile is the right one
|
|
all: .made
|
|
|
|
/* **************************************************************** */
|
|
/* */
|
|
/* Which compiler are you using? */
|
|
/* */
|
|
/* **************************************************************** */
|
|
|
|
/* Define HAVE_GCC if you have the GNU C compiler. */
|
|
/* #define HAVE_GCC */
|
|
|
|
#if defined (__GNUC__) && !defined (HAVE_GCC) && !defined (GCC_STANDARD)
|
|
# define HAVE_GCC
|
|
#endif
|
|
|
|
/* Undefine HAVE_FIXED_INCLUDES if you are not 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 */
|
|
|
|
/* Include some boilerplate Gnu makefile definitions. */
|
|
prefix = /usr/local
|
|
|
|
exec_prefix = $(prefix)
|
|
bindir = $(exec_prefix)/bin
|
|
libdir = $(exec_prefix)/lib
|
|
|
|
manroot = $(prefix)/man
|
|
|
|
man1ext = 1
|
|
man1dir = $(manroot)/man$(man1ext)
|
|
man3ext = 3
|
|
man3dir = $(manroot)/man$(man3ext)
|
|
mandir = $(man1dir)
|
|
manext = $(man1ext)
|
|
|
|
infodir = $(prefix)/info
|
|
|
|
srcdir = .
|
|
|
|
VPATH = .:$(srcdir)
|
|
|
|
/* If you have purify, and want to use it, uncomment this definition or
|
|
run the make as `make -f bash-Makefile bash PURIFY=purify'. */
|
|
PURIFY = # purify
|
|
|
|
/* 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"
|
|
|
|
/* Can't use the Gnu malloc library without saying we want the Gnu malloc. */
|
|
#if !defined (USE_GNU_MALLOC)
|
|
# undef USE_GNU_MALLOC_LIBRARY
|
|
#endif /* !USE_GNU_MALLOC */
|
|
|
|
.SUFFIXES: .aux
|
|
/**/# 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) $(CCFLAGS) $(CPPFLAGS) -c $<
|
|
|
|
.c.aux:
|
|
$(RM) $@
|
|
$(CC) $(CCFLAGS) $(CPPFLAGS) -o $@ $<
|
|
|
|
#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.) */
|
|
CC = gcc -traditional -I/usr/include $(GCC_EXTRAS)
|
|
# else /* HAVE_FIXED_INCLUDES */
|
|
CC = gcc $(GCC_EXTRAS)
|
|
# endif /* HAVE_FIXED_INCLUDES */
|
|
#else /* !HAVE_GCC */
|
|
CC = CPP_CC
|
|
#endif /* !HAVE_GCC */
|
|
|
|
/**/# If the user has specified a Make shell, then use that.
|
|
#if defined (MAKE_SHELL)
|
|
SHELL = MAKE_SHELL
|
|
#else
|
|
SHELL=/bin/sh
|
|
#endif /* MAKE_SHELL */
|
|
|
|
CP = cp
|
|
RM = rm -f
|
|
AR = ar
|
|
|
|
INSTALL = $(SUPPORT_SRC)install.sh
|
|
INSTALL_PROGRAM = $(INSTALL) -c
|
|
INSTALL_DATA = $(INSTALL) -c -m 644
|
|
|
|
COMPRESS = gzip
|
|
COMPRESS_EXT = .gz
|
|
|
|
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 (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 (USE_VFPRINTF_EMULATION)
|
|
VPRINTF = -DHAVE_VFPRINTF
|
|
VPRINT_OBJ = vprint.o
|
|
#endif /* USE_VFPRINTF_EMULATION */
|
|
|
|
#if defined (HAVE_SYS_STREAM_H)
|
|
/**/# This system has <sys/stream.h>
|
|
STREAM = -DHAVE_SYS_STREAM_H
|
|
#endif /* HAVE_SYS_STREAM_H */
|
|
|
|
#if defined (HAVE_SYS_PTEM_H)
|
|
/**/# This system has <sys/ptem.h>
|
|
PTEM = -DHAVE_SYS_PTEM_H
|
|
#endif /* HAVE_SYS_PTEM_H */
|
|
|
|
#if defined (HAVE_SYS_PTE_H)
|
|
/**/# This system has <sys/pte.h>
|
|
PTE = -DHAVE_SYS_PTE_H
|
|
#endif /* HAVE_SYS_PTE_H */
|
|
|
|
/**/# This system has <unistd.h>.
|
|
#if defined (HAVE_UNISTD_H)
|
|
UNISTD = -DHAVE_UNISTD_H
|
|
#endif
|
|
|
|
/**/# This system has <stdlib.h>
|
|
#if defined (HAVE_STDLIB_H)
|
|
STDLIB = -DHAVE_STDLIB_H
|
|
#endif
|
|
|
|
/**/# This system has <limits.h>
|
|
#if defined (HAVE_LIMITS_H)
|
|
LIMITSH = -DHAVE_LIMITS_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 (HAVE_SYS_PARAM)
|
|
/**/# This system has <sys/param.h>
|
|
PARAM = -DHAVE_SYS_PARAM
|
|
#endif
|
|
|
|
#if defined (VOID_SIGHANDLER)
|
|
/**/# The signal () call provided by the 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 */
|
|
|
|
#if defined (HAVE_DIRENT)
|
|
/**/# This system uses struct dirent for reading directories with readdir.
|
|
DIRENT = -DHAVE_DIRENT
|
|
#endif /* HAVE_DIRENT */
|
|
|
|
#if defined (HAVE_DIRENT_H)
|
|
/**/# This system has /usr/include/dirent.h
|
|
DIRENTH = -DHAVE_DIRENT_H
|
|
#endif /* HAVE_DIRENT_H */
|
|
|
|
#if defined (HAVE_STRING_H)
|
|
/**/# This system has /usr/include/string.h
|
|
STRINGH = -DHAVE_STRING_H
|
|
#endif /* HAVE_STRING_H */
|
|
|
|
#if defined (HAVE_VARARGS_H)
|
|
/**/# This system has /usr/include/varargs.h
|
|
VARARGSH = -DHAVE_VARARGS_H
|
|
#endif /* HAVE_VARARGS_H */
|
|
|
|
#if defined (HAVE_STRCHR)
|
|
/**/# This system has strchr () and strrchr () string functions.
|
|
STRCHR = -DHAVE_STRCHR
|
|
#endif /* HAVE_STRCHR */
|
|
|
|
#if defined (HAVE_STRCASECMP)
|
|
STRCASE = -DHAVE_STRCASECMP
|
|
#endif /* HAVE_STRCASECMP */
|
|
|
|
#if defined (HAVE_DEV_FD)
|
|
/**/# This system has the /dev/fd directory for naming open files.
|
|
DEVFD = -DHAVE_DEV_FD
|
|
#endif /* HAVE_DEV_FD */
|
|
|
|
/**/# 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 = -O -g
|
|
|
|
SYSTEM_FLAGS = $(LINEBUF) $(VPRINTF) $(UNISTD) $(STDLIB) $(LIMITSH) \
|
|
$(GROUPS) $(RESOURCE) $(PARAM) $(SIGHANDLER) $(SYSDEP) $(WAITH) \
|
|
$(GETWD) $(DUP2) $(STRERROR) $(DIRENT) $(DIRENTH) $(STRINGH) \
|
|
$(VARARGSH) $(STRCHR) $(STRCASE) $(DEVFD) \
|
|
-D$(Machine) -D$(OS)
|
|
LDFLAGS = $(NOSHARE) $(SYSDEP_LD) $(EXTRA_LD_PATH) $(PROFILE_FLAGS) $(CFLAGS)
|
|
CCFLAGS = $(PROFILE_FLAGS) $(SYSTEM_FLAGS) -DSHELL $(ALLOCA_CFLAGS) \
|
|
$(MALLOC_CFLAGS) $(CFLAGS)
|
|
CPPFLAGS= -I. -I$(srcdir) -I$(LIBSRC)
|
|
GCC_LINT_FLAGS = -ansi -Wall -Wshadow -Wpointer-arith -Wcast-qual \
|
|
-Wwrite-strings -Werror -Wstrict-prototypes \
|
|
-Wmissing-prototypes
|
|
GCC_LINT_CFLAGS = $(PROFILE_FLAGS) $(CFLAGS) $(SYSTEM_FLAGS) -DSHELL $(ALLOCA_CFLAGS) \
|
|
$(MALLOC_CFLAGS) $(GCC_LINT_FLAGS)
|
|
|
|
/* It is conceivable 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 the support libraries. */
|
|
/* */
|
|
/* **************************************************************** */
|
|
|
|
/**/# The location of sources for the support libraries.
|
|
LIBPATH = ./lib/
|
|
LIBSRC = $(srcdir)/$(LIBPATH)
|
|
|
|
/**/# Preface building with the full path of the current library source.
|
|
LIBINC_DECL = topdir=`sh $(srcdir)/support/srcdir $(srcdir)`; export topdir
|
|
LIBINC_USAGE = "-I$${topdir} -I$${topdir}/$(LIBPATH) -I$(LIBSRC)"
|
|
|
|
/* 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)' RM='$(RM)' \
|
|
|
|
/* Macro used to build a library. */
|
|
#define build_lib_in_dir(directory, target, srcdef, makefile) \
|
|
@echo "Building in " directory "..."; \
|
|
sh $(SUPPORT_SRC)mkdirs directory ; \
|
|
($(LIBINC_DECL); cd directory; \
|
|
if [ ! -f Makefile ]; then cp makefile Makefile; fi; \
|
|
$(MAKE) target $(MFLAGS) LIBMAKE_FLAGS srcdef)
|
|
|
|
/* The builtins are somewhat special in that more information is needed
|
|
to compile them correctly. */
|
|
#define build_builtins(target) \
|
|
@sh $(SUPPORT_SRC)mkdirs $(DEFDIR) ; \
|
|
($(LIBINC_DECL); cd $(DEFDIR); \
|
|
if [ ! -f Makefile ]; then \
|
|
cp $(BUILTIN_ABSSRC)/Makefile Makefile; \
|
|
fi; \
|
|
$(MAKE) $(MFLAGS) target \
|
|
srcdir=$(BUILTIN_ABSSRC) CPPFLAGS='$(CPPFLAGS)' \
|
|
CFLAGS='$(CCFLAGS) '$(LIBINC_USAGE)' -I. -I$(BUILTIN_ABSSRC)' \
|
|
LDFLAGS='$(LDFLAGS)' RANLIB='$(RANLIB)' AR='$(AR)' CC='$(CC)' \
|
|
RM='$(RM)' RL_LIBSRC='$(RL_ABSSRC)' \
|
|
DIRECTDEFINE='-D '$(srcdir)/$(DEFDIR))
|
|
|
|
/**/# Flags used when building libraries.
|
|
LIBRARY_CFLAGS = $(PROFILE_FLAGS) $(CFLAGS) $(SIGHANDLER) $(ALLOCA_CFLAGS) \
|
|
$(SYSDEP) $(DIRENT) $(DIRENTH) $(STRINGH) $(VARARGSH) \
|
|
$(PTEM) $(PTE) $(STREAM) $(STRERROR) $(RESOURCE) \
|
|
$(STRCHR) -D$(Machine) -D$(OS) $(UNISTD) $(LIMITSH) \
|
|
$(STRCASE) $(STDLIB) -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 and OS Bash is being compiled on.
|
|
HOSTTYPE_DECL = -DHOSTTYPE='$(SYSTEM_NAME)' -DOSTYPE='$(OS_NAME)'
|
|
|
|
/**/# The group of configuration flags. These are for shell.c
|
|
CFG_FLAGS = -DOS_NAME='$(OS_NAME)' -DSYSTEM_NAME='$(SYSTEM_NAME)' \
|
|
$(SIGLIST_FLAG)
|
|
|
|
/* **************************************************************** */
|
|
/* */
|
|
/* Support for desired libraries. */
|
|
/* This includes Termcap, Glob, Tilde, History, and Readline. */
|
|
/* */
|
|
/* **************************************************************** */
|
|
|
|
/* 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
|
|
/**/# The compiler being used to build Bash can handle -L/library/path.
|
|
SEARCH_LIB = -L
|
|
#endif /* !SEARCH_LIB_NEEDS_SPACE */
|
|
|
|
#if defined (EXTRA_LIB_SEARCH_PATH)
|
|
/**/# Additional instructions to the linker telling it how to find libraries.
|
|
LOCAL_LD_PATH = EXTRA_LIB_SEARCH_PATH
|
|
EXTRA_LD_PATH = $(SEARCH_LIB)$(LOCAL_LD_PATH)
|
|
#endif /* EXTRA_LIB_SEARCH_PATH */
|
|
|
|
/* Right now we assume that you have the full source code to Bash. If
|
|
you simply have the library and header files installed, then
|
|
undefine HAVE_READLINE_SOURCE. */
|
|
#define HAVE_READLINE_SOURCE
|
|
|
|
#if defined (HAVE_READLINE_SOURCE)
|
|
|
|
RL_LIBSRC = $(LIBSRC)readline/
|
|
RL_LIBDOC = $(RL_LIBSRC)doc/
|
|
RL_LIBDIR = $(LIBPATH)readline/
|
|
RL_ABSSRC = $${topdir}/$(RL_LIBDIR)
|
|
|
|
READLINE_LIBRARY = $(RL_LIBDIR)libreadline.a
|
|
|
|
/**/# The source, object and documentation of the GNU Readline library.
|
|
READLINE_SOURCE = $(RL_LIBSRC)rldefs.h $(RL_LIBSRC)rlconf.h \
|
|
$(RL_LIBSRC)readline.h \
|
|
$(RL_LIBSRC)chardefs.h $(RL_LIBSRC)keymaps.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 \
|
|
$(RL_LIBSRC)vi_mode.c $(RL_LIBSRC)history.c \
|
|
$(RL_LIBSRC)readline.c $(RL_LIBSRC)tilde.c \
|
|
$(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)posixstat.h $(RL_LIBSRC)tilde.h \
|
|
$(RL_LIBSRC)xmalloc.c
|
|
|
|
READLINE_OBJ = $(RL_LIBDIR)readline.o $(RL_LIBDIR)funmap.o \
|
|
$(RL_LIBDIR)parens.o $(RL_LIBDIR)search.o \
|
|
$(RL_LIBDIR)keymaps.o $(RL_LIBDIR)history.o \
|
|
$(RL_LIBDIR)rltty.o $(RL_LIBDIR)complete.o \
|
|
$(RL_LIBDIR)bind.o $(RL_LIBDIR)isearch.o \
|
|
$(RL_LIBDIR)display.o $(RL_LIBDIR)signals.o \
|
|
$(RL_LIBDIR)tilde.o $(RL_LIBDIR)xmalloc.o
|
|
|
|
READLINE_DOC = $(RL_LIBDOC)rlman.texinfo $(RL_LIBDOC)rluser.texinfo \
|
|
$(RL_LIBDOC)rltech.texinfo
|
|
|
|
READLINE_DOC_SUPPORT = $(RL_LIBDOC)Makefile $(RL_LIBDOC)readline.dvi \
|
|
$(RL_LIBDOC)readline.info
|
|
|
|
/**/# This has to be written funny to avoid looking like a C comment starter.
|
|
READLINE_EXAMPLES = $(RL_LIBSRC)examples/[a-zA-Z]*.[ch] \
|
|
$(RL_LIBSRC)examples/Makefile $(RL_LIBSRC)examples/Inputrc
|
|
|
|
/**/# Support files for GNU Readline.
|
|
READLINE_SUPPORT = $(RL_LIBSRC)Makefile $(RL_LIBSRC)ChangeLog \
|
|
$(RL_LIBSRC)COPYING $(READLINE_EXAMPLES) \
|
|
$(READLINE_DOC_SUPPORT)
|
|
|
|
#else /* !HAVE_READLINE_SOURCE */
|
|
|
|
# if defined (READLINE)
|
|
READLINE_LIBRARY = -lreadline
|
|
# endif /* READLINE */
|
|
RL_LIBDIR = $(srcdir)/$(LIBSRC)readline/
|
|
|
|
#endif /* !HAVE_READLINE_SOURCE */
|
|
|
|
/* Right now we assume that you have the full source code to Bash,
|
|
including the source code to the history library. If you only have
|
|
the library and header files installed, then you can undefine
|
|
HAVE_HISTORY_SOURCE. */
|
|
#define HAVE_HISTORY_SOURCE
|
|
|
|
#if defined (READLINE) && !defined (HISTORY)
|
|
# define HISTORY
|
|
#endif /* READLINE && !HISTORY */
|
|
|
|
# if defined (HISTORY) && !defined (READLINE)
|
|
/**/# You are compiling with history features but without line editing.
|
|
HISTORY_LIB = -lhistory
|
|
# endif /* HISTORY && !READLINE */
|
|
|
|
#if defined (HISTORY)
|
|
HIST_SUPPORT_SRC = bashhist.c
|
|
HIST_SUPPORT_OBJ = bashhist.o
|
|
#endif /* HISTORY */
|
|
|
|
#if defined (HAVE_HISTORY_SOURCE)
|
|
|
|
HIST_LIBSRC = $(LIBSRC)readline/
|
|
HIST_LIBDOC = $(HIST_LIBSRC)doc/
|
|
HIST_LIBDIR = $(LIBPATH)readline/
|
|
HIST_ABSSRC = $${topdir}/$(HIST_LIBDIR)/
|
|
|
|
/* If you are building with readline, then you do not explicitly need the
|
|
history library. */
|
|
# if defined (READLINE)
|
|
HISTORY_LIBRARY =
|
|
# else
|
|
HISTORY_LIBRARY = $(HIST_LIBDIR)libhistory.a
|
|
# endif /* !READLINE */
|
|
|
|
/**/# The source, object and documentation of the history library.
|
|
HISTORY_SOURCE = $(HIST_LIBSRC)history.c $(HIST_LIBSRC)history.h
|
|
HISTORY_OBJ = $(HIST_LIBDIR)history.o
|
|
HISTORY_DOC = $(HIST_LIBDOC)hist.texinfo $(HIST_LIBDOC)hsuser.texinfo \
|
|
$(HIST_LIBDOC)hstech.texinfo
|
|
|
|
/**/# Directory list for -L so that the link editor (ld) can find -lhistory.
|
|
# if defined (HISTORY) && !defined (READLINE)
|
|
# if !defined (LD_HAS_NO_DASH_L)
|
|
HISTORY_LDFLAGS = $(SEARCH_LIB)$(HIST_LIBDIR)
|
|
# endif /* LD_HAS_NO_DASH_L */
|
|
# endif /* HISTORY && !READLINE */
|
|
#else /* !HAVE_HISTORY_SOURCE */
|
|
# if defined (HISTORY) && !defined (READLINE)
|
|
HISTORY_LIBRARY = -lhistory
|
|
HISTORY_LDFLAGS = $(SEARCH_LIB)$(libdir) $(SEARCH_LIB)/usr/local/lib
|
|
# endif /* HISTORY && !READLINE */
|
|
#endif /* !HAVE_HISTORY_SOURCE */
|
|
|
|
#if defined (USE_GNU_TERMCAP)
|
|
# define HAVE_TERMCAP_SOURCE
|
|
TERM_LIBSRC = $(LIBSRC)termcap/
|
|
TERM_LIBDIR = $(LIBPATH)termcap/
|
|
TERM_ABSSRC = $${topdir}/$(TERM_LIBDIR)
|
|
|
|
/**/# The source, object and documentation for the GNU Termcap library.
|
|
TERMCAP_LIBRARY = $(TERM_LIBDIR)libtermcap.a
|
|
|
|
TERMCAP_SOURCE = $(TERM_LIBSRC)termcap.c $(TERM_LIBSRC)tparam.c
|
|
TERMCAP_OBJ = $(TERM_LIBDIR)termcap.o $(TERM_LIBDIR)tparam.o
|
|
TERMCAP_DOC = $(TERM_LIBSRC)termcap.texinfo
|
|
TERMCAP_SUPPORT = $(TERM_LIBSRC)Makefile $(TERM_LIBSRC)ChangeLog
|
|
|
|
# if !defined (LD_HAS_NO_DASH_L)
|
|
TERMCAP_LDFLAGS = $(SEARCH_LIB)$(TERM_LIBDIR)
|
|
# endif /* !LD_HAS_NO_DASH_L */
|
|
#else /* !USE_GNU_TERMCAP */
|
|
|
|
/* Guessed at symbol for LIBRARIES, below. */
|
|
# if defined (USE_TERMCAP_EMULATION)
|
|
TERMCAP_LIBRARY = -lcurses
|
|
# else /* !USE_TERMCAP_EMULATION */
|
|
TERMCAP_LIBRARY = -ltermcap
|
|
# endif /* !USE_TERMCAP_EMULATION */
|
|
#endif /* !USE_GNU_TERMCAP */
|
|
|
|
/* The glob library is always used. */
|
|
#define USE_GLOB_LIBRARY
|
|
|
|
#if defined (USE_GLOB_LIBRARY)
|
|
GLOB_LIBSRC = $(LIBSRC)glob/
|
|
GLOB_LIBDIR = $(LIBPATH)glob/
|
|
GLOB_ABSSRC = $${topdir}/$(GLOB_LIBDIR)
|
|
|
|
GLOB_LIBRARY = $(GLOB_LIBDIR)libglob.a
|
|
|
|
GLOB_SOURCE = $(GLOB_LIBSRC)glob.c $(GLOB_LIBSRC)fnmatch.c \
|
|
$(GLOB_LIBSRC)fnmatch.h
|
|
GLOB_OBJ = $(GLOB_LIBDIR)glob.o $(GLOB_LIBDIR)fnmatch.o
|
|
GLOB_DOC = $(GLOB_LIBSRC)doc/glob.texi $(GLOB_LIBSRC)doc/Makefile
|
|
GLOB_SUPPORT= $(GLOB_LIBSRC)Makefile $(GLOB_LIBSRC)ChangeLog
|
|
|
|
# if !defined (LD_HAS_NO_DASH_L)
|
|
GLOB_LDFLAGS = $(SEARCH_LIB)$(GLOB_LIBDIR)
|
|
# endif /* !LD_HAS_NO_DASH_L */
|
|
GLOB_LIB = -lglob
|
|
#endif /* USE_GLOB_LIBRARY */
|
|
|
|
/* The source code for the tilde expansion library. */
|
|
#if defined (HAVE_READLINE_SOURCE)
|
|
# define HAVE_TILDE_SOURCE
|
|
#endif /* HAVE_READLINE_SOURCE */
|
|
|
|
#if defined (HAVE_TILDE_SOURCE)
|
|
/**/# The source, object and documentation for the GNU Tilde library.
|
|
TILDE_LIBSRC = $(LIBSRC)tilde/
|
|
TILDE_LIBDIR = $(LIBPATH)tilde/
|
|
TILDE_ABSSRC = $${topdir}/$(TILDE_LIBDIR)
|
|
|
|
TILDE_LIBRARY = $(TILDE_LIBDIR)libtilde.a
|
|
|
|
TILDE_SOURCE = $(TILDE_LIBSRC)tilde.c $(TILDE_LIBSRC)tilde.h
|
|
TILDE_OBJ = $(TILDE_LIBDIR)tilde.o
|
|
TILDE_DOC = $(TILDE_LIBSRC)doc/tilde.texi $(TILDE_LIBSRC)doc/Makefile
|
|
TILDE_SUPPORT = $(TILDE_LIBSRC)Makefile $(TILDE_LIBSRC)ChangeLog
|
|
|
|
TILDE_LIB = -ltilde
|
|
|
|
# if !defined (LD_HAS_NO_DASH_L)
|
|
TILDE_LDFLAGS = $(SEARCH_LIB)$(TILDE_LIBDIR)
|
|
# endif /* !LD_HAS_NO_DASH_L */
|
|
|
|
#else /* !HAVE_TILDE_SOURCE */
|
|
/**/# Guessed at location of the tilde
|
|
TILDE_LIBRARY = $(libdir)/libtilde.a
|
|
#endif /* !HAVE_TILDE_SOURCE */
|
|
|
|
#if defined (USE_GNU_MALLOC_LIBRARY)
|
|
/**/# Our malloc library.
|
|
MALLOC_LIBSRC = $(LIBSRC)malloclib/
|
|
MALLOC_LIBDIR = $(LIBPATH)malloclib/
|
|
MALLOC_ABSSRC = $${topdir}/$(MALLOC_LIBDIR)
|
|
|
|
MALLOC_LIBRARY = $(MALLOC_LIBDIR)libmalloc.a
|
|
|
|
MALLOC_SOURCE = $(MALLOC_LIBSRC)calloc.c $(MALLOC_LIBSRC)cfree.c \
|
|
$(MALLOC_LIBSRC)free.c $(MALLOC_LIBSRC)malloc.c \
|
|
$(MALLOC_LIBSRC)mcheck.c $(MALLOC_LIBSRC)memalign.c \
|
|
$(MALLOC_LIBSRC)morecore.c $(MALLOC_LIBSRC)mstats.c \
|
|
$(MALLOC_LIBSRC)mtrace.c $(MALLOC_LIBSRC)realloc.c \
|
|
$(MALLOC_LIBSRC)valloc.c
|
|
MALLOC_OBJ = $(MALLOC_LIBDIR)calloc.c $(MALLOC_LIBDIR)cfree.c \
|
|
$(MALLOC_LIBDIR)free.c $(MALLOC_LIBDIR)malloc.c \
|
|
$(MALLOC_LIBDIR)mcheck.c $(MALLOC_LIBDIR)memalign.c \
|
|
$(MALLOC_LIBDIR)morecore.c $(MALLOC_LIBDIR)mstats.c \
|
|
$(MALLOC_LIBDIR)mtrace.c $(MALLOC_LIBDIR)realloc.c \
|
|
$(MALLOC_LIBDIR)valloc.c
|
|
|
|
MALLOC_SUPPORT= $(MALLOC_LIBSRC)Makefile
|
|
MALLOC_CFLAGS = -DUSE_GNU_MALLOC_LIBRARY
|
|
|
|
# if !defined (LD_HAS_NO_DASH_L)
|
|
MALLOC_LDFLAGS = $(SEARCH_LIB)$(MALLOC_LIBDIR)
|
|
# endif /* !LD_HAS_NO_DASH_L */
|
|
MALLOC_LIB = -lmalloc
|
|
|
|
MALLOC_DEP = $(MALLOC_LIBRARY)
|
|
#else
|
|
MALLOC_LIBRARY =
|
|
#endif /* USE_GNU_MALLOC_LIBRARY */
|
|
|
|
BASHPOSIX_LIB = $(LIBSRC)posixheaders/
|
|
BASHPOSIX_SUPPORT = $(BASHPOSIX_LIB)posixstat.h $(BASHPOSIX_LIB)ansi_stdlib.h \
|
|
$(BASHPOSIX_LIB)memalloc.h $(BASHPOSIX_LIB)stdc.h
|
|
|
|
/**/# Declare all of the sources for the libraries that we have.
|
|
LIBRARY_SOURCE = $(READLINE_SOURCE) $(HISTORY_SOURCE) $(TERMCAP_SOURCE) \
|
|
$(GLOB_SOURCE) $(TILDE_SOURCE) $(MALLOC_SOURCE)
|
|
LIBRARY_DOC = $(READLINE_DOC) $(HISTORY_DOC) $(TERMCAP_DOC) $(GLOB_DOC) \
|
|
$(TILDE_DOC) $(MALLOC_DOC)
|
|
LIBRARY_SUPPORT = $(READLINE_SUPPORT) $(HISTORY_SUPPORT) $(TERMCAP_SUPPORT) \
|
|
$(GLOB_SUPPORT) $(TILDE_SUPPORT) $(MALLOC_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 (or curses) if you are linking with GNU Readline.
|
|
# if defined (USE_TERMCAP_EMULATION)
|
|
TERMCAP_LIB = -lcurses
|
|
# else /* !USE_TERMCAP_EMULATION */
|
|
TERMCAP_LIB = -ltermcap
|
|
# endif /* !USE_TERMCAP_EMULATION */
|
|
|
|
/**/# Directory list for -L so that the link editor (ld) can find -lreadline.
|
|
# if !defined (LD_HAS_NO_DASH_L)
|
|
# if defined (HAVE_READLINE_SOURCE)
|
|
READLINE_LDFLAGS = $(SEARCH_LIB)$(RL_LIBDIR) $(TERMCAP_LDFLAGS)
|
|
# else
|
|
READLINE_LDFLAGS = $(TERMCAP_LDFLAGS) $(SEARCH_LIB)$(libdir) \
|
|
$(SEARCH_LIB)/usr/local/lib
|
|
# endif /* HAVE_READLINE_SOURCE */
|
|
# endif /* LD_HAS_NO_DASH_L */
|
|
|
|
/**/# The source and object of the bash<->readline interface code.
|
|
RL_SUPPORT_SRC = bashline.c bracecomp.c
|
|
RL_SUPPORT_OBJ = bashline.o $(BRACECOMP_OBJECT)
|
|
#endif /* READLINE */
|
|
|
|
/**/# The order is important. Most dependent first.
|
|
#if defined (LD_HAS_NO_DASH_L)
|
|
/**/# This linker does not know how to grok the -l flag, or perhaps how
|
|
/**/# to grok the -L flag, or both.
|
|
LIBRARIES = $(READLINE_LIBRARY) $(HISTORY_LIBRARY) $(TERMCAP_LIBRARY) \
|
|
$(GLOB_LIBRARY) $(TILDE_LIBRARY) $(MALLOC_LIBRARY) $(LOCAL_LIBS)
|
|
#else /* !LD_HAS_NO_DASH_L */
|
|
LIBRARIES = $(READLINE_LIB) $(HISTORY_LIB) $(TERMCAP_LIB) $(GLOB_LIB) \
|
|
$(TILDE_LIB) $(MALLOC_LIB) $(LOCAL_LIBS)
|
|
#endif /* !LD_HAS_NO_DASH_L */
|
|
|
|
#if defined (READLINE)
|
|
# if defined (HAVE_TERMCAP_SOURCE)
|
|
TERMCAP_DEP = $(TERMCAP_LIBRARY)
|
|
# endif /* HAVE_TERMCAP_SOURCE */
|
|
# if defined (HAVE_READLINE_SOURCE)
|
|
READLINE_DEP = $(READLINE_LIBRARY)
|
|
# endif /* HAVE_READLINE_SOURCE */
|
|
#endif /* READLINE */
|
|
|
|
#if defined (HISTORY) && defined (HAVE_HISTORY_SOURCE) && !defined (READLINE)
|
|
HISTORY_DEP = $(HISTORY_LIBRARY)
|
|
#endif
|
|
|
|
#if defined (USE_GLOB_LIBRARY)
|
|
GLOB_DEP = $(GLOB_LIBRARY)
|
|
#else
|
|
GLOBC = glob.c fnmatch.c
|
|
GLOBO = glob.o fnmatch.o
|
|
#endif /* USE_GLOB_LIBRARY */
|
|
|
|
#if defined (HAVE_TILDE_SOURCE)
|
|
TILDE_DEP = $(TILDE_LIBRARY)
|
|
#endif
|
|
|
|
/**/# Source files for libraries that Bash depends on.
|
|
LIBDEP = $(READLINE_DEP) $(TERMCAP_DEP) $(GLOB_DEP) $(HISTORY_DEP) $(TILDE_DEP) $(MALLOC_DEP)
|
|
|
|
/**/# Rules for cleaning the readline and termcap sources.
|
|
#if defined (HAVE_READLINE_SOURCE)
|
|
CLEAN_READLINE = (cd $(RL_LIBDIR); $(MAKE) $(MFLAGS) $@)
|
|
#else
|
|
CLEAN_READLINE = :
|
|
#endif /* !HAVE_READLINE_SOURCE */
|
|
|
|
#if defined (HAVE_HISTORY_SOURCE)
|
|
# if !defined (READLINE)
|
|
CLEAN_HISTORY = (cd $(HIST_LIBDIR); $(MAKE) $(MFLAGS) $@)
|
|
# else
|
|
CLEAN_HISTORY = :
|
|
# endif /* READLINE */
|
|
#endif /* !HAVE_HISTORY_SOURCE */
|
|
|
|
#if defined (HAVE_TERMCAP_SOURCE)
|
|
CLEAN_TERMCAP = (cd $(TERM_LIBDIR); $(MAKE) $(MFLAGS) $@)
|
|
#else
|
|
CLEAN_TERMCAP = :
|
|
#endif /* !HAVE_TERMCAP_SOURCE */
|
|
|
|
#if defined (USE_GLOB_LIBRARY)
|
|
CLEAN_GLOB = (cd $(GLOB_LIBDIR); $(MAKE) $(MFLAGS) $@)
|
|
#else
|
|
CLEAN_GLOB = :
|
|
#endif /* !USE_GLOB_LIBRARY */
|
|
|
|
#if defined (HAVE_TILDE_SOURCE)
|
|
CLEAN_TILDE = (cd $(TILDE_LIBDIR); $(MAKE) $(MFLAGS) $@)
|
|
#else
|
|
CLEAN_TILDE = :
|
|
#endif /* !HAVE_TILDE_SOURCE */
|
|
|
|
#if defined (USE_GNU_MALLOC_LIBRARY)
|
|
CLEAN_MALLOC = (cd $(MALLOC_LIBDIR); $(MAKE) $(MFLAGS) $@)
|
|
#else
|
|
CLEAN_MALLOC = :
|
|
#endif /* !USE_GNU_MALLOC_LIBRARY */
|
|
|
|
LIBRARY_LDFLAGS = $(READLINE_LDFLAGS) $(HISTORY_LDFLAGS) $(TILDE_LDFLAGS) \
|
|
$(GLOB_LDFLAGS) $(MALLOC_LDFLAGS)
|
|
|
|
/**/# The directory which contains the source for malloc. The name must
|
|
/**/# end in a slash, as in "./lib/malloc/".
|
|
ALLOC_LIBSRC = $(LIBSRC)malloc/
|
|
ALLOC_LIBDIR = $(LIBPATH)malloc/
|
|
ALLOC_ABSSRC = $${topdir}/$(ALLOC_LIBDIR)
|
|
|
|
/**/# Our malloc.
|
|
#if defined (USE_GNU_MALLOC) && !defined (USE_GNU_MALLOC_LIBRARY)
|
|
|
|
MALLOC_OBJ = $(ALLOC_LIBDIR)malloc.o
|
|
MALLOC_SRC = $(ALLOC_LIBSRC)malloc.c
|
|
MALLOC_DEP = $(MALLOC_SRC) $(ALLOC_LIBSRC)getpagesize.h
|
|
MALLOC_FLAGS = -Drcheck -Dbotch=programming_error
|
|
|
|
MALLOC_LIBRARY =
|
|
|
|
#endif /* USE_GNU_MALLOC && !USE_GNU_MALLOC_LIBRARY */
|
|
|
|
/* If this user doesn't have alloca (), then we must try to supply them
|
|
with a working one. */
|
|
#if !defined (HAVE_ALLOCA)
|
|
ALLOCA = $(ALLOC_LIBDIR)alloca.o
|
|
# if defined (ALLOCA_ASM)
|
|
ALLOCA_SOURCE = ALLOCA_ASM
|
|
ALLOCA_OBJECT = ALLOCA_OBJ
|
|
# else
|
|
ALLOCA_SOURCE = alloca.c
|
|
ALLOCA_OBJECT = alloca.o
|
|
# endif /* ALLOCA_ASM */
|
|
ALLOCA_DEP = $(ALLOC_LIBSRC)$(ALLOCA_SOURCE)
|
|
#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_LIBSRC)getpagesize.h
|
|
ALLOC_FILES = $(ALLOC_LIBSRC)malloc.c $(ALLOC_LIBSRC)alloca.c \
|
|
$(ALLOC_LIBSRC)i386-alloca.s $(ALLOC_LIBSRC)x386-alloca.s \
|
|
$(ALLOC_LIBSRC)xmalloc.c
|
|
|
|
/* Perhaps restore the `i386' define. */
|
|
#if defined (i386_defined)
|
|
# define i386
|
|
# undef i386_defined
|
|
#endif /* i386_defined */
|
|
|
|
#if defined (USE_GNU_MALLOC) && !defined (USE_GNU_MALLOC_LIBRARY)
|
|
$(MALLOC_OBJ): $(MALLOC_DEP)
|
|
@sh $(SUPPORT_SRC)mkdirs $(ALLOC_LIBDIR)
|
|
@$(RM) $@
|
|
@($(LIBINC_DECL); cd $(ALLOC_LIBDIR) ; \
|
|
if [ ! -f Makefile ]; then cp $(ALLOC_ABSSRC)Makefile Makefile ; fi; \
|
|
$(MAKE) $(MFLAGS) \
|
|
CFLAGS='$(LIBRARY_CFLAGS) $(MALLOC_FLAGS)' \
|
|
CPPFLAGS='$(CPPFLAGS)' MALLOC_SOURCE=$(MALLOC_SRC) \
|
|
srcdir=$(ALLOC_ABSSRC) malloc.o )
|
|
#endif /* USE_GNU_MALLOC && !USE_GNU_MALLOC_LIBRARY */
|
|
|
|
#if !defined (HAVE_ALLOCA)
|
|
$(ALLOCA): $(ALLOCA_DEP)
|
|
@sh $(SUPPORT_SRC)mkdirs $(ALLOC_LIBDIR)
|
|
@$(RM) $@
|
|
@($(LIBINC_DECL); cd $(ALLOC_LIBDIR) ; \
|
|
if [ ! -f Makefile ]; then cp $(ALLOC_ABSSRC)Makefile Makefile ; fi; \
|
|
$(MAKE) $(MFLAGS) CC='$(CC)' \
|
|
CFLAGS='$(LIBRARY_CFLAGS) $(MALLOC_FLAGS)' \
|
|
CPPFLAGS='$(CPPFLAGS)' ALLOCA_SOURCE=$(ALLOCA_SOURCE) \
|
|
ALLOCA_OBJECT=$(ALLOCA_OBJECT) \
|
|
srcdir=$(ALLOC_ABSSRC) alloca.o )
|
|
#endif /* !HAVE_ALLOCA */
|
|
|
|
/**/# The location of ranlib on your system.
|
|
#if defined (RANLIB_LOCATION)
|
|
RANLIB = RANLIB_LOCATION
|
|
#else
|
|
RANLIB = ranlib
|
|
#endif /* RANLIB_LOCATION */
|
|
|
|
/* **************************************************************** */
|
|
/* */
|
|
/* Support for optional object files */
|
|
/* */
|
|
/* **************************************************************** */
|
|
#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 source and object of the curly brace expansion and completion code.
|
|
BRACES_SOURCE = braces.c
|
|
BRACECOMP_SOURCE = bracecomp.c
|
|
#if defined (BRACE_EXPANSION)
|
|
BRACES_OBJECT = braces.o
|
|
# if defined (READLINE)
|
|
BRACECOMP_OBJECT = bracecomp.o
|
|
# endif /* READLINE */
|
|
#endif /* BRACE_EXPANSION */
|
|
|
|
#if defined (REQUIRED_LIBRARIES)
|
|
/**/# Locally required libraries.
|
|
LOCAL_LIBS = REQUIRED_LIBRARIES
|
|
#endif /* REQUIRED_LIBRARIES */
|
|
|
|
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_SOURCE) \
|
|
vprint.c input.c bashhist.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 bashansi.h dispose_cmd.h make_cmd.h \
|
|
subst.h externs.h siglist.h bashhist.h bashtypes.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_OBJ) $(ALLOCA) $(BRACES_OBJECT) \
|
|
unwind_prot.o $(VPRINT_OBJ) input.o $(HIST_SUPPORT_OBJ) \
|
|
$(SIGLIST) $(GETCWD) version.o $(RL_SUPPORT_OBJ) $(BUILTINS_LIB)
|
|
|
|
/**/# Where the source code of the shell builtins resides.
|
|
BUILTIN_SRCDIR=$(srcdir)/builtins/
|
|
/**/# The trailing slash was left off this definition on purpose
|
|
BUILTIN_ABSSRC=$${topdir}/builtins
|
|
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 $(LOAD_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_SRC = $(DEFDIR)mkbuiltins.c $(DEFDIR)common.c \
|
|
$(DEFDIR)hashcom.h $(DEFDIR)/bashgetopt.c $(GETOPT_SOURCE)
|
|
BUILTIN_C_OBJ = $(GETOPTS_OBJ) $(DEFDIR)common.o $(DEFDIR)bashgetopt.o
|
|
BUILTIN_OBJS = $(DEFDIR)alias.o $(DEFDIR)bind.o $(DEFDIR)break.o \
|
|
$(DEFDIR)builtin.o $(DEFDIR)cd.o $(DEFDIR)colon.o \
|
|
$(DEFDIR)command.o $(DEFDIR)declare.o $(LOAD_OBJ) \
|
|
$(DEFDIR)echo.o $(DEFDIR)enable.o $(DEFDIR)eval.o \
|
|
$(DEFDIR)exec.o $(DEFDIR)exit.o $(DEFDIR)fc.o \
|
|
$(DEFDIR)fg_bg.o $(DEFDIR)hash.o $(DEFDIR)help.o \
|
|
$(DEFDIR)history.o $(DEFDIR)jobs.o $(DEFDIR)kill.o \
|
|
$(DEFDIR)let.o $(DEFDIR)read.o $(DEFDIR)return.o \
|
|
$(DEFDIR)set.o $(DEFDIR)setattr.o $(DEFDIR)shift.o \
|
|
$(DEFDIR)source.o $(DEFDIR)suspend.o $(DEFDIR)test.o \
|
|
$(DEFDIR)times.o $(DEFDIR)trap.o $(DEFDIR)type.o \
|
|
$(DEFDIR)ulimit.o $(DEFDIR)umask.o $(DEFDIR)wait.o \
|
|
$(BUILTIN_C_OBJ)
|
|
#if defined (GETOPTS_BUILTIN)
|
|
GETOPTS_OBJ = $(DEFDIR)getopts.o
|
|
#endif
|
|
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_SRC)
|
|
|
|
/**/# Documentation for the shell.
|
|
DOCDIR = $(srcdir)/documentation/
|
|
BASH_TEXINFO = $(DOCDIR)*.texi $(DOCDIR)*.tex \
|
|
$(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
|
|
#if !defined (HAVE_WAIT_H)
|
|
ENDIAN_HEADER = bash_endian.h
|
|
#else
|
|
ENDIAN_HEADER =
|
|
#endif
|
|
ENDIAN_OUTPUT = endian.aux $(ENDIAN_HEADER)
|
|
|
|
SIGNAMES_SUPPORT = signames.c
|
|
SIGNAMES_OUTPUT = signames.aux signames.h
|
|
|
|
SUPPORT_SRC = $(srcdir)/support/
|
|
SDIR = ./support/
|
|
MKTARFILE = $(SDIR)mktarfile
|
|
SCRIPTS_SUPPORT = $(SUPPORT_SRC)mksysdefs $(SUPPORT_SRC)cppmagic \
|
|
$(SUPPORT_SRC)cat-s $(MKTARFILE) $(SUPPORT_SRC)mail-shell \
|
|
$(SUPPORT_SRC)inform $(SUPPORT_SRC)/fixdist \
|
|
$(SUPPORT_SRC)mklinks $(SUPPORT_SRC)PORTING \
|
|
$(SUPPORT_SRC)/clone.bash
|
|
FAQ = $(SUPPORT_SRC)FAQ
|
|
|
|
TEST_SUITE = ./test-suite/
|
|
TEST_SUITE_SUPPORT = $(TEST_SUITE)[a-zA-Z0-9]* $(SUPPORT_SRC)recho.c
|
|
|
|
CREATED_SUPPORT = $(ENDIAN_OUTPUT) $(SIGNAMES_OUTPUT) sysdefs.h \
|
|
$(SDIR)getcppsyms recho tests/recho tests/printenv
|
|
|
|
SUPPORT = configure $(ENDIAN_SUPPORT) $(SIGNAMES_SUPPORT) $(SCRIPTS_SUPPORT) \
|
|
$(BUILTIN_SUPPORT) COPYING Makefile cpp-Makefile ChangeLog \
|
|
.distribution newversion.c $(EXAMPLES) $(SUPPORT_SRC)bash.xbm \
|
|
$(FAQ) $(SUPPORT_SRC)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 =
|
|
|
|
/**/# Things that the world at large needs.
|
|
THINGS_TO_TAR = $(SOURCES) $(LIBRARY_TAR) $(BASHDOCS) $(SUPPORT) $(BAGGAGE)
|
|
|
|
/**/# Keep GNU Make from exporting the entire environment for small machines.
|
|
.NOEXPORT:
|
|
|
|
.made: $(Program) bashbug
|
|
cp .machine .made
|
|
|
|
$(Program): .build $(OBJECTS) $(LIBDEP) $(srcdir)/.distribution
|
|
$(RM) $@
|
|
$(PURIFY) $(CC) $(LDFLAGS) $(LIBRARY_LDFLAGS) -o $(Program) $(OBJECTS) $(LIBRARIES)
|
|
ls -l $(Program)
|
|
size $(Program)
|
|
|
|
.build: $(SOURCES) cpp-Makefile newversion.aux
|
|
if ./newversion.aux -dir $(srcdir) -build; then mv -f newversion.h version.h; fi
|
|
@echo
|
|
@echo " ***************************************************"
|
|
@echo " * *"
|
|
@echo " * Making Bash-`cat $(srcdir)/.distribution`.`cat $(srcdir)/.patchlevel` for a $(Machine) running $(OS)"
|
|
@echo " * *"
|
|
@echo " ***************************************************"
|
|
@echo
|
|
@echo "$(Program) last made for a $(Machine) running $(OS)" >.machine
|
|
|
|
bashbug: $(SUPPORT_SRC)bashbug.sh cpp-Makefile newversion.aux
|
|
@sed -e "s:@MACHINE@:$(Machine):" -e "s:@OS@:$(OS):" \
|
|
-e "s:@CFLAGS@:$(CCFLAGS):" -e "s:@CC@:$(CC):" \
|
|
-e "s:@RELEASE@:`cat $(srcdir)/.distribution`:" \
|
|
-e "s:@PATCHLEVEL@:`cat $(srcdir)/.patchlevel`:" \
|
|
$(SUPPORT_SRC)bashbug.sh > $@
|
|
@chmod a+rx bashbug
|
|
|
|
version.h: newversion.aux
|
|
if ./newversion.aux -dir $(srcdir) -build; then mv -f newversion.h version.h; fi
|
|
|
|
y.tab.c: parser-built
|
|
y.tab.h: parser-built
|
|
parser-built: parse.y parser.h command.h stdc.h input.h
|
|
$(RM) $@
|
|
-if test -f y.tab.h; then mv -f y.tab.h old-y.tab.h; fi
|
|
@echo expect 66 shift/reduce conflicts
|
|
$(BISON) -d $(srcdir)/parse.y
|
|
-if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; fi
|
|
touch $@
|
|
|
|
#if defined (READLINE) && defined (HAVE_READLINE_SOURCE)
|
|
$(READLINE_LIBRARY): $(READLINE_SOURCE)
|
|
build_lib_in_dir ($(RL_LIBDIR), libreadline.a, srcdir=$(RL_ABSSRC), $(RL_ABSSRC)Makefile)
|
|
#endif /* READLINE && HAVE_READLINE_SOURCE */
|
|
|
|
#if defined (HISTORY) && defined (HAVE_HISTORY_SOURCE) && !defined (READLINE)
|
|
$(HISTORY_LIBRARY): $(HISTORY_SOURCE)
|
|
build_lib_in_dir ($(HIST_LIBDIR), libhistory.a, srcdir=$(HIST_ABSSRC), $(HIST_ABSSRC)Makefile)
|
|
#endif /* HISTORY && HAVE_HISTORY_SOURCE && !READLINE */
|
|
|
|
#if defined (HAVE_TERMCAP_SOURCE)
|
|
$(TERMCAP_LIBRARY): $(TERMCAP_SOURCE)
|
|
build_lib_in_dir ($(TERM_LIBDIR), libtermcap.a, srcdir=$(TERM_ABSSRC), $(TERM_ABSSRC)Makefile)
|
|
#endif /* HAVE_TERMCAP_SOURCE */
|
|
|
|
#if defined (USE_GLOB_LIBRARY)
|
|
$(GLOB_LIBRARY): $(GLOB_SOURCE)
|
|
build_lib_in_dir ($(GLOB_LIBDIR), libglob.a, srcdir=$(GLOB_ABSSRC), $(GLOB_ABSSRC)Makefile)
|
|
#endif /* USE_GLOB_LIBRARY */
|
|
|
|
#if defined (HAVE_TILDE_SOURCE)
|
|
$(TILDE_LIBRARY): $(TILDE_SOURCE)
|
|
build_lib_in_dir ($(TILDE_LIBDIR), libtilde.a, srcdir=$(TILDE_ABSSRC), $(TILDE_ABSSRC)Makefile)
|
|
#endif /* HAVE_TILDE_SOURCE */
|
|
|
|
#if defined (USE_GNU_MALLOC) && defined (USE_GNU_MALLOC_LIBRARY)
|
|
$(MALLOC_LIBRARY): $(MALLOC_SOURCE)
|
|
build_lib_in_dir ($(MALLOC_LIBDIR), libmalloc.a, srcdir=$(MALLOC_ABSSRC), $(MALLOC_ABSSRC)Makefile)
|
|
#endif /* USE_GNU_MALLOC && USE_GNU_MALLOC_LIBRARY */
|
|
|
|
version.o: version.c version.h
|
|
|
|
shell.o: shell.c shell.h flags.h shell.c posixstat.h filecntl.h stdc.h $(ENDIAN_HEADER) parser.h
|
|
$(RM) $@
|
|
$(CC) $(CFG_FLAGS) $(CCFLAGS) $(CPPFLAGS) -c $(srcdir)/shell.c
|
|
|
|
#if !defined (HAVE_WAIT_H)
|
|
$(ENDIAN_HEADER): endian.aux
|
|
$(RM) $@
|
|
./endian.aux $@
|
|
#endif
|
|
|
|
signames.h: signames.aux
|
|
$(RM) $@
|
|
./signames.aux $@
|
|
|
|
variables.o: variables.c shell.h hash.h flags.h variables.h
|
|
$(RM) $@
|
|
$(CC) -c $(CCFLAGS) $(HOSTTYPE_DECL) $(CPPFLAGS) $(srcdir)/variables.c
|
|
|
|
builtins/libbuiltins.a: $(BUILTIN_OBJS) config.h memalloc.h
|
|
build_builtins (libbuiltins.a)
|
|
|
|
#if 0
|
|
/* This is a nice idea, but it does not work right, and the syntax is
|
|
not universally available. */
|
|
$(BUILTIN_OBJS): $(BUILTIN_DEFS)
|
|
build_builtins ($(@F))
|
|
#endif
|
|
|
|
builtins/common.o: $(BUILTIN_SRCDIR)common.c
|
|
build_builtins (common.o)
|
|
builtins/bashgetopt.o: $(BUILTIN_SRCDIR)bashgetopt.c
|
|
build_builtins (bashgetopt.o)
|
|
|
|
builtins/builtext.h: builtins/libbuiltins.a
|
|
|
|
/* Dependencies for the main bash source. */
|
|
copy_cmd.o: shell.h command.h stdc.h hash.h
|
|
copy_cmd.o: general.h variables.h config.h memalloc.h quit.h
|
|
copy_cmd.o: dispose_cmd.h make_cmd.h subst.h externs.h
|
|
dispose_cmd.o: shell.h command.h stdc.h
|
|
dispose_cmd.o: general.h variables.h config.h memalloc.h quit.h
|
|
dispose_cmd.o: dispose_cmd.h make_cmd.h subst.h externs.h
|
|
error.o: error.h
|
|
execute_cmd.o: shell.h command.h stdc.h y.tab.h posixstat.h flags.h jobs.h
|
|
execute_cmd.o: general.h variables.h config.h memalloc.h quit.h hash.h
|
|
execute_cmd.o: unwind_prot.h siglist.h builtins/builtext.h
|
|
execute_cmd.o: dispose_cmd.h make_cmd.h subst.h externs.h bashtypes.h
|
|
expr.o: shell.h command.h stdc.h hash.h
|
|
expr.o: general.h variables.h config.h memalloc.h quit.h
|
|
expr.o: dispose_cmd.h make_cmd.h subst.h externs.h
|
|
flags.o: flags.h stdc.h config.h memalloc.h general.h quit.h
|
|
general.o: shell.h command.h stdc.h maxpath.h
|
|
general.o: general.h variables.h config.h memalloc.h quit.h machines.h
|
|
general.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
|
|
hash.o: shell.h command.h stdc.h hash.h
|
|
hash.o: general.h variables.h config.h memalloc.h quit.h
|
|
hash.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
|
|
jobs.o: shell.h command.h stdc.h hash.h trap.h jobs.h siglist.h
|
|
jobs.o: general.h variables.h config.h memalloc.h quit.h
|
|
jobs.o: dispose_cmd.h make_cmd.h subst.h externs.h builtins/builtext.h
|
|
mailcheck.o: posixstat.h maxpath.h variables.h
|
|
mailcheck.o: hash.h quit.h
|
|
make_cmd.o: shell.h command.h stdc.h flags.h input.h bashtypes.h
|
|
make_cmd.o: general.h variables.h config.h memalloc.h quit.h
|
|
make_cmd.o: dispose_cmd.h make_cmd.h subst.h externs.h
|
|
y.tab.o: shell.h command.h stdc.h flags.h maxpath.h alias.h
|
|
y.tab.o: general.h variables.h config.h memalloc.h quit.h
|
|
y.tab.o: dispose_cmd.h make_cmd.h subst.h externs.h bashtypes.h
|
|
print_cmd.o: shell.h command.h stdc.h y.tab.h
|
|
print_cmd.o: general.h variables.h config.h memalloc.h quit.h
|
|
print_cmd.o: dispose_cmd.h make_cmd.h subst.h externs.h
|
|
shell.o: shell.h command.h stdc.h flags.h machines.h
|
|
shell.o: general.h variables.h config.h memalloc.h quit.h
|
|
shell.o: dispose_cmd.h make_cmd.h subst.h externs.h
|
|
shell.o: posixstat.h filecntl.h jobs.h input.h
|
|
subst.o: shell.h command.h stdc.h flags.h jobs.h siglist.h bashtypes.h
|
|
subst.o: general.h variables.h config.h memalloc.h quit.h
|
|
subst.o: dispose_cmd.h make_cmd.h subst.h externs.h execute_cmd.h
|
|
test.o: posixstat.h
|
|
trap.o: trap.h shell.h command.h stdc.h hash.h unwind_prot.h signames.h
|
|
trap.o: general.h variables.h config.h memalloc.h quit.h
|
|
trap.o: dispose_cmd.h make_cmd.h subst.h externs.h
|
|
unwind_prot.o: config.h memalloc.h general.h unwind_prot.h
|
|
variables.o: shell.h command.h stdc.h hash.h flags.h
|
|
variables.o: config.h memalloc.h general.h variables.h quit.h
|
|
variables.o: execute_cmd.h dispose_cmd.h make_cmd.h subst.h externs.h
|
|
version.o: version.h .build
|
|
|
|
alias.o: ansi_stdlib.h
|
|
bashline.o: ansi_stdlib.h
|
|
variables.o: ansi_stdlib.h
|
|
shell.o: ansi_stdlib.h
|
|
error.o: ansi_stdlib.h
|
|
hash.o: ansi_stdlib.h
|
|
signames.o: ansi_stdlib.h
|
|
expr.o: ansi_stdlib.h
|
|
general.o: ansi_stdlib.h
|
|
input.o: ansi_stdlib.h
|
|
|
|
#if !defined (JOB_CONTROL)
|
|
jobs.o: nojobs.c
|
|
#endif /* !JOB_CONTROL */
|
|
|
|
#if defined (BRACE_EXPANSION)
|
|
braces.o: general.h shell.h variables.h quit.h config.h memalloc.h
|
|
braces.o: dispose_cmd.h make_cmd.h subst.h externs.h
|
|
braces.o: maxpath.h unwind_prot.h command.h stdc.h
|
|
# if defined (READLINE)
|
|
bracecomp.o: bracecomp.c
|
|
bracecomp.o: shell.h command.h hash.h builtins.h general.h variables.h
|
|
bracecomp.o: quit.h alias.h
|
|
bracecomp.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
|
|
# if defined (HAVE_READLINE_SOURCE)
|
|
bracecomp.o: $(RL_LIBSRC)readline.h
|
|
# endif /* HAVE_READLINE_SOURCE */
|
|
# endif /* READLINE */
|
|
#endif /* BRACE_EXPANSION */
|
|
|
|
#if defined (READLINE)
|
|
bashline.o: shell.h command.h stdc.h hash.h builtins.h execute_cmd.h
|
|
bashline.o: general.h variables.h config.h memalloc.h quit.h alias.h
|
|
bashline.o: dispose_cmd.h make_cmd.h subst.h externs.h
|
|
#endif /* READLINE */
|
|
|
|
/* Dependencies which rely on the user using the source to READLINE. */
|
|
#if defined (READLINE) && defined (HAVE_READLINE_SOURCE)
|
|
bashline.o: $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)readline.h $(RL_LIBSRC)keymaps.h
|
|
y.tab.o: $(RL_LIBSRC)keymaps.h $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)readline.h
|
|
#endif /* READLINE && HAVE_READLINE_SOURCE */
|
|
|
|
#if defined (HISTORY) && defined (HAVE_HISTORY_SOURCE)
|
|
subst.o: $(HIST_LIBSRC)history.h
|
|
bashline.o: $(HIST_LIBSRC)history.h
|
|
y.tab.o: $(HIST_LIBSRC)history.h
|
|
#endif /* HISTORY && HAVE_HISTORY_SOURCE */
|
|
|
|
#if defined (USE_GLOB_LIBRARY)
|
|
subst.o: $(GLOB_LIBSRC)fnmatch.h
|
|
execute_cmd.o: $(GLOB_LIBSRC)fnmatch.h
|
|
#endif /* USE_GLOB_LIBRARY */
|
|
|
|
#if defined (HAVE_TILDE_SOURCE)
|
|
execute_cmd.o: $(TILDE_LIBSRC)tilde.h
|
|
general.o: $(TILDE_LIBSRC)tilde.h
|
|
mailcheck.o: $(TILDE_LIBSRC)tilde.h
|
|
shell.o: $(TILDE_LIBSRC)tilde.h
|
|
subst.o: $(TILDE_LIBSRC)tilde.h
|
|
variables.o: $(TILDE_LIBSRC)tilde.h
|
|
#endif /* HAVE_TILDE_SOURCE */
|
|
|
|
/* Dependencies for the shell builtins. */
|
|
builtins/common.o: shell.h command.h config.h memalloc.h general.h error.h
|
|
builtins/common.o: variables.h input.h $(DEFDIR)hashcom.h siglist.h
|
|
builtins/common.o: quit.h unwind_prot.h 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
|
|
builtins/alias.o: command.h config.h memalloc.h error.h general.h maxpath.h
|
|
builtins/alias.o: quit.h builtins/common.h
|
|
builtins/alias.o: shell.h command.h stdc.h unwind_prot.h variables.h
|
|
builtins/alias.o: dispose_cmd.h make_cmd.h subst.h externs.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 unwind_prot.h variables.h quit.h
|
|
builtins/bind.o: $(DEFDIR)bashgetopt.h
|
|
builtins/break.o: command.h config.h memalloc.h error.h general.h maxpath.h
|
|
builtins/break.o: shell.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 $(DEFDIR)common.h
|
|
builtins/builtin.o: shell.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 quit.h
|
|
builtins/cd.o: shell.h unwind_prot.h variables.h $(DEFDIR)common.h
|
|
builtins/cd.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
|
|
builtins/command.o: command.h config.h memalloc.h error.h general.h maxpath.h
|
|
builtins/command.o: quit.h $(DEFDIR)bashgetopt.h
|
|
builtins/command.o: shell.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 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 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 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 quit.h
|
|
builtins/eval.o: shell.h unwind_prot.h variables.h
|
|
builtins/eval.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
|
|
builtins/exec.o: command.h config.h memalloc.h error.h general.h maxpath.h quit.h
|
|
builtins/exec.o: shell.h unwind_prot.h variables.h $(DEFDIR)common.h stdc.h
|
|
builtins/exec.o: dispose_cmd.h make_cmd.h subst.h externs.h execute_cmd.h
|
|
builtins/exec.o: flags.h
|
|
builtins/exit.o: command.h config.h memalloc.h error.h general.h maxpath.h
|
|
builtins/exit.o: shell.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: builtins.h command.h stdc.h
|
|
builtins/fc.o: command.h config.h memalloc.h error.h general.h maxpath.h quit.h
|
|
builtins/fc.o: flags.h unwind_prot.h variables.h shell.h
|
|
builtins/fc.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
|
|
builtins/fc.o: $(DEFDIR)bashgetopt.h bashhist.h
|
|
builtins/fg_bg.o: command.h config.h memalloc.h error.h general.h maxpath.h
|
|
builtins/fg_bg.o: shell.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 unwind_prot.h variables.h quit.h
|
|
builtins/getopts.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h
|
|
builtins/hash.o: builtins.h command.h execute_cmd.h stdc.h
|
|
builtins/hash.o: command.h config.h memalloc.h error.h general.h maxpath.h
|
|
builtins/hash.o: shell.h unwind_prot.h variables.h $(DEFDIR)common.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 unwind_prot.h variables.h quit.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 unwind_prot.h variables.h
|
|
builtins/history.o: bashhist.h
|
|
builtins/inlib.o: command.h config.h memalloc.h error.h general.h maxpath.h
|
|
builtins/inlib.o: shell.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/jobs.o: quit.h $(DEFDIR)bashgetopt.h
|
|
builtins/jobs.o: shell.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 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 unwind_prot.h variables.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 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 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
|
|
builtins/set.o: shell.h unwind_prot.h variables.h flags.h stdc.h
|
|
builtins/setattr.o: command.h config.h memalloc.h error.h general.h maxpath.h
|
|
builtins/setattr.o: quit.h $(DEFDIR)common.h $(DEFDIR)bashgetopt.h
|
|
builtins/setattr.o: shell.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 unwind_prot.h variables.h
|
|
builtins/shift.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.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 unwind_prot.h variables.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 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 unwind_prot.h variables.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 unwind_prot.h variables.h
|
|
builtins/trap.o: command.h config.h memalloc.h error.h general.h maxpath.h
|
|
builtins/trap.o: quit.h $(DEFDIR)common.h
|
|
builtins/trap.o: shell.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/type.o: quit.h $(DEFDIR)common.h
|
|
builtins/type.o: shell.h unwind_prot.h variables.h execute_cmd.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 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 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 unwind_prot.h variables.h
|
|
|
|
builtins/bashgetopt.o: bashansi.h ansi_stdlib.h
|
|
builtins/mkbuiltins.o: bashansi.h ansi_stdlib.h
|
|
builtins/fc.o: bashansi.h ansi_stdlib.h
|
|
|
|
#if defined (READLINE) && defined (HAVE_READLINE_SOURCE)
|
|
builtins/bind.o: $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)readline.h $(RL_LIBSRC)keymaps.h
|
|
#endif /* READLINE && HAVE_READLINE_SOURCE */
|
|
|
|
#if defined (HISTORY) && defined (HAVE_HISTORY_SOURCE)
|
|
builtins/bind.o: $(HIST_LIBSRC)history.h
|
|
builtins/fc.o: $(HIST_LIBSRC)history.h
|
|
builtins/history.o: $(HIST_LIBSRC)history.h
|
|
#endif /* HISTORY && HAVE_HISTORY_SOURCE */
|
|
|
|
#if defined (HAVE_TILDE_SOURCE)
|
|
builtins/common.o: $(TILDE_LIBSRC)tilde.h
|
|
builtins/cd.o: $(TILDE_LIBSRC)tilde.h
|
|
#endif /* HAVE_TILDE_SOURCE */
|
|
|
|
builtins/alias.o: builtins/alias.def
|
|
builtins/bind.o: builtins/bind.def
|
|
builtins/break.o: builtins/break.def
|
|
builtins/builtin.o: builtins/builtin.def
|
|
builtins/cd.o: builtins/cd.def
|
|
builtins/colon.o: builtins/colon.def
|
|
builtins/command.o: builtins/command.def
|
|
builtins/declare.o: builtins/declare.def
|
|
builtins/echo.o: builtins/echo.def
|
|
builtins/enable.o: builtins/enable.def
|
|
builtins/eval.o: builtins/eval.def
|
|
builtins/exec.o: builtins/exec.def
|
|
builtins/exit.o: builtins/exit.def
|
|
builtins/fc.o: builtins/fc.def
|
|
builtins/fg_bg.o: builtins/fg_bg.def
|
|
builtins/getopts.o: builtins/getopts.def
|
|
builtins/hash.o: builtins/hash.def
|
|
builtins/help.o: builtins/help.def
|
|
builtins/histctl.o: builtins/histctl.def
|
|
builtins/history.o: builtins/history.def
|
|
builtins/inlib.o: builtins/inlib.def
|
|
builtins/jobs.o: builtins/jobs.def
|
|
builtins/kill.o: builtins/kill.def
|
|
builtins/let.o: builtins/let.def
|
|
builtins/read.o: builtins/read.def
|
|
builtins/reserved.o: builtins/reserved.def
|
|
builtins/return.o: builtins/return.def
|
|
builtins/set.o: builtins/set.def
|
|
builtins/setattr.o: builtins/setattr.def
|
|
builtins/shift.o: builtins/shift.def
|
|
builtins/source.o: builtins/source.def
|
|
builtins/suspend.o: builtins/suspend.def
|
|
builtins/test.o: builtins/test.def
|
|
builtins/times.o: builtins/times.def
|
|
builtins/trap.o: builtins/trap.def
|
|
builtins/type.o: builtins/type.def
|
|
builtins/ulimit.o: builtins/ulimit.def
|
|
builtins/umask.o: builtins/umask.def
|
|
builtins/wait.o: builtins/wait.def
|
|
|
|
$(Program).tar: $(THINGS_TO_TAR) .distribution
|
|
@$(MKTARFILE) $(Program) `cat .distribution` $(THINGS_TO_TAR)
|
|
|
|
$(Program).tar$(COMPRESS_EXT): $(Program).tar
|
|
$(COMPRESS) < $(Program).tar > $@
|
|
|
|
clone: $(THINGS_TO_TAR)
|
|
@$(MKTARFILE) +notar $(Machine) $(OS) $(THINGS_TO_TAR)
|
|
|
|
installdirs:
|
|
@${SHELL} $(SUPPORT_SRC)mkdirs $(bindir)
|
|
@${SHELL} $(SUPPORT_SRC)mkdirs $(mandir) $(man3dir)
|
|
@${SHELL} $(SUPPORT_SRC)mkdirs $(infodir)
|
|
|
|
install: .made installdirs documentation
|
|
-if [ -f $(bindir)/$(Program) ]; then \
|
|
rm -f $(bindir)/$(Program).old ;\
|
|
ln $(bindir)/$(Program) $(bindir)/$(Program).old; \
|
|
fi
|
|
$(INSTALL_PROGRAM) $(Program) $(bindir)/$(Program)
|
|
-if [ -f $(bindir)/bashbug ]; \
|
|
then mv $(bindir)/bashbug $(bindir)/bashbug.old; \
|
|
fi
|
|
$(INSTALL_PROGRAM) bashbug $(bindir)/bashbug
|
|
( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) mandir=$(mandir) \
|
|
man3dir=$(man3dir) infodir=$(infodir) $@ )
|
|
|
|
uninstall: .made
|
|
$(RM) $(bindir)/$(Program) installed-$(Program) $(bindir)/bashbug
|
|
( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) mandir=$(mandir) man3dir=$(man3dir) infodir=$(infodir) $@ )
|
|
|
|
.distribution:
|
|
./newversion.aux -dir $(srcdir) -dist `$(Program) -c 'echo $$BASH_VERSION'`
|
|
|
|
distribution: $(Program) $(Program).tar$(COMPRESS_EXT) .distribution
|
|
@echo cp $(Program).tar$(COMPRESS_EXT) \
|
|
$(Program)-`cat .distribution`.tar$(COMPRESS_EXT)
|
|
@cp $(Program).tar$(COMPRESS_EXT) \
|
|
$(Program)-`cat .distribution`.tar$(COMPRESS_EXT)
|
|
|
|
mailable: distribution
|
|
/bin/rm -rf uuencoded
|
|
mkdir uuencoded
|
|
$(SHELL) -c 'f=$(Program)-`cat .distribution`.tar.Z;uuencode $$f $$f | split -800 - uuencoded/$$f.uu.'
|
|
|
|
newversion.aux: newversion.c
|
|
$(CC) $(CCFLAGS) -o $@ $(srcdir)/newversion.c
|
|
|
|
newversion: newversion.aux
|
|
$(RM) .build
|
|
./newversion.aux -dir $(srcdir) -dist
|
|
mv -f newversion.h version.h
|
|
$(MAKE) -f $(srcdir)/Makefile $(MFLAGS) srcdir=$(srcdir)
|
|
|
|
documentation: force
|
|
(cd $(DOCDIR); $(MAKE) $(MFLAGS))
|
|
|
|
force:
|
|
|
|
tags: $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE)
|
|
etags $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE)
|
|
|
|
TAGS: $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE)
|
|
ctags -x $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE) > $@
|
|
|
|
basic-clean:
|
|
$(RM) $(OBJECTS) $(Program) bashbug ansi-Makefile *.aux
|
|
$(RM) .build .made .machine version.h
|
|
$(RM) $(CREATED_SUPPORT)
|
|
$(RM) tags TAGS
|
|
|
|
mostlyclean:
|
|
$(RM) $(OBJECTS) $(Program) bashbug
|
|
$(RM) .build .made .machine version.h
|
|
$(RM) tags TAGS
|
|
(cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ )
|
|
(cd builtins && $(MAKE) $(MFLAGS) $@ )
|
|
$(CLEAN_READLINE) ;
|
|
$(CLEAN_HISTORY) ;
|
|
$(CLEAN_TERMCAP) ;
|
|
$(CLEAN_GLOB) ;
|
|
$(CLEAN_TILDE) ;
|
|
$(CLEAN_MALLOC) ;
|
|
|
|
distclean clean: basic-clean
|
|
(cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ )
|
|
(cd builtins && $(MAKE) $(MFLAGS) $@ )
|
|
$(CLEAN_READLINE) ;
|
|
$(CLEAN_HISTORY) ;
|
|
$(CLEAN_TERMCAP) ;
|
|
$(CLEAN_GLOB) ;
|
|
$(CLEAN_TILDE) ;
|
|
$(CLEAN_MALLOC) ;
|
|
$(RM) bash-Makefile
|
|
|
|
realclean maintainer-clean: basic-clean
|
|
$(RM) y.tab.c y.tab.h parser-built
|
|
(cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ )
|
|
(cd builtins && $(MAKE) $(MFLAGS) $@ )
|
|
$(CLEAN_READLINE) ;
|
|
$(CLEAN_HISTORY) ;
|
|
$(CLEAN_TERMCAP) ;
|
|
$(CLEAN_GLOB) ;
|
|
$(CLEAN_TILDE) ;
|
|
$(CLEAN_MALLOC) ;
|
|
$(RM) bash-Makefile
|
|
|
|
recho: $(SUPPORT_SRC)recho.c
|
|
@$(CC) -o $@ $(SUPPORT_SRC)recho.c
|
|
|
|
tests check: force $(Program) recho
|
|
@cp recho $(SUPPORT_SRC)printenv tests
|
|
( cd tests ; sh run-all )
|
|
|
|
/**/# 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 compilation. 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
|
|
|
|
DEFINES: config.h memalloc.h cpp-Makefile sysdefs.h
|
|
echo $(CCFLAGS) $(CPPFLAGS) >DEFINES
|