Commit | Line | Data |
---|---|---|
92bb90af RP |
1 | # |
2 | # Makefile | |
b65a4fe5 | 3 | # Copyright (C) 1990, 1991, 1992 Free Software Foundation |
92bb90af RP |
4 | # |
5 | # This file is free software; you can redistribute it and/or modify | |
6 | # it under the terms of the GNU General Public License as published by | |
7 | # the Free Software Foundation; either version 2 of the License, or | |
8 | # (at your option) any later version. | |
9 | # | |
10 | # This program is distributed in the hope that it will be useful, | |
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | # GNU General Public License for more details. | |
14 | # | |
15 | # You should have received a copy of the GNU General Public License | |
16 | # along with this program; if not, write to the Free Software | |
17 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ | |
18 | # | |
19 | ||
20 | # | |
21 | # Makefile for readline and history libraries. | |
22 | # | |
bcb14db5 | 23 | |
7da15eff | 24 | srcdir = . |
7187e60c | 25 | |
92bb90af RP |
26 | prefix = /usr/local |
27 | ||
b65a4fe5 JK |
28 | exec_prefix = $(prefix) |
29 | bindir = $(exec_prefix)/bin | |
30 | libdir = $(exec_prefix)/lib | |
31 | ||
92bb90af | 32 | datadir = $(prefix)/lib |
b65a4fe5 | 33 | mandir = $(prefix)/man |
92bb90af RP |
34 | man1dir = $(mandir)/man1 |
35 | man2dir = $(mandir)/man2 | |
36 | man3dir = $(mandir)/man3 | |
37 | man4dir = $(mandir)/man4 | |
38 | man5dir = $(mandir)/man5 | |
39 | man6dir = $(mandir)/man6 | |
40 | man7dir = $(mandir)/man7 | |
41 | man8dir = $(mandir)/man8 | |
42 | man9dir = $(mandir)/man9 | |
43 | infodir = $(prefix)/info | |
44 | includedir = $(prefix)/include | |
45 | docdir = $(datadir)/doc | |
46 | ||
47 | SHELL = /bin/sh | |
48 | ||
49 | INSTALL = install -c | |
50 | INSTALL_PROGRAM = $(INSTALL) | |
51 | INSTALL_DATA = $(INSTALL) | |
7da15eff | 52 | |
92bb90af RP |
53 | AR = ar |
54 | AR_FLAGS = qv | |
b65a4fe5 | 55 | CFLAGS = -g |
92bb90af RP |
56 | BISON = bison |
57 | MAKEINFO = makeinfo | |
58 | RANLIB = ranlib | |
59 | ||
bd5635a1 RP |
60 | # Define TYPES as -DVOID_SIGHANDLER if your operating system uses |
61 | # a return type of "void" for signal handlers. | |
62 | TYPES = -DVOID_SIGHANDLER | |
63 | ||
bd5635a1 RP |
64 | # HP-UX compilation requires the BSD library. |
65 | #LOCAL_LIBS = -lBSD | |
66 | ||
67 | # Xenix compilation requires -ldir -lx | |
68 | #LOCAL_LIBS = -ldir -lx | |
69 | ||
70 | # Comment out "-DVI_MODE" if you don't think that anyone will ever desire | |
71 | # the vi line editing mode and features. | |
72 | READLINE_DEFINES = $(TYPES) -DVI_MODE | |
73 | ||
c21b1b26 | 74 | DEBUG_FLAGS = $(MINUS_G) |
bd5635a1 | 75 | LDFLAGS = $(DEBUG_FLAGS) |
bd5635a1 RP |
76 | |
77 | # A good alternative is gcc -traditional. | |
78 | #CC = gcc -traditional | |
bd5635a1 RP |
79 | RM = rm |
80 | CP = cp | |
81 | ||
7da15eff | 82 | LOCAL_INCLUDES = -I$(srcdir)/../ |
bd5635a1 | 83 | |
5e98bbab PB |
84 | # The name of the main library target. |
85 | LIBRARY_NAME = libreadline.a | |
86 | ||
87 | # The C code source files for this library. | |
88 | CSOURCES = readline.c funmap.c keymaps.c vi_mode.c parens.c \ | |
89 | rltty.c complete.c bind.c isearch.c display.c signals.c \ | |
90 | emacs_keymap.c vi_keymap.c history.c tilde.c xmalloc.c | |
91 | ||
92 | # The header files for this library. | |
93 | HSOURCES = readline.h rldefs.h chardefs.h keymaps.h history.h \ | |
94 | posixstat.h tilde.h | |
95 | ||
96 | OBJECTS = readline.o vi_mode.o funmap.o keymaps.o parens.o search.o \ | |
97 | rltty.o complete.o bind.o isearch.o display.o signals.o \ | |
98 | history.o tilde.o xmalloc.o | |
bd5635a1 | 99 | |
bd5635a1 RP |
100 | SOURCES = $(CSOURCES) $(HSOURCES) |
101 | ||
fff3e61f RP |
102 | DOCUMENTATION = readline.texi inc-read.texi \ |
103 | history.texi inc-hist.texi | |
bd5635a1 RP |
104 | |
105 | SUPPORT = COPYING Makefile $(DOCUMENTATION) ChangeLog | |
106 | ||
107 | THINGS_TO_TAR = $(SOURCES) $(SUPPORT) | |
108 | ||
5e98bbab PB |
109 | FLAGS_TO_PASS = \ |
110 | "prefix=$(prefix)" \ | |
111 | "exec_prefix=$(exec_prefix)" \ | |
112 | "against=$(against)" \ | |
113 | "MAKEINFO=$(MAKEINFO)" \ | |
114 | "INSTALL=$(INSTALL)" \ | |
115 | "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ | |
116 | "INSTALL_DATA=$(INSTALL_DATA)" | |
117 | ||
118 | SUBDIRS = doc | |
119 | ||
b65a4fe5 JK |
120 | #### Host, target, and site specific Makefile fragments come in here. |
121 | ### | |
122 | ||
123 | .c.o: | |
124 | $(CC) -c $(CFLAGS) $(H_CFLAGS) $(DEBUG_FLAGS) $(USG) -I. $(LOCAL_INCLUDES) $(CPPFLAGS) $(READLINE_DEFINES) $< | |
bd5635a1 | 125 | |
502ef32a | 126 | STAGESTUFF = *.o |
7da15eff | 127 | |
e92ee469 RP |
128 | all: libreadline.a |
129 | ||
b65a4fe5 JK |
130 | check: |
131 | installcheck: | |
92bb90af | 132 | |
4955aa53 | 133 | info dvi install-info clean-info clean-dvi: force |
5e98bbab PB |
134 | @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do |
135 | ||
136 | subdir_do: force | |
137 | @for i in $(DODIRS); do \ | |
138 | if [ -f ./$$i/Makefile ] ; then \ | |
139 | if (cd ./$$i; \ | |
140 | $(MAKE) $(FLAGS_TO_PASS) $(DO)) ; then true ; \ | |
141 | else exit 1 ; fi ; \ | |
142 | else true ; fi ; \ | |
143 | done | |
fff3e61f | 144 | |
5e98bbab | 145 | libreadline.a: $(OBJECTS) |
02e20edf | 146 | $(RM) -f libreadline.a |
5e98bbab | 147 | $(AR) $(AR_FLAGS) libreadline.a $(OBJECTS) |
02e20edf | 148 | $(RANLIB) libreadline.a |
bd5635a1 RP |
149 | |
150 | readline.o: readline.h chardefs.h keymaps.h history.h readline.c vi_mode.c | |
151 | history.o: history.c history.h | |
152 | funmap.o: readline.h | |
153 | keymaps.o: emacs_keymap.c vi_keymap.c keymaps.h chardefs.h keymaps.c | |
f42f505b | 154 | search.o: search.c |
02e20edf JG |
155 | |
156 | tilde.o: $(srcdir)/../glob/tilde.c | |
b65a4fe5 | 157 | $(CC) -c $(CFLAGS) $(H_CFLAGS) $(DEBUG_FLAGS) $(USG) -I. $(LOCAL_INCLUDES) $(CPPFLAGS) $(READLINE_DEFINES) $(srcdir)/../glob/tilde.c |
bd5635a1 RP |
158 | |
159 | libtest: libreadline.a libtest.c | |
b65a4fe5 | 160 | $(CC) -o libtest $(CFLAGS) $(H_CFLAGS) $(DEBUG_FLAGS) $(USG) -I. $(LOCAL_INCLUDES) $(CPPFLAGS) $(READLINE_DEFINES) -L. libtest.c -lreadline -ltermcap |
bd5635a1 | 161 | |
494ea0b2 | 162 | readline: readline.c history.o keymaps.o funmap.o readline.h chardefs.h vi_mode.o |
bd5635a1 RP |
163 | $(CC) $(CFLAGS) $(CPPFLAGS) $(READLINE_DEFINES) \ |
164 | $(LOCAL_INCLUDES) -DTEST -o readline readline.c funmap.o \ | |
494ea0b2 | 165 | keymaps.o history.o vi_mode.o -L. -ltermcap |
bd5635a1 RP |
166 | |
167 | readline.tar: $(THINGS_TO_TAR) | |
168 | tar -cf readline.tar $(THINGS_TO_TAR) | |
169 | ||
170 | readline.tar.Z: readline.tar | |
171 | compress -f readline.tar | |
172 | ||
92bb90af RP |
173 | install: |
174 | $(INSTALL_DATA) libreadline.a $(libdir)/libreadline.a | |
175 | $(RANLIB) $(libdir)/libreadline.a | |
b65a4fe5 JK |
176 | $(INSTALL_DATA) $(srcdir)/readline.h $(includedir)/readline/readline.h |
177 | $(INSTALL_DATA) $(srcdir)/keymaps.h $(includedir)/readline/keymaps.h | |
178 | $(INSTALL_DATA) $(srcdir)/chardefs.h $(includedir)/readline/chardefs.h | |
e92ee469 | 179 | |
bd5635a1 | 180 | includes: |
b65a4fe5 JK |
181 | $(INSTALL_FILE) $(srcdir)/readline.h $(includedir)/readline/readline.h |
182 | $(INSTALL_FILE) $(srcdir)/keymaps.h $(includedir)/readline/keymaps.h | |
183 | $(INSTALL_FILE) $(srcdir)/chardefs.h $(includedir)/readline/chardefs.h | |
184 | ||
84c8bac2 JK |
185 | local-clean: |
186 | rm -f $(STAGESTUFF) *.a *.log *.cp *.tp *.vr *.fn | |
187 | rm -f *.aux *.pg *.toc | |
bd5635a1 | 188 | |
84c8bac2 JK |
189 | mostlyclean: local-clean |
190 | @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do | |
191 | ||
192 | clean: local-clean | |
193 | @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do | |
194 | ||
1b3f3940 | 195 | distclean: local-clean |
84c8bac2 | 196 | @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do |
1b3f3940 | 197 | rm -f Makefile config.status sysdep.h |
84c8bac2 | 198 | |
1b3f3940 | 199 | realclean: local-clean |
84c8bac2 | 200 | @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do |
1b3f3940 | 201 | rm -f Makefile config.status sysdep.h |
84c8bac2 | 202 | |
bd5635a1 | 203 | $(DESTDIR)/libreadline.a: libreadline.a |
7da15eff RP |
204 | |
205 | # Copy the object files from a particular stage into a subdirectory. | |
206 | stage1: force | |
207 | -mkdir stage1 | |
208 | -mv $(STAGESTUFF) stage1 | |
209 | ||
210 | stage2: force | |
211 | -mkdir stage2 | |
212 | -mv $(STAGESTUFF) stage2 | |
213 | ||
214 | stage3: force | |
215 | -mkdir stage3 | |
216 | -mv $(STAGESTUFF) stage3 | |
217 | ||
30ba1dfe RP |
218 | against=stage2 |
219 | ||
220 | comparison: force | |
221 | for i in $(STAGESTUFF) ; do cmp $$i $(against)/$$i ; done | |
222 | ||
7da15eff | 223 | de-stage1: force |
92bb90af RP |
224 | -(cd stage1 ; mv -f * ..) |
225 | -rmdir stage1 | |
7da15eff RP |
226 | |
227 | de-stage2: force | |
92bb90af RP |
228 | -(cd stage2 ; mv -f * ..) |
229 | -rmdir stage2 | |
7da15eff RP |
230 | |
231 | de-stage3: force | |
92bb90af RP |
232 | -(cd stage3 ; mv -f * ..) |
233 | -rmdir stage3 | |
7da15eff RP |
234 | |
235 | force: | |
236 | ||
237 | # with the gnu make, this is done automatically. | |
238 | ||
c21b1b26 | 239 | Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag) |
bcb14db5 | 240 | $(SHELL) ./config.status |