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