-## -*- text -*- ####################################################
-# #
-# Makefile for readline and history libraries. #
-# #
-####################################################################
+#
+# Makefile
+# Copyright (C) 1990, 1991, 1992 Free Software Foundation
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+#
+
+#
+# Makefile for readline and history libraries.
+#
srcdir = .
-destdir = /usr/local
-#### host and target dependent Makefile fragments come in here.
-##
+prefix = /usr/local
+
+exec_prefix = $(prefix)
+bindir = $(exec_prefix)/bin
+libdir = $(exec_prefix)/lib
+
+datadir = $(prefix)/lib
+mandir = $(prefix)/man
+man1dir = $(mandir)/man1
+man2dir = $(mandir)/man2
+man3dir = $(mandir)/man3
+man4dir = $(mandir)/man4
+man5dir = $(mandir)/man5
+man6dir = $(mandir)/man6
+man7dir = $(mandir)/man7
+man8dir = $(mandir)/man8
+man9dir = $(mandir)/man9
+infodir = $(prefix)/info
+includedir = $(prefix)/include
+docdir = $(datadir)/doc
+
+SHELL = /bin/sh
+
+INSTALL = install -c
+INSTALL_PROGRAM = $(INSTALL)
+INSTALL_DATA = $(INSTALL)
-# Here is a rule for making .o files from .c files that doesn't force
-# the type of the machine (like -sun3) into the flags.
-.c.o:
- $(CC) -c $(CFLAGS) $(LOCAL_INCLUDES) $(CPPFLAGS) $(READLINE_DEFINES) $<
-
-# Destination installation directory. The libraries are copied to DESTDIR
-# when you do a `make install', and the header files to INCDIR/readline/*.h.
-DESTDIR = $(destdir)/lib
-INCDIR = $(destdir)/include
+AR = ar
+AR_FLAGS = qv
+CFLAGS = -g
+BISON = bison
+MAKEINFO = makeinfo
+RANLIB = ranlib
# Define TYPES as -DVOID_SIGHANDLER if your operating system uses
# a return type of "void" for signal handlers.
TYPES = -DVOID_SIGHANDLER
-# Define SYSV as -DSYSV if you are using a System V operating system.
-#SYSV = -DSYSV
-
# HP-UX compilation requires the BSD library.
#LOCAL_LIBS = -lBSD
# the vi line editing mode and features.
READLINE_DEFINES = $(TYPES) -DVI_MODE
-DEBUG_FLAGS = -g
+DEBUG_FLAGS = $(MINUS_G)
LDFLAGS = $(DEBUG_FLAGS)
-CFLAGS = $(DEBUG_FLAGS) $(SYSV) -I.
# A good alternative is gcc -traditional.
#CC = gcc -traditional
-CC = cc
-RANLIB = /bin/ranlib
-AR = ar
-AR_FLAGS = clq
RM = rm
CP = cp
LOCAL_INCLUDES = -I$(srcdir)/../
-CSOURCES = readline.c history.c funmap.c keymaps.c vi_mode.c \
- emacs_keymap.c vi_keymap.c
+# The name of the main library target.
+LIBRARY_NAME = libreadline.a
+
+# The C code source files for this library.
+CSOURCES = readline.c funmap.c keymaps.c vi_mode.c parens.c \
+ rltty.c complete.c bind.c isearch.c display.c signals.c \
+ emacs_keymap.c vi_keymap.c history.c tilde.c xmalloc.c
+
+# The header files for this library.
+HSOURCES = readline.h rldefs.h chardefs.h keymaps.h history.h \
+ posixstat.h tilde.h
+
+OBJECTS = readline.o vi_mode.o funmap.o keymaps.o parens.o search.o \
+ rltty.o complete.o bind.o isearch.o display.o signals.o \
+ history.o tilde.o xmalloc.o
-HSOURCES = readline.h chardefs.h history.h keymaps.h
SOURCES = $(CSOURCES) $(HSOURCES)
-DOCUMENTATION = readline.texinfo inc-readline.texinfo \
- history.texinfo inc-history.texinfo
+DOCUMENTATION = readline.texi inc-read.texi \
+ history.texi inc-hist.texi
SUPPORT = COPYING Makefile $(DOCUMENTATION) ChangeLog
THINGS_TO_TAR = $(SOURCES) $(SUPPORT)
-##########################################################################
+FLAGS_TO_PASS = \
+ "prefix=$(prefix)" \
+ "exec_prefix=$(exec_prefix)" \
+ "against=$(against)" \
+ "MAKEINFO=$(MAKEINFO)" \
+ "INSTALL=$(INSTALL)" \
+ "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
+ "INSTALL_DATA=$(INSTALL_DATA)"
+
+SUBDIRS = doc
+
+#### Host, target, and site specific Makefile fragments come in here.
+###
+
+.c.o:
+ $(CC) -c $(CFLAGS) $(H_CFLAGS) $(DEBUG_FLAGS) $(USG) -I. $(LOCAL_INCLUDES) $(CPPFLAGS) $(READLINE_DEFINES) $<
STAGESTUFF = *.o
all: libreadline.a
-libreadline.a: readline.o history.o funmap.o keymaps.o
- $(RM) -f libreadline.a
- $(AR) $(AR_FLAGS) libreadline.a readline.o history.o funmap.o keymaps.o
- $(RANLIB) libreadline.a
+check:
+installcheck:
+
+info dvi install-info clean-info clean-dvi: force
+ @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
+
+subdir_do: force
+ @for i in $(DODIRS); do \
+ if [ -f ./$$i/Makefile ] ; then \
+ if (cd ./$$i; \
+ $(MAKE) $(FLAGS_TO_PASS) $(DO)) ; then true ; \
+ else exit 1 ; fi ; \
+ else true ; fi ; \
+ done
+
+libreadline.a: $(OBJECTS)
+ $(RM) -f libreadline.a
+ $(AR) $(AR_FLAGS) libreadline.a $(OBJECTS)
+ $(RANLIB) libreadline.a
readline.o: readline.h chardefs.h keymaps.h history.h readline.c vi_mode.c
history.o: history.c history.h
funmap.o: readline.h
keymaps.o: emacs_keymap.c vi_keymap.c keymaps.h chardefs.h keymaps.c
+search.o: search.c
+
+tilde.o: $(srcdir)/../glob/tilde.c
+ $(CC) -c $(CFLAGS) $(H_CFLAGS) $(DEBUG_FLAGS) $(USG) -I. $(LOCAL_INCLUDES) $(CPPFLAGS) $(READLINE_DEFINES) $(srcdir)/../glob/tilde.c
libtest: libreadline.a libtest.c
- $(CC) -o libtest $(CFLAGS) $(CPPFLAGS) -L. libtest.c -lreadline -ltermcap
+ $(CC) -o libtest $(CFLAGS) $(H_CFLAGS) $(DEBUG_FLAGS) $(USG) -I. $(LOCAL_INCLUDES) $(CPPFLAGS) $(READLINE_DEFINES) -L. libtest.c -lreadline -ltermcap
-readline: readline.c history.o keymaps.o funmap.o readline.h chardefs.h
+readline: readline.c history.o keymaps.o funmap.o readline.h chardefs.h vi_mode.o
$(CC) $(CFLAGS) $(CPPFLAGS) $(READLINE_DEFINES) \
$(LOCAL_INCLUDES) -DTEST -o readline readline.c funmap.o \
- keymaps.o history.o -L. -ltermcap
+ keymaps.o history.o vi_mode.o -L. -ltermcap
readline.tar: $(THINGS_TO_TAR)
tar -cf readline.tar $(THINGS_TO_TAR)
readline.tar.Z: readline.tar
compress -f readline.tar
-install: $(DESTDIR)/libreadline.a includes
+install:
+ $(INSTALL_DATA) libreadline.a $(libdir)/libreadline.a
+ $(RANLIB) $(libdir)/libreadline.a
+ $(INSTALL_DATA) $(srcdir)/readline.h $(includedir)/readline/readline.h
+ $(INSTALL_DATA) $(srcdir)/keymaps.h $(includedir)/readline/keymaps.h
+ $(INSTALL_DATA) $(srcdir)/chardefs.h $(includedir)/readline/chardefs.h
includes:
- if [ ! -r $(INCDIR)/readline ]; then\
- mkdir $(INCDIR)/readline;\
- chmod a+r $(INCDIR)/readline;\
- fi
- $(CP) readline.h keymaps.h chardefs.h $(INCDIR)/readline/
-clean:
- rm -f $(STAGESTUFF) *.a *.log *.cp *.tp *.vr *.fn *.aux *.pg *.toc
+ $(INSTALL_FILE) $(srcdir)/readline.h $(includedir)/readline/readline.h
+ $(INSTALL_FILE) $(srcdir)/keymaps.h $(includedir)/readline/keymaps.h
+ $(INSTALL_FILE) $(srcdir)/chardefs.h $(includedir)/readline/chardefs.h
+
+local-clean:
+ rm -f $(STAGESTUFF) *.a *.log *.cp *.tp *.vr *.fn
+ rm -f *.aux *.pg *.toc
+
+mostlyclean: local-clean
+ @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
+
+clean: local-clean
+ @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
+
+distclean: local-clean
+ @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
+ rm -f Makefile config.status sysdep.h
+
+realclean: local-clean
+ @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
+ rm -f Makefile config.status sysdep.h
$(DESTDIR)/libreadline.a: libreadline.a
- -mv $(DESTDIR)/libreadline.a $(DESTDIR)/libreadline.old
- cp libreadline.a $(DESTDIR)/libreadline.a
- $(RANLIB) -t $(DESTDIR)/libreadline.a
# Copy the object files from a particular stage into a subdirectory.
stage1: force
for i in $(STAGESTUFF) ; do cmp $$i $(against)/$$i ; done
de-stage1: force
- - (cd stage1 ; mv -f * ..)
- - rmdir stage1
+ -(cd stage1 ; mv -f * ..)
+ -rmdir stage1
de-stage2: force
- - (cd stage2 ; mv -f * ..)
- - rmdir stage2
+ -(cd stage2 ; mv -f * ..)
+ -rmdir stage2
de-stage3: force
- - (cd stage3 ; mv -f * ..)
- - rmdir stage3
+ -(cd stage3 ; mv -f * ..)
+ -rmdir stage3
force:
# with the gnu make, this is done automatically.
-Makefile: $(srcdir)/Makefile.in $(srcdir)/configure
- (cd $(srcdir) ; \
- ./configure +destdir=$(destdir) +norecurse \
- `if [ "$(srcdir)" != "." ] ; then echo +f; fi` \
- $(host) +target=$(target))
-
+Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag)
+ $(SHELL) ./config.status