1# 2# Makefile 3# Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97, 98, 1999 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 29srcdir = @srcdir@ 30VPATH = @srcdir@ 31 32prefix = @prefix@ 33 34exec_prefix = @exec_prefix@ 35bindir = @bindir@ 36libdir = @libdir@ 37 38SHELL = @SHELL@ 39 40# Multilib support variables. 41MULTISRCTOP = 42MULTIBUILDTOP = 43MULTIDIRS = 44MULTISUBDIR = 45MULTIDO = true 46MULTICLEAN = true 47 48INSTALL = @INSTALL@ 49INSTALL_PROGRAM = @INSTALL_PROGRAM@ 50INSTALL_DATA = @INSTALL_DATA@ 51 52AR = @AR@ 53AR_FLAGS = rc 54 55CC = @CC@ 56CFLAGS = @CFLAGS@ 57LIBCFLAGS = $(CFLAGS) 58RANLIB = @RANLIB@ 59 60PICFLAG = 61 62MAKEOVERRIDES = 63 64TARGETLIB = libiberty.a 65 66LIBOBJS = @LIBOBJS@ 67ALLOCA = @ALLOCA@ 68 69# A configuration can specify extra .o files that should be included, 70# even if they are in libc. (Perhaps the libc version is buggy.) 71EXTRA_OFILES = 72 73# Flags to pass to a recursive make. 74FLAGS_TO_PASS = \ 75 "AR=$(AR)" \ 76 "AR_FLAGS=$(AR_FLAGS)" \ 77 "CC=$(CC)" \ 78 "CFLAGS=$(CFLAGS)" \ 79 "LIBCFLAGS=$(LIBCFLAGS)" \ 80 "EXTRA_OFILES=$(EXTRA_OFILES)" \ 81 "HDEFINES=$(HDEFINES)" \ 82 "INSTALL=$(INSTALL)" \ 83 "INSTALL_DATA=$(INSTALL_DATA)" \ 84 "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ 85 "LDFLAGS=$(LDFLAGS)" \ 86 "LOADLIBES=$(LOADLIBES)" \ 87 "RANLIB=$(RANLIB)" \ 88 "SHELL=$(SHELL)" \ 89 "prefix=$(prefix)" \ 90 "exec_prefix=$(exec_prefix)" \ 91 "libdir=$(libdir)" \ 92 "libsubdir=$(libsubdir)" \ 93 "tooldir=$(tooldir)" 94 95all: stamp-picdir $(TARGETLIB) needed-list required-list all-subdir 96 @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all 97 98.PHONY: check installcheck 99check: check-subdir 100installcheck: installcheck-subdir 101 102@host_makefile_frag@ 103 104INCDIR=$(srcdir)/$(MULTISRCTOP)../include 105 106COMPILE.c = $(CC) -c @DEFS@ $(LIBCFLAGS) -I. -I$(INCDIR) $(HDEFINES) 107.c.o: 108 test x"$(enable_shared)" != xyes || \ 109 $(COMPILE.c) $(PICFLAG) $< -o pic/$@ 110 $(COMPILE.c) $< 111 112info: info-subdir 113install-info: install-info-subdir 114clean-info: clean-info-subdir 115dvi: dvi-subdir 116 117# Include files that are in this directory. 118HFILES = alloca-conf.h 119 120# NOTE: If you add new files to the library, add them to this list 121# (alphabetical), and add them to REQUIRED_OFILES or funcs in 122# configure.in. 123CFILES = asprintf.c alloca.c argv.c atexit.c basename.c bcmp.c bcopy.c \ 124 bzero.c choose-temp.c clock.c concat.c cplus-dem.c fdmatch.c \ 125 fnmatch.c getcwd.c getopt.c getopt1.c getpagesize.c \ 126 getruntime.c floatformat.c hex.c index.c insque.c memchr.c \ 127 memcmp.c memcpy.c memmove.c memset.c mkstemps.c objalloc.c obstack.c \ 128 pexecute.c putenv.c random.c rename.c rindex.c setenv.c sigsetmask.c \ 129 spaces.c splay-tree.c strcasecmp.c strncasecmp.c strchr.c strdup.c \ 130 strerror.c strrchr.c strsignal.c strstr.c strtod.c strtol.c strtoul.c \ 131 tmpnam.c vasprintf.c vfork.c vfprintf.c vprintf.c vsprintf.c \ 132 waitpid.c xatexit.c xexit.c xmalloc.c xstrdup.c xstrerror.c 133 134# These are always included in the library. 135REQUIRED_OFILES = argv.o choose-temp.o concat.o cplus-dem.o \ 136 fdmatch.o fnmatch.o getopt.o getopt1.o getruntime.o hex.o \ 137 floatformat.o objalloc.o obstack.o pexecute.o spaces.o \ 138 splay-tree.o strerror.o strsignal.o xatexit.o xexit.o xmalloc.o \ 139 xstrdup.o xstrerror.o 140 141$(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) $(ALLOCA) 142 rm -f $(TARGETLIB) 143 $(AR) $(AR_FLAGS) $(TARGETLIB) \ 144 $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) $(ALLOCA) 145 $(RANLIB) $(TARGETLIB) 146 147INSTALL_DEST = @INSTALL_DEST@ 148install: install_to_$(INSTALL_DEST) install-subdir 149 150install_to_libdir: all 151 $(INSTALL_DATA) $(TARGETLIB) $(libdir)$(MULTISUBDIR)/$(TARGETLIB).n 152 ( cd $(libdir)$(MULTISUBDIR) ; $(RANLIB) $(TARGETLIB).n ) 153 mv -f $(libdir)$(MULTISUBDIR)/$(TARGETLIB).n $(libdir)$(MULTISUBDIR)/$(TARGETLIB) 154 @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install 155 156install_to_tooldir: all 157 $(INSTALL_DATA) $(TARGETLIB) $(tooldir)/lib$(MULTISUBDIR)/$(TARGETLIB).n 158 ( cd $(tooldir)/lib$(MULTISUBDIR) ; $(RANLIB) $(TARGETLIB).n ) 159 mv -f $(tooldir)/lib$(MULTISUBDIR)/$(TARGETLIB).n $(tooldir)/lib$(MULTISUBDIR)/$(TARGETLIB) 160 @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install 161 162# needed-list is used by libstdc++. NEEDED is the list of functions 163# to include there. Do not add anything LGPL to this list; libstdc++ 164# can't use anything encumbering. 165NEEDED = atexit calloc memchr memcmp memcpy memmove memset rename strchr \ 166 strerror strrchr strstr strtol strtoul tmpnam vfprintf vprintf \ 167 vfork waitpid bcmp bcopy bzero \ 168 basename getpagesize insque sigsetmask xexit xmalloc 169needed-list: Makefile 170 rm -f needed-list; touch needed-list; \ 171 for f in $(NEEDED); do \ 172 for g in $(LIBOBJS) $(EXTRA_OFILES) xmalloc.o xexit.o; do \ 173 case "$$g" in \ 174 *$$f*) echo $$g >> needed-list ;; \ 175 esac; \ 176 done; \ 177 done 178 179# required-list was used when building a shared bfd/opcodes/libiberty 180# library. I don't know if it used by anything currently. 181required-list: Makefile 182 echo $(REQUIRED_OFILES) > required-list 183 184stamp-picdir: 185 if [ x"$(enable_shared)" = xyes ] && [ ! -d pic ]; then \ 186 mkdir pic; \ 187 else true; fi 188 touch stamp-picdir 189 190.PHONY: all etags tags ls clean stage1 stage2 191 192etags tags: TAGS etags-subdir 193 194TAGS: $(CFILES) $(HFILES) 195 etags `for i in $(HFILES) $(CFILES); do echo $(srcdir)/$$i ; done` 196 197# The standalone demangler (c++filt) has been moved to binutils. 198demangle: 199 @echo "The standalone demangler, now named c++filt, is now" 200 @echo "a part of binutils." 201 @false 202 203ls: 204 @echo Makefile $(HFILES) $(CFILES) 205 206# Need to deal with profiled libraries, too. 207 208mostlyclean: mostlyclean-subdir 209 rm -rf *.o pic core errs \#* *.E a.out 210 rm -f needed.awk needed2.awk errors dummy needed-list config.h stamp-* 211 rm -f $(CONFIG_H) $(NEEDED_LIST) stamp-picdir 212 @$(MULTICLEAN) multi-clean DO=mostlyclean 213clean: mostlyclean clean-subdir 214 rm -f *.a required-list tmpmulti.out 215 @$(MULTICLEAN) multi-clean DO=clean 216distclean: clean distclean-subdir 217 @$(MULTICLEAN) multi-clean DO=distclean 218 rm -f *~ Makefile config.status xhost-mkfrag TAGS multilib.out 219 rm -f config.log 220maintainer-clean realclean: distclean maintainer-clean-subdir 221 222force: 223 224Makefile: $(srcdir)/Makefile.in config.status 225 CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status 226 227config.h: stamp-h ; @true 228stamp-h: config.in config.status 229 CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status 230 231config.status: $(srcdir)/configure $(srcdir)/config.table 232 $(SHELL) ./config.status --recheck 233 234 235all-subdir check-subdir installcheck-subdir info-subdir \ 236install-info-subdir clean-info-subdir dvi-subdir install-subdir \ 237etags-subdir mostlyclean-subdir clean-subdir distclean-subdir \ 238maintainer-clean-subdir: 239 @target=`echo $@ | sed -e 's/-subdir//'`; \ 240 cd testsuite && $(MAKE) $$target 241 242$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) $(ALLOCA): stamp-picdir 243 244alloca.o: config.h 245atexit.o: config.h 246argv.o: config.h alloca-conf.h $(INCDIR)/libiberty.h 247basename.o: $(INCDIR)/libiberty.h 248choose-temp.o: config.h 249clock.o: config.h 250concat.o: $(INCDIR)/libiberty.h 251cplus-dem.o: config.h $(INCDIR)/demangle.h 252fdmatch.o: $(INCDIR)/libiberty.h 253fnmatch.o: config.h $(INCDIR)/fnmatch.h 254getcwd.o: config.h 255getopt.o: config.h $(INCDIR)/getopt.h 256getopt1.o: config.h $(INCDIR)/getopt.h 257getpagesize.o: config.h 258getruntime.o: config.h $(INCDIR)/libiberty.h 259hex.o: $(INCDIR)/libiberty.h 260floatformat.o: $(INCDIR)/floatformat.h 261mkstemps.o: config.h 262objalloc.o: $(INCDIR)/objalloc.h 263obstack.o: config.h $(INCDIR)/obstack.h 264pexecute.o: config.h $(INCDIR)/libiberty.h 265setenv.o: config.h 266spaces.o: $(INCDIR)/libiberty.h 267splay-tree.o: config.h $(INCDIR)/libiberty.h $(INCDIR)/splay-tree.h $(INCDIR)/ansidecl.h 268strerror.o: config.h $(INCDIR)/libiberty.h 269strsignal.o: config.h $(INCDIR)/libiberty.h 270xatexit.o: $(INCDIR)/libiberty.h 271xexit.o: $(INCDIR)/libiberty.h 272xmalloc.o: $(INCDIR)/libiberty.h 273xstrdup.o: config.h $(INCDIR)/libiberty.h 274xstrerror.o: config.h $(INCDIR)/libiberty.h 275