Commit | Line | Data |
---|---|---|
252b5132 RH |
1 | # |
2 | # Makefile | |
39423523 | 3 | # Copyright (C) 1990, 91-99, 2000, 2001 |
252b5132 RH |
4 | # Free Software Foundation |
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 | ||
23 | # This file was written by K. Richard Pixley <rich@cygnus.com>. | |
24 | ||
25 | # | |
26 | # Makefile for libiberty directory | |
27 | # | |
28 | ||
29 | srcdir = @srcdir@ | |
30 | VPATH = @srcdir@ | |
31 | ||
32 | prefix = @prefix@ | |
33 | ||
34 | exec_prefix = @exec_prefix@ | |
35 | bindir = @bindir@ | |
36 | libdir = @libdir@ | |
37 | ||
38 | SHELL = @SHELL@ | |
39 | ||
40 | # Multilib support variables. | |
41 | MULTISRCTOP = | |
42 | MULTIBUILDTOP = | |
43 | MULTIDIRS = | |
44 | MULTISUBDIR = | |
45 | MULTIDO = true | |
46 | MULTICLEAN = true | |
47 | ||
48 | INSTALL = @INSTALL@ | |
49 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | |
50 | INSTALL_DATA = @INSTALL_DATA@ | |
51 | ||
52 | AR = @AR@ | |
53 | AR_FLAGS = rc | |
54 | ||
55 | CC = @CC@ | |
56 | CFLAGS = @CFLAGS@ | |
57 | LIBCFLAGS = $(CFLAGS) | |
58 | RANLIB = @RANLIB@ | |
39423523 DD |
59 | MAKEINFO = @MAKEINFO@ |
60 | PERL = @PERL@ | |
252b5132 RH |
61 | |
62 | PICFLAG = | |
63 | ||
64 | MAKEOVERRIDES = | |
65 | ||
66 | TARGETLIB = libiberty.a | |
67 | ||
68 | LIBOBJS = @LIBOBJS@ | |
252b5132 RH |
69 | |
70 | # A configuration can specify extra .o files that should be included, | |
71 | # even if they are in libc. (Perhaps the libc version is buggy.) | |
72 | EXTRA_OFILES = | |
73 | ||
74 | # Flags to pass to a recursive make. | |
75 | FLAGS_TO_PASS = \ | |
76 | "AR=$(AR)" \ | |
77 | "AR_FLAGS=$(AR_FLAGS)" \ | |
78 | "CC=$(CC)" \ | |
79 | "CFLAGS=$(CFLAGS)" \ | |
80 | "LIBCFLAGS=$(LIBCFLAGS)" \ | |
81 | "EXTRA_OFILES=$(EXTRA_OFILES)" \ | |
82 | "HDEFINES=$(HDEFINES)" \ | |
83 | "INSTALL=$(INSTALL)" \ | |
84 | "INSTALL_DATA=$(INSTALL_DATA)" \ | |
85 | "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ | |
86 | "LDFLAGS=$(LDFLAGS)" \ | |
87 | "LOADLIBES=$(LOADLIBES)" \ | |
88 | "RANLIB=$(RANLIB)" \ | |
0c0a36a4 ILT |
89 | "SHELL=$(SHELL)" \ |
90 | "prefix=$(prefix)" \ | |
91 | "exec_prefix=$(exec_prefix)" \ | |
92 | "libdir=$(libdir)" \ | |
93 | "libsubdir=$(libsubdir)" \ | |
94 | "tooldir=$(tooldir)" | |
252b5132 | 95 | |
0c0a36a4 ILT |
96 | # Subdirectories to recurse into. We need to override this during cleaning |
97 | SUBDIRS = testsuite | |
98 | ||
39423523 | 99 | # FIXME: add @BUILD_INFO@ once we're sure it works for everyone. |
0c0a36a4 | 100 | all: stamp-picdir $(TARGETLIB) needed-list required-list all-subdir |
252b5132 RH |
101 | @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all |
102 | ||
103 | .PHONY: check installcheck | |
0c0a36a4 ILT |
104 | check: check-subdir |
105 | installcheck: installcheck-subdir | |
252b5132 RH |
106 | |
107 | @host_makefile_frag@ | |
108 | ||
109 | INCDIR=$(srcdir)/$(MULTISRCTOP)../include | |
110 | ||
eb383413 | 111 | COMPILE.c = $(CC) -c @DEFS@ $(LIBCFLAGS) -I. -I$(INCDIR) $(HDEFINES) @ac_libiberty_warn_cflags@ |
252b5132 | 112 | .c.o: |
eb383413 L |
113 | if [ x"$(PICFLAG)" != x ]; then \ |
114 | $(COMPILE.c) $(PICFLAG) $< -o pic/$@; \ | |
115 | else true; fi | |
252b5132 RH |
116 | $(COMPILE.c) $< |
117 | ||
252b5132 RH |
118 | # NOTE: If you add new files to the library, add them to this list |
119 | # (alphabetical), and add them to REQUIRED_OFILES or funcs in | |
120 | # configure.in. | |
b4fe2683 | 121 | CFILES = asprintf.c alloca.c argv.c atexit.c basename.c bcmp.c bcopy.c \ |
39423523 | 122 | bsearch.c bzero.c calloc.c choose-temp.c clock.c concat.c cplus-dem.c \ |
7b78baae | 123 | cp-demangle.c dyn-string.c fdmatch.c fnmatch.c ffs.c getcwd.c \ |
eb383413 | 124 | getpwd.c getopt.c getopt1.c getpagesize.c getruntime.c \ |
8aa30e60 | 125 | floatformat.c hashtab.c hex.c index.c insque.c lbasename.c \ |
1dffcc66 | 126 | md5.c make-temp-file.c memchr.c \ |
ac424eb3 | 127 | memcmp.c memcpy.c memmove.c memset.c mkstemps.c objalloc.c obstack.c \ |
2a6ef469 DD |
128 | partition.c pexecute.c putenv.c random.c \ |
129 | regex.c rename.c rindex.c setenv.c \ | |
ac424eb3 DD |
130 | sigsetmask.c safe-ctype.c sort.c spaces.c splay-tree.c strcasecmp.c \ |
131 | strncasecmp.c strchr.c strdup.c strerror.c strncmp.c strrchr.c \ | |
0279cc64 DD |
132 | strsignal.c strstr.c strtod.c strtol.c strtoul.c tmpnam.c vasprintf.c \ |
133 | vfork.c vfprintf.c vprintf.c vsprintf.c waitpid.c xatexit.c xexit.c \ | |
8e777d6a | 134 | xmalloc.c xmemdup.c xstrdup.c xstrerror.c ternary.c fibheap.c |
252b5132 RH |
135 | |
136 | # These are always included in the library. | |
8aa30e60 DD |
137 | REQUIRED_OFILES = argv.o alloca.o choose-temp.o concat.o cplus-dem.o \ |
138 | cp-demangle.o dyn-string.o fdmatch.o fnmatch.o getopt.o getopt1.o \ | |
139 | getpwd.o getruntime.o hashtab.o hex.o floatformat.o lbasename.o \ | |
1dffcc66 | 140 | md5.o make-temp-file.o objalloc.o \ |
2a6ef469 | 141 | obstack.o partition.o pexecute.o regex.o safe-ctype.o sort.o spaces.o \ |
8aa30e60 | 142 | splay-tree.o strerror.o strsignal.o xatexit.o xexit.o xmalloc.o \ |
8e777d6a | 143 | xmemdup.o xstrdup.o xstrerror.o ternary.o fibheap.o |
30673bf5 | 144 | |
39423523 DD |
145 | # These are all the objects that configure may add to the library via |
146 | # $funcs. This list exists here only for "make maint-missing". | |
147 | CONFIGURED_OFILES = asprintf.o atexit.o basename.o bcmp.o bcopy.o \ | |
148 | bsearch.o bzero.o calloc.o clock.o ffs.o getcwd.o \ | |
149 | getpagesize.o index.o insque.o memchr.o memcmp.o memcpy.o \ | |
150 | memmove.o memset.o mkstemps.o putenv.o random.o rename.o \ | |
151 | rindex.o setenv.o sigsetmask.o strcasecmp.o strchr.o strdup.o \ | |
152 | strncasecmp.o strncmp.o strrchr.o strstr.o strtod.o strtol.o \ | |
153 | strtoul.o tmpnam.o vasprintf.o vfork.o vfprintf.o vprintf.o \ | |
154 | vsprintf.o waitpid.o | |
155 | ||
30673bf5 | 156 | $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) |
3bc62f91 | 157 | -rm -f $(TARGETLIB) pic/$(TARGETLIB) |
252b5132 | 158 | $(AR) $(AR_FLAGS) $(TARGETLIB) \ |
30673bf5 | 159 | $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) |
252b5132 | 160 | $(RANLIB) $(TARGETLIB) |
3bc62f91 DD |
161 | if [ x"$(PICFLAG)" != x ]; then \ |
162 | cd pic; \ | |
163 | $(AR) $(AR_FLAGS) $(TARGETLIB) \ | |
164 | $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \ | |
165 | $(RANLIB) $(TARGETLIB); \ | |
166 | cd ..; \ | |
167 | else true; fi | |
252b5132 | 168 | |
39423523 DD |
169 | info: libiberty.info info-subdir |
170 | install-info: install-info-subdir | |
171 | clean-info: clean-info-subdir | |
172 | dvi: libiberty.dvi dvi-subdir | |
173 | html: libiberty.html | |
174 | ||
175 | TEXISRC = \ | |
176 | $(srcdir)/libiberty.texi \ | |
177 | $(srcdir)/copying-lib.texi \ | |
178 | $(srcdir)/obstacks.texi \ | |
179 | $(srcdir)/functions.texi | |
180 | ||
181 | # Additional files that have texi snippets that need to be collected | |
ba19b94f DD |
182 | # and sorted. Some are here because the sources are imported from |
183 | # elsewhere. Others represent headers in ../include. | |
184 | TEXIFILES = fnmatch.txh | |
39423523 DD |
185 | |
186 | libiberty.info : $(srcdir)/libiberty.texi $(TEXISRC) | |
187 | $(MAKEINFO) -I$(srcdir) $(srcdir)/libiberty.texi | |
188 | ||
189 | libiberty.dvi : $(srcdir)/libiberty.texi $(TEXISRC) | |
190 | texi2dvi $(srcdir)/libiberty.texi | |
191 | ||
192 | libiberty.html : $(srcdir)/libiberty.texi $(TEXISRC) | |
193 | $(MAKEINFO) --html -I$(srcdir) $(srcdir)/libiberty.texi | |
194 | ||
195 | @MAINT@$(srcdir)/functions.texi : stamp-functions | |
196 | @MAINT@ @true | |
197 | ||
198 | @MAINT@stamp-functions : $(CFILES) $(TEXIFILES) $(srcdir)/gather-docs Makefile | |
199 | @MAINT@@HAVE_PERL@ $(PERL) $(srcdir)/gather-docs $(srcdir) $(srcdir)/functions.texi $(CFILES) $(TEXIFILES) | |
200 | @MAINT@ echo stamp > stamp-functions | |
201 | ||
252b5132 | 202 | INSTALL_DEST = @INSTALL_DEST@ |
0c0a36a4 | 203 | install: install_to_$(INSTALL_DEST) install-subdir |
252b5132 RH |
204 | |
205 | install_to_libdir: all | |
19c33eeb ILT |
206 | $(INSTALL_DATA) $(TARGETLIB) $(libdir)$(MULTISUBDIR)/$(TARGETLIB)n |
207 | ( cd $(libdir)$(MULTISUBDIR) ; $(RANLIB) $(TARGETLIB)n ) | |
208 | mv -f $(libdir)$(MULTISUBDIR)/$(TARGETLIB)n $(libdir)$(MULTISUBDIR)/$(TARGETLIB) | |
252b5132 RH |
209 | @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install |
210 | ||
211 | install_to_tooldir: all | |
19c33eeb ILT |
212 | $(INSTALL_DATA) $(TARGETLIB) $(tooldir)/lib$(MULTISUBDIR)/$(TARGETLIB)n |
213 | ( cd $(tooldir)/lib$(MULTISUBDIR) ; $(RANLIB) $(TARGETLIB)n ) | |
214 | mv -f $(tooldir)/lib$(MULTISUBDIR)/$(TARGETLIB)n $(tooldir)/lib$(MULTISUBDIR)/$(TARGETLIB) | |
252b5132 RH |
215 | @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install |
216 | ||
0c0a36a4 ILT |
217 | # needed-list is used by libstdc++. NEEDED is the list of functions |
218 | # to include there. Do not add anything LGPL to this list; libstdc++ | |
219 | # can't use anything encumbering. | |
220 | NEEDED = atexit calloc memchr memcmp memcpy memmove memset rename strchr \ | |
eb383413 | 221 | strerror strncmp strrchr strstr strtol strtoul tmpnam vfprintf vprintf \ |
0c0a36a4 | 222 | vfork waitpid bcmp bcopy bzero |
252b5132 | 223 | needed-list: Makefile |
0c0a36a4 ILT |
224 | rm -f needed-list; touch needed-list; \ |
225 | for f in $(NEEDED); do \ | |
226 | for g in $(LIBOBJS) $(EXTRA_OFILES); do \ | |
227 | case "$$g" in \ | |
228 | *$$f*) echo $$g >> needed-list ;; \ | |
229 | esac; \ | |
230 | done; \ | |
231 | done | |
252b5132 RH |
232 | |
233 | # required-list was used when building a shared bfd/opcodes/libiberty | |
234 | # library. I don't know if it used by anything currently. | |
235 | required-list: Makefile | |
236 | echo $(REQUIRED_OFILES) > required-list | |
237 | ||
238 | stamp-picdir: | |
eb383413 | 239 | if [ x"$(PICFLAG)" != x ] && [ ! -d pic ]; then \ |
252b5132 RH |
240 | mkdir pic; \ |
241 | else true; fi | |
242 | touch stamp-picdir | |
243 | ||
244 | .PHONY: all etags tags ls clean stage1 stage2 | |
245 | ||
0c0a36a4 | 246 | etags tags: TAGS etags-subdir |
252b5132 | 247 | |
30673bf5 DD |
248 | TAGS: $(CFILES) |
249 | etags `for i in $(CFILES); do echo $(srcdir)/$$i ; done` | |
252b5132 RH |
250 | |
251 | # The standalone demangler (c++filt) has been moved to binutils. | |
252 | demangle: | |
253 | @echo "The standalone demangler, now named c++filt, is now" | |
254 | @echo "a part of binutils." | |
255 | @false | |
256 | ||
257 | ls: | |
30673bf5 | 258 | @echo Makefile $(CFILES) |
252b5132 | 259 | |
39423523 DD |
260 | # Various targets for maintainers. |
261 | ||
262 | maint-missing : | |
263 | @$(PERL) $(srcdir)/maint-tool -s $(srcdir) missing $(CFILES) $(REQUIRED_OFILES) $(CONFIGURED_OFILES) | |
264 | ||
265 | maint-buildall : $(REQUIRED_OFILES) $(CONFIGURED_OFILES) | |
266 | @true | |
267 | ||
ba19b94f DD |
268 | maint-undoc : $(srcdir)/functions.texi |
269 | @$(PERL) $(srcdir)/maint-tool -s $(srcdir) undoc | |
270 | ||
252b5132 RH |
271 | # Need to deal with profiled libraries, too. |
272 | ||
0c0a36a4 ILT |
273 | # Cleaning has to be done carefully to ensure that we don't clean our SUBDIRS |
274 | # multiple times, hence our explicit recursion with an empty SUBDIRS. | |
275 | mostlyclean: mostlyclean-subdir | |
c00c39ed DD |
276 | -rm -rf *.o pic core errs \#* *.E a.out |
277 | -rm -f needed.awk needed2.awk errors dummy needed-list config.h stamp-* | |
278 | -rm -f $(CONFIG_H) $(NEEDED_LIST) stamp-picdir | |
39423523 DD |
279 | -rm -f libiberty.aux libiberty.cp libiberty.cps libiberty.fn libiberty.ky |
280 | -rm -f libiberty.log libiberty.tmp libiberty.tps libiberty.pg | |
281 | -rm -f libiberty.pgs libiberty.toc libiberty.tp libiberty.tpl libiberty.vr | |
282 | -rm -f libtexi.stamp | |
252b5132 | 283 | @$(MULTICLEAN) multi-clean DO=mostlyclean |
0c0a36a4 ILT |
284 | clean: clean-subdir |
285 | $(MAKE) SUBDIRS="" mostlyclean | |
c00c39ed | 286 | -rm -f *.a required-list tmpmulti.out |
39423523 | 287 | -rm -f libiberty.dvi libiberty.info* libiberty.html |
252b5132 | 288 | @$(MULTICLEAN) multi-clean DO=clean |
0c0a36a4 ILT |
289 | distclean: distclean-subdir |
290 | $(MAKE) SUBDIRS="" clean | |
252b5132 | 291 | @$(MULTICLEAN) multi-clean DO=distclean |
c00c39ed DD |
292 | -rm -f *~ Makefile config.status xhost-mkfrag TAGS multilib.out |
293 | -rm -f config.log | |
4415a860 | 294 | -rmdir testsuite 2>/dev/null |
0c0a36a4 ILT |
295 | maintainer-clean realclean: maintainer-clean-subdir |
296 | $(MAKE) SUBDIRS="" distclean | |
252b5132 RH |
297 | |
298 | force: | |
299 | ||
300 | Makefile: $(srcdir)/Makefile.in config.status | |
301 | CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status | |
302 | ||
fec50157 DD |
303 | # Depending on Makefile makes sure that config.status has been re-run |
304 | # if needed. This prevents problems with parallel builds. | |
252b5132 | 305 | config.h: stamp-h ; @true |
fec50157 | 306 | stamp-h: config.in config.status Makefile |
252b5132 RH |
307 | CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status |
308 | ||
309 | config.status: $(srcdir)/configure $(srcdir)/config.table | |
310 | $(SHELL) ./config.status --recheck | |
311 | ||
fec50157 DD |
312 | # Depending on config.h makes sure that config.status has been re-run |
313 | # if needed. This prevents problems with parallel builds, in case | |
314 | # subdirectories need to run config.status also. | |
0c0a36a4 ILT |
315 | all-subdir check-subdir installcheck-subdir info-subdir \ |
316 | install-info-subdir clean-info-subdir dvi-subdir install-subdir \ | |
317 | etags-subdir mostlyclean-subdir clean-subdir distclean-subdir \ | |
fec50157 | 318 | maintainer-clean-subdir: config.h |
010c70e1 | 319 | @subdirs='$(SUBDIRS)'; \ |
19be4303 | 320 | target=`echo $@ | sed -e 's/-subdir//'`; \ |
010c70e1 | 321 | for dir in $$subdirs ; do \ |
19be4303 | 322 | cd $$dir && $(MAKE) $$target; \ |
0c0a36a4 ILT |
323 | done |
324 | ||
30673bf5 | 325 | $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS): stamp-picdir |
252b5132 | 326 | |
30673bf5 | 327 | alloca.o: config.h $(INCDIR)/libiberty.h |
252b5132 | 328 | atexit.o: config.h |
30673bf5 | 329 | argv.o: config.h $(INCDIR)/libiberty.h |
252b5132 RH |
330 | basename.o: $(INCDIR)/libiberty.h |
331 | choose-temp.o: config.h | |
332 | clock.o: config.h | |
cc5144f8 | 333 | concat.o: config.h $(INCDIR)/libiberty.h |
252b5132 | 334 | cplus-dem.o: config.h $(INCDIR)/demangle.h |
eb383413 L |
335 | cp-demangle.o: config.h $(INCDIR)/dyn-string.h $(INCDIR)/demangle.h |
336 | dyn-string.o: config.h $(INCDIR)/dyn-string.h | |
252b5132 | 337 | fdmatch.o: $(INCDIR)/libiberty.h |
f01b59ed | 338 | fibheap.o: config.h $(INCDIR)/libiberty.h $(INCDIR)/fibheap.h |
252b5132 RH |
339 | fnmatch.o: config.h $(INCDIR)/fnmatch.h |
340 | getcwd.o: config.h | |
341 | getopt.o: config.h $(INCDIR)/getopt.h | |
342 | getopt1.o: config.h $(INCDIR)/getopt.h | |
343 | getpagesize.o: config.h | |
0c0a36a4 | 344 | getpwd.o: config.h $(INCDIR)/libiberty.h |
252b5132 RH |
345 | getruntime.o: config.h $(INCDIR)/libiberty.h |
346 | hex.o: $(INCDIR)/libiberty.h | |
347 | floatformat.o: $(INCDIR)/floatformat.h | |
8aa30e60 | 348 | lbasename.o: $(INCDIR)/libiberty.h |
a7bf099b | 349 | make-temp-file.o: config.h |
252b5132 | 350 | mkstemps.o: config.h |
74bcd529 | 351 | md5.o: config.h |
77bfb694 | 352 | objalloc.o: config.h $(INCDIR)/objalloc.h |
252b5132 | 353 | obstack.o: config.h $(INCDIR)/obstack.h |
b4fe2683 | 354 | partition.o: config.h $(INCDIR)/partition.h |
252b5132 | 355 | pexecute.o: config.h $(INCDIR)/libiberty.h |
a5d8f731 | 356 | regex.o: config.h $(INCDIR)/xregex.h $(INCDIR)/xregex2.h |
90aaccd1 | 357 | rename.o: config.h |
0c0a36a4 | 358 | setenv.o: config.h |
eb383413 | 359 | sort.o: config.h $(INCDIR)/sort.h $(INCDIR)/ansidecl.h |
252b5132 RH |
360 | spaces.o: $(INCDIR)/libiberty.h |
361 | splay-tree.o: config.h $(INCDIR)/libiberty.h $(INCDIR)/splay-tree.h $(INCDIR)/ansidecl.h | |
362 | strerror.o: config.h $(INCDIR)/libiberty.h | |
363 | strsignal.o: config.h $(INCDIR)/libiberty.h | |
62df2065 JL |
364 | strtol.o: config.h |
365 | strtoul.o: config.h | |
a5dd804e | 366 | ternary.o: config.h $(INCDIR)/ternary.h $(INCDIR)/libiberty.h |
74bcd529 | 367 | vasprintf.o: config.h |
252b5132 | 368 | xatexit.o: $(INCDIR)/libiberty.h |
74bcd529 | 369 | xexit.o: config.h $(INCDIR)/libiberty.h |
eb383413 | 370 | xmalloc.o: config.h $(INCDIR)/libiberty.h |
0c0a36a4 | 371 | xmemdup.o: config.h $(INCDIR)/libiberty.h |
252b5132 RH |
372 | xstrdup.o: config.h $(INCDIR)/libiberty.h |
373 | xstrerror.o: config.h $(INCDIR)/libiberty.h | |
90aaccd1 | 374 | waitpid.o: config.h |
0c0a36a4 | 375 | hashtab.o: config.h $(INCDIR)/libiberty.h $(INCDIR)/hashtab.h $(INCDIR)/ansidecl.h |