# # # Makefile for readline and history libraries. # # # srcdir = . ddestdir = /usr/local INSTALL_PROG = install -c INSTALL_FILE = $(INSTALL_PROG) #### host and target dependent Makefile fragments come in here. ## # 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 = $(ddestdir)/lib INCDIR = $(ddestdir)/include # Define TYPES as -DVOID_SIGHANDLER if your operating system uses # a return type of "void" for signal handlers. TYPES = -DVOID_SIGHANDLER # HP-UX compilation requires the BSD library. #LOCAL_LIBS = -lBSD # Xenix compilation requires -ldir -lx #LOCAL_LIBS = -ldir -lx # Comment out "-DVI_MODE" if you don't think that anyone will ever desire # the vi line editing mode and features. READLINE_DEFINES = $(TYPES) -DVI_MODE MINUS_G=-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 HSOURCES = readline.h chardefs.h history.h keymaps.h SOURCES = $(CSOURCES) $(HSOURCES) DOCUMENTATION = readline.texi inc-read.texi \ history.texi inc-hist.texi SUPPORT = COPYING Makefile $(DOCUMENTATION) ChangeLog THINGS_TO_TAR = $(SOURCES) $(SUPPORT) ########################################################################## STAGESTUFF = *.o all: libreadline.a all-info: history.info readline.info history.info: history.texi - $(MAKEINFO) -o history.info $(srcdir)/history.texi readline.info: readline.texi - $(MAKEINFO) -o readline.info $(srcdir)/readline.texi 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 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 libtest: libreadline.a libtest.c $(CC) -o libtest $(CFLAGS) $(CPPFLAGS) -L. libtest.c -lreadline -ltermcap readline: readline.c history.o keymaps.o funmap.o readline.h chardefs.h $(CC) $(CFLAGS) $(CPPFLAGS) $(READLINE_DEFINES) \ $(LOCAL_INCLUDES) -DTEST -o readline readline.c funmap.o \ keymaps.o history.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: includes $(INSTALL_PROG) libreadline.a $(DESTDIR)/libreadline.a.new -mv $(DESTDIR)/libreadline.a.new $(DESTDIR)/libreadline.a $(RANLIB) $(DESTDIR)/libreadline.a install-info: all-info for i in *.info* ; do \ echo Installing $$i... ; \ (cp $$i $(idestdir)/info/$$i.new \ && mv -f $(idestdir)/info/$$i.new $(idestdir)/info/$$i) \ || exit 1 ; \ done includes: if [ ! -r $(INCDIR)/readline ]; then\ mkdir $(INCDIR)/readline;\ chmod a+r $(INCDIR)/readline;\ fi $(INSTALL_FILE) $(srcdir)/readline.h $(INCDIR)/readline/ $(INSTALL_FILE) $(srcdir)/keymaps.h $(INCDIR)/readline/ $(INSTALL_FILE) $(srcdir)/chardefs.h $(INCDIR)/readline/ clean: rm -f $(STAGESTUFF) *.a *.log *.cp *.tp *.vr *.fn rm -f *.aux *.pg *.toc *.info* $(DESTDIR)/libreadline.a: libreadline.a # Copy the object files from a particular stage into a subdirectory. stage1: force -mkdir stage1 -mv $(STAGESTUFF) stage1 stage2: force -mkdir stage2 -mv $(STAGESTUFF) stage2 stage3: force -mkdir stage3 -mv $(STAGESTUFF) stage3 against=stage2 comparison: force for i in $(STAGESTUFF) ; do cmp $$i $(against)/$$i ; done de-stage1: force - (cd stage1 ; mv -f * ..) - rmdir stage1 de-stage2: force - (cd stage2 ; mv -f * ..) - rmdir stage2 de-stage3: force - (cd stage3 ; mv -f * ..) - rmdir stage3 force: # with the gnu make, this is done automatically. Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag) $(SHELL) ./config.status