]>
Commit | Line | Data |
---|---|---|
6599da04 JM |
1 | # |
2 | # Makefile | |
3b94497c | 3 | # Copyright (C) 1990, 91-99, 2000 |
3affd5f0 | 4 | # Free Software Foundation |
6599da04 JM |
5 | # |
6 | # This file is part of the libiberty library. | |
7 | # Libiberty is free software; you can redistribute it and/or | |
8 | # modify it under the terms of the GNU Library General Public | |
9 | # License as published by the Free Software Foundation; either | |
10 | # version 2 of the License, or (at your option) any later version. | |
11 | # | |
12 | # Libiberty is distributed in the hope that it will be useful, | |
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
15 | # Library General Public License for more details. | |
16 | # | |
17 | # You should have received a copy of the GNU Library General Public | |
18 | # License along with libiberty; see the file COPYING.LIB. If not, | |
19 | # write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
20 | # Boston, MA 02111-1307, USA. | |
21 | # | |
22 | ||
3affd5f0 | 23 | # This file was written by K. Richard Pixley <rich@cygnus.com>. |
6599da04 JM |
24 | |
25 | # | |
26 | # Makefile for libiberty directory | |
27 | # | |
28 | ||
3affd5f0 JL |
29 | srcdir = @srcdir@ |
30 | VPATH = @srcdir@ | |
6599da04 | 31 | |
3affd5f0 | 32 | prefix = @prefix@ |
6599da04 | 33 | |
3affd5f0 JL |
34 | exec_prefix = @exec_prefix@ |
35 | bindir = @bindir@ | |
36 | libdir = @libdir@ | |
6599da04 | 37 | |
3affd5f0 | 38 | SHELL = @SHELL@ |
6599da04 JM |
39 | |
40 | # Multilib support variables. | |
41 | MULTISRCTOP = | |
42 | MULTIBUILDTOP = | |
43 | MULTIDIRS = | |
44 | MULTISUBDIR = | |
45 | MULTIDO = true | |
46 | MULTICLEAN = true | |
47 | ||
3affd5f0 JL |
48 | INSTALL = @INSTALL@ |
49 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | |
50 | INSTALL_DATA = @INSTALL_DATA@ | |
6599da04 | 51 | |
3affd5f0 | 52 | AR = @AR@ |
6599da04 JM |
53 | AR_FLAGS = rc |
54 | ||
3affd5f0 JL |
55 | CC = @CC@ |
56 | CFLAGS = @CFLAGS@ | |
6599da04 | 57 | LIBCFLAGS = $(CFLAGS) |
3affd5f0 | 58 | RANLIB = @RANLIB@ |
6599da04 JM |
59 | |
60 | PICFLAG = | |
61 | ||
62 | MAKEOVERRIDES = | |
63 | ||
64 | TARGETLIB = libiberty.a | |
65 | ||
3affd5f0 | 66 | LIBOBJS = @LIBOBJS@ |
6599da04 JM |
67 | |
68 | # A configuration can specify extra .o files that should be included, | |
69 | # even if they are in libc. (Perhaps the libc version is buggy.) | |
70 | EXTRA_OFILES = | |
71 | ||
72 | # Flags to pass to a recursive make. | |
73 | FLAGS_TO_PASS = \ | |
74 | "AR=$(AR)" \ | |
75 | "AR_FLAGS=$(AR_FLAGS)" \ | |
76 | "CC=$(CC)" \ | |
77 | "CFLAGS=$(CFLAGS)" \ | |
78 | "LIBCFLAGS=$(LIBCFLAGS)" \ | |
79 | "EXTRA_OFILES=$(EXTRA_OFILES)" \ | |
80 | "HDEFINES=$(HDEFINES)" \ | |
81 | "INSTALL=$(INSTALL)" \ | |
82 | "INSTALL_DATA=$(INSTALL_DATA)" \ | |
83 | "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ | |
84 | "LDFLAGS=$(LDFLAGS)" \ | |
85 | "LOADLIBES=$(LOADLIBES)" \ | |
6599da04 | 86 | "RANLIB=$(RANLIB)" \ |
76632dd0 DJ |
87 | "SHELL=$(SHELL)" \ |
88 | "prefix=$(prefix)" \ | |
89 | "exec_prefix=$(exec_prefix)" \ | |
90 | "libdir=$(libdir)" \ | |
91 | "libsubdir=$(libsubdir)" \ | |
92 | "tooldir=$(tooldir)" | |
6599da04 | 93 | |
2c375143 NS |
94 | # Subdirectories to recurse into. We need to override this during cleaning |
95 | SUBDIRS = testsuite | |
96 | ||
7c72138a | 97 | all: stamp-picdir $(TARGETLIB) needed-list required-list all-subdir |
3affd5f0 | 98 | @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all |
6599da04 JM |
99 | |
100 | .PHONY: check installcheck | |
7c72138a TT |
101 | check: check-subdir |
102 | installcheck: installcheck-subdir | |
6599da04 | 103 | |
3affd5f0 | 104 | @host_makefile_frag@ |
6599da04 JM |
105 | |
106 | INCDIR=$(srcdir)/$(MULTISRCTOP)../include | |
107 | ||
1eaf7d9c | 108 | COMPILE.c = $(CC) -c @DEFS@ $(LIBCFLAGS) -I. -I$(INCDIR) $(HDEFINES) @ac_libiberty_warn_cflags@ |
6599da04 | 109 | .c.o: |
47668d0a DE |
110 | if [ x"$(PICFLAG)" != x ]; then \ |
111 | $(COMPILE.c) $(PICFLAG) $< -o pic/$@; \ | |
112 | else true; fi | |
6599da04 JM |
113 | $(COMPILE.c) $< |
114 | ||
7c72138a TT |
115 | info: info-subdir |
116 | install-info: install-info-subdir | |
117 | clean-info: clean-info-subdir | |
118 | dvi: dvi-subdir | |
6599da04 | 119 | |
6599da04 | 120 | # NOTE: If you add new files to the library, add them to this list |
3affd5f0 JL |
121 | # (alphabetical), and add them to REQUIRED_OFILES or funcs in |
122 | # configure.in. | |
d9d4fb43 | 123 | CFILES = asprintf.c alloca.c argv.c atexit.c basename.c bcmp.c bcopy.c \ |
69afa80d | 124 | bzero.c calloc.c choose-temp.c clock.c concat.c cplus-dem.c \ |
29650b2b | 125 | cp-demangle.c dyn-string.c fdmatch.c fnmatch.c ffs.c getcwd.c \ |
69afa80d | 126 | getpwd.c getopt.c getopt1.c getpagesize.c getruntime.c \ |
2b757d51 | 127 | floatformat.c hashtab.c hex.c index.c insque.c lbasename.c \ |
33437dc7 | 128 | md5.c make-temp-file.c memchr.c \ |
f6bbde28 | 129 | memcmp.c memcpy.c memmove.c memset.c mkstemps.c objalloc.c obstack.c \ |
dd771632 JJ |
130 | partition.c pexecute.c putenv.c random.c \ |
131 | regex.c rename.c rindex.c setenv.c \ | |
f6bbde28 ZW |
132 | sigsetmask.c safe-ctype.c sort.c spaces.c splay-tree.c strcasecmp.c \ |
133 | strncasecmp.c strchr.c strdup.c strerror.c strncmp.c strrchr.c \ | |
134 | strsignal.c strstr.c strtod.c strtol.c strtoul.c tmpnam.c vasprintf.c \ | |
135 | vfork.c vfprintf.c vprintf.c vsprintf.c waitpid.c xatexit.c xexit.c \ | |
8c23e0a4 | 136 | xmalloc.c xmemdup.c xstrdup.c xstrerror.c ternary.c fibheap.c |
3affd5f0 | 137 | |
6599da04 | 138 | # These are always included in the library. |
2b757d51 NB |
139 | REQUIRED_OFILES = argv.o alloca.o choose-temp.o concat.o cplus-dem.o \ |
140 | cp-demangle.o dyn-string.o fdmatch.o fnmatch.o getopt.o getopt1.o \ | |
141 | getpwd.o getruntime.o hashtab.o hex.o floatformat.o lbasename.o \ | |
33437dc7 | 142 | md5.o make-temp-file.o objalloc.o \ |
dd771632 | 143 | obstack.o partition.o pexecute.o regex.o safe-ctype.o sort.o spaces.o \ |
2b757d51 | 144 | splay-tree.o strerror.o strsignal.o xatexit.o xexit.o xmalloc.o \ |
8c23e0a4 | 145 | xmemdup.o xstrdup.o xstrerror.o ternary.o fibheap.o |
b548dffb ZW |
146 | |
147 | $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) | |
5a2eb52b | 148 | -rm -f $(TARGETLIB) |
3affd5f0 | 149 | $(AR) $(AR_FLAGS) $(TARGETLIB) \ |
b548dffb | 150 | $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) |
3affd5f0 | 151 | $(RANLIB) $(TARGETLIB) |
6599da04 | 152 | |
3affd5f0 | 153 | INSTALL_DEST = @INSTALL_DEST@ |
7c72138a | 154 | install: install_to_$(INSTALL_DEST) install-subdir |
6599da04 JM |
155 | |
156 | install_to_libdir: all | |
5ad5a984 ILT |
157 | $(INSTALL_DATA) $(TARGETLIB) $(libdir)$(MULTISUBDIR)/$(TARGETLIB)n |
158 | ( cd $(libdir)$(MULTISUBDIR) ; $(RANLIB) $(TARGETLIB)n ) | |
159 | mv -f $(libdir)$(MULTISUBDIR)/$(TARGETLIB)n $(libdir)$(MULTISUBDIR)/$(TARGETLIB) | |
6599da04 JM |
160 | @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install |
161 | ||
162 | install_to_tooldir: all | |
5ad5a984 ILT |
163 | $(INSTALL_DATA) $(TARGETLIB) $(tooldir)/lib$(MULTISUBDIR)/$(TARGETLIB)n |
164 | ( cd $(tooldir)/lib$(MULTISUBDIR) ; $(RANLIB) $(TARGETLIB)n ) | |
165 | mv -f $(tooldir)/lib$(MULTISUBDIR)/$(TARGETLIB)n $(tooldir)/lib$(MULTISUBDIR)/$(TARGETLIB) | |
6599da04 JM |
166 | @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install |
167 | ||
a4494286 JM |
168 | # needed-list is used by libstdc++. NEEDED is the list of functions |
169 | # to include there. Do not add anything LGPL to this list; libstdc++ | |
170 | # can't use anything encumbering. | |
171 | NEEDED = atexit calloc memchr memcmp memcpy memmove memset rename strchr \ | |
209bbe34 | 172 | strerror strncmp strrchr strstr strtol strtoul tmpnam vfprintf vprintf \ |
8f1824d9 | 173 | vfork waitpid bcmp bcopy bzero |
3affd5f0 | 174 | needed-list: Makefile |
a4494286 | 175 | rm -f needed-list; touch needed-list; \ |
a4494286 | 176 | for f in $(NEEDED); do \ |
a6541767 JM |
177 | for g in $(LIBOBJS) $(EXTRA_OFILES); do \ |
178 | case "$$g" in \ | |
179 | *$$f*) echo $$g >> needed-list ;; \ | |
180 | esac; \ | |
181 | done; \ | |
a4494286 | 182 | done |
3affd5f0 JL |
183 | |
184 | # required-list was used when building a shared bfd/opcodes/libiberty | |
185 | # library. I don't know if it used by anything currently. | |
6599da04 JM |
186 | required-list: Makefile |
187 | echo $(REQUIRED_OFILES) > required-list | |
188 | ||
6599da04 | 189 | stamp-picdir: |
47668d0a | 190 | if [ x"$(PICFLAG)" != x ] && [ ! -d pic ]; then \ |
6599da04 JM |
191 | mkdir pic; \ |
192 | else true; fi | |
193 | touch stamp-picdir | |
194 | ||
3affd5f0 | 195 | .PHONY: all etags tags ls clean stage1 stage2 |
6599da04 | 196 | |
7c72138a | 197 | etags tags: TAGS etags-subdir |
6599da04 | 198 | |
b548dffb ZW |
199 | TAGS: $(CFILES) |
200 | etags `for i in $(CFILES); do echo $(srcdir)/$$i ; done` | |
6599da04 JM |
201 | |
202 | # The standalone demangler (c++filt) has been moved to binutils. | |
203 | demangle: | |
204 | @echo "The standalone demangler, now named c++filt, is now" | |
205 | @echo "a part of binutils." | |
206 | @false | |
207 | ||
208 | ls: | |
b548dffb | 209 | @echo Makefile $(CFILES) |
6599da04 JM |
210 | |
211 | # Need to deal with profiled libraries, too. | |
212 | ||
2c375143 NS |
213 | # Cleaning has to be done carefully to ensure that we don't clean our SUBDIRS |
214 | # multiple times, hence our explicit recursion with an empty SUBDIRS. | |
7c72138a | 215 | mostlyclean: mostlyclean-subdir |
5a2eb52b MS |
216 | -rm -rf *.o pic core errs \#* *.E a.out |
217 | -rm -f needed.awk needed2.awk errors dummy needed-list config.h stamp-* | |
218 | -rm -f $(CONFIG_H) $(NEEDED_LIST) stamp-picdir | |
6599da04 | 219 | @$(MULTICLEAN) multi-clean DO=mostlyclean |
2c375143 NS |
220 | clean: clean-subdir |
221 | $(MAKE) SUBDIRS="" mostlyclean | |
5a2eb52b | 222 | -rm -f *.a required-list tmpmulti.out |
6599da04 | 223 | @$(MULTICLEAN) multi-clean DO=clean |
2c375143 NS |
224 | distclean: distclean-subdir |
225 | $(MAKE) SUBDIRS="" clean | |
6599da04 | 226 | @$(MULTICLEAN) multi-clean DO=distclean |
5a2eb52b MS |
227 | -rm -f *~ Makefile config.status xhost-mkfrag TAGS multilib.out |
228 | -rm -f config.log | |
b25a8973 | 229 | -rmdir testsuite 2>/dev/null |
2c375143 NS |
230 | maintainer-clean realclean: maintainer-clean-subdir |
231 | $(MAKE) SUBDIRS="" distclean | |
6599da04 JM |
232 | |
233 | force: | |
234 | ||
3affd5f0 JL |
235 | Makefile: $(srcdir)/Makefile.in config.status |
236 | CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status | |
237 | ||
238 | config.h: stamp-h ; @true | |
239 | stamp-h: config.in config.status | |
240 | CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status | |
241 | ||
242 | config.status: $(srcdir)/configure $(srcdir)/config.table | |
243 | $(SHELL) ./config.status --recheck | |
6599da04 | 244 | |
7c72138a TT |
245 | all-subdir check-subdir installcheck-subdir info-subdir \ |
246 | install-info-subdir clean-info-subdir dvi-subdir install-subdir \ | |
247 | etags-subdir mostlyclean-subdir clean-subdir distclean-subdir \ | |
248 | maintainer-clean-subdir: | |
3b94497c | 249 | @subdirs='$(SUBDIRS)'; \ |
7277f72d | 250 | target=`echo $@ | sed -e 's/-subdir//'`; \ |
3b94497c | 251 | for dir in $$subdirs ; do \ |
7277f72d | 252 | cd $$dir && $(MAKE) $$target; \ |
2c375143 | 253 | done |
7c72138a | 254 | |
b548dffb | 255 | $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS): stamp-picdir |
7b195f77 | 256 | |
b548dffb | 257 | alloca.o: config.h $(INCDIR)/libiberty.h |
3affd5f0 | 258 | atexit.o: config.h |
b548dffb | 259 | argv.o: config.h $(INCDIR)/libiberty.h |
6599da04 | 260 | basename.o: $(INCDIR)/libiberty.h |
3affd5f0 JL |
261 | choose-temp.o: config.h |
262 | clock.o: config.h | |
4e627c41 | 263 | concat.o: config.h $(INCDIR)/libiberty.h |
f77d8413 | 264 | cplus-dem.o: config.h $(INCDIR)/demangle.h |
7eb23b1f | 265 | cp-demangle.o: config.h $(INCDIR)/dyn-string.h $(INCDIR)/demangle.h |
69afa80d | 266 | dyn-string.o: config.h $(INCDIR)/dyn-string.h |
6599da04 | 267 | fdmatch.o: $(INCDIR)/libiberty.h |
f379eac3 | 268 | fibheap.o: config.h $(INCDIR)/libiberty.h $(INCDIR)/fibheap.h |
3affd5f0 JL |
269 | fnmatch.o: config.h $(INCDIR)/fnmatch.h |
270 | getcwd.o: config.h | |
271 | getopt.o: config.h $(INCDIR)/getopt.h | |
272 | getopt1.o: config.h $(INCDIR)/getopt.h | |
273 | getpagesize.o: config.h | |
4ac3cb83 | 274 | getpwd.o: config.h $(INCDIR)/libiberty.h |
3affd5f0 | 275 | getruntime.o: config.h $(INCDIR)/libiberty.h |
6599da04 JM |
276 | hex.o: $(INCDIR)/libiberty.h |
277 | floatformat.o: $(INCDIR)/floatformat.h | |
2b757d51 | 278 | lbasename.o: $(INCDIR)/libiberty.h |
94b68558 | 279 | make-temp-file.o: config.h |
8ec65f13 | 280 | mkstemps.o: config.h |
53dce582 | 281 | md5.o: config.h |
e483d5cc | 282 | objalloc.o: config.h $(INCDIR)/objalloc.h |
f77d8413 | 283 | obstack.o: config.h $(INCDIR)/obstack.h |
abc61fd4 | 284 | partition.o: config.h $(INCDIR)/partition.h |
3affd5f0 | 285 | pexecute.o: config.h $(INCDIR)/libiberty.h |
2cf50fd3 | 286 | regex.o: config.h $(INCDIR)/xregex.h $(INCDIR)/xregex2.h |
c2f275e4 | 287 | rename.o: config.h |
73919448 | 288 | setenv.o: config.h |
eeb0656f | 289 | sort.o: config.h $(INCDIR)/sort.h $(INCDIR)/ansidecl.h |
6599da04 | 290 | spaces.o: $(INCDIR)/libiberty.h |
c85c3232 | 291 | splay-tree.o: config.h $(INCDIR)/libiberty.h $(INCDIR)/splay-tree.h $(INCDIR)/ansidecl.h |
3affd5f0 JL |
292 | strerror.o: config.h $(INCDIR)/libiberty.h |
293 | strsignal.o: config.h $(INCDIR)/libiberty.h | |
cd447360 MS |
294 | strtol.o: config.h |
295 | strtoul.o: config.h | |
9dab060e | 296 | ternary.o: config.h $(INCDIR)/ternary.h $(INCDIR)/libiberty.h |
0c978c46 | 297 | vasprintf.o: config.h |
6599da04 | 298 | xatexit.o: $(INCDIR)/libiberty.h |
da0c7743 | 299 | xexit.o: config.h $(INCDIR)/libiberty.h |
f8e2da56 | 300 | xmalloc.o: config.h $(INCDIR)/libiberty.h |
b10647f1 | 301 | xmemdup.o: config.h $(INCDIR)/libiberty.h |
16b4c15e | 302 | xstrdup.o: config.h $(INCDIR)/libiberty.h |
3affd5f0 | 303 | xstrerror.o: config.h $(INCDIR)/libiberty.h |
c2f275e4 | 304 | waitpid.o: config.h |
a2f945c6 | 305 | hashtab.o: config.h $(INCDIR)/libiberty.h $(INCDIR)/hashtab.h $(INCDIR)/ansidecl.h |