mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
f5e9c9bde0
ctf.h states: > [...] the CTF string table does not contain any duplicated strings. Unfortunately this is entirely untrue: libctf has before now made no attempt whatsoever to deduplicate the string table. It computes the string table's length on the fly as it adds new strings to the dynamic CTF file, and ctf_update() just writes each string to the table and notes the current write position as it traverses the dynamic CTF file's data structures and builds the final CTF buffer. There is no global view of the strings and no deduplication. Fix this by erasing the ctf_dtvstrlen dead-reckoning length, and adding a new dynhash table ctf_str_atoms that maps unique strings to a list of references to those strings: a reference is a simple uint32_t * to some value somewhere in the under-construction CTF buffer that needs updating to note the string offset when the strtab is laid out. Adding a string is now a simple matter of calling ctf_str_add_ref(), which adds a new atom to the atoms table, if one doesn't already exist, and adding the location of the reference to this atom to the refs list attached to the atom: this works reliably as long as one takes care to only call ctf_str_add_ref() once the final location of the offset is known (so you can't call it on a temporary structure and then memcpy() that structure into place in the CTF buffer, because the ref will still point to the old location: ctf_update() changes accordingly). Generating the CTF string table is a matter of calling ctf_str_write_strtab(), which counts the length and number of elements in the atoms table using the ctf_dynhash_iter() function we just added, populating an array of pointers into the atoms table and sorting it into order (to help compressors), then traversing this table and emitting it, updating the refs to each atom as we go. The only complexity here is arranging to keep the null string at offset zero, since a lot of code in libctf depends on being able to leave strtab references at 0 to indicate 'no name'. Once the table is constructed and the refs updated, we know how long it is, so we can realloc() the partial CTF buffer we allocated earlier and can copy the table on to the end of it (and purge the refs because they're not needed any more and have been invalidated by the realloc() call in any case). The net effect of all this is a reduction in uncompressed strtab sizes of about 30% (perhaps a quarter to a half of all strings across the Linux kernel are eliminated as duplicates). Of course, duplicated strings are highly redundant, so the space saving after compression is only about 20%: when the other non-strtab sections are factored in, CTF sizes shrink by about 10%. No change in externally-visible API or file format (other than the reduction in pointless redundancy). libctf/ * ctf-impl.h: (struct ctf_strs_writable): New, non-const version of struct ctf_strs. (struct ctf_dtdef): Note that dtd_data.ctt_name is unpopulated. (struct ctf_str_atom): New, disambiguated single string. (struct ctf_str_atom_ref): New, points to some other location that references this string's offset. (struct ctf_file): New members ctf_str_atoms and ctf_str_num_refs. Remove member ctf_dtvstrlen: we no longer track the total strlen as we add strings. (ctf_str_create_atoms): Declare new function in ctf-string.c. (ctf_str_free_atoms): Likewise. (ctf_str_add): Likewise. (ctf_str_add_ref): Likewise. (ctf_str_purge_refs): Likewise. (ctf_str_write_strtab): Likewise. (ctf_realloc): Declare new function in ctf-util.c. * ctf-open.c (ctf_bufopen): Create the atoms table. (ctf_file_close): Destroy it. * ctf-create.c (ctf_update): Copy-and-free it on update. No longer special-case the position of the parname string. Construct the strtab by calling ctf_str_add_ref and ctf_str_write_strtab after the rest of each buffer element is constructed, not via open-coding: realloc the CTF buffer and append the strtab to it. No longer maintain ctf_dtvstrlen. Sort the variable entry table later, after strtab construction. (ctf_copy_membnames): Remove: integrated into ctf_copy_{s,l,e}members. (ctf_copy_smembers): Drop the string offset: call ctf_str_add_ref after buffer element construction instead. (ctf_copy_lmembers): Likewise. (ctf_copy_emembers): Likewise. (ctf_create): No longer maintain the ctf_dtvstrlen. (ctf_dtd_delete): Likewise. (ctf_dvd_delete): Likewise. (ctf_add_generic): Likewise. (ctf_add_enumerator): Likewise. (ctf_add_member_offset): Likewise. (ctf_add_variable): Likewise. (membadd): Likewise. * ctf-util.c (ctf_realloc): New, wrapper around realloc that aborts if there are active ctf_str_num_refs. (ctf_strraw): Move to ctf-string.c. (ctf_strptr): Likewise. * ctf-string.c: New file, strtab manipulation. * Makefile.am (libctf_a_SOURCES): Add it. * Makefile.in: Regenerate.
787 lines
26 KiB
Makefile
787 lines
26 KiB
Makefile
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
|
# @configure_input@
|
|
|
|
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
|
|
|
# This Makefile.in is free software; the Free Software Foundation
|
|
# gives unlimited permission to copy and/or distribute it,
|
|
# with or without modifications, as long as this notice is preserved.
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
# PARTICULAR PURPOSE.
|
|
|
|
@SET_MAKE@
|
|
|
|
#
|
|
# Copyright (C) 2019 Free Software Foundation, Inc.
|
|
#
|
|
# This file is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program 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 General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; see the file COPYING. If not see
|
|
# <http://www.gnu.org/licenses/>.
|
|
#
|
|
|
|
VPATH = @srcdir@
|
|
am__is_gnu_make = { \
|
|
if test -z '$(MAKELEVEL)'; then \
|
|
false; \
|
|
elif test -n '$(MAKE_HOST)'; then \
|
|
true; \
|
|
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
|
true; \
|
|
else \
|
|
false; \
|
|
fi; \
|
|
}
|
|
am__make_running_with_option = \
|
|
case $${target_option-} in \
|
|
?) ;; \
|
|
*) echo "am__make_running_with_option: internal error: invalid" \
|
|
"target option '$${target_option-}' specified" >&2; \
|
|
exit 1;; \
|
|
esac; \
|
|
has_opt=no; \
|
|
sane_makeflags=$$MAKEFLAGS; \
|
|
if $(am__is_gnu_make); then \
|
|
sane_makeflags=$$MFLAGS; \
|
|
else \
|
|
case $$MAKEFLAGS in \
|
|
*\\[\ \ ]*) \
|
|
bs=\\; \
|
|
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
|
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
|
esac; \
|
|
fi; \
|
|
skip_next=no; \
|
|
strip_trailopt () \
|
|
{ \
|
|
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
|
}; \
|
|
for flg in $$sane_makeflags; do \
|
|
test $$skip_next = yes && { skip_next=no; continue; }; \
|
|
case $$flg in \
|
|
*=*|--*) continue;; \
|
|
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
|
-*I?*) strip_trailopt 'I';; \
|
|
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
|
-*O?*) strip_trailopt 'O';; \
|
|
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
|
-*l?*) strip_trailopt 'l';; \
|
|
-[dEDm]) skip_next=yes;; \
|
|
-[JT]) skip_next=yes;; \
|
|
esac; \
|
|
case $$flg in \
|
|
*$$target_option*) has_opt=yes; break;; \
|
|
esac; \
|
|
done; \
|
|
test $$has_opt = yes
|
|
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
|
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
|
pkgdatadir = $(datadir)/@PACKAGE@
|
|
pkgincludedir = $(includedir)/@PACKAGE@
|
|
pkglibdir = $(libdir)/@PACKAGE@
|
|
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
|
install_sh_DATA = $(install_sh) -c -m 644
|
|
install_sh_PROGRAM = $(install_sh) -c
|
|
install_sh_SCRIPT = $(install_sh) -c
|
|
INSTALL_HEADER = $(INSTALL_DATA)
|
|
transform = $(program_transform_name)
|
|
NORMAL_INSTALL = :
|
|
PRE_INSTALL = :
|
|
POST_INSTALL = :
|
|
NORMAL_UNINSTALL = :
|
|
PRE_UNINSTALL = :
|
|
POST_UNINSTALL = :
|
|
@NEED_CTF_QSORT_R_TRUE@am__append_1 = ctf-qsort_r.c
|
|
subdir = .
|
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
|
am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \
|
|
$(top_srcdir)/../config/lead-dot.m4 \
|
|
$(top_srcdir)/../config/override.m4 \
|
|
$(top_srcdir)/../config/warnings.m4 \
|
|
$(top_srcdir)/../config/zlib.m4 $(top_srcdir)/configure.ac
|
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|
$(ACLOCAL_M4)
|
|
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
|
|
$(am__configure_deps) $(am__DIST_COMMON)
|
|
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
|
configure.lineno config.status.lineno
|
|
mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
|
|
CONFIG_HEADER = config.h
|
|
CONFIG_CLEAN_FILES =
|
|
CONFIG_CLEAN_VPATH_FILES =
|
|
LIBRARIES = $(noinst_LIBRARIES)
|
|
ARFLAGS = cru
|
|
AM_V_AR = $(am__v_AR_@AM_V@)
|
|
am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
|
|
am__v_AR_0 = @echo " AR " $@;
|
|
am__v_AR_1 =
|
|
libctf_a_AR = $(AR) $(ARFLAGS)
|
|
libctf_a_LIBADD =
|
|
am__libctf_a_SOURCES_DIST = ctf-archive.c ctf-dump.c ctf-create.c \
|
|
ctf-decl.c ctf-error.c ctf-hash.c ctf-labels.c ctf-lookup.c \
|
|
ctf-open.c ctf-open-bfd.c ctf-string.c ctf-subr.c ctf-types.c \
|
|
ctf-util.c ctf-qsort_r.c
|
|
@NEED_CTF_QSORT_R_TRUE@am__objects_1 = ctf-qsort_r.$(OBJEXT)
|
|
am_libctf_a_OBJECTS = ctf-archive.$(OBJEXT) ctf-dump.$(OBJEXT) \
|
|
ctf-create.$(OBJEXT) ctf-decl.$(OBJEXT) ctf-error.$(OBJEXT) \
|
|
ctf-hash.$(OBJEXT) ctf-labels.$(OBJEXT) ctf-lookup.$(OBJEXT) \
|
|
ctf-open.$(OBJEXT) ctf-open-bfd.$(OBJEXT) ctf-string.$(OBJEXT) \
|
|
ctf-subr.$(OBJEXT) ctf-types.$(OBJEXT) ctf-util.$(OBJEXT) \
|
|
$(am__objects_1)
|
|
libctf_a_OBJECTS = $(am_libctf_a_OBJECTS)
|
|
AM_V_P = $(am__v_P_@AM_V@)
|
|
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
|
am__v_P_0 = false
|
|
am__v_P_1 = :
|
|
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
|
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
|
am__v_GEN_0 = @echo " GEN " $@;
|
|
am__v_GEN_1 =
|
|
AM_V_at = $(am__v_at_@AM_V@)
|
|
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
|
am__v_at_0 = @
|
|
am__v_at_1 =
|
|
DEFAULT_INCLUDES = -I.@am__isrc@
|
|
depcomp = $(SHELL) $(top_srcdir)/../depcomp
|
|
am__depfiles_maybe = depfiles
|
|
am__mv = mv -f
|
|
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
|
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
|
AM_V_CC = $(am__v_CC_@AM_V@)
|
|
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
|
|
am__v_CC_0 = @echo " CC " $@;
|
|
am__v_CC_1 =
|
|
CCLD = $(CC)
|
|
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
|
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
|
|
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
|
|
am__v_CCLD_0 = @echo " CCLD " $@;
|
|
am__v_CCLD_1 =
|
|
SOURCES = $(libctf_a_SOURCES)
|
|
DIST_SOURCES = $(am__libctf_a_SOURCES_DIST)
|
|
am__can_run_installinfo = \
|
|
case $$AM_UPDATE_INFO_DIR in \
|
|
n|no|NO) false;; \
|
|
*) (install-info --version) >/dev/null 2>&1;; \
|
|
esac
|
|
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
|
|
$(LISP)config.h.in
|
|
# Read a list of newline-separated strings from the standard input,
|
|
# and print each of them once, without duplicates. Input order is
|
|
# *not* preserved.
|
|
am__uniquify_input = $(AWK) '\
|
|
BEGIN { nonempty = 0; } \
|
|
{ items[$$0] = 1; nonempty = 1; } \
|
|
END { if (nonempty) { for (i in items) print i; }; } \
|
|
'
|
|
# Make sure the list of sources is unique. This is necessary because,
|
|
# e.g., the same source file might be shared among _SOURCES variables
|
|
# for different programs/libraries.
|
|
am__define_uniq_tagged_files = \
|
|
list='$(am__tagged_files)'; \
|
|
unique=`for i in $$list; do \
|
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
done | $(am__uniquify_input)`
|
|
ETAGS = etags
|
|
CTAGS = ctags
|
|
CSCOPE = cscope
|
|
AM_RECURSIVE_TARGETS = cscope
|
|
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
|
$(top_srcdir)/../ar-lib $(top_srcdir)/../compile \
|
|
$(top_srcdir)/../depcomp $(top_srcdir)/../install-sh \
|
|
$(top_srcdir)/../missing $(top_srcdir)/../mkinstalldirs \
|
|
ChangeLog
|
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|
distdir = $(PACKAGE)-$(VERSION)
|
|
top_distdir = $(distdir)
|
|
am__remove_distdir = \
|
|
if test -d "$(distdir)"; then \
|
|
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
|
&& rm -rf "$(distdir)" \
|
|
|| { sleep 5 && rm -rf "$(distdir)"; }; \
|
|
else :; fi
|
|
am__post_remove_distdir = $(am__remove_distdir)
|
|
DIST_ARCHIVES = $(distdir).tar.gz
|
|
GZIP_ENV = --best
|
|
DIST_TARGETS = dist-gzip
|
|
distuninstallcheck_listfiles = find . -type f -print
|
|
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
|
|
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
|
|
distcleancheck_listfiles = find . -type f -print
|
|
ACLOCAL = @ACLOCAL@
|
|
AMTAR = @AMTAR@
|
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
|
AR = @AR@
|
|
AUTOCONF = @AUTOCONF@
|
|
AUTOHEADER = @AUTOHEADER@
|
|
AUTOMAKE = @AUTOMAKE@
|
|
AWK = @AWK@
|
|
CC = @CC@
|
|
CCDEPMODE = @CCDEPMODE@
|
|
CFLAGS = @CFLAGS@
|
|
CPP = @CPP@
|
|
CPPFLAGS = @CPPFLAGS@
|
|
CYGPATH_W = @CYGPATH_W@
|
|
DEFS = @DEFS@
|
|
DEPDIR = @DEPDIR@
|
|
ECHO_C = @ECHO_C@
|
|
ECHO_N = @ECHO_N@
|
|
ECHO_T = @ECHO_T@
|
|
EGREP = @EGREP@
|
|
EXEEXT = @EXEEXT@
|
|
GREP = @GREP@
|
|
INSTALL = @INSTALL@
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
|
LDFLAGS = @LDFLAGS@
|
|
LIBOBJS = @LIBOBJS@
|
|
LIBS = @LIBS@
|
|
LTLIBOBJS = @LTLIBOBJS@
|
|
MAINT = @MAINT@
|
|
MAKEINFO = @MAKEINFO@
|
|
MKDIR_P = @MKDIR_P@
|
|
OBJEXT = @OBJEXT@
|
|
PACKAGE = @PACKAGE@
|
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
|
PACKAGE_NAME = @PACKAGE_NAME@
|
|
PACKAGE_STRING = @PACKAGE_STRING@
|
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
|
PACKAGE_URL = @PACKAGE_URL@
|
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
|
RANLIB = @RANLIB@
|
|
SET_MAKE = @SET_MAKE@
|
|
SHELL = @SHELL@
|
|
STRIP = @STRIP@
|
|
VERSION = @VERSION@
|
|
WARN_PEDANTIC = @WARN_PEDANTIC@
|
|
WERROR = @WERROR@
|
|
abs_builddir = @abs_builddir@
|
|
abs_srcdir = @abs_srcdir@
|
|
abs_top_builddir = @abs_top_builddir@
|
|
abs_top_srcdir = @abs_top_srcdir@
|
|
ac_ct_AR = @ac_ct_AR@
|
|
ac_ct_CC = @ac_ct_CC@
|
|
ac_libctf_warn_cflags = @ac_libctf_warn_cflags@
|
|
am__include = @am__include@
|
|
am__leading_dot = @am__leading_dot@
|
|
am__quote = @am__quote@
|
|
am__tar = @am__tar@
|
|
am__untar = @am__untar@
|
|
bindir = @bindir@
|
|
build_alias = @build_alias@
|
|
builddir = @builddir@
|
|
c_warn = @c_warn@
|
|
datadir = @datadir@
|
|
datarootdir = @datarootdir@
|
|
docdir = @docdir@
|
|
dvidir = @dvidir@
|
|
exec_prefix = @exec_prefix@
|
|
host_alias = @host_alias@
|
|
htmldir = @htmldir@
|
|
includedir = @includedir@
|
|
infodir = @infodir@
|
|
install_sh = @install_sh@
|
|
libdir = @libdir@
|
|
libexecdir = @libexecdir@
|
|
localedir = @localedir@
|
|
localstatedir = @localstatedir@
|
|
mandir = @mandir@
|
|
mkdir_p = @mkdir_p@
|
|
oldincludedir = @oldincludedir@
|
|
pdfdir = @pdfdir@
|
|
prefix = @prefix@
|
|
program_transform_name = @program_transform_name@
|
|
psdir = @psdir@
|
|
sbindir = @sbindir@
|
|
sharedstatedir = @sharedstatedir@
|
|
srcdir = @srcdir@
|
|
sysconfdir = @sysconfdir@
|
|
target_alias = @target_alias@
|
|
top_build_prefix = @top_build_prefix@
|
|
top_builddir = @top_builddir@
|
|
top_srcdir = @top_srcdir@
|
|
warn = @warn@
|
|
zlibdir = @zlibdir@
|
|
zlibinc = @zlibinc@
|
|
ACLOCAL_AMFLAGS = -I .. -I ../config
|
|
AUTOMAKE_OPTIONS = foreign no-texinfo.tex
|
|
|
|
# This is where we get zlib from. zlibdir is -L../zlib and zlibinc is
|
|
# -I../zlib, unless we were configured with --with-system-zlib, in which
|
|
# case both are empty.
|
|
ZLIB = @zlibdir@ -lz
|
|
ZLIBINC = @zlibinc@
|
|
AM_CPPFLAGS = -D_GNU_SOURCE -I$(top_srcdir) -I$(top_srcdir)/../include -I$(top_srcdir)/../bfd -I../bfd
|
|
AM_CFLAGS = -std=gnu99 @ac_libctf_warn_cflags@ @warn@ @c_warn@ @WARN_PEDANTIC@ @WERROR@ $(ZLIBINC)
|
|
noinst_LIBRARIES = libctf.a
|
|
libctf_a_SOURCES = ctf-archive.c ctf-dump.c ctf-create.c ctf-decl.c \
|
|
ctf-error.c ctf-hash.c ctf-labels.c ctf-lookup.c ctf-open.c \
|
|
ctf-open-bfd.c ctf-string.c ctf-subr.c ctf-types.c ctf-util.c \
|
|
$(am__append_1)
|
|
all: config.h
|
|
$(MAKE) $(AM_MAKEFLAGS) all-am
|
|
|
|
.SUFFIXES:
|
|
.SUFFIXES: .c .o .obj
|
|
am--refresh: Makefile
|
|
@:
|
|
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
|
@for dep in $?; do \
|
|
case '$(am__configure_deps)' in \
|
|
*$$dep*) \
|
|
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
|
|
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
|
|
&& exit 0; \
|
|
exit 1;; \
|
|
esac; \
|
|
done; \
|
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
|
|
$(am__cd) $(top_srcdir) && \
|
|
$(AUTOMAKE) --foreign Makefile
|
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
|
@case '$?' in \
|
|
*config.status*) \
|
|
echo ' $(SHELL) ./config.status'; \
|
|
$(SHELL) ./config.status;; \
|
|
*) \
|
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
|
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
|
esac;
|
|
|
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
|
$(SHELL) ./config.status --recheck
|
|
|
|
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
|
$(am__cd) $(srcdir) && $(AUTOCONF)
|
|
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
|
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
|
$(am__aclocal_m4_deps):
|
|
|
|
config.h: stamp-h1
|
|
@test -f $@ || rm -f stamp-h1
|
|
@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
|
|
|
|
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
|
@rm -f stamp-h1
|
|
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
|
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
|
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
|
|
rm -f stamp-h1
|
|
touch $@
|
|
|
|
distclean-hdr:
|
|
-rm -f config.h stamp-h1
|
|
|
|
clean-noinstLIBRARIES:
|
|
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
|
|
|
|
libctf.a: $(libctf_a_OBJECTS) $(libctf_a_DEPENDENCIES) $(EXTRA_libctf_a_DEPENDENCIES)
|
|
$(AM_V_at)-rm -f libctf.a
|
|
$(AM_V_AR)$(libctf_a_AR) libctf.a $(libctf_a_OBJECTS) $(libctf_a_LIBADD)
|
|
$(AM_V_at)$(RANLIB) libctf.a
|
|
|
|
mostlyclean-compile:
|
|
-rm -f *.$(OBJEXT)
|
|
|
|
distclean-compile:
|
|
-rm -f *.tab.c
|
|
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-archive.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-create.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-decl.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-dump.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-error.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-hash.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-labels.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-lookup.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-open-bfd.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-open.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-qsort_r.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-string.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-subr.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-types.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-util.Po@am__quote@
|
|
|
|
.c.o:
|
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
|
|
|
|
.c.obj:
|
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
|
|
|
ID: $(am__tagged_files)
|
|
$(am__define_uniq_tagged_files); mkid -fID $$unique
|
|
tags: tags-am
|
|
TAGS: tags
|
|
|
|
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
|
set x; \
|
|
here=`pwd`; \
|
|
$(am__define_uniq_tagged_files); \
|
|
shift; \
|
|
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
|
test -n "$$unique" || unique=$$empty_fix; \
|
|
if test $$# -gt 0; then \
|
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|
"$$@" $$unique; \
|
|
else \
|
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|
$$unique; \
|
|
fi; \
|
|
fi
|
|
ctags: ctags-am
|
|
|
|
CTAGS: ctags
|
|
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
|
$(am__define_uniq_tagged_files); \
|
|
test -z "$(CTAGS_ARGS)$$unique" \
|
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
|
$$unique
|
|
|
|
GTAGS:
|
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
|
&& $(am__cd) $(top_srcdir) \
|
|
&& gtags -i $(GTAGS_ARGS) "$$here"
|
|
cscope: cscope.files
|
|
test ! -s cscope.files \
|
|
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
|
|
clean-cscope:
|
|
-rm -f cscope.files
|
|
cscope.files: clean-cscope cscopelist
|
|
cscopelist: cscopelist-am
|
|
|
|
cscopelist-am: $(am__tagged_files)
|
|
list='$(am__tagged_files)'; \
|
|
case "$(srcdir)" in \
|
|
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
|
*) sdir=$(subdir)/$(srcdir) ;; \
|
|
esac; \
|
|
for i in $$list; do \
|
|
if test -f "$$i"; then \
|
|
echo "$(subdir)/$$i"; \
|
|
else \
|
|
echo "$$sdir/$$i"; \
|
|
fi; \
|
|
done >> $(top_builddir)/cscope.files
|
|
|
|
distclean-tags:
|
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
|
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
|
|
|
|
distdir: $(DISTFILES)
|
|
$(am__remove_distdir)
|
|
test -d "$(distdir)" || mkdir "$(distdir)"
|
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
|
list='$(DISTFILES)'; \
|
|
dist_files=`for file in $$list; do echo $$file; done | \
|
|
sed -e "s|^$$srcdirstrip/||;t" \
|
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
|
case $$dist_files in \
|
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
|
sort -u` ;; \
|
|
esac; \
|
|
for file in $$dist_files; do \
|
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
|
if test -d $$d/$$file; then \
|
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
|
if test -d "$(distdir)/$$file"; then \
|
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
|
fi; \
|
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
|
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
|
fi; \
|
|
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
|
else \
|
|
test -f "$(distdir)/$$file" \
|
|
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
|
|| exit 1; \
|
|
fi; \
|
|
done
|
|
-test -n "$(am__skip_mode_fix)" \
|
|
|| find "$(distdir)" -type d ! -perm -755 \
|
|
-exec chmod u+rwx,go+rx {} \; -o \
|
|
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
|
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
|
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
|
|| chmod -R a+r "$(distdir)"
|
|
dist-gzip: distdir
|
|
tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
|
|
$(am__post_remove_distdir)
|
|
|
|
dist-bzip2: distdir
|
|
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
|
|
$(am__post_remove_distdir)
|
|
|
|
dist-lzip: distdir
|
|
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
|
|
$(am__post_remove_distdir)
|
|
|
|
dist-xz: distdir
|
|
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
|
|
$(am__post_remove_distdir)
|
|
|
|
dist-tarZ: distdir
|
|
@echo WARNING: "Support for distribution archives compressed with" \
|
|
"legacy program 'compress' is deprecated." >&2
|
|
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
|
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
|
$(am__post_remove_distdir)
|
|
|
|
dist-shar: distdir
|
|
@echo WARNING: "Support for shar distribution archives is" \
|
|
"deprecated." >&2
|
|
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
|
shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
|
|
$(am__post_remove_distdir)
|
|
|
|
dist-zip: distdir
|
|
-rm -f $(distdir).zip
|
|
zip -rq $(distdir).zip $(distdir)
|
|
$(am__post_remove_distdir)
|
|
|
|
dist dist-all:
|
|
$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
|
|
$(am__post_remove_distdir)
|
|
|
|
# This target untars the dist file and tries a VPATH configuration. Then
|
|
# it guarantees that the distribution is self-contained by making another
|
|
# tarfile.
|
|
distcheck: dist
|
|
case '$(DIST_ARCHIVES)' in \
|
|
*.tar.gz*) \
|
|
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
|
|
*.tar.bz2*) \
|
|
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
|
*.tar.lz*) \
|
|
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
|
|
*.tar.xz*) \
|
|
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
|
*.tar.Z*) \
|
|
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
|
*.shar.gz*) \
|
|
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
|
|
*.zip*) \
|
|
unzip $(distdir).zip ;;\
|
|
esac
|
|
chmod -R a-w $(distdir)
|
|
chmod u+w $(distdir)
|
|
mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
|
|
chmod a-w $(distdir)
|
|
test -d $(distdir)/_build || exit 0; \
|
|
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
|
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
|
&& am__cwd=`pwd` \
|
|
&& $(am__cd) $(distdir)/_build/sub \
|
|
&& ../../configure \
|
|
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
|
|
$(DISTCHECK_CONFIGURE_FLAGS) \
|
|
--srcdir=../.. --prefix="$$dc_install_base" \
|
|
&& $(MAKE) $(AM_MAKEFLAGS) \
|
|
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
|
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
|
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
|
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
|
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
|
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
|
distuninstallcheck \
|
|
&& chmod -R a-w "$$dc_install_base" \
|
|
&& ({ \
|
|
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
|
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
|
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
|
&& rm -rf "$$dc_destdir" \
|
|
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
|
&& rm -rf $(DIST_ARCHIVES) \
|
|
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
|
|
&& cd "$$am__cwd" \
|
|
|| exit 1
|
|
$(am__post_remove_distdir)
|
|
@(echo "$(distdir) archives ready for distribution: "; \
|
|
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
|
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
|
distuninstallcheck:
|
|
@test -n '$(distuninstallcheck_dir)' || { \
|
|
echo 'ERROR: trying to run $@ with an empty' \
|
|
'$$(distuninstallcheck_dir)' >&2; \
|
|
exit 1; \
|
|
}; \
|
|
$(am__cd) '$(distuninstallcheck_dir)' || { \
|
|
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
|
|
exit 1; \
|
|
}; \
|
|
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|
|
|| { echo "ERROR: files left after uninstall:" ; \
|
|
if test -n "$(DESTDIR)"; then \
|
|
echo " (check DESTDIR support)"; \
|
|
fi ; \
|
|
$(distuninstallcheck_listfiles) ; \
|
|
exit 1; } >&2
|
|
distcleancheck: distclean
|
|
@if test '$(srcdir)' = . ; then \
|
|
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
|
exit 1 ; \
|
|
fi
|
|
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
|
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
|
$(distcleancheck_listfiles) ; \
|
|
exit 1; } >&2
|
|
check-am: all-am
|
|
check: check-am
|
|
all-am: Makefile $(LIBRARIES) config.h
|
|
installdirs:
|
|
install: install-am
|
|
install-exec: install-exec-am
|
|
install-data: install-data-am
|
|
uninstall: uninstall-am
|
|
|
|
install-am: all-am
|
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
|
|
|
installcheck: installcheck-am
|
|
install-strip:
|
|
if test -z '$(STRIP)'; then \
|
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
|
install; \
|
|
else \
|
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
|
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
|
fi
|
|
mostlyclean-generic:
|
|
|
|
clean-generic:
|
|
|
|
distclean-generic:
|
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
|
|
|
maintainer-clean-generic:
|
|
@echo "This command is intended for maintainers to use"
|
|
@echo "it deletes files that may require special tools to rebuild."
|
|
clean: clean-am
|
|
|
|
clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
|
|
|
|
distclean: distclean-am
|
|
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
|
-rm -rf ./$(DEPDIR)
|
|
-rm -f Makefile
|
|
distclean-am: clean-am distclean-compile distclean-generic \
|
|
distclean-hdr distclean-tags
|
|
|
|
dvi: dvi-am
|
|
|
|
dvi-am:
|
|
|
|
html: html-am
|
|
|
|
html-am:
|
|
|
|
info: info-am
|
|
|
|
info-am:
|
|
|
|
install-data-am:
|
|
|
|
install-dvi: install-dvi-am
|
|
|
|
install-dvi-am:
|
|
|
|
install-exec-am:
|
|
|
|
install-html: install-html-am
|
|
|
|
install-html-am:
|
|
|
|
install-info: install-info-am
|
|
|
|
install-info-am:
|
|
|
|
install-man:
|
|
|
|
install-pdf: install-pdf-am
|
|
|
|
install-pdf-am:
|
|
|
|
install-ps: install-ps-am
|
|
|
|
install-ps-am:
|
|
|
|
installcheck-am:
|
|
|
|
maintainer-clean: maintainer-clean-am
|
|
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
|
-rm -rf $(top_srcdir)/autom4te.cache
|
|
-rm -rf ./$(DEPDIR)
|
|
-rm -f Makefile
|
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
|
|
|
mostlyclean: mostlyclean-am
|
|
|
|
mostlyclean-am: mostlyclean-compile mostlyclean-generic
|
|
|
|
pdf: pdf-am
|
|
|
|
pdf-am:
|
|
|
|
ps: ps-am
|
|
|
|
ps-am:
|
|
|
|
uninstall-am:
|
|
|
|
.MAKE: all install-am install-strip
|
|
|
|
.PHONY: CTAGS GTAGS TAGS all all-am am--refresh check check-am clean \
|
|
clean-cscope clean-generic clean-noinstLIBRARIES cscope \
|
|
cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
|
|
dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
|
|
distcheck distclean distclean-compile distclean-generic \
|
|
distclean-hdr distclean-tags distcleancheck distdir \
|
|
distuninstallcheck dvi dvi-am html html-am info info-am \
|
|
install install-am install-data install-data-am install-dvi \
|
|
install-dvi-am install-exec install-exec-am install-html \
|
|
install-html-am install-info install-info-am install-man \
|
|
install-pdf install-pdf-am install-ps install-ps-am \
|
|
install-strip installcheck installcheck-am installdirs \
|
|
maintainer-clean maintainer-clean-generic mostlyclean \
|
|
mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
|
|
tags tags-am uninstall uninstall-am
|
|
|
|
.PRECIOUS: Makefile
|
|
|
|
|
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|
.NOEXPORT:
|