| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- # lib/Makefile for libelf.
- # Copyright (C) 1995 - 2009 Michael Riepe
- #
- # This library is free software; you can redistribute it and/or
- # modify it under the terms of the GNU Library General Public
- # License as published by the Free Software Foundation; either
- # version 2 of the License, or (at your option) any later version.
- #
- # This library is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- # Library General Public License for more details.
- #
- # You should have received a copy of the GNU Library General Public
- # License along with this library; if not, write to the Free Software
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
- # @(#) $Id: Makefile.in,v 1.40 2009/11/01 13:04:19 michael Exp $
- instroot =
- prefix = @prefix@
- exec_prefix = @exec_prefix@
- libdir = @libdir@
- includedir = @includedir@
- installdirs = $(libdir) $(includedir) $(includedir)/libelf
- CC = @CC@
- LD = @LD@
- AR = ar
- MV = mv -f
- RM = rm -f
- LN_S = @LN_S@
- RANLIB = @RANLIB@
- INSTALL = @INSTALL@
- INSTALL_DATA = @INSTALL_DATA@
- INSTALL_PROGRAM = @INSTALL_PROGRAM@
- CFLAGS = @CFLAGS@
- CPPFLAGS = @CPPFLAGS@
- DEFS = -DHAVE_CONFIG_H
- LDFLAGS = @LDFLAGS@
- LIBS = @LIBS@
- DEPSHLIBS = @DEPSHLIBS@
- DO_SHLIB = @DO_SHLIB@
- PICFLAGS = @PICFLAGS@
- SHLIB_SFX = @SHLIB_SFX@
- SHLINK_SFX = @SHLINK_SFX@
- SONAME_SFX = @SONAME_SFX@
- LINK_SHLIB = @LINK_SHLIB@
- INSTALL_SHLIB = @INSTALL_SHLIB@
- SHLIB = libelf$(SHLIB_SFX)
- SHLINK = libelf$(SHLINK_SFX)
- SONAME = libelf$(SONAME_SFX)
- # install includes in includedir?
- DO_COMPAT = @DO_COMPAT@
- COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
- # no user serviceable parts below
- PACKAGE = @PACKAGE@
- VERSION = @VERSION@
- MAJOR = @MAJOR@
- SHELL = /bin/sh
- @SET_MAKE@
- srcdir = @srcdir@
- top_srcdir = @top_srcdir@
- VPATH = @srcdir@
- topdir = ..
- subdir = lib
- .SUFFIXES:
- .SUFFIXES: .c .o
- .c.o:
- @$(RM) $@ $(@:.o=.os)
- if test -n "$(PICFLAGS)"; then \
- $(COMPILE) $(PICFLAGS) $< && $(MV) $@ $(@:.o=.os); \
- else true; fi
- $(COMPILE) $<
- INCLUDES = -I$(topdir) -I. -I$(srcdir)
- # generic sources
- SRCS1 = begin.c cntl.c end.c errmsg.c errno.c fill.c flag.c getarhdr.c \
- getarsym.c getbase.c getdata.c getident.c getscn.c hash.c kind.c \
- ndxscn.c newdata.c newscn.c next.c nextscn.c rand.c rawdata.c \
- rawfile.c strptr.c update.c version.c checksum.c getaroff.c
- OBJS1 = begin.o cntl.o end.o errmsg.o errno.o fill.o flag.o getarhdr.o \
- getarsym.o getbase.o getdata.o getident.o getscn.o hash.o kind.o \
- ndxscn.o newdata.o newscn.o next.o nextscn.o rand.o rawdata.o \
- rawfile.o strptr.o update.o version.o checksum.o getaroff.o
- # 32-bit sources
- SRCS2 = 32.fsize.c 32.getehdr.c 32.getphdr.c 32.getshdr.c 32.newehdr.c \
- 32.newphdr.c 32.xlatetof.c
- OBJS2 = 32.fsize.o 32.getehdr.o 32.getphdr.o 32.getshdr.o 32.newehdr.o \
- 32.newphdr.o 32.xlatetof.o
- # support
- SRCS3 = cook.c data.c input.c assert.c
- OBJS3 = cook.o data.o input.o assert.o
- # nlist
- SRCS4 = nlist.c
- OBJS4 = nlist.o
- # opt
- SRCS5 = opt.delscn.c x.remscn.c x.movscn.c x.elfext.c
- OBJS5 = opt.delscn.o x.remscn.o x.movscn.o x.elfext.o
- # 64-bit sources
- SRCS64 = 64.xlatetof.c gelfehdr.c gelfphdr.c gelfshdr.c gelftrans.c swap64.c
- OBJS64 = 64.xlatetof.o gelfehdr.o gelfphdr.o gelfshdr.o gelftrans.o swap64.o
- # Versioning sources
- SRCS_V = verdef_32_tof.c verdef_32_tom.c verdef_64_tof.c verdef_64_tom.c
- OBJS_V = verdef_32_tof.o verdef_32_tom.o verdef_64_tof.o verdef_64_tom.o
- HDRS_V = verdef.h verneed.h
- SRCS = $(SRCS1) $(SRCS2) $(SRCS3) $(SRCS4) $(SRCS5) $(SRCS64) $(SRCS_V)
- OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(OBJS5) $(OBJS64) $(OBJS_V)
- # missing functions
- LIBSRCS = memset.c
- LIBOBJS = @LIBOBJS@
- # public header files
- HDRS = libelf.h nlist.h gelf.h
- # public header files (created by configure)
- AUXHDRS = sys_elf.h
- # private header files
- PRIVHDRS = byteswap.h errors.h ext_types.h private.h elf_repl.h \
- $(HDRS_V)
- DISTFILES = $(SRCS) $(LIBSRCS) $(HDRS) $(PRIVHDRS) Makefile.in sys_elf.h.in \
- Makefile.w32 build.bat config.h.w32 libelf.def sys_elf.h.w32
- all: libelf.a shared-$(DO_SHLIB)
- check:
- shared-yes: $(SHLIB)
- shared-no:
- libelf.a: $(OBJS) $(LIBOBJS)
- @$(RM) $@
- $(AR) rcv $@ $(OBJS) $(LIBOBJS)
- $(RANLIB) $@
- $(SHLIB): libelf.a
- @$(RM) $(SHLIB)
- $(LINK_SHLIB) -o $(SHLIB) $(OBJS:.o=.os) $(LIBOBJS:.o=.os) $(DEPSHLIBS)
- if test "$(SONAME)" = "$(SHLIB)"; then true; else \
- $(RM) $(SONAME) && $(LN_S) $(SHLIB) $(SONAME); \
- fi
- if test "$(SHLINK)" = "$(SHLIB)"; then true; else \
- $(RM) $(SHLINK) && $(LN_S) $(SHLIB) $(SHLINK); \
- fi
- install: install-data \
- install-shared-$(DO_SHLIB) install-compat-$(DO_COMPAT)
- installdirs: $(top_srcdir)/mkinstalldirs
- dirs="$(installdirs)"; for dir in $$dirs; do \
- $(SHELL) $(top_srcdir)/mkinstalldirs $(instroot)$$dir; \
- done
- install-data: all installdirs
- $(INSTALL_DATA) libelf.a $(instroot)$(libdir)
- -cd $(instroot)$(libdir) && $(RANLIB) libelf.a
- files="$(HDRS) $(AUXHDRS) elf_repl.h"; for file in $$files; do \
- if test -r $$file; then \
- $(INSTALL_DATA) $$file $(instroot)$(includedir)/libelf; \
- else \
- $(INSTALL_DATA) $(srcdir)/$$file $(instroot)$(includedir)/libelf; \
- fi; \
- done
- uninstall: uninstall-data \
- uninstall-shared-$(DO_SHLIB) uninstall-compat-$(DO_COMPAT)
- uninstall-data:
- $(RM) $(instroot)$(libdir)/libelf.a
- $(RM) -r $(instroot)$(includedir)/libelf
- install-shared-yes: install-shared
- install-shared-no:
- install-shared: installdirs $(SHLIB)
- $(INSTALL_SHLIB) $(SHLIB) $(instroot)$(libdir)
- if test "$(SONAME)" = "$(SHLIB)"; then true; else \
- cd $(instroot)$(libdir) && $(RM) $(SONAME) && $(LN_S) $(SHLIB) $(SONAME); \
- fi
- if test "$(SHLINK)" = "$(SHLIB)"; then true; else \
- cd $(instroot)$(libdir) && $(RM) $(SHLINK) && $(LN_S) $(SHLIB) $(SHLINK); \
- fi
- uninstall-shared-yes: uninstall-shared
- uninstall-shared-no:
- uninstall-shared:
- cd $(instroot)$(libdir) && $(RM) $(SHLIB) $(SONAME) $(SHLINK)
- install-compat-yes: install-compat
- install-compat-no:
- install-compat: installdirs
- files="$(HDRS)"; for file in $$files; do \
- if test -f $(instroot)$(includedir)/$$file; then true; else \
- echo "#include <libelf/$$file>" > $(instroot)$(includedir)/$$file; \
- fi; \
- done
- uninstall-compat-yes: uninstall-compat
- uninstall-compat-no:
- uninstall-compat:
- files="$(HDRS)"; for file in $$files; do \
- if grep "^#include <libelf/$$file>\$$" $(instroot)$(includedir)/$$file >/dev/null 2>&1; then \
- $(RM) $(instroot)$(includedir)/$$file; \
- else true; fi; \
- done
- mostlyclean:
- $(RM) *.o *.a *.os $(SHLIB) $(SONAME) $(SHLINK)
- $(RM) *~ core a.out errlist
- clean: mostlyclean
- distclean: clean
- $(RM) stamp-h $(AUXHDRS)
- $(RM) Makefile
- maintainer-clean: distclean
- # maintainer only
- MAINT = @MAINT@
- distdir = $(PACKAGE)-$(VERSION)
- distsubdir = $(topdir)/$(distdir)/$(subdir)
- $(MAINT)dist: $(DISTFILES)
- if test -d $(distsubdir); then true; else mkdir $(distsubdir); fi
- files="$(DISTFILES)"; for file in $$files; do \
- ln $(srcdir)/$$file $(distsubdir) || \
- cp -p $(srcdir)/$$file $(distsubdir) || exit 1; \
- done
- # For the justification of the following Makefile rules, see node
- # `Automatic Remaking' in GNU Autoconf documentation.
- $(MAINT)Makefile: Makefile.in $(topdir)/config.status
- cd $(topdir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status
- $(MAINT)sys_elf.h: stamp-h
- $(MAINT)stamp-h: sys_elf.h.in $(topdir)/config.status
- cd $(topdir) && CONFIG_FILES= CONFIG_HEADERS=$(subdir)/sys_elf.h ./config.status
- $(RM) stamp-h && echo timestamp > stamp-h
- # Tell versions [3.59,3.63) of GNU make not to export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
- .NOEXPORT:
- # dependencies
- $(OBJS): private.h $(topdir)/config.h libelf.h gelf.h errors.h $(AUXHDRS)
- 32.fsize.o: ext_types.h
- 32.xlatetof.o: byteswap.h ext_types.h
- 64.xlatetof.o: byteswap.h ext_types.h
- getarsym.o: byteswap.h
- memset.o: $(topdir)/config.h
- nlist.o: nlist.h
- swap64.o: byteswap.h
- $(OBJS_V): byteswap.h ext_types.h $(HDRS_V)
|