add sw_64 support
(cherry picked from commit 3037fb149ec6d6a9a898b0e5625cbf3ad2709be4)
This commit is contained in:
parent
d772ba0487
commit
5721ba8adc
1
BUILD/libtool-2.4.7/.serial
Normal file
1
BUILD/libtool-2.4.7/.serial
Normal file
@ -0,0 +1 @@
|
||||
4245
|
||||
1
BUILD/libtool-2.4.7/.tarball-version
Normal file
1
BUILD/libtool-2.4.7/.tarball-version
Normal file
@ -0,0 +1 @@
|
||||
2.4.7
|
||||
1
BUILD/libtool-2.4.7/.version
Normal file
1
BUILD/libtool-2.4.7/.version
Normal file
@ -0,0 +1 @@
|
||||
2.4.7
|
||||
50
BUILD/libtool-2.4.7/AUTHORS
Normal file
50
BUILD/libtool-2.4.7/AUTHORS
Normal file
@ -0,0 +1,50 @@
|
||||
* GNU Libtool was conceived, designed and implemented by:
|
||||
|
||||
Gordon Matzigkeit gord@gnu.org
|
||||
|
||||
* GNU Libtool's Dynamic Loader library (libltdl) was conceived,
|
||||
designed and implemented by:
|
||||
|
||||
Thomas Tanner tanner@ffii.org
|
||||
|
||||
* GNU Libtool and libltdl have previously been maintained, enhanced,
|
||||
ported and otherwise advanced by:
|
||||
|
||||
Alexandre Oliva oliva@dcc.unicamp.br
|
||||
Ossama Othman ossama@debian.org
|
||||
Robert Boehne rboehne@ricardo-us.com
|
||||
Scott James Remnant scott@netsplit.com
|
||||
Peter O'Gorman peter@pogma.com
|
||||
Ralf Wildenhues Ralf.Wildenhues@gmx.de
|
||||
Gary V. Vaughan gary@vaughan.pe
|
||||
Bob Friesenhahn bfriesen@simple.dallas.tx.us
|
||||
Peter Rosin peda@lysator.liu.se
|
||||
Noah Misch noah@cs.caltech.edu
|
||||
Charles Wilson libtool@cwilson.fastmail.fm
|
||||
Brooks Moses bmoses@google.com
|
||||
|
||||
* GNU Libtool is currently being cajoled, bullied,
|
||||
rewritten and otherwise dragged into the future by:
|
||||
|
||||
Alex Ameen alex.ameen.tx@gmail.com
|
||||
--
|
||||
Copyright (C) 1996, 1998-2019, 2021-2022 Free Software Foundation,
|
||||
Inc.
|
||||
|
||||
This file is part of GNU Libtool.
|
||||
|
||||
GNU Libtool 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.
|
||||
|
||||
GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
|
||||
can be downloaded from http://www.gnu.org/licenses/gpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
339
BUILD/libtool-2.4.7/COPYING
Normal file
339
BUILD/libtool-2.4.7/COPYING
Normal file
@ -0,0 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program 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; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
31847
BUILD/libtool-2.4.7/ChangeLog
Normal file
31847
BUILD/libtool-2.4.7/ChangeLog
Normal file
File diff suppressed because it is too large
Load Diff
127
BUILD/libtool-2.4.7/GNUmakefile
Normal file
127
BUILD/libtool-2.4.7/GNUmakefile
Normal file
@ -0,0 +1,127 @@
|
||||
# Having a separate GNUmakefile lets me 'include' the dynamically
|
||||
# generated rules created via cfg.mk (package-local configuration)
|
||||
# as well as maint.mk (generic maintainer rules).
|
||||
# This makefile is used only if you run GNU Make.
|
||||
# It is necessary if you want to build targets usually of interest
|
||||
# only to the maintainer.
|
||||
|
||||
# Copyright (C) 2001, 2003, 2006-2022 Free Software Foundation, Inc.
|
||||
|
||||
# This program 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 3 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# If the user runs GNU make but has not yet run ./configure,
|
||||
# give them a diagnostic.
|
||||
_gl-Makefile := $(wildcard [M]akefile)
|
||||
ifneq ($(_gl-Makefile),)
|
||||
|
||||
# Make tar archive easier to reproduce.
|
||||
export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
|
||||
|
||||
# Allow the user to add to this in the Makefile.
|
||||
ALL_RECURSIVE_TARGETS =
|
||||
|
||||
include Makefile
|
||||
|
||||
# Some projects override e.g., _autoreconf here.
|
||||
-include $(srcdir)/cfg.mk
|
||||
|
||||
# Allow cfg.mk to override these.
|
||||
_build-aux ?= build-aux
|
||||
_autoreconf ?= autoreconf -v
|
||||
|
||||
include $(srcdir)/maint.mk
|
||||
|
||||
# Ensure that $(VERSION) is up to date for dist-related targets, but not
|
||||
# for others: rerunning autoreconf and recompiling everything isn't cheap.
|
||||
_have-git-version-gen := \
|
||||
$(shell test -f $(srcdir)/$(_build-aux)/git-version-gen && echo yes)
|
||||
ifeq ($(_have-git-version-gen)0,yes$(MAKELEVEL))
|
||||
_is-dist-target ?= $(filter-out %clean, \
|
||||
$(filter maintainer-% dist% alpha beta stable,$(MAKECMDGOALS)))
|
||||
_is-install-target ?= $(filter-out %check, $(filter install%,$(MAKECMDGOALS)))
|
||||
ifneq (,$(_is-dist-target)$(_is-install-target))
|
||||
_curr-ver := $(shell cd $(srcdir) \
|
||||
&& $(_build-aux)/git-version-gen \
|
||||
.tarball-version \
|
||||
$(git-version-gen-tag-sed-script))
|
||||
ifneq ($(_curr-ver),$(VERSION))
|
||||
ifeq ($(_curr-ver),UNKNOWN)
|
||||
$(info WARNING: unable to verify if $(VERSION) is the correct version)
|
||||
else
|
||||
ifneq (,$(_is-install-target))
|
||||
# GNU Coding Standards state that 'make install' should not cause
|
||||
# recompilation after 'make all'. But as long as changing the version
|
||||
# string alters config.h, the cost of having 'make all' always have an
|
||||
# up-to-date version is prohibitive. So, as a compromise, we merely
|
||||
# warn when installing a version string that is out of date; the user
|
||||
# should run 'autoreconf' (or something like 'make distcheck') to
|
||||
# fix the version, 'make all' to propagate it, then 'make install'.
|
||||
$(info WARNING: version string $(VERSION) is out of date;)
|
||||
$(info run '$(MAKE) _version' to fix it)
|
||||
else
|
||||
$(info INFO: running autoreconf for new version string: $(_curr-ver))
|
||||
GNUmakefile: _version
|
||||
touch GNUmakefile
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
.PHONY: _version
|
||||
_version:
|
||||
cd $(srcdir) && rm -rf autom4te.cache .version && $(_autoreconf)
|
||||
$(MAKE) $(AM_MAKEFLAGS) Makefile
|
||||
|
||||
else
|
||||
|
||||
.DEFAULT_GOAL := abort-due-to-no-makefile
|
||||
srcdir = .
|
||||
|
||||
# The package can override .DEFAULT_GOAL to run actions like autoreconf.
|
||||
-include ./cfg.mk
|
||||
|
||||
# Allow cfg.mk to override these.
|
||||
_build-aux ?= build-aux
|
||||
_autoreconf ?= autoreconf -v
|
||||
|
||||
include ./maint.mk
|
||||
|
||||
ifeq ($(.DEFAULT_GOAL),abort-due-to-no-makefile)
|
||||
$(MAKECMDGOALS): abort-due-to-no-makefile
|
||||
endif
|
||||
|
||||
abort-due-to-no-makefile:
|
||||
@echo There seems to be no Makefile in this directory. 1>&2
|
||||
@echo "You must run ./configure before running '$(MAKE)'." 1>&2
|
||||
@exit 1
|
||||
|
||||
endif
|
||||
|
||||
# Tell version 3.79 and up of GNU make to not build goals in this
|
||||
# directory in parallel, in case someone tries to build multiple
|
||||
# targets, and one of them can cause a recursive target to be invoked.
|
||||
|
||||
# Only set this if Automake doesn't provide it.
|
||||
AM_RECURSIVE_TARGETS ?= $(RECURSIVE_TARGETS:-recursive=) \
|
||||
$(RECURSIVE_CLEAN_TARGETS:-recursive=) \
|
||||
dist distcheck tags ctags
|
||||
|
||||
ALL_RECURSIVE_TARGETS += $(AM_RECURSIVE_TARGETS)
|
||||
|
||||
ifneq ($(word 2, $(MAKECMDGOALS)), )
|
||||
ifneq ($(filter $(ALL_RECURSIVE_TARGETS), $(MAKECMDGOALS)), )
|
||||
.NOTPARALLEL:
|
||||
endif
|
||||
endif
|
||||
368
BUILD/libtool-2.4.7/INSTALL
Normal file
368
BUILD/libtool-2.4.7/INSTALL
Normal file
@ -0,0 +1,368 @@
|
||||
Installation Instructions
|
||||
*************************
|
||||
|
||||
Copyright (C) 1994-1996, 1999-2002, 2004-2017, 2020-2021 Free
|
||||
Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. This file is offered as-is,
|
||||
without warranty of any kind.
|
||||
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
Briefly, the shell command './configure && make && make install'
|
||||
should configure, build, and install this package. The following
|
||||
more-detailed instructions are generic; see the 'README' file for
|
||||
instructions specific to this package. Some packages provide this
|
||||
'INSTALL' file but do not implement all of the features documented
|
||||
below. The lack of an optional feature in a given package is not
|
||||
necessarily a bug. More recommendations for GNU packages can be found
|
||||
in *note Makefile Conventions: (standards)Makefile Conventions.
|
||||
|
||||
The 'configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a 'Makefile' in each directory of the package.
|
||||
It may also create one or more '.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script 'config.status' that
|
||||
you can run in the future to recreate the current configuration, and a
|
||||
file 'config.log' containing compiler output (useful mainly for
|
||||
debugging 'configure').
|
||||
|
||||
It can also use an optional file (typically called 'config.cache' and
|
||||
enabled with '--cache-file=config.cache' or simply '-C') that saves the
|
||||
results of its tests to speed up reconfiguring. Caching is disabled by
|
||||
default to prevent problems with accidental use of stale cache files.
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how 'configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the 'README' so they can
|
||||
be considered for the next release. If you are using the cache, and at
|
||||
some point 'config.cache' contains results you don't want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
The file 'configure.ac' (or 'configure.in') is used to create
|
||||
'configure' by a program called 'autoconf'. You need 'configure.ac' if
|
||||
you want to change it or regenerate 'configure' using a newer version of
|
||||
'autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. 'cd' to the directory containing the package's source code and type
|
||||
'./configure' to configure the package for your system.
|
||||
|
||||
Running 'configure' might take a while. While running, it prints
|
||||
some messages telling which features it is checking for.
|
||||
|
||||
2. Type 'make' to compile the package.
|
||||
|
||||
3. Optionally, type 'make check' to run any self-tests that come with
|
||||
the package, generally using the just-built uninstalled binaries.
|
||||
|
||||
4. Type 'make install' to install the programs and any data files and
|
||||
documentation. When installing into a prefix owned by root, it is
|
||||
recommended that the package be configured and built as a regular
|
||||
user, and only the 'make install' phase executed with root
|
||||
privileges.
|
||||
|
||||
5. Optionally, type 'make installcheck' to repeat any self-tests, but
|
||||
this time using the binaries in their final installed location.
|
||||
This target does not install anything. Running this target as a
|
||||
regular user, particularly if the prior 'make install' required
|
||||
root privileges, verifies that the installation completed
|
||||
correctly.
|
||||
|
||||
6. You can remove the program binaries and object files from the
|
||||
source code directory by typing 'make clean'. To also remove the
|
||||
files that 'configure' created (so you can compile the package for
|
||||
a different kind of computer), type 'make distclean'. There is
|
||||
also a 'make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
7. Often, you can also type 'make uninstall' to remove the installed
|
||||
files again. In practice, not all packages have tested that
|
||||
uninstallation works correctly, even though it is required by the
|
||||
GNU Coding Standards.
|
||||
|
||||
8. Some packages, particularly those that use Automake, provide 'make
|
||||
distcheck', which can by used by developers to test that all other
|
||||
targets like 'make install' and 'make uninstall' work correctly.
|
||||
This target is generally not run by end users.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the 'configure' script does not know about. Run './configure --help'
|
||||
for details on some of the pertinent environment variables.
|
||||
|
||||
You can give 'configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here is
|
||||
an example:
|
||||
|
||||
./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
||||
|
||||
*Note Defining Variables::, for more details.
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you can use GNU 'make'. 'cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the 'configure' script. 'configure' automatically checks for the source
|
||||
code in the directory that 'configure' is in and in '..'. This is known
|
||||
as a "VPATH" build.
|
||||
|
||||
With a non-GNU 'make', it is safer to compile the package for one
|
||||
architecture at a time in the source code directory. After you have
|
||||
installed the package for one architecture, use 'make distclean' before
|
||||
reconfiguring for another architecture.
|
||||
|
||||
On MacOS X 10.5 and later systems, you can create libraries and
|
||||
executables that work on multiple system types--known as "fat" or
|
||||
"universal" binaries--by specifying multiple '-arch' options to the
|
||||
compiler but only a single '-arch' option to the preprocessor. Like
|
||||
this:
|
||||
|
||||
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||
CPP="gcc -E" CXXCPP="g++ -E"
|
||||
|
||||
This is not guaranteed to produce working output in all cases, you
|
||||
may have to build one architecture at a time and combine the results
|
||||
using the 'lipo' tool if you have problems.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, 'make install' installs the package's commands under
|
||||
'/usr/local/bin', include files under '/usr/local/include', etc. You
|
||||
can specify an installation prefix other than '/usr/local' by giving
|
||||
'configure' the option '--prefix=PREFIX', where PREFIX must be an
|
||||
absolute file name.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
|
||||
PREFIX as the prefix for installing programs and libraries.
|
||||
Documentation and other data files still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like '--bindir=DIR' to specify different values for particular
|
||||
kinds of files. Run 'configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them. In general, the default
|
||||
for these options is expressed in terms of '${prefix}', so that
|
||||
specifying just '--prefix' will affect all of the other directory
|
||||
specifications that were not explicitly provided.
|
||||
|
||||
The most portable way to affect installation locations is to pass the
|
||||
correct locations to 'configure'; however, many packages provide one or
|
||||
both of the following shortcuts of passing variable assignments to the
|
||||
'make install' command line to change installation locations without
|
||||
having to reconfigure or recompile.
|
||||
|
||||
The first method involves providing an override variable for each
|
||||
affected directory. For example, 'make install
|
||||
prefix=/alternate/directory' will choose an alternate location for all
|
||||
directory configuration variables that were expressed in terms of
|
||||
'${prefix}'. Any directories that were specified during 'configure',
|
||||
but not in terms of '${prefix}', must each be overridden at install time
|
||||
for the entire installation to be relocated. The approach of makefile
|
||||
variable overrides for each directory variable is required by the GNU
|
||||
Coding Standards, and ideally causes no recompilation. However, some
|
||||
platforms have known limitations with the semantics of shared libraries
|
||||
that end up requiring recompilation when using this method, particularly
|
||||
noticeable in packages that use GNU Libtool.
|
||||
|
||||
The second method involves providing the 'DESTDIR' variable. For
|
||||
example, 'make install DESTDIR=/alternate/directory' will prepend
|
||||
'/alternate/directory' before all installation names. The approach of
|
||||
'DESTDIR' overrides is not required by the GNU Coding Standards, and
|
||||
does not work on platforms that have drive letters. On the other hand,
|
||||
it does better at avoiding recompilation issues, and works well even
|
||||
when some directory options were not specified in terms of '${prefix}'
|
||||
at 'configure' time.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving 'configure' the
|
||||
option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
|
||||
|
||||
Some packages pay attention to '--enable-FEATURE' options to
|
||||
'configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to '--with-PACKAGE' options, where PACKAGE
|
||||
is something like 'gnu-as' or 'x' (for the X Window System). The
|
||||
'README' should mention any '--enable-' and '--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, 'configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the 'configure' options '--x-includes=DIR' and
|
||||
'--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Some packages offer the ability to configure how verbose the
|
||||
execution of 'make' will be. For these packages, running './configure
|
||||
--enable-silent-rules' sets the default to minimal output, which can be
|
||||
overridden with 'make V=1'; while running './configure
|
||||
--disable-silent-rules' sets the default to verbose, which can be
|
||||
overridden with 'make V=0'.
|
||||
|
||||
Particular systems
|
||||
==================
|
||||
|
||||
On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
|
||||
is not installed, it is recommended to use the following options in
|
||||
order to use an ANSI C compiler:
|
||||
|
||||
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
|
||||
|
||||
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
|
||||
|
||||
HP-UX 'make' updates targets which have the same timestamps as their
|
||||
prerequisites, which makes it generally unusable when shipped generated
|
||||
files such as 'configure' are involved. Use GNU 'make' instead.
|
||||
|
||||
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
|
||||
parse its '<wchar.h>' header file. The option '-nodtk' can be used as a
|
||||
workaround. If GNU CC is not installed, it is therefore recommended to
|
||||
try
|
||||
|
||||
./configure CC="cc"
|
||||
|
||||
and if that doesn't work, try
|
||||
|
||||
./configure CC="cc -nodtk"
|
||||
|
||||
On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
|
||||
directory contains several dysfunctional programs; working variants of
|
||||
these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
|
||||
in your 'PATH', put it _after_ '/usr/bin'.
|
||||
|
||||
On Haiku, software installed for all users goes in '/boot/common',
|
||||
not '/usr/local'. It is recommended to use the following options:
|
||||
|
||||
./configure --prefix=/boot/common
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features 'configure' cannot figure out
|
||||
automatically, but needs to determine by the type of machine the package
|
||||
will run on. Usually, assuming the package is built to be run on the
|
||||
_same_ architectures, 'configure' can figure that out, but if it prints
|
||||
a message saying it cannot guess the machine type, give it the
|
||||
'--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as 'sun4', or a canonical name which has the form:
|
||||
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
where SYSTEM can have one of these forms:
|
||||
|
||||
OS
|
||||
KERNEL-OS
|
||||
|
||||
See the file 'config.sub' for the possible values of each field. If
|
||||
'config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the machine type.
|
||||
|
||||
If you are _building_ compiler tools for cross-compiling, you should
|
||||
use the option '--target=TYPE' to select the type of system they will
|
||||
produce code for.
|
||||
|
||||
If you want to _use_ a cross compiler, that generates code for a
|
||||
platform different from the build platform, you should specify the
|
||||
"host" platform (i.e., that on which the generated programs will
|
||||
eventually be run) with '--host=TYPE'.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for 'configure' scripts to share,
|
||||
you can create a site shell script called 'config.site' that gives
|
||||
default values for variables like 'CC', 'cache_file', and 'prefix'.
|
||||
'configure' looks for 'PREFIX/share/config.site' if it exists, then
|
||||
'PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
'CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all 'configure' scripts look for a site script.
|
||||
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to 'configure'. However, some packages may run
|
||||
configure again during the build, and the customized values of these
|
||||
variables may be lost. In order to avoid this problem, you should set
|
||||
them in the 'configure' command line, using 'VAR=value'. For example:
|
||||
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
causes the specified 'gcc' to be used as the C compiler (unless it is
|
||||
overridden in the site shell script).
|
||||
|
||||
Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
|
||||
Autoconf limitation. Until the limitation is lifted, you can use this
|
||||
workaround:
|
||||
|
||||
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||
|
||||
'configure' Invocation
|
||||
======================
|
||||
|
||||
'configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
'--help'
|
||||
'-h'
|
||||
Print a summary of all of the options to 'configure', and exit.
|
||||
|
||||
'--help=short'
|
||||
'--help=recursive'
|
||||
Print a summary of the options unique to this package's
|
||||
'configure', and exit. The 'short' variant lists options used only
|
||||
in the top level, while the 'recursive' variant lists options also
|
||||
present in any nested packages.
|
||||
|
||||
'--version'
|
||||
'-V'
|
||||
Print the version of Autoconf used to generate the 'configure'
|
||||
script, and exit.
|
||||
|
||||
'--cache-file=FILE'
|
||||
Enable the cache: use and save the results of the tests in FILE,
|
||||
traditionally 'config.cache'. FILE defaults to '/dev/null' to
|
||||
disable caching.
|
||||
|
||||
'--config-cache'
|
||||
'-C'
|
||||
Alias for '--cache-file=config.cache'.
|
||||
|
||||
'--quiet'
|
||||
'--silent'
|
||||
'-q'
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to '/dev/null' (any error
|
||||
messages will still be shown).
|
||||
|
||||
'--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
'configure' can determine that directory automatically.
|
||||
|
||||
'--prefix=DIR'
|
||||
Use DIR as the installation prefix. *note Installation Names:: for
|
||||
more details, including other options available for fine-tuning the
|
||||
installation locations.
|
||||
|
||||
'--no-create'
|
||||
'-n'
|
||||
Run the configure checks, but stop before creating any output
|
||||
files.
|
||||
|
||||
'configure' also accepts some other, not widely useful, options. Run
|
||||
'configure --help' for more details.
|
||||
835
BUILD/libtool-2.4.7/Makefile.am
Normal file
835
BUILD/libtool-2.4.7/Makefile.am
Normal file
@ -0,0 +1,835 @@
|
||||
## Makefile.am -- Process this file with automake to produce Makefile.in
|
||||
##
|
||||
## Copyright (C) 2003-2019, 2021-2022 Free Software Foundation, Inc.
|
||||
## Written by Gary V. Vaughan, 2003
|
||||
##
|
||||
## This file is part of GNU Libtool.
|
||||
##
|
||||
## GNU Libtool 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.
|
||||
##
|
||||
## GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
|
||||
## can be downloaded from http://www.gnu.org/licenses/gpl.html,
|
||||
## or obtained by writing to the Free Software Foundation, Inc.,
|
||||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#####
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
AM_CPPFLAGS =
|
||||
AM_LDFLAGS =
|
||||
|
||||
SUBDIRS = . gnulib-tests
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
EXTRA_DIST =
|
||||
|
||||
BUILT_SOURCES = libtool libtoolize
|
||||
|
||||
CLEANFILES =
|
||||
MOSTLYCLEANFILES =
|
||||
DISTCLEANFILES =
|
||||
MAINTAINERCLEANFILES =
|
||||
|
||||
include_HEADERS =
|
||||
noinst_LTLIBRARIES =
|
||||
lib_LTLIBRARIES =
|
||||
EXTRA_LTLIBRARIES =
|
||||
|
||||
# Using 'cd' in backquotes may print the directory name, use this instead:
|
||||
lt__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
|
||||
git_version_gen = '$(SHELL)' '$(aux_dir)/git-version-gen' '--fallback' '$(VERSION)' '.tarball-version'
|
||||
rebuild = rebuild=:; revision=`$(lt__cd) $(srcdir) && $(git_version_gen) | $(SED) 's|-.*$$||'`
|
||||
|
||||
|
||||
# ---------- #
|
||||
# Bootstrap. #
|
||||
# ---------- #
|
||||
|
||||
SCRIPT_ENV = GREP='$(GREP)' SED='$(SED)'
|
||||
|
||||
build_scripts = $(srcdir)/$(aux_dir)/announce-gen \
|
||||
$(srcdir)/$(aux_dir)/do-release-commit-and-tag \
|
||||
$(srcdir)/$(aux_dir)/gendocs.sh \
|
||||
$(srcdir)/$(aux_dir)/git-version-gen \
|
||||
$(srcdir)/$(aux_dir)/gnu-web-doc-update \
|
||||
$(srcdir)/$(aux_dir)/gnupload \
|
||||
$(srcdir)/$(aux_dir)/useless-if-before-free \
|
||||
$(srcdir)/$(aux_dir)/vc-list-files
|
||||
|
||||
EXTRA_DIST += bootstrap bootstrap.conf $(build_scripts) cfg.mk maint.mk \
|
||||
GNUmakefile
|
||||
CLEANFILES += libtool libtoolize
|
||||
|
||||
## If a file is named several times below, and especially if it
|
||||
## is a distributed file created during Libtool bootstrap, we
|
||||
## put it in a variable in accordance with the DRY principle.
|
||||
## Use '$(srcdir)' for the benefit of non-GNU makes: referring
|
||||
## to them by their variable makes sure they appear as targets
|
||||
## and dependencies with '$(srcdir)' consistently.
|
||||
configure_ac = $(srcdir)/configure.ac
|
||||
config_status = $(top_builddir)/config.status
|
||||
extract_trace = $(srcdir)/$(aux_dir)/extract-trace
|
||||
funclib_sh = $(srcdir)/$(aux_dir)/funclib.sh
|
||||
inline_source = $(srcdir)/$(aux_dir)/inline-source
|
||||
libtoolize_in = $(srcdir)/libtoolize.in
|
||||
ltmain_sh = $(srcdir)/$(aux_dir)/ltmain.sh
|
||||
ltmain_in = $(srcdir)/$(aux_dir)/ltmain.in
|
||||
libtool_m4 = $(srcdir)/$(macro_dir)/libtool.m4
|
||||
ltversion_in = $(srcdir)/$(macro_dir)/ltversion.in
|
||||
ltversion_m4 = $(srcdir)/$(macro_dir)/ltversion.m4
|
||||
no_bogus_macros = $(srcdir)/$(aux_dir)/no-bogus-m4-defines
|
||||
options_parser = $(srcdir)/$(aux_dir)/options-parser
|
||||
u2d_copyright = $(srcdir)/$(aux_dir)/update-copyright
|
||||
|
||||
EXTRA_DIST += $(extract_trace) $(funclib_sh) $(inline_source) \
|
||||
$(libtoolize_in) $(ltmain_in) $(ltmain_sh) \
|
||||
$(ltversion_in) $(ltversion_m4) $(no_bogus_macros) \
|
||||
$(options_parser) $(u2d_copyright)
|
||||
|
||||
## These are the replacements that need to be made at bootstrap time,
|
||||
## because they must be static in distributed files, and not accidentally
|
||||
## changed by configure running on the build machine.
|
||||
bootstrap_edit = $(SED) \
|
||||
-e 's|@MACRO_VERSION\@|$(VERSION)|g' \
|
||||
-e "s|@MACRO_REVISION\@|$$revision|g" \
|
||||
-e "s|@MACRO_SERIAL\@|$$serial|g" \
|
||||
-e 's|@PACKAGE\@|$(PACKAGE)|g' \
|
||||
-e 's|@PACKAGE_BUGREPORT\@|$(PACKAGE_BUGREPORT)|g' \
|
||||
-e 's|@PACKAGE_URL\@|$(PACKAGE_URL)|g' \
|
||||
-e 's|@PACKAGE_NAME\@|$(PACKAGE_NAME)|g' \
|
||||
-e "s|@package_revision\@|$$revision|g" \
|
||||
-e 's|@PACKAGE_STRING\@|$(PACKAGE_NAME) $(VERSION)|g' \
|
||||
-e 's|@PACKAGE_TARNAME\@|$(PACKAGE)|g' \
|
||||
-e 's|@PACKAGE_VERSION\@|$(VERSION)|g' \
|
||||
-e 's|@VERSION\@|$(VERSION)|g'
|
||||
|
||||
## We build ltversion.m4 here, instead of from config.status,
|
||||
## because config.status is rerun each time one of configure's
|
||||
## dependencies change and ltversion.m4 happens to be a configure
|
||||
## dependency. configure and ltversion.m4 would be rebuilt in
|
||||
## a loop otherwise.
|
||||
## We used to do this with a 'stamp-vcl' file, but non-gmake builds
|
||||
## would rerun configure on every invocation, so now we manually
|
||||
## check the version numbers from the build rule when necessary.
|
||||
$(ltversion_m4): $(ltversion_in) $(dotversion)
|
||||
@$(rebuild); \
|
||||
if test -f '$@'; then \
|
||||
eval `'$(SED)' -n '/^macro_revision=/p' '$@'`; \
|
||||
test "x$$macro_revision" = "x$$revision" && rebuild=false; \
|
||||
fi; \
|
||||
for prereq in $?; do \
|
||||
case $$prereq in *.version);; *) rebuild=:;; esac; \
|
||||
done; \
|
||||
if $$rebuild; then \
|
||||
rm -f '$@'; \
|
||||
if test -d '$(srcdir)/.git' && git --version >/dev/null 2>&1; then \
|
||||
$(git_commit_count) > '$(srcdir)/.serial'; \
|
||||
fi; \
|
||||
serial=`cat '$(srcdir)/.serial'`; \
|
||||
if test 0 = '$(AM_DEFAULT_VERBOSITY)' && test 1 != '$(V)'; \
|
||||
then echo " GEN " $@; \
|
||||
else echo $(bootstrap_edit) "'$(ltversion_in)' > '$@'"; fi; \
|
||||
$(bootstrap_edit) '$(ltversion_in)' > '$@'; \
|
||||
chmod a-w '$@'; \
|
||||
fi
|
||||
|
||||
## And for similar reasons, ltmain.sh can't be built from config.status.
|
||||
## We used to do this with a 'stamp-vcl' file, but non-gmake builds
|
||||
## would rerun configure on every invocation, so now we manually
|
||||
## check the version numbers from the build rule when necessary.
|
||||
## !WARNING! If you edit this rule to change the contents of ltmain.sh,
|
||||
## you must 'touch $(aux_dir)/ltmain.in' from the
|
||||
## shell if you need ltmain.sh to be regenerated. Ideally, we
|
||||
## should make this rule depend on Makefile but that will break
|
||||
## distcheck (at least) by rebuilding ltmain.sh in the source
|
||||
## tree whenever config.status regenerates the Makefile.
|
||||
$(ltmain_sh): $(ltmain_in) $(dotversion)
|
||||
@$(rebuild); \
|
||||
if test -f '$@'; then \
|
||||
eval `'$(SED)' -n '/^package_revision=/p' '$@'`; \
|
||||
test "x$$package_revision" = "x$$revision" && rebuild=false; \
|
||||
fi; \
|
||||
for prereq in $?; do \
|
||||
case $$prereq in *.version);; *) rebuild=:;; esac; \
|
||||
done; \
|
||||
if $$rebuild; then \
|
||||
rm -f '$@'; \
|
||||
if test 0 = '$(AM_DEFAULT_VERBOSITY)' && test 1 != '$(V)'; \
|
||||
then echo " GEN " $@; \
|
||||
else echo "$(inline_source) '$(ltmain_in)' |" $(bootstrap_edit) "> '$@'"; fi; \
|
||||
$(SCRIPT_ENV) '$(inline_source)' '$(ltmain_in)' | $(bootstrap_edit) > '$@'; \
|
||||
chmod a-w '$@'; \
|
||||
fi
|
||||
|
||||
lt_Makefile_am = $(srcdir)/$(ltdl_dir)/Makefile.am
|
||||
lt_Makefile_in = $(srcdir)/$(ltdl_dir)/Makefile.in
|
||||
ltdl_mk = $(srcdir)/$(ltdl_dir)/ltdl.mk
|
||||
|
||||
$(lt_Makefile_am): $(ltdl_mk)
|
||||
$(AM_V_at)rm -f '$@'
|
||||
$(AM_V_GEN)( '$(SED)' -n '1,/^.. DO NOT REMOVE THIS LINE -- /p' \
|
||||
'$(ltdl_mk)'; \
|
||||
{ echo 'ACLOCAL_AMFLAGS = -I ../m4'; \
|
||||
echo 'AUTOMAKE_OPTIONS = foreign'; \
|
||||
echo 'AM_CPPFLAGS ='; \
|
||||
echo 'AM_LDFLAGS ='; \
|
||||
echo 'BUILT_SOURCES ='; \
|
||||
echo 'include_HEADERS ='; \
|
||||
echo 'noinst_LTLIBRARIES ='; \
|
||||
echo 'lib_LTLIBRARIES ='; \
|
||||
echo 'EXTRA_LTLIBRARIES ='; \
|
||||
echo 'EXTRA_DIST ='; \
|
||||
echo 'CLEANFILES ='; \
|
||||
echo 'MOSTLYCLEANFILES ='; \
|
||||
}; \
|
||||
'$(SED)' -n '/^.. DO NOT REMOVE THIS LINE -- /,$$p' \
|
||||
'$(ltdl_mk)' \
|
||||
|'$(SED)' -e 's|libltdl_||; s|libltdl/||; s|: libltdl/|: |' \
|
||||
-e '/^[ ]*-I\$$(srcdir)\/libltdl -Ilibltdl \\/d' \
|
||||
-e 's|\$$(libltdl_|$$(|' \
|
||||
) |'$(SED)' -e '/^.. DO NOT REMOVE THIS LINE -- /d' \
|
||||
-e '1s,^\(.. Makefile.\)inc.*,\1am -- Process this file with automake to produce Makefile.in,' > '$@'
|
||||
$(AM_V_at)chmod a-w '$@'
|
||||
|
||||
## Document the make macros that are needed to build bootstrap-deps
|
||||
## dependencies when called from 'bootstrap' (developer's machine),
|
||||
## where the Makefile.am is fed to make in its raw format before
|
||||
## 'configure' has found the correct values (on the build machine).
|
||||
bootstrap_files = \
|
||||
$(lt_Makefile_am) \
|
||||
$(ltmain_sh) \
|
||||
$(ltversion_m4)
|
||||
|
||||
.PHONY: bootstrap-deps bootstrap-deps-prep
|
||||
bootstrap-deps: bootstrap-deps-prep
|
||||
$(MAKE) $(bootstrap_files)
|
||||
|
||||
bootstrap-deps-prep:
|
||||
## The following variables are substituted by 'bootstrap-dep-preps'
|
||||
@exit_cmd=:; \
|
||||
test -z '$(srcdir)' \
|
||||
&& echo "ERROR: don't call $(MAKE) with srcdir unset." \
|
||||
&& exit_cmd=exit; \
|
||||
test -z '$(PACKAGE)' \
|
||||
&& echo "ERROR: don't call $(MAKE) with PACKAGE unset." \
|
||||
&& exit_cmd=exit; \
|
||||
test -z '$(PACKAGE_BUGREPORT)' \
|
||||
&& echo "ERROR: don't call $(MAKE) with PACKAGE_BUGREPORT unset." \
|
||||
&& exit_cmd=exit; \
|
||||
test -z '$(PACKAGE_NAME)' \
|
||||
&& echo "ERROR: don't call $(MAKE) with PACKAGE_NAME unset." \
|
||||
&& exit_cmd=exit; \
|
||||
test -z '$(PACKAGE_URL)' \
|
||||
&& echo "ERROR: don't call $(MAKE) with PACKAGE_URL unset." \
|
||||
&& exit_cmd=exit; \
|
||||
test -z '$(SED)' \
|
||||
&& echo "ERROR: don't call $(MAKE) with SED unset." \
|
||||
&& exit_cmd=exit; \
|
||||
test -z '$(VERSION)' \
|
||||
&& echo "ERROR: don't call $(MAKE) with VERSION unset." \
|
||||
&& exit_cmd=exit; \
|
||||
$$exit_cmd 1
|
||||
$(AM_V_at)rm -f $(bootstrap_files)
|
||||
|
||||
## Unfortunately, all this bogeyness means that we have to manually
|
||||
## keep the generated files in libltdl up to date.
|
||||
LTDL_BOOTSTRAP_DEPS = \
|
||||
$(stamp_mk) \
|
||||
$(lt_aclocal_m4) \
|
||||
$(lt_config_h_in) \
|
||||
$(lt_configure)
|
||||
|
||||
all-local: $(LTDL_BOOTSTRAP_DEPS)
|
||||
|
||||
|
||||
## ---------------- ##
|
||||
## Libtool scripts. ##
|
||||
## ---------------- ##
|
||||
|
||||
abs_aux_dir = `$(lt__cd) '$(srcdir)/$(aux_dir)' && pwd`
|
||||
ltdl_ac_aux_dir = `$(SCRIPT_ENV) $(extract_trace) AC_CONFIG_AUX_DIR $(srcdir)/libltdl/configure.ac`
|
||||
|
||||
configure_edit = $(bootstrap_edit) \
|
||||
-e '/^\. /s|@auxscriptsdir\@|'$(abs_aux_dir)'|g' \
|
||||
-e 's|@aclocaldir\@|$(aclocaldir)|g' \
|
||||
-e 's|@aux_dir\@|$(aux_dir)|g' \
|
||||
-e 's|@datadir\@|$(datadir)|g' \
|
||||
-e 's|@EGREP\@|$(EGREP)|g' \
|
||||
-e 's|@FGREP\@|$(FGREP)|g' \
|
||||
-e 's|@GREP\@|$(GREP)|g' \
|
||||
-e 's|@host_triplet\@|$(host_triplet)|g' \
|
||||
-e 's|@LN_S\@|$(LN_S)|g' \
|
||||
-e "s|@ltdl_ac_aux_dir\@|$(ltdl_ac_aux_dir)|g" \
|
||||
-e 's|@macro_dir\@|$(macro_dir)|g' \
|
||||
-e 's|@pkgauxdir\@|$(pkgauxdir)|g' \
|
||||
-e 's|@pkgaux_files\@|$(pkgaux_scripts) $(pkgaux_data_files)|g' \
|
||||
-e 's|@pkgaux_install_files\@|$(pkgaux_install_files)|g' \
|
||||
-e 's|@pkgaux_parent_files\@|$(pkgaux_parent_files)|g' \
|
||||
-e 's|@pkgdatadir\@|$(pkgdatadir)|g' \
|
||||
-e 's|@pkgltdl_files\@|$(pkgltdl_files)|g' \
|
||||
-e 's|@pkgmacro_files\@|$(pkgmacro_files)|g' \
|
||||
-e 's|@prefix\@|$(prefix)|g' \
|
||||
-e 's|@SED\@|$(SED)|g' \
|
||||
-e 's|@srcdir\@|$(srcdir)|g'
|
||||
|
||||
# The libtool distributor and the standalone libtool script.
|
||||
bin_SCRIPTS = libtool
|
||||
|
||||
libtoolize: $(libtoolize_in) $(config_status)
|
||||
$(AM_V_at)rm -f '$@'
|
||||
$(AM_V_GEN)$(configure_edit) '$(libtoolize_in)' > '$@'
|
||||
$(AM_V_at)chmod a+x '$@'
|
||||
$(AM_V_at)chmod a-w '$@'
|
||||
|
||||
# We used to do this with a 'stamp-vcl' file, but non-gmake builds
|
||||
# would rerun configure on every invocation, so now we manually
|
||||
# check the version numbers from the build rule when necessary.
|
||||
libtool: $(ltmain_sh) $(config_status) $(dotversion)
|
||||
@$(rebuild); \
|
||||
if test -f '$@'; then \
|
||||
eval `'$(SED)' -n '/^package_revision=/p' '$@'`; \
|
||||
test "$$package_revision" = "$$revision" && rebuild=false; \
|
||||
fi; \
|
||||
for prereq in $?; do \
|
||||
case $$prereq in *.version);; *) rebuild=:;; esac; \
|
||||
done; \
|
||||
if $$rebuild; then \
|
||||
if test 0 = '$(AM_DEFAULT_VERBOSITY)' && test 1 != '$(V)'; \
|
||||
then echo " GEN " $@; \
|
||||
else echo '$(SHELL) $(top_builddir)/config.status "$@"'; fi; \
|
||||
cd '$(top_builddir)' && '$(SHELL)' ./config.status '$@'; \
|
||||
fi
|
||||
|
||||
|
||||
## -------- ##
|
||||
## Libltdl. ##
|
||||
## -------- ##
|
||||
|
||||
include libltdl/ltdl.mk
|
||||
|
||||
lt_aclocal_m4 = $(srcdir)/$(ltdl_dir)/aclocal.m4
|
||||
lt_config_h_in = $(srcdir)/$(ltdl_dir)/config-h.in
|
||||
lt_configure = $(srcdir)/$(ltdl_dir)/configure
|
||||
lt_configure_ac = $(srcdir)/$(ltdl_dir)/configure.ac
|
||||
stamp_mk = $(srcdir)/$(ltdl_dir)/stamp-mk
|
||||
|
||||
lt_obsolete_m4 = $(srcdir)/$(macro_dir)/lt~obsolete.m4
|
||||
|
||||
EXTRA_DIST += $(lt_aclocal_m4) \
|
||||
$(lt_configure) \
|
||||
$(lt_configure_ac) \
|
||||
$(lt_config_h_in) \
|
||||
$(lt_Makefile_am) \
|
||||
$(lt_Makefile_in) \
|
||||
$(lt_obsolete_m4) \
|
||||
$(stamp_mk)
|
||||
|
||||
$(lt_Makefile_in): $(lt_Makefile_am) $(lt_aclocal_m4)
|
||||
$(AM_V_GEN)cd '$(srcdir)/$(ltdl_dir)' && $(AUTOMAKE) Makefile
|
||||
|
||||
# Don't let unused scripts leak into the libltdl Makefile
|
||||
$(stamp_mk): $(lt_Makefile_in)
|
||||
$(AM_V_at)T='$(srcdir)/$(aux_dir)/Makefile.tmp'; \
|
||||
for p in $(srcdir)/$(aux_dir)/*; do \
|
||||
test -f "$$p" || continue; \
|
||||
f=`echo "$$p" | $(SED) 's|^$(srcdir)/$(aux_dir)/||'`; \
|
||||
case " $(pkgaux_scripts) ltmain.sh " in \
|
||||
*" $$f "*) ;; \
|
||||
*) '$(SED)' \
|
||||
-e 's|\(\$$([^)]*)/\)*'"$(ltdl_ac_aux_dir)/$$f"'\$$||' \
|
||||
-e 's|\(\$$([^)]*)/\)*'"$(ltdl_ac_aux_dir)/$$f"' ||' \
|
||||
-e '/^[ ]*\\$$/d' \
|
||||
'$(lt_Makefile_in)' > "$$T" \
|
||||
&& mv -f "$$T" '$(lt_Makefile_in)';; \
|
||||
esac; \
|
||||
done
|
||||
$(AM_V_GEN)echo stamp > '$@'
|
||||
|
||||
lt_aclocal_m4_deps = \
|
||||
$(lt_obsolete_m4) \
|
||||
$(ltversion_m4) \
|
||||
$(libtool_m4) \
|
||||
$(srcdir)/$(macro_dir)/ltargz.m4 \
|
||||
$(srcdir)/$(macro_dir)/ltdl.m4 \
|
||||
$(srcdir)/$(macro_dir)/ltoptions.m4 \
|
||||
$(srcdir)/$(macro_dir)/ltsugar.m4 \
|
||||
$(srcdir)/$(macro_dir)/m4.m4 \
|
||||
$(srcdir)/$(ltdl_dir)/configure.ac
|
||||
|
||||
lt_configure_deps = $(lt_aclocal_m4) $(lt_aclocal_m4_deps)
|
||||
|
||||
$(lt_aclocal_m4): $(lt_aclocal_m4_deps)
|
||||
$(AM_V_GEN)cd '$(srcdir)/$(ltdl_dir)' && $(ACLOCAL) -I ../m4
|
||||
|
||||
$(lt_configure): $(lt_configure_deps)
|
||||
$(AM_V_GEN)cd '$(srcdir)/$(ltdl_dir)' && $(AUTOCONF)
|
||||
|
||||
$(lt_config_h_in): $(lt_configure_deps)
|
||||
$(AM_V_GEN)cd '$(srcdir)/$(ltdl_dir)' && $(AUTOHEADER)
|
||||
$(AM_V_at)touch '$@'
|
||||
|
||||
|
||||
## -------------- ##
|
||||
## Documentation. ##
|
||||
## -------------- ##
|
||||
|
||||
doc_dir = $(srcdir)/doc
|
||||
|
||||
libtool_1 = $(doc_dir)/libtool.1
|
||||
libtoolize_1 = $(doc_dir)/libtoolize.1
|
||||
notes_texi = $(doc_dir)/notes.texi
|
||||
notes_txt = $(doc_dir)/notes.txt
|
||||
|
||||
EXTRA_DIST += $(doc_dir)/gendocs_template
|
||||
|
||||
# A bug in automake 1.11.1 (at least) prevents us from using:
|
||||
#
|
||||
# info_TEXINFOS = $(doc_dir)/libtool.texi
|
||||
#
|
||||
# Producing the following error, even though srcdir is implicitly set:
|
||||
# "cannot open < ./$(srcdir)/doc/libtool.texi: No such file or directory"
|
||||
info_TEXINFOS = doc/libtool.texi
|
||||
doc_libtool_TEXINFOS = $(doc_dir)/PLATFORMS $(doc_dir)/fdl.texi \
|
||||
$(notes_texi)
|
||||
EXTRA_DIST += $(notes_txt)
|
||||
## Workaround for a texinfo bug described here:
|
||||
## http://thread.gmane.org/gmane.comp.tex.texinfo.bugs/3930
|
||||
DISTCLEANFILES += libtool.dvi
|
||||
|
||||
all-local: $(notes_txt)
|
||||
|
||||
$(notes_txt): $(notes_texi)
|
||||
$(AM_V_GEN)$(MAKEINFO) -P '$(srcdir)/doc' --no-headers \
|
||||
$(MAKEINFOFLAGS) -o '$@' '$(notes_texi)'
|
||||
|
||||
dist_man1_MANS = $(libtool_1) $(libtoolize_1)
|
||||
MAINTAINERCLEANFILES += $(dist_man1_MANS)
|
||||
update_mans = \
|
||||
PATH=".$(PATH_SEPARATOR)$$PATH"; export PATH; \
|
||||
$(HELP2MAN) --output='$@'
|
||||
|
||||
# It's wrong to make distributed files (e.g. $(libtool_1)) rely on
|
||||
# files created in the build tree, so instead we regenerate the
|
||||
# manual pages if the sources for the build-tree files we want to
|
||||
# run have changed.
|
||||
$(libtool_1): $(ltmain_sh)
|
||||
$(AM_V_GEN)$(update_mans) --help-option=--help-all libtool
|
||||
$(libtoolize_1): $(libtoolize_in)
|
||||
$(AM_V_GEN)$(update_mans) libtoolize
|
||||
|
||||
|
||||
## ------------- ##
|
||||
## Installation. ##
|
||||
## ------------- ##
|
||||
|
||||
ltdldir = $(srcdir)/libltdl
|
||||
pkgauxdir = $(pkgdatadir)/build-aux
|
||||
|
||||
# The timestamps on these files must be preserved carefully so we install,
|
||||
# uninstall and set executable with custom rules here.
|
||||
pkgaux_parent_files = ltmain.sh
|
||||
pkgaux_install_files = config.guess config.sub install-sh
|
||||
pkgaux_data_files = $(pkgaux_parent_files)
|
||||
|
||||
# Everything that gets picked up by aclocal is automatically distributed,
|
||||
# this is the list of macro files we install on the user's system.
|
||||
pkgmacro_files = libtool.m4 ltargz.m4 ltdl.m4 ltoptions.m4 ltsugar.m4 \
|
||||
ltversion.m4 lt~obsolete.m4
|
||||
|
||||
## These are installed as a subdirectory of pkgdatadir so that
|
||||
## libtoolize --ltdl can find them later. Note that this list requires
|
||||
## specific order to avoid unnecessary re-autotooling after libtoolize run.
|
||||
pkgltdl_files = COPYING.LIB \
|
||||
Makefile.am \
|
||||
README \
|
||||
configure.ac \
|
||||
aclocal.m4 \
|
||||
Makefile.in \
|
||||
config-h.in \
|
||||
configure \
|
||||
libltdl/lt__alloc.h \
|
||||
libltdl/lt__argz_.h \
|
||||
libltdl/lt__dirent.h \
|
||||
libltdl/lt__glibc.h \
|
||||
libltdl/lt__private.h \
|
||||
libltdl/lt__strl.h \
|
||||
libltdl/lt_dlloader.h \
|
||||
libltdl/lt_error.h \
|
||||
libltdl/lt_system.h \
|
||||
libltdl/slist.h \
|
||||
loaders/dld_link.c \
|
||||
loaders/dlopen.c \
|
||||
loaders/dyld.c \
|
||||
loaders/load_add_on.c \
|
||||
loaders/loadlibrary.c \
|
||||
loaders/preopen.c \
|
||||
loaders/shl_load.c \
|
||||
lt__alloc.c \
|
||||
lt__argz.c \
|
||||
lt__dirent.c \
|
||||
lt__strl.c \
|
||||
lt_dlloader.c \
|
||||
lt_error.c \
|
||||
ltdl.c \
|
||||
ltdl.h \
|
||||
ltdl.mk \
|
||||
slist.c
|
||||
|
||||
install-data-local: $(lt_Makefile_in) install-scripts-local
|
||||
@$(NORMAL_INSTALL)
|
||||
## Don't install over the top of an old pkgdatadir
|
||||
-rm -rf '$(DESTDIR)$(pkgdatadir)'/*
|
||||
## First, put a copy of the libtool m4 macros in the aclocal dir
|
||||
@list='$(pkgmacro_files)'; for p in $$list; do \
|
||||
d=`echo "$(DESTDIR)$(aclocaldir)/$$p" |$(SED) 's|[^/]*$$||'`; \
|
||||
test -d "$$d" || $(mkinstalldirs) "$$d"; \
|
||||
echo " $(INSTALL_DATA) '$(srcdir)/$(macro_dir)/$$p' '$(DESTDIR)$(aclocaldir)/$$p'"; \
|
||||
$(INSTALL_DATA) "$(srcdir)/$(macro_dir)/$$p" "$(DESTDIR)$(aclocaldir)/$$p"; \
|
||||
done
|
||||
## install the helper scripts
|
||||
@list='$(pkgaux_scripts)' && \
|
||||
for p in $$list; do \
|
||||
d=`echo "$(DESTDIR)$(pkgauxdir)/$$p" |$(SED) 's|[^/]*$$||'`; \
|
||||
test -d "$$d" || $(mkinstalldirs) "$$d"; \
|
||||
echo " $(INSTALL_SCRIPT) '$(srcdir)/$(aux_dir)/$$p' '$(DESTDIR)$(pkgauxdir)/$$p'"; \
|
||||
$(INSTALL_SCRIPT) "$(srcdir)/$(aux_dir)/$$p" "$(DESTDIR)$(pkgauxdir)/$$p"; \
|
||||
done
|
||||
@list='$(pkgaux_data_files)' && for p in $$list; do \
|
||||
d=`echo "$(DESTDIR)$(pkgauxdir)/$$p" |$(SED) 's|[^/]*$$||'`; \
|
||||
test -d "$$d" || $(mkinstalldirs) "$$d"; \
|
||||
echo " $(INSTALL_DATA) '$(srcdir)/$(aux_dir)/$$p' '$(DESTDIR)$(pkgauxdir)/$$p'"; \
|
||||
$(INSTALL_DATA) "$(srcdir)/$(aux_dir)/$$p" "$(DESTDIR)$(pkgauxdir)/$$p"; \
|
||||
done
|
||||
## install the libltdl files
|
||||
@list='$(pkgltdl_files)' && for p in $$list; do \
|
||||
d=`echo "$(DESTDIR)$(pkgdatadir)/$$p" |$(SED) 's|[^/]*$$||'`; \
|
||||
test -d "$$d" || $(mkinstalldirs) "$$d"; \
|
||||
echo " $(INSTALL_DATA) '$(ltdldir)/$$p' '$(DESTDIR)$(pkgdatadir)/$$p'"; \
|
||||
$(INSTALL_DATA) "$(ltdldir)/$$p" "$(DESTDIR)$(pkgdatadir)/$$p"; \
|
||||
done
|
||||
chmod a+x '$(DESTDIR)$(pkgdatadir)/configure'
|
||||
|
||||
.PHONY: install-scripts-local
|
||||
install-scripts-local: $(lt_Makefile_in)
|
||||
## Inline helper-scripts for installed libtoolize script
|
||||
@p=`echo libtoolize |sed -e '$(transform)'`; \
|
||||
echo " $(SCRIPT_ENV) '$(inline_source)' libtoolize > '$(DESTDIR)$(bindir)/$$p'"; \
|
||||
d=`echo "$(DESTDIR)$(bindir)/$$p" |$(SED) 's|[^/]*$$||'`; \
|
||||
test -d "$$d" || $(mkinstalldirs) "$$d"; \
|
||||
$(SCRIPT_ENV) '$(inline_source)' libtoolize > "$(DESTDIR)$(bindir)/$$p"; \
|
||||
chmod a+x "$(DESTDIR)$(bindir)/$$p"
|
||||
|
||||
|
||||
## ------------- ##
|
||||
## Distribution. ##
|
||||
## ------------- ##
|
||||
|
||||
edit_readme_alpha = $(srcdir)/$(aux_dir)/edit-readme-alpha
|
||||
gitlog_to_changelog = $(srcdir)/$(aux_dir)/gitlog-to-changelog
|
||||
git_log_fix = $(srcdir)/$(aux_dir)/git-log-fix
|
||||
thanks_gen = $(srcdir)/$(aux_dir)/thanks-gen
|
||||
|
||||
dotserial = $(distdir)/.serial
|
||||
dotversion = $(top_srcdir)/.version
|
||||
tarball_version = $(distdir)/.tarball-version
|
||||
readme = $(distdir)/README
|
||||
changelog = $(distdir)/ChangeLog
|
||||
changelog_old = $(srcdir)/ChangeLog.old
|
||||
thanks = $(distdir)/THANKS
|
||||
no_thanks = $(srcdir)/NO-THANKS
|
||||
|
||||
# Generate ChangeLog using git log entries for as far back as
|
||||
# they are in good shape, appending manual records from earlier.
|
||||
changelog_start_date = 2011-01-01
|
||||
$(changelog): FORCE
|
||||
$(AM_V_GEN)if test -d '$(srcdir)/.git'; then \
|
||||
TZ=UTC $(gitlog_to_changelog) --amend=$(git_log_fix) \
|
||||
--ignore-matching=Omit-from-ChangeLog. \
|
||||
--format='%s%n%n%b%n' \
|
||||
--since=$(changelog_start_date) > '$@T'; \
|
||||
rm -f '$@'; mv '$@T' '$@'; \
|
||||
cat '$(changelog_old)' >> '$@'; \
|
||||
fi
|
||||
|
||||
# Sort in traditional ASCII order, regardless of the current locale;
|
||||
# otherwise we may get into trouble with distinct strings that the
|
||||
# current locale considers to be equal.
|
||||
ASSORT = LC_ALL=C sort
|
||||
|
||||
# Extract all lines up to the first one starting with "##".
|
||||
prologue = perl -ne '/^\#\#/ and exit; print' $(no_thanks)
|
||||
|
||||
# Generate THANKS using git log entries as far as possible, fixing
|
||||
# up ommisions and errors from NO-THANKS configuration.
|
||||
$(thanks): FORCE
|
||||
$(AM_V_GEN)if test -d '$(srcdir)/.git'; then \
|
||||
{ \
|
||||
$(prologue); echo; \
|
||||
{ perl -ne '/^$$/.../^$$/ and print' $(no_thanks) \
|
||||
| grep -v '^$$' | perl -pe 's/ +/\0/'; \
|
||||
{ sed -e '1,/\#\# /d' -e '/^\#\# /d' \
|
||||
-e 's|[ ][ ]*| |' < $(no_thanks) \
|
||||
| tr '\t' '\0'; \
|
||||
git log --pretty=format:'%aN%x00%aE'; \
|
||||
} | $(ASSORT) -u; \
|
||||
} | $(thanks_gen) \
|
||||
| LC_ALL=en_US.UTF-8 sort -f; \
|
||||
echo; \
|
||||
printf ';; %s\n' 'Local Variables:' 'coding: utf-8' End:; \
|
||||
} > '$@'; \
|
||||
fi
|
||||
|
||||
## Arrange so that .version appears only in the distribution
|
||||
## tarball, and never in a checked-out repository.
|
||||
EXTRA_DIST += $(dotversion)
|
||||
BUILT_SOURCES += $(dotversion)
|
||||
$(dotversion):
|
||||
$(AM_V_GEN)echo '$(VERSION)' > '$@T' && mv '$@T' '$@'
|
||||
|
||||
## Edit the README file for alpha releases.
|
||||
EXTRA_DIST += $(edit_readme_alpha)
|
||||
re_alpha_version = '\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*[-\.][-\.0-9a-z]*\)'
|
||||
$(readme): FORCE
|
||||
@if test -n "`expr $(VERSION) : $(re_alpha_version)`"; then \
|
||||
if test 0 = '$(AM_DEFAULT_VERBOSITY)' && test 1 != '$(V)'; \
|
||||
then echo " GEN " $@; \
|
||||
else echo "$(SHELL) $(edit_readme_alpha) $@"; fi; \
|
||||
$(SHELL) $(edit_readme_alpha) '$@'; \
|
||||
fi
|
||||
|
||||
git_commit_count = git log --pretty=oneline |wc -l |$(SED) 's|[ ]||g'
|
||||
|
||||
dist-hook: $(changelog) $(thanks) $(dotversion) $(readme)
|
||||
## Arrange so that .tarball-version appears only in the distribution
|
||||
## tarball, and never in a checked-out repository.
|
||||
echo '$(VERSION)' > $(tarball_version)
|
||||
## ...and similarly for .serial.
|
||||
$(git_commit_count) > $(dotserial)
|
||||
## Ensure aclocal has not wrongly picked up old macro definitions.
|
||||
$(no_bogus_macros)
|
||||
|
||||
distcheck-hook: syntax-check
|
||||
|
||||
uninstall-hook:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(pkgltdl_files)'; \
|
||||
for f in $$list; do \
|
||||
echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \
|
||||
done
|
||||
@list='$(pkgaux_scripts) $(pkgaux_data_files)'; \
|
||||
for f in $$list; do \
|
||||
echo " rm -f '$(DESTDIR)$(pkgauxdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(pkgauxdir)/$$f"; \
|
||||
done
|
||||
@for p in $(pkgmacro_files); do \
|
||||
f=`echo "$$p" |$(SED) 's|^.*/||'`; \
|
||||
echo " rm -f '$(DESTDIR)$(aclocaldir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(aclocaldir)/$$f"; \
|
||||
done
|
||||
@p=`echo libtoolize |sed -e '$(transform)'`; \
|
||||
echo " rm -f '$(DESTDIR)$(bindir)/$$p'"; \
|
||||
rm -f "$(DESTDIR)$(bindir)/$$p"
|
||||
|
||||
|
||||
## ----------- ##
|
||||
## Test suite. ##
|
||||
## ----------- ##
|
||||
|
||||
tests_dir = $(top_srcdir)/tests
|
||||
package_m4 = $(tests_dir)/package.m4
|
||||
testsuite = $(tests_dir)/testsuite
|
||||
|
||||
# The testsuite files are evaluated in the order given here. When
|
||||
# adding new tests, make sure cmdline_wrap.at stays at the end so
|
||||
# that it can check for previous failures and skip if necessary.
|
||||
TESTSUITE = tests/testsuite
|
||||
TESTSUITE_AT = tests/testsuite.at \
|
||||
tests/configure-funcs.at \
|
||||
tests/libtoolize.at \
|
||||
tests/libtool.at \
|
||||
tests/demo.at \
|
||||
tests/pic_flag.at \
|
||||
tests/with-pic.at \
|
||||
tests/cdemo.at \
|
||||
tests/convenience.at \
|
||||
tests/depdemo.at \
|
||||
tests/help.at \
|
||||
tests/duplicate_members.at \
|
||||
tests/duplicate_conv.at \
|
||||
tests/duplicate_deps.at \
|
||||
tests/flags.at \
|
||||
tests/inherited_flags.at \
|
||||
tests/link-order.at \
|
||||
tests/link-order2.at \
|
||||
tests/fail.at \
|
||||
tests/shlibpath.at \
|
||||
tests/runpath-in-lalib.at \
|
||||
tests/static.at \
|
||||
tests/export.at \
|
||||
tests/export-def.at \
|
||||
tests/search-path.at \
|
||||
tests/indirect_deps.at \
|
||||
tests/archive-in-archive.at \
|
||||
tests/exeext.at \
|
||||
tests/execute-mode.at \
|
||||
tests/bindir.at \
|
||||
tests/cwrapper.at \
|
||||
tests/deplib-in-subdir.at \
|
||||
tests/infer-tag.at \
|
||||
tests/localization.at \
|
||||
tests/nocase.at \
|
||||
tests/install.at \
|
||||
tests/versioning.at \
|
||||
tests/destdir.at \
|
||||
tests/old-m4-iface.at \
|
||||
tests/am-subdir.at \
|
||||
tests/lt_dlexit.at \
|
||||
tests/lt_dladvise.at \
|
||||
tests/lt_dlopen.at \
|
||||
tests/lt_dlopen_a.at \
|
||||
tests/lt_dlopenext.at \
|
||||
tests/ltdl-libdir.at \
|
||||
tests/ltdl-api.at \
|
||||
tests/dlloader-api.at \
|
||||
tests/loadlibrary.at \
|
||||
tests/lalib-syntax.at \
|
||||
tests/resident.at \
|
||||
tests/slist.at \
|
||||
tests/need_lib_prefix.at \
|
||||
tests/mdemo.at \
|
||||
tests/standalone.at \
|
||||
tests/subproject.at \
|
||||
tests/nonrecursive.at \
|
||||
tests/recursive.at \
|
||||
tests/tagdemo.at \
|
||||
tests/template.at \
|
||||
tests/ctor.at \
|
||||
tests/exceptions.at \
|
||||
tests/early-libtool.at \
|
||||
tests/no-executables.at \
|
||||
tests/deplibs-ident.at \
|
||||
tests/configure-iface.at \
|
||||
tests/f77demo.at \
|
||||
tests/fcdemo.at \
|
||||
tests/darwin.at \
|
||||
tests/dumpbin-symbols.at \
|
||||
tests/deplibs-mingw.at \
|
||||
tests/sysroot.at \
|
||||
tests/stresstest.at \
|
||||
tests/cmdline_wrap.at \
|
||||
$(NOTHING_ELSE)
|
||||
|
||||
EXTRA_DIST += $(testsuite) $(TESTSUITE_AT) $(package_m4)
|
||||
|
||||
# Be sure to reexport important environment variables:
|
||||
TESTS_ENVIRONMENT = MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" \
|
||||
CPP="$(CPP)" CPPFLAGS="$(CPPFLAGS)" LD="$(LD)" LDFLAGS="$(LDFLAGS)" \
|
||||
LIBS="$(LIBS)" LN_S="$(LN_S)" NM="$(NM)" RANLIB="$(RANLIB)" \
|
||||
AR="$(AR)" \
|
||||
EGREP="$(EGREP)" FGREP="$(FGREP)" GREP="$(GREP)" SED="$(SED)" \
|
||||
STRIP="$(STRIP)" lt_INSTALL="$(INSTALL)" \
|
||||
MANIFEST_TOOL="$(MANIFEST_TOOL)" \
|
||||
OBJEXT="$(OBJEXT)" EXEEXT="$(EXEEXT)" \
|
||||
SHELL="$(SHELL)" CONFIG_SHELL="$(SHELL)" \
|
||||
CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" CXXCPP="$(CXXCPP)" \
|
||||
F77="$(F77)" FFLAGS="$(FFLAGS)" \
|
||||
FC="$(FC)" FCFLAGS="$(FCFLAGS)" \
|
||||
GCJ="$(GCJ)" GCJFLAGS="$(GCJFLAGS)" \
|
||||
lt_cv_with_aix_soname="$(with_aix_soname)" \
|
||||
lt_cv_to_host_file_cmd="$(to_host_file_cmd)" \
|
||||
lt_cv_to_tool_file_cmd="$(to_tool_file_cmd)"
|
||||
|
||||
BUILDCHECK_ENVIRONMENT = _lt_pkgdatadir="$(abs_top_srcdir)" \
|
||||
LIBTOOLIZE="$(abs_top_builddir)/libtoolize" \
|
||||
LIBTOOL="$(abs_top_builddir)/libtool" \
|
||||
tst_aclocaldir="$(abs_top_srcdir)/m4"
|
||||
|
||||
INSTALLCHECK_ENVIRONMENT = \
|
||||
LIBTOOLIZE="$(bindir)/`echo libtoolize |$(SED) '$(program_transform_name)'`" \
|
||||
LIBTOOL="$(bindir)/`echo libtool |$(SED) '$(program_transform_name)'`" \
|
||||
LTDLINCL="-I$(includedir)" \
|
||||
LIBLTDL="$(libdir)/libltdl.la" \
|
||||
tst_aclocaldir="$(aclocaldir)"
|
||||
|
||||
$(testsuite): $(package_m4) $(TESTSUITE_AT) Makefile.am
|
||||
$(AM_V_GEN)$(AUTOTEST) -I '$(srcdir)' -I '$(srcdir)/tests' $(TESTSUITE_AT) -o '$@'
|
||||
|
||||
$(package_m4): $(dotversion) Makefile.am
|
||||
$(AM_V_GEN){ \
|
||||
echo '# Signature of the current package.'; \
|
||||
echo 'm4_define([AT_PACKAGE_NAME], [$(PACKAGE_NAME)])'; \
|
||||
echo 'm4_define([AT_PACKAGE_TARNAME], [$(PACKAGE_TARNAME)])'; \
|
||||
echo 'm4_define([AT_PACKAGE_VERSION], [$(PACKAGE_VERSION)])'; \
|
||||
echo 'm4_define([AT_PACKAGE_STRING], [$(PACKAGE_STRING)])'; \
|
||||
echo 'm4_define([AT_PACKAGE_BUGREPORT], [$(PACKAGE_BUGREPORT)])'; \
|
||||
echo 'm4_define([AT_PACKAGE_URL], [$(PACKAGE_URL)])'; \
|
||||
} > '$@'
|
||||
|
||||
tests/atconfig: $(config_status)
|
||||
$(AM_V_GEN)$(SHELL) '$(config_status)' '$@'
|
||||
|
||||
DISTCLEANFILES += tests/atconfig
|
||||
|
||||
CD_TESTDIR = abs_srcdir=`$(lt__cd) $(srcdir) && pwd`; cd tests
|
||||
|
||||
testsuite_deps = tests/atconfig $(srcdir)/$(TESTSUITE)
|
||||
testsuite_deps_uninstalled = $(testsuite_deps) libltdl/libltdlc.la \
|
||||
$(bin_SCRIPTS) $(LTDL_BOOTSTRAP_DEPS)
|
||||
|
||||
# Hook the test suite into the check rule
|
||||
check-local: $(testsuite_deps_uninstalled)
|
||||
$(AM_V_at)$(CD_TESTDIR); \
|
||||
CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \
|
||||
$(TESTS_ENVIRONMENT) $(BUILDCHECK_ENVIRONMENT) $(TESTSUITEFLAGS)
|
||||
|
||||
# Run the test suite on the *installed* tree.
|
||||
installcheck-local: $(testsuite_deps)
|
||||
$(AM_V_at)$(CD_TESTDIR); \
|
||||
CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \
|
||||
$(TESTS_ENVIRONMENT) $(INSTALLCHECK_ENVIRONMENT) $(TESTSUITEFLAGS) \
|
||||
AUTOTEST_PATH='$(exec_prefix)/bin'
|
||||
|
||||
.PHONY: check-noninteractive-old
|
||||
check-noninteractive-old:
|
||||
$(AM_V_at)'$(MAKE)' $(AM_MAKEFLAGS) check-TESTS TESTS='$(TESTS)'
|
||||
|
||||
# Run only noninteractive parts of the new testsuite.
|
||||
.PHONY: check-noninteractive-new
|
||||
check-noninteractive-new: $(testsuite_deps_uninstalled)
|
||||
$(AM_V_at)$(CD_TESTDIR); \
|
||||
CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \
|
||||
$(TESTS_ENVIRONMENT) $(BUILDCHECK_ENVIRONMENT) \
|
||||
-k '!interactive' INNER_TESTSUITEFLAGS=',!interactive' \
|
||||
$(TESTSUITEFLAGS)
|
||||
|
||||
# Run only interactive parts of the new testsuite.
|
||||
.PHONY: check-interactive
|
||||
check-interactive: $(testsuite_deps_uninstalled)
|
||||
$(AM_V_at)$(CD_TESTDIR); \
|
||||
CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \
|
||||
$(TESTS_ENVIRONMENT) $(BUILDCHECK_ENVIRONMENT) \
|
||||
-k interactive -k recursive INNER_TESTSUITEFLAGS=',interactive' \
|
||||
$(TESTSUITEFLAGS)
|
||||
|
||||
.PHONY: check-noninteractive
|
||||
check-noninteractive: check-noninteractive-old check-noninteractive-new
|
||||
|
||||
# We need to remove any file droppings left behind by testsuite
|
||||
clean-local:
|
||||
-$(CD_TESTDIR); \
|
||||
test -f "$$abs_srcdir/$(TESTSUITE)" && \
|
||||
'$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" --clean
|
||||
|
||||
## An empty target to depend on when a rule needs to always run
|
||||
## whenever it is visited.
|
||||
FORCE:
|
||||
2592
BUILD/libtool-2.4.7/Makefile.in
Normal file
2592
BUILD/libtool-2.4.7/Makefile.in
Normal file
File diff suppressed because it is too large
Load Diff
1251
BUILD/libtool-2.4.7/NEWS
Normal file
1251
BUILD/libtool-2.4.7/NEWS
Normal file
File diff suppressed because it is too large
Load Diff
261
BUILD/libtool-2.4.7/README
Normal file
261
BUILD/libtool-2.4.7/README
Normal file
@ -0,0 +1,261 @@
|
||||
# GNU Libtool
|
||||
|
||||
1. Introduction
|
||||
===============
|
||||
|
||||
[GNU Libtool][libtool] is a generic library support script.
|
||||
[Libtool][] hides the complexity of using shared libraries behind a
|
||||
consistent, portable interface.
|
||||
|
||||
Libtool's home page is:
|
||||
|
||||
http://www.gnu.org/software/libtool/libtool.html
|
||||
|
||||
See the file [NEWS][] for a description of recent changes to Libtool.
|
||||
|
||||
Please note that you can build GNU Libtool from this directory using a
|
||||
vendor Make program as long as this is an official release tarball;
|
||||
otherwise you will need GNU Make for sane VPATH support. See the file
|
||||
[INSTALL][] for complete generic instructions on how to build and install
|
||||
Libtool. Also, see the file [doc/notes.txt][notes] for some platform-
|
||||
specific information.
|
||||
|
||||
See the info node (libtool)Tested Platforms. (or the file
|
||||
[doc/PLATFORMS][platforms]) for a list of platforms that Libtool already
|
||||
supports.
|
||||
|
||||
Please try it on all the platforms you have access to:
|
||||
|
||||
* If it builds and passes the test suite (`gmake check`), please send
|
||||
a short note to the [libtool mailing list][libtool list] with a
|
||||
subject line including the string `[PLATFORM]`, and containing the
|
||||
details from the end of `./libtool --help` in the body.
|
||||
* Otherwise, see _Reporting Bugs_ below for how to help us fix any
|
||||
problems you discover.
|
||||
|
||||
To use Libtool, add the new generic library building commands to your
|
||||
`Makefile`, `Makefile.in`, or `Makefile.am`. See the documentation for
|
||||
details.
|
||||
|
||||
[install]: http://git.savannah.gnu.org/cgit/libtool.git/tree/INSTALL
|
||||
[libtool]: http://www.gnu.org/s/libtool
|
||||
[libtool list]: mailto:libtool@gnu.org
|
||||
[news]: http://git.savannah.gnu.org/cgit/libtool.git/tree/NEWS
|
||||
[notes]: http://git.savannah.gnu.org/cgit/libtool.git/tree/doc/notes.texi
|
||||
[platforms]: http://git.savannah.gnu.org/cgit/libtool.git/tree/doc/PLATFORMS
|
||||
|
||||
|
||||
2. Reporting Bugs
|
||||
=================
|
||||
|
||||
If this distribution doesn't work for you, before you report the
|
||||
problem, at least try upgrading to the latest released version first,
|
||||
and see whether the issue persists. If you feel able, you can also
|
||||
check whether the issue has been fixed in the development sources for
|
||||
the next release (see _Obtaining the Latest Sources_ below).
|
||||
|
||||
Once you've determined that your bug is still not fixed in the latest
|
||||
version, please send a full report to the libtool [bug mailing list][],
|
||||
including:
|
||||
|
||||
1. the information from the end of the help message given by
|
||||
`./libtool --help`, and the verbose output of any failed tests
|
||||
(see _The Test Suites_ immediately below);
|
||||
2. complete instructions for how to reproduce your bug, along with
|
||||
the results you were expecting, and how they differ from what you
|
||||
actually see;
|
||||
3. a workaround or full fix for the bug, if you have it;
|
||||
4. a copy of `tests/testsuite.log` if you are experiencing failures
|
||||
in the Autotest testsuite.
|
||||
5. new test cases for the testsuite that demonstrate the bug are
|
||||
especially welcome, and will help to ensure that future releases
|
||||
don't reintroduce the problem - if you're not able to write a
|
||||
complete testsuite case, a simple standalone shell script is
|
||||
usually good enough to help us write a test for you.
|
||||
|
||||
If you have any other suggestions, or if you wish to port Libtool to a
|
||||
new platform, please send email to the [mailing list][libtool list].
|
||||
|
||||
Please note that if you send us an non-trivial code for inclusion in a
|
||||
future release, we may ask you for a copyright assignment (for brief
|
||||
details see the 'Copyright Assignment' section on our
|
||||
[Contributing][contribute] webpage.
|
||||
|
||||
[bug mailing list]: mailto:bug-libtool@gnu.org
|
||||
[contribute]: http://www.gnu.org/software/libtool/contribute.html
|
||||
|
||||
|
||||
3. The Test Suite
|
||||
=================
|
||||
|
||||
Libtool comes an integrated sets of tests to check that your build
|
||||
is sane. You can run like this, assuming that `gmake` refers to GNU
|
||||
make:
|
||||
|
||||
gmake check
|
||||
|
||||
The new, Autotest-driven testsuite is documented in:
|
||||
|
||||
info Autoconf 'testsuite Invocation'
|
||||
|
||||
but simple help may also be obtained through:
|
||||
|
||||
gmake check TESTSUITEFLAGS='--help'
|
||||
|
||||
For verbose output, add the flag '-v', for running only a subset of the
|
||||
independent tests, merely specify them by number or by keyword, both of
|
||||
which are displayed with the '--list' flag. For example, the 'libtool'
|
||||
keyword is used for the tests that exercise only this script. So it is
|
||||
possible to test an installed script, possibly from a different Libtool
|
||||
release, with:
|
||||
|
||||
gmake check \
|
||||
TESTSUITEFLAGS="-k libtool LIBTOOL=/path/to/libtool"
|
||||
|
||||
Some tests, like the one exercising `max_cmd_len` limits, make use of
|
||||
this to invoke the testsuite recursively on a subset of tests. For these
|
||||
tests, the variable `INNER_TESTSUITEFLAGS` may be used. It will be
|
||||
expanded right after the `-k libtool`, without separating whitespace, so
|
||||
that further limiting of the recursive set of tests is possible. For
|
||||
example, to run only the template tests within the `max_cmd_len`, use:
|
||||
|
||||
gmake check TESTSUITEFLAGS="-v -x -k max_cmd_len \
|
||||
INNER_TESTSUITEFLAGS=',template -v -x'"
|
||||
|
||||
If you wish to report test failures to the libtool list, you need to
|
||||
send the file `tests/testsuite.log` to the [bug mailing list][].
|
||||
|
||||
|
||||
4. Obtaining the Latest Sources
|
||||
===============================
|
||||
|
||||
* With the exception of ancient releases, all official GNU Libtool
|
||||
releases have a detached GPG signature file. With this you can verify
|
||||
that the corresponding file (i.e. without the `.sig` suffix) is the
|
||||
same file that was released by the owner of it's GPG key ID. First,
|
||||
be sure to download both the .sig file and the corresponding release,
|
||||
then run a command like this:
|
||||
|
||||
gpg --verify libtool-x.y.z.tar.gz.sig
|
||||
|
||||
If that command fails because you don't have the required public key,
|
||||
then run this command to import it:
|
||||
|
||||
gpg --keyserver keys.gnupg.net --recv-keys 2983D606
|
||||
|
||||
and then rerun the `gpg --verify` command.
|
||||
|
||||
* Official stable releases of GNU Libtool, along with these detached
|
||||
signature files are available from:
|
||||
|
||||
ftp://ftp.gnu.org/gnu/libtool
|
||||
|
||||
To reduce load on the main server, please use one of the mirrors
|
||||
listed at:
|
||||
|
||||
http://www.gnu.org/order/ftp.html
|
||||
|
||||
* Alpha quality pre-releases of GNU Libtool, also with detached
|
||||
signature files are available from:
|
||||
|
||||
ftp://alpha.gnu.org/gnu/libtool
|
||||
|
||||
and some of the mirrors listed at:
|
||||
|
||||
http://www.gnu.org/order/ftp.html
|
||||
|
||||
* The master libtool repository is stored in git.
|
||||
|
||||
If you are a member of the savannah group for GNU Libtool, a writable
|
||||
copy of the libtool repository can be obtained by:
|
||||
|
||||
git clone <savannah-user>@git.sv.gnu.org:/srv/git/libtool.git
|
||||
|
||||
If you are behind a firewall that blocks the git protocol, you may
|
||||
find it useful to use
|
||||
|
||||
git config --global url.http://git.sv.gnu.org/r/.insteadof \
|
||||
git://git.sv.gnu.org/
|
||||
|
||||
to force git to transparently rewrite all savannah git references to
|
||||
use http.
|
||||
|
||||
If you are not a member of the savannah group for GNU Libtool, you can
|
||||
still fetch a read-only copy with either:
|
||||
|
||||
git clone git://git.sv.gnu.org/libtool.git
|
||||
|
||||
or using the CVS pserver protocol:
|
||||
|
||||
cvs -d:pserver:anonymous@pserver.git.sv.gnu.org:/srv/git/libtool.git \
|
||||
co -d libtool HEAD
|
||||
|
||||
* Before you can build from git, you need to bootstrap. This requires:
|
||||
- Autoconf 2.64 or later
|
||||
- Automake 1.11.1 or later
|
||||
- Help2man 1.29 or later
|
||||
- Xz 4.999.8beta or later (from [tukaani.org](http://tukaani.org/xz))
|
||||
- Texinfo 4.8 or later
|
||||
- Any prerequisites of the above (such as m4, perl, tex)
|
||||
|
||||
Note that these bootstrapping dependencies are much stricter than
|
||||
those required to use a destributed release for your own packages.
|
||||
After installation, GNU Libtool is designed to work either standalone,
|
||||
or optionally with:
|
||||
- Autoconf 2.59 or later
|
||||
- Automake 1.9.6 or later
|
||||
|
||||
* The `bootstrap` script sets up the source directory for you to hack.
|
||||
|
||||
|
||||
5. Version Numbering
|
||||
====================
|
||||
|
||||
People have complained that they find the version numbering scheme under
|
||||
which libtool is released confusing... so we've changed it!
|
||||
|
||||
It works like this:
|
||||
|
||||
<major-number>.<minor-number>
|
||||
|
||||
Releases with a **major-number** less than 1 were not yet feature
|
||||
complete. Releases with a **major-number** of 1 used the old numbering
|
||||
scheme that everyone disliked so much. Releases with a **major-number**
|
||||
of 2 us the new scheme described here. If libtool ever undergoes a
|
||||
major rewrite or substantial restructuring, the **major-number** will be
|
||||
incremented again.
|
||||
|
||||
If we make a patch release to fix bugs in a stable release, we use a
|
||||
third number, so:
|
||||
|
||||
2.4.2
|
||||
|
||||
If we make an alpha quality prerelease, we use a fourth number for the
|
||||
number of changsets applied since the version it's based on:
|
||||
|
||||
2.4.2.418
|
||||
|
||||
And finally, if you build an unreleased version it will have a short git
|
||||
revision hash string in hexadecimal appended to all of that:
|
||||
|
||||
2.4.2.418.3-30eaa
|
||||
|
||||
--
|
||||
Copyright (C) 2004-2010, 2015-2019, 2021-2022 Free Software
|
||||
Foundation, Inc.
|
||||
|
||||
Written by Gary V. Vaughan, 2004
|
||||
|
||||
This file is part of GNU Libtool.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. This file is offered as-is,
|
||||
without warranty of any kind.
|
||||
|
||||
|
||||
Local Variables:
|
||||
mode: text
|
||||
fill-column: 72
|
||||
End:
|
||||
vim:tw=72
|
||||
342
BUILD/libtool-2.4.7/THANKS
Normal file
342
BUILD/libtool-2.4.7/THANKS
Normal file
@ -0,0 +1,342 @@
|
||||
These people have contributed to GNU Libtool. Some have reported problems,
|
||||
others have contributed improvements to the documentation and actual code.
|
||||
The particular contributions are described in the version control logs and
|
||||
ChangeLog files. If your name has been left out, if you'd rather not be
|
||||
listed, or if you'd prefer a different address be used, please send a
|
||||
note to the bug-report mailing list (as seen at end of e.g., libtool --help).
|
||||
|
||||
##
|
||||
aakropotkin alex.ameen.tx@gmail.com
|
||||
Akim Demaille akim@epita.fr
|
||||
Alan Hourihane alanh@fairlite.co.uk
|
||||
Alan Modra amodra@bigpond.net.au
|
||||
Alan W. Irwin irwin@beluga.phys.uvic.ca
|
||||
Albert Cheng acheng@ncsa.uiuc.edu
|
||||
Albert Chin-A-Young china@thewrittenword.com
|
||||
Alex Ameen alex.ameen.tx@gmail.com
|
||||
Alexander Hass alexander.hass@sap.com
|
||||
Alexander Shevchenko sav_ix@ukr.net
|
||||
Alexandre Duret-Lutz adl@gnu.org
|
||||
Alexei Sheplyakov varg@theor.jinr.ru
|
||||
Alex Potapenko opotapeno@gmail.com
|
||||
Alfred M. Szmidt ams@kemisten.nu
|
||||
Allan McRae allan@archlinux.org
|
||||
Allan Sandfeld Jensen snowwolf@one2one-networks.com
|
||||
Alon Bar-Lev alon.barlev@gmail.com
|
||||
Andreas Jaeger aj@suse.de
|
||||
Andreas Schiffler aschiffler@ferzkopp.net
|
||||
Andreas Schwab schwab@linux-m68k.org
|
||||
Andrew C. Feren aferen@CetaceanNetworks.com
|
||||
Andrew Suffield asuffield@debian.org
|
||||
Andrey Slepuhin pooh@msu.ru
|
||||
Aneesh Kumar K.V kvaneesh@hotmail.com
|
||||
Anthony Green green@redhat.com
|
||||
Archie Cobbs archie@whistle.com
|
||||
Arkadiusz Miśkiewicz arekm@maven.pl
|
||||
Arne Woerner woerner@mediabase-gmbh.de
|
||||
Assar Westerlund assar@sics.se
|
||||
Bart Van Assche bvanassche@acm.org
|
||||
Benjamin Reed ranger@befunk.com
|
||||
Bernhard Fischer spam.protected
|
||||
Bernhard Rosenkraenzer bero@redhat.de
|
||||
Bernhard Voelker mail@bernhard-voelker.de
|
||||
Bert Driehuis bert_driehuis@compuware.com
|
||||
Bert Wesarg bert.wesarg@googlemail.com
|
||||
Bob McElrath bob+libtool@mcelrath.org
|
||||
Boyd Lynn Gerber gerberb@zenez.com
|
||||
Brad brad@comstyle.com
|
||||
Brad Smith brad@comstyle.com
|
||||
Brent Leback brent.leback@st.com
|
||||
Brian Barrett brbarret@osl.iu.edu
|
||||
Brian W. Barrett bbarrett@lanl.gov
|
||||
Brice De Bruyne bricedb@gmail.com
|
||||
Brook Moses bmoses@google.com
|
||||
Brooks Moses bmoses@google.com
|
||||
Bruce Korb bkorb@gnu.org
|
||||
Bruno Haible bruno@clisp.org
|
||||
Camilo La Rota camilo.larota@ens-lyon.fr
|
||||
Carl D. Roth roth@cse.ucsc.edu
|
||||
Chad Cunningham ccunning@math.ohio-state.edu
|
||||
Chris Demetriou cgd@google.com
|
||||
Chris Lattner sabre@skylab.org
|
||||
Chris P. Ross cross@eng.us.uu.net
|
||||
Christiaan Welvaart cjw@daneel.dyndns.org
|
||||
Christian Biesinger cbiesinger@web.de
|
||||
Christian Cornelssen ccorn@cs.tu-berlin.de
|
||||
Christian Rössel christian.roessel@gmx.de
|
||||
Christoph Egger Christoph_Egger@gmx.de
|
||||
Christopher A. Knight chriskn@crt.com
|
||||
Christopher Hulbert cchgroupmail@gmail.com
|
||||
Christopher Pfisterer cp@chrisp.de
|
||||
Christoph Pfisterer cp@chrisp.de
|
||||
Craig Dooley xlnxminusx@gmail.com
|
||||
Craig Tierney Craig.Tierney@noaa.gov
|
||||
Cristophe Jarry christophe.jarry@ouvaton.org
|
||||
Dalibor Topic robilad@kaffe.org
|
||||
Daniel Harvey daniel@amristar.com.au
|
||||
Daniel Kobras kobras@linux.de
|
||||
Daniel Reed djr@redhat.com
|
||||
Daniel Richard G. skunk@iSKUNK.ORG
|
||||
Dan McMahill mcmahill@mtl.mit.edu
|
||||
Dan McNichol mcnichol@austin.ibm.com
|
||||
Dave Brolley brolley@redhat.com
|
||||
Dave Korn dave.korn.cygwin@googlemail.com
|
||||
Dave Vasilevsky thevas@mac.com
|
||||
Dave Yost Dave@Yost.com
|
||||
David 'Digit' Turner digit@google.com
|
||||
David Edelsohn dje.gcc@gmail.com
|
||||
David Heine dlheine@truffle.Stanford.EDU
|
||||
David Jones jones@mosaid.com
|
||||
Derek R. Price derek@ximbiot.com
|
||||
Dirk Mueller dmueller@suse.de
|
||||
DJ Delorie dj@delorie.com
|
||||
Donald Anderson dda@world.std.com
|
||||
Donald D. Anderson dda@sleepycat.com
|
||||
Donn Washburn n5xwb@comcast.net
|
||||
Doug Evans devans@casey.cygnus.com
|
||||
Ed Maste emaste@freebsd.org
|
||||
Edouard G. Parmelan Edouard.Parmelan@France.NCR.COM
|
||||
Edward M. Lee tailbert@yahoo.com
|
||||
Elizabeth Barham soggytrousers@yahoo.com
|
||||
Erez Zadok ezk@cs.columbia.edu
|
||||
Eric Bavier bavier@cray.com
|
||||
Eric Blake ebb9@byu.net
|
||||
Eric Estievenart eric@via.ecp.fr
|
||||
Eric Lindahl erik@theophys.kth.se
|
||||
Erik van Pienbroek erik-gnu@vanpienbroek.nl
|
||||
Ethan Mallove ethan.mallove@sun.com
|
||||
Fabian Groffen grobian@gentoo.org
|
||||
Frank Ch. Eigler fche@cygnus.com
|
||||
Fred Cox sailorfred@yahoo.com
|
||||
Fred Fish fnf@be.com
|
||||
Fredrik Estreen estreen@algonet.se
|
||||
Fritz Elfert felfert@to.com
|
||||
Gary Kumfert kumfert@llnl.gov
|
||||
Geoffrey Keating geoffk@apple.com
|
||||
George Bosilca bosilca@cs.utk.edu
|
||||
Gerald Pfeifer gerald@pfeifer.com
|
||||
Greg Eisenhauer eisen@cc.gatech.edu
|
||||
Guido Draheim guidod-2001q3@gmx.de
|
||||
Henning Nielsen Lund hnl_dk@amigaos.dk
|
||||
Hiroyuki Sato hiroysato@gmail.com
|
||||
H.J. Lu hjl@gnu.org
|
||||
Howard Chu hyc@highlandsun.com
|
||||
Ian Lance Taylor ian@cygnus.com
|
||||
Ingo Weinhold ingo_weinhold@gmx.de
|
||||
Jacob Meuser jakemsr@jakemsr.com
|
||||
Jakub Bogusz qboosh@pld-linux.org
|
||||
Jakub Jelinek jakub@redhat.com
|
||||
James E Wilson wilson@specifixinc.com
|
||||
James Su james.su@gmail.com
|
||||
Jan Engelhardt jengelh@inai.de
|
||||
Jan Kratochvil project-libtool@jankratochvil.net
|
||||
Jay Krell jay.krell@cornell.edu
|
||||
Jean-Frederic Clere jfrederic.clere@fujitsu-siemens.com
|
||||
Jeff Squyres jsquyres@cisco.com
|
||||
Jens Petersen petersen@redhat.com
|
||||
Jeremie LE HEN tataz@sitadelle.com
|
||||
Jeremy C. Reed reed@reedmedia.net
|
||||
Jeremy Huddleston Sequoia jeremyhu@macports.org
|
||||
Jim Meyering jim@meyering.net
|
||||
Jim Pick jim@kaffe.org
|
||||
Jim Tison jtison@us.ibm.com
|
||||
Jiro Takabatake jiro@din.or.jp
|
||||
Joakim Tjernlund joakim.tjernlund@transmode.se
|
||||
Joel N. Weber II devnull@gnu.org
|
||||
Joe Orton joe@manyfish.co.uk
|
||||
Joerg Sonnenberger joerg@netbsd.org
|
||||
John Bowler jbowler@acm.org
|
||||
John David Anglin dave.anglin@nrc-cnrc.gc.ca
|
||||
John R. Cary cary@txcorp.com
|
||||
John Wehle john@feith.com
|
||||
John Wolfe jlw@sco.com
|
||||
Jon Meredith jonm@alchemetrics.co.uk
|
||||
Joseph Beckenbach III jrb3@best.com
|
||||
Joseph Prostko joe.prostko@gmail.com
|
||||
Juergen Reuter reuter@t00pcx17094.desy.de
|
||||
Jürgen Reuter juergen.reuter@physik.uni-freiburg.de
|
||||
Justin Lecher jlec@gentoo.org
|
||||
Karl Berry karl@freefriends.org
|
||||
Kean Johnston jkj@sco.com
|
||||
Keith Packard keithp@keithp.com
|
||||
Ken Block block@zk3.dec.com
|
||||
Kenneth Albanowski kjahds@kjahds.com
|
||||
Kevin P. Fleming kpfleming@backtobasicsmgmt.com
|
||||
Kevin Ryde user42@zip.com.au
|
||||
Khem Raj raj.khem@gmail.com
|
||||
KO Myung-Hun komh78@gmail.com
|
||||
Kurt D. Zeilenga Kurt@OpenLDAP.Org
|
||||
Kurt Roeckx kurt@roeckx.be
|
||||
Lawrence Velázquez larryv@macports.org
|
||||
Leif Ekblad leif@rdos.net
|
||||
Lennart Poettering lennart@poettering.net
|
||||
Lionel Landwerlin llandwerlin@gmail.com
|
||||
Loren James Rittle rittle@latour.rsch.comm.mot.com
|
||||
Lucas Holt luke@foolishgames.com
|
||||
Maciej Helminiak dion2@wp.pl
|
||||
Maciej W. Rozycki macro@ds2.pg.gda.pl
|
||||
Mahesh Narayanamurthi mahesh.mach@gmail.com
|
||||
Makoto Ishisone ishisone@sra.co.jp
|
||||
Manfred Weichel Manfred.Weichel@pdb.siemens.de
|
||||
Manish Singh yosh@gimp.org
|
||||
Marcel Loose loose@astron.nl
|
||||
Marc Espie espie@nerim.net
|
||||
Marc Glisse marc.glisse@inria.fr
|
||||
Marc J. Fraioli fraioli@dg-rtp.dg.com
|
||||
Marcus Comstedt marcus@mc.pp.se
|
||||
Marius Vollmer mvo@zagadka.de
|
||||
Mark Kettenis kettenis@gnu.org
|
||||
Markus Duft markus.duft@salomon.at
|
||||
Markus F.X.J. Oberhumer markus@oberhumer.com
|
||||
Martin Doucha doucha@integri.cz
|
||||
Masahiro Nobori nobori@ss.titech.ac.jp
|
||||
Mats Rynge rynge@isi.edu
|
||||
Matthieu Herrb matthieu.herrb@laas.fr
|
||||
Matthijs Kooijman matthijs@stdin.nl
|
||||
Max Bowsher maxb@ukf.net
|
||||
Michael Forster email@michael-forster.de
|
||||
Michael Haubenwallner michael.haubenwallner@salomon.at
|
||||
Michael Matz matz@ifh.de
|
||||
Michael Pruett michael@68k.org
|
||||
Michael Schmitz mschmitz@iname.com
|
||||
Michael Tiemann tiemann@cygnus.com
|
||||
Micheal E. Faenza mfaenza@mitre.org
|
||||
Mike Frysinger vapier@gentoo.org
|
||||
Mike Gorchak lestat@i.com.ua
|
||||
Mike Miller mtmiller@ieee.org
|
||||
Mike Stump mrs@apple.com
|
||||
Mikhail Zabaluev mikhail.zabaluev@gmail.com
|
||||
Misty De Meo misty@brew.sh
|
||||
Mocha netbsd_alpha@yahoo.com
|
||||
Mo DeJong mdejong@redhat.com
|
||||
Morten Eriksen mortene@sim.no
|
||||
Mumit Khan khan@xraylith.wisc.edu
|
||||
Naofumi Yasufuku naofumi@yasufuku.net
|
||||
Nick Bowler nbowler@draconx.ca
|
||||
Nick Hudson nick@nthcliff.demon.co.uk
|
||||
Nick Rasmussen nick@jive.org
|
||||
NIIBE Yutaka gniibe@m17n.org
|
||||
Nix nix@esperi.org.uk
|
||||
Noah Misch noah@cs.caltech.edu
|
||||
Norihiro Tanaka noritnk@kcn.ne.jp
|
||||
Olaf Lenz olenz@fias.uni-frankfurt.de
|
||||
Olivier Blin olivier.blin@softathome.com
|
||||
Ollie Wild aaw@google.com
|
||||
Olly Betts olly@muscat.co.uk
|
||||
Ondřej Bílka neleai@seznam.cz
|
||||
Ozkan Sezer sezeroz@gmail.com
|
||||
Pádraig Brady P@draigBrady.com
|
||||
Paolo Bonzini bonzini@gnu.org
|
||||
Patrice Fromy patrice.fromy@u-psud.fr
|
||||
Patrick Welche prlw1@newn.cam.ac.uk
|
||||
Paul Berrevoets paul@swi.com
|
||||
Paul Biggar paul.biggar@gmail.com
|
||||
Paul Eggert eggert@cs.ucla.edu
|
||||
Paul Laight plaight@quantxautomation.co.uk
|
||||
Paul Seidler sepek@lavabit.com
|
||||
Paul Sokolovsky Paul.Sokolovsky@technologist.com
|
||||
Pavel (Pasha) Shamis shamisp@ornl.gov
|
||||
Pavel Raiskup praiskup@redhat.com
|
||||
Pavel Roskin pavel_roskin@geocities.com
|
||||
Paweł Daniluk pawel@bioexploratorium.pl
|
||||
Per Bothner per@bothner.com
|
||||
Peter Breitenlohner peb@mppmu.mpg.de
|
||||
Peter Eisentraut peter_e@gmx.net
|
||||
Peter Ekberg peda@axentia.se
|
||||
Peter Fritzsche peter.fritzsche@gmx.de
|
||||
Peter Jeremy peterjeremy@optushome.com.au
|
||||
Peter Johansson trojkan@gmail.com
|
||||
Peter Kjellerstedt peter.kjellerstedt@axis.com
|
||||
Peter Rosin peda@lysator.liu.se
|
||||
Philip Allison philip.allison@smoothwall.net
|
||||
Pierre Ossman ossman@ossman.lkpg.cendio.se
|
||||
Rainer Emrich r.emrich@de.tecosim.com
|
||||
Rainer Orth ro@CeBiTec.Uni-Bielefeld.DE
|
||||
Rainer Tammer tammer@tammer.net
|
||||
Raja R Harinath harinath@cs.umn.edu
|
||||
Ralf Menzel menzel@ls6.cs.uni-dortmund.de
|
||||
Ralph Schleicher rs@nunatak.allgaeu.org
|
||||
Reid Spencer reid@x10sys.com
|
||||
Reuben Thomas rrt@sc3d.org
|
||||
Richard B. Kreckel kreckel@ginac.de
|
||||
Richard Dawe rich@phekda.freeserve.co.uk
|
||||
Richard Moseley dickie.moseley@virgin.net
|
||||
Richard Palo richard.palo@baou.fr
|
||||
Richard Purdie rpurdie@rpsys.net
|
||||
Richard Sandiford richards@transitive.com
|
||||
Richard W.M. Jones rjones@redhat.com
|
||||
Rico Tzschichholz ricotz@ubuntu.com
|
||||
Robert Garron Robert.Garron@Access3000.net
|
||||
Robert Millan rmh@aybabtu.com
|
||||
Roberto Bagnara bagnara@cs.unipr.it
|
||||
Robert Ögren lists@roboros.com
|
||||
Robert Yang liezhi.yang@windriver.com
|
||||
Roger Cornelius rac@tenzing.org
|
||||
Roland Mainz roland.mainz@nrubsig.org
|
||||
Roumen Petrov bugtrack@roumenpetrov.info
|
||||
Rudolf Leitgeb r.leitgeb@x-pin.com
|
||||
Ryan Hill dirtyepic@gentoo.org
|
||||
Ryan Schmidt libtool@ryandesign.com
|
||||
Sam Thursfield ssssam@gmail.com
|
||||
Samuel Meder meder@mcs.anl.gov
|
||||
Samuel Thibault samuel.thibault@ens-lyon.org
|
||||
Sascha Schumann sascha@schumann.cx
|
||||
Scott McCreary scottmc2@gmail.com
|
||||
Sebastian Wilhelmi wilhelmi@ira.uka.de
|
||||
Simon Josefsson jas@extundo.com
|
||||
Stacey Marshall stacey.marshall@oracle.com
|
||||
Stas Maximov smaximov@ieee.org
|
||||
Stefan Nordhausen nordhaus@informatik.hu-berlin.de
|
||||
Stefan Sperling stsp@elego.de
|
||||
Stepan Kasal kasal@ucw.cz
|
||||
Stephane Conversy Stephane.Conversy@lri.fr
|
||||
Stephan Kulow coolo@kde.org
|
||||
Steve Ellcey sellcey@mips.com
|
||||
Steven M. Schultz sms@moe.2bsd.com
|
||||
Steve Price sprice@hiwaay.net
|
||||
Svante Signell srs@kth.se
|
||||
Sven Verdoolaege skimo@liacs.nl
|
||||
Syd Polk spolk@redhat.com
|
||||
Terry D. Dontje Terry.Dontje@Sun.COM
|
||||
Thorsten Glaser tg@66h.42h.de
|
||||
Tijl Coosemans tijl@FreeBSD.org
|
||||
Tilman Koschnick til@subnetz.org
|
||||
Tim Mooney mooney@dogbert.cc.ndsu.NoDak.edu
|
||||
Timothy Wall twall@oculustech.com
|
||||
Tim Rice tim@multitalents.net
|
||||
Tim Van Holder tim.van.holder@pandora.be
|
||||
Titus von Boxberg titus@v9g.de
|
||||
Tobias Stoeckmann tobias@stoeckmann.org
|
||||
Todd C. Miller Todd.Miller@courtesan.com
|
||||
Todd Vierling tv@duh.org
|
||||
Tod Milam tmilam@traclabs.com
|
||||
Tom Kacvinsky tjk@ams.org
|
||||
Tom Tromey tromey@cygnus.com
|
||||
Tony Wyatt wyattaw@optushome.com.au
|
||||
Tor Lillqvist tml@iki.fi
|
||||
Török Edwin edwintorok@gmail.com
|
||||
Toshio Kuratomi badger@prtr-13.ucsc.edu
|
||||
Ulrich Drepper drepper@ipd.info.uni-karlsruhe.de
|
||||
Utz-Uwe Haus haus@mail.math.uni-magdeburg.de
|
||||
Václav Haisman vhaisman@gmail.com
|
||||
Václav Zeman vhaisman@gmail.com
|
||||
Vadim vadim@olly.ru
|
||||
Vadim Zeitlin vz-libtool@zeitlins.org
|
||||
Vincent Lefevre vincent@vinc17.net
|
||||
Vincent Torri doursse@users.sf.net
|
||||
Vladimir Kushnir kushn@mail.kar.net
|
||||
Volker Christian voc@soft.uni-linz.ac.at
|
||||
Warren Dodge warren.l.dodge@Tektronix.com
|
||||
Wesley W. Terpstra terpstra@ito.tu-darmstadt.de
|
||||
Wilfredo Sanchez wsanchez@apple.com
|
||||
William M. Perry wmperry@aventail.com
|
||||
Xavier Pianet xavier@xingo.com
|
||||
Xin Li
|
||||
Xin LI d@delphij.net
|
||||
Yaakov Selkowitz yselkowitz@users.sourceforge.net
|
||||
Дилян Палаузов dilyan.palauzov@aegee.org
|
||||
Юрий Андреевич Пухальский pooh@cryptopro.ru
|
||||
|
||||
;; Local Variables:
|
||||
;; coding: utf-8
|
||||
;; End:
|
||||
346
BUILD/libtool-2.4.7/TODO
Normal file
346
BUILD/libtool-2.4.7/TODO
Normal file
@ -0,0 +1,346 @@
|
||||
GNU Libtool
|
||||
***********
|
||||
|
||||
1. In the near future
|
||||
=====================
|
||||
|
||||
1.1. libtool
|
||||
------------
|
||||
|
||||
* Rather than looking up the linker's hardcode characteristics in a
|
||||
table of shell code, use objdump or equivalent to probe a test program
|
||||
at configure time.
|
||||
|
||||
* Eliminate the warnings from autoconf -Wobsolete.
|
||||
|
||||
* Hook the various language dependencies into the autoconf _AC_LANG
|
||||
framework.
|
||||
|
||||
* Work out what to do when the dynamic linker loads needed dependencies.
|
||||
|
||||
* We could have an option to hardcode paths into libraries, as well as
|
||||
binaries: '... -Wl,-soname -Wl,/tmp/libtest.so.0 ...'. This is not
|
||||
possible on all platforms, and is in part obviated by the ability of
|
||||
linking libtool libraries specified with -lname, but it might still
|
||||
be desirable.
|
||||
|
||||
* Lists of exported symbols should be stored in the pseudo library
|
||||
so that the size of lt_preloaded_symbols can be reduced.
|
||||
|
||||
* Have some option to tell libtool not to include -L flags that point
|
||||
into a certain tree in the dependence list of an installed library.
|
||||
For example: -L-$top_builddir would let one link with libtool
|
||||
libraries in sibling subdirectories within a project, using the -L
|
||||
notation, without getting builddir pathnames ever mentioned in .la
|
||||
files that get installed.
|
||||
|
||||
* Eric Lemings <elemings@cyberia.lemings.com> writes:
|
||||
Because of a growing number of config scripts for packages in GNOME 1.2
|
||||
(e.g. glib-config, xml-config, orbit-config. etc), development of GNOME
|
||||
2.0 spawned a separate tool called pkg-config that allows all packages
|
||||
to use one tool rather than several different scripts to query compile
|
||||
flags, link flags, and other configuration data.
|
||||
|
||||
The functionality of pkg-config seems to me to have a lot of overlap
|
||||
with the goals of libtool. I was wondering if anyone had considered
|
||||
adding an eighth mode to libtool that just queries the installed
|
||||
library for the same information that pkg-config provides. Since
|
||||
most packages that use pkg-config also use libtool, I think this
|
||||
would be a good way to reduce maintainer and developer dependencies.
|
||||
|
||||
* Have libtoolize install 'install-sh' if a newer version is available,
|
||||
and/or Automake is not used.
|
||||
|
||||
* Allow to specify linking some dependent libraries statically and some
|
||||
dynamically, where possible.
|
||||
|
||||
* Improve support for C++ with templates.
|
||||
|
||||
* Audit file listing in libtool.m4.
|
||||
|
||||
* Fix deplibs_check_method=pass_all (which is wrong!) on GNU/Linux.
|
||||
|
||||
* Fix -dlopen "self" on AIX. Reported by Gary Kumfert <kumfert@llnl.gov>.
|
||||
|
||||
* Fix denial of service if using installed 'libtool' on a different mount point
|
||||
together with a compiler that does not understand '-c -o'.
|
||||
Reported by Marcin Siennicki.
|
||||
|
||||
* Look at better -no-undefined support, maybe along the idea of
|
||||
[support #103719] for CC.
|
||||
|
||||
|
||||
1.2. libltdl
|
||||
------------
|
||||
|
||||
* Change libltdl interface: add separate functions for function
|
||||
pointers. This will allow porting to systems where function pointers
|
||||
are incompatible with data pointer C-wise.
|
||||
|
||||
* Fix the following bugs in libltdl:
|
||||
- error reporting of tryall_dlopen():
|
||||
if the file actually doesn't exist (stat() fails or it wasn't dlpreopened)
|
||||
-> report 'file not found'
|
||||
if it cannot be loaded (e.g. due to missing dependencies)
|
||||
-> report dlerror
|
||||
open question: what error should be reported if all dlloaders fail
|
||||
or if a specific module type can only be loaded by one of them, how report its dlerror?
|
||||
Also report dlerror() for dlclose and dlsym if available
|
||||
- Make sure that the dependency_libs of a dlpreopened module won't be loaded.
|
||||
|
||||
- Fix mdemo failures on mingw.
|
||||
|
||||
- Fix the last memleak. Reported by Jeff Squyres <jsquyres@lam-mpi.org>.
|
||||
|
||||
- Fix LTDL_CONVENIENCE. Reported by Bob Friesenhahn
|
||||
and Patrick Welche <prlw1@newn.cam.ac.uk>.
|
||||
|
||||
|
||||
1.3. libtoolize
|
||||
---------------
|
||||
|
||||
* Rewrite the func_copy_* functions so that instead of forking 2 tar
|
||||
processes per copied file, a list of files to copy is built and all
|
||||
files copied with a single pair of tar processes.
|
||||
|
||||
* Write test case that adds libtool macros to aclocal.m4.
|
||||
|
||||
|
||||
2. In the future
|
||||
================
|
||||
|
||||
2.1. Documentation
|
||||
------------------
|
||||
|
||||
* Need to finalize the documentation, and give a specification of
|
||||
'.la' files so that people can depend on their format. This would be
|
||||
a good thing to put before the maintainance notes.
|
||||
|
||||
* Document the installed 'libtool' and its limitations clearly (maybe implement
|
||||
--disable-script-install as well). Or, even better, remove its limitations.
|
||||
|
||||
* Platform notes redo.
|
||||
|
||||
2.2. test suite
|
||||
---------------
|
||||
|
||||
* Rewrite the whole thing in Autotest. This will enable us to remove
|
||||
all the tests/*demo noise, and duplication; and thus speed up bootstrap
|
||||
and make writing new tests a whole lot more pleasant.
|
||||
|
||||
* We should include tests with reloadable objects in the testsuite.
|
||||
|
||||
* Write a test case for linkage with gnu ld scripts (per 2004-08-25 patch
|
||||
from Paolo Bonzini).
|
||||
|
||||
* Test everything:
|
||||
- cross compile
|
||||
- dirs with ~
|
||||
- multiple input files
|
||||
|
||||
2.3. libtool
|
||||
------------
|
||||
|
||||
* Fix cross-compiling.
|
||||
|
||||
* Fix threads.
|
||||
|
||||
* Support multilibbing.
|
||||
|
||||
* If not cross-compiling, have the static flag test run the resulting
|
||||
binary to make sure everything works.
|
||||
|
||||
* Another form of convenience library is to have undocumented utility
|
||||
libraries, where only the shared version is installed.
|
||||
|
||||
* We could use libtool object convenience libraries that resolve
|
||||
symbols to be included in a libtool archive. This would require some
|
||||
sort of -whole-archive option, as well.
|
||||
|
||||
* Currently, convenience libraries (.al) are built from .lo objects,
|
||||
except when --disable-shared. When we can build both shared and
|
||||
static libraries, we should probably create a .al out of .lo objects
|
||||
and also a .a out of .o objects. The .al would only be used to create
|
||||
shared libraries, whereas the .a would be used for creating static
|
||||
libraries and programs. We could also explicitly support 'empty'
|
||||
convenience libraries, that behave as macros that expand to a set of
|
||||
-Rs, -Ls and -ls switches.
|
||||
|
||||
* Audit use of object names so we can allow '$' not only within
|
||||
source file names. Necessary especially for java.
|
||||
|
||||
* We could introduce a mechanism to allow for soname rewriting, to
|
||||
ease multi-libc support. Installers could specify a prefix, suffix or
|
||||
sed command to modify the soname, and libtool would create the
|
||||
corresponding link. This would allow for rebuilding a library with
|
||||
the same version number, but depending on different versions of libc,
|
||||
for example. In the future, we might even have an option to encode
|
||||
the sonames of all dependencies of a library into its soname.
|
||||
|
||||
* Look again at a binary C libtool, or byte-compiled libtool to improve
|
||||
speed.
|
||||
|
||||
* Generate some "platform specific" shell functions with config.status,
|
||||
for example, there is no need to have the C source code for the
|
||||
wrapper script on non-windows platforms, this will make the generated
|
||||
libtool script smaller and easier to follow, maybe a little faster
|
||||
too?
|
||||
|
||||
* Audit the GCJ tag section in libtool.m4.
|
||||
|
||||
* Add caching mechanism. Look at 'libtool-cache' from Robert Ögren.
|
||||
|
||||
|
||||
2.4. libtool autoconf macros
|
||||
----------------------------
|
||||
|
||||
* Sort out the macro mess in libtool.m4. We've started this already
|
||||
by refactoring chunks into separate files, but I never did completely
|
||||
untangle the mess of macros imported from ltconfig.
|
||||
|
||||
* The definitions for LT_SYS_MODULE_EXT, LT_SYS_MODULE_PATH and
|
||||
LT_SYS_DLSEARCH_PATH should not rely on the _LT_SYS_DYNAMIC_LINKER
|
||||
macro. This involves moving the code that sets the variables
|
||||
library_names_spec, shlibpath_var and sys_lib_dlsearch_path_spec from
|
||||
into a separate macro, and AC_REQUIRING the newly extracted macro in the
|
||||
respective ltdl.m4 macros.
|
||||
|
||||
2.5. libtool automake integration
|
||||
---------------------------------
|
||||
|
||||
* Unify locks between libtool and compile.
|
||||
|
||||
* Fix relinking.
|
||||
|
||||
2.6. libltdl
|
||||
------------
|
||||
|
||||
* Finish the rewrite of the core libltdl. The loaders are fine, and
|
||||
the outlying code is now good. Ralf is starting to pick away at a lot
|
||||
of the remaining nasties already, but the code for finding .la/.so files
|
||||
and reading/loading them could use a lot more improvement.
|
||||
|
||||
* I think we could factor out a little path management support module
|
||||
from existing libltdl. This would be useful for M4 at least -- keeping
|
||||
track of FOO_PATH environment contents, searching for files in paths
|
||||
etc.
|
||||
|
||||
* Try to find a work-around for -[all-]static and libltdl on platforms
|
||||
that will fail to find dlopening functions in this case. Maybe
|
||||
creating an alternate libltdl that provides only for dlpreopening, or
|
||||
creating an additional static library to provide dummy implementations
|
||||
of the functions that can't be linked statically. This could hardly
|
||||
be made completely transparent, though.
|
||||
|
||||
* In conjunction with above, fix the failures on *BSD when linked to
|
||||
static libc. Reported by Guilhem Lavaux <guilhem@kaffe.org>.
|
||||
|
||||
* Add i18n strings to libltdl, ensuring that package developers can
|
||||
ignore any i18n when they libtoolize.
|
||||
|
||||
2.7. win32 support
|
||||
------------------
|
||||
|
||||
* Arrange that EXEEXT suffixes are stripped from wrapper script names
|
||||
only when needed, and that a timestamp file or a wrapper program is
|
||||
created with the EXEEXT suffix, so that 'make' doesn't build it every
|
||||
time.
|
||||
|
||||
* Figure out how to use data items in dlls with win32.
|
||||
The difficult part is compiling each object that will be linked with an
|
||||
import lib differently than if it will be linked with a static lib. This
|
||||
will almost definitely require that automake pass some hints about linkage
|
||||
in to each object compilation line.
|
||||
|
||||
* jeffdb@goodnet.com writes:
|
||||
all you need to do for mutually dependent .dll's is to create an implib from
|
||||
a .def file so it appears that we might need to detect and handle mutual
|
||||
dependencies specially on win32 =(O|
|
||||
|
||||
* QoI for file name and path conversion functions. Currently, these are
|
||||
implemented as MxN different functions; this has quadratic complexity. If
|
||||
possible, it would be preferred to implement then as M+N functions. However:
|
||||
http://lists.gnu.org/archive/html/libtool-patches/2010-08/msg00224.html
|
||||
The main issue is you don't know what the "native" (e.g. "central")
|
||||
path-type is; e.g. "from-X (to what?)" and "(from what?) to-Y". Right
|
||||
now there are only four "platforms" involved: *nix, mingw, msys, and
|
||||
cygwin. That's actually the break-even point, given the vagaries and
|
||||
optimizations involved in these particular four platforms.
|
||||
|
||||
We have exactly five basic file name conversion functions (not counting
|
||||
the wrappers that handle paths). For a non-quadratic M+N (from-X|to-Y)
|
||||
solution, we'd need, I think, the same number of conversion functions: brute
|
||||
force suggests nine (four to_*, four from_*, plus the noop), but then many
|
||||
of the from_* and to_* would actually BE noop.
|
||||
|
||||
I'm assuming here that the "central" path-type is implicitly some sort of
|
||||
unixish -- maybe cyg, maybe msys, maybe unix -- path-type. The issue is
|
||||
that each of the five conversion functions use a different TOOL to perform
|
||||
the conversion, with different syntax. So, trying to combine, e.g.
|
||||
msys_to_mingw
|
||||
cygwin_to_mingw
|
||||
unix_to_mingw
|
||||
into an all-encompassing "central_unixish_to_mingw" would require additional
|
||||
m4 magic to basically replace the guts depending on whether $build was msys,
|
||||
cygwin, or unix. Worse, you can't really do a set of
|
||||
{msys|cygwin|unix}_to_central_unixish that isn't simply a no-op -- because
|
||||
(A) they already are all unixish, and (B) what tool would you use? How would
|
||||
the later to_mingw function "know" how to covert this new representation to
|
||||
mingw. So, {msys|cygwin|unix}_to_central_unixish would simply be a no-op
|
||||
and central_unixish_to_mingw would still do all the work (with its guts
|
||||
customized based on $build).
|
||||
|
||||
For more reasonable cross environments (e.g. linux-gnu->some_embedded) I
|
||||
think you could probably work out a general M+N scheme, since most embedded
|
||||
$hosts aren't as strange as the win32 variants -- even VxWorks and INTEGRITY
|
||||
have basic, unix-like file systems (although INTEGRITY does have multiple
|
||||
roots). Aggressive use of the m4 function_replace machinery WOULD be
|
||||
appropriate for /these/ conversion functions. OTOH...(a) you can't run the
|
||||
$host apps on $build anyway, in these embedded situations. At best you'd use
|
||||
$TARGETSHELL and "run" them via a remote connection, and (b) they don't use
|
||||
the C wrapper!
|
||||
|
||||
So...I don't think it makes much difference *right now* in the amount of
|
||||
code required, or the number of functions implemented. At some point in the
|
||||
future we might want to generalize to an M+N scheme. For the existing win32
|
||||
$hosts, all of the funtionality would be on "one side" of the 2-step
|
||||
conversion; the "other side" would be noop. But we won't worry about the
|
||||
implicit quadratic complexity of the existing scheme for now.
|
||||
|
||||
3. Wish List
|
||||
============
|
||||
|
||||
* Maybe implement full support for other orthogonal library types
|
||||
(libhello_g, libhello_p, 64 vs 32-bit ABI's, etc). Make these types
|
||||
configurable.
|
||||
|
||||
* Perhaps the use of libltdl could be made cleaner by allowing
|
||||
registration of hook functions to call at various points. This would
|
||||
hopefully free the user from having to maintain a parallel module
|
||||
list with user data. This would likely involve being able to carry
|
||||
additional per user module data in the lt_dlmodule structure -- perhaps
|
||||
in the form of an associative array keyed by user name?
|
||||
|
||||
* Figure out how to make pkg-config aware of the information libtool
|
||||
knows about libraries and their dependencies, and send a patch.
|
||||
|
||||
* Generate a libtool.m4 from a bunch of individual files, one per
|
||||
platform, to make the job of a "platform maintainer" easier and make
|
||||
it easier to add new platforms.
|
||||
|
||||
--
|
||||
Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free Software
|
||||
Foundation, Inc.
|
||||
Written by Gary V. Vaughan, 2004
|
||||
|
||||
This file is part of GNU Libtool.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. This file is offered as-is,
|
||||
without warranty of any kind.
|
||||
|
||||
Local Variables:
|
||||
mode: text
|
||||
fill-column: 72
|
||||
End:
|
||||
1148
BUILD/libtool-2.4.7/aclocal.m4
vendored
Normal file
1148
BUILD/libtool-2.4.7/aclocal.m4
vendored
Normal file
File diff suppressed because it is too large
Load Diff
33382
BUILD/libtool-2.4.7/autom4te.cache/output.0
Normal file
33382
BUILD/libtool-2.4.7/autom4te.cache/output.0
Normal file
File diff suppressed because it is too large
Load Diff
33382
BUILD/libtool-2.4.7/autom4te.cache/output.1
Normal file
33382
BUILD/libtool-2.4.7/autom4te.cache/output.1
Normal file
File diff suppressed because it is too large
Load Diff
346
BUILD/libtool-2.4.7/autom4te.cache/requests
Normal file
346
BUILD/libtool-2.4.7/autom4te.cache/requests
Normal file
@ -0,0 +1,346 @@
|
||||
# This file was generated by Autom4te Tue Apr 9 10:00:21 UTC 2024.
|
||||
# It contains the lists of macros which have been traced.
|
||||
# It can be safely removed.
|
||||
|
||||
@request = (
|
||||
bless( [
|
||||
'0',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'-',
|
||||
'/usr/share/aclocal-1.16/internal/ac-config-macro-dirs.m4',
|
||||
'/usr/share/aclocal-1.16/amversion.m4',
|
||||
'/usr/share/aclocal-1.16/auxdir.m4',
|
||||
'/usr/share/aclocal-1.16/cond.m4',
|
||||
'/usr/share/aclocal-1.16/depend.m4',
|
||||
'/usr/share/aclocal-1.16/depout.m4',
|
||||
'/usr/share/aclocal-1.16/init.m4',
|
||||
'/usr/share/aclocal-1.16/install-sh.m4',
|
||||
'/usr/share/aclocal-1.16/lead-dot.m4',
|
||||
'/usr/share/aclocal-1.16/make.m4',
|
||||
'/usr/share/aclocal-1.16/missing.m4',
|
||||
'/usr/share/aclocal-1.16/options.m4',
|
||||
'/usr/share/aclocal-1.16/prog-cc-c-o.m4',
|
||||
'/usr/share/aclocal-1.16/runlog.m4',
|
||||
'/usr/share/aclocal-1.16/sanity.m4',
|
||||
'/usr/share/aclocal-1.16/silent.m4',
|
||||
'/usr/share/aclocal-1.16/strip.m4',
|
||||
'/usr/share/aclocal-1.16/substnot.m4',
|
||||
'/usr/share/aclocal-1.16/tar.m4',
|
||||
'm4/00gnulib.m4',
|
||||
'm4/autobuild.m4',
|
||||
'm4/gnulib-common.m4',
|
||||
'm4/gnulib-comp.m4',
|
||||
'm4/libtool.m4',
|
||||
'm4/ltargz.m4',
|
||||
'm4/ltdl.m4',
|
||||
'm4/ltoptions.m4',
|
||||
'm4/ltsugar.m4',
|
||||
'm4/ltversion.m4',
|
||||
'm4/lt~obsolete.m4',
|
||||
'm4/m4.m4',
|
||||
'm4/zzgnulib.m4',
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'_LT_PROG_F77' => 1,
|
||||
'AC_LTDL_SHLIBEXT' => 1,
|
||||
'LT_AC_PROG_RC' => 1,
|
||||
'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
|
||||
'LTDL_INIT' => 1,
|
||||
'AC_DISABLE_STATIC' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'gl_ASSERT_NO_GNULIB_TESTS' => 1,
|
||||
'_AM_SET_OPTION' => 1,
|
||||
'_LT_LINKER_OPTION' => 1,
|
||||
'AC_LIBTOOL_CXX' => 1,
|
||||
'gl_CXX_ALLOW_WARNINGS' => 1,
|
||||
'AM_PROG_LIBTOOL' => 1,
|
||||
'AC_LIBLTDL_CONVENIENCE' => 1,
|
||||
'AC_PROG_NM' => 1,
|
||||
'_LT_COMPILER_OPTION' => 1,
|
||||
'AC_LIBTOOL_DLOPEN_SELF' => 1,
|
||||
'LT_FUNC_DLSYM_USCORE' => 1,
|
||||
'_LT_AC_FILE_LTDLL_C' => 1,
|
||||
'_LT_PATH_TOOL_PREFIX' => 1,
|
||||
'LT_LIB_DLLOAD' => 1,
|
||||
'm4_include' => 1,
|
||||
'AC_LIBTOOL_CONFIG' => 1,
|
||||
'AC_CONFIG_MACRO_DIR_TRACE' => 1,
|
||||
'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
|
||||
'GL_EARLY' => 1,
|
||||
'AC_LTDL_SYMBOL_USCORE' => 1,
|
||||
'GL_LIBOBJ' => 1,
|
||||
'AC_DEFUN' => 1,
|
||||
'AM_MAKE_INCLUDE' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
|
||||
'AC_CHECK_LIBM' => 1,
|
||||
'AM_DISABLE_STATIC' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'_LT_LIBOBJ' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'AC_CONFIG_MACRO_DIR' => 1,
|
||||
'LT_FUNC_ARGZ' => 1,
|
||||
'gl_PROG_CC_C99' => 1,
|
||||
'_LT_PROG_CXX' => 1,
|
||||
'gl_COMPILER_PREPARE_CHECK_DECL' => 1,
|
||||
'_GL_MDA_DEFINES' => 1,
|
||||
'AC_DEFUN_ONCE' => 1,
|
||||
'gl_COMMON' => 1,
|
||||
'AC_LIB_LTDL' => 1,
|
||||
'_LT_WITH_SYSROOT' => 1,
|
||||
'_LT_PROG_FC' => 1,
|
||||
'AC_LIBTOOL_LINKER_OPTION' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'gl_FEATURES_H' => 1,
|
||||
'GL_REPLACE_FUNCS' => 1,
|
||||
'LTOPTIONS_VERSION' => 1,
|
||||
'LT_OUTPUT' => 1,
|
||||
'_AM_CONFIG_MACRO_DIRS' => 1,
|
||||
'AM_PROG_NM' => 1,
|
||||
'GL_FILE_LIST' => 1,
|
||||
'AM_SET_LEADING_DOT' => 1,
|
||||
'AM_PROG_LD' => 1,
|
||||
'_LT_AC_LANG_F77' => 1,
|
||||
'AC_LTDL_PREOPEN' => 1,
|
||||
'LTSUGAR_VERSION' => 1,
|
||||
'AC_C_RESTRICT' => 1,
|
||||
'AC_LIBTOOL_SETUP' => 1,
|
||||
'gl_ZZGNULIB' => 1,
|
||||
'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'_LT_AC_CHECK_DLFCN' => 1,
|
||||
'_LT_AC_TAGVAR' => 1,
|
||||
'_LT_REQUIRED_DARWIN_CHECKS' => 1,
|
||||
'_LT_AC_LANG_CXX_CONFIG' => 1,
|
||||
'_LT_AC_TRY_DLOPEN_SELF' => 1,
|
||||
'LTDL_CONVENIENCE' => 1,
|
||||
'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
|
||||
'AC_LTDL_SHLIBPATH' => 1,
|
||||
'gl_CACHE_VAL_SILENT' => 1,
|
||||
'_LT_AC_LANG_CXX' => 1,
|
||||
'AC_PATH_MAGIC' => 1,
|
||||
'AC_LIBTOOL_WIN32_DLL' => 1,
|
||||
'gl_PROG_AR_RANLIB' => 1,
|
||||
'gl_00GNULIB' => 1,
|
||||
'AC_LIBTOOL_GCJ' => 1,
|
||||
'_LT_AC_LANG_F77_CONFIG' => 1,
|
||||
'_LT_PROG_ECHO_BACKSLASH' => 1,
|
||||
'AC_DISABLE_FAST_INSTALL' => 1,
|
||||
'_AC_AM_CONFIG_HEADER_HOOK' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'LT_SYS_DLOPEN_SELF' => 1,
|
||||
'include' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
|
||||
'AM_RUN_LOG' => 1,
|
||||
'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
|
||||
'gl_CONDITIONAL_HEADER' => 1,
|
||||
'gl_W' => 1,
|
||||
'AM_SUBST_NOTMAKE' => 1,
|
||||
'_LT_AC_LANG_GCJ' => 1,
|
||||
'_LT_DLL_DEF_P' => 1,
|
||||
'AC_LIBTOOL_OBJDIR' => 1,
|
||||
'AC_PROG_LD' => 1,
|
||||
'AC_LIBTOOL_DLOPEN' => 1,
|
||||
'gl_SILENT' => 1,
|
||||
'AM_AUX_DIR_EXPAND' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
|
||||
'AC_PROG_LD_GNU' => 1,
|
||||
'gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'GL_LIBSOURCES' => 1,
|
||||
'gl_ASSERT_NO_GNULIB_POSIXCHECK' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'AM_PROG_INSTALL_SH' => 1,
|
||||
'_LT_AC_LANG_GCJ_CONFIG' => 1,
|
||||
'gl_CC_ALLOW_WARNINGS' => 1,
|
||||
'AC_ENABLE_SHARED' => 1,
|
||||
'AU_DEFUN' => 1,
|
||||
'gl_CC_GNULIB_WARNINGS' => 1,
|
||||
'GL_MDA_DEFINES' => 1,
|
||||
'AC_LTDL_OBJDIR' => 1,
|
||||
'AC_PROG_GNU_M4' => 1,
|
||||
'AC_LIBTOOL_LANG_C_CONFIG' => 1,
|
||||
'_LT_CC_BASENAME' => 1,
|
||||
'LT_PROG_GCJ' => 1,
|
||||
'LT_WITH_LTDL' => 1,
|
||||
'_AM_IF_OPTION' => 1,
|
||||
'gl_MODULE_INDICATOR_INIT_VARIABLE' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'_LT_AC_SYS_COMPILER' => 1,
|
||||
'LT_AC_PROG_SED' => 1,
|
||||
'_AC_PROG_LIBTOOL' => 1,
|
||||
'gl_BIGENDIAN' => 1,
|
||||
'AC_LTDL_DLLIB' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
|
||||
'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
|
||||
'LTVERSION_VERSION' => 1,
|
||||
'AM_ENABLE_STATIC' => 1,
|
||||
'_LT_AC_PROG_ECHO_BACKSLASH' => 1,
|
||||
'gl_MODULE_INDICATOR_FOR_TESTS' => 1,
|
||||
'AC_DISABLE_SHARED' => 1,
|
||||
'LT_CMD_MAX_LEN' => 1,
|
||||
'_AM_MANGLE_OPTION' => 1,
|
||||
'AC_ENABLE_FAST_INSTALL' => 1,
|
||||
'_LT_AC_LANG_RC_CONFIG' => 1,
|
||||
'_AM_SET_OPTIONS' => 1,
|
||||
'AC_LIBLTDL_INSTALLABLE' => 1,
|
||||
'GLtests_LIBOBJ' => 1,
|
||||
'LTOBSOLETE_VERSION' => 1,
|
||||
'_LTDL_SETUP' => 1,
|
||||
'_LT_LINKER_BOILERPLATE' => 1,
|
||||
'_LT_AC_LANG_C_CONFIG' => 1,
|
||||
'AM_SANITY_CHECK' => 1,
|
||||
'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
|
||||
'AM_ENABLE_SHARED' => 1,
|
||||
'AC_LIBTOOL_PROG_CC_C_O' => 1,
|
||||
'AC_DEPLIBS_CHECK_METHOD' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'LT_PATH_LD' => 1,
|
||||
'_LT_AC_LOCK' => 1,
|
||||
'LT_LIB_M' => 1,
|
||||
'AC_LTDL_SYSSEARCHPATH' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'LT_SYS_DLSEARCH_PATH' => 1,
|
||||
'AC_PROG_LD_RELOAD_FLAG' => 1,
|
||||
'AC_PROG_EGREP' => 1,
|
||||
'_AM_DEPENDENCIES' => 1,
|
||||
'LT_SYS_MODULE_PATH' => 1,
|
||||
'AC_LIBTOOL_F77' => 1,
|
||||
'_AM_AUTOCONF_VERSION' => 1,
|
||||
'AC_ENABLE_STATIC' => 1,
|
||||
'AC_PATH_TOOL_PREFIX' => 1,
|
||||
'_LT_PROG_LTMAIN' => 1,
|
||||
'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
|
||||
'LT_PROG_GO' => 1,
|
||||
'GLtests_LIBSOURCES' => 1,
|
||||
'AB_INIT' => 1,
|
||||
'AM_DISABLE_SHARED' => 1,
|
||||
'LT_AC_PROG_GCJ' => 1,
|
||||
'_AM_PROG_CC_C_O' => 1,
|
||||
'_LT_AC_SHELL_INIT' => 1,
|
||||
'_LT_AC_SYS_LIBPATH_AIX' => 1,
|
||||
'AM_SET_DEPDIR' => 1,
|
||||
'gl_MODULE_INDICATOR' => 1,
|
||||
'GL_INIT' => 1,
|
||||
'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
|
||||
'LT_SYS_MODULE_EXT' => 1,
|
||||
'_LT_PREPARE_SED_QUOTE_VARS' => 1,
|
||||
'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
|
||||
'AC_LTDL_ENABLE_INSTALL' => 1,
|
||||
'LT_LANG' => 1,
|
||||
'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'LT_AC_PROG_EGREP' => 1,
|
||||
'AC_LIBTOOL_COMPILER_OPTION' => 1,
|
||||
'_AM_PROG_TAR' => 1,
|
||||
'LT_SYS_SYMBOL_USCORE' => 1,
|
||||
'_LT_COMPILER_BOILERPLATE' => 1,
|
||||
'LT_PATH_NM' => 1,
|
||||
'_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'AC_WITH_LTDL' => 1,
|
||||
'gl_COMPILER_CLANG' => 1,
|
||||
'LT_SYS_DLOPEN_DEPLIBS' => 1,
|
||||
'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
|
||||
'gl_CONDITIONAL' => 1,
|
||||
'gl_MODULE_INDICATOR_SET_VARIABLE' => 1,
|
||||
'_LT_AC_PROG_CXXCPP' => 1,
|
||||
'gl_COMMON_BODY' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AC_LIBTOOL_FC' => 1,
|
||||
'AC_LIBTOOL_RC' => 1,
|
||||
'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
|
||||
'AM_MISSING_HAS_RUN' => 1,
|
||||
'AC_LTDL_DLSYM_USCORE' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
|
||||
'GLtests_REPLACE_FUNCS' => 1,
|
||||
'AM_DEP_TRACK' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'AM_PROG_INSTALL_STRIP' => 1,
|
||||
'LT_PROG_RC' => 1,
|
||||
'AM_MISSING_PROG' => 1,
|
||||
'LTDL_INSTALLABLE' => 1,
|
||||
'AC_LIBTOOL_PICMODE' => 1,
|
||||
'gl_MODULE_INDICATOR_SET_VARIABLE_AUX' => 1
|
||||
}
|
||||
], 'Autom4te::Request' ),
|
||||
bless( [
|
||||
'1',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'aclocal.m4',
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AM_PROG_AR' => 1,
|
||||
'AC_FC_PP_DEFINE' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'AC_REQUIRE_AUX_FILE' => 1,
|
||||
'AC_SUBST_TRACE' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'AM_PATH_GUILE' => 1,
|
||||
'AC_FC_SRCEXT' => 1,
|
||||
'AM_ENABLE_MULTILIB' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AM_PROG_LIBTOOL' => 1,
|
||||
'AM_XGETTEXT_OPTION' => 1,
|
||||
'_AM_COND_ENDIF' => 1,
|
||||
'AM_PROG_CXX_C_O' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'AM_EXTRA_RECURSIVE_TARGETS' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'include' => 1,
|
||||
'm4_include' => 1,
|
||||
'AC_FC_FREEFORM' => 1,
|
||||
'_AM_COND_ELSE' => 1,
|
||||
'AM_PROG_MKDIR_P' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AC_SUBST' => 1,
|
||||
'_AM_COND_IF' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'AM_PROG_FC_C_O' => 1,
|
||||
'AC_FC_PP_SRCEXT' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'AM_PROG_MOC' => 1,
|
||||
'sinclude' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'AM_NLS' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'AM_PROG_F77_C_O' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'_AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AM_POT_TOOLS' => 1,
|
||||
'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
|
||||
'AC_CANONICAL_TARGET' => 1,
|
||||
'AC_CANONICAL_BUILD' => 1
|
||||
}
|
||||
], 'Autom4te::Request' )
|
||||
);
|
||||
|
||||
4267
BUILD/libtool-2.4.7/autom4te.cache/traces.0
Normal file
4267
BUILD/libtool-2.4.7/autom4te.cache/traces.0
Normal file
File diff suppressed because it is too large
Load Diff
1493
BUILD/libtool-2.4.7/autom4te.cache/traces.1
Normal file
1493
BUILD/libtool-2.4.7/autom4te.cache/traces.1
Normal file
File diff suppressed because it is too large
Load Diff
5470
BUILD/libtool-2.4.7/bootstrap
Executable file
5470
BUILD/libtool-2.4.7/bootstrap
Executable file
File diff suppressed because it is too large
Load Diff
408
BUILD/libtool-2.4.7/bootstrap.conf
Normal file
408
BUILD/libtool-2.4.7/bootstrap.conf
Normal file
@ -0,0 +1,408 @@
|
||||
# bootstrap.conf (GNU Libtool) version 2014-11-18
|
||||
#
|
||||
# Copyright (C) 2010-2019, 2021-2022 Free Software Foundation, Inc.
|
||||
# Written by Gary V. Vaughan, 2010
|
||||
|
||||
# This is free software; see the source for copying conditions. There is NO
|
||||
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
#
|
||||
# GNU Libtool 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.
|
||||
#
|
||||
# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
|
||||
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
|
||||
# or obtained by writing to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
|
||||
## -------------------------------- ##
|
||||
## User overrideable command paths. ##
|
||||
## -------------------------------- ##
|
||||
|
||||
: "${MAKE=make}"
|
||||
|
||||
export MAKE
|
||||
|
||||
|
||||
|
||||
## -------------- ##
|
||||
## Configuration. ##
|
||||
## -------------- ##
|
||||
|
||||
# File that should exist in the top directory of a checked out hierarchy,
|
||||
# but not in a distribution tarball.
|
||||
checkout_only_file=HACKING
|
||||
|
||||
# List of programs (and minimum versions) required to bootstrap, maintain
|
||||
# and release Libtool.
|
||||
buildreq="
|
||||
help2man 1.29 http://www.gnu.org/s/help2man
|
||||
make 3.81 http://www.gnu.org/s/make
|
||||
makeinfo 4.8 http://www.gnu.org/s/texinfo
|
||||
xz 4.999.8beta http://tukaani.org/xz
|
||||
"
|
||||
|
||||
# Instructions on how to install packages in $buildreq.
|
||||
buildreq_readme=HACKING
|
||||
|
||||
# Non-default gnulib directories.
|
||||
local_gl_path=gl:gl-mod/bootstrap
|
||||
|
||||
# We don't need the whole copy of gnulib.
|
||||
gnulib_clone_since=2019-02-19
|
||||
|
||||
# Additional gnulib-tool options to use.
|
||||
gnulib_tool_options=$gnulib_tool_options"
|
||||
--avoid=dummy
|
||||
--libtool
|
||||
--macro-prefix=GL
|
||||
--with-tests --tests-base=gnulib-tests
|
||||
"
|
||||
|
||||
# gnulib modules used by this package.
|
||||
gnulib_modules='
|
||||
announce-gen
|
||||
bootstrap
|
||||
do-release-commit-and-tag
|
||||
extract-trace
|
||||
gendocs
|
||||
git-version-gen
|
||||
gitlog-to-changelog
|
||||
gnu-web-doc-update
|
||||
gnupload
|
||||
inline-source
|
||||
maintainer-makefile
|
||||
options-parser
|
||||
readme-release
|
||||
update-copyright
|
||||
'
|
||||
|
||||
gnulib_git_submodules='
|
||||
gl-mod/bootstrap
|
||||
'
|
||||
|
||||
# Extra gnulib files that are not in modules, which override files of
|
||||
# the same name installed by other bootstrap tools.
|
||||
gnulib_non_module_files=$gnulib_non_module_files'
|
||||
doc/COPYINGv2
|
||||
doc/fdl.texi
|
||||
'
|
||||
|
||||
# What ignore files to maintain.
|
||||
vc_ignore=.gitignore
|
||||
|
||||
# Running the installed 'libtoolize' will trash the local (newer) libtool.m4
|
||||
# among others. Don't use ':', since autoreconf can't exec it!
|
||||
LIBTOOLIZE=true
|
||||
|
||||
# List of file droppings from old releases of Libtool.
|
||||
libtool_obsolete_files="
|
||||
acinclude.m4
|
||||
argz.c
|
||||
libltdl/config.h
|
||||
lt__dirent.c
|
||||
lt__strl.c
|
||||
"
|
||||
|
||||
|
||||
## ------------------- ##
|
||||
## Override functions. ##
|
||||
## ------------------- ##
|
||||
|
||||
# func_autopoint
|
||||
# --------------
|
||||
# Libtool does not use autopoint.
|
||||
func_autopoint ()
|
||||
{
|
||||
$debug_cmd
|
||||
}
|
||||
|
||||
|
||||
# func_libtoolize
|
||||
# ---------------
|
||||
# Libtoolize is part of Libtool!
|
||||
func_libtoolize ()
|
||||
{
|
||||
$debug_cmd
|
||||
}
|
||||
|
||||
|
||||
|
||||
## ---------------------------- ##
|
||||
## Libtool bootstrap functions. ##
|
||||
## ---------------------------- ##
|
||||
|
||||
# libtool_prep
|
||||
# ------------
|
||||
# Libtool bootstrap initialisation after successful option parse and
|
||||
# validation.
|
||||
libtool_prep ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
# initial clean-up of checked out tree
|
||||
find . -depth \( -name autom4te.cache -o -name libtool \) -print \
|
||||
| grep -v '{arch}' \
|
||||
| xargs rm -rf
|
||||
|
||||
# remove obsolete file droppings from old Libtool versions
|
||||
for file in $libtool_obsolete_files; do
|
||||
rm -f $file
|
||||
done
|
||||
}
|
||||
func_add_hook func_prep libtool_prep
|
||||
|
||||
|
||||
# libtool_add_libltdl_copying
|
||||
# ---------------------------
|
||||
# Use the canonical COPYING.LESSERv2 from gnulib.
|
||||
libtool_add_libltdl_copying ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
func_gnulib_tool_copy_file doc/COPYING.LESSERv2 libltdl/COPYING.LIB
|
||||
}
|
||||
func_add_hook func_gnulib_tool libtool_add_libltdl_copying
|
||||
|
||||
|
||||
# libtool_build_prerequisites
|
||||
# ---------------------------
|
||||
# Libtool generates some files that are required before any autotools
|
||||
# can be run successfully.
|
||||
libtool_build_prerequisites ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
$require_build_aux
|
||||
$require_ltdl_dir
|
||||
$require_macro_dir
|
||||
$require_package
|
||||
$require_package_bugreport
|
||||
$require_package_name
|
||||
$require_package_url
|
||||
$require_package_version
|
||||
|
||||
# Whip up a dirty Makefile:
|
||||
makes='Makefile.am libltdl/ltdl.mk'
|
||||
rm -f Makefile
|
||||
{
|
||||
echo "aux_dir = $build_aux"
|
||||
echo "ltdl_dir = $ltdl_dir"
|
||||
echo "macro_dir = $macro_dir"
|
||||
|
||||
# The following allow us to tie bootstrap-deps output verbosity
|
||||
# into the bootstrap --verbose option:
|
||||
echo 'AM_V_GEN = $(am__v_GEN_$(V))'
|
||||
echo 'am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))'
|
||||
echo 'am__v_GEN_0 = @echo " GEN " $@;'
|
||||
echo 'AM_V_at = $(am__v_at_$(V))'
|
||||
echo 'am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))'
|
||||
echo 'am__v_at_0 = @'
|
||||
|
||||
$SED '/^if /,/^endif$/d;/^else$/,/^endif$/d;/^include /d' $makes
|
||||
} > Makefile
|
||||
|
||||
# Building distributed files from configure is bad for automake, so we
|
||||
# generate them here, and have Makefile rules to keep them up to date.
|
||||
func_show_eval "$MAKE bootstrap-deps \
|
||||
AM_DEFAULT_VERBOSITY=0 `$opt_verbose && echo V=1` \
|
||||
PACKAGE='$package' PACKAGE_BUGREPORT='$package_bugreport' \
|
||||
PACKAGE_NAME='$package_name' PACKAGE_URL='$package_url' \
|
||||
SED='$SED' srcdir=. VERSION='$package_version'"
|
||||
status=$?
|
||||
|
||||
rm -f Makefile
|
||||
test 0 -eq "$status" ||exit $EXIT_FAILURE
|
||||
}
|
||||
func_add_hook func_gnulib_tool libtool_build_prerequisites
|
||||
|
||||
|
||||
# libtool_autoreconf_libltdl
|
||||
# --------------------------
|
||||
# Libtldl directory needs to be autoreconfed too.
|
||||
libtool_autoreconf_libltdl ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
# Also bootstrap libltdl ready for installation.
|
||||
func_autoreconf libltdl
|
||||
}
|
||||
func_add_hook func_reconfigure libtool_autoreconf_libltdl
|
||||
|
||||
|
||||
# libtool_readme_release_package_substitutions
|
||||
# --------------------------------------------
|
||||
# Show our own package details instead of generic strings.
|
||||
libtool_readme_release_package_substitutions ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
$require_build_aux
|
||||
$require_package
|
||||
|
||||
my_readme=README-release
|
||||
|
||||
test -f "$my_readme" \
|
||||
|| func_fatal_error "error: '$my_readme' does not exist"
|
||||
|
||||
# Perform substitutions to a temporary file
|
||||
$SED -e "\
|
||||
s|\@PACKAGE\@|$package|g
|
||||
" "$my_readme" > "${my_readme}T" \
|
||||
&& mv "${my_readme}T" "$my_readme"
|
||||
}
|
||||
func_add_hook func_fini libtool_readme_release_package_substitutions
|
||||
|
||||
|
||||
# libtool_fudge_timestamps
|
||||
# ------------------------
|
||||
# Autoheader valiantly tries to prevent needless reconfigurations by
|
||||
# not changing the timestamp of config-h.in unless the file contents
|
||||
# are updated. Unfortunately config-h.in depends on aclocal.m4, which
|
||||
# *is* updated, so running 'libtoolize --ltdl=. && configure && make'
|
||||
# causes autoheader to be called... undesireable for users that do not
|
||||
# have it! Fudge the timestamp to prevent that:
|
||||
libtool_fudge_timestamps ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
sleep 2 && touch libltdl/config-h.in
|
||||
}
|
||||
func_add_hook func_fini libtool_fudge_timestamps
|
||||
|
||||
|
||||
# libtool_cleanup
|
||||
# ---------------
|
||||
libtool_cleanup ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
# These files can cause an infinite configure loop if left behind.
|
||||
rm -f Makefile libltdl/Makefile libtool vcl.tmp
|
||||
}
|
||||
func_add_hook func_fini libtool_cleanup
|
||||
|
||||
|
||||
# libtool_check_for_bogus_macros
|
||||
# ------------------------------
|
||||
# Try to catch the case where 'aclocal' pulls installed libtool macro
|
||||
# file contents from another version of libtool into the current package
|
||||
# 'aclocal.m4'.
|
||||
libtool_check_for_bogus_macros ()
|
||||
{
|
||||
$debug_cmd
|
||||
$require_build_aux
|
||||
$build_aux/no-bogus-m4-defines || exit 1
|
||||
}
|
||||
func_add_hook func_fini libtool_check_for_bogus_macros
|
||||
|
||||
|
||||
# libtool_cleanup_empty_dirs
|
||||
# --------------------------
|
||||
# Gnulib leaves behind a few files we don't need.
|
||||
libtool_cleanup_empty_dirs ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
my_gnulib_source=${source_base:-'lib'}
|
||||
|
||||
if test -d "$my_gnulib_source"; then
|
||||
rm -f "$my_gnulib_source/.gitignore" "$my_gnulib_source/Makefile.am" || exit 1
|
||||
rmdir "$my_gnulib_source" || exit 1
|
||||
fi
|
||||
}
|
||||
func_add_hook func_fini libtool_cleanup_empty_dirs
|
||||
|
||||
|
||||
|
||||
## -------------------- ##
|
||||
## Resource management. ##
|
||||
## -------------------- ##
|
||||
|
||||
# require_ltdl_dir
|
||||
# ----------------
|
||||
# Extract libtool's ltdl directory from configure.ac.
|
||||
require_ltdl_dir=func_require_ltdl_dir
|
||||
func_require_ltdl_dir ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
$require_configure_ac
|
||||
|
||||
func_extract_trace LT_CONFIG_LTDL_DIR
|
||||
|
||||
save_ifs=$IFS
|
||||
IFS=:
|
||||
set dummy $func_extract_trace_result
|
||||
IFS=$save_ifs
|
||||
shift
|
||||
|
||||
ltdl_dir=$1
|
||||
func_check_configuration ltdl_dir \
|
||||
"LT_CONFIG_LTDL_DIR([name of your libltdl directory])"
|
||||
|
||||
func_verbose "ltdl_dir='$ltdl_dir'"
|
||||
|
||||
require_ltdl_dir=:
|
||||
}
|
||||
|
||||
|
||||
# require_package_url
|
||||
# -------------------
|
||||
# Ensure that package_url has a sensible default.
|
||||
require_package_url=libtool_require_package_url
|
||||
libtool_require_package_url ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
$require_configure_ac
|
||||
|
||||
func_extract_trace AC_INIT
|
||||
|
||||
save_IFS=$IFS
|
||||
IFS=:
|
||||
set dummy $func_extract_trace_result
|
||||
IFS=$save_IFS
|
||||
shift
|
||||
|
||||
test -n "$package_url " || package_url=$5
|
||||
test -n "$package_url" || {
|
||||
# How to extract the parameters for 'make bootstrap-deps' from
|
||||
# configure.ac. This is very specific to the way Libtool's
|
||||
# configure.ac layout.
|
||||
sed_extract_package_url='s|#.*$||; s|^dnl .*$||; s| dnl .*$||;
|
||||
/AC_SUBST([[]*PACKAGE_URL/{
|
||||
s|.*AC_SUBST([[ ]*PACKAGE_URL[] ]*,[[ ]*|package_url="|
|
||||
s|[]) ]*$|"|
|
||||
p
|
||||
}'
|
||||
|
||||
# Extract package_url setting from configure.ac.
|
||||
eval `$SED -n "$sed_extract_package_url" < configure.ac`
|
||||
}
|
||||
|
||||
test -n "$package_url" \
|
||||
|| func_fatal_error "unable to determine 'package_url' from '$configure_ac'."
|
||||
|
||||
func_verbose "package_url='$package_url'"
|
||||
|
||||
require_package_url=:
|
||||
}
|
||||
|
||||
|
||||
# Local variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "# bootstrap.conf (GNU Libtool) version "
|
||||
# time-stamp-format: "%:y-%02m-%02d"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
||||
587
BUILD/libtool-2.4.7/build-aux/announce-gen
Executable file
587
BUILD/libtool-2.4.7/build-aux/announce-gen
Executable file
@ -0,0 +1,587 @@
|
||||
#!/bin/sh
|
||||
#! -*-perl-*-
|
||||
|
||||
# Generate a release announcement message.
|
||||
|
||||
# Copyright (C) 2002-2022 Free Software Foundation, Inc.
|
||||
#
|
||||
# This program 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 3 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Written by Jim Meyering
|
||||
|
||||
# This is a prologue that allows to run a perl script as an executable
|
||||
# on systems that are compliant to a POSIX version before POSIX:2017.
|
||||
# On such systems, the usual invocation of an executable through execlp()
|
||||
# or execvp() fails with ENOEXEC if it is a script that does not start
|
||||
# with a #! line. The script interpreter mentioned in the #! line has
|
||||
# to be /bin/sh, because on GuixSD systems that is the only program that
|
||||
# has a fixed file name. The second line is essential for perl and is
|
||||
# also useful for editing this file in Emacs. The next two lines below
|
||||
# are valid code in both sh and perl. When executed by sh, they re-execute
|
||||
# the script through the perl program found in $PATH. The '-x' option
|
||||
# is essential as well; without it, perl would re-execute the script
|
||||
# through /bin/sh. When executed by perl, the next two lines are a no-op.
|
||||
eval 'exec perl -wSx "$0" "$@"'
|
||||
if 0;
|
||||
|
||||
my $VERSION = '2022-01-27 18:48'; # UTC
|
||||
# The definition above must lie within the first 8 lines in order
|
||||
# for the Emacs time-stamp write hook (at end) to update it.
|
||||
# If you change this file with Emacs, please let the write hook
|
||||
# do its job. Otherwise, update this string manually.
|
||||
|
||||
my $copyright_year = '2022';
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use POSIX qw(strftime);
|
||||
|
||||
(my $ME = $0) =~ s|.*/||;
|
||||
|
||||
my %valid_release_types = map {$_ => 1} qw (alpha beta stable);
|
||||
my @archive_suffixes = qw (tar.gz tar.bz2 tar.lz tar.lzma tar.xz);
|
||||
my $srcdir = '.';
|
||||
|
||||
sub usage ($)
|
||||
{
|
||||
my ($exit_code) = @_;
|
||||
my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
|
||||
if ($exit_code != 0)
|
||||
{
|
||||
print $STREAM "Try '$ME --help' for more information.\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
my @types = sort keys %valid_release_types;
|
||||
print $STREAM <<EOF;
|
||||
Usage: $ME [OPTIONS]
|
||||
Generate an announcement message. Run this from builddir.
|
||||
|
||||
OPTIONS:
|
||||
|
||||
These options must be specified:
|
||||
|
||||
--release-type=TYPE TYPE must be one of @types
|
||||
--package-name=PACKAGE_NAME
|
||||
--previous-version=VER
|
||||
--current-version=VER
|
||||
--gpg-key-id=ID The GnuPG ID of the key used to sign the tarballs
|
||||
--url-directory=URL_DIR
|
||||
|
||||
The following are optional:
|
||||
|
||||
--news=NEWS_FILE include the NEWS section about this release
|
||||
from this NEWS_FILE; accumulates.
|
||||
--srcdir=DIR where to find the NEWS_FILEs (default: $srcdir)
|
||||
--bootstrap-tools=TOOL_LIST a comma-separated list of tools, e.g.,
|
||||
autoconf,automake,bison,gnulib
|
||||
--gnulib-version=VERSION report VERSION as the gnulib version, where
|
||||
VERSION is the result of running git describe
|
||||
in the gnulib source directory.
|
||||
required if gnulib is in TOOL_LIST.
|
||||
--no-print-checksums do not emit SHA1 or SHA256 checksums
|
||||
--archive-suffix=SUF add SUF to the list of archive suffixes
|
||||
--mail-headers=HEADERS a space-separated list of mail headers, e.g.,
|
||||
To: x\@example.com Cc: y-announce\@example.com,...
|
||||
|
||||
--help display this help and exit
|
||||
--version output version information and exit
|
||||
|
||||
EOF
|
||||
}
|
||||
exit $exit_code;
|
||||
}
|
||||
|
||||
|
||||
=item C<%size> = C<sizes (@file)>
|
||||
|
||||
Compute the sizes of the C<@file> and return them as a hash. Return
|
||||
C<undef> if one of the computation failed.
|
||||
|
||||
=cut
|
||||
|
||||
sub sizes (@)
|
||||
{
|
||||
my (@file) = @_;
|
||||
|
||||
my $fail = 0;
|
||||
my %res;
|
||||
foreach my $f (@file)
|
||||
{
|
||||
my $cmd = "du -h $f";
|
||||
my $t = `$cmd`;
|
||||
# FIXME-someday: give a better diagnostic, a la $PROCESS_STATUS
|
||||
$@
|
||||
and (warn "command failed: '$cmd'\n"), $fail = 1;
|
||||
chomp $t;
|
||||
$t =~ s/^\s*([\d.]+[MkK]).*/${1}B/;
|
||||
$res{$f} = $t;
|
||||
}
|
||||
return $fail ? undef : %res;
|
||||
}
|
||||
|
||||
=item C<print_locations ($title, \@url, \%size, @file)
|
||||
|
||||
Print a section C<$title> dedicated to the list of <@file>, which
|
||||
sizes are stored in C<%size>, and which are available from the C<@url>.
|
||||
|
||||
=cut
|
||||
|
||||
sub print_locations ($\@\%@)
|
||||
{
|
||||
my ($title, $url, $size, @file) = @_;
|
||||
print "Here are the $title:\n";
|
||||
foreach my $url (@{$url})
|
||||
{
|
||||
for my $file (@file)
|
||||
{
|
||||
print " $url/$file";
|
||||
print " (", $$size{$file}, ")"
|
||||
if exists $$size{$file};
|
||||
print "\n";
|
||||
}
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
|
||||
=item C<print_checksums (@file)
|
||||
|
||||
Print the SHA1 and SHA256 signature section for each C<@file>.
|
||||
|
||||
=cut
|
||||
|
||||
sub print_checksums (@)
|
||||
{
|
||||
my (@file) = @_;
|
||||
|
||||
print "Here are the SHA1 and SHA256 checksums:\n";
|
||||
print "\n";
|
||||
|
||||
use Digest::file qw(digest_file_hex digest_file_base64);
|
||||
|
||||
foreach my $f (@file)
|
||||
{
|
||||
print digest_file_hex($f, "SHA-1"), " $f\n";
|
||||
print digest_file_base64($f, "SHA-256"), " $f\n";
|
||||
}
|
||||
print "\nThe SHA256 checksum is base64 encoded, instead of the\n";
|
||||
print "hexadecimal encoding that most checksum tools default to.\n\n";
|
||||
}
|
||||
|
||||
=item C<print_news_deltas ($news_file, $prev_version, $curr_version)
|
||||
|
||||
Print the section of the NEWS file C<$news_file> addressing changes
|
||||
between versions C<$prev_version> and C<$curr_version>.
|
||||
|
||||
=cut
|
||||
|
||||
sub print_news_deltas ($$$)
|
||||
{
|
||||
my ($news_file, $prev_version, $curr_version) = @_;
|
||||
|
||||
my $news_name = $news_file;
|
||||
$news_name =~ s|^\Q$srcdir\E/||;
|
||||
|
||||
print "\n$news_name\n\n";
|
||||
|
||||
# Print all lines from $news_file, starting with the first one
|
||||
# that mentions $curr_version up to but not including
|
||||
# the first occurrence of $prev_version.
|
||||
my $in_items;
|
||||
|
||||
my $re_prefix = qr/(?:\* )?(?:Noteworthy c|Major c|C)(?i:hanges)/;
|
||||
|
||||
my $found_news;
|
||||
open NEWS, '<', $news_file
|
||||
or die "$ME: $news_file: cannot open for reading: $!\n";
|
||||
while (defined (my $line = <NEWS>))
|
||||
{
|
||||
if ( ! $in_items)
|
||||
{
|
||||
# Match lines like these:
|
||||
# * Major changes in release 5.0.1:
|
||||
# * Noteworthy changes in release 6.6 (2006-11-22) [stable]
|
||||
$line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$curr_version\E(?:[^\d.]|$)/o
|
||||
or next;
|
||||
$in_items = 1;
|
||||
print $line;
|
||||
}
|
||||
else
|
||||
{
|
||||
# This regexp must not match version numbers in NEWS items.
|
||||
# For example, they might well say "introduced in 4.5.5",
|
||||
# and we don't want that to match.
|
||||
$line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$prev_version\E(?:[^\d.]|$)/o
|
||||
and last;
|
||||
print $line;
|
||||
$line =~ /\S/
|
||||
and $found_news = 1;
|
||||
}
|
||||
}
|
||||
close NEWS;
|
||||
|
||||
$in_items
|
||||
or die "$ME: $news_file: no matching lines for '$curr_version'\n";
|
||||
$found_news
|
||||
or die "$ME: $news_file: no news item found for '$curr_version'\n";
|
||||
}
|
||||
|
||||
sub print_changelog_deltas ($$)
|
||||
{
|
||||
my ($package_name, $prev_version) = @_;
|
||||
|
||||
# Print new ChangeLog entries.
|
||||
|
||||
# First find all CVS-controlled ChangeLog files.
|
||||
use File::Find;
|
||||
my @changelog;
|
||||
find ({wanted => sub {$_ eq 'ChangeLog' && -d 'CVS'
|
||||
and push @changelog, $File::Find::name}},
|
||||
'.');
|
||||
|
||||
# If there are no ChangeLog files, we're done.
|
||||
@changelog
|
||||
or return;
|
||||
my %changelog = map {$_ => 1} @changelog;
|
||||
|
||||
# Reorder the list of files so that if there are ChangeLog
|
||||
# files in the specified directories, they're listed first,
|
||||
# in this order:
|
||||
my @dir = qw ( . src lib m4 config doc );
|
||||
|
||||
# A typical @changelog array might look like this:
|
||||
# ./ChangeLog
|
||||
# ./po/ChangeLog
|
||||
# ./m4/ChangeLog
|
||||
# ./lib/ChangeLog
|
||||
# ./doc/ChangeLog
|
||||
# ./config/ChangeLog
|
||||
my @reordered;
|
||||
foreach my $d (@dir)
|
||||
{
|
||||
my $dot_slash = $d eq '.' ? $d : "./$d";
|
||||
my $target = "$dot_slash/ChangeLog";
|
||||
delete $changelog{$target}
|
||||
and push @reordered, $target;
|
||||
}
|
||||
|
||||
# Append any remaining ChangeLog files.
|
||||
push @reordered, sort keys %changelog;
|
||||
|
||||
# Remove leading './'.
|
||||
@reordered = map { s!^\./!!; $_ } @reordered;
|
||||
|
||||
print "\nChangeLog entries:\n\n";
|
||||
# print join ("\n", @reordered), "\n";
|
||||
|
||||
$prev_version =~ s/\./_/g;
|
||||
my $prev_cvs_tag = "\U$package_name\E-$prev_version";
|
||||
|
||||
my $cmd = "cvs -n diff -u -r$prev_cvs_tag -rHEAD @reordered";
|
||||
open DIFF, '-|', $cmd
|
||||
or die "$ME: cannot run '$cmd': $!\n";
|
||||
# Print two types of lines, making minor changes:
|
||||
# Lines starting with '+++ ', e.g.,
|
||||
# +++ ChangeLog 22 Feb 2003 16:52:51 -0000 1.247
|
||||
# and those starting with '+'.
|
||||
# Don't print the others.
|
||||
my $prev_printed_line_empty = 1;
|
||||
while (defined (my $line = <DIFF>))
|
||||
{
|
||||
if ($line =~ /^\+\+\+ /)
|
||||
{
|
||||
my $separator = "*"x70 ."\n";
|
||||
$line =~ s///;
|
||||
$line =~ s/\s.*//;
|
||||
$prev_printed_line_empty
|
||||
or print "\n";
|
||||
print $separator, $line, $separator;
|
||||
}
|
||||
elsif ($line =~ /^\+/)
|
||||
{
|
||||
$line =~ s///;
|
||||
print $line;
|
||||
$prev_printed_line_empty = ($line =~ /^$/);
|
||||
}
|
||||
}
|
||||
close DIFF;
|
||||
|
||||
# The exit code should be 1.
|
||||
# Allow in case there are no modified ChangeLog entries.
|
||||
$? == 256 || $? == 128
|
||||
or warn "warning: '$cmd' had unexpected exit code or signal ($?)\n";
|
||||
}
|
||||
|
||||
sub get_tool_versions ($$)
|
||||
{
|
||||
my ($tool_list, $gnulib_version) = @_;
|
||||
@$tool_list
|
||||
or return ();
|
||||
|
||||
my $fail;
|
||||
my @tool_version_pair;
|
||||
foreach my $t (@$tool_list)
|
||||
{
|
||||
if ($t eq 'gnulib')
|
||||
{
|
||||
push @tool_version_pair, ucfirst $t . ' ' . $gnulib_version;
|
||||
next;
|
||||
}
|
||||
# Assume that the last "word" on the first line of
|
||||
# 'tool --version' output is the version string.
|
||||
my ($first_line, undef) = split ("\n", `$t --version`);
|
||||
if ($first_line =~ /.* (\d[\w.-]+)$/)
|
||||
{
|
||||
$t = ucfirst $t;
|
||||
push @tool_version_pair, "$t $1";
|
||||
}
|
||||
else
|
||||
{
|
||||
defined $first_line
|
||||
and $first_line = '';
|
||||
warn "$t: unexpected --version output\n:$first_line";
|
||||
$fail = 1;
|
||||
}
|
||||
}
|
||||
|
||||
$fail
|
||||
and exit 1;
|
||||
|
||||
return @tool_version_pair;
|
||||
}
|
||||
|
||||
{
|
||||
# Use the C locale so that, for instance, "du" does not
|
||||
# print "1,2" instead of "1.2", which would confuse our regexps.
|
||||
$ENV{LC_ALL} = "C";
|
||||
|
||||
my $mail_headers;
|
||||
my $release_type;
|
||||
my $package_name;
|
||||
my $prev_version;
|
||||
my $curr_version;
|
||||
my $gpg_key_id;
|
||||
my @url_dir_list;
|
||||
my @news_file;
|
||||
my $bootstrap_tools;
|
||||
my $gnulib_version;
|
||||
my $print_checksums_p = 1;
|
||||
|
||||
# Reformat the warnings before displaying them.
|
||||
local $SIG{__WARN__} = sub
|
||||
{
|
||||
my ($msg) = @_;
|
||||
# Warnings from GetOptions.
|
||||
$msg =~ s/Option (\w)/option --$1/;
|
||||
warn "$ME: $msg";
|
||||
};
|
||||
|
||||
GetOptions
|
||||
(
|
||||
'mail-headers=s' => \$mail_headers,
|
||||
'release-type=s' => \$release_type,
|
||||
'package-name=s' => \$package_name,
|
||||
'previous-version=s' => \$prev_version,
|
||||
'current-version=s' => \$curr_version,
|
||||
'gpg-key-id=s' => \$gpg_key_id,
|
||||
'url-directory=s' => \@url_dir_list,
|
||||
'news=s' => \@news_file,
|
||||
'srcdir=s' => \$srcdir,
|
||||
'bootstrap-tools=s' => \$bootstrap_tools,
|
||||
'gnulib-version=s' => \$gnulib_version,
|
||||
'print-checksums!' => \$print_checksums_p,
|
||||
'archive-suffix=s' => \@archive_suffixes,
|
||||
|
||||
help => sub { usage 0 },
|
||||
version =>
|
||||
sub
|
||||
{
|
||||
print "$ME version $VERSION\n";
|
||||
print "Copyright (C) $copyright_year Free Software Foundation, Inc.\n";
|
||||
print "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\n"
|
||||
. "This is free software: you are free to change and redistribute it.\n"
|
||||
. "There is NO WARRANTY, to the extent permitted by law.\n";
|
||||
print "\n";
|
||||
my $author = "Jim Meyering";
|
||||
print "Written by $author.\n";
|
||||
exit
|
||||
},
|
||||
) or usage 1;
|
||||
|
||||
my $fail = 0;
|
||||
# Ensure that each required option is specified.
|
||||
$release_type
|
||||
or (warn "release type not specified\n"), $fail = 1;
|
||||
$package_name
|
||||
or (warn "package name not specified\n"), $fail = 1;
|
||||
$prev_version
|
||||
or (warn "previous version string not specified\n"), $fail = 1;
|
||||
$curr_version
|
||||
or (warn "current version string not specified\n"), $fail = 1;
|
||||
$gpg_key_id
|
||||
or (warn "GnuPG key ID not specified\n"), $fail = 1;
|
||||
@url_dir_list
|
||||
or (warn "URL directory name(s) not specified\n"), $fail = 1;
|
||||
|
||||
my @tool_list = split ',', $bootstrap_tools
|
||||
if $bootstrap_tools;
|
||||
|
||||
grep (/^gnulib$/, @tool_list) ^ defined $gnulib_version
|
||||
and (warn "when specifying gnulib as a tool, you must also specify\n"
|
||||
. "--gnulib-version=V, where V is the result of running git describe\n"
|
||||
. "in the gnulib source directory.\n"), $fail = 1;
|
||||
|
||||
!$release_type || exists $valid_release_types{$release_type}
|
||||
or (warn "'$release_type': invalid release type\n"), $fail = 1;
|
||||
|
||||
@ARGV
|
||||
and (warn "too many arguments:\n", join ("\n", @ARGV), "\n"),
|
||||
$fail = 1;
|
||||
$fail
|
||||
and usage 1;
|
||||
|
||||
my $my_distdir = "$package_name-$curr_version";
|
||||
|
||||
my $xd = "$package_name-$prev_version-$curr_version.xdelta";
|
||||
|
||||
my @candidates = map { "$my_distdir.$_" } @archive_suffixes;
|
||||
my @tarballs = grep {-f $_} @candidates;
|
||||
|
||||
@tarballs
|
||||
or die "$ME: none of " . join(', ', @candidates) . " were found\n";
|
||||
my @sizable = @tarballs;
|
||||
-f $xd
|
||||
and push @sizable, $xd;
|
||||
my %size = sizes (@sizable);
|
||||
%size
|
||||
or exit 1;
|
||||
|
||||
my $headers = '';
|
||||
if (defined $mail_headers)
|
||||
{
|
||||
($headers = $mail_headers) =~ s/\s+(\S+:)/\n$1/g;
|
||||
$headers .= "\n";
|
||||
}
|
||||
|
||||
# The markup is escaped as <\# so that when this script is sent by
|
||||
# mail (or part of a diff), Gnus is not triggered.
|
||||
print <<EOF;
|
||||
|
||||
${headers}Subject: $my_distdir released [$release_type]
|
||||
|
||||
<\#secure method=pgpmime mode=sign>
|
||||
|
||||
Libtoolers!
|
||||
|
||||
The Libtool Team is pleased to announce the release of $package_name $curr_version.
|
||||
|
||||
GNU Libtool hides the complexity of using shared libraries behind a
|
||||
consistent, portable interface. GNU Libtool ships with GNU libltdl, which
|
||||
hides the complexity of loading dynamic runtime libraries (modules)
|
||||
behind a consistent, portable interface.
|
||||
|
||||
EOF
|
||||
|
||||
if (@url_dir_list == 1 && @tarballs == 1)
|
||||
{
|
||||
# When there's only one tarball and one URL, use a more concise form.
|
||||
my $m = "$url_dir_list[0]/$tarballs[0]";
|
||||
print "Here are the compressed sources and a GPG detached signature[*]:\n"
|
||||
. " $m\n"
|
||||
. " $m.sig\n\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
print_locations ("compressed sources", @url_dir_list, %size, @tarballs);
|
||||
-f $xd
|
||||
and print_locations ("xdelta diffs (useful? if so, "
|
||||
. "please tell bug-gnulib\@gnu.org)",
|
||||
@url_dir_list, %size, $xd);
|
||||
my @sig_files = map { "$_.sig" } @tarballs;
|
||||
print_locations ("GPG detached signatures[*]", @url_dir_list, %size,
|
||||
@sig_files);
|
||||
}
|
||||
|
||||
if ($url_dir_list[0] =~ "gnu\.org")
|
||||
{
|
||||
print "Use a mirror for higher download bandwidth:\n";
|
||||
if (@tarballs == 1 && $url_dir_list[0] =~ m!https://ftp\.gnu\.org/gnu/!)
|
||||
{
|
||||
(my $m = "$url_dir_list[0]/$tarballs[0]")
|
||||
=~ s!https://ftp\.gnu\.org/gnu/!https://ftpmirror\.gnu\.org/!;
|
||||
print " $m\n"
|
||||
. " $m.sig\n\n";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
print " https://www.gnu.org/order/ftp.html\n\n";
|
||||
}
|
||||
}
|
||||
|
||||
$print_checksums_p
|
||||
and print_checksums (@sizable);
|
||||
|
||||
print <<EOF;
|
||||
[*] Use a .sig file to verify that the corresponding file (without the
|
||||
.sig suffix) is intact. First, be sure to download both the .sig file
|
||||
and the corresponding tarball. Then, run a command like this:
|
||||
|
||||
gpg --verify $tarballs[0].sig
|
||||
|
||||
If that command fails because you don't have the required public key,
|
||||
then run this command to import it:
|
||||
|
||||
gpg --keyserver keys.gnupg.net --recv-keys $gpg_key_id
|
||||
|
||||
and rerun the 'gpg --verify' command.
|
||||
EOF
|
||||
|
||||
my @tool_versions = get_tool_versions (\@tool_list, $gnulib_version);
|
||||
@tool_versions
|
||||
and print "\nThis release was bootstrapped with the following tools:",
|
||||
join ('', map {"\n $_"} @tool_versions), "\n";
|
||||
|
||||
print_news_deltas ($_, $prev_version, $curr_version)
|
||||
foreach @news_file;
|
||||
|
||||
$release_type eq 'stable'
|
||||
or print_changelog_deltas ($package_name, $prev_version);
|
||||
|
||||
print <<EOF;
|
||||
|
||||
Enjoy!
|
||||
EOF
|
||||
|
||||
exit 0;
|
||||
}
|
||||
|
||||
### Setup "GNU" style for perl-mode and cperl-mode.
|
||||
## Local Variables:
|
||||
## mode: perl
|
||||
## perl-indent-level: 2
|
||||
## perl-continued-statement-offset: 2
|
||||
## perl-continued-brace-offset: 0
|
||||
## perl-brace-offset: 0
|
||||
## perl-brace-imaginary-offset: 0
|
||||
## perl-label-offset: -2
|
||||
## perl-extra-newline-before-brace: t
|
||||
## perl-merge-trailing-else: nil
|
||||
## eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
## time-stamp-line-limit: 50
|
||||
## time-stamp-start: "my $VERSION = '"
|
||||
## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
|
||||
## time-stamp-time-zone: "UTC0"
|
||||
## time-stamp-end: "'; # UTC"
|
||||
## End:
|
||||
348
BUILD/libtool-2.4.7/build-aux/compile
Executable file
348
BUILD/libtool-2.4.7/build-aux/compile
Executable file
@ -0,0 +1,348 @@
|
||||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand '-c -o'.
|
||||
|
||||
scriptversion=2018-03-07.03; # UTC
|
||||
|
||||
# Copyright (C) 1999-2022 Free Software Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# This program 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, 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
nl='
|
||||
'
|
||||
|
||||
# We need space, tab and new line, in precisely that order. Quoting is
|
||||
# there to prevent tools from complaining about whitespace usage.
|
||||
IFS=" "" $nl"
|
||||
|
||||
file_conv=
|
||||
|
||||
# func_file_conv build_file lazy
|
||||
# Convert a $build file to $host form and store it in $file
|
||||
# Currently only supports Windows hosts. If the determined conversion
|
||||
# type is listed in (the comma separated) LAZY, no conversion will
|
||||
# take place.
|
||||
func_file_conv ()
|
||||
{
|
||||
file=$1
|
||||
case $file in
|
||||
/ | /[!/]*) # absolute file, and not a UNC file
|
||||
if test -z "$file_conv"; then
|
||||
# lazily determine how to convert abs files
|
||||
case `uname -s` in
|
||||
MINGW*)
|
||||
file_conv=mingw
|
||||
;;
|
||||
CYGWIN* | MSYS*)
|
||||
file_conv=cygwin
|
||||
;;
|
||||
*)
|
||||
file_conv=wine
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
case $file_conv/,$2, in
|
||||
*,$file_conv,*)
|
||||
;;
|
||||
mingw/*)
|
||||
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||
;;
|
||||
cygwin/* | msys/*)
|
||||
file=`cygpath -m "$file" || echo "$file"`
|
||||
;;
|
||||
wine/*)
|
||||
file=`winepath -w "$file" || echo "$file"`
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# func_cl_dashL linkdir
|
||||
# Make cl look for libraries in LINKDIR
|
||||
func_cl_dashL ()
|
||||
{
|
||||
func_file_conv "$1"
|
||||
if test -z "$lib_path"; then
|
||||
lib_path=$file
|
||||
else
|
||||
lib_path="$lib_path;$file"
|
||||
fi
|
||||
linker_opts="$linker_opts -LIBPATH:$file"
|
||||
}
|
||||
|
||||
# func_cl_dashl library
|
||||
# Do a library search-path lookup for cl
|
||||
func_cl_dashl ()
|
||||
{
|
||||
lib=$1
|
||||
found=no
|
||||
save_IFS=$IFS
|
||||
IFS=';'
|
||||
for dir in $lib_path $LIB
|
||||
do
|
||||
IFS=$save_IFS
|
||||
if $shared && test -f "$dir/$lib.dll.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.dll.lib
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/$lib.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.lib
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/lib$lib.a"; then
|
||||
found=yes
|
||||
lib=$dir/lib$lib.a
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS=$save_IFS
|
||||
|
||||
if test "$found" != yes; then
|
||||
lib=$lib.lib
|
||||
fi
|
||||
}
|
||||
|
||||
# func_cl_wrapper cl arg...
|
||||
# Adjust compile command to suit cl
|
||||
func_cl_wrapper ()
|
||||
{
|
||||
# Assume a capable shell
|
||||
lib_path=
|
||||
shared=:
|
||||
linker_opts=
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.[oO][bB][jJ])
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fo"$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fe"$file"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-I)
|
||||
eat=1
|
||||
func_file_conv "$2" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-I*)
|
||||
func_file_conv "${1#-I}" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-l)
|
||||
eat=1
|
||||
func_cl_dashl "$2"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-l*)
|
||||
func_cl_dashl "${1#-l}"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-L)
|
||||
eat=1
|
||||
func_cl_dashL "$2"
|
||||
;;
|
||||
-L*)
|
||||
func_cl_dashL "${1#-L}"
|
||||
;;
|
||||
-static)
|
||||
shared=false
|
||||
;;
|
||||
-Wl,*)
|
||||
arg=${1#-Wl,}
|
||||
save_ifs="$IFS"; IFS=','
|
||||
for flag in $arg; do
|
||||
IFS="$save_ifs"
|
||||
linker_opts="$linker_opts $flag"
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
;;
|
||||
-Xlinker)
|
||||
eat=1
|
||||
linker_opts="$linker_opts $2"
|
||||
;;
|
||||
-*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
|
||||
func_file_conv "$1"
|
||||
set x "$@" -Tp"$file"
|
||||
shift
|
||||
;;
|
||||
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
|
||||
func_file_conv "$1" mingw
|
||||
set x "$@" "$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
if test -n "$linker_opts"; then
|
||||
linker_opts="-link$linker_opts"
|
||||
fi
|
||||
exec "$@" $linker_opts
|
||||
exit 1
|
||||
}
|
||||
|
||||
eat=
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Wrapper for compilers which do not understand '-c -o'.
|
||||
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||
arguments, and rename the output as expected.
|
||||
|
||||
If you are trying to build a whole package this is not the
|
||||
right script to run: please start by reading the file 'INSTALL'.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "compile $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
|
||||
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
|
||||
func_cl_wrapper "$@" # Doesn't return...
|
||||
;;
|
||||
esac
|
||||
|
||||
ofile=
|
||||
cfile=
|
||||
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||
# So we strip '-o arg' only if arg is an object.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.obj)
|
||||
ofile=$2
|
||||
;;
|
||||
*)
|
||||
set x "$@" -o "$2"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*.c)
|
||||
cfile=$1
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if test -z "$ofile" || test -z "$cfile"; then
|
||||
# If no '-o' option was seen then we might have been invoked from a
|
||||
# pattern rule where we don't need one. That is ok -- this is a
|
||||
# normal compilation that the losing compiler can handle. If no
|
||||
# '.c' file was seen then we are probably linking. That is also
|
||||
# ok.
|
||||
exec "$@"
|
||||
fi
|
||||
|
||||
# Name of file we expect compiler to create.
|
||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||
|
||||
# Create the lock directory.
|
||||
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
|
||||
# that we are using for the .o file. Also, base the name on the expected
|
||||
# object file name, since that is what matters with a parallel build.
|
||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||
while true; do
|
||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
# FIXME: race condition here if user kills between mkdir and trap.
|
||||
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||
|
||||
# Run the compile.
|
||||
"$@"
|
||||
ret=$?
|
||||
|
||||
if test -f "$cofile"; then
|
||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||
elif test -f "${cofile}bj"; then
|
||||
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||
fi
|
||||
|
||||
rmdir "$lockdir"
|
||||
exit $ret
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
1757
BUILD/libtool-2.4.7/build-aux/config.guess
vendored
Executable file
1757
BUILD/libtool-2.4.7/build-aux/config.guess
vendored
Executable file
File diff suppressed because it is too large
Load Diff
1891
BUILD/libtool-2.4.7/build-aux/config.sub
vendored
Executable file
1891
BUILD/libtool-2.4.7/build-aux/config.sub
vendored
Executable file
File diff suppressed because it is too large
Load Diff
790
BUILD/libtool-2.4.7/build-aux/depcomp
Executable file
790
BUILD/libtool-2.4.7/build-aux/depcomp
Executable file
@ -0,0 +1,790 @@
|
||||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2018-03-07.03; # UTC
|
||||
|
||||
# Copyright (C) 1999-2022 Free Software Foundation, Inc.
|
||||
|
||||
# This program 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, 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||
as side-effects.
|
||||
|
||||
Environment variables:
|
||||
depmode Dependency tracking mode.
|
||||
source Source file read by 'PROGRAMS ARGS'.
|
||||
object Object file output by 'PROGRAMS ARGS'.
|
||||
DEPDIR directory where to store dependencies.
|
||||
depfile Dependency file to output.
|
||||
tmpdepfile Temporary file to use when outputting dependencies.
|
||||
libtool Whether libtool is used (yes/no).
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "depcomp $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
# Get the directory component of the given path, and save it in the
|
||||
# global variables '$dir'. Note that this directory component will
|
||||
# be either empty or ending with a '/' character. This is deliberate.
|
||||
set_dir_from ()
|
||||
{
|
||||
case $1 in
|
||||
*/*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
|
||||
*) dir=;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Get the suffix-stripped basename of the given path, and save it the
|
||||
# global variable '$base'.
|
||||
set_base_from ()
|
||||
{
|
||||
base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
|
||||
}
|
||||
|
||||
# If no dependency file was actually created by the compiler invocation,
|
||||
# we still have to create a dummy depfile, to avoid errors with the
|
||||
# Makefile "include basename.Plo" scheme.
|
||||
make_dummy_depfile ()
|
||||
{
|
||||
echo "#dummy" > "$depfile"
|
||||
}
|
||||
|
||||
# Factor out some common post-processing of the generated depfile.
|
||||
# Requires the auxiliary global variable '$tmpdepfile' to be set.
|
||||
aix_post_process_depfile ()
|
||||
{
|
||||
# If the compiler actually managed to produce a dependency file,
|
||||
# post-process it.
|
||||
if test -f "$tmpdepfile"; then
|
||||
# Each line is of the form 'foo.o: dependency.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# $object: dependency.h
|
||||
# and one to simply output
|
||||
# dependency.h:
|
||||
# which is needed to avoid the deleted-header problem.
|
||||
{ sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
|
||||
sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
|
||||
} > "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
else
|
||||
make_dummy_depfile
|
||||
fi
|
||||
}
|
||||
|
||||
# A tabulation character.
|
||||
tab=' '
|
||||
# A newline character.
|
||||
nl='
|
||||
'
|
||||
# Character ranges might be problematic outside the C locale.
|
||||
# These definitions help.
|
||||
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||
lower=abcdefghijklmnopqrstuvwxyz
|
||||
alpha=${upper}${lower}
|
||||
|
||||
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||
depfile=${depfile-`echo "$object" |
|
||||
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||
|
||||
rm -f "$tmpdepfile"
|
||||
|
||||
# Avoid interferences from the environment.
|
||||
gccflag= dashmflag=
|
||||
|
||||
# Some modes work just like other modes, but use different flags. We
|
||||
# parameterize here, but still list the modes in the big case below,
|
||||
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||
# here, because this file can only contain one case statement.
|
||||
if test "$depmode" = hp; then
|
||||
# HP compiler uses -M and no extra arg.
|
||||
gccflag=-M
|
||||
depmode=gcc
|
||||
fi
|
||||
|
||||
if test "$depmode" = dashXmstdout; then
|
||||
# This is just like dashmstdout with a different argument.
|
||||
dashmflag=-xM
|
||||
depmode=dashmstdout
|
||||
fi
|
||||
|
||||
cygpath_u="cygpath -u -f -"
|
||||
if test "$depmode" = msvcmsys; then
|
||||
# This is just like msvisualcpp but w/o cygpath translation.
|
||||
# Just convert the backslash-escaped backslashes to single forward
|
||||
# slashes to satisfy depend.m4
|
||||
cygpath_u='sed s,\\\\,/,g'
|
||||
depmode=msvisualcpp
|
||||
fi
|
||||
|
||||
if test "$depmode" = msvc7msys; then
|
||||
# This is just like msvc7 but w/o cygpath translation.
|
||||
# Just convert the backslash-escaped backslashes to single forward
|
||||
# slashes to satisfy depend.m4
|
||||
cygpath_u='sed s,\\\\,/,g'
|
||||
depmode=msvc7
|
||||
fi
|
||||
|
||||
if test "$depmode" = xlc; then
|
||||
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
|
||||
gccflag=-qmakedep=gcc,-MF
|
||||
depmode=gcc
|
||||
fi
|
||||
|
||||
case "$depmode" in
|
||||
gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||
## the command line argument order; so add the flags where they
|
||||
## appear in depend2.am. Note that the slowdown incurred here
|
||||
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||
*) set fnord "$@" "$arg" ;;
|
||||
esac
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
done
|
||||
"$@"
|
||||
stat=$?
|
||||
if test $stat -ne 0; then
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
mv "$tmpdepfile" "$depfile"
|
||||
;;
|
||||
|
||||
gcc)
|
||||
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
|
||||
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
|
||||
## (see the conditional assignment to $gccflag above).
|
||||
## There are various ways to get dependency output from gcc. Here's
|
||||
## why we pick this rather obscure method:
|
||||
## - Don't want to use -MD because we'd like the dependencies to end
|
||||
## up in a subdir. Having to rename by hand is ugly.
|
||||
## (We might end up doing this anyway to support other compilers.)
|
||||
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||
## -MM, not -M (despite what the docs say). Also, it might not be
|
||||
## supported by the other compilers which use the 'gcc' depmode.
|
||||
## - Using -M directly means running the compiler twice (even worse
|
||||
## than renaming).
|
||||
if test -z "$gccflag"; then
|
||||
gccflag=-MD,
|
||||
fi
|
||||
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -ne 0; then
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
# The second -e expression handles DOS-style file names with drive
|
||||
# letters.
|
||||
sed -e 's/^[^:]*: / /' \
|
||||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||
## This next piece of magic avoids the "deleted header file" problem.
|
||||
## The problem is that when a header file which appears in a .P file
|
||||
## is deleted, the dependency causes make to die (because there is
|
||||
## typically no way to rebuild the header). We avoid this by adding
|
||||
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||
## this for us directly.
|
||||
## Some versions of gcc put a space before the ':'. On the theory
|
||||
## that the space means something, we add a space to the output as
|
||||
## well. hp depmode also adds that space, but also prefixes the VPATH
|
||||
## to the object. Take care to not repeat it in the output.
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
tr ' ' "$nl" < "$tmpdepfile" \
|
||||
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
|
||||
| sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
sgi)
|
||||
if test "$libtool" = yes; then
|
||||
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||
else
|
||||
"$@" -MDupdate "$tmpdepfile"
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -ne 0; then
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
|
||||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||
echo "$object : \\" > "$depfile"
|
||||
# Clip off the initial element (the dependent). Don't try to be
|
||||
# clever and replace this with sed code, as IRIX sed won't handle
|
||||
# lines with more than a fixed number of characters (4096 in
|
||||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||
# the IRIX cc adds comments like '#:fec' to the end of the
|
||||
# dependency line.
|
||||
tr ' ' "$nl" < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
|
||||
| tr "$nl" ' ' >> "$depfile"
|
||||
echo >> "$depfile"
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' "$nl" < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> "$depfile"
|
||||
else
|
||||
make_dummy_depfile
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
xlc)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
aix)
|
||||
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||
# in a .u file. In older versions, this file always lives in the
|
||||
# current directory. Also, the AIX compiler puts '$object:' at the
|
||||
# start of each line; $object doesn't have directory information.
|
||||
# Version 6 uses the directory in both cases.
|
||||
set_dir_from "$object"
|
||||
set_base_from "$object"
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$base.u
|
||||
tmpdepfile3=$dir.libs/$base.u
|
||||
"$@" -Wc,-M
|
||||
else
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$dir$base.u
|
||||
tmpdepfile3=$dir$base.u
|
||||
"$@" -M
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -ne 0; then
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
aix_post_process_depfile
|
||||
;;
|
||||
|
||||
tcc)
|
||||
# tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
|
||||
# FIXME: That version still under development at the moment of writing.
|
||||
# Make that this statement remains true also for stable, released
|
||||
# versions.
|
||||
# It will wrap lines (doesn't matter whether long or short) with a
|
||||
# trailing '\', as in:
|
||||
#
|
||||
# foo.o : \
|
||||
# foo.c \
|
||||
# foo.h \
|
||||
#
|
||||
# It will put a trailing '\' even on the last line, and will use leading
|
||||
# spaces rather than leading tabs (at least since its commit 0394caf7
|
||||
# "Emit spaces for -MD").
|
||||
"$@" -MD -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -ne 0; then
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
# Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
|
||||
# We have to change lines of the first kind to '$object: \'.
|
||||
sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
|
||||
# And for each line of the second kind, we have to emit a 'dep.h:'
|
||||
# dummy dependency, to avoid the deleted-header problem.
|
||||
sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
## The order of this option in the case statement is important, since the
|
||||
## shell code in configure will try each of these formats in the order
|
||||
## listed in this file. A plain '-MD' option would be understood by many
|
||||
## compilers, so we must ensure this comes after the gcc and icc options.
|
||||
pgcc)
|
||||
# Portland's C compiler understands '-MD'.
|
||||
# Will always output deps to 'file.d' where file is the root name of the
|
||||
# source file under compilation, even if file resides in a subdirectory.
|
||||
# The object file name does not affect the name of the '.d' file.
|
||||
# pgcc 10.2 will output
|
||||
# foo.o: sub/foo.c sub/foo.h
|
||||
# and will wrap long lines using '\' :
|
||||
# foo.o: sub/foo.c ... \
|
||||
# sub/foo.h ... \
|
||||
# ...
|
||||
set_dir_from "$object"
|
||||
# Use the source, not the object, to determine the base name, since
|
||||
# that's sadly what pgcc will do too.
|
||||
set_base_from "$source"
|
||||
tmpdepfile=$base.d
|
||||
|
||||
# For projects that build the same source file twice into different object
|
||||
# files, the pgcc approach of using the *source* file root name can cause
|
||||
# problems in parallel builds. Use a locking strategy to avoid stomping on
|
||||
# the same $tmpdepfile.
|
||||
lockdir=$base.d-lock
|
||||
trap "
|
||||
echo '$0: caught signal, cleaning up...' >&2
|
||||
rmdir '$lockdir'
|
||||
exit 1
|
||||
" 1 2 13 15
|
||||
numtries=100
|
||||
i=$numtries
|
||||
while test $i -gt 0; do
|
||||
# mkdir is a portable test-and-set.
|
||||
if mkdir "$lockdir" 2>/dev/null; then
|
||||
# This process acquired the lock.
|
||||
"$@" -MD
|
||||
stat=$?
|
||||
# Release the lock.
|
||||
rmdir "$lockdir"
|
||||
break
|
||||
else
|
||||
# If the lock is being held by a different process, wait
|
||||
# until the winning process is done or we timeout.
|
||||
while test -d "$lockdir" && test $i -gt 0; do
|
||||
sleep 1
|
||||
i=`expr $i - 1`
|
||||
done
|
||||
fi
|
||||
i=`expr $i - 1`
|
||||
done
|
||||
trap - 1 2 13 15
|
||||
if test $i -le 0; then
|
||||
echo "$0: failed to acquire lock after $numtries attempts" >&2
|
||||
echo "$0: check lockdir '$lockdir'" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test $stat -ne 0; then
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
# Each line is of the form `foo.o: dependent.h',
|
||||
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
# correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
|
||||
| sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp2)
|
||||
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||
# compilers, which have integrated preprocessors. The correct option
|
||||
# to use with these is +Maked; it writes dependencies to a file named
|
||||
# 'foo.d', which lands next to the object file, wherever that
|
||||
# happens to be.
|
||||
# Much of this is similar to the tru64 case; see comments there.
|
||||
set_dir_from "$object"
|
||||
set_base_from "$object"
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir.libs/$base.d
|
||||
"$@" -Wc,+Maked
|
||||
else
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
"$@" +Maked
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -ne 0; then
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||
# Add 'dependent.h:' lines.
|
||||
sed -ne '2,${
|
||||
s/^ *//
|
||||
s/ \\*$//
|
||||
s/$/:/
|
||||
p
|
||||
}' "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
make_dummy_depfile
|
||||
fi
|
||||
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||
;;
|
||||
|
||||
tru64)
|
||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||
# effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
|
||||
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||
# dependencies in 'foo.d' instead, so we check for that too.
|
||||
# Subdirectories are respected.
|
||||
set_dir_from "$object"
|
||||
set_base_from "$object"
|
||||
|
||||
if test "$libtool" = yes; then
|
||||
# Libtool generates 2 separate objects for the 2 libraries. These
|
||||
# two compilations output dependencies in $dir.libs/$base.o.d and
|
||||
# in $dir$base.o.d. We have to check for both files, because
|
||||
# one of the two compilations can be disabled. We should prefer
|
||||
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||
# the former would cause a distcleancheck panic.
|
||||
tmpdepfile1=$dir$base.o.d # libtool 1.5
|
||||
tmpdepfile2=$dir.libs/$base.o.d # Likewise.
|
||||
tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||
"$@" -Wc,-MD
|
||||
else
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
tmpdepfile3=$dir$base.d
|
||||
"$@" -MD
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -ne 0; then
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
# Same post-processing that is required for AIX mode.
|
||||
aix_post_process_depfile
|
||||
;;
|
||||
|
||||
msvc7)
|
||||
if test "$libtool" = yes; then
|
||||
showIncludes=-Wc,-showIncludes
|
||||
else
|
||||
showIncludes=-showIncludes
|
||||
fi
|
||||
"$@" $showIncludes > "$tmpdepfile"
|
||||
stat=$?
|
||||
grep -v '^Note: including file: ' "$tmpdepfile"
|
||||
if test $stat -ne 0; then
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
# The first sed program below extracts the file names and escapes
|
||||
# backslashes for cygpath. The second sed program outputs the file
|
||||
# name when reading, but also accumulates all include files in the
|
||||
# hold buffer in order to output them again at the end. This only
|
||||
# works with sed implementations that can handle large buffers.
|
||||
sed < "$tmpdepfile" -n '
|
||||
/^Note: including file: *\(.*\)/ {
|
||||
s//\1/
|
||||
s/\\/\\\\/g
|
||||
p
|
||||
}' | $cygpath_u | sort -u | sed -n '
|
||||
s/ /\\ /g
|
||||
s/\(.*\)/'"$tab"'\1 \\/p
|
||||
s/.\(.*\) \\/\1:/
|
||||
H
|
||||
$ {
|
||||
s/.*/'"$tab"'/
|
||||
G
|
||||
p
|
||||
}' >> "$depfile"
|
||||
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvc7msys)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
#nosideeffect)
|
||||
# This comment above is used by automake to tell side-effect
|
||||
# dependency tracking mechanisms from slower ones.
|
||||
|
||||
dashmstdout)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout, regardless of -o.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove '-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
test -z "$dashmflag" && dashmflag=-M
|
||||
# Require at least two characters before searching for ':'
|
||||
# in the target name. This is to cope with DOS-style filenames:
|
||||
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
|
||||
"$@" $dashmflag |
|
||||
sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
# Some versions of the HPUX 10.20 sed can't process this sed invocation
|
||||
# correctly. Breaking it into two sed invocations is a workaround.
|
||||
tr ' ' "$nl" < "$tmpdepfile" \
|
||||
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
|
||||
| sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
dashXmstdout)
|
||||
# This case only exists to satisfy depend.m4. It is never actually
|
||||
# run, as this mode is specially recognized in the preamble.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
makedepend)
|
||||
"$@" || exit $?
|
||||
# Remove any Libtool call
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
# X makedepend
|
||||
shift
|
||||
cleared=no eat=no
|
||||
for arg
|
||||
do
|
||||
case $cleared in
|
||||
no)
|
||||
set ""; shift
|
||||
cleared=yes ;;
|
||||
esac
|
||||
if test $eat = yes; then
|
||||
eat=no
|
||||
continue
|
||||
fi
|
||||
case "$arg" in
|
||||
-D*|-I*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
# Strip any option that makedepend may not understand. Remove
|
||||
# the object too, otherwise makedepend will parse it as a source file.
|
||||
-arch)
|
||||
eat=yes ;;
|
||||
-*|$object)
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
esac
|
||||
done
|
||||
obj_suffix=`echo "$object" | sed 's/^.*\././'`
|
||||
touch "$tmpdepfile"
|
||||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||
rm -f "$depfile"
|
||||
# makedepend may prepend the VPATH from the source file name to the object.
|
||||
# No need to regex-escape $object, excess matching of '.' is harmless.
|
||||
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
|
||||
# Some versions of the HPUX 10.20 sed can't process the last invocation
|
||||
# correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed '1,2d' "$tmpdepfile" \
|
||||
| tr ' ' "$nl" \
|
||||
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
|
||||
| sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||
;;
|
||||
|
||||
cpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove '-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
"$@" -E \
|
||||
| sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||
| sed '$ s: \\$::' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
cat < "$tmpdepfile" >> "$depfile"
|
||||
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvisualcpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case "$arg" in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||
set fnord "$@"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
"$@" -E 2>/dev/null |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
|
||||
echo "$tab" >> "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvcmsys)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
none)
|
||||
exec "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown depmode $depmode" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
180
BUILD/libtool-2.4.7/build-aux/do-release-commit-and-tag
Executable file
180
BUILD/libtool-2.4.7/build-aux/do-release-commit-and-tag
Executable file
@ -0,0 +1,180 @@
|
||||
#!/bin/sh
|
||||
# In a git/autoconf/automake-enabled project with a NEWS file and a version-
|
||||
# controlled .prev-version file, automate the procedure by which we record
|
||||
# the date, release-type and version string in the NEWS file. That commit
|
||||
# will serve to identify the release, so apply a signed tag to it as well.
|
||||
VERSION=2018-03-07.03 # UTC
|
||||
|
||||
# Make sure we've evaluated scripts we depend on.
|
||||
test -z "$progpath" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/funclib.sh
|
||||
|
||||
# Note: this is a bash script (could be zsh or dash)
|
||||
|
||||
# Copyright (C) 2009-2022 Free Software Foundation, Inc.
|
||||
|
||||
# This program 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 3 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# Written by Jim Meyering
|
||||
|
||||
ME=$(basename "$0")
|
||||
warn() { printf '%s: %s\n' "$ME" "$*" >&2; }
|
||||
die() { warn "$*"; exit 1; }
|
||||
|
||||
help()
|
||||
{
|
||||
cat <<EOF
|
||||
Usage: $ME [OPTION...] VERSION RELEASE_TYPE
|
||||
|
||||
Run this script from top_srcdir to perform the final pre-release NEWS
|
||||
update in which the date, release-type and version string are
|
||||
recorded. Commit that result with a log entry marking the release,
|
||||
and apply a signed tag. Run it from your project's top-level
|
||||
directory.
|
||||
|
||||
Requirements:
|
||||
- you use git for version-control
|
||||
- a version-controlled .prev-version file
|
||||
- a NEWS file, with line 3 identical to this:
|
||||
$noteworthy_stub
|
||||
|
||||
Options:
|
||||
--branch=BRANCH set release branch (default: $branch)
|
||||
-C, --builddir=DIR location of (configured) Makefile (default: $builddir)
|
||||
--help print this help, then exit
|
||||
--version print version number, then exit
|
||||
|
||||
EXAMPLE:
|
||||
To update NEWS and tag the beta 8.1 release of coreutils, I would run this:
|
||||
|
||||
$ME 8.1 beta
|
||||
|
||||
Report bugs and patches to <bug-gnulib@gnu.org>.
|
||||
EOF
|
||||
exit
|
||||
}
|
||||
|
||||
version()
|
||||
{
|
||||
year=$(echo "$VERSION" | sed 's/[^0-9].*//')
|
||||
cat <<EOF
|
||||
$ME $VERSION
|
||||
Copyright (C) $year Free Software Foundation, Inc,
|
||||
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
|
||||
This is free software: you are free to change and redistribute it.
|
||||
There is NO WARRANTY, to the extent permitted by law.
|
||||
EOF
|
||||
exit
|
||||
}
|
||||
|
||||
## ------ ##
|
||||
## Main. ##
|
||||
## ------ ##
|
||||
|
||||
# Constants.
|
||||
noteworthy='* Noteworthy changes in release'
|
||||
noteworthy_stub="$noteworthy ?.? (????-??-??) [?]"
|
||||
|
||||
# Variables.
|
||||
branch=$(git branch | sed -ne '/^\* /{s///;p;q;}')
|
||||
builddir=.
|
||||
|
||||
while test $# != 0
|
||||
do
|
||||
# Handle --option=value by splitting apart and putting back on argv.
|
||||
case $1 in
|
||||
--*=*)
|
||||
opt=$(echo "$1" | sed -e 's/=.*//')
|
||||
val=$(echo "$1" | sed -e 's/[^=]*=//')
|
||||
shift
|
||||
set dummy "$opt" "$val" "$@"; shift
|
||||
;;
|
||||
esac
|
||||
|
||||
case $1 in
|
||||
--help|--version) ${1#--};;
|
||||
--branch) shift; branch=$1; shift ;;
|
||||
-C|--builddir) shift; builddir=$1; shift ;;
|
||||
--*) die "unrecognized option: $1";;
|
||||
*) break;;
|
||||
esac
|
||||
done
|
||||
|
||||
test $# = 2 \
|
||||
|| die "Usage: $ME [OPTION...] VERSION TYPE"
|
||||
|
||||
ver=$1
|
||||
type=$2
|
||||
|
||||
|
||||
## ---------------------- ##
|
||||
## First, sanity checks. ##
|
||||
## ---------------------- ##
|
||||
|
||||
# Verify that $ver looks like a version number, and...
|
||||
echo "$ver"|grep -E '^[0-9][0-9.]*[0-9]$' > /dev/null \
|
||||
|| die "invalid version: $ver"
|
||||
prev_ver=$(cat .prev-version) \
|
||||
|| die 'failed to determine previous version number from .prev-version'
|
||||
|
||||
# Verify that $ver is sensible (> .prev-version).
|
||||
func_lt_ver "$prev_ver" "$ver" \
|
||||
|| die "invalid version: $ver (<= $prev_ver)"
|
||||
|
||||
case $type in
|
||||
alpha|beta|stable) ;;
|
||||
*) die "invalid release type: $type";;
|
||||
esac
|
||||
|
||||
# No local modifications allowed.
|
||||
case $(git diff-index --name-only HEAD) in
|
||||
'') ;;
|
||||
*) die 'this tree is dirty; commit your changes first';;
|
||||
esac
|
||||
|
||||
# Ensure the current branch name is correct:
|
||||
curr_br=$(git rev-parse --symbolic-full-name HEAD)
|
||||
test "$curr_br" = "refs/heads/$branch" || die not on branch $branch
|
||||
|
||||
# Extract package name from Makefile.
|
||||
Makefile=$builddir/Makefile
|
||||
pkg=$(sed -n 's/^PACKAGE = \(.*\)/\1/p' "$Makefile") \
|
||||
|| die "failed to determine package name from $Makefile"
|
||||
|
||||
# Check that line 3 of NEWS is the stub line about to be replaced.
|
||||
test "$(sed -n 3p NEWS)" = "$noteworthy_stub" \
|
||||
|| die "line 3 of NEWS must be exactly '$noteworthy_stub'"
|
||||
|
||||
## --------------- ##
|
||||
## Then, changes. ##
|
||||
## --------------- ##
|
||||
|
||||
# Update NEWS to have today's date, plus desired version number and $type.
|
||||
perl -MPOSIX -ni -e 'my $today = strftime "%F", localtime time;' \
|
||||
-e 'my ($type, $ver) = qw('"$type $ver"');' \
|
||||
-e 'my $pfx = "'"$noteworthy"'";' \
|
||||
-e 'print $.==3 ? "$pfx $ver ($today) [$type]\n" : $_' \
|
||||
NEWS || die 'failed to update NEWS'
|
||||
|
||||
printf "version $ver\n\n* NEWS: Record release date.\n" \
|
||||
| git commit -F - -a || die 'git commit failed'
|
||||
git tag -s -m "$pkg $ver" v$ver HEAD || die 'git tag failed'
|
||||
|
||||
# Local variables:
|
||||
# indent-tabs-mode: nil
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "VERSION="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: " # UTC"
|
||||
# End:
|
||||
96
BUILD/libtool-2.4.7/build-aux/edit-readme-alpha
Executable file
96
BUILD/libtool-2.4.7/build-aux/edit-readme-alpha
Executable file
@ -0,0 +1,96 @@
|
||||
#! /bin/sh
|
||||
|
||||
# edit-readme-alpha - edit README file for alpha releases
|
||||
# Copyright (C) 2010-2019, 2021-2022 Free Software Foundation, Inc.
|
||||
# Written by Gary V. Vaughan, 2010
|
||||
#
|
||||
# This file is part of GNU Libtool.
|
||||
#
|
||||
# GNU Libtool 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.
|
||||
#
|
||||
# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
|
||||
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
|
||||
# or obtained by writing to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
####
|
||||
|
||||
# We used to maintain separate (but extremely similiar!) README and
|
||||
# README.alpha files, and had 'make dist' include the right one in a
|
||||
# distribution based on the contests of '$(VERSION)'.
|
||||
#
|
||||
# Now, we have 'make dist' call this script to tweak the first paragraph
|
||||
# of README in situ, to be more suitable for an alpha quality release.
|
||||
|
||||
EXIT_SUCCESS=0
|
||||
EXIT_FAILURE=1
|
||||
|
||||
# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
|
||||
# is ksh but when the shell is invoked as "sh" and the current value of
|
||||
# the _XPG environment variable is not equal to 1 (one), the special
|
||||
# positional parameter $0, within a function call, is the name of the
|
||||
# function.
|
||||
progpath=$0
|
||||
|
||||
# The name of this program:
|
||||
progname=`echo "$progpath" |sed 's|^.*/||'`
|
||||
|
||||
|
||||
# func_fatal_error ARG...
|
||||
# -----------------------
|
||||
# Echo program name prefixed message to standard error, and exit.
|
||||
func_fatal_error ()
|
||||
{
|
||||
echo "$progname: $*" >&2
|
||||
exit $EXIT_FAILURE
|
||||
}
|
||||
|
||||
|
||||
for file in "$@"; do
|
||||
# Assume that read-only README indicates that we are running inside
|
||||
# the latter part of a 'make distcheck'.
|
||||
test -w "$file" || {
|
||||
echo "$progname: not editing non-writeable '$file' (distcheck?)" >&2
|
||||
continue
|
||||
}
|
||||
|
||||
# Did we already in-place edited this file?
|
||||
matched=`sed -n -e '/^This is an alpha testing release/,/a consistent, portable interface\.$/p' $file \
|
||||
|wc -l |sed 's|^ *||'`
|
||||
test 3 = "$matched" && {
|
||||
echo "$progname: $file already edited" >&2
|
||||
continue
|
||||
}
|
||||
|
||||
# Make sure the paragraph we are matching has not been edited since
|
||||
# this script was written.
|
||||
matched=`sed -n -e '/^\[GNU Libtool\]\[libtool\] is/,/^consistent, portable interface\.$/p' $file \
|
||||
|wc -l |sed 's|^ *||'`
|
||||
test 3 = "$matched" \
|
||||
|| func_fatal_error "$file format has changed, please fix '$0'"
|
||||
|
||||
# Don't leave file droppings.
|
||||
trap 'x=$?; rm $file.T; exit $x' 1 2 13 15
|
||||
|
||||
# Edit the first paragraph to be suitable for an alpha release.
|
||||
sed '/^\[GNU Libtool\]\[libtool\] is/,/^consistent, portable interface\.$/c\
|
||||
This is an alpha testing release of [GNU Libtool][libtool], a generic\
|
||||
library support script. [Libtool][] hides the complexity of using shared\
|
||||
libraries behind a consistent, portable interface.' $file > $file.T
|
||||
|
||||
# Diagnose redirection failure.
|
||||
test -f "$file.T" || func_fatal_error "Unable to write $file.T"
|
||||
|
||||
# Overwrite the original file with our edited version.
|
||||
mv $file.T $file || func_fatal_error "Unable to edit $file"
|
||||
done
|
||||
|
||||
exit $EXIT_SUCCESS
|
||||
486
BUILD/libtool-2.4.7/build-aux/extract-trace
Executable file
486
BUILD/libtool-2.4.7/build-aux/extract-trace
Executable file
@ -0,0 +1,486 @@
|
||||
#! /bin/sh
|
||||
|
||||
# Extract macro arguments from autotools input with GNU M4.
|
||||
# Written by Gary V. Vaughan, 2010
|
||||
#
|
||||
# This is free software. There is NO warranty; not even for
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
#
|
||||
# Copyright (C) 2010-2019, 2021 Bootstrap Authors
|
||||
#
|
||||
# This file is dual licensed under the terms of the MIT license
|
||||
# <https://opensource.org/license/MIT>, and GPL version 2 or later
|
||||
# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
|
||||
# these licenses when using or redistributing this software or any of
|
||||
# the files within it. See the URLs above, or the file `LICENSE`
|
||||
# included in the Bootstrap distribution for the full license texts.
|
||||
|
||||
# Please report bugs or propose patches to:
|
||||
# <https://github.com/gnulib-modules/bootstrap/issues>
|
||||
|
||||
# Make sure we've evaluated scripts we depend on.
|
||||
test -z "$progpath" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/funclib.sh
|
||||
test extract-trace = "$progname" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/options-parser
|
||||
|
||||
# Set a version string.
|
||||
scriptversion=2019-02-19.15; # UTC
|
||||
|
||||
|
||||
## ------ ##
|
||||
## Usage. ##
|
||||
## ------ ##
|
||||
|
||||
# Run './extract-trace --help' for help with using this script from the
|
||||
# command line.
|
||||
#
|
||||
# Or source first 'options-parser' and then this file into your own
|
||||
# scripts in order to make use of the function and variable framework
|
||||
# they define, and also to avoid the overhead of forking to run this
|
||||
# script in its own process on every call.
|
||||
|
||||
|
||||
|
||||
## ----------------- ##
|
||||
## Helper functions. ##
|
||||
## ----------------- ##
|
||||
|
||||
# This section contains the helper functions used by the rest of
|
||||
# 'extract-trace'.
|
||||
|
||||
|
||||
# func_autoconf_configure MAYBE-CONFIGURE-FILE
|
||||
# --------------------------------------------
|
||||
# Ensure that MAYBE-CONFIGURE-FILE is the name of a file in the current
|
||||
# directory that contains an uncommented call to AC_INIT.
|
||||
func_autoconf_configure ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
_G_sed_no_comment='
|
||||
s|#.*$||
|
||||
s|^dnl .*$||
|
||||
s| dnl .*$||'
|
||||
_G_ac_init=
|
||||
|
||||
# If we were passed a genuine file, make sure it calls AC_INIT.
|
||||
test -f "$1" \
|
||||
&& _G_ac_init=`$SED "$_G_sed_no_comment" "$1" |$GREP AC_INIT`
|
||||
|
||||
# Otherwise it is not a genuine Autoconf input file.
|
||||
test -n "$_G_ac_init"
|
||||
_G_status=$?
|
||||
|
||||
test 0 -ne "$_G_status" \
|
||||
&& func_verbose "'$1' not using Autoconf"
|
||||
|
||||
(exit $_G_status)
|
||||
}
|
||||
|
||||
|
||||
# func_tool_version_output CMD [FATAL-ERROR-MSG]
|
||||
# ----------------------------------------------
|
||||
# Attempt to run 'CMD --version', discarding errors. The output can be
|
||||
# ignored by redirecting stdout, and this function used simply to test
|
||||
# whether the command exists and exits normally when passed a
|
||||
# '--version' argument.
|
||||
# When FATAL-ERROR-MSG is given, then this function will display the
|
||||
# message and exit if running 'CMD --version' returns a non-zero exit
|
||||
# status.
|
||||
func_tool_version_output ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
_G_cmd=$1
|
||||
_G_fatal_error_msg=$2
|
||||
|
||||
# Some tools, like 'git2cl' produce thousands of lines of output
|
||||
# unless stdin is /dev/null - in that case we want to return
|
||||
# successfully without saving all of that output. Other tools,
|
||||
# such as 'help2man' exit with a non-zero status when stdin comes
|
||||
# from /dev/null, so we re-execute without /dev/null if that
|
||||
# happens. This means that occasionally, the output from both calls
|
||||
# ends up in the result, but the alternative would be to discard the
|
||||
# output from one call, and hope the other produces something useful.
|
||||
{ $_G_cmd --version </dev/null || $_G_cmd --version; } 2>/dev/null
|
||||
_G_status=$?
|
||||
|
||||
test 0 -ne "$_G_status" && test -n "$_G_fatal_error_msg" \
|
||||
&& func_fatal_error "$_G_fatal_error_msg"
|
||||
|
||||
(exit $_G_status)
|
||||
}
|
||||
|
||||
|
||||
# func_tool_version_number CMD [FATAL-ERROR-MSG]
|
||||
# ----------------------------------------------
|
||||
# Pass arguments to func_tool_version_output, but set
|
||||
# $func_tool_version_number_result to the last dot delimited digit string
|
||||
# on the first line of output.
|
||||
func_tool_version_number ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
_G_verout=`func_tool_version_output "$@"`
|
||||
_G_status=$?
|
||||
|
||||
# A version number starts with a digit following a space on the first
|
||||
# line of output from `--version`.
|
||||
_G_verout=`echo "$_G_verout" |sed 1q`
|
||||
if test -n "$_G_verout"; then
|
||||
_G_vernum=`expr "$_G_verout" : '.* \([0-9][^ ]*\)'`
|
||||
fi
|
||||
|
||||
if test -n "$_G_vernum"; then
|
||||
printf '%s\n' "$_G_vernum"
|
||||
else
|
||||
printf '%s\n' "$_G_verout"
|
||||
fi
|
||||
|
||||
(exit $_G_status)
|
||||
}
|
||||
|
||||
|
||||
# func_find_tool ENVVAR NAMES...
|
||||
# ------------------------------
|
||||
# Search for a required program. Use the value of ENVVAR, if set,
|
||||
# otherwise find the first of the NAMES that can be run (i.e.,
|
||||
# supports --version). If found, set ENVVAR to the program name,
|
||||
# die otherwise.
|
||||
func_find_tool ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
_G_find_tool_envvar=$1
|
||||
shift
|
||||
_G_find_tool_names=$@
|
||||
eval "_G_find_tool_res=\$$_G_find_tool_envvar"
|
||||
if test -n "$_G_find_tool_res"; then
|
||||
_G_find_tool_error_prefix="\$$find_tool_envvar: "
|
||||
else
|
||||
_G_find_tool_res=
|
||||
_G_bestver=
|
||||
for _G_prog
|
||||
do
|
||||
_G_find_tool_save_IFS=$IFS
|
||||
IFS=${PATH_SEPARATOR-:}
|
||||
for _G_dir in $PATH; do
|
||||
IFS=$_G_find_tool_save_IFS
|
||||
_G_progpath=$_G_dir/$_G_prog
|
||||
test -r "$_G_progpath" && {
|
||||
_G_curver=`func_tool_version_number $_G_progpath`
|
||||
case $_G_bestver,$_G_curver in
|
||||
,)
|
||||
# first non--version responsive prog sticks!
|
||||
test -n "$_G_progpath" || _G_find_tool_res=$_G_progpath
|
||||
;;
|
||||
,*)
|
||||
# first --version responsive prog beats non--version responsive!
|
||||
_G_find_tool_res=$_G_progpath
|
||||
_G_bestver=$_G_curver
|
||||
;;
|
||||
*,*)
|
||||
# another --version responsive prog must be newer to beat previous one!
|
||||
test "x$_G_curver" = "x$_G_bestver" \
|
||||
|| func_lt_ver "$_G_curver" "$_G_bestver" \
|
||||
|| {
|
||||
_G_find_tool_res=$_G_progpath
|
||||
_G_bestver=$_G_curver
|
||||
}
|
||||
;;
|
||||
esac
|
||||
}
|
||||
done
|
||||
IFS=$_G_find_tool_save_IFS
|
||||
done
|
||||
fi
|
||||
if test -n "$_G_find_tool_res"; then
|
||||
func_tool_version_number >/dev/null $_G_find_tool_res "\
|
||||
${_G_find_tool_error_prefix}Cannot run '$_G_find_tool_res --version'"
|
||||
|
||||
# Make sure the result is exported to the environment for children
|
||||
# to use.
|
||||
eval "$_G_find_tool_envvar=\$_G_find_tool_res"
|
||||
eval "export $_G_find_tool_envvar"
|
||||
else
|
||||
func_error "\
|
||||
One of these is required:
|
||||
$_G_find_tool_names"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
## -------------------- ##
|
||||
## Resource management. ##
|
||||
## -------------------- ##
|
||||
|
||||
# This section contains definitions for functions that each ensure a
|
||||
# particular resource (a file, or a non-empty configuration variable for
|
||||
# example) is available, and if appropriate to extract default values
|
||||
# from pertinent package files. Where a variable already has a non-
|
||||
# empty value (as set by the package's 'bootstrap.conf'), that value is
|
||||
# used in preference to deriving the default. Call them using their
|
||||
# associated 'require_*' variable to ensure that they are executed, at
|
||||
# most, once.
|
||||
#
|
||||
# It's entirely deliberate that calling these functions can set
|
||||
# variables that don't obey the namespace limitations obeyed by the rest
|
||||
# of this file, in order that that they be as useful as possible to
|
||||
# callers.
|
||||
|
||||
|
||||
# require_configure_ac
|
||||
# --------------------
|
||||
# Ensure that there is a 'configure.ac' or 'configure.in' file in the
|
||||
# current directory that contains an uncommented call to AC_INIT, and
|
||||
# that '$configure_ac' contains its name.
|
||||
require_configure_ac=func_require_configure_ac
|
||||
func_require_configure_ac ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
test -z "$configure_ac" \
|
||||
&& func_autoconf_configure configure.ac && configure_ac=configure.ac
|
||||
test -z "$configure_ac" \
|
||||
&& func_autoconf_configure configure.in && configure_ac=configure.in
|
||||
test -z "$configure_ac" \
|
||||
|| func_verbose "found '$configure_ac'"
|
||||
|
||||
require_configure_ac=:
|
||||
}
|
||||
|
||||
|
||||
# require_gnu_m4
|
||||
# --------------
|
||||
# Search for GNU M4, and export it in $M4.
|
||||
require_gnu_m4=func_require_gnu_m4
|
||||
func_require_gnu_m4 ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
test -n "$M4" || {
|
||||
# Find the first m4 binary that responds to --version.
|
||||
func_find_tool M4 gm4 gnum4 m4
|
||||
}
|
||||
|
||||
test -n "$M4" || func_fatal_error "\
|
||||
Please install GNU M4, or 'export M4=/path/to/gnu/m4'."
|
||||
|
||||
func_verbose "export M4='$M4'"
|
||||
|
||||
# Make sure the search result is visible to subshells
|
||||
export M4
|
||||
|
||||
require_gnu_m4=:
|
||||
}
|
||||
|
||||
|
||||
## --------------- ##
|
||||
## Core functions. ##
|
||||
## --------------- ##
|
||||
|
||||
# This section contains the high level functions used when calling this
|
||||
# file as a script. 'func_extract_trace' is probably the only one that you
|
||||
# won't want to replace if you source this file into your own script.
|
||||
|
||||
|
||||
# func_extract_trace MACRO_NAMES [FILENAME]...
|
||||
# --------------------------------------------
|
||||
# set '$func_extract_trace_result' to a colon delimited list of arguments
|
||||
# to any of the comma separated list of MACRO_NAMES in FILENAME. If no
|
||||
# FILENAME is given, then '$configure_ac' is assumed.
|
||||
func_extract_trace ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
$require_configure_ac
|
||||
$require_gnu_m4
|
||||
|
||||
_G_m4_traces=`$ECHO "--trace=$1" |$SED 's%,% --trace=%g'`
|
||||
_G_re_macros=`$ECHO "($1)" |$SED 's%,%|%g'`
|
||||
_G_macros="$1"; shift
|
||||
test $# -gt 0 || {
|
||||
set dummy $configure_ac
|
||||
shift
|
||||
}
|
||||
|
||||
# Generate an error if the first file is missing
|
||||
<"$1"
|
||||
|
||||
# Sadly, we can't use 'autom4te' tracing to extract macro arguments,
|
||||
# because it complains about things we want to ignore at bootstrap
|
||||
# time - like missing m4_include files; AC_PREREQ being newer than
|
||||
# the installed autoconf; and returns nothing when tracing
|
||||
# 'AM_INIT_AUTOMAKE' when aclocal hasn't been generated yet.
|
||||
#
|
||||
# The following tries to emulate a less persnickety version of (and
|
||||
# due to not having to wait for Perl startup on every invocation,
|
||||
# it's probably faster too):
|
||||
#
|
||||
# autom4te --language=Autoconf --trace=$my_macro:\$% "$@"
|
||||
#
|
||||
# First we give a minimal set of macro declarations to M4 to prime
|
||||
# it for reading Autoconf macros, while still providing some of the
|
||||
# functionality generally used at m4-time to supply dynamic
|
||||
# arguments to Autocof functions, but without following
|
||||
# 'm4_s?include' files.
|
||||
_G_mini='
|
||||
dnl Initialisation.
|
||||
m4_changequote([,])
|
||||
m4_define([m4_copy], [m4_define([$2], m4_defn([$1]))])
|
||||
m4_define([m4_rename], [m4_copy([$1], [$2])m4_undefine([$1])])
|
||||
|
||||
dnl Replace macros which may abort m4 with a no-op variant.
|
||||
m4_pushdef([m4_assert])
|
||||
m4_pushdef([m4_exit])
|
||||
m4_pushdef([m4_fatal])
|
||||
m4_pushdef([m4_m4exit])
|
||||
|
||||
dnl Replace macros that might break stderr of m4.
|
||||
m4_pushdef([m4_errprint])
|
||||
m4_pushdef([m4_errprintn])
|
||||
m4_pushdef([m4_include])
|
||||
m4_pushdef([m4_warn])
|
||||
|
||||
dnl Avoid side-effects of tracing by extract-trace.
|
||||
m4_pushdef([m4_maketemp])
|
||||
m4_pushdef([m4_mkstemp])
|
||||
|
||||
dnl TODO: reasons for this
|
||||
m4_pushdef([m4_dnl])
|
||||
m4_pushdef([m4_m4wrap])
|
||||
|
||||
dnl Copy and rename macros not handled by "m4 --prefix".
|
||||
m4_define([dnl], [m4_builtin([dnl])])
|
||||
m4_copy([m4_define], [m4_defun])
|
||||
m4_rename([m4_ifelse], [m4_if])
|
||||
m4_rename([m4_patsubst], [m4_bpatsubst])
|
||||
m4_rename([m4_regexp], [m4_bregexp])
|
||||
|
||||
dnl "m4sugar.mini" - useful m4-time macros for dynamic arguments.
|
||||
dnl If we discover packages that need more m4 macros defined in
|
||||
dnl order to bootstrap correctly, add them here:
|
||||
m4_define([m4_bmatch],
|
||||
[m4_if([$#], 0, [], [$#], 1, [], [$#], 2, [$2],
|
||||
[m4_if(m4_bregexp([$1], [$2]), -1,
|
||||
[$0([$1], m4_shift3($@))], [$3])])])
|
||||
m4_define([m4_ifndef], [m4_ifdef([$1], [$3], [$2])])
|
||||
m4_define([m4_ifset],
|
||||
[m4_ifdef([$1], [m4_ifval(m4_defn([$1]), [$2], [$3])], [$3])])
|
||||
m4_define([m4_require], [$1])
|
||||
m4_define([m4_shift3], [m4_shift(m4shift(m4shift($@)))])
|
||||
|
||||
dnl "autoconf.mini" - things from autoconf macros we care about.
|
||||
m4_copy([m4_defun], [AC_DEFUN])
|
||||
|
||||
dnl Dummy definitions for the macros we want to trace.
|
||||
dnl AM_INIT_AUTOMAKE at least produces no trace without this.
|
||||
'
|
||||
|
||||
_G_save=$IFS
|
||||
IFS=,
|
||||
for _G_macro in $_G_macros; do
|
||||
IFS=$_G_save
|
||||
func_append _G_mini "AC_DEFUN([$_G_macro])$nl"
|
||||
done
|
||||
IFS=$_G_save
|
||||
|
||||
# We discard M4's stdout, but the M4 trace output from reading our
|
||||
# "autoconf.mini" followed by any other files passed to this
|
||||
# function is then scanned by sed to transform it into a colon
|
||||
# delimited argument list assigned to a shell variable.
|
||||
_G_transform='s|#.*$||; s|^dnl .*$||; s| dnl .*$||;'
|
||||
|
||||
# Unfortunately, alternation in regexp addresses doesn't work in at
|
||||
# least BSD (and hence Mac OS X) sed, so we have to append a capture
|
||||
# and print block for each traced macro to the sed transform script.
|
||||
_G_save=$IFS
|
||||
IFS=,
|
||||
for _G_macro in $_G_macros; do
|
||||
IFS=$_G_save
|
||||
func_append _G_transform '
|
||||
/^m4trace: -1- '"$_G_macro"'/ {
|
||||
s|^m4trace: -1- '"$_G_macro"'[([]*||
|
||||
s|], [[]|:|g
|
||||
s|[])]*$|:|
|
||||
s|\(.\):$|\1|
|
||||
p
|
||||
}'
|
||||
done
|
||||
IFS=$_G_save
|
||||
|
||||
# Save the command pipeline results for further use by callers of
|
||||
# this function.
|
||||
func_extract_trace_result=`$ECHO "$_G_mini" \
|
||||
|$M4 -daq --prefix $_G_m4_traces - "$@" 2>&1 1>/dev/null \
|
||||
|$SED -n -e "$_G_transform"`
|
||||
}
|
||||
|
||||
|
||||
# func_extract_trace_first MACRO_NAMES [FILENAME]...
|
||||
# --------------------------------------------------
|
||||
# Exactly like func_extract_trace, except that only the first argument
|
||||
# to the first invocation of one of the comma separated MACRO_NAMES is
|
||||
# returned in '$func_extract_trace_first_result'.
|
||||
func_extract_trace_first ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
func_extract_trace ${1+"$@"}
|
||||
func_extract_trace_first_result=`$ECHO "$func_extract_trace_result" \
|
||||
|$SED -e 's|:.*$||g' -e 1q`
|
||||
}
|
||||
|
||||
|
||||
# func_main [ARG]...
|
||||
# ------------------
|
||||
func_main ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
# Configuration.
|
||||
usage='$progname MACRO_NAME FILE [...]'
|
||||
|
||||
long_help_message='
|
||||
The first argument to this program is the name of an autotools macro
|
||||
whose arguments you want to extract by examining the files listed in the
|
||||
remaining arguments using the same tool that Autoconf and Automake use,
|
||||
GNU M4.
|
||||
|
||||
The arguments are returned separated by colons, with each traced call
|
||||
on a separate line.'
|
||||
|
||||
# Option processing.
|
||||
func_options "$@"
|
||||
eval set dummy "$func_options_result"; shift
|
||||
|
||||
# Validate remaining non-option arguments.
|
||||
test $# -gt 1 \
|
||||
|| func_fatal_help "not enough arguments"
|
||||
|
||||
# Pass non-option arguments to extraction function.
|
||||
func_extract_trace "$@"
|
||||
|
||||
# Display results.
|
||||
test -n "$func_extract_trace_result" \
|
||||
&& $ECHO "$func_extract_trace_result"
|
||||
|
||||
# The End.
|
||||
exit $EXIT_SUCCESS
|
||||
}
|
||||
|
||||
|
||||
## --------------------------- ##
|
||||
## Actually perform the trace. ##
|
||||
## --------------------------- ##
|
||||
|
||||
# Only call 'func_main' if this script was called directly.
|
||||
test extract-trace = "$progname" && func_main "$@"
|
||||
|
||||
# Local variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-pattern: "50/scriptversion=%:y-%02m-%02d.%02H; # UTC"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# End:
|
||||
1465
BUILD/libtool-2.4.7/build-aux/funclib.sh
Normal file
1465
BUILD/libtool-2.4.7/build-aux/funclib.sh
Normal file
File diff suppressed because it is too large
Load Diff
510
BUILD/libtool-2.4.7/build-aux/gendocs.sh
Executable file
510
BUILD/libtool-2.4.7/build-aux/gendocs.sh
Executable file
@ -0,0 +1,510 @@
|
||||
#!/bin/sh -e
|
||||
# gendocs.sh -- generate a GNU manual in many formats. This script is
|
||||
# mentioned in maintain.texi. See the help message below for usage details.
|
||||
|
||||
scriptversion=2022-01-01.00
|
||||
|
||||
# Copyright 2003-2022 Free Software Foundation, Inc.
|
||||
#
|
||||
# This program 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 3 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Original author: Mohit Agarwal.
|
||||
# Send bug reports and any other correspondence to bug-gnulib@gnu.org.
|
||||
#
|
||||
# The latest version of this script, and the companion template, is
|
||||
# available from the Gnulib repository:
|
||||
#
|
||||
# https://git.savannah.gnu.org/cgit/gnulib.git/tree/build-aux/gendocs.sh
|
||||
# https://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/gendocs_template
|
||||
|
||||
# TODO:
|
||||
# - image importing was only implemented for HTML generated by
|
||||
# makeinfo. But it should be simple enough to adjust.
|
||||
# - images are not imported in the source tarball. All the needed
|
||||
# formats (PDF, PNG, etc.) should be included.
|
||||
|
||||
prog=`basename "$0"`
|
||||
srcdir=`pwd`
|
||||
|
||||
scripturl="https://git.savannah.gnu.org/cgit/gnulib.git/plain/build-aux/gendocs.sh"
|
||||
templateurl="https://git.savannah.gnu.org/cgit/gnulib.git/plain/doc/gendocs_template"
|
||||
|
||||
: ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="}
|
||||
: ${MAKEINFO="makeinfo"}
|
||||
: ${TEXI2DVI="texi2dvi"}
|
||||
: ${DOCBOOK2HTML="docbook2html"}
|
||||
: ${DOCBOOK2PDF="docbook2pdf"}
|
||||
: ${DOCBOOK2TXT="docbook2txt"}
|
||||
: ${GENDOCS_TEMPLATE_DIR="."}
|
||||
: ${PERL='perl'}
|
||||
: ${TEXI2HTML="texi2html"}
|
||||
unset CDPATH
|
||||
unset use_texi2html
|
||||
|
||||
MANUAL_TITLE=
|
||||
PACKAGE=
|
||||
EMAIL=webmasters@gnu.org # please override with --email
|
||||
commonarg= # passed to all makeinfo/texi2html invcations.
|
||||
dirargs= # passed to all tools (-I dir).
|
||||
dirs= # -I directories.
|
||||
htmlarg="--css-ref=https://www.gnu.org/software/gnulib/manual.css -c TOP_NODE_UP_URL=/manual"
|
||||
default_htmlarg=true
|
||||
infoarg=--no-split
|
||||
generate_ascii=true
|
||||
generate_html=true
|
||||
generate_info=true
|
||||
generate_tex=true
|
||||
outdir=manual
|
||||
source_extra=
|
||||
split=node
|
||||
srcfile=
|
||||
texarg="-t @finalout"
|
||||
|
||||
version="gendocs.sh $scriptversion
|
||||
|
||||
Copyright 2022 Free Software Foundation, Inc.
|
||||
There is NO warranty. You may redistribute this software
|
||||
under the terms of the GNU General Public License.
|
||||
For more information about these matters, see the files named COPYING."
|
||||
|
||||
usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE
|
||||
|
||||
Generate output in various formats from PACKAGE.texinfo (or .texi or
|
||||
.txi) source. See the GNU Maintainers document for a more extensive
|
||||
discussion:
|
||||
https://www.gnu.org/prep/maintain_toc.html
|
||||
|
||||
Options:
|
||||
--email ADR use ADR as contact in generated web pages; always give this.
|
||||
|
||||
-s SRCFILE read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi}
|
||||
-o OUTDIR write files into OUTDIR, instead of manual/.
|
||||
-I DIR append DIR to the Texinfo search path.
|
||||
--common ARG pass ARG in all invocations.
|
||||
--html ARG pass ARG to makeinfo or texi2html for HTML targets,
|
||||
instead of '$htmlarg'.
|
||||
--info ARG pass ARG to makeinfo for Info, instead of --no-split.
|
||||
--no-ascii skip generating the plain text output.
|
||||
--no-html skip generating the html output.
|
||||
--no-info skip generating the info output.
|
||||
--no-tex skip generating the dvi and pdf output.
|
||||
--source ARG include ARG in tar archive of sources.
|
||||
--split HOW make split HTML by node, section, chapter; default node.
|
||||
--tex ARG pass ARG to texi2dvi for DVI and PDF, instead of -t @finalout.
|
||||
|
||||
--texi2html use texi2html to make HTML target, with all split versions.
|
||||
--docbook convert through DocBook too (xml, txt, html, pdf).
|
||||
|
||||
--help display this help and exit successfully.
|
||||
--version display version information and exit successfully.
|
||||
|
||||
Simple example: $prog --email bug-gnu-emacs@gnu.org emacs \"GNU Emacs Manual\"
|
||||
|
||||
Typical sequence:
|
||||
cd PACKAGESOURCE/doc
|
||||
wget \"$scripturl\"
|
||||
wget \"$templateurl\"
|
||||
$prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\"
|
||||
|
||||
Output will be in a new subdirectory \"manual\" (by default;
|
||||
use -o OUTDIR to override). Move all the new files into your web CVS
|
||||
tree, as explained in the Web Pages node of maintain.texi.
|
||||
|
||||
Please use the --email ADDRESS option so your own bug-reporting
|
||||
address will be used in the generated HTML pages.
|
||||
|
||||
MANUAL-TITLE is included as part of the HTML <title> of the overall
|
||||
manual/index.html file. It should include the name of the package being
|
||||
documented. manual/index.html is created by substitution from the file
|
||||
$GENDOCS_TEMPLATE_DIR/gendocs_template. (Feel free to modify the
|
||||
generic template for your own purposes.)
|
||||
|
||||
If you have several manuals, you'll need to run this script several
|
||||
times with different MANUAL values, specifying a different output
|
||||
directory with -o each time. Then write (by hand) an overall index.html
|
||||
with links to them all.
|
||||
|
||||
If a manual's Texinfo sources are spread across several directories,
|
||||
first copy or symlink all Texinfo sources into a single directory.
|
||||
(Part of the script's work is to make a tar.gz of the sources.)
|
||||
|
||||
As implied above, by default monolithic Info files are generated.
|
||||
If you want split Info, or other Info options, use --info to override.
|
||||
|
||||
You can set the environment variables MAKEINFO, TEXI2DVI, TEXI2HTML,
|
||||
and PERL to control the programs that get executed, and
|
||||
GENDOCS_TEMPLATE_DIR to control where the gendocs_template file is
|
||||
looked for. With --docbook, the environment variables DOCBOOK2HTML,
|
||||
DOCBOOK2PDF, and DOCBOOK2TXT are also consulted.
|
||||
|
||||
By default, makeinfo and texi2dvi are run in the default (English)
|
||||
locale, since that's the language of most Texinfo manuals. If you
|
||||
happen to have a non-English manual and non-English web site, see the
|
||||
SETLANG setting in the source.
|
||||
|
||||
Email bug reports or enhancement requests to bug-gnulib@gnu.org.
|
||||
"
|
||||
|
||||
while test $# -gt 0; do
|
||||
case $1 in
|
||||
-s) shift; srcfile=$1;;
|
||||
-o) shift; outdir=$1;;
|
||||
-I) shift; dirargs="$dirargs -I '$1'"; dirs="$dirs $1";;
|
||||
--common) shift; commonarg=$1;;
|
||||
--docbook) docbook=yes;;
|
||||
--email) shift; EMAIL=$1;;
|
||||
--html) shift; default_htmlarg=false; htmlarg=$1;;
|
||||
--info) shift; infoarg=$1;;
|
||||
--no-ascii) generate_ascii=false;;
|
||||
--no-html) generate_ascii=false;;
|
||||
--no-info) generate_info=false;;
|
||||
--no-tex) generate_tex=false;;
|
||||
--source) shift; source_extra=$1;;
|
||||
--split) shift; split=$1;;
|
||||
--tex) shift; texarg=$1;;
|
||||
--texi2html) use_texi2html=1;;
|
||||
|
||||
--help) echo "$usage"; exit 0;;
|
||||
--version) echo "$version"; exit 0;;
|
||||
-*)
|
||||
echo "$0: Unknown option \`$1'." >&2
|
||||
echo "$0: Try \`--help' for more information." >&2
|
||||
exit 1;;
|
||||
*)
|
||||
if test -z "$PACKAGE"; then
|
||||
PACKAGE=$1
|
||||
elif test -z "$MANUAL_TITLE"; then
|
||||
MANUAL_TITLE=$1
|
||||
else
|
||||
echo "$0: extra non-option argument \`$1'." >&2
|
||||
exit 1
|
||||
fi;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# makeinfo uses the dirargs, but texi2dvi doesn't.
|
||||
commonarg=" $dirargs $commonarg"
|
||||
|
||||
# For most of the following, the base name is just $PACKAGE
|
||||
base=$PACKAGE
|
||||
|
||||
if $default_htmlarg && test -n "$use_texi2html"; then
|
||||
# The legacy texi2html doesn't support TOP_NODE_UP_URL
|
||||
htmlarg="--css-ref=https://www.gnu.org/software/gnulib/manual.css"
|
||||
fi
|
||||
|
||||
if test -n "$srcfile"; then
|
||||
# but here, we use the basename of $srcfile
|
||||
base=`basename "$srcfile"`
|
||||
case $base in
|
||||
*.txi|*.texi|*.texinfo) base=`echo "$base"|sed 's/\.[texinfo]*$//'`;;
|
||||
esac
|
||||
PACKAGE=$base
|
||||
elif test -s "$srcdir/$PACKAGE.texinfo"; then
|
||||
srcfile=$srcdir/$PACKAGE.texinfo
|
||||
elif test -s "$srcdir/$PACKAGE.texi"; then
|
||||
srcfile=$srcdir/$PACKAGE.texi
|
||||
elif test -s "$srcdir/$PACKAGE.txi"; then
|
||||
srcfile=$srcdir/$PACKAGE.txi
|
||||
else
|
||||
echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then
|
||||
echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2
|
||||
echo "$0: it is available from $templateurl." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Function to return size of $1 in something resembling kilobytes.
|
||||
calcsize()
|
||||
{
|
||||
size=`ls -ksl $1 | awk '{print $1}'`
|
||||
echo $size
|
||||
}
|
||||
|
||||
# copy_images OUTDIR HTML-FILE...
|
||||
# -------------------------------
|
||||
# Copy all the images needed by the HTML-FILEs into OUTDIR.
|
||||
# Look for them in . and the -I directories; this is simpler than what
|
||||
# makeinfo supports with -I, but hopefully it will suffice.
|
||||
copy_images()
|
||||
{
|
||||
local odir
|
||||
odir=$1
|
||||
shift
|
||||
$PERL -n -e "
|
||||
BEGIN {
|
||||
\$me = '$prog';
|
||||
\$odir = '$odir';
|
||||
@dirs = qw(. $dirs);
|
||||
}
|
||||
" -e '
|
||||
/<img src="(.*?)"/g && ++$need{$1};
|
||||
|
||||
END {
|
||||
#print "$me: @{[keys %need]}\n"; # for debugging, show images found.
|
||||
FILE: for my $f (keys %need) {
|
||||
for my $d (@dirs) {
|
||||
if (-f "$d/$f") {
|
||||
use File::Basename;
|
||||
my $dest = dirname ("$odir/$f");
|
||||
#
|
||||
use File::Path;
|
||||
-d $dest || mkpath ($dest)
|
||||
|| die "$me: cannot mkdir $dest: $!\n";
|
||||
#
|
||||
use File::Copy;
|
||||
copy ("$d/$f", $dest)
|
||||
|| die "$me: cannot copy $d/$f to $dest: $!\n";
|
||||
next FILE;
|
||||
}
|
||||
}
|
||||
die "$me: $ARGV: cannot find image $f\n";
|
||||
}
|
||||
}
|
||||
' -- "$@" || exit 1
|
||||
}
|
||||
|
||||
case $outdir in
|
||||
/*) abs_outdir=$outdir;;
|
||||
*) abs_outdir=$srcdir/$outdir;;
|
||||
esac
|
||||
|
||||
echo "Making output for $srcfile"
|
||||
echo " in `pwd`"
|
||||
mkdir -p "$outdir/"
|
||||
|
||||
#
|
||||
if $generate_info; then
|
||||
cmd="$SETLANG $MAKEINFO -o $PACKAGE.info $commonarg $infoarg \"$srcfile\""
|
||||
echo "Generating info... ($cmd)"
|
||||
rm -f $PACKAGE.info* # get rid of any strays
|
||||
eval "$cmd"
|
||||
tar czf "$outdir/$PACKAGE.info.tar.gz" $PACKAGE.info*
|
||||
ls -l "$outdir/$PACKAGE.info.tar.gz"
|
||||
info_tgz_size=`calcsize "$outdir/$PACKAGE.info.tar.gz"`
|
||||
# do not mv the info files, there's no point in having them available
|
||||
# separately on the web.
|
||||
fi # end info
|
||||
|
||||
#
|
||||
if $generate_tex; then
|
||||
cmd="$SETLANG $TEXI2DVI $dirargs $texarg \"$srcfile\""
|
||||
printf "\nGenerating dvi... ($cmd)\n"
|
||||
eval "$cmd"
|
||||
# compress/finish dvi:
|
||||
gzip -f -9 $PACKAGE.dvi
|
||||
dvi_gz_size=`calcsize $PACKAGE.dvi.gz`
|
||||
mv $PACKAGE.dvi.gz "$outdir/"
|
||||
ls -l "$outdir/$PACKAGE.dvi.gz"
|
||||
|
||||
cmd="$SETLANG $TEXI2DVI --pdf $dirargs $texarg \"$srcfile\""
|
||||
printf "\nGenerating pdf... ($cmd)\n"
|
||||
eval "$cmd"
|
||||
pdf_size=`calcsize $PACKAGE.pdf`
|
||||
mv $PACKAGE.pdf "$outdir/"
|
||||
ls -l "$outdir/$PACKAGE.pdf"
|
||||
fi # end tex (dvi + pdf)
|
||||
|
||||
#
|
||||
if $generate_ascii; then
|
||||
opt="-o $PACKAGE.txt --no-split --no-headers $commonarg"
|
||||
cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
|
||||
printf "\nGenerating ascii... ($cmd)\n"
|
||||
eval "$cmd"
|
||||
ascii_size=`calcsize $PACKAGE.txt`
|
||||
gzip -f -9 -c $PACKAGE.txt >"$outdir/$PACKAGE.txt.gz"
|
||||
ascii_gz_size=`calcsize "$outdir/$PACKAGE.txt.gz"`
|
||||
mv $PACKAGE.txt "$outdir/"
|
||||
ls -l "$outdir/$PACKAGE.txt" "$outdir/$PACKAGE.txt.gz"
|
||||
fi
|
||||
|
||||
#
|
||||
|
||||
if $generate_html; then
|
||||
# Split HTML at level $1. Used for texi2html.
|
||||
html_split()
|
||||
{
|
||||
opt="--split=$1 --node-files $commonarg $htmlarg"
|
||||
cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\""
|
||||
printf "\nGenerating html by $1... ($cmd)\n"
|
||||
eval "$cmd"
|
||||
split_html_dir=$PACKAGE.html
|
||||
(
|
||||
cd ${split_html_dir} || exit 1
|
||||
ln -sf ${PACKAGE}.html index.html
|
||||
tar -czf "$abs_outdir/${PACKAGE}.html_$1.tar.gz" -- *.html
|
||||
)
|
||||
eval html_$1_tgz_size=`calcsize "$outdir/${PACKAGE}.html_$1.tar.gz"`
|
||||
rm -f "$outdir"/html_$1/*.html
|
||||
mkdir -p "$outdir/html_$1/"
|
||||
mv ${split_html_dir}/*.html "$outdir/html_$1/"
|
||||
rmdir ${split_html_dir}
|
||||
}
|
||||
|
||||
if test -z "$use_texi2html"; then
|
||||
opt="--no-split --html -o $PACKAGE.html $commonarg $htmlarg"
|
||||
cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
|
||||
printf "\nGenerating monolithic html... ($cmd)\n"
|
||||
rm -rf $PACKAGE.html # in case a directory is left over
|
||||
eval "$cmd"
|
||||
html_mono_size=`calcsize $PACKAGE.html`
|
||||
gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz"
|
||||
html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"`
|
||||
copy_images "$outdir/" $PACKAGE.html
|
||||
mv $PACKAGE.html "$outdir/"
|
||||
ls -l "$outdir/$PACKAGE.html" "$outdir/$PACKAGE.html.gz"
|
||||
|
||||
# Before Texinfo 5.0, makeinfo did not accept a --split=HOW option,
|
||||
# it just always split by node. So if we're splitting by node anyway,
|
||||
# leave it out.
|
||||
if test "x$split" = xnode; then
|
||||
split_arg=
|
||||
else
|
||||
split_arg=--split=$split
|
||||
fi
|
||||
#
|
||||
opt="--html -o $PACKAGE.html $split_arg $commonarg $htmlarg"
|
||||
cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
|
||||
printf "\nGenerating html by $split... ($cmd)\n"
|
||||
eval "$cmd"
|
||||
split_html_dir=$PACKAGE.html
|
||||
copy_images $split_html_dir/ $split_html_dir/*.html
|
||||
(
|
||||
cd $split_html_dir || exit 1
|
||||
tar -czf "$abs_outdir/$PACKAGE.html_$split.tar.gz" -- *
|
||||
)
|
||||
eval \
|
||||
html_${split}_tgz_size=`calcsize "$outdir/$PACKAGE.html_$split.tar.gz"`
|
||||
rm -rf "$outdir/html_$split/"
|
||||
mv $split_html_dir "$outdir/html_$split/"
|
||||
du -s "$outdir/html_$split/"
|
||||
ls -l "$outdir/$PACKAGE.html_$split.tar.gz"
|
||||
|
||||
else # use texi2html:
|
||||
opt="--output $PACKAGE.html $commonarg $htmlarg"
|
||||
cmd="$SETLANG $TEXI2HTML $opt \"$srcfile\""
|
||||
printf "\nGenerating monolithic html with texi2html... ($cmd)\n"
|
||||
rm -rf $PACKAGE.html # in case a directory is left over
|
||||
eval "$cmd"
|
||||
html_mono_size=`calcsize $PACKAGE.html`
|
||||
gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz"
|
||||
html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"`
|
||||
mv $PACKAGE.html "$outdir/"
|
||||
|
||||
html_split node
|
||||
html_split chapter
|
||||
html_split section
|
||||
fi
|
||||
fi # end html
|
||||
|
||||
#
|
||||
printf "\nMaking .tar.gz for sources...\n"
|
||||
d=`dirname $srcfile`
|
||||
(
|
||||
cd "$d"
|
||||
srcfiles=`ls -d *.texinfo *.texi *.txi *.eps $source_extra 2>/dev/null` || true
|
||||
tar czfh "$abs_outdir/$PACKAGE.texi.tar.gz" $srcfiles
|
||||
ls -l "$abs_outdir/$PACKAGE.texi.tar.gz"
|
||||
)
|
||||
texi_tgz_size=`calcsize "$outdir/$PACKAGE.texi.tar.gz"`
|
||||
|
||||
#
|
||||
# Do everything again through docbook.
|
||||
if test -n "$docbook"; then
|
||||
opt="-o - --docbook $commonarg"
|
||||
cmd="$SETLANG $MAKEINFO $opt \"$srcfile\" >${srcdir}/$PACKAGE-db.xml"
|
||||
printf "\nGenerating docbook XML... ($cmd)\n"
|
||||
eval "$cmd"
|
||||
docbook_xml_size=`calcsize $PACKAGE-db.xml`
|
||||
gzip -f -9 -c $PACKAGE-db.xml >"$outdir/$PACKAGE-db.xml.gz"
|
||||
docbook_xml_gz_size=`calcsize "$outdir/$PACKAGE-db.xml.gz"`
|
||||
mv $PACKAGE-db.xml "$outdir/"
|
||||
|
||||
split_html_db_dir=html_node_db
|
||||
opt="$commonarg -o $split_html_db_dir"
|
||||
cmd="$DOCBOOK2HTML $opt \"${outdir}/$PACKAGE-db.xml\""
|
||||
printf "\nGenerating docbook HTML... ($cmd)\n"
|
||||
eval "$cmd"
|
||||
(
|
||||
cd ${split_html_db_dir} || exit 1
|
||||
tar -czf "$abs_outdir/${PACKAGE}.html_node_db.tar.gz" -- *.html
|
||||
)
|
||||
html_node_db_tgz_size=`calcsize "$outdir/${PACKAGE}.html_node_db.tar.gz"`
|
||||
rm -f "$outdir"/html_node_db/*.html
|
||||
mkdir -p "$outdir/html_node_db"
|
||||
mv ${split_html_db_dir}/*.html "$outdir/html_node_db/"
|
||||
rmdir ${split_html_db_dir}
|
||||
|
||||
cmd="$DOCBOOK2TXT \"${outdir}/$PACKAGE-db.xml\""
|
||||
printf "\nGenerating docbook ASCII... ($cmd)\n"
|
||||
eval "$cmd"
|
||||
docbook_ascii_size=`calcsize $PACKAGE-db.txt`
|
||||
mv $PACKAGE-db.txt "$outdir/"
|
||||
|
||||
cmd="$DOCBOOK2PDF \"${outdir}/$PACKAGE-db.xml\""
|
||||
printf "\nGenerating docbook PDF... ($cmd)\n"
|
||||
eval "$cmd"
|
||||
docbook_pdf_size=`calcsize $PACKAGE-db.pdf`
|
||||
mv $PACKAGE-db.pdf "$outdir/"
|
||||
fi
|
||||
|
||||
#
|
||||
printf "\nMaking index.html for $PACKAGE...\n"
|
||||
if test -z "$use_texi2html"; then
|
||||
CONDS="/%%IF *HTML_SECTION%%/,/%%ENDIF *HTML_SECTION%%/d;\
|
||||
/%%IF *HTML_CHAPTER%%/,/%%ENDIF *HTML_CHAPTER%%/d"
|
||||
else
|
||||
# should take account of --split here.
|
||||
CONDS="/%%ENDIF.*%%/d;/%%IF *HTML_SECTION%%/d;/%%IF *HTML_CHAPTER%%/d"
|
||||
fi
|
||||
|
||||
curdate=`$SETLANG date '+%B %d, %Y'`
|
||||
sed \
|
||||
-e "s!%%TITLE%%!$MANUAL_TITLE!g" \
|
||||
-e "s!%%EMAIL%%!$EMAIL!g" \
|
||||
-e "s!%%PACKAGE%%!$PACKAGE!g" \
|
||||
-e "s!%%DATE%%!$curdate!g" \
|
||||
-e "s!%%HTML_MONO_SIZE%%!$html_mono_size!g" \
|
||||
-e "s!%%HTML_MONO_GZ_SIZE%%!$html_mono_gz_size!g" \
|
||||
-e "s!%%HTML_NODE_TGZ_SIZE%%!$html_node_tgz_size!g" \
|
||||
-e "s!%%HTML_SECTION_TGZ_SIZE%%!$html_section_tgz_size!g" \
|
||||
-e "s!%%HTML_CHAPTER_TGZ_SIZE%%!$html_chapter_tgz_size!g" \
|
||||
-e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \
|
||||
-e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \
|
||||
-e "s!%%PDF_SIZE%%!$pdf_size!g" \
|
||||
-e "s!%%ASCII_SIZE%%!$ascii_size!g" \
|
||||
-e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \
|
||||
-e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \
|
||||
-e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \
|
||||
-e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \
|
||||
-e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \
|
||||
-e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \
|
||||
-e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \
|
||||
-e "s,%%SCRIPTURL%%,$scripturl,g" \
|
||||
-e "s!%%SCRIPTNAME%%!$prog!g" \
|
||||
-e "$CONDS" \
|
||||
$GENDOCS_TEMPLATE_DIR/gendocs_template >"$outdir/index.html"
|
||||
|
||||
echo "Done, see $outdir/ subdirectory for new files."
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
||||
227
BUILD/libtool-2.4.7/build-aux/git-version-gen
Executable file
227
BUILD/libtool-2.4.7/build-aux/git-version-gen
Executable file
@ -0,0 +1,227 @@
|
||||
#!/bin/sh
|
||||
# Print a version string.
|
||||
scriptversion=2022-01-27.18; # UTC
|
||||
|
||||
# Copyright (C) 2007-2022 Free Software Foundation, Inc.
|
||||
#
|
||||
# This program 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 3 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# This script is derived from GIT-VERSION-GEN from GIT: https://git-scm.com/.
|
||||
# It may be run two ways:
|
||||
# - from a git repository in which the "git describe" command below
|
||||
# produces useful output (thus requiring at least one signed tag)
|
||||
# - from a non-git-repo directory containing a .tarball-version file, which
|
||||
# presumes this script is invoked like "./git-version-gen .tarball-version".
|
||||
|
||||
# In order to use intra-version strings in your project, you will need two
|
||||
# separate generated version string files:
|
||||
#
|
||||
# .tarball-version - present only in a distribution tarball, and not in
|
||||
# a checked-out repository. Created with contents that were learned at
|
||||
# the last time autoconf was run, and used by git-version-gen. Must not
|
||||
# be present in either $(srcdir) or $(builddir) for git-version-gen to
|
||||
# give accurate answers during normal development with a checked out tree,
|
||||
# but must be present in a tarball when there is no version control system.
|
||||
# Therefore, it cannot be used in any dependencies. GNUmakefile has
|
||||
# hooks to force a reconfigure at distribution time to get the value
|
||||
# correct, without penalizing normal development with extra reconfigures.
|
||||
#
|
||||
# .version - present in a checked-out repository and in a distribution
|
||||
# tarball. Usable in dependencies, particularly for files that don't
|
||||
# want to depend on config.h but do want to track version changes.
|
||||
# Delete this file prior to any autoconf run where you want to rebuild
|
||||
# files to pick up a version string change; and leave it stale to
|
||||
# minimize rebuild time after unrelated changes to configure sources.
|
||||
#
|
||||
# As with any generated file in a VC'd directory, you should add
|
||||
# /.version to .gitignore, so that you don't accidentally commit it.
|
||||
# .tarball-version is never generated in a VC'd directory, so needn't
|
||||
# be listed there.
|
||||
#
|
||||
# Use the following line in your configure.ac, so that $(VERSION) will
|
||||
# automatically be up-to-date each time configure is run (and note that
|
||||
# since configure.ac no longer includes a version string, Makefile rules
|
||||
# should not depend on configure.ac for version updates).
|
||||
#
|
||||
# AC_INIT([GNU project],
|
||||
# m4_esyscmd([build-aux/git-version-gen .tarball-version]),
|
||||
# [bug-project@example])
|
||||
#
|
||||
# Then use the following lines in your Makefile.am, so that .version
|
||||
# will be present for dependencies, and so that .version and
|
||||
# .tarball-version will exist in distribution tarballs.
|
||||
#
|
||||
# EXTRA_DIST = $(top_srcdir)/.version
|
||||
# BUILT_SOURCES = $(top_srcdir)/.version
|
||||
# $(top_srcdir)/.version:
|
||||
# echo '$(VERSION)' > $@-t
|
||||
# mv $@-t $@
|
||||
# dist-hook:
|
||||
# echo '$(VERSION)' > $(distdir)/.tarball-version
|
||||
|
||||
|
||||
me=$0
|
||||
|
||||
year=`expr "$scriptversion" : '\([^-]*\)'`
|
||||
version="git-version-gen $scriptversion
|
||||
|
||||
Copyright (C) ${year} Free Software Foundation, Inc.
|
||||
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
|
||||
This is free software: you are free to change and redistribute it.
|
||||
There is NO WARRANTY, to the extent permitted by law."
|
||||
|
||||
usage="\
|
||||
Usage: $me [OPTION]... \$srcdir/.tarball-version [TAG-NORMALIZATION-SED-SCRIPT]
|
||||
Print a version string.
|
||||
|
||||
Options:
|
||||
|
||||
--prefix PREFIX prefix of git tags (default 'v')
|
||||
--fallback VERSION
|
||||
fallback version to use if \"git --version\" fails
|
||||
|
||||
--help display this help and exit
|
||||
--version output version information and exit
|
||||
|
||||
Running without arguments will suffice in most cases."
|
||||
|
||||
prefix=v
|
||||
fallback=
|
||||
|
||||
while test $# -gt 0; do
|
||||
case $1 in
|
||||
--help) echo "$usage"; exit 0;;
|
||||
--version) echo "$version"; exit 0;;
|
||||
--prefix) shift; prefix=${1?};;
|
||||
--fallback) shift; fallback=${1?};;
|
||||
-*)
|
||||
echo "$0: Unknown option '$1'." >&2
|
||||
echo "$0: Try '--help' for more information." >&2
|
||||
exit 1;;
|
||||
*)
|
||||
if test "x$tarball_version_file" = x; then
|
||||
tarball_version_file="$1"
|
||||
elif test "x$tag_sed_script" = x; then
|
||||
tag_sed_script="$1"
|
||||
else
|
||||
echo "$0: extra non-option argument '$1'." >&2
|
||||
exit 1
|
||||
fi;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if test "x$tarball_version_file" = x; then
|
||||
echo "$usage"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
tag_sed_script="${tag_sed_script:-s/x/x/}"
|
||||
|
||||
nl='
|
||||
'
|
||||
|
||||
# Avoid meddling by environment variable of the same name.
|
||||
v=
|
||||
v_from_git=
|
||||
|
||||
# First see if there is a tarball-only version file.
|
||||
# then try "git describe", then default.
|
||||
if test -f $tarball_version_file
|
||||
then
|
||||
v=`cat $tarball_version_file` || v=
|
||||
case $v in
|
||||
*$nl*) v= ;; # reject multi-line output
|
||||
esac
|
||||
test "x$v" = x \
|
||||
&& echo "$0: WARNING: $tarball_version_file is damaged" 1>&2
|
||||
fi
|
||||
|
||||
if test "x$v" != x
|
||||
then
|
||||
: # use $v
|
||||
# Otherwise, if there is at least one git commit involving the working
|
||||
# directory, and "git describe" output looks sensible, use that to
|
||||
# derive a version string.
|
||||
elif test "`git log -1 --pretty=format:x . 2>&1`" = x \
|
||||
&& v=`git describe --abbrev=4 --match="$prefix*" HEAD 2>/dev/null \
|
||||
|| git describe --abbrev=4 HEAD 2>/dev/null` \
|
||||
&& v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \
|
||||
&& case $v in
|
||||
$prefix[0-9]*) ;;
|
||||
*) (exit 1) ;;
|
||||
esac
|
||||
then
|
||||
# Is this a new git that lists number of commits since the last
|
||||
# tag or the previous older version that did not?
|
||||
# Newer: v6.10-77-g0f8faeb
|
||||
# Older: v6.10-g0f8faeb
|
||||
vprefix=`expr "X$v" : 'X\(.*\)-g[^-]*$'` || vprefix=$v
|
||||
case $vprefix in
|
||||
*-*) : git describe is probably okay three part flavor ;;
|
||||
*)
|
||||
: git describe is older two part flavor
|
||||
# Recreate the number of commits and rewrite such that the
|
||||
# result is the same as if we were using the newer version
|
||||
# of git describe.
|
||||
vtag=`echo "$v" | sed 's/-.*//'`
|
||||
commit_list=`git rev-list "$vtag"..HEAD 2>/dev/null` \
|
||||
|| { commit_list=failed;
|
||||
echo "$0: WARNING: git rev-list failed" 1>&2; }
|
||||
numcommits=`echo "$commit_list" | wc -l`
|
||||
v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`;
|
||||
test "$commit_list" = failed && v=UNKNOWN
|
||||
;;
|
||||
esac
|
||||
|
||||
# Change the penultimate "-" to ".", for version-comparing tools.
|
||||
# Remove the "g" to save a byte.
|
||||
v=`echo "$v" | sed 's/-\([^-]*\)-g\([^-]*\)$/.\1-\2/'`;
|
||||
v_from_git=1
|
||||
elif test "x$fallback" = x || git --version >/dev/null 2>&1; then
|
||||
v=UNKNOWN
|
||||
else
|
||||
v=$fallback
|
||||
fi
|
||||
|
||||
v=`echo "$v" |sed "s/^$prefix//"`
|
||||
|
||||
# Test whether to append the "-dirty" suffix only if the version
|
||||
# string we're using came from git. I.e., skip the test if it's "UNKNOWN"
|
||||
# or if it came from .tarball-version.
|
||||
if test "x$v_from_git" != x; then
|
||||
# Don't declare a version "dirty" merely because a timestamp has changed.
|
||||
git update-index --refresh > /dev/null 2>&1
|
||||
|
||||
dirty=`exec 2>/dev/null;git diff-index --name-only HEAD` || dirty=
|
||||
case "$dirty" in
|
||||
'') ;;
|
||||
*) # Append the suffix only if there isn't one already.
|
||||
case $v in
|
||||
*-dirty) ;;
|
||||
*) v="$v-dirty" ;;
|
||||
esac ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Omit the trailing newline, so that m4_esyscmd can use the result directly.
|
||||
printf %s "$v"
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
213
BUILD/libtool-2.4.7/build-aux/gnu-web-doc-update
Executable file
213
BUILD/libtool-2.4.7/build-aux/gnu-web-doc-update
Executable file
@ -0,0 +1,213 @@
|
||||
#!/bin/sh
|
||||
# Run this after each non-alpha release, to update the web documentation at
|
||||
# https://www.gnu.org/software/$pkg/manual/
|
||||
|
||||
VERSION=2022-01-27.18; # UTC
|
||||
|
||||
# Copyright (C) 2009-2022 Free Software Foundation, Inc.
|
||||
|
||||
# This program 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 3 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
ME=$(basename "$0")
|
||||
warn() { printf '%s: %s\n' "$ME" "$*" >&2; }
|
||||
die() { warn "$*"; exit 1; }
|
||||
|
||||
help()
|
||||
{
|
||||
cat <<EOF
|
||||
Usage: $ME
|
||||
|
||||
Run this script from top_srcdir (no arguments) after each non-alpha
|
||||
release, to update the web documentation at
|
||||
https://www.gnu.org/software/\$pkg/manual/
|
||||
|
||||
This script assumes you're using git for revision control, and
|
||||
requires a .prev-version file as well as a Makefile, from which it
|
||||
extracts the version number and package name, respectively. Also, it
|
||||
assumes all documentation is in the doc/ sub-directory.
|
||||
|
||||
Options:
|
||||
-C, --builddir=DIR location of (configured) Makefile (default: .)
|
||||
-n, --dry-run don't actually commit anything
|
||||
-m, --mirror remove out of date files from document server
|
||||
-u, --user the name of the CVS user on Savannah
|
||||
--help print this help, then exit
|
||||
--version print version number, then exit
|
||||
|
||||
Report bugs and patches to <bug-gnulib@gnu.org>.
|
||||
EOF
|
||||
exit
|
||||
}
|
||||
|
||||
version()
|
||||
{
|
||||
year=$(echo "$VERSION" | sed 's/[^0-9].*//')
|
||||
cat <<EOF
|
||||
$ME $VERSION
|
||||
Copyright (C) $year Free Software Foundation, Inc,
|
||||
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
|
||||
This is free software: you are free to change and redistribute it.
|
||||
There is NO WARRANTY, to the extent permitted by law.
|
||||
EOF
|
||||
exit
|
||||
}
|
||||
|
||||
# find_tool ENVVAR NAMES...
|
||||
# -------------------------
|
||||
# Search for a required program. Use the value of ENVVAR, if set,
|
||||
# otherwise find the first of the NAMES that can be run (i.e.,
|
||||
# supports --version). If found, set ENVVAR to the program name,
|
||||
# die otherwise.
|
||||
#
|
||||
# FIXME: code duplication, see also bootstrap.
|
||||
find_tool ()
|
||||
{
|
||||
find_tool_envvar=$1
|
||||
shift
|
||||
find_tool_names=$@
|
||||
eval "find_tool_res=\$$find_tool_envvar"
|
||||
if test x"$find_tool_res" = x; then
|
||||
for i
|
||||
do
|
||||
if ($i --version </dev/null) >/dev/null 2>&1; then
|
||||
find_tool_res=$i
|
||||
break
|
||||
fi
|
||||
done
|
||||
else
|
||||
find_tool_error_prefix="\$$find_tool_envvar: "
|
||||
fi
|
||||
test x"$find_tool_res" != x \
|
||||
|| die "one of these is required: $find_tool_names"
|
||||
($find_tool_res --version </dev/null) >/dev/null 2>&1 \
|
||||
|| die "${find_tool_error_prefix}cannot run $find_tool_res --version"
|
||||
eval "$find_tool_envvar=\$find_tool_res"
|
||||
eval "export $find_tool_envvar"
|
||||
}
|
||||
|
||||
## ------ ##
|
||||
## Main. ##
|
||||
## ------ ##
|
||||
|
||||
# Requirements: everything required to bootstrap your package, plus
|
||||
# these.
|
||||
find_tool CVS cvs
|
||||
find_tool GIT git
|
||||
find_tool RSYNC rsync
|
||||
find_tool XARGS gxargs xargs
|
||||
|
||||
builddir=.
|
||||
dryrun=
|
||||
rm_stale='echo'
|
||||
cvs_user="$USER"
|
||||
while test $# != 0
|
||||
do
|
||||
# Handle --option=value by splitting apart and putting back on argv.
|
||||
case $1 in
|
||||
--*=*)
|
||||
opt=$(echo "$1" | sed -e 's/=.*//')
|
||||
val=$(echo "$1" | sed -e 's/[^=]*=//')
|
||||
shift
|
||||
set dummy "$opt" "$val" "$@"; shift
|
||||
;;
|
||||
esac
|
||||
|
||||
case $1 in
|
||||
--help|--version) ${1#--};;
|
||||
-C|--builddir) shift; builddir=$1; shift ;;
|
||||
-n|--dry-run) dryrun=echo; shift;;
|
||||
-m|--mirror) rm_stale=''; shift;;
|
||||
-u|--user) shift; cvs_user=$1; shift ;;
|
||||
--*) die "unrecognized option: $1";;
|
||||
*) break;;
|
||||
esac
|
||||
done
|
||||
|
||||
test $# = 0 \
|
||||
|| die "too many arguments"
|
||||
|
||||
prev=.prev-version
|
||||
version=$(cat $prev) || die "no $prev file?"
|
||||
pkg=$(sed -n 's/^PACKAGE = \(.*\)/\1/p' $builddir/Makefile) \
|
||||
|| die "no Makefile?"
|
||||
tmp_branch=web-doc-$version-$$
|
||||
current_branch=$($GIT branch | sed -ne '/^\* /{s///;p;q;}')
|
||||
|
||||
cleanup()
|
||||
{
|
||||
__st=$?
|
||||
$dryrun rm -rf "$tmp"
|
||||
$GIT checkout "$current_branch"
|
||||
$GIT submodule update --recursive
|
||||
$GIT branch -d $tmp_branch
|
||||
exit $__st
|
||||
}
|
||||
trap cleanup 0
|
||||
trap 'exit $?' 1 2 13 15
|
||||
|
||||
# We must build using sources for which --version reports the
|
||||
# just-released version number, not some string like 7.6.18-20761.
|
||||
# That version string propagates into all documentation.
|
||||
set -e
|
||||
$GIT checkout -b $tmp_branch v$version
|
||||
$GIT submodule update --recursive
|
||||
./bootstrap
|
||||
srcdir=$(pwd)
|
||||
cd "$builddir"
|
||||
builddir=$(pwd)
|
||||
./config.status --recheck
|
||||
./config.status
|
||||
make
|
||||
make web-manual
|
||||
cd "$srcdir"
|
||||
set +e
|
||||
|
||||
tmp=$(mktemp -d web-doc-update.XXXXXX) || exit 1
|
||||
( cd $tmp \
|
||||
&& $CVS -d $cvs_user@cvs.sv.gnu.org:/webcvs/$pkg co $pkg )
|
||||
$RSYNC -avP "$builddir"/doc/manual/ $tmp/$pkg/manual
|
||||
|
||||
(
|
||||
cd $tmp/$pkg/manual
|
||||
|
||||
# Add all the files. This is simpler than trying to add only the
|
||||
# new ones because of new directories
|
||||
# First add non empty dirs individually
|
||||
find . -name CVS -prune -o -type d \! -empty -print \
|
||||
| $XARGS -n1 --no-run-if-empty -- $dryrun $CVS add -ko
|
||||
# Now add all files
|
||||
find . -name CVS -prune -o -type f -print \
|
||||
| $XARGS --no-run-if-empty -- $dryrun $CVS add -ko
|
||||
|
||||
# Report/Remove stale files
|
||||
# excluding doc server specific files like CVS/* and .symlinks
|
||||
if test -n "$rm_stale"; then
|
||||
echo 'Consider the --mirror option if all of the manual is generated,' >&2
|
||||
echo 'which will run `cvs remove` to remove stale files.' >&2
|
||||
fi
|
||||
{ find . \( -name CVS -o -type f -name '.*' \) -prune -o -type f -print
|
||||
(cd "$builddir"/doc/manual/ && find . -type f -print | sed p)
|
||||
} | sort | uniq -u \
|
||||
| $XARGS --no-run-if-empty -- ${rm_stale:-$dryrun} $CVS remove -f
|
||||
|
||||
$dryrun $CVS ci -m $version
|
||||
)
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "VERSION="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
480
BUILD/libtool-2.4.7/build-aux/gnupload
Executable file
480
BUILD/libtool-2.4.7/build-aux/gnupload
Executable file
@ -0,0 +1,480 @@
|
||||
#!/bin/sh
|
||||
# Sign files and upload them.
|
||||
|
||||
scriptversion=2022-01-27.18; # UTC
|
||||
|
||||
# Copyright (C) 2004-2022 Free Software Foundation, Inc.
|
||||
#
|
||||
# This program 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, 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# Originally written by Alexandre Duret-Lutz <adl@gnu.org>.
|
||||
# The master copy of this file is maintained in the gnulib Git repository.
|
||||
# Please send bug reports and feature requests to bug-gnulib@gnu.org.
|
||||
|
||||
set -e
|
||||
|
||||
GPG=gpg
|
||||
# Choose the proper version of gpg, so as to avoid a
|
||||
# "gpg-agent is not available in this session" error
|
||||
# when gpg-agent is version 2 but gpg is still version 1.
|
||||
# FIXME-2020: remove, once all major distros ship gpg version 2 as /usr/bin/gpg
|
||||
gpg_agent_version=`(gpg-agent --version) 2>/dev/null | sed -e '2,$d' -e 's/^[^0-9]*//'`
|
||||
case "$gpg_agent_version" in
|
||||
2.*)
|
||||
gpg_version=`(gpg --version) 2>/dev/null | sed -e '2,$d' -e 's/^[^0-9]*//'`
|
||||
case "$gpg_version" in
|
||||
1.*)
|
||||
if (type gpg2) >/dev/null 2>/dev/null; then
|
||||
# gpg2 is present.
|
||||
GPG=gpg2
|
||||
else
|
||||
# gpg2 is missing. Ubuntu users should install the package 'gnupg2'.
|
||||
echo "WARNING: Using 'gpg', which is too old. You should install 'gpg2'." 1>&2
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
GPG="${GPG} --batch --no-tty"
|
||||
conffile=.gnuploadrc
|
||||
to=
|
||||
dry_run=false
|
||||
replace=
|
||||
symlink_files=
|
||||
delete_files=
|
||||
delete_symlinks=
|
||||
collect_var=
|
||||
dbg=
|
||||
nl='
|
||||
'
|
||||
|
||||
usage="Usage: $0 [OPTION]... [CMD] FILE... [[CMD] FILE...]
|
||||
|
||||
Sign all FILES, and process them at the destinations specified with --to.
|
||||
If CMD is not given, it defaults to uploading. See examples below.
|
||||
|
||||
Commands:
|
||||
--delete delete FILES from destination
|
||||
--symlink create symbolic links
|
||||
--rmsymlink remove symbolic links
|
||||
-- treat the remaining arguments as files to upload
|
||||
|
||||
Options:
|
||||
--to DEST specify a destination DEST for FILES
|
||||
(multiple --to options are allowed)
|
||||
--user NAME sign with key NAME
|
||||
--replace allow replacements of existing files
|
||||
--symlink-regex[=EXPR] use sed script EXPR to compute symbolic link names
|
||||
-n, --dry-run do nothing, show what would have been done
|
||||
(including the constructed directive file)
|
||||
--version output version information and exit
|
||||
-h, --help print this help text and exit
|
||||
|
||||
If --symlink-regex is given without EXPR, then the link target name
|
||||
is created by replacing the version information with '-latest', e.g.:
|
||||
foo-1.3.4.tar.gz -> foo-latest.tar.gz
|
||||
|
||||
Recognized destinations are:
|
||||
alpha.gnu.org:DIRECTORY
|
||||
savannah.gnu.org:DIRECTORY
|
||||
savannah.nongnu.org:DIRECTORY
|
||||
ftp.gnu.org:DIRECTORY
|
||||
build directive files and upload files by FTP
|
||||
download.gnu.org.ua:{alpha|ftp}/DIRECTORY
|
||||
build directive files and upload files by SFTP
|
||||
[user@]host:DIRECTORY upload files with scp
|
||||
|
||||
Options and commands are applied in order. If the file $conffile exists
|
||||
in the current working directory, its contents are prepended to the
|
||||
actual command line options. Use this to keep your defaults. Comments
|
||||
(#) and empty lines in $conffile are allowed.
|
||||
|
||||
<https://www.gnu.org/prep/maintain/html_node/Automated-FTP-Uploads.html>
|
||||
gives some further background.
|
||||
|
||||
Examples:
|
||||
1. Upload foobar-1.0.tar.gz to ftp.gnu.org:
|
||||
gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz
|
||||
|
||||
2. Upload foobar-1.0.tar.gz and foobar-1.0.tar.xz to ftp.gnu.org:
|
||||
gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz foobar-1.0.tar.xz
|
||||
|
||||
3. Same as above, and also create symbolic links to foobar-latest.tar.*:
|
||||
gnupload --to ftp.gnu.org:foobar \\
|
||||
--symlink-regex \\
|
||||
foobar-1.0.tar.gz foobar-1.0.tar.xz
|
||||
|
||||
4. Create a symbolic link foobar-latest.tar.gz -> foobar-1.0.tar.gz
|
||||
and likewise for the corresponding .sig file:
|
||||
gnupload --to ftp.gnu.org:foobar \\
|
||||
--symlink foobar-1.0.tar.gz foobar-latest.tar.gz \\
|
||||
foobar-1.0.tar.gz.sig foobar-latest.tar.gz.sig
|
||||
or (equivalent):
|
||||
gnupload --to ftp.gnu.org:foobar \\
|
||||
--symlink foobar-1.0.tar.gz foobar-latest.tar.gz \\
|
||||
--symlink foobar-1.0.tar.gz.sig foobar-latest.tar.gz.sig
|
||||
|
||||
5. Upload foobar-0.9.90.tar.gz to two sites:
|
||||
gnupload --to alpha.gnu.org:foobar \\
|
||||
--to sources.redhat.com:~ftp/pub/foobar \\
|
||||
foobar-0.9.90.tar.gz
|
||||
|
||||
6. Delete oopsbar-0.9.91.tar.gz and upload foobar-0.9.91.tar.gz
|
||||
(the -- terminates the list of files to delete):
|
||||
gnupload --to alpha.gnu.org:foobar \\
|
||||
--to sources.redhat.com:~ftp/pub/foobar \\
|
||||
--delete oopsbar-0.9.91.tar.gz \\
|
||||
-- foobar-0.9.91.tar.gz
|
||||
|
||||
gnupload executes a program ncftpput to do the transfers; if you don't
|
||||
happen to have an ncftp package installed, the ncftpput-ftp script in
|
||||
the build-aux/ directory of the gnulib package
|
||||
(https://savannah.gnu.org/projects/gnulib) may serve as a replacement.
|
||||
|
||||
Send patches and bug reports to <bug-gnulib@gnu.org>."
|
||||
|
||||
copyright_year=`echo "$scriptversion" | sed -e 's/[^0-9].*//'`
|
||||
copyright="Copyright (C) ${copyright_year} Free Software Foundation, Inc.
|
||||
License GPLv2+: GNU GPL version 2 or later <https://gnu.org/licenses/gpl.html>.
|
||||
This is free software: you are free to change and redistribute it.
|
||||
There is NO WARRANTY, to the extent permitted by law."
|
||||
|
||||
# Read local configuration file
|
||||
if test -r "$conffile"; then
|
||||
echo "$0: Reading configuration file $conffile"
|
||||
conf=`sed 's/#.*$//;/^$/d' "$conffile" | tr "\015$nl" ' '`
|
||||
eval set x "$conf \"\$@\""
|
||||
shift
|
||||
fi
|
||||
|
||||
while test -n "$1"; do
|
||||
case $1 in
|
||||
-*)
|
||||
collect_var=
|
||||
case $1 in
|
||||
-h | --help)
|
||||
echo "$usage"
|
||||
exit $?
|
||||
;;
|
||||
--to)
|
||||
if test -z "$2"; then
|
||||
echo "$0: Missing argument for --to" 1>&2
|
||||
exit 1
|
||||
elif echo "$2" | grep 'ftp-upload\.gnu\.org' >/dev/null; then
|
||||
echo "$0: Use ftp.gnu.org:PKGNAME or alpha.gnu.org:PKGNAME" >&2
|
||||
echo "$0: for the destination, not ftp-upload.gnu.org (which" >&2
|
||||
echo "$0: is used for direct ftp uploads, not with gnupload)." >&2
|
||||
echo "$0: See --help and its examples if need be." >&2
|
||||
exit 1
|
||||
else
|
||||
to="$to $2"
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
--user)
|
||||
if test -z "$2"; then
|
||||
echo "$0: Missing argument for --user" 1>&2
|
||||
exit 1
|
||||
else
|
||||
GPG="$GPG --local-user $2"
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
--delete)
|
||||
collect_var=delete_files
|
||||
;;
|
||||
--replace)
|
||||
replace="replace: true"
|
||||
;;
|
||||
--rmsymlink)
|
||||
collect_var=delete_symlinks
|
||||
;;
|
||||
--symlink-regex=*)
|
||||
symlink_expr=`expr "$1" : '[^=]*=\(.*\)'`
|
||||
;;
|
||||
--symlink-regex)
|
||||
symlink_expr='s|-[0-9][0-9\.]*\(-[0-9][0-9]*\)\{0,1\}\.|-latest.|'
|
||||
;;
|
||||
--symlink)
|
||||
collect_var=symlink_files
|
||||
;;
|
||||
-n | --dry-run)
|
||||
dry_run=:
|
||||
;;
|
||||
--version)
|
||||
echo "gnupload $scriptversion"
|
||||
echo "$copyright"
|
||||
exit 0
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break
|
||||
;;
|
||||
-*)
|
||||
echo "$0: Unknown option '$1', try '$0 --help'" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
if test -z "$collect_var"; then
|
||||
break
|
||||
else
|
||||
eval "$collect_var=\"\$$collect_var $1\""
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
dprint()
|
||||
{
|
||||
echo "Running $* ..."
|
||||
}
|
||||
|
||||
if $dry_run; then
|
||||
dbg=dprint
|
||||
fi
|
||||
|
||||
if test -z "$to"; then
|
||||
echo "$0: Missing destination sites" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -n "$symlink_files"; then
|
||||
x=`echo "$symlink_files" | sed 's/[^ ]//g;s/ //g'`
|
||||
if test -n "$x"; then
|
||||
echo "$0: Odd number of symlink arguments" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $# = 0; then
|
||||
if test -z "${symlink_files}${delete_files}${delete_symlinks}"; then
|
||||
echo "$0: No file to upload" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
# Make sure all files exist. We don't want to ask
|
||||
# for the passphrase if the script will fail.
|
||||
for file
|
||||
do
|
||||
if test ! -f $file; then
|
||||
echo "$0: Cannot find '$file'" 1>&2
|
||||
exit 1
|
||||
elif test -n "$symlink_expr"; then
|
||||
linkname=`echo $file | sed "$symlink_expr"`
|
||||
if test -z "$linkname"; then
|
||||
echo "$0: symlink expression produces empty results" >&2
|
||||
exit 1
|
||||
elif test "$linkname" = $file; then
|
||||
echo "$0: symlink expression does not alter file name" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Make sure passphrase is not exported in the environment.
|
||||
unset passphrase
|
||||
unset passphrase_fd_0
|
||||
GNUPGHOME=${GNUPGHOME:-$HOME/.gnupg}
|
||||
|
||||
# Reset PATH to be sure that echo is a built-in. We will later use
|
||||
# 'echo $passphrase' to output the passphrase, so it is important that
|
||||
# it is a built-in (third-party programs tend to appear in 'ps'
|
||||
# listings with their arguments...).
|
||||
# Remember this script runs with 'set -e', so if echo is not built-in
|
||||
# it will exit now.
|
||||
if $dry_run || grep -q "^use-agent" $GNUPGHOME/gpg.conf; then :; else
|
||||
PATH=/empty echo -n "Enter GPG passphrase: "
|
||||
stty -echo
|
||||
read -r passphrase
|
||||
stty echo
|
||||
echo
|
||||
passphrase_fd_0="--passphrase-fd 0"
|
||||
fi
|
||||
|
||||
if test $# -ne 0; then
|
||||
for file
|
||||
do
|
||||
echo "Signing $file ..."
|
||||
rm -f $file.sig
|
||||
echo "$passphrase" | $dbg $GPG $passphrase_fd_0 -ba -o $file.sig $file
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
# mkdirective DESTDIR BASE FILE STMT
|
||||
# Arguments: See upload, below
|
||||
mkdirective ()
|
||||
{
|
||||
stmt="$4"
|
||||
if test -n "$3"; then
|
||||
stmt="
|
||||
filename: $3$stmt"
|
||||
fi
|
||||
|
||||
cat >${2}.directive<<EOF
|
||||
version: 1.2
|
||||
directory: $1
|
||||
comment: gnupload v. $scriptversion$stmt
|
||||
EOF
|
||||
if $dry_run; then
|
||||
echo "File ${2}.directive:"
|
||||
cat ${2}.directive
|
||||
echo "File ${2}.directive:" | sed 's/./-/g'
|
||||
fi
|
||||
}
|
||||
|
||||
mksymlink ()
|
||||
{
|
||||
while test $# -ne 0
|
||||
do
|
||||
echo "symlink: $1 $2"
|
||||
shift
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
# upload DEST DESTDIR BASE FILE STMT FILES
|
||||
# Arguments:
|
||||
# DEST Destination site;
|
||||
# DESTDIR Destination directory;
|
||||
# BASE Base name for the directive file;
|
||||
# FILE Name of the file to distribute (may be empty);
|
||||
# STMT Additional statements for the directive file;
|
||||
# FILES List of files to upload.
|
||||
upload ()
|
||||
{
|
||||
dest=$1
|
||||
destdir=$2
|
||||
base=$3
|
||||
file=$4
|
||||
stmt=$5
|
||||
files=$6
|
||||
|
||||
rm -f $base.directive $base.directive.asc
|
||||
case $dest in
|
||||
alpha.gnu.org:*)
|
||||
mkdirective "$destdir" "$base" "$file" "$stmt"
|
||||
echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
|
||||
$dbg ncftpput ftp-upload.gnu.org /incoming/alpha $files $base.directive.asc
|
||||
;;
|
||||
ftp.gnu.org:*)
|
||||
mkdirective "$destdir" "$base" "$file" "$stmt"
|
||||
echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
|
||||
$dbg ncftpput ftp-upload.gnu.org /incoming/ftp $files $base.directive.asc
|
||||
;;
|
||||
savannah.gnu.org:*)
|
||||
if test -z "$files"; then
|
||||
echo "$0: warning: standalone directives not applicable for $dest" >&2
|
||||
fi
|
||||
$dbg ncftpput savannah.gnu.org /incoming/savannah/$destdir $files
|
||||
;;
|
||||
savannah.nongnu.org:*)
|
||||
if test -z "$files"; then
|
||||
echo "$0: warning: standalone directives not applicable for $dest" >&2
|
||||
fi
|
||||
$dbg ncftpput savannah.nongnu.org /incoming/savannah/$destdir $files
|
||||
;;
|
||||
download.gnu.org.ua:alpha/*|download.gnu.org.ua:ftp/*)
|
||||
destdir_p1=`echo "$destdir" | sed 's,^[^/]*/,,'`
|
||||
destdir_topdir=`echo "$destdir" | sed 's,/.*,,'`
|
||||
mkdirective "$destdir_p1" "$base" "$file" "$stmt"
|
||||
echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
|
||||
for f in $files $base.directive.asc
|
||||
do
|
||||
echo put $f
|
||||
done | $dbg sftp -b - puszcza.gnu.org.ua:/incoming/$destdir_topdir
|
||||
;;
|
||||
/*)
|
||||
dest_host=`echo "$dest" | sed 's,:.*,,'`
|
||||
mkdirective "$destdir" "$base" "$file" "$stmt"
|
||||
echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
|
||||
$dbg cp $files $base.directive.asc $dest_host
|
||||
;;
|
||||
*)
|
||||
if test -z "$files"; then
|
||||
echo "$0: warning: standalone directives not applicable for $dest" >&2
|
||||
fi
|
||||
$dbg scp $files $dest
|
||||
;;
|
||||
esac
|
||||
rm -f $base.directive $base.directive.asc
|
||||
}
|
||||
|
||||
#####
|
||||
# Process any standalone directives
|
||||
stmt=
|
||||
if test -n "$symlink_files"; then
|
||||
stmt="$stmt
|
||||
`mksymlink $symlink_files`"
|
||||
fi
|
||||
|
||||
for file in $delete_files
|
||||
do
|
||||
stmt="$stmt
|
||||
archive: $file"
|
||||
done
|
||||
|
||||
for file in $delete_symlinks
|
||||
do
|
||||
stmt="$stmt
|
||||
rmsymlink: $file"
|
||||
done
|
||||
|
||||
if test -n "$stmt"; then
|
||||
for dest in $to
|
||||
do
|
||||
destdir=`echo $dest | sed 's/[^:]*://'`
|
||||
upload "$dest" "$destdir" "`hostname`-$$" "" "$stmt"
|
||||
done
|
||||
fi
|
||||
|
||||
# Process actual uploads
|
||||
for dest in $to
|
||||
do
|
||||
for file
|
||||
do
|
||||
echo "Uploading $file to $dest ..."
|
||||
stmt=
|
||||
#
|
||||
# allowing file replacement is all or nothing.
|
||||
if test -n "$replace"; then stmt="$stmt
|
||||
$replace"
|
||||
fi
|
||||
#
|
||||
files="$file $file.sig"
|
||||
destdir=`echo $dest | sed 's/[^:]*://'`
|
||||
if test -n "$symlink_expr"; then
|
||||
linkname=`echo $file | sed "$symlink_expr"`
|
||||
stmt="$stmt
|
||||
symlink: $file $linkname
|
||||
symlink: $file.sig $linkname.sig"
|
||||
fi
|
||||
upload "$dest" "$destdir" "$file" "$file" "$stmt" "$files"
|
||||
done
|
||||
done
|
||||
|
||||
exit 0
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
159
BUILD/libtool-2.4.7/build-aux/inline-source
Executable file
159
BUILD/libtool-2.4.7/build-aux/inline-source
Executable file
@ -0,0 +1,159 @@
|
||||
#! /bin/sh
|
||||
|
||||
# Output the contents of a shell script with sourced files inlined.
|
||||
# Written by Gary V. Vaughan, 2012
|
||||
|
||||
# This is free software. There is NO warranty; not even for
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
#
|
||||
# Copyright (C) 2012-2019, 2021 Bootstrap Authors
|
||||
#
|
||||
# This file is dual licensed under the terms of the MIT license
|
||||
# <https://opensource.org/license/MIT>, and GPL version 2 or later
|
||||
# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
|
||||
# these licenses when using or redistributing this software or any of
|
||||
# the files within it. See the URLs above, or the file `LICENSE`
|
||||
# included in the Bootstrap distribution for the full license texts.
|
||||
|
||||
# Please report bugs or propose patches to:
|
||||
# <https://github.com/gnulib-modules/bootstrap/issues>
|
||||
|
||||
# Source required external libraries:
|
||||
. `echo "$0" |${SED-sed} 's|[^/]*$||'`"funclib.sh"
|
||||
. `echo "$0" |${SED-sed} 's|[^/]*$||'`"options-parser"
|
||||
|
||||
# Set a version string for *this* script.
|
||||
scriptversion=2019-02-19.15; # UTC
|
||||
|
||||
|
||||
## ------ ##
|
||||
## Usage. ##
|
||||
## ------ ##
|
||||
|
||||
# Run 'build-aux/inline-source --help' for help with using this script
|
||||
# from the command line.
|
||||
|
||||
# Recursively scan through a FILE passed on the command line, replacing
|
||||
# either of the following:
|
||||
# . "relative/file"
|
||||
# . `echo "$0" |edit`"relative/file"
|
||||
# with the contents of the referenced files.
|
||||
|
||||
|
||||
## ---------------- ##
|
||||
## Options parsing. ##
|
||||
## ---------------- ##
|
||||
|
||||
usage='$progpath [OPTION]... FILE'
|
||||
|
||||
# Short help message in response to '-h'.
|
||||
usage_message='Options:
|
||||
--debug enable verbose shell tracing
|
||||
--version print version information and exit
|
||||
-h, --help print help message and exit
|
||||
'
|
||||
|
||||
long_help_message="\
|
||||
Report bugs to <bug-libtool@gnu.org>
|
||||
General help using GNU software: <http://www.gnu.org/gethelp/>."
|
||||
|
||||
func_options ${1+"$@"}
|
||||
eval set dummy "$func_options_result"; shift
|
||||
|
||||
|
||||
## -------------------- ##
|
||||
## Resource management. ##
|
||||
## -------------------- ##
|
||||
|
||||
# require_AWK
|
||||
# -----------
|
||||
# Search for a "not hopeless" awk.
|
||||
require_AWK=func_require_AWK
|
||||
func_require_AWK ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
test -n "$AWK" || {
|
||||
# Find the first executable in the list.
|
||||
for _G_prog in gawk mawk nawk awk
|
||||
do
|
||||
require_AWK_IFS=$IFS
|
||||
IFS=${PATH_SEPARATOR-:}
|
||||
for _G_dir in $PATH
|
||||
do
|
||||
IFS=$require_AWK_IFS
|
||||
if test -f "$_G_dir/$_G_prog" && test -x "$_G_dir/$_G_prog"
|
||||
then
|
||||
AWK=$_G_dir/$_G_prog
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
IFS=$require_AWK_IFS
|
||||
done
|
||||
}
|
||||
|
||||
test -n "$AWK" || func_fatal_error "\
|
||||
Please install GNU Awk, or 'export AWK=/path/to/gnu/awk'."
|
||||
|
||||
func_verbose "found '$AWK'."
|
||||
|
||||
require_AWK=:
|
||||
}
|
||||
|
||||
|
||||
## --------------- ##
|
||||
## Core functions. ##
|
||||
## --------------- ##
|
||||
|
||||
# func_include LINE
|
||||
# -----------------
|
||||
# Output the contents of file included by LINE.
|
||||
func_include ()
|
||||
{
|
||||
$require_AWK
|
||||
|
||||
test -f "$1" \
|
||||
|| func_fatal_error "file '$1' not found"
|
||||
|
||||
_G_scriptdir=`echo "$1" |$SED 's|[^/]*$||'`
|
||||
test -n "$_G_scriptdir" || _G_scriptdir="./"
|
||||
|
||||
$AWK '
|
||||
BEGIN { magic = '${_RECURSE_MAGIC-0}'; }
|
||||
|
||||
/^#!/ && magic == 0 {
|
||||
print $0;
|
||||
print "## DO NOT EDIT - This file generated from '$1'";
|
||||
print "## by '$progname' v'$scriptversion'";
|
||||
magic++;
|
||||
next;
|
||||
}
|
||||
|
||||
/^\. ['\''"].*['\''"]$/ {
|
||||
file = substr ($2, 2, length ($2) -2);
|
||||
system (sprintf ("env _RECURSE_MAGIC=%d '$progpath' %s", magic, file));
|
||||
next;
|
||||
}
|
||||
|
||||
/^\. `echo [^`]*`['\''"][^'\''"]*['\''"]$/ {
|
||||
tail = substr ($0, match ($0, /`['\''"]/));
|
||||
file = substr (tail, 3, length (tail) -3);
|
||||
system (sprintf ("env _RECURSE_MAGIC=%d '$progpath' '"$_G_scriptdir"'%s", magic, file));
|
||||
next;
|
||||
}
|
||||
|
||||
{ print; }
|
||||
' < "$1"
|
||||
}
|
||||
|
||||
func_include "$1"
|
||||
|
||||
exit 0
|
||||
|
||||
# Local variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# End:
|
||||
541
BUILD/libtool-2.4.7/build-aux/install-sh
Executable file
541
BUILD/libtool-2.4.7/build-aux/install-sh
Executable file
@ -0,0 +1,541 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2020-11-14.01; # UTC
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
# following copyright and license.
|
||||
#
|
||||
# Copyright (C) 1994 X Consortium
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to
|
||||
# deal in the Software without restriction, including without limitation the
|
||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
# sell copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
||||
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# Except as contained in this notice, the name of the X Consortium shall not
|
||||
# be used in advertising or otherwise to promote the sale, use or other deal-
|
||||
# ings in this Software without prior written authorization from the X Consor-
|
||||
# tium.
|
||||
#
|
||||
#
|
||||
# FSF changes to this file are in the public domain.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# 'make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch.
|
||||
|
||||
tab=' '
|
||||
nl='
|
||||
'
|
||||
IFS=" $tab$nl"
|
||||
|
||||
# Set DOITPROG to "echo" to test this script.
|
||||
|
||||
doit=${DOITPROG-}
|
||||
doit_exec=${doit:-exec}
|
||||
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
|
||||
chgrpprog=${CHGRPPROG-chgrp}
|
||||
chmodprog=${CHMODPROG-chmod}
|
||||
chownprog=${CHOWNPROG-chown}
|
||||
cmpprog=${CMPPROG-cmp}
|
||||
cpprog=${CPPROG-cp}
|
||||
mkdirprog=${MKDIRPROG-mkdir}
|
||||
mvprog=${MVPROG-mv}
|
||||
rmprog=${RMPROG-rm}
|
||||
stripprog=${STRIPPROG-strip}
|
||||
|
||||
posix_mkdir=
|
||||
|
||||
# Desired mode of installed file.
|
||||
mode=0755
|
||||
|
||||
# Create dirs (including intermediate dirs) using mode 755.
|
||||
# This is like GNU 'install' as of coreutils 8.32 (2020).
|
||||
mkdir_umask=22
|
||||
|
||||
backupsuffix=
|
||||
chgrpcmd=
|
||||
chmodcmd=$chmodprog
|
||||
chowncmd=
|
||||
mvcmd=$mvprog
|
||||
rmcmd="$rmprog -f"
|
||||
stripcmd=
|
||||
|
||||
src=
|
||||
dst=
|
||||
dir_arg=
|
||||
dst_arg=
|
||||
|
||||
copy_on_change=false
|
||||
is_target_a_directory=possibly
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||
or: $0 [OPTION]... -d DIRECTORIES...
|
||||
|
||||
In the 1st form, copy SRCFILE to DSTFILE.
|
||||
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||
In the 4th, create DIRECTORIES.
|
||||
|
||||
Options:
|
||||
--help display this help and exit.
|
||||
--version display version info and exit.
|
||||
|
||||
-c (ignored)
|
||||
-C install only if different (preserve data modification time)
|
||||
-d create directories instead of installing files.
|
||||
-g GROUP $chgrpprog installed files to GROUP.
|
||||
-m MODE $chmodprog installed files to MODE.
|
||||
-o USER $chownprog installed files to USER.
|
||||
-p pass -p to $cpprog.
|
||||
-s $stripprog installed files.
|
||||
-S SUFFIX attempt to back up existing files, with suffix SUFFIX.
|
||||
-t DIRECTORY install into DIRECTORY.
|
||||
-T report an error if DSTFILE is a directory.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||
RMPROG STRIPPROG
|
||||
|
||||
By default, rm is invoked with -f; when overridden with RMPROG,
|
||||
it's up to you to specify -f if you want it.
|
||||
|
||||
If -S is not specified, no backups are attempted.
|
||||
|
||||
Email bug reports to bug-automake@gnu.org.
|
||||
Automake home page: https://www.gnu.org/software/automake/
|
||||
"
|
||||
|
||||
while test $# -ne 0; do
|
||||
case $1 in
|
||||
-c) ;;
|
||||
|
||||
-C) copy_on_change=true;;
|
||||
|
||||
-d) dir_arg=true;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) mode=$2
|
||||
case $mode in
|
||||
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift;;
|
||||
|
||||
-p) cpprog="$cpprog -p";;
|
||||
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-S) backupsuffix="$2"
|
||||
shift;;
|
||||
|
||||
-t)
|
||||
is_target_a_directory=always
|
||||
dst_arg=$2
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-T) is_target_a_directory=never;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# We allow the use of options -d and -T together, by making -d
|
||||
# take the precedence; this is for compatibility with GNU install.
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
if test -n "$dst_arg"; then
|
||||
echo "$0: target directory not allowed when installing a directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||
for arg
|
||||
do
|
||||
if test -n "$dst_arg"; then
|
||||
# $@ is not empty: it contains at least $arg.
|
||||
set fnord "$@" "$dst_arg"
|
||||
shift # fnord
|
||||
fi
|
||||
shift # arg
|
||||
dst_arg=$arg
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
if test $# -eq 0; then
|
||||
if test -z "$dir_arg"; then
|
||||
echo "$0: no input file specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
# It's OK to call 'install-sh -d' without argument.
|
||||
# This can happen when creating conditional directories.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
if test $# -gt 1 || test "$is_target_a_directory" = always; then
|
||||
if test ! -d "$dst_arg"; then
|
||||
echo "$0: $dst_arg: Is not a directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
do_exit='(exit $ret); exit $ret'
|
||||
trap "ret=129; $do_exit" 1
|
||||
trap "ret=130; $do_exit" 2
|
||||
trap "ret=141; $do_exit" 13
|
||||
trap "ret=143; $do_exit" 15
|
||||
|
||||
# Set umask so as not to create temps with too-generous modes.
|
||||
# However, 'strip' requires both read and write access to temps.
|
||||
case $mode in
|
||||
# Optimize common cases.
|
||||
*644) cp_umask=133;;
|
||||
*755) cp_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
fi
|
||||
|
||||
for src
|
||||
do
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $src in
|
||||
-* | [=\(\)!]) src=./$src;;
|
||||
esac
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
dst=$src
|
||||
dstdir=$dst
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
# Don't chown directories that already exist.
|
||||
if test $dstdir_status = 0; then
|
||||
chowncmd=""
|
||||
fi
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
if test ! -f "$src" && test ! -d "$src"; then
|
||||
echo "$0: $src does not exist." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$dst_arg"; then
|
||||
echo "$0: no destination specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
dst=$dst_arg
|
||||
|
||||
# If destination is a directory, append the input filename.
|
||||
if test -d "$dst"; then
|
||||
if test "$is_target_a_directory" = never; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dstbase=`basename "$src"`
|
||||
case $dst in
|
||||
*/) dst=$dst$dstbase;;
|
||||
*) dst=$dst/$dstbase;;
|
||||
esac
|
||||
dstdir_status=0
|
||||
else
|
||||
dstdir=`dirname "$dst"`
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
case $dstdir in
|
||||
*/) dstdirslash=$dstdir;;
|
||||
*) dstdirslash=$dstdir/;;
|
||||
esac
|
||||
|
||||
obsolete_mkdir_used=false
|
||||
|
||||
if test $dstdir_status != 0; then
|
||||
case $posix_mkdir in
|
||||
'')
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
# The $RANDOM variable is not portable (e.g., dash). Use it
|
||||
# here however when possible just to lower collision chance.
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
|
||||
trap '
|
||||
ret=$?
|
||||
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
|
||||
exit $ret
|
||||
' 0
|
||||
|
||||
# Because "mkdir -p" follows existing symlinks and we likely work
|
||||
# directly in world-writeable /tmp, make sure that the '$tmpdir'
|
||||
# directory is successfully created first before we actually test
|
||||
# 'mkdir -p'.
|
||||
if (umask $mkdir_umask &&
|
||||
$mkdirprog $mkdir_mode "$tmpdir" &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
test_tmpdir="$tmpdir/a"
|
||||
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
else
|
||||
|
||||
# mkdir does not conform to POSIX,
|
||||
# or it failed possibly due to a race condition. Create the
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test X"$d" = X && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
||||
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
||||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
|
||||
else
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
dsttmp=${dstdirslash}_inst.$$_
|
||||
rmtmp=${dstdirslash}_rm.$$_
|
||||
|
||||
# Trap to clean up those temp files at exit.
|
||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||
|
||||
# Copy the file name to the temp name.
|
||||
(umask $cp_umask &&
|
||||
{ test -z "$stripcmd" || {
|
||||
# Create $dsttmp read-write so that cp doesn't create it read-only,
|
||||
# which would cause strip to fail.
|
||||
if test -z "$doit"; then
|
||||
: >"$dsttmp" # No need to fork-exec 'touch'.
|
||||
else
|
||||
$doit touch "$dsttmp"
|
||||
fi
|
||||
}
|
||||
} &&
|
||||
$doit_exec $cpprog "$src" "$dsttmp") &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits.
|
||||
#
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||
#
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
|
||||
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
|
||||
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
|
||||
|
||||
# If -C, don't bother to copy if it wouldn't change the file.
|
||||
if $copy_on_change &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
set +f &&
|
||||
test "$old" = "$new" &&
|
||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||
then
|
||||
rm -f "$dsttmp"
|
||||
else
|
||||
# If $backupsuffix is set, and the file being installed
|
||||
# already exists, attempt a backup. Don't worry if it fails,
|
||||
# e.g., if mv doesn't support -f.
|
||||
if test -n "$backupsuffix" && test -f "$dst"; then
|
||||
$doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
|
||||
fi
|
||||
|
||||
# Rename the file to the real destination.
|
||||
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
||||
|
||||
# The rename failed, perhaps because mv can't rename something else
|
||||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
{
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
fi || exit 1
|
||||
|
||||
trap '' 0
|
||||
fi
|
||||
done
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
9286
BUILD/libtool-2.4.7/build-aux/ltmain.in
Normal file
9286
BUILD/libtool-2.4.7/build-aux/ltmain.in
Normal file
File diff suppressed because it is too large
Load Diff
11436
BUILD/libtool-2.4.7/build-aux/ltmain.sh
Normal file
11436
BUILD/libtool-2.4.7/build-aux/ltmain.sh
Normal file
File diff suppressed because it is too large
Load Diff
228
BUILD/libtool-2.4.7/build-aux/mdate-sh
Executable file
228
BUILD/libtool-2.4.7/build-aux/mdate-sh
Executable file
@ -0,0 +1,228 @@
|
||||
#!/bin/sh
|
||||
# Get modification time of a file or directory and pretty-print it.
|
||||
|
||||
scriptversion=2018-03-07.03; # UTC
|
||||
|
||||
# Copyright (C) 1995-2022 Free Software Foundation, Inc.
|
||||
# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
|
||||
#
|
||||
# This program 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, 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
|
||||
emulate sh
|
||||
NULLCMD=:
|
||||
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
|
||||
# is contrary to our usage. Disable this feature.
|
||||
alias -g '${1+"$@"}'='"$@"'
|
||||
setopt NO_GLOB_SUBST
|
||||
fi
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No file. Try '$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: mdate-sh [--help] [--version] FILE
|
||||
|
||||
Pretty-print the modification day of FILE, in the format:
|
||||
1 January 1970
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "mdate-sh $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
error ()
|
||||
{
|
||||
echo "$0: $1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
# Prevent date giving response in another language.
|
||||
LANG=C
|
||||
export LANG
|
||||
LC_ALL=C
|
||||
export LC_ALL
|
||||
LC_TIME=C
|
||||
export LC_TIME
|
||||
|
||||
# Use UTC to get reproducible result.
|
||||
TZ=UTC0
|
||||
export TZ
|
||||
|
||||
# GNU ls changes its time format in response to the TIME_STYLE
|
||||
# variable. Since we cannot assume 'unset' works, revert this
|
||||
# variable to its documented default.
|
||||
if test "${TIME_STYLE+set}" = set; then
|
||||
TIME_STYLE=posix-long-iso
|
||||
export TIME_STYLE
|
||||
fi
|
||||
|
||||
save_arg1=$1
|
||||
|
||||
# Find out how to get the extended ls output of a file or directory.
|
||||
if ls -L /dev/null 1>/dev/null 2>&1; then
|
||||
ls_command='ls -L -l -d'
|
||||
else
|
||||
ls_command='ls -l -d'
|
||||
fi
|
||||
# Avoid user/group names that might have spaces, when possible.
|
||||
if ls -n /dev/null 1>/dev/null 2>&1; then
|
||||
ls_command="$ls_command -n"
|
||||
fi
|
||||
|
||||
# A 'ls -l' line looks as follows on OS/2.
|
||||
# drwxrwx--- 0 Aug 11 2001 foo
|
||||
# This differs from Unix, which adds ownership information.
|
||||
# drwxrwx--- 2 root root 4096 Aug 11 2001 foo
|
||||
#
|
||||
# To find the date, we split the line on spaces and iterate on words
|
||||
# until we find a month. This cannot work with files whose owner is a
|
||||
# user named "Jan", or "Feb", etc. However, it's unlikely that '/'
|
||||
# will be owned by a user whose name is a month. So we first look at
|
||||
# the extended ls output of the root directory to decide how many
|
||||
# words should be skipped to get the date.
|
||||
|
||||
# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
|
||||
set x`$ls_command /`
|
||||
|
||||
# Find which argument is the month.
|
||||
month=
|
||||
command=
|
||||
until test $month
|
||||
do
|
||||
test $# -gt 0 || error "failed parsing '$ls_command /' output"
|
||||
shift
|
||||
# Add another shift to the command.
|
||||
command="$command shift;"
|
||||
case $1 in
|
||||
Jan) month=January; nummonth=1;;
|
||||
Feb) month=February; nummonth=2;;
|
||||
Mar) month=March; nummonth=3;;
|
||||
Apr) month=April; nummonth=4;;
|
||||
May) month=May; nummonth=5;;
|
||||
Jun) month=June; nummonth=6;;
|
||||
Jul) month=July; nummonth=7;;
|
||||
Aug) month=August; nummonth=8;;
|
||||
Sep) month=September; nummonth=9;;
|
||||
Oct) month=October; nummonth=10;;
|
||||
Nov) month=November; nummonth=11;;
|
||||
Dec) month=December; nummonth=12;;
|
||||
esac
|
||||
done
|
||||
|
||||
test -n "$month" || error "failed parsing '$ls_command /' output"
|
||||
|
||||
# Get the extended ls output of the file or directory.
|
||||
set dummy x`eval "$ls_command \"\\\$save_arg1\""`
|
||||
|
||||
# Remove all preceding arguments
|
||||
eval $command
|
||||
|
||||
# Because of the dummy argument above, month is in $2.
|
||||
#
|
||||
# On a POSIX system, we should have
|
||||
#
|
||||
# $# = 5
|
||||
# $1 = file size
|
||||
# $2 = month
|
||||
# $3 = day
|
||||
# $4 = year or time
|
||||
# $5 = filename
|
||||
#
|
||||
# On Darwin 7.7.0 and 7.6.0, we have
|
||||
#
|
||||
# $# = 4
|
||||
# $1 = day
|
||||
# $2 = month
|
||||
# $3 = year or time
|
||||
# $4 = filename
|
||||
|
||||
# Get the month.
|
||||
case $2 in
|
||||
Jan) month=January; nummonth=1;;
|
||||
Feb) month=February; nummonth=2;;
|
||||
Mar) month=March; nummonth=3;;
|
||||
Apr) month=April; nummonth=4;;
|
||||
May) month=May; nummonth=5;;
|
||||
Jun) month=June; nummonth=6;;
|
||||
Jul) month=July; nummonth=7;;
|
||||
Aug) month=August; nummonth=8;;
|
||||
Sep) month=September; nummonth=9;;
|
||||
Oct) month=October; nummonth=10;;
|
||||
Nov) month=November; nummonth=11;;
|
||||
Dec) month=December; nummonth=12;;
|
||||
esac
|
||||
|
||||
case $3 in
|
||||
???*) day=$1;;
|
||||
*) day=$3; shift;;
|
||||
esac
|
||||
|
||||
# Here we have to deal with the problem that the ls output gives either
|
||||
# the time of day or the year.
|
||||
case $3 in
|
||||
*:*) set `date`; eval year=\$$#
|
||||
case $2 in
|
||||
Jan) nummonthtod=1;;
|
||||
Feb) nummonthtod=2;;
|
||||
Mar) nummonthtod=3;;
|
||||
Apr) nummonthtod=4;;
|
||||
May) nummonthtod=5;;
|
||||
Jun) nummonthtod=6;;
|
||||
Jul) nummonthtod=7;;
|
||||
Aug) nummonthtod=8;;
|
||||
Sep) nummonthtod=9;;
|
||||
Oct) nummonthtod=10;;
|
||||
Nov) nummonthtod=11;;
|
||||
Dec) nummonthtod=12;;
|
||||
esac
|
||||
# For the first six month of the year the time notation can also
|
||||
# be used for files modified in the last year.
|
||||
if (expr $nummonth \> $nummonthtod) > /dev/null;
|
||||
then
|
||||
year=`expr $year - 1`
|
||||
fi;;
|
||||
*) year=$3;;
|
||||
esac
|
||||
|
||||
# The result.
|
||||
echo $day $month $year
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
215
BUILD/libtool-2.4.7/build-aux/missing
Executable file
215
BUILD/libtool-2.4.7/build-aux/missing
Executable file
@ -0,0 +1,215 @@
|
||||
#! /bin/sh
|
||||
# Common wrapper for a few potentially missing GNU programs.
|
||||
|
||||
scriptversion=2018-03-07.03; # UTC
|
||||
|
||||
# Copyright (C) 1996-2020 Free Software Foundation, Inc.
|
||||
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# This program 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, 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo 1>&2 "Try '$0 --help' for more information"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case $1 in
|
||||
|
||||
--is-lightweight)
|
||||
# Used by our autoconf macros to check whether the available missing
|
||||
# script is modern enough.
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--run)
|
||||
# Back-compat with the calling convention used by older automake.
|
||||
shift
|
||||
;;
|
||||
|
||||
-h|--h|--he|--hel|--help)
|
||||
echo "\
|
||||
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||
|
||||
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
|
||||
to PROGRAM being missing or too old.
|
||||
|
||||
Options:
|
||||
-h, --help display this help and exit
|
||||
-v, --version output version information and exit
|
||||
|
||||
Supported PROGRAM values:
|
||||
aclocal autoconf autoheader autom4te automake makeinfo
|
||||
bison yacc flex lex help2man
|
||||
|
||||
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
|
||||
'g' are ignored when checking the name.
|
||||
|
||||
Send bug reports to <bug-automake@gnu.org>."
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||
echo "missing $scriptversion (GNU Automake)"
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-*)
|
||||
echo 1>&2 "$0: unknown '$1' option"
|
||||
echo 1>&2 "Try '$0 --help' for more information"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# Run the given program, remember its exit status.
|
||||
"$@"; st=$?
|
||||
|
||||
# If it succeeded, we are done.
|
||||
test $st -eq 0 && exit 0
|
||||
|
||||
# Also exit now if we it failed (or wasn't found), and '--version' was
|
||||
# passed; such an option is passed most likely to detect whether the
|
||||
# program is present and works.
|
||||
case $2 in --version|--help) exit $st;; esac
|
||||
|
||||
# Exit code 63 means version mismatch. This often happens when the user
|
||||
# tries to use an ancient version of a tool on a file that requires a
|
||||
# minimum version.
|
||||
if test $st -eq 63; then
|
||||
msg="probably too old"
|
||||
elif test $st -eq 127; then
|
||||
# Program was missing.
|
||||
msg="missing on your system"
|
||||
else
|
||||
# Program was found and executed, but failed. Give up.
|
||||
exit $st
|
||||
fi
|
||||
|
||||
perl_URL=https://www.perl.org/
|
||||
flex_URL=https://github.com/westes/flex
|
||||
gnu_software_URL=https://www.gnu.org/software
|
||||
|
||||
program_details ()
|
||||
{
|
||||
case $1 in
|
||||
aclocal|automake)
|
||||
echo "The '$1' program is part of the GNU Automake package:"
|
||||
echo "<$gnu_software_URL/automake>"
|
||||
echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
|
||||
echo "<$gnu_software_URL/autoconf>"
|
||||
echo "<$gnu_software_URL/m4/>"
|
||||
echo "<$perl_URL>"
|
||||
;;
|
||||
autoconf|autom4te|autoheader)
|
||||
echo "The '$1' program is part of the GNU Autoconf package:"
|
||||
echo "<$gnu_software_URL/autoconf/>"
|
||||
echo "It also requires GNU m4 and Perl in order to run:"
|
||||
echo "<$gnu_software_URL/m4/>"
|
||||
echo "<$perl_URL>"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
give_advice ()
|
||||
{
|
||||
# Normalize program name to check for.
|
||||
normalized_program=`echo "$1" | sed '
|
||||
s/^gnu-//; t
|
||||
s/^gnu//; t
|
||||
s/^g//; t'`
|
||||
|
||||
printf '%s\n' "'$1' is $msg."
|
||||
|
||||
configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
|
||||
case $normalized_program in
|
||||
autoconf*)
|
||||
echo "You should only need it if you modified 'configure.ac',"
|
||||
echo "or m4 files included by it."
|
||||
program_details 'autoconf'
|
||||
;;
|
||||
autoheader*)
|
||||
echo "You should only need it if you modified 'acconfig.h' or"
|
||||
echo "$configure_deps."
|
||||
program_details 'autoheader'
|
||||
;;
|
||||
automake*)
|
||||
echo "You should only need it if you modified 'Makefile.am' or"
|
||||
echo "$configure_deps."
|
||||
program_details 'automake'
|
||||
;;
|
||||
aclocal*)
|
||||
echo "You should only need it if you modified 'acinclude.m4' or"
|
||||
echo "$configure_deps."
|
||||
program_details 'aclocal'
|
||||
;;
|
||||
autom4te*)
|
||||
echo "You might have modified some maintainer files that require"
|
||||
echo "the 'autom4te' program to be rebuilt."
|
||||
program_details 'autom4te'
|
||||
;;
|
||||
bison*|yacc*)
|
||||
echo "You should only need it if you modified a '.y' file."
|
||||
echo "You may want to install the GNU Bison package:"
|
||||
echo "<$gnu_software_URL/bison/>"
|
||||
;;
|
||||
lex*|flex*)
|
||||
echo "You should only need it if you modified a '.l' file."
|
||||
echo "You may want to install the Fast Lexical Analyzer package:"
|
||||
echo "<$flex_URL>"
|
||||
;;
|
||||
help2man*)
|
||||
echo "You should only need it if you modified a dependency" \
|
||||
"of a man page."
|
||||
echo "You may want to install the GNU Help2man package:"
|
||||
echo "<$gnu_software_URL/help2man/>"
|
||||
;;
|
||||
makeinfo*)
|
||||
echo "You should only need it if you modified a '.texi' file, or"
|
||||
echo "any other file indirectly affecting the aspect of the manual."
|
||||
echo "You might want to install the Texinfo package:"
|
||||
echo "<$gnu_software_URL/texinfo/>"
|
||||
echo "The spurious makeinfo call might also be the consequence of"
|
||||
echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
|
||||
echo "want to install GNU make:"
|
||||
echo "<$gnu_software_URL/make/>"
|
||||
;;
|
||||
*)
|
||||
echo "You might have modified some files without having the proper"
|
||||
echo "tools for further handling them. Check the 'README' file, it"
|
||||
echo "often tells you about the needed prerequisites for installing"
|
||||
echo "this package. You may also peek at any GNU archive site, in"
|
||||
echo "case some other package contains this missing '$1' program."
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
give_advice "$1" | sed -e '1s/^/WARNING: /' \
|
||||
-e '2,$s/^/ /' >&2
|
||||
|
||||
# Propagate the correct exit status (expected to be 127 for a program
|
||||
# not found, 63 for a program that failed due to version mismatch).
|
||||
exit $st
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
61
BUILD/libtool-2.4.7/build-aux/no-bogus-m4-defines
Executable file
61
BUILD/libtool-2.4.7/build-aux/no-bogus-m4-defines
Executable file
@ -0,0 +1,61 @@
|
||||
#! /bin/sh
|
||||
|
||||
# no-bogus-m4-defines - detect wrong m4 definitions
|
||||
# -------------------------------------------------
|
||||
# Try to catch the case where 'aclocal' pulls installed libtool
|
||||
# macro file contents from another version of libtool into the
|
||||
# current package 'aclocal.m4'. Currently used by 'make dist'
|
||||
# and by ./bootstrap (bootstrap.conf).
|
||||
#
|
||||
# Copyright (C) 2015-2019, 2021-2022 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GNU Libtool.
|
||||
#
|
||||
# GNU Libtool 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.
|
||||
#
|
||||
# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
|
||||
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
|
||||
# or obtained by writing to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
# Please report bugs or propose patches to bug-libtool@gnu.org.
|
||||
|
||||
. `echo "$0" |${SED-sed} 's|[^/]*$||'`/funclib.sh
|
||||
# source this for "GNU m4" detection methods
|
||||
. `echo "$0" |${SED-sed} 's|[^/]*$||'`/extract-trace
|
||||
|
||||
$require_gnu_m4
|
||||
|
||||
bogus_macros='LT_INIT AC_PROG_LIBTOOL AM_PROG_LIBTOOL'
|
||||
|
||||
bogus_macros_grep=''
|
||||
for macro in $bogus_macros; do
|
||||
func_append bogus_macros_grep "/$macro/p;"
|
||||
done
|
||||
|
||||
clean_false_alarms="pushdef(\`AC_BEFORE', \`')"
|
||||
|
||||
bogus_macros_check_output=`$ECHO "$clean_false_alarms" \
|
||||
|$M4 - aclocal.m4 libltdl/aclocal.m4 \
|
||||
|$SED -n "$bogus_macros_grep"`
|
||||
|
||||
exit_val=0
|
||||
for macro in $bogus_macros; do
|
||||
case $bogus_macros_check_output in
|
||||
*$macro*)
|
||||
func_error "Bogus $macro macro definition in an aclocal.m4 file"
|
||||
exit_val=1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
exit $exit_val
|
||||
685
BUILD/libtool-2.4.7/build-aux/options-parser
Normal file
685
BUILD/libtool-2.4.7/build-aux/options-parser
Normal file
@ -0,0 +1,685 @@
|
||||
#! /bin/sh
|
||||
|
||||
# A portable, pluggable option parser for Bourne shell.
|
||||
# Written by Gary V. Vaughan, 2010
|
||||
|
||||
# This is free software. There is NO warranty; not even for
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
#
|
||||
# Copyright (C) 2010-2019, 2021 Bootstrap Authors
|
||||
#
|
||||
# This file is dual licensed under the terms of the MIT license
|
||||
# <https://opensource.org/license/MIT>, and GPL version 2 or later
|
||||
# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
|
||||
# these licenses when using or redistributing this software or any of
|
||||
# the files within it. See the URLs above, or the file `LICENSE`
|
||||
# included in the Bootstrap distribution for the full license texts.
|
||||
|
||||
# Please report bugs or propose patches to:
|
||||
# <https://github.com/gnulib-modules/bootstrap/issues>
|
||||
|
||||
# Set a version string for this script.
|
||||
scriptversion=2019-02-19.15; # UTC
|
||||
|
||||
|
||||
## ------ ##
|
||||
## Usage. ##
|
||||
## ------ ##
|
||||
|
||||
# This file is a library for parsing options in your shell scripts along
|
||||
# with assorted other useful supporting features that you can make use
|
||||
# of too.
|
||||
#
|
||||
# For the simplest scripts you might need only:
|
||||
#
|
||||
# #!/bin/sh
|
||||
# . relative/path/to/funclib.sh
|
||||
# . relative/path/to/options-parser
|
||||
# scriptversion=1.0
|
||||
# func_options ${1+"$@"}
|
||||
# eval set dummy "$func_options_result"; shift
|
||||
# ...rest of your script...
|
||||
#
|
||||
# In order for the '--version' option to work, you will need to have a
|
||||
# suitably formatted comment like the one at the top of this file
|
||||
# starting with '# Written by ' and ending with '# Copyright'.
|
||||
#
|
||||
# For '-h' and '--help' to work, you will also need a one line
|
||||
# description of your script's purpose in a comment directly above the
|
||||
# '# Written by ' line, like the one at the top of this file.
|
||||
#
|
||||
# The default options also support '--debug', which will turn on shell
|
||||
# execution tracing (see the comment above debug_cmd below for another
|
||||
# use), and '--verbose' and the func_verbose function to allow your script
|
||||
# to display verbose messages only when your user has specified
|
||||
# '--verbose'.
|
||||
#
|
||||
# After sourcing this file, you can plug in processing for additional
|
||||
# options by amending the variables from the 'Configuration' section
|
||||
# below, and following the instructions in the 'Option parsing'
|
||||
# section further down.
|
||||
|
||||
## -------------- ##
|
||||
## Configuration. ##
|
||||
## -------------- ##
|
||||
|
||||
# You should override these variables in your script after sourcing this
|
||||
# file so that they reflect the customisations you have added to the
|
||||
# option parser.
|
||||
|
||||
# The usage line for option parsing errors and the start of '-h' and
|
||||
# '--help' output messages. You can embed shell variables for delayed
|
||||
# expansion at the time the message is displayed, but you will need to
|
||||
# quote other shell meta-characters carefully to prevent them being
|
||||
# expanded when the contents are evaled.
|
||||
usage='$progpath [OPTION]...'
|
||||
|
||||
# Short help message in response to '-h' and '--help'. Add to this or
|
||||
# override it after sourcing this library to reflect the full set of
|
||||
# options your script accepts.
|
||||
usage_message="\
|
||||
--debug enable verbose shell tracing
|
||||
-W, --warnings=CATEGORY
|
||||
report the warnings falling in CATEGORY [all]
|
||||
-v, --verbose verbosely report processing
|
||||
--version print version information and exit
|
||||
-h, --help print short or long help message and exit
|
||||
"
|
||||
|
||||
# Additional text appended to 'usage_message' in response to '--help'.
|
||||
long_help_message="
|
||||
Warning categories include:
|
||||
'all' show all warnings
|
||||
'none' turn off all the warnings
|
||||
'error' warnings are treated as fatal errors"
|
||||
|
||||
# Help message printed before fatal option parsing errors.
|
||||
fatal_help="Try '\$progname --help' for more information."
|
||||
|
||||
|
||||
|
||||
## ------------------------- ##
|
||||
## Hook function management. ##
|
||||
## ------------------------- ##
|
||||
|
||||
# This section contains functions for adding, removing, and running hooks
|
||||
# in the main code. A hook is just a list of function names that can be
|
||||
# run in order later on.
|
||||
|
||||
# func_hookable FUNC_NAME
|
||||
# -----------------------
|
||||
# Declare that FUNC_NAME will run hooks added with
|
||||
# 'func_add_hook FUNC_NAME ...'.
|
||||
func_hookable ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
func_append hookable_fns " $1"
|
||||
}
|
||||
|
||||
|
||||
# func_add_hook FUNC_NAME HOOK_FUNC
|
||||
# ---------------------------------
|
||||
# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must
|
||||
# first have been declared "hookable" by a call to 'func_hookable'.
|
||||
func_add_hook ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
case " $hookable_fns " in
|
||||
*" $1 "*) ;;
|
||||
*) func_fatal_error "'$1' does not accept hook functions." ;;
|
||||
esac
|
||||
|
||||
eval func_append ${1}_hooks '" $2"'
|
||||
}
|
||||
|
||||
|
||||
# func_remove_hook FUNC_NAME HOOK_FUNC
|
||||
# ------------------------------------
|
||||
# Remove HOOK_FUNC from the list of hook functions to be called by
|
||||
# FUNC_NAME.
|
||||
func_remove_hook ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
|
||||
}
|
||||
|
||||
|
||||
# func_propagate_result FUNC_NAME_A FUNC_NAME_B
|
||||
# ---------------------------------------------
|
||||
# If the *_result variable of FUNC_NAME_A _is set_, assign its value to
|
||||
# *_result variable of FUNC_NAME_B.
|
||||
func_propagate_result ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
func_propagate_result_result=:
|
||||
if eval "test \"\${${1}_result+set}\" = set"
|
||||
then
|
||||
eval "${2}_result=\$${1}_result"
|
||||
else
|
||||
func_propagate_result_result=false
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# func_run_hooks FUNC_NAME [ARG]...
|
||||
# ---------------------------------
|
||||
# Run all hook functions registered to FUNC_NAME.
|
||||
# It's assumed that the list of hook functions contains nothing more
|
||||
# than a whitespace-delimited list of legal shell function names, and
|
||||
# no effort is wasted trying to catch shell meta-characters or preserve
|
||||
# whitespace.
|
||||
func_run_hooks ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
case " $hookable_fns " in
|
||||
*" $1 "*) ;;
|
||||
*) func_fatal_error "'$1' does not support hook functions." ;;
|
||||
esac
|
||||
|
||||
eval _G_hook_fns=\$$1_hooks; shift
|
||||
|
||||
for _G_hook in $_G_hook_fns; do
|
||||
func_unset "${_G_hook}_result"
|
||||
eval $_G_hook '${1+"$@"}'
|
||||
func_propagate_result $_G_hook func_run_hooks
|
||||
if $func_propagate_result_result; then
|
||||
eval set dummy "$func_run_hooks_result"; shift
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
||||
## --------------- ##
|
||||
## Option parsing. ##
|
||||
## --------------- ##
|
||||
|
||||
# In order to add your own option parsing hooks, you must accept the
|
||||
# full positional parameter list from your hook function. You may remove
|
||||
# or edit any options that you action, and then pass back the remaining
|
||||
# unprocessed options in '<hooked_function_name>_result', escaped
|
||||
# suitably for 'eval'.
|
||||
#
|
||||
# The '<hooked_function_name>_result' variable is automatically unset
|
||||
# before your hook gets called; for best performance, only set the
|
||||
# *_result variable when necessary (i.e. don't call the 'func_quote'
|
||||
# function unnecessarily because it can be an expensive operation on some
|
||||
# machines).
|
||||
#
|
||||
# Like this:
|
||||
#
|
||||
# my_options_prep ()
|
||||
# {
|
||||
# $debug_cmd
|
||||
#
|
||||
# # Extend the existing usage message.
|
||||
# usage_message=$usage_message'
|
||||
# -s, --silent don'\''t print informational messages
|
||||
# '
|
||||
# # No change in '$@' (ignored completely by this hook). Leave
|
||||
# # my_options_prep_result variable intact.
|
||||
# }
|
||||
# func_add_hook func_options_prep my_options_prep
|
||||
#
|
||||
#
|
||||
# my_silent_option ()
|
||||
# {
|
||||
# $debug_cmd
|
||||
#
|
||||
# args_changed=false
|
||||
#
|
||||
# # Note that, for efficiency, we parse as many options as we can
|
||||
# # recognise in a loop before passing the remainder back to the
|
||||
# # caller on the first unrecognised argument we encounter.
|
||||
# while test $# -gt 0; do
|
||||
# opt=$1; shift
|
||||
# case $opt in
|
||||
# --silent|-s) opt_silent=:
|
||||
# args_changed=:
|
||||
# ;;
|
||||
# # Separate non-argument short options:
|
||||
# -s*) func_split_short_opt "$_G_opt"
|
||||
# set dummy "$func_split_short_opt_name" \
|
||||
# "-$func_split_short_opt_arg" ${1+"$@"}
|
||||
# shift
|
||||
# args_changed=:
|
||||
# ;;
|
||||
# *) # Make sure the first unrecognised option "$_G_opt"
|
||||
# # is added back to "$@" in case we need it later,
|
||||
# # if $args_changed was set to 'true'.
|
||||
# set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
|
||||
# esac
|
||||
# done
|
||||
#
|
||||
# # Only call 'func_quote' here if we processed at least one argument.
|
||||
# if $args_changed; then
|
||||
# func_quote eval ${1+"$@"}
|
||||
# my_silent_option_result=$func_quote_result
|
||||
# fi
|
||||
# }
|
||||
# func_add_hook func_parse_options my_silent_option
|
||||
#
|
||||
#
|
||||
# my_option_validation ()
|
||||
# {
|
||||
# $debug_cmd
|
||||
#
|
||||
# $opt_silent && $opt_verbose && func_fatal_help "\
|
||||
# '--silent' and '--verbose' options are mutually exclusive."
|
||||
# }
|
||||
# func_add_hook func_validate_options my_option_validation
|
||||
#
|
||||
# You'll also need to manually amend $usage_message to reflect the extra
|
||||
# options you parse. It's preferable to append if you can, so that
|
||||
# multiple option parsing hooks can be added safely.
|
||||
|
||||
|
||||
# func_options_finish [ARG]...
|
||||
# ----------------------------
|
||||
# Finishing the option parse loop (call 'func_options' hooks ATM).
|
||||
func_options_finish ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
func_run_hooks func_options ${1+"$@"}
|
||||
func_propagate_result func_run_hooks func_options_finish
|
||||
}
|
||||
|
||||
|
||||
# func_options [ARG]...
|
||||
# ---------------------
|
||||
# All the functions called inside func_options are hookable. See the
|
||||
# individual implementations for details.
|
||||
func_hookable func_options
|
||||
func_options ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
_G_options_quoted=false
|
||||
|
||||
for my_func in options_prep parse_options validate_options options_finish
|
||||
do
|
||||
func_unset func_${my_func}_result
|
||||
func_unset func_run_hooks_result
|
||||
eval func_$my_func '${1+"$@"}'
|
||||
func_propagate_result func_$my_func func_options
|
||||
if $func_propagate_result_result; then
|
||||
eval set dummy "$func_options_result"; shift
|
||||
_G_options_quoted=:
|
||||
fi
|
||||
done
|
||||
|
||||
$_G_options_quoted || {
|
||||
# As we (func_options) are top-level options-parser function and
|
||||
# nobody quoted "$@" for us yet, we need to do it explicitly for
|
||||
# caller.
|
||||
func_quote eval ${1+"$@"}
|
||||
func_options_result=$func_quote_result
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# func_options_prep [ARG]...
|
||||
# --------------------------
|
||||
# All initialisations required before starting the option parse loop.
|
||||
# Note that when calling hook functions, we pass through the list of
|
||||
# positional parameters. If a hook function modifies that list, and
|
||||
# needs to propagate that back to rest of this script, then the complete
|
||||
# modified list must be put in 'func_run_hooks_result' before returning.
|
||||
func_hookable func_options_prep
|
||||
func_options_prep ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
# Option defaults:
|
||||
opt_verbose=false
|
||||
opt_warning_types=
|
||||
|
||||
func_run_hooks func_options_prep ${1+"$@"}
|
||||
func_propagate_result func_run_hooks func_options_prep
|
||||
}
|
||||
|
||||
|
||||
# func_parse_options [ARG]...
|
||||
# ---------------------------
|
||||
# The main option parsing loop.
|
||||
func_hookable func_parse_options
|
||||
func_parse_options ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
_G_parse_options_requote=false
|
||||
# this just eases exit handling
|
||||
while test $# -gt 0; do
|
||||
# Defer to hook functions for initial option parsing, so they
|
||||
# get priority in the event of reusing an option name.
|
||||
func_run_hooks func_parse_options ${1+"$@"}
|
||||
func_propagate_result func_run_hooks func_parse_options
|
||||
if $func_propagate_result_result; then
|
||||
eval set dummy "$func_parse_options_result"; shift
|
||||
# Even though we may have changed "$@", we passed the "$@" array
|
||||
# down into the hook and it quoted it for us (because we are in
|
||||
# this if-branch). No need to quote it again.
|
||||
_G_parse_options_requote=false
|
||||
fi
|
||||
|
||||
# Break out of the loop if we already parsed every option.
|
||||
test $# -gt 0 || break
|
||||
|
||||
# We expect that one of the options parsed in this function matches
|
||||
# and thus we remove _G_opt from "$@" and need to re-quote.
|
||||
_G_match_parse_options=:
|
||||
_G_opt=$1
|
||||
shift
|
||||
case $_G_opt in
|
||||
--debug|-x) debug_cmd='set -x'
|
||||
func_echo "enabling shell trace mode" >&2
|
||||
$debug_cmd
|
||||
;;
|
||||
|
||||
--no-warnings|--no-warning|--no-warn)
|
||||
set dummy --warnings none ${1+"$@"}
|
||||
shift
|
||||
;;
|
||||
|
||||
--warnings|--warning|-W)
|
||||
if test $# = 0 && func_missing_arg $_G_opt; then
|
||||
_G_parse_options_requote=:
|
||||
break
|
||||
fi
|
||||
case " $warning_categories $1" in
|
||||
*" $1 "*)
|
||||
# trailing space prevents matching last $1 above
|
||||
func_append_uniq opt_warning_types " $1"
|
||||
;;
|
||||
*all)
|
||||
opt_warning_types=$warning_categories
|
||||
;;
|
||||
*none)
|
||||
opt_warning_types=none
|
||||
warning_func=:
|
||||
;;
|
||||
*error)
|
||||
opt_warning_types=$warning_categories
|
||||
warning_func=func_fatal_error
|
||||
;;
|
||||
*)
|
||||
func_fatal_error \
|
||||
"unsupported warning category: '$1'"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
;;
|
||||
|
||||
--verbose|-v) opt_verbose=: ;;
|
||||
--version) func_version ;;
|
||||
-\?|-h) func_usage ;;
|
||||
--help) func_help ;;
|
||||
|
||||
# Separate optargs to long options (plugins may need this):
|
||||
--*=*) func_split_equals "$_G_opt"
|
||||
set dummy "$func_split_equals_lhs" \
|
||||
"$func_split_equals_rhs" ${1+"$@"}
|
||||
shift
|
||||
;;
|
||||
|
||||
# Separate optargs to short options:
|
||||
-W*)
|
||||
func_split_short_opt "$_G_opt"
|
||||
set dummy "$func_split_short_opt_name" \
|
||||
"$func_split_short_opt_arg" ${1+"$@"}
|
||||
shift
|
||||
;;
|
||||
|
||||
# Separate non-argument short options:
|
||||
-\?*|-h*|-v*|-x*)
|
||||
func_split_short_opt "$_G_opt"
|
||||
set dummy "$func_split_short_opt_name" \
|
||||
"-$func_split_short_opt_arg" ${1+"$@"}
|
||||
shift
|
||||
;;
|
||||
|
||||
--) _G_parse_options_requote=: ; break ;;
|
||||
-*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
|
||||
*) set dummy "$_G_opt" ${1+"$@"}; shift
|
||||
_G_match_parse_options=false
|
||||
break
|
||||
;;
|
||||
esac
|
||||
|
||||
if $_G_match_parse_options; then
|
||||
_G_parse_options_requote=:
|
||||
fi
|
||||
done
|
||||
|
||||
if $_G_parse_options_requote; then
|
||||
# save modified positional parameters for caller
|
||||
func_quote eval ${1+"$@"}
|
||||
func_parse_options_result=$func_quote_result
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# func_validate_options [ARG]...
|
||||
# ------------------------------
|
||||
# Perform any sanity checks on option settings and/or unconsumed
|
||||
# arguments.
|
||||
func_hookable func_validate_options
|
||||
func_validate_options ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
# Display all warnings if -W was not given.
|
||||
test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
|
||||
|
||||
func_run_hooks func_validate_options ${1+"$@"}
|
||||
func_propagate_result func_run_hooks func_validate_options
|
||||
|
||||
# Bail if the options were screwed!
|
||||
$exit_cmd $EXIT_FAILURE
|
||||
}
|
||||
|
||||
|
||||
|
||||
## ----------------- ##
|
||||
## Helper functions. ##
|
||||
## ----------------- ##
|
||||
|
||||
# This section contains the helper functions used by the rest of the
|
||||
# hookable option parser framework in ascii-betical order.
|
||||
|
||||
|
||||
# func_fatal_help ARG...
|
||||
# ----------------------
|
||||
# Echo program name prefixed message to standard error, followed by
|
||||
# a help hint, and exit.
|
||||
func_fatal_help ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
eval \$ECHO \""Usage: $usage"\"
|
||||
eval \$ECHO \""$fatal_help"\"
|
||||
func_error ${1+"$@"}
|
||||
exit $EXIT_FAILURE
|
||||
}
|
||||
|
||||
|
||||
# func_help
|
||||
# ---------
|
||||
# Echo long help message to standard output and exit.
|
||||
func_help ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
func_usage_message
|
||||
$ECHO "$long_help_message"
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
# func_missing_arg ARGNAME
|
||||
# ------------------------
|
||||
# Echo program name prefixed message to standard error and set global
|
||||
# exit_cmd.
|
||||
func_missing_arg ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
func_error "Missing argument for '$1'."
|
||||
exit_cmd=exit
|
||||
}
|
||||
|
||||
|
||||
# func_split_equals STRING
|
||||
# ------------------------
|
||||
# Set func_split_equals_lhs and func_split_equals_rhs shell variables
|
||||
# after splitting STRING at the '=' sign.
|
||||
test -z "$_G_HAVE_XSI_OPS" \
|
||||
&& (eval 'x=a/b/c;
|
||||
test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
|
||||
&& _G_HAVE_XSI_OPS=yes
|
||||
|
||||
if test yes = "$_G_HAVE_XSI_OPS"
|
||||
then
|
||||
# This is an XSI compatible shell, allowing a faster implementation...
|
||||
eval 'func_split_equals ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
func_split_equals_lhs=${1%%=*}
|
||||
func_split_equals_rhs=${1#*=}
|
||||
if test "x$func_split_equals_lhs" = "x$1"; then
|
||||
func_split_equals_rhs=
|
||||
fi
|
||||
}'
|
||||
else
|
||||
# ...otherwise fall back to using expr, which is often a shell builtin.
|
||||
func_split_equals ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
|
||||
func_split_equals_rhs=
|
||||
test "x$func_split_equals_lhs=" = "x$1" \
|
||||
|| func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
|
||||
}
|
||||
fi #func_split_equals
|
||||
|
||||
|
||||
# func_split_short_opt SHORTOPT
|
||||
# -----------------------------
|
||||
# Set func_split_short_opt_name and func_split_short_opt_arg shell
|
||||
# variables after splitting SHORTOPT after the 2nd character.
|
||||
if test yes = "$_G_HAVE_XSI_OPS"
|
||||
then
|
||||
# This is an XSI compatible shell, allowing a faster implementation...
|
||||
eval 'func_split_short_opt ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
func_split_short_opt_arg=${1#??}
|
||||
func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
|
||||
}'
|
||||
else
|
||||
# ...otherwise fall back to using expr, which is often a shell builtin.
|
||||
func_split_short_opt ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'`
|
||||
func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
|
||||
}
|
||||
fi #func_split_short_opt
|
||||
|
||||
|
||||
# func_usage
|
||||
# ----------
|
||||
# Echo short help message to standard output and exit.
|
||||
func_usage ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
func_usage_message
|
||||
$ECHO "Run '$progname --help |${PAGER-more}' for full usage"
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
# func_usage_message
|
||||
# ------------------
|
||||
# Echo short help message to standard output.
|
||||
func_usage_message ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
eval \$ECHO \""Usage: $usage"\"
|
||||
echo
|
||||
$SED -n 's|^# ||
|
||||
/^Written by/{
|
||||
x;p;x
|
||||
}
|
||||
h
|
||||
/^Written by/q' < "$progpath"
|
||||
echo
|
||||
eval \$ECHO \""$usage_message"\"
|
||||
}
|
||||
|
||||
|
||||
# func_version
|
||||
# ------------
|
||||
# Echo version message to standard output and exit.
|
||||
# The version message is extracted from the calling file's header
|
||||
# comments, with leading '# ' stripped:
|
||||
# 1. First display the progname and version
|
||||
# 2. Followed by the header comment line matching /^# Written by /
|
||||
# 3. Then a blank line followed by the first following line matching
|
||||
# /^# Copyright /
|
||||
# 4. Immediately followed by any lines between the previous matches,
|
||||
# except lines preceding the intervening completely blank line.
|
||||
# For example, see the header comments of this file.
|
||||
func_version ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
printf '%s\n' "$progname $scriptversion"
|
||||
$SED -n '
|
||||
/^# Written by /!b
|
||||
s|^# ||; p; n
|
||||
|
||||
:fwd2blnk
|
||||
/./ {
|
||||
n
|
||||
b fwd2blnk
|
||||
}
|
||||
p; n
|
||||
|
||||
:holdwrnt
|
||||
s|^# ||
|
||||
s|^# *$||
|
||||
/^Copyright /!{
|
||||
/./H
|
||||
n
|
||||
b holdwrnt
|
||||
}
|
||||
|
||||
s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
|
||||
G
|
||||
s|\(\n\)\n*|\1|g
|
||||
p; q' < "$progpath"
|
||||
|
||||
exit $?
|
||||
}
|
||||
|
||||
|
||||
# Local variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# End:
|
||||
150
BUILD/libtool-2.4.7/build-aux/test-driver
Executable file
150
BUILD/libtool-2.4.7/build-aux/test-driver
Executable file
@ -0,0 +1,150 @@
|
||||
#! /bin/sh
|
||||
# test-driver - basic testsuite driver script.
|
||||
|
||||
scriptversion=2018-03-07.03; # UTC
|
||||
|
||||
# Copyright (C) 2011-2020 Free Software Foundation, Inc.
|
||||
#
|
||||
# This program 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, 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
# Make unconditional expansion of undefined variables an error. This
|
||||
# helps a lot in preventing typo-related bugs.
|
||||
set -u
|
||||
|
||||
usage_error ()
|
||||
{
|
||||
echo "$0: $*" >&2
|
||||
print_usage >&2
|
||||
exit 2
|
||||
}
|
||||
|
||||
print_usage ()
|
||||
{
|
||||
cat <<END
|
||||
Usage:
|
||||
test-driver --test-name NAME --log-file PATH --trs-file PATH
|
||||
[--expect-failure {yes|no}] [--color-tests {yes|no}]
|
||||
[--enable-hard-errors {yes|no}] [--]
|
||||
TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
|
||||
|
||||
The '--test-name', '--log-file' and '--trs-file' options are mandatory.
|
||||
See the GNU Automake documentation for information.
|
||||
END
|
||||
}
|
||||
|
||||
test_name= # Used for reporting.
|
||||
log_file= # Where to save the output of the test script.
|
||||
trs_file= # Where to save the metadata of the test run.
|
||||
expect_failure=no
|
||||
color_tests=no
|
||||
enable_hard_errors=yes
|
||||
while test $# -gt 0; do
|
||||
case $1 in
|
||||
--help) print_usage; exit $?;;
|
||||
--version) echo "test-driver $scriptversion"; exit $?;;
|
||||
--test-name) test_name=$2; shift;;
|
||||
--log-file) log_file=$2; shift;;
|
||||
--trs-file) trs_file=$2; shift;;
|
||||
--color-tests) color_tests=$2; shift;;
|
||||
--expect-failure) expect_failure=$2; shift;;
|
||||
--enable-hard-errors) enable_hard_errors=$2; shift;;
|
||||
--) shift; break;;
|
||||
-*) usage_error "invalid option: '$1'";;
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
missing_opts=
|
||||
test x"$test_name" = x && missing_opts="$missing_opts --test-name"
|
||||
test x"$log_file" = x && missing_opts="$missing_opts --log-file"
|
||||
test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
|
||||
if test x"$missing_opts" != x; then
|
||||
usage_error "the following mandatory options are missing:$missing_opts"
|
||||
fi
|
||||
|
||||
if test $# -eq 0; then
|
||||
usage_error "missing argument"
|
||||
fi
|
||||
|
||||
if test $color_tests = yes; then
|
||||
# Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
|
||||
red='[0;31m' # Red.
|
||||
grn='[0;32m' # Green.
|
||||
lgn='[1;32m' # Light green.
|
||||
blu='[1;34m' # Blue.
|
||||
mgn='[0;35m' # Magenta.
|
||||
std='[m' # No color.
|
||||
else
|
||||
red= grn= lgn= blu= mgn= std=
|
||||
fi
|
||||
|
||||
do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
|
||||
trap "st=129; $do_exit" 1
|
||||
trap "st=130; $do_exit" 2
|
||||
trap "st=141; $do_exit" 13
|
||||
trap "st=143; $do_exit" 15
|
||||
|
||||
# Test script is run here.
|
||||
"$@" >$log_file 2>&1
|
||||
estatus=$?
|
||||
|
||||
if test $enable_hard_errors = no && test $estatus -eq 99; then
|
||||
tweaked_estatus=1
|
||||
else
|
||||
tweaked_estatus=$estatus
|
||||
fi
|
||||
|
||||
case $tweaked_estatus:$expect_failure in
|
||||
0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
|
||||
0:*) col=$grn res=PASS recheck=no gcopy=no;;
|
||||
77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
|
||||
99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
|
||||
*:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
|
||||
*:*) col=$red res=FAIL recheck=yes gcopy=yes;;
|
||||
esac
|
||||
|
||||
# Report the test outcome and exit status in the logs, so that one can
|
||||
# know whether the test passed or failed simply by looking at the '.log'
|
||||
# file, without the need of also peaking into the corresponding '.trs'
|
||||
# file (automake bug#11814).
|
||||
echo "$res $test_name (exit status: $estatus)" >>$log_file
|
||||
|
||||
# Report outcome to console.
|
||||
echo "${col}${res}${std}: $test_name"
|
||||
|
||||
# Register the test result, and other relevant metadata.
|
||||
echo ":test-result: $res" > $trs_file
|
||||
echo ":global-test-result: $res" >> $trs_file
|
||||
echo ":recheck: $recheck" >> $trs_file
|
||||
echo ":copy-in-global-log: $gcopy" >> $trs_file
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
11592
BUILD/libtool-2.4.7/build-aux/texinfo.tex
Normal file
11592
BUILD/libtool-2.4.7/build-aux/texinfo.tex
Normal file
File diff suppressed because it is too large
Load Diff
302
BUILD/libtool-2.4.7/build-aux/update-copyright
Executable file
302
BUILD/libtool-2.4.7/build-aux/update-copyright
Executable file
@ -0,0 +1,302 @@
|
||||
#!/bin/sh
|
||||
#! -*-perl-*-
|
||||
|
||||
# Update an FSF copyright year list to include the current year.
|
||||
|
||||
# Copyright (C) 2009-2022 Free Software Foundation, Inc.
|
||||
#
|
||||
# This program 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 3, 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Written by Jim Meyering and Joel E. Denny
|
||||
|
||||
# This script updates an FSF copyright year list to include the current year.
|
||||
# Usage: update-copyright [FILE...]
|
||||
#
|
||||
# The arguments to this script should be names of files that contain
|
||||
# copyright statements to be updated. The copyright holder's name
|
||||
# defaults to "Free Software Foundation, Inc." but may be changed to
|
||||
# any other name by using the "UPDATE_COPYRIGHT_HOLDER" environment
|
||||
# variable.
|
||||
#
|
||||
# For example, you might wish to use the update-copyright target rule
|
||||
# in maint.mk from gnulib's maintainer-makefile module.
|
||||
#
|
||||
# Iff a copyright statement is recognized in a file and the final
|
||||
# year is not the current year, then the statement is updated for the
|
||||
# new year and it is reformatted to:
|
||||
#
|
||||
# 1. Fit within 72 columns.
|
||||
# 2. Convert 2-digit years to 4-digit years by prepending "19".
|
||||
# 3. Expand copyright year intervals. (See "Environment variables"
|
||||
# below.)
|
||||
#
|
||||
# A warning is printed for every file for which no copyright
|
||||
# statement is recognized.
|
||||
#
|
||||
# Each file's copyright statement must be formatted correctly in
|
||||
# order to be recognized. For example, each of these is fine:
|
||||
#
|
||||
# Copyright @copyright{} 1990-2005, 2007-2009 Free Software
|
||||
# Foundation, Inc.
|
||||
#
|
||||
# # Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# # Foundation, Inc.
|
||||
#
|
||||
# /*
|
||||
# * Copyright © 90,2005,2007-2009
|
||||
# * Free Software Foundation, Inc.
|
||||
# */
|
||||
#
|
||||
# However, the following format is not recognized because the line
|
||||
# prefix changes after the first line:
|
||||
#
|
||||
# ## Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# # Foundation, Inc.
|
||||
#
|
||||
# However, any correctly formatted copyright statement following
|
||||
# a non-matching copyright statements would be recognized.
|
||||
#
|
||||
# The exact conditions that a file's copyright statement must meet
|
||||
# to be recognized are:
|
||||
#
|
||||
# 1. It is the first copyright statement that meets all of the
|
||||
# following conditions. Subsequent copyright statements are
|
||||
# ignored.
|
||||
# 2. Its format is "Copyright (C)", then a list of copyright years,
|
||||
# and then the name of the copyright holder.
|
||||
# 3. The "(C)" takes one of the following forms or is omitted
|
||||
# entirely:
|
||||
#
|
||||
# A. (C)
|
||||
# B. (c)
|
||||
# C. @copyright{}
|
||||
# D. ©
|
||||
# E. ©
|
||||
#
|
||||
# 4. The "Copyright" appears at the beginning of a line, except that it
|
||||
# may be prefixed by any sequence (e.g., a comment) of no more than
|
||||
# 5 characters -- including white space.
|
||||
# 5. Iff such a prefix is present, the same prefix appears at the
|
||||
# beginning of each remaining line within the FSF copyright
|
||||
# statement. There is one exception in order to support C-style
|
||||
# comments: if the first line's prefix contains nothing but
|
||||
# whitespace surrounding a "/*", then the prefix for all subsequent
|
||||
# lines is the same as the first line's prefix except with each of
|
||||
# "/" and possibly "*" replaced by a " ". The replacement of "*"
|
||||
# by " " is consistent throughout all subsequent lines.
|
||||
# 6. Blank lines, even if preceded by the prefix, do not appear
|
||||
# within the FSF copyright statement.
|
||||
# 7. Each copyright year is 2 or 4 digits, and years are separated by
|
||||
# commas, "-", or "--". Whitespace may appear after commas.
|
||||
#
|
||||
# Environment variables:
|
||||
#
|
||||
# 1. If UPDATE_COPYRIGHT_FORCE=1, a recognized FSF copyright statement
|
||||
# is reformatted even if it does not need updating for the new
|
||||
# year. If unset or set to 0, only updated FSF copyright
|
||||
# statements are reformatted.
|
||||
# 2. If UPDATE_COPYRIGHT_USE_INTERVALS=1, every series of consecutive
|
||||
# copyright years (such as 90, 1991, 1992-2007, 2008) in a
|
||||
# reformatted FSF copyright statement is collapsed to a single
|
||||
# interval (such as 1990-2008). If unset or set to 0, all existing
|
||||
# copyright year intervals in a reformatted FSF copyright statement
|
||||
# are expanded instead.
|
||||
# If UPDATE_COPYRIGHT_USE_INTERVALS=2, convert a sequence with gaps
|
||||
# to the minimal containing range. For example, convert
|
||||
# 2000, 2004-2007, 2009 to 2000-2009.
|
||||
# 3. For testing purposes, you can set the assumed current year in
|
||||
# UPDATE_COPYRIGHT_YEAR.
|
||||
# 4. The default maximum line length for a copyright line is 72.
|
||||
# Set UPDATE_COPYRIGHT_MAX_LINE_LENGTH to use a different length.
|
||||
# 5. Set UPDATE_COPYRIGHT_HOLDER if the copyright holder is other
|
||||
# than "Free Software Foundation, Inc.".
|
||||
|
||||
# This is a prologue that allows to run a perl script as an executable
|
||||
# on systems that are compliant to a POSIX version before POSIX:2017.
|
||||
# On such systems, the usual invocation of an executable through execlp()
|
||||
# or execvp() fails with ENOEXEC if it is a script that does not start
|
||||
# with a #! line. The script interpreter mentioned in the #! line has
|
||||
# to be /bin/sh, because on GuixSD systems that is the only program that
|
||||
# has a fixed file name. The second line is essential for perl and is
|
||||
# also useful for editing this file in Emacs. The next two lines below
|
||||
# are valid code in both sh and perl. When executed by sh, they re-execute
|
||||
# the script through the perl program found in $PATH. The '-x' option
|
||||
# is essential as well; without it, perl would re-execute the script
|
||||
# through /bin/sh. When executed by perl, the next two lines are a no-op.
|
||||
eval 'exec perl -wSx -0777 -pi "$0" "$@"'
|
||||
if 0;
|
||||
|
||||
my $VERSION = '2020-04-04.15:07'; # UTC
|
||||
# The definition above must lie within the first 8 lines in order
|
||||
# for the Emacs time-stamp write hook (at end) to update it.
|
||||
# If you change this file with Emacs, please let the write hook
|
||||
# do its job. Otherwise, update this string manually.
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my $copyright_re = 'Copyright';
|
||||
my $circle_c_re = '(?:\([cC]\)|@copyright\{}|\\\\\(co|©|©)';
|
||||
my $holder = $ENV{UPDATE_COPYRIGHT_HOLDER};
|
||||
$holder ||= 'Free Software Foundation, Inc.';
|
||||
my $prefix_max = 5;
|
||||
my $margin = $ENV{UPDATE_COPYRIGHT_MAX_LINE_LENGTH};
|
||||
!$margin || $margin !~ m/^\d+$/
|
||||
and $margin = 72;
|
||||
|
||||
my $tab_width = 8;
|
||||
|
||||
my $this_year = $ENV{UPDATE_COPYRIGHT_YEAR};
|
||||
if (!$this_year || $this_year !~ m/^\d{4}$/)
|
||||
{
|
||||
my ($sec, $min, $hour, $mday, $month, $year) = localtime (time ());
|
||||
$this_year = $year + 1900;
|
||||
}
|
||||
|
||||
# Unless the file consistently uses "\r\n" as the EOL, use "\n" instead.
|
||||
my $eol = /(?:^|[^\r])\n/ ? "\n" : "\r\n";
|
||||
|
||||
my $leading;
|
||||
my $prefix;
|
||||
my $ws_re;
|
||||
my $stmt_re;
|
||||
while (/(^|\n)(.{0,$prefix_max})$copyright_re/g)
|
||||
{
|
||||
$leading = "$1$2";
|
||||
$prefix = $2;
|
||||
if ($prefix =~ /^(\s*\/)\*(\s*)$/)
|
||||
{
|
||||
$prefix =~ s,/, ,;
|
||||
my $prefix_ws = $prefix;
|
||||
$prefix_ws =~ s/\*/ /; # Only whitespace.
|
||||
if (/\G(?:[^*\n]|\*[^\/\n])*\*?\n$prefix_ws/)
|
||||
{
|
||||
$prefix = $prefix_ws;
|
||||
}
|
||||
}
|
||||
$ws_re = '[ \t\r\f]'; # \s without \n
|
||||
$ws_re =
|
||||
"(?:$ws_re*(?:$ws_re|\\n" . quotemeta($prefix) . ")$ws_re*)";
|
||||
my $holder_re = $holder;
|
||||
$holder_re =~ s/\s/$ws_re/g;
|
||||
my $stmt_remainder_re =
|
||||
"(?:$ws_re$circle_c_re)?"
|
||||
. "$ws_re(?:(?:\\d\\d)?\\d\\d(?:,$ws_re?|--?))*"
|
||||
. "((?:\\d\\d)?\\d\\d)$ws_re$holder_re";
|
||||
if (/\G$stmt_remainder_re/)
|
||||
{
|
||||
$stmt_re =
|
||||
quotemeta($leading) . "($copyright_re$stmt_remainder_re)";
|
||||
last;
|
||||
}
|
||||
}
|
||||
if (defined $stmt_re)
|
||||
{
|
||||
/$stmt_re/ or die; # Should never die.
|
||||
my $stmt = $1;
|
||||
my $final_year_orig = $2;
|
||||
|
||||
# Handle two-digit year numbers like "98" and "99".
|
||||
my $final_year = $final_year_orig;
|
||||
$final_year <= 99
|
||||
and $final_year += 1900;
|
||||
|
||||
if ($final_year != $this_year)
|
||||
{
|
||||
# Update the year.
|
||||
$stmt =~ s/\b$final_year_orig\b/$final_year, $this_year/;
|
||||
}
|
||||
if ($final_year != $this_year || $ENV{'UPDATE_COPYRIGHT_FORCE'})
|
||||
{
|
||||
# Normalize all whitespace including newline-prefix sequences.
|
||||
$stmt =~ s/$ws_re/ /g;
|
||||
|
||||
# Put spaces after commas.
|
||||
$stmt =~ s/, ?/, /g;
|
||||
|
||||
# Convert 2-digit to 4-digit years.
|
||||
$stmt =~ s/(\b\d\d\b)/19$1/g;
|
||||
|
||||
# Make the use of intervals consistent.
|
||||
if (!$ENV{UPDATE_COPYRIGHT_USE_INTERVALS})
|
||||
{
|
||||
$stmt =~ s/(\d{4})--?(\d{4})/join(', ', $1..$2)/eg;
|
||||
}
|
||||
else
|
||||
{
|
||||
my $ndash = $ARGV =~ /\.tex(i(nfo)?)?$/ ? "--" : "-";
|
||||
|
||||
$stmt =~
|
||||
s/
|
||||
(\d{4})
|
||||
(?:
|
||||
(,\ |--?)
|
||||
((??{
|
||||
if ($2 ne ', ') { '\d{4}'; }
|
||||
elsif (!$3) { $1 + 1; }
|
||||
else { $3 + 1; }
|
||||
}))
|
||||
)+
|
||||
/$1$ndash$3/gx;
|
||||
|
||||
# When it's 2, emit a single range encompassing all year numbers.
|
||||
$ENV{UPDATE_COPYRIGHT_USE_INTERVALS} == 2
|
||||
and $stmt =~ s/\b(\d{4})\b.*\b(\d{4})\b/$1$ndash$2/;
|
||||
}
|
||||
|
||||
# Format within margin.
|
||||
my $stmt_wrapped;
|
||||
my $text_margin = $margin - length($prefix);
|
||||
if ($prefix =~ /^(\t+)/)
|
||||
{
|
||||
$text_margin -= length($1) * ($tab_width - 1);
|
||||
}
|
||||
while (length $stmt)
|
||||
{
|
||||
if (($stmt =~ s/^(.{1,$text_margin})(?: |$)//)
|
||||
|| ($stmt =~ s/^([\S]+)(?: |$)//))
|
||||
{
|
||||
my $line = $1;
|
||||
$stmt_wrapped .= $stmt_wrapped ? "$eol$prefix" : $leading;
|
||||
$stmt_wrapped .= $line;
|
||||
}
|
||||
else
|
||||
{
|
||||
# Should be unreachable, but we don't want an infinite
|
||||
# loop if it can be reached.
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
# Replace the old copyright statement.
|
||||
s/$stmt_re/$stmt_wrapped/;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
print STDERR "$ARGV: warning: copyright statement not found\n";
|
||||
}
|
||||
|
||||
# Hey Emacs!
|
||||
# Local variables:
|
||||
# coding: utf-8
|
||||
# mode: perl
|
||||
# indent-tabs-mode: nil
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-line-limit: 200
|
||||
# time-stamp-start: "my $VERSION = '"
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H:%02M"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "'; # UTC"
|
||||
# End:
|
||||
240
BUILD/libtool-2.4.7/build-aux/useless-if-before-free
Executable file
240
BUILD/libtool-2.4.7/build-aux/useless-if-before-free
Executable file
@ -0,0 +1,240 @@
|
||||
#!/bin/sh
|
||||
#! -*-perl-*-
|
||||
|
||||
# Detect instances of "if (p) free (p);".
|
||||
# Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces.
|
||||
|
||||
# Copyright (C) 2008-2022 Free Software Foundation, Inc.
|
||||
#
|
||||
# This program 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 3 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Written by Jim Meyering
|
||||
|
||||
# This is a prologue that allows to run a perl script as an executable
|
||||
# on systems that are compliant to a POSIX version before POSIX:2017.
|
||||
# On such systems, the usual invocation of an executable through execlp()
|
||||
# or execvp() fails with ENOEXEC if it is a script that does not start
|
||||
# with a #! line. The script interpreter mentioned in the #! line has
|
||||
# to be /bin/sh, because on GuixSD systems that is the only program that
|
||||
# has a fixed file name. The second line is essential for perl and is
|
||||
# also useful for editing this file in Emacs. The next two lines below
|
||||
# are valid code in both sh and perl. When executed by sh, they re-execute
|
||||
# the script through the perl program found in $PATH. The '-x' option
|
||||
# is essential as well; without it, perl would re-execute the script
|
||||
# through /bin/sh. When executed by perl, the next two lines are a no-op.
|
||||
eval 'exec perl -wSx "$0" "$@"'
|
||||
if 0;
|
||||
|
||||
my $VERSION = '2022-01-27 18:51'; # UTC
|
||||
# The definition above must lie within the first 8 lines in order
|
||||
# for the Emacs time-stamp write hook (at end) to update it.
|
||||
# If you change this file with Emacs, please let the write hook
|
||||
# do its job. Otherwise, update this string manually.
|
||||
|
||||
my $copyright_year = '2022';
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Getopt::Long;
|
||||
|
||||
(my $ME = $0) =~ s|.*/||;
|
||||
|
||||
# use File::Coda; # https://meyering.net/code/Coda/
|
||||
END {
|
||||
defined fileno STDOUT or return;
|
||||
close STDOUT and return;
|
||||
warn "$ME: failed to close standard output: $!\n";
|
||||
$? ||= 1;
|
||||
}
|
||||
|
||||
sub usage ($)
|
||||
{
|
||||
my ($exit_code) = @_;
|
||||
my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
|
||||
if ($exit_code != 0)
|
||||
{
|
||||
print $STREAM "Try '$ME --help' for more information.\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
print $STREAM <<EOF;
|
||||
Usage: $ME [OPTIONS] FILE...
|
||||
|
||||
Detect any instance in FILE of a useless "if" test before a free call, e.g.,
|
||||
"if (p) free (p);". Any such test may be safely removed without affecting
|
||||
the semantics of the C code in FILE. Use --name=FOO --name=BAR to also
|
||||
detect free-like functions named FOO and BAR.
|
||||
|
||||
OPTIONS:
|
||||
|
||||
--list print only the name of each matching FILE (\\0-terminated)
|
||||
--name=N add name N to the list of \'free\'-like functions to detect;
|
||||
may be repeated
|
||||
|
||||
--help display this help and exit
|
||||
--version output version information and exit
|
||||
|
||||
Exit status:
|
||||
|
||||
0 one or more matches
|
||||
1 no match
|
||||
2 an error
|
||||
|
||||
EXAMPLE:
|
||||
|
||||
For example, this command prints all removable "if" tests before "free"
|
||||
and "kfree" calls in the linux kernel sources:
|
||||
|
||||
git ls-files -z |xargs -0 $ME --name=kfree
|
||||
|
||||
EOF
|
||||
}
|
||||
exit $exit_code;
|
||||
}
|
||||
|
||||
sub is_NULL ($)
|
||||
{
|
||||
my ($expr) = @_;
|
||||
return ($expr eq 'NULL' || $expr eq '0');
|
||||
}
|
||||
|
||||
{
|
||||
sub EXIT_MATCH {0}
|
||||
sub EXIT_NO_MATCH {1}
|
||||
sub EXIT_ERROR {2}
|
||||
my $err = EXIT_NO_MATCH;
|
||||
|
||||
my $list;
|
||||
my @name = qw(free);
|
||||
GetOptions
|
||||
(
|
||||
help => sub { usage 0 },
|
||||
version =>
|
||||
sub
|
||||
{
|
||||
print "$ME version $VERSION\n";
|
||||
print "Copyright (C) $copyright_year Free Software Foundation, Inc.\n";
|
||||
print "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\n"
|
||||
. "This is free software: you are free to change and redistribute it.\n"
|
||||
. "There is NO WARRANTY, to the extent permitted by law.\n";
|
||||
print "\n";
|
||||
my $author = "Jim Meyering";
|
||||
print "Written by $author.\n";
|
||||
exit
|
||||
},
|
||||
list => \$list,
|
||||
'name=s@' => \@name,
|
||||
) or usage 1;
|
||||
|
||||
# Make sure we have the right number of non-option arguments.
|
||||
# Always tell the user why we fail.
|
||||
@ARGV < 1
|
||||
and (warn "$ME: missing FILE argument\n"), usage EXIT_ERROR;
|
||||
|
||||
my $or = join '|', @name;
|
||||
my $regexp = qr/(?:$or)/;
|
||||
|
||||
# Set the input record separator.
|
||||
# Note: this makes it impractical to print line numbers.
|
||||
$/ = '"';
|
||||
|
||||
my $found_match = 0;
|
||||
FILE:
|
||||
foreach my $file (@ARGV)
|
||||
{
|
||||
open FH, '<', $file
|
||||
or (warn "$ME: can't open '$file' for reading: $!\n"),
|
||||
$err = EXIT_ERROR, next;
|
||||
while (defined (my $line = <FH>))
|
||||
{
|
||||
# Skip non-matching lines early to save time
|
||||
$line =~ /\bif\b/
|
||||
or next;
|
||||
while ($line =~
|
||||
/\b(if\s*\(\s*([^)]+?)(?:\s*!=\s*([^)]+?))?\s*\)
|
||||
# 1 2 3
|
||||
(?: \s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;|
|
||||
\s*\{\s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;\s*\}))/sxg)
|
||||
{
|
||||
my $all = $1;
|
||||
my ($lhs, $rhs) = ($2, $3);
|
||||
my ($free_opnd, $braced_free_opnd) = ($4, $5);
|
||||
my $non_NULL;
|
||||
if (!defined $rhs) { $non_NULL = $lhs }
|
||||
elsif (is_NULL $rhs) { $non_NULL = $lhs }
|
||||
elsif (is_NULL $lhs) { $non_NULL = $rhs }
|
||||
else { next }
|
||||
|
||||
# Compare the non-NULL part of the "if" expression and the
|
||||
# free'd expression, without regard to white space.
|
||||
$non_NULL =~ tr/ \t//d;
|
||||
my $e2 = defined $free_opnd ? $free_opnd : $braced_free_opnd;
|
||||
$e2 =~ tr/ \t//d;
|
||||
if ($non_NULL eq $e2)
|
||||
{
|
||||
$found_match = 1;
|
||||
$list
|
||||
and (print "$file\0"), next FILE;
|
||||
print "$file: $all\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
continue
|
||||
{
|
||||
close FH;
|
||||
}
|
||||
|
||||
$found_match && $err == EXIT_NO_MATCH
|
||||
and $err = EXIT_MATCH;
|
||||
|
||||
exit $err;
|
||||
}
|
||||
|
||||
my $foo = <<'EOF';
|
||||
# The above is to *find* them.
|
||||
# This adjusts them, removing the unnecessary "if (p)" part.
|
||||
|
||||
# FIXME: do something like this as an option (doesn't do braces):
|
||||
free=xfree
|
||||
git grep -l -z "$free *(" \
|
||||
| xargs -0 useless-if-before-free -l --name="$free" \
|
||||
| xargs -0 perl -0x3b -pi -e \
|
||||
's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s+('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\)\s*;)/$2/s'
|
||||
|
||||
# Use the following to remove redundant uses of kfree inside braces.
|
||||
# Note that -0777 puts perl in slurp-whole-file mode;
|
||||
# but we have plenty of memory, these days...
|
||||
free=kfree
|
||||
git grep -l -z "$free *(" \
|
||||
| xargs -0 useless-if-before-free -l --name="$free" \
|
||||
| xargs -0 perl -0777 -pi -e \
|
||||
's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s*\{\s*('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\);)\s*\}[^\n]*$/$2/gms'
|
||||
|
||||
Be careful that the result of the above transformation is valid.
|
||||
If the matched string is followed by "else", then obviously, it won't be.
|
||||
|
||||
When modifying files, refuse to process anything other than a regular file.
|
||||
EOF
|
||||
|
||||
## Local Variables:
|
||||
## mode: perl
|
||||
## indent-tabs-mode: nil
|
||||
## eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
## time-stamp-line-limit: 50
|
||||
## time-stamp-start: "my $VERSION = '"
|
||||
## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
|
||||
## time-stamp-time-zone: "UTC0"
|
||||
## time-stamp-end: "'; # UTC"
|
||||
## End:
|
||||
113
BUILD/libtool-2.4.7/build-aux/vc-list-files
Executable file
113
BUILD/libtool-2.4.7/build-aux/vc-list-files
Executable file
@ -0,0 +1,113 @@
|
||||
#!/bin/sh
|
||||
# List version-controlled file names.
|
||||
|
||||
# Print a version string.
|
||||
scriptversion=2018-03-07.03; # UTC
|
||||
|
||||
# Copyright (C) 2006-2022 Free Software Foundation, Inc.
|
||||
|
||||
# This program 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 3 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
# List the specified version-controlled files.
|
||||
# With no argument, list them all. With a single DIRECTORY argument,
|
||||
# list the version-controlled files in that directory.
|
||||
|
||||
# If there's an argument, it must be a single, "."-relative directory name.
|
||||
# cvsu is part of the cvsutils package: https://www.red-bean.com/cvsutils/
|
||||
|
||||
postprocess=
|
||||
case $1 in
|
||||
--help) cat <<EOF
|
||||
Usage: $0 [-C SRCDIR] [DIR...]
|
||||
|
||||
Output a list of version-controlled files in DIR (default .), relative to
|
||||
SRCDIR (default .). SRCDIR must be the top directory of a checkout.
|
||||
|
||||
Options:
|
||||
--help print this help, then exit
|
||||
--version print version number, then exit
|
||||
-C SRCDIR change directory to SRCDIR before generating list
|
||||
|
||||
Report bugs and patches to <bug-gnulib@gnu.org>.
|
||||
EOF
|
||||
exit ;;
|
||||
|
||||
--version)
|
||||
year=`echo "$scriptversion" | sed 's/[^0-9].*//'`
|
||||
cat <<EOF
|
||||
vc-list-files $scriptversion
|
||||
Copyright (C) $year Free Software Foundation, Inc,
|
||||
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
|
||||
This is free software: you are free to change and redistribute it.
|
||||
There is NO WARRANTY, to the extent permitted by law.
|
||||
EOF
|
||||
exit ;;
|
||||
|
||||
-C)
|
||||
test "$2" = . || postprocess="| sed 's|^|$2/|'"
|
||||
cd "$2" || exit 1
|
||||
shift; shift ;;
|
||||
esac
|
||||
|
||||
test $# = 0 && set .
|
||||
|
||||
for dir
|
||||
do
|
||||
if test -d .git || test -f .git; then
|
||||
test "x$dir" = x. \
|
||||
&& dir= sed_esc= \
|
||||
|| { dir="$dir/"; sed_esc=`echo "$dir"|env sed 's,\([\\/]\),\\\\\1,g'`; }
|
||||
# Ignore git symlinks - either they point into the tree, in which case
|
||||
# we don't need to visit the target twice, or they point somewhere
|
||||
# else (often into a submodule), in which case the content does not
|
||||
# belong to this package.
|
||||
eval exec git ls-tree -r 'HEAD:"$dir"' \
|
||||
\| sed -n '"s/^100[^ ]*./$sed_esc/p"' $postprocess
|
||||
elif test -d .hg; then
|
||||
eval exec hg locate '"$dir/*"' $postprocess
|
||||
elif test -d .bzr; then
|
||||
test "$postprocess" = '' && postprocess="| sed 's|^\./||'"
|
||||
eval exec bzr ls -R --versioned '"$dir"' $postprocess
|
||||
elif test -d CVS; then
|
||||
test "$postprocess" = '' && postprocess="| sed 's|^\./||'"
|
||||
if test -x build-aux/cvsu; then
|
||||
eval build-aux/cvsu --find --types=AFGM '"$dir"' $postprocess
|
||||
elif (cvsu --help) >/dev/null 2>&1; then
|
||||
eval cvsu --find --types=AFGM '"$dir"' $postprocess
|
||||
else
|
||||
eval awk -F/ \''{ \
|
||||
if (!$1 && $3 !~ /^-/) { \
|
||||
f=FILENAME; \
|
||||
if (f ~ /CVS\/Entries$/) \
|
||||
f = substr(f, 1, length(f)-11); \
|
||||
print f $2; \
|
||||
}}'\'' \
|
||||
`find "$dir" -name Entries -print` /dev/null' $postprocess
|
||||
fi
|
||||
elif test -d .svn; then
|
||||
eval exec svn list -R '"$dir"' $postprocess
|
||||
else
|
||||
echo "$0: Failed to determine type of version control used in `pwd`" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
274
BUILD/libtool-2.4.7/cfg.mk
Normal file
274
BUILD/libtool-2.4.7/cfg.mk
Normal file
@ -0,0 +1,274 @@
|
||||
# cfg.mk -- Configuration for maintainer-makefile
|
||||
#
|
||||
# Copyright (c) 2011-2019, 2021-2022 Free Software Foundation, Inc.
|
||||
# Written by Gary V. Vaughan, 2011
|
||||
#
|
||||
# This file is part of GNU Libtool.
|
||||
#
|
||||
# GNU Libtool 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.
|
||||
#
|
||||
# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
|
||||
# can be downlodad from http://www.gnu.org/licenses/gpl.html,
|
||||
# or obtained by writing to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Boston, # MA 02111-1301, USA.
|
||||
|
||||
update-copyright-env := UPDATE_COPYRIGHT_FORCE=1 UPDATE_COPYRIGHT_USE_INTERVALS=1
|
||||
|
||||
# Set format of NEWS
|
||||
old_NEWS_hash := 694e28388e83b832b0d7614e305b107e
|
||||
|
||||
manual_title = Portable Dynamic Shared Object Management
|
||||
|
||||
# Set the release announcement email addresses, maint.mk will email the
|
||||
# translation-project instead of autotools-announce otherwise.
|
||||
ifeq ($(RELEASE_TYPE),stable)
|
||||
announcement_Cc_ = autotools-announce@gnu.org
|
||||
else
|
||||
announcement_Cc_ = autotools-announce@gnu.org, $(PACKAGE_BUGREPORT)
|
||||
endif
|
||||
|
||||
# Don't syntax check the mail subdirectory.
|
||||
VC_LIST_ALWAYS_EXCLUDE_REGEX = ^mail/
|
||||
|
||||
local-checks-to-fix = \
|
||||
sc_require_config_h \
|
||||
sc_require_config_h_first
|
||||
|
||||
local-checks-to-skip = \
|
||||
$(local-checks-to-fix) \
|
||||
sc_GPL_version \
|
||||
sc_cast_of_x_alloc_return_value \
|
||||
sc_prohibit_always-defined_macros \
|
||||
sc_prohibit_always_true_header_tests \
|
||||
sc_prohibit_strncpy \
|
||||
sc_trailing_blank \
|
||||
sc_unmarked_diagnostics
|
||||
|
||||
# GPL_version: checks for GPLv3, which we don't use
|
||||
# cast_of_x_alloc_return_value:
|
||||
# We support C++ compilation, which does require casting here.
|
||||
# prohibit_always-defined_macros:
|
||||
# we have our own argz and dirent, which use the same macros but
|
||||
# are not always-defined in our case.
|
||||
# prohibit_always_true_header_tests:
|
||||
# we have our own argz and dirent, which are not *always* true,
|
||||
# so the guards cannot be removed in our case.
|
||||
# prohibit_strncpy:
|
||||
# what's so bad about strncpy anyway?
|
||||
# trailing_blank: flags valid rfc3676 separators
|
||||
# unmarked_diagnostics: libtool isn't internationalized
|
||||
|
||||
|
||||
# Check for correct usage of $cc_basename in libtool.m4.
|
||||
sc_libtool_m4_cc_basename:
|
||||
@$(SED) -n "/case \\\$$cc_basename in/,/esac/ { \
|
||||
/^[ ]*[a-zA-Z][a-zA-Z0-9+]*[^*][ ]*)/p; \
|
||||
}" '$(srcdir)/$(macro_dir)/libtool.m4' | grep . && { \
|
||||
msg="\$$cc_basename matches should include a trailing '*'." \
|
||||
$(_sc_say_and_exit) } || :
|
||||
|
||||
# Check for old-style `quoting'.
|
||||
exclude_file_name_regexp--sc_old_style_quoting = (^bootstrap|^cfg.mk|\.texi)$$
|
||||
sc_old_style_quoting:
|
||||
@prohibit="^[^\`]*[^=]\`[^'\`]*[a-zA-Z0-9][^'\`]*'[^\`]*[^\\\`]$$" \
|
||||
halt="quote 'like this' not \`like this' in comments and output" \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Check for uses of Xsed without corresponding echo "X
|
||||
exclude_file_name_regexp--sc_prohibit_Xsed_without_X = ^cfg.mk$$
|
||||
sc_prohibit_Xsed_without_X:
|
||||
@files=$$($(VC_LIST_EXCEPT)); \
|
||||
if test -n "$$files"; then \
|
||||
grep -nE '\$$Xsed' $$files | grep -vE '(func_echo_all|\$$ECHO) \\*"X' && { \
|
||||
msg="occurrences of '\$$Xsed' without '\$$ECHO "\""X' on the same line" \
|
||||
$(_sc_say_and_exit) } || :; \
|
||||
else :; \
|
||||
fi || :
|
||||
|
||||
# Use a consistent dirname and basename idiom.
|
||||
sc_prohibit_bare_basename:
|
||||
@prohibit='\|[ ]*\$$(base|dir)name' \
|
||||
halt='use '\''|$$SED "$$basename"'\'' instead of '\''|$$basename'\' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
sc_prohibit_basename_with_dollar_sed:
|
||||
@prohibit='(base|dir)name="?(\$$SED|sed)[ "]' \
|
||||
halt='use '\''basename='\''s|^.*/||'\'' instead of '\''basename="$$SED...' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Check for using '[' instead of 'test'.
|
||||
exclude_file_name_regexp--sc_prohibit_bracket_as_test = ^cfg.mk$$
|
||||
sc_prohibit_bracket_as_test:
|
||||
@prohibit='if[ ]+\[' \
|
||||
halt="use 'if test' instead of 'if ['" \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# : ${foo=`bar`} is not perfectly portable (see Shellology in autoconf's manual)
|
||||
exclude_file_name_regexp--sc_prohibit_command_in_subst = ^cfg.mk$$
|
||||
sc_prohibit_command_in_subst:
|
||||
@prohibit='\$$\{[^`}]*`[^`]*`[^}]*}' \
|
||||
halt='do not use `command` in $${ } substitution`' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Check for quotes within backquotes within quotes "`"bar"`"
|
||||
exclude_file_name_regexp--sc_prohibit_nested_quotes = ^cfg.mk$$
|
||||
sc_prohibit_nested_quotes:
|
||||
@prohibit='"[^`"]*`[^"`]*"[^"`]*".*`[^`"]*"' \
|
||||
halt='found nested double quotes' \
|
||||
$(_sc_search_regexp_or_exclude)
|
||||
|
||||
# Commas in filenames are quite common, so using them routinely for sed is
|
||||
# asking for trouble!
|
||||
sc_prohibit_sed_s_comma:
|
||||
@explicit='($$SED|sed)[ ]+(-e[ ]+)?['\''"]?s,' \
|
||||
implicit='['\''";][ ]*s,[^,]*,[^,]*,g?['\''";]' \
|
||||
literal='^[ ]*s,[^,]*,[^,]*,g?['\''";]?$$' \
|
||||
prohibit='('$$implicit'|'$$explicit'|'$$literal')' \
|
||||
halt='found use of comma separator in sed substitution' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Check for using shift after set dummy (same or following line).
|
||||
exclude_file_name_regexp--sc_prohibit_set_dummy_without_shift = ^cfg.mk$$
|
||||
sc_prohibit_set_dummy_without_shift:
|
||||
@files=$$($(VC_LIST_EXCEPT)); \
|
||||
if test -n "$$files"; then \
|
||||
grep -nE '(set dummy|shift)' $$files | \
|
||||
$(SED) -n "/set[ ][ ]*dummy/{ \
|
||||
/set.*dummy.*;.*shift/d; \
|
||||
N; \
|
||||
/\n.*shift/D; \
|
||||
p; \
|
||||
}" | grep -n . && { \
|
||||
msg="use 'shift' after 'set dummy'" \
|
||||
$(_sc_say_and_exit) } || :; \
|
||||
else :; \
|
||||
fi || :
|
||||
|
||||
# Check for using set -- instead of set dummy
|
||||
exclude_file_name_regexp--sc_prohibit_set_minus_minus = ^cfg.mk$$
|
||||
sc_prohibit_set_minus_minus:
|
||||
@prohibit='set[ ]+--[ ]+' \
|
||||
halt="use 'set dummy ...' instead of 'set -- ...'" \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Make sure there is no spurious whitespace before trailing semi-colons
|
||||
sc_prohibit_space_semicolon:
|
||||
@prohibit='[^ ][ ]+;[ ]*((do|done|elif|else|then)[ ]*)?$$' \
|
||||
halt='found spurious whitespace before trailing semi-colon' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Check for using test X"... instead of test "X...
|
||||
exclude_file_name_regexp--sc_prohibit_test_X = ^cfg.mk$$
|
||||
sc_prohibit_test_X:
|
||||
@prohibit='test[ ]+(![ ])?(-.[ ]+)?[Xx]["'\'']' \
|
||||
halt='use '\''test "X..."'\'' instead of '\''test X"'\' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Check for bad binary operators.
|
||||
sc_prohibit_test_binary_operators:
|
||||
@prohibit='if[ ]+["'\'']?\$$[^ ]+[ ]+(=|-[lg][te]|-eq|-ne)' \
|
||||
halt="Use 'if test \$$something =' instead of 'if \$$something ='" \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Check for using test $... instead of test "$...
|
||||
exclude_file_name_regexp--sc_prohibit_test_dollar = ^cfg.mk$$
|
||||
sc_prohibit_test_dollar:
|
||||
@prohibit='test[ ]+(![ ])?(-.[ ]+)?X?\$$[^?#]' \
|
||||
exclude='test \$${[A-Za-z_][A-Za-z0-9_]+\+y}' \
|
||||
halt='use '\''test "$$..."'\'' instead of '\''test $$'\' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Never use test -e.
|
||||
exclude_file_name_regexp--sc_prohibit_test_minus_e = ^cfg.mk$$
|
||||
sc_prohibit_test_minus_e:
|
||||
@prohibit='test[ ]+(![ ])?-e' \
|
||||
halt="use 'test -f' instead of 'test -e'" \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Check for bad unary operators.
|
||||
sc_prohibit_test_unary_operators:
|
||||
@prohibit='if[ ]+-[a-z]' \
|
||||
halt="use 'if test -X' instead of 'if -X'" \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Don't add noisy characters on the front of the left operand of a test
|
||||
# to prevent arguments being passed inadvertently (e.g. LHS is '-z'),
|
||||
# when the other operand is a constant -- just swap them, and remove the
|
||||
# spurious leading 'x'.
|
||||
sc_prohibit_test_const_follows_var:
|
||||
@var='[ ]+"[^$$"]*\$$[0-9A-Za-z_][^"]*"' \
|
||||
op='[ ]+(!?=|-[lgn][et]|-eq)' \
|
||||
const='[ ]+[^-$$][^$$; ]*' \
|
||||
prohibit='test'$$var$$op$$const'[ ]*(&&|\|\||;|\\?$$)' \
|
||||
halt='use '\''test a = "$$b"'\'' instead of '\''test "x$$b" = xa'\' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Check for opening brace on next line in shell function definition.
|
||||
exclude_file_name_regexp--sc_require_function_nl_brace = (^HACKING|\.[ch]|\.texi)$$
|
||||
sc_require_function_nl_brace:
|
||||
@for file in $$($(VC_LIST_EXCEPT)); do \
|
||||
$(SED) -n "/^func_[^ ]*[ ]*(/{ \
|
||||
N; \
|
||||
/^func_[^ ]* ()\n{$$/d; \
|
||||
p; \
|
||||
}" $$file | grep -E . && { \
|
||||
msg="found malformed function_definition in $$file" \
|
||||
$(_sc_say_and_exit) } || :; \
|
||||
done
|
||||
|
||||
sc_trailing_blank-non-rfc3676:
|
||||
@prohibit='([^-][^-][ ][ ]*|^[ ][ ]*)$$' \
|
||||
halt='found trailing blank(s)' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Avoid useless quotes around assignments with no shell metacharacters.
|
||||
# Backtick and dollar expansions are not resplit on the RHS of an
|
||||
# assignment, so those metachars are not listed in the prohibit regex,
|
||||
# although @ is listed, since it most likely indicates that something
|
||||
# will be spliced in before the shell executes, and it may need to be
|
||||
# quoted if it contains any metacharacters after splicing.
|
||||
define _sc_search_regexp_or_exclude
|
||||
files=$$($(VC_LIST_EXCEPT)); \
|
||||
if test -n "$$files"; then \
|
||||
grep -nE "$$prohibit" $$files | grep -v '## exclude from $@' \
|
||||
&& { msg="$$halt" $(_sc_say_and_exit) } || :; \
|
||||
else :; \
|
||||
fi || :;
|
||||
endef
|
||||
|
||||
exclude_file_name_regexp--sc_useless_braces_in_variable_derefs = \
|
||||
test-funclib-quote.sh$$
|
||||
sc_useless_braces_in_variable_derefs:
|
||||
@prohibit='\$${[0-9A-Za-z_]+}[^0-9A-Za-z_]' \
|
||||
halt='found spurious braces around variable dereference' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
sc_useless_quotes_in_assignment:
|
||||
@prohibit='^[ ]*[A-Za-z_][A-Za-z0-9_]*="[^ !#&()*;<>?@~^{|}]*"$$' \
|
||||
halt='found spurious quotes around assignment value' \
|
||||
$(_sc_search_regexp_or_exclude)
|
||||
|
||||
# Avoid useless quotes around case arguments such as:
|
||||
# case "$foo" in ...
|
||||
exclude_file_name_regexp--sc_useless_quotes_in_case = ^cfg.mk$$
|
||||
sc_useless_quotes_in_case:
|
||||
@prohibit='case "[^ "]*"[ ][ ]*in' \
|
||||
halt='found spurious quotes around case argument' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# List syntax-check exempted files.
|
||||
exclude_file_name_regexp--sc_prohibit_strcmp = \
|
||||
^doc/libtool.texi$$
|
||||
exclude_file_name_regexp--sc_prohibit_test_minus_ao = \
|
||||
^m4/libtool.m4$$
|
||||
exclude_file_name_regexp--sc_space_tab = (\.diff|test-funclib-quote.sh)$$
|
||||
exclude_file_name_regexp--sc_trailing_blank-non-rfc3676 = \.diff$$
|
||||
637
BUILD/libtool-2.4.7/config-h.in
Normal file
637
BUILD/libtool-2.4.7/config-h.in
Normal file
@ -0,0 +1,637 @@
|
||||
/* config-h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define to 1 if you have the `argz_add' function. */
|
||||
#undef HAVE_ARGZ_ADD
|
||||
|
||||
/* Define to 1 if you have the `argz_append' function. */
|
||||
#undef HAVE_ARGZ_APPEND
|
||||
|
||||
/* Define to 1 if you have the `argz_count' function. */
|
||||
#undef HAVE_ARGZ_COUNT
|
||||
|
||||
/* Define to 1 if you have the `argz_create_sep' function. */
|
||||
#undef HAVE_ARGZ_CREATE_SEP
|
||||
|
||||
/* Define to 1 if you have the <argz.h> header file. */
|
||||
#undef HAVE_ARGZ_H
|
||||
|
||||
/* Define to 1 if you have the `argz_insert' function. */
|
||||
#undef HAVE_ARGZ_INSERT
|
||||
|
||||
/* Define to 1 if you have the `argz_next' function. */
|
||||
#undef HAVE_ARGZ_NEXT
|
||||
|
||||
/* Define to 1 if you have the `argz_stringify' function. */
|
||||
#undef HAVE_ARGZ_STRINGIFY
|
||||
|
||||
/* Define to 1 if you have the `closedir' function. */
|
||||
#undef HAVE_CLOSEDIR
|
||||
|
||||
/* Define to 1 if you have the declaration of `cygwin_conv_path', and to 0 if
|
||||
you don't. */
|
||||
#undef HAVE_DECL_CYGWIN_CONV_PATH
|
||||
|
||||
/* Define to 1 if you have the <dirent.h> header file. */
|
||||
#undef HAVE_DIRENT_H
|
||||
|
||||
/* Define if you have the GNU dld library. */
|
||||
#undef HAVE_DLD
|
||||
|
||||
/* Define to 1 if you have the <dld.h> header file. */
|
||||
#undef HAVE_DLD_H
|
||||
|
||||
/* Define to 1 if you have the `dlerror' function. */
|
||||
#undef HAVE_DLERROR
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
/* Define to 1 if you have the <dl.h> header file. */
|
||||
#undef HAVE_DL_H
|
||||
|
||||
/* Define if you have the _dyld_func_lookup function. */
|
||||
#undef HAVE_DYLD
|
||||
|
||||
/* Define to 1 if the system has the type `error_t'. */
|
||||
#undef HAVE_ERROR_T
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define if you have the libdl library or equivalent. */
|
||||
#undef HAVE_LIBDL
|
||||
|
||||
/* Define if libdlloader will be built on this platform */
|
||||
#undef HAVE_LIBDLLOADER
|
||||
|
||||
/* Define to 1 if you have the <mach-o/dyld.h> header file. */
|
||||
#undef HAVE_MACH_O_DYLD_H
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the `opendir' function. */
|
||||
#undef HAVE_OPENDIR
|
||||
|
||||
/* Define if libtool can extract symbol lists from object files. */
|
||||
#undef HAVE_PRELOADED_SYMBOLS
|
||||
|
||||
/* Define to 1 if you have the `readdir' function. */
|
||||
#undef HAVE_READDIR
|
||||
|
||||
/* Define if you have the shl_load function. */
|
||||
#undef HAVE_SHL_LOAD
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the `strlcat' function. */
|
||||
#undef HAVE_STRLCAT
|
||||
|
||||
/* Define to 1 if you have the `strlcpy' function. */
|
||||
#undef HAVE_STRLCPY
|
||||
|
||||
/* Define to 1 if you have the <sys/dl.h> header file. */
|
||||
#undef HAVE_SYS_DL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* This value is set to 1 to indicate that the system argz facility works */
|
||||
#undef HAVE_WORKING_ARGZ
|
||||
|
||||
/* Define if the OS needs help to load dependent libraries for dlopen(). */
|
||||
#undef LTDL_DLOPEN_DEPLIBS
|
||||
|
||||
/* Define to the system default library search path. */
|
||||
#undef LT_DLSEARCH_PATH
|
||||
|
||||
/* The archive extension */
|
||||
#undef LT_LIBEXT
|
||||
|
||||
/* The archive prefix */
|
||||
#undef LT_LIBPREFIX
|
||||
|
||||
/* Define to the extension used for runtime loadable modules, say, ".so". */
|
||||
#undef LT_MODULE_EXT
|
||||
|
||||
/* Define to the name of the environment variable that determines the run-time
|
||||
module search path. */
|
||||
#undef LT_MODULE_PATH_VAR
|
||||
|
||||
/* Define to the sub-directory where libtool stores uninstalled libraries. */
|
||||
#undef LT_OBJDIR
|
||||
|
||||
/* Define to the shared library suffix, say, ".dylib". */
|
||||
#undef LT_SHARED_EXT
|
||||
|
||||
/* Define to the shared archive member specification, say "(shr.o)". */
|
||||
#undef LT_SHARED_LIB_MEMBER
|
||||
|
||||
/* Define if dlsym() requires a leading underscore in symbol names. */
|
||||
#undef NEED_USCORE
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* True if the compiler says it groks GNU C version MAJOR.MINOR. */
|
||||
#if defined __GNUC__ && defined __GNUC_MINOR__
|
||||
# define _GL_GNUC_PREREQ(major, minor) \
|
||||
((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__))
|
||||
#else
|
||||
# define _GL_GNUC_PREREQ(major, minor) 0
|
||||
#endif
|
||||
|
||||
|
||||
/* The _Noreturn keyword of C11. */
|
||||
#ifndef _Noreturn
|
||||
# if (defined __cplusplus \
|
||||
&& ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
|
||||
|| (defined _MSC_VER && 1900 <= _MSC_VER)) \
|
||||
&& 0)
|
||||
/* [[noreturn]] is not practically usable, because with it the syntax
|
||||
extern _Noreturn void func (...);
|
||||
would not be valid; such a declaration would only be valid with 'extern'
|
||||
and '_Noreturn' swapped, or without the 'extern' keyword. However, some
|
||||
AIX system header files and several gnulib header files use precisely
|
||||
this syntax with 'extern'. */
|
||||
# define _Noreturn [[noreturn]]
|
||||
# elif ((!defined __cplusplus || defined __clang__) \
|
||||
&& (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
|
||||
|| (!defined __STRICT_ANSI__ \
|
||||
&& (_GL_GNUC_PREREQ (4, 7) \
|
||||
|| (defined __apple_build_version__ \
|
||||
? 6000000 <= __apple_build_version__ \
|
||||
: 3 < __clang_major__ + (5 <= __clang_minor__))))))
|
||||
/* _Noreturn works as-is. */
|
||||
# elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C
|
||||
# define _Noreturn __attribute__ ((__noreturn__))
|
||||
# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
|
||||
# define _Noreturn __declspec (noreturn)
|
||||
# else
|
||||
# define _Noreturn
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
/* Define so that glibc/gnulib argp.h does not typedef error_t. */
|
||||
#undef __error_t_defined
|
||||
|
||||
/* The _GL_ASYNC_SAFE marker should be attached to functions that are
|
||||
signal handlers (for signals other than SIGABRT, SIGPIPE) or can be
|
||||
invoked from such signal handlers. Such functions have some restrictions:
|
||||
* All functions that it calls should be marked _GL_ASYNC_SAFE as well,
|
||||
or should be listed as async-signal-safe in POSIX
|
||||
<https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04>
|
||||
section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in
|
||||
particular, are NOT async-signal-safe.
|
||||
* All memory locations (variables and struct fields) that these functions
|
||||
access must be marked 'volatile'. This holds for both read and write
|
||||
accesses. Otherwise the compiler might optimize away stores to and
|
||||
reads from such locations that occur in the program, depending on its
|
||||
data flow analysis. For example, when the program contains a loop
|
||||
that is intended to inspect a variable set from within a signal handler
|
||||
while (!signal_occurred)
|
||||
;
|
||||
the compiler is allowed to transform this into an endless loop if the
|
||||
variable 'signal_occurred' is not declared 'volatile'.
|
||||
Additionally, recall that:
|
||||
* A signal handler should not modify errno (except if it is a handler
|
||||
for a fatal signal and ends by raising the same signal again, thus
|
||||
provoking the termination of the process). If it invokes a function
|
||||
that may clobber errno, it needs to save and restore the value of
|
||||
errno. */
|
||||
#define _GL_ASYNC_SAFE
|
||||
|
||||
|
||||
/* Attributes. */
|
||||
#if (defined __has_attribute \
|
||||
&& (!defined __clang_minor__ \
|
||||
|| 3 < __clang_major__ + (5 <= __clang_minor__)))
|
||||
# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__)
|
||||
#else
|
||||
# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr
|
||||
# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3)
|
||||
# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2)
|
||||
# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3)
|
||||
# define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3)
|
||||
# define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95)
|
||||
# define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1)
|
||||
# define _GL_ATTR_diagnose_if 0
|
||||
# define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3)
|
||||
# define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1)
|
||||
# define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0)
|
||||
# define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7)
|
||||
# define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6)
|
||||
# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0)
|
||||
# ifdef _ICC
|
||||
# define _GL_ATTR_may_alias 0
|
||||
# else
|
||||
# define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3)
|
||||
# endif
|
||||
# define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1)
|
||||
# define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3)
|
||||
# define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0)
|
||||
# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3)
|
||||
# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7)
|
||||
# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96)
|
||||
# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9)
|
||||
# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0)
|
||||
# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7)
|
||||
# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4)
|
||||
#endif
|
||||
|
||||
#ifdef __has_c_attribute
|
||||
# define _GL_HAS_C_ATTRIBUTE(attr) __has_c_attribute (__##attr##__)
|
||||
#else
|
||||
# define _GL_HAS_C_ATTRIBUTE(attr) 0
|
||||
#endif
|
||||
|
||||
|
||||
/* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function
|
||||
is the size of the returned memory block.
|
||||
_GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied
|
||||
by the Nth argument of the function is the size of the returned memory block.
|
||||
*/
|
||||
/* Applies to: function, pointer to function, function types. */
|
||||
#if _GL_HAS_ATTRIBUTE (alloc_size)
|
||||
# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_ALLOC_SIZE(args)
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the
|
||||
function and report an error if it cannot do so. */
|
||||
/* Applies to: function. */
|
||||
#if _GL_HAS_ATTRIBUTE (always_inline)
|
||||
# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_ALWAYS_INLINE
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show
|
||||
in stack traces when debugging. The compiler should omit the function from
|
||||
stack traces. */
|
||||
/* Applies to: function. */
|
||||
#if _GL_HAS_ATTRIBUTE (artificial)
|
||||
# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_ARTIFICIAL
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_COLD declares that the function is rarely executed. */
|
||||
/* Applies to: functions. */
|
||||
/* Avoid __attribute__ ((cold)) on MinGW; see thread starting at
|
||||
<https://lists.gnu.org/r/emacs-devel/2019-04/msg01152.html>.
|
||||
Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */
|
||||
#if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__
|
||||
# ifndef __SUNPRO_C
|
||||
# define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_COLD __attribute__ ((cold))
|
||||
# endif
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_COLD
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate
|
||||
calls to the function with the same arguments.
|
||||
This attribute is safe for a function that neither depends on nor affects
|
||||
observable state, and always returns exactly once - e.g., does not loop
|
||||
forever, and does not call longjmp.
|
||||
(This attribute is stricter than _GL_ATTRIBUTE_PURE.) */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (const)
|
||||
# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_CONST
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
|
||||
that can be freed by passing them as the Ith argument to the
|
||||
function F.
|
||||
_GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that
|
||||
can be freed via 'free'; it can be used only after declaring 'free'. */
|
||||
/* Applies to: functions. Cannot be used on inline functions. */
|
||||
#if _GL_GNUC_PREREQ (11, 0)
|
||||
# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_DEALLOC(f, i)
|
||||
#endif
|
||||
/* If gnulib's <string.h> or <wchar.h> has already defined this macro, continue
|
||||
to use this earlier definition, since <stdlib.h> may not have been included
|
||||
yet. */
|
||||
#ifndef _GL_ATTRIBUTE_DEALLOC_FREE
|
||||
# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1)
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated.
|
||||
The compiler may warn if the entity is used. */
|
||||
/* Applies to:
|
||||
- function, variable,
|
||||
- struct, union, struct/union member,
|
||||
- enumeration, enumeration item,
|
||||
- typedef,
|
||||
in C++ also: namespace, class, template specialization. */
|
||||
#if _GL_HAS_C_ATTRIBUTE (deprecated)
|
||||
# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]]
|
||||
#elif _GL_HAS_ATTRIBUTE (deprecated)
|
||||
# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_DEPRECATED
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and
|
||||
the function call is not optimized away.
|
||||
_GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and
|
||||
the function call is not optimized away. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (error)
|
||||
# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg)))
|
||||
# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg)))
|
||||
#elif _GL_HAS_ATTRIBUTE (diagnose_if)
|
||||
# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error")))
|
||||
# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning")))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_ERROR(msg)
|
||||
# define _GL_ATTRIBUTE_WARNING(msg)
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain
|
||||
visible to debuggers etc., even with '-fwhole-program'. */
|
||||
/* Applies to: functions, variables. */
|
||||
#if _GL_HAS_ATTRIBUTE (externally_visible)
|
||||
# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if
|
||||
the control flow falls through to the immediately following 'case' or
|
||||
'default' label. The compiler should not warn in this case. */
|
||||
/* Applies to: Empty statement (;), inside a 'switch' statement. */
|
||||
/* Always expands to something. */
|
||||
#if _GL_HAS_C_ATTRIBUTE (fallthrough)
|
||||
# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]]
|
||||
#elif _GL_HAS_ATTRIBUTE (fallthrough)
|
||||
# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0)
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK))
|
||||
declares that the STRING-INDEXth function argument is a format string of
|
||||
style ARCHETYPE, which is one of:
|
||||
printf, gnu_printf
|
||||
scanf, gnu_scanf,
|
||||
strftime, gnu_strftime,
|
||||
strfmon,
|
||||
or the same thing prefixed and suffixed with '__'.
|
||||
If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK
|
||||
are suitable for the format string. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (format)
|
||||
# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_FORMAT(spec)
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other
|
||||
compilation unit, it executes code from that unit only by return or by
|
||||
exception handling. This declaration lets the compiler optimize that unit
|
||||
more aggressively. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (leaf)
|
||||
# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_LEAF
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly
|
||||
allocated memory. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (malloc)
|
||||
# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_MALLOC
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the
|
||||
same storage as pointers to other types. Thus this declaration disables
|
||||
strict aliasing optimization. */
|
||||
/* Applies to: types. */
|
||||
/* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */
|
||||
#if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C
|
||||
# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_MAY_ALIAS
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if
|
||||
the entity is not used. The compiler should not warn if the entity is not
|
||||
used. */
|
||||
/* Applies to:
|
||||
- function, variable,
|
||||
- struct, union, struct/union member,
|
||||
- enumeration, enumeration item,
|
||||
- typedef,
|
||||
in C++ also: class. */
|
||||
/* In C++ and C2x, this is spelled [[__maybe_unused__]].
|
||||
GCC's syntax is __attribute__ ((__unused__)).
|
||||
clang supports both syntaxes. */
|
||||
#if _GL_HAS_C_ATTRIBUTE (maybe_unused)
|
||||
# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED
|
||||
#endif
|
||||
/* Alternative spelling of this macro, for convenience. */
|
||||
#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED
|
||||
/* Earlier spellings of this macro. */
|
||||
#define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED
|
||||
|
||||
/* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not
|
||||
discard the return value. The compiler may warn if the caller does not use
|
||||
the return value, unless the caller uses something like ignore_value. */
|
||||
/* Applies to: function, enumeration, class. */
|
||||
#if _GL_HAS_C_ATTRIBUTE (nodiscard)
|
||||
# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]]
|
||||
#elif _GL_HAS_ATTRIBUTE (warn_unused_result)
|
||||
# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_NODISCARD
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the
|
||||
function. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (noinline)
|
||||
# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_NOINLINE
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,...
|
||||
must not be NULL.
|
||||
_GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be
|
||||
null. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (nonnull)
|
||||
# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_NONNULL(args)
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is
|
||||
not meant to be NUL-terminated. */
|
||||
/* Applies to: struct/union members and variables that are arrays of element
|
||||
type '[[un]signed] char'. */
|
||||
#if _GL_HAS_ATTRIBUTE (nonstring)
|
||||
# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_NONSTRING
|
||||
#endif
|
||||
|
||||
/* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */
|
||||
|
||||
/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions.
|
||||
*/
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus
|
||||
# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_NOTHROW
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_PACKED declares:
|
||||
For struct members: The member has the smallest possible alignment.
|
||||
For struct, union, class: All members have the smallest possible alignment,
|
||||
minimizing the memory required. */
|
||||
/* Applies to: struct members, struct, union,
|
||||
in C++ also: class. */
|
||||
#if _GL_HAS_ATTRIBUTE (packed)
|
||||
# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_PACKED
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate
|
||||
calls to the function with the same arguments if observable state is not
|
||||
changed between calls.
|
||||
This attribute is safe for a function that does not affect
|
||||
observable state, and always returns exactly once.
|
||||
(This attribute is looser than _GL_ATTRIBUTE_CONST.) */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (pure)
|
||||
# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_PURE
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is
|
||||
a non-NULL pointer. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (returns_nonnull)
|
||||
# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_RETURNS_NONNULL
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a
|
||||
trailing NULL argument.
|
||||
_GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99).
|
||||
_GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (sentinel)
|
||||
# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_SENTINEL(pos)
|
||||
#endif
|
||||
|
||||
/* A helper macro. Don't use it directly. */
|
||||
#if _GL_HAS_ATTRIBUTE (unused)
|
||||
# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_UNUSED
|
||||
#endif
|
||||
|
||||
|
||||
/* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the
|
||||
immediately preceding label is not used. The compiler should not warn
|
||||
if the label is not used. */
|
||||
/* Applies to: label (both in C and C++). */
|
||||
/* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;'
|
||||
syntax. But clang does. */
|
||||
#if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__
|
||||
# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED
|
||||
#else
|
||||
# define _GL_UNUSED_LABEL
|
||||
#endif
|
||||
|
||||
|
||||
/* Define to a type to use for 'error_t' if it is not otherwise available. */
|
||||
#undef error_t
|
||||
|
||||
/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
|
||||
the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
|
||||
earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
|
||||
__APPLE__ && __MACH__ test for Mac OS X.
|
||||
__APPLE_CC__ tests for the Apple compiler and its version.
|
||||
__STDC_VERSION__ tests for the C99 mode. */
|
||||
#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
|
||||
# define __GNUC_STDC_INLINE__ 1
|
||||
#endif
|
||||
|
||||
/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where
|
||||
n1 and n2 are expressions without side effects, that evaluate to real
|
||||
numbers (excluding NaN).
|
||||
It returns
|
||||
1 if n1 > n2
|
||||
0 if n1 == n2
|
||||
-1 if n1 < n2
|
||||
The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional
|
||||
jump with nearly all GCC versions up to GCC 10.
|
||||
This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many
|
||||
GCC versions up to GCC 9.
|
||||
The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9
|
||||
avoids conditional jumps in all GCC versions >= 3.4. */
|
||||
#define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2)))
|
||||
|
||||
33382
BUILD/libtool-2.4.7/configure
vendored
Executable file
33382
BUILD/libtool-2.4.7/configure
vendored
Executable file
File diff suppressed because it is too large
Load Diff
186
BUILD/libtool-2.4.7/configure.ac
Normal file
186
BUILD/libtool-2.4.7/configure.ac
Normal file
@ -0,0 +1,186 @@
|
||||
# Process this file with autoconf to create configure. -*- autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2004-2005, 2008, 2010-2019, 2021-2022 Free
|
||||
# Software Foundation, Inc.
|
||||
# Written by Gary V. Vaughan, 2001
|
||||
#
|
||||
# This file is part of GNU Libtool.
|
||||
#
|
||||
# GNU Libtool 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.
|
||||
#
|
||||
# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
|
||||
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
|
||||
# or obtained by writing to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
####
|
||||
|
||||
|
||||
AC_PREREQ(2.64)
|
||||
dnl Oldest automake required for bootstrap is below in AM_INIT_AUTOMAKE.
|
||||
|
||||
|
||||
## ------------------------ ##
|
||||
## Autoconf initialisation. ##
|
||||
## ------------------------ ##
|
||||
AC_INIT([GNU Libtool],
|
||||
m4_esyscmd([build-aux/git-version-gen .tarball-version]),
|
||||
[bug-libtool@gnu.org])
|
||||
m4_ifndef([AC_PACKAGE_URL],
|
||||
[AC_SUBST([PACKAGE_URL], [http://www.gnu.org/s/libtool/])])
|
||||
|
||||
# Remove this when a released Autoconf is capable of bootstrapping
|
||||
# Libtool without it (probably after autoconf-2.70).
|
||||
m4_ifndef([AC_CONFIG_MACRO_DIRS],
|
||||
[m4_define([AC_CONFIG_MACRO_DIRS], m4_defn([AC_CONFIG_MACRO_DIR]))])
|
||||
|
||||
# Since we already declare these directories in this file, save those
|
||||
# choices, and push the results into Makefile.am to avoid declaring
|
||||
# them in two places making renames error prone, and where copies
|
||||
# might get out of sync.
|
||||
m4_define([AC_CONFIG_AUX_DIR],
|
||||
m4_defn([AC_CONFIG_AUX_DIR])[AC_SUBST([aux_dir], [$1])])
|
||||
m4_define([LT_CONFIG_LTDL_DIR],
|
||||
m4_defn([LT_CONFIG_LTDL_DIR])[AC_SUBST([ltdl_dir], [$1])])
|
||||
m4_define([AC_CONFIG_MACRO_DIRS],
|
||||
m4_defn([AC_CONFIG_MACRO_DIRS])[AC_SUBST([macro_dir], [$1])])
|
||||
|
||||
AC_CONFIG_HEADERS([config.h:config-h.in])
|
||||
AC_CONFIG_SRCDIR([libtoolize.in])
|
||||
LT_CONFIG_LTDL_DIR([libltdl], [nonrecursive])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
AC_CONFIG_MACRO_DIRS([m4])
|
||||
AC_CONFIG_LIBOBJ_DIR([libltdl])
|
||||
|
||||
package_revision=`$SHELL $ac_aux_dir/git-version-gen .tarball-version`
|
||||
AC_SUBST([package_revision])
|
||||
|
||||
## ------------------------ ##
|
||||
## Autotest initialisation. ##
|
||||
## ------------------------ ##
|
||||
|
||||
AC_CONFIG_TESTDIR([tests])
|
||||
AC_SUBST([AUTOM4TE], [${AUTOM4TE=autom4te}])
|
||||
AC_SUBST([AUTOTEST], ['$(AUTOM4TE) --language=autotest'])
|
||||
|
||||
|
||||
## ---------------------------------------- ##
|
||||
## Display a configure time version banner. ##
|
||||
## ---------------------------------------- ##
|
||||
|
||||
# This is a sanity check so we can see what version is used in bug reports.
|
||||
AS_BOX([Configuring AC_PACKAGE_TARNAME AC_PACKAGE_VERSION])
|
||||
echo
|
||||
|
||||
|
||||
## ------------ ##
|
||||
## Shell tools. ##
|
||||
## ------------ ##
|
||||
|
||||
AC_PROG_GNU_M4
|
||||
|
||||
|
||||
## ------------------------ ##
|
||||
## Automake Initialisation. ##
|
||||
## ------------------------ ##
|
||||
|
||||
dnl These are bootstrap requirements! Once built, libtool may work with
|
||||
dnl much older releases of autoconf and automake. See release notes.
|
||||
dnl 1.11 is needed for color-tests, 1.11.1 fixes a security issue.
|
||||
AM_INIT_AUTOMAKE([1.11.1 gnu subdir-objects dist-xz])
|
||||
AM_SILENT_RULES([yes])
|
||||
|
||||
|
||||
## ------------------------- ##
|
||||
## Autobuild initialisation. ##
|
||||
## ------------------------- ##
|
||||
|
||||
# You can set autobuild_mode at configure time to specify a "unique"
|
||||
# string for this build.
|
||||
: ${autobuild_mode=default}
|
||||
AB_VERSION='AC_PACKAGE_VERSION'
|
||||
AB_INIT([$autobuild_mode])
|
||||
|
||||
|
||||
dnl Make sure config.status is regenerated when the version timestamp changes
|
||||
AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(top_srcdir)/.version'])
|
||||
|
||||
|
||||
## ------------------------------- ##
|
||||
## Libtool specific configuration. ##
|
||||
## ------------------------------- ##
|
||||
|
||||
AC_SUBST([aclocaldir], ["\$(datadir)/aclocal"])
|
||||
AC_SUBST([pkgdatadir], ["\$(datadir)/$PACKAGE"])
|
||||
|
||||
AC_ARG_ENABLE(ltdl-install,
|
||||
[AS_HELP_STRING([--disable-ltdl-install], [do not install libltdl])])
|
||||
if test set != "${enable_ltdl_install+set}"; then
|
||||
enable_ltdl_install=yes
|
||||
fi
|
||||
|
||||
# The list of scripts required to build libltdl, and which need to be
|
||||
# installed by libtoolize --ltdl, and consequently need to be placed in
|
||||
# $pkgdatadir by our make install rule.
|
||||
pkgaux_scripts="compile config.guess config.sub depcomp install-sh missing"
|
||||
AC_SUBST([pkgaux_scripts])
|
||||
|
||||
|
||||
## ---------------- ##
|
||||
## compiler checks. ##
|
||||
## ---------------- ##
|
||||
|
||||
# Need to be sure that we have a working C compiler, otherwise even with
|
||||
# a good C compiler: if the following C++ tests fail, the whole libtool
|
||||
# build fails!
|
||||
AC_PROG_CC
|
||||
GL_EARLY
|
||||
AM_PROG_CC_C_O
|
||||
AC_PROG_CPP
|
||||
|
||||
## ----------------------- ##
|
||||
## Libtool initialisation. ##
|
||||
## ----------------------- ##
|
||||
LT_INIT([dlopen win32-dll])
|
||||
_LT_SET_OPTION([LTDL_INIT], [nonrecursive])
|
||||
_LTDL_SETUP
|
||||
|
||||
# Enable all the language support we can
|
||||
LT_LANG(C++)
|
||||
LT_LANG(Fortran 77)
|
||||
LT_LANG(Fortran)
|
||||
LT_LANG(Go)
|
||||
LT_LANG(Java)
|
||||
LT_LANG(Windows Resource)
|
||||
|
||||
# Ensure the correct file name (and path) conversion function
|
||||
# is available to the test suite.
|
||||
AC_SUBST([to_host_file_cmd])dnl
|
||||
AC_SUBST([to_tool_file_cmd])dnl
|
||||
|
||||
# Propagate --with-aix-soname option to the testsuite.
|
||||
AC_SUBST([with_aix_soname])dnl
|
||||
|
||||
## ---------------------- ##
|
||||
## Gnulib initialisation. ##
|
||||
## ---------------------- ##
|
||||
GL_INIT
|
||||
|
||||
## ------------- ##
|
||||
## Documentation ##
|
||||
## ------------- ##
|
||||
AM_MISSING_PROG([HELP2MAN], [help2man])
|
||||
|
||||
## -------- ##
|
||||
## Outputs. ##
|
||||
## -------- ##
|
||||
AC_CONFIG_FILES([Makefile gnulib-tests/Makefile])
|
||||
AC_OUTPUT
|
||||
162
BUILD/libtool-2.4.7/doc/PLATFORMS
Normal file
162
BUILD/libtool-2.4.7/doc/PLATFORMS
Normal file
@ -0,0 +1,162 @@
|
||||
-------------------------------------------------------
|
||||
canonical host name compiler libtool results
|
||||
(tools versions) release
|
||||
-------------------------------------------------------
|
||||
alpha-dec-osf5.1 cc 1.3e ok (1.910)
|
||||
alpha-dec-osf4.0f gcc 1.3e ok (1.910)
|
||||
alpha-dec-osf4.0f cc 1.3e ok (1.910)
|
||||
alpha-dec-osf3.2 gcc 0.8 ok
|
||||
alpha-dec-osf3.2 cc 0.8 ok
|
||||
alpha-dec-osf2.1 gcc 1.2f NS
|
||||
alpha*-unknown-linux-gnu gcc 1.3b ok
|
||||
(egcs-1.1.2, GNU ld 2.9.1.0.23)
|
||||
hppa2.0w-hp-hpux11.00 cc 1.2f ok
|
||||
hppa2.0-hp-hpux10.20 cc 1.3.2 ok
|
||||
hppa1.1-hp-hpux10.20 gcc 1.2f ok
|
||||
hppa1.1-hp-hpux10.20 cc 1.3c ok (1.821)
|
||||
hppa1.1-hp-hpux10.10 gcc 1.2f ok
|
||||
hppa1.1-hp-hpux10.10 cc 1.2f ok
|
||||
hppa1.1-hp-hpux9.07 gcc 1.2f ok
|
||||
hppa1.1-hp-hpux9.07 cc 1.2f ok
|
||||
hppa1.1-hp-hpux9.05 gcc 1.2f ok
|
||||
hppa1.1-hp-hpux9.05 cc 1.2f ok
|
||||
hppa1.1-hp-hpux9.01 gcc 1.2f ok
|
||||
hppa1.1-hp-hpux9.01 cc 1.2f ok
|
||||
i*86-*-beos gcc 1.2f ok
|
||||
i*86-*-bsdi4.0.1 gcc 1.3c ok
|
||||
(gcc-2.7.2.1)
|
||||
i*86-*-bsdi4.0 gcc 1.2f ok
|
||||
i*86-*-bsdi3.1 gcc 1.2e NS
|
||||
i*86-*-bsdi3.0 gcc 1.2e NS
|
||||
i*86-*-bsdi2.1 gcc 1.2e NS
|
||||
i*86-pc-cygwin gcc 1.3b NS
|
||||
(egcs-1.1 stock b20.1 compiler)
|
||||
i*86-*-dguxR4.20MU01 gcc 1.2 ok
|
||||
i*86-*-freebsd4.3 gcc 1.3e ok (1.912)
|
||||
i*86-*-freebsdelf4.0 gcc 1.3c ok
|
||||
(egcs-1.1.2)
|
||||
i*86-*-freebsdelf3.2 gcc 1.3c ok
|
||||
(gcc-2.7.2.1)
|
||||
i*86-*-freebsdelf3.1 gcc 1.3c ok
|
||||
(gcc-2.7.2.1)
|
||||
i*86-*-freebsdelf3.0 gcc 1.3c ok
|
||||
i*86-*-freebsd3.0 gcc 1.2e ok
|
||||
i*86-*-freebsd2.2.8 gcc 1.3c ok
|
||||
(gcc-2.7.2.1)
|
||||
i*86-*-freebsd2.2.6 gcc 1.3b ok
|
||||
(egcs-1.1 & gcc-2.7.2.1, native ld)
|
||||
i*86-*-freebsd2.1.5 gcc 0.5 ok
|
||||
i*86-*-netbsd1.5 gcc 1.3e ok (1.901)
|
||||
(egcs-1.1.2)
|
||||
i*86-*-netbsd1.4 gcc 1.3c ok
|
||||
(egcs-1.1.1)
|
||||
i*86-*-netbsd1.4.3A gcc 1.3e ok (1.901)
|
||||
i*86-*-netbsd1.3.3 gcc 1.3c ok
|
||||
(gcc-2.7.2.2+myc2)
|
||||
i*86-*-netbsd1.3.2 gcc 1.2e ok
|
||||
i*86-*-netbsd1.3I gcc 1.2e ok
|
||||
(egcs 1.1?)
|
||||
i*86-*-netbsd1.2 gcc 0.9g ok
|
||||
i*86-*-linux-gnu gcc 1.3e ok (1.901)
|
||||
(Red Hat 7.0, gcc "2.96")
|
||||
i*86-*-linux-gnu gcc 1.3e ok (1.911)
|
||||
(SuSE 7.0, gcc 2.95.2)
|
||||
i*86-*-linux-gnulibc1 gcc 1.2f ok
|
||||
i*86-*-openbsd2.5 gcc 1.3c ok
|
||||
(gcc-2.8.1)
|
||||
i*86-*-openbsd2.4 gcc 1.3c ok
|
||||
(gcc-2.8.1)
|
||||
i*86-*-solaris2.7 gcc 1.3b ok
|
||||
(egcs-1.1.2, native ld)
|
||||
i*86-*-solaris2.6 gcc 1.2f ok
|
||||
i*86-*-solaris2.5.1 gcc 1.2f ok
|
||||
i*86-ncr-sysv4.3.03 gcc 1.2f ok
|
||||
i*86-ncr-sysv4.3.03 cc 1.2e ok
|
||||
(cc -Hnocopyr)
|
||||
i*86-pc-sco3.2v5.0.5 cc 1.3c ok
|
||||
i*86-pc-sco3.2v5.0.5 gcc 1.3c ok
|
||||
(gcc 95q4c)
|
||||
i*86-pc-sco3.2v5.0.5 gcc 1.3c ok
|
||||
(egcs-1.1.2)
|
||||
i*86-sco-sysv5uw7.1.1 gcc 1.3e ok (1.901)
|
||||
(gcc-2.95.2, SCO linker)
|
||||
i*86-UnixWare7.1.0-sysv5 cc 1.3c ok
|
||||
i*86-UnixWare7.1.0-sysv5 gcc 1.3c ok
|
||||
(egcs-1.1.1)
|
||||
m68k-next-nextstep3 gcc 1.2f NS
|
||||
m68k-sun-sunos4.1.1 gcc 1.2f NS
|
||||
(gcc-2.5.7)
|
||||
m88k-dg-dguxR4.12TMU01 gcc 1.2 ok
|
||||
m88k-motorola-sysv4 gcc 1.3 ok
|
||||
(egcs-1.1.2)
|
||||
mips-sgi-irix6.5 gcc 1.2f ok
|
||||
(gcc-2.8.1)
|
||||
mips-sgi-irix6.4 gcc 1.2f ok
|
||||
mips-sgi-irix6.3 gcc 1.3b ok
|
||||
(egcs-1.1.2, native ld)
|
||||
mips-sgi-irix6.3 cc 1.3b ok
|
||||
(cc 7.0)
|
||||
mips-sgi-irix6.2 gcc 1.2f ok
|
||||
mips-sgi-irix6.2 cc 0.9 ok
|
||||
mips-sgi-irix5.3 gcc 1.2f ok
|
||||
(egcs-1.1.1)
|
||||
mips-sgi-irix5.3 gcc 1.2f NS
|
||||
(gcc-2.6.3)
|
||||
mips-sgi-irix5.3 cc 0.8 ok
|
||||
mips-sgi-irix5.2 gcc 1.3b ok
|
||||
(egcs-1.1.2, native ld)
|
||||
mips-sgi-irix5.2 cc 1.3b ok
|
||||
(cc 3.18)
|
||||
mips-sni-sysv4 cc 1.3.5 ok
|
||||
(Siemens C-compiler)
|
||||
mips-sni-sysv4 gcc 1.3.5 ok
|
||||
(gcc-2.7.2.3, GNU assembler 2.8.1, native ld)
|
||||
mipsel-unknown-openbsd2.1 gcc 1.0 ok
|
||||
powerpc-apple-darwin6.4 gcc 1.5 ok
|
||||
(apple dev tools released 12/2002)
|
||||
powerpc-ibm-aix4.3.1.0 gcc 1.2f ok
|
||||
(egcs-1.1.1)
|
||||
powerpc-ibm-aix4.2.1.0 gcc 1.2f ok
|
||||
(egcs-1.1.1)
|
||||
powerpc-ibm-aix4.1.5.0 gcc 1.2f ok
|
||||
(egcs-1.1.1)
|
||||
powerpc-ibm-aix4.1.5.0 gcc 1.2f NS
|
||||
(gcc-2.8.1)
|
||||
powerpc-ibm-aix4.1.4.0 gcc 1.0 ok
|
||||
powerpc-ibm-aix4.1.4.0 xlc 1.0i ok
|
||||
rs6000-ibm-aix4.1.5.0 gcc 1.2f ok
|
||||
(gcc-2.7.2)
|
||||
rs6000-ibm-aix4.1.4.0 gcc 1.2f ok
|
||||
(gcc-2.7.2)
|
||||
rs6000-ibm-aix3.2.5 gcc 1.0i ok
|
||||
rs6000-ibm-aix3.2.5 xlc 1.0i ok
|
||||
sparc-sun-solaris2.8 gcc 1.3e ok (1.913)
|
||||
(gcc-2.95.3 & native ld)
|
||||
sparc-sun-solaris2.7 gcc 1.3e ok (1.913)
|
||||
(gcc-2.95.3 & native ld)
|
||||
sparc-sun-solaris2.6 gcc 1.3e ok (1.913)
|
||||
(gcc-2.95.3 & native ld)
|
||||
sparc-sun-solaris2.5.1 gcc 1.3e ok (1.911)
|
||||
sparc-sun-solaris2.5 gcc 1.3b ok
|
||||
(egcs-1.1.2, GNU ld 2.9.1 & native ld)
|
||||
sparc-sun-solaris2.5 cc 1.3b ok
|
||||
(SC 3.0.1)
|
||||
sparc-sun-solaris2.4 gcc 1.0a ok
|
||||
sparc-sun-solaris2.4 cc 1.0a ok
|
||||
sparc-sun-solaris2.3 gcc 1.2f ok
|
||||
sparc-sun-sunos4.1.4 gcc 1.2f ok
|
||||
sparc-sun-sunos4.1.4 cc 1.0f ok
|
||||
sparc-sun-sunos4.1.3_U1 gcc 1.2f ok
|
||||
sparc-sun-sunos4.1.3C gcc 1.2f ok
|
||||
sparc-sun-sunos4.1.3 gcc 1.3b ok
|
||||
(egcs-1.1.2, GNU ld 2.9.1 & native ld)
|
||||
sparc-sun-sunos4.1.3 cc 1.3b ok
|
||||
sparc-unknown-bsdi4.0 gcc 1.2c ok
|
||||
sparc-unknown-linux-gnulibc1 gcc 1.2f ok
|
||||
sparc-unknown-linux-gnu gcc 1.3b ok
|
||||
(egcs-1.1.2, GNU ld 2.9.1.0.23)
|
||||
sparc64-unknown-linux-gnu gcc 1.2f ok
|
||||
|
||||
Notes:
|
||||
- "ok" means "all tests passed".
|
||||
- "NS" means "Not Shared", but OK for static libraries
|
||||
505
BUILD/libtool-2.4.7/doc/fdl.texi
Normal file
505
BUILD/libtool-2.4.7/doc/fdl.texi
Normal file
@ -0,0 +1,505 @@
|
||||
@c The GNU Free Documentation License.
|
||||
@center Version 1.3, 3 November 2008
|
||||
|
||||
@c This file is intended to be included within another document,
|
||||
@c hence no sectioning command or @node.
|
||||
|
||||
@display
|
||||
Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
@uref{https://fsf.org/}
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
@end display
|
||||
|
||||
@enumerate 0
|
||||
@item
|
||||
PREAMBLE
|
||||
|
||||
The purpose of this License is to make a manual, textbook, or other
|
||||
functional and useful document @dfn{free} in the sense of freedom: to
|
||||
assure everyone the effective freedom to copy and redistribute it,
|
||||
with or without modifying it, either commercially or noncommercially.
|
||||
Secondarily, this License preserves for the author and publisher a way
|
||||
to get credit for their work, while not being considered responsible
|
||||
for modifications made by others.
|
||||
|
||||
This License is a kind of ``copyleft'', which means that derivative
|
||||
works of the document must themselves be free in the same sense. It
|
||||
complements the GNU General Public License, which is a copyleft
|
||||
license designed for free software.
|
||||
|
||||
We have designed this License in order to use it for manuals for free
|
||||
software, because free software needs free documentation: a free
|
||||
program should come with manuals providing the same freedoms that the
|
||||
software does. But this License is not limited to software manuals;
|
||||
it can be used for any textual work, regardless of subject matter or
|
||||
whether it is published as a printed book. We recommend this License
|
||||
principally for works whose purpose is instruction or reference.
|
||||
|
||||
@item
|
||||
APPLICABILITY AND DEFINITIONS
|
||||
|
||||
This License applies to any manual or other work, in any medium, that
|
||||
contains a notice placed by the copyright holder saying it can be
|
||||
distributed under the terms of this License. Such a notice grants a
|
||||
world-wide, royalty-free license, unlimited in duration, to use that
|
||||
work under the conditions stated herein. The ``Document'', below,
|
||||
refers to any such manual or work. Any member of the public is a
|
||||
licensee, and is addressed as ``you''. You accept the license if you
|
||||
copy, modify or distribute the work in a way requiring permission
|
||||
under copyright law.
|
||||
|
||||
A ``Modified Version'' of the Document means any work containing the
|
||||
Document or a portion of it, either copied verbatim, or with
|
||||
modifications and/or translated into another language.
|
||||
|
||||
A ``Secondary Section'' is a named appendix or a front-matter section
|
||||
of the Document that deals exclusively with the relationship of the
|
||||
publishers or authors of the Document to the Document's overall
|
||||
subject (or to related matters) and contains nothing that could fall
|
||||
directly within that overall subject. (Thus, if the Document is in
|
||||
part a textbook of mathematics, a Secondary Section may not explain
|
||||
any mathematics.) The relationship could be a matter of historical
|
||||
connection with the subject or with related matters, or of legal,
|
||||
commercial, philosophical, ethical or political position regarding
|
||||
them.
|
||||
|
||||
The ``Invariant Sections'' are certain Secondary Sections whose titles
|
||||
are designated, as being those of Invariant Sections, in the notice
|
||||
that says that the Document is released under this License. If a
|
||||
section does not fit the above definition of Secondary then it is not
|
||||
allowed to be designated as Invariant. The Document may contain zero
|
||||
Invariant Sections. If the Document does not identify any Invariant
|
||||
Sections then there are none.
|
||||
|
||||
The ``Cover Texts'' are certain short passages of text that are listed,
|
||||
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
|
||||
the Document is released under this License. A Front-Cover Text may
|
||||
be at most 5 words, and a Back-Cover Text may be at most 25 words.
|
||||
|
||||
A ``Transparent'' copy of the Document means a machine-readable copy,
|
||||
represented in a format whose specification is available to the
|
||||
general public, that is suitable for revising the document
|
||||
straightforwardly with generic text editors or (for images composed of
|
||||
pixels) generic paint programs or (for drawings) some widely available
|
||||
drawing editor, and that is suitable for input to text formatters or
|
||||
for automatic translation to a variety of formats suitable for input
|
||||
to text formatters. A copy made in an otherwise Transparent file
|
||||
format whose markup, or absence of markup, has been arranged to thwart
|
||||
or discourage subsequent modification by readers is not Transparent.
|
||||
An image format is not Transparent if used for any substantial amount
|
||||
of text. A copy that is not ``Transparent'' is called ``Opaque''.
|
||||
|
||||
Examples of suitable formats for Transparent copies include plain
|
||||
ASCII without markup, Texinfo input format, La@TeX{} input
|
||||
format, SGML or XML using a publicly available
|
||||
DTD, and standard-conforming simple HTML,
|
||||
PostScript or PDF designed for human modification. Examples
|
||||
of transparent image formats include PNG, XCF and
|
||||
JPG@. Opaque formats include proprietary formats that can be
|
||||
read and edited only by proprietary word processors, SGML or
|
||||
XML for which the DTD and/or processing tools are
|
||||
not generally available, and the machine-generated HTML,
|
||||
PostScript or PDF produced by some word processors for
|
||||
output purposes only.
|
||||
|
||||
The ``Title Page'' means, for a printed book, the title page itself,
|
||||
plus such following pages as are needed to hold, legibly, the material
|
||||
this License requires to appear in the title page. For works in
|
||||
formats which do not have any title page as such, ``Title Page'' means
|
||||
the text near the most prominent appearance of the work's title,
|
||||
preceding the beginning of the body of the text.
|
||||
|
||||
The ``publisher'' means any person or entity that distributes copies
|
||||
of the Document to the public.
|
||||
|
||||
A section ``Entitled XYZ'' means a named subunit of the Document whose
|
||||
title either is precisely XYZ or contains XYZ in parentheses following
|
||||
text that translates XYZ in another language. (Here XYZ stands for a
|
||||
specific section name mentioned below, such as ``Acknowledgements'',
|
||||
``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title''
|
||||
of such a section when you modify the Document means that it remains a
|
||||
section ``Entitled XYZ'' according to this definition.
|
||||
|
||||
The Document may include Warranty Disclaimers next to the notice which
|
||||
states that this License applies to the Document. These Warranty
|
||||
Disclaimers are considered to be included by reference in this
|
||||
License, but only as regards disclaiming warranties: any other
|
||||
implication that these Warranty Disclaimers may have is void and has
|
||||
no effect on the meaning of this License.
|
||||
|
||||
@item
|
||||
VERBATIM COPYING
|
||||
|
||||
You may copy and distribute the Document in any medium, either
|
||||
commercially or noncommercially, provided that this License, the
|
||||
copyright notices, and the license notice saying this License applies
|
||||
to the Document are reproduced in all copies, and that you add no other
|
||||
conditions whatsoever to those of this License. You may not use
|
||||
technical measures to obstruct or control the reading or further
|
||||
copying of the copies you make or distribute. However, you may accept
|
||||
compensation in exchange for copies. If you distribute a large enough
|
||||
number of copies you must also follow the conditions in section 3.
|
||||
|
||||
You may also lend copies, under the same conditions stated above, and
|
||||
you may publicly display copies.
|
||||
|
||||
@item
|
||||
COPYING IN QUANTITY
|
||||
|
||||
If you publish printed copies (or copies in media that commonly have
|
||||
printed covers) of the Document, numbering more than 100, and the
|
||||
Document's license notice requires Cover Texts, you must enclose the
|
||||
copies in covers that carry, clearly and legibly, all these Cover
|
||||
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
|
||||
the back cover. Both covers must also clearly and legibly identify
|
||||
you as the publisher of these copies. The front cover must present
|
||||
the full title with all words of the title equally prominent and
|
||||
visible. You may add other material on the covers in addition.
|
||||
Copying with changes limited to the covers, as long as they preserve
|
||||
the title of the Document and satisfy these conditions, can be treated
|
||||
as verbatim copying in other respects.
|
||||
|
||||
If the required texts for either cover are too voluminous to fit
|
||||
legibly, you should put the first ones listed (as many as fit
|
||||
reasonably) on the actual cover, and continue the rest onto adjacent
|
||||
pages.
|
||||
|
||||
If you publish or distribute Opaque copies of the Document numbering
|
||||
more than 100, you must either include a machine-readable Transparent
|
||||
copy along with each Opaque copy, or state in or with each Opaque copy
|
||||
a computer-network location from which the general network-using
|
||||
public has access to download using public-standard network protocols
|
||||
a complete Transparent copy of the Document, free of added material.
|
||||
If you use the latter option, you must take reasonably prudent steps,
|
||||
when you begin distribution of Opaque copies in quantity, to ensure
|
||||
that this Transparent copy will remain thus accessible at the stated
|
||||
location until at least one year after the last time you distribute an
|
||||
Opaque copy (directly or through your agents or retailers) of that
|
||||
edition to the public.
|
||||
|
||||
It is requested, but not required, that you contact the authors of the
|
||||
Document well before redistributing any large number of copies, to give
|
||||
them a chance to provide you with an updated version of the Document.
|
||||
|
||||
@item
|
||||
MODIFICATIONS
|
||||
|
||||
You may copy and distribute a Modified Version of the Document under
|
||||
the conditions of sections 2 and 3 above, provided that you release
|
||||
the Modified Version under precisely this License, with the Modified
|
||||
Version filling the role of the Document, thus licensing distribution
|
||||
and modification of the Modified Version to whoever possesses a copy
|
||||
of it. In addition, you must do these things in the Modified Version:
|
||||
|
||||
@enumerate A
|
||||
@item
|
||||
Use in the Title Page (and on the covers, if any) a title distinct
|
||||
from that of the Document, and from those of previous versions
|
||||
(which should, if there were any, be listed in the History section
|
||||
of the Document). You may use the same title as a previous version
|
||||
if the original publisher of that version gives permission.
|
||||
|
||||
@item
|
||||
List on the Title Page, as authors, one or more persons or entities
|
||||
responsible for authorship of the modifications in the Modified
|
||||
Version, together with at least five of the principal authors of the
|
||||
Document (all of its principal authors, if it has fewer than five),
|
||||
unless they release you from this requirement.
|
||||
|
||||
@item
|
||||
State on the Title page the name of the publisher of the
|
||||
Modified Version, as the publisher.
|
||||
|
||||
@item
|
||||
Preserve all the copyright notices of the Document.
|
||||
|
||||
@item
|
||||
Add an appropriate copyright notice for your modifications
|
||||
adjacent to the other copyright notices.
|
||||
|
||||
@item
|
||||
Include, immediately after the copyright notices, a license notice
|
||||
giving the public permission to use the Modified Version under the
|
||||
terms of this License, in the form shown in the Addendum below.
|
||||
|
||||
@item
|
||||
Preserve in that license notice the full lists of Invariant Sections
|
||||
and required Cover Texts given in the Document's license notice.
|
||||
|
||||
@item
|
||||
Include an unaltered copy of this License.
|
||||
|
||||
@item
|
||||
Preserve the section Entitled ``History'', Preserve its Title, and add
|
||||
to it an item stating at least the title, year, new authors, and
|
||||
publisher of the Modified Version as given on the Title Page. If
|
||||
there is no section Entitled ``History'' in the Document, create one
|
||||
stating the title, year, authors, and publisher of the Document as
|
||||
given on its Title Page, then add an item describing the Modified
|
||||
Version as stated in the previous sentence.
|
||||
|
||||
@item
|
||||
Preserve the network location, if any, given in the Document for
|
||||
public access to a Transparent copy of the Document, and likewise
|
||||
the network locations given in the Document for previous versions
|
||||
it was based on. These may be placed in the ``History'' section.
|
||||
You may omit a network location for a work that was published at
|
||||
least four years before the Document itself, or if the original
|
||||
publisher of the version it refers to gives permission.
|
||||
|
||||
@item
|
||||
For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve
|
||||
the Title of the section, and preserve in the section all the
|
||||
substance and tone of each of the contributor acknowledgements and/or
|
||||
dedications given therein.
|
||||
|
||||
@item
|
||||
Preserve all the Invariant Sections of the Document,
|
||||
unaltered in their text and in their titles. Section numbers
|
||||
or the equivalent are not considered part of the section titles.
|
||||
|
||||
@item
|
||||
Delete any section Entitled ``Endorsements''. Such a section
|
||||
may not be included in the Modified Version.
|
||||
|
||||
@item
|
||||
Do not retitle any existing section to be Entitled ``Endorsements'' or
|
||||
to conflict in title with any Invariant Section.
|
||||
|
||||
@item
|
||||
Preserve any Warranty Disclaimers.
|
||||
@end enumerate
|
||||
|
||||
If the Modified Version includes new front-matter sections or
|
||||
appendices that qualify as Secondary Sections and contain no material
|
||||
copied from the Document, you may at your option designate some or all
|
||||
of these sections as invariant. To do this, add their titles to the
|
||||
list of Invariant Sections in the Modified Version's license notice.
|
||||
These titles must be distinct from any other section titles.
|
||||
|
||||
You may add a section Entitled ``Endorsements'', provided it contains
|
||||
nothing but endorsements of your Modified Version by various
|
||||
parties---for example, statements of peer review or that the text has
|
||||
been approved by an organization as the authoritative definition of a
|
||||
standard.
|
||||
|
||||
You may add a passage of up to five words as a Front-Cover Text, and a
|
||||
passage of up to 25 words as a Back-Cover Text, to the end of the list
|
||||
of Cover Texts in the Modified Version. Only one passage of
|
||||
Front-Cover Text and one of Back-Cover Text may be added by (or
|
||||
through arrangements made by) any one entity. If the Document already
|
||||
includes a cover text for the same cover, previously added by you or
|
||||
by arrangement made by the same entity you are acting on behalf of,
|
||||
you may not add another; but you may replace the old one, on explicit
|
||||
permission from the previous publisher that added the old one.
|
||||
|
||||
The author(s) and publisher(s) of the Document do not by this License
|
||||
give permission to use their names for publicity for or to assert or
|
||||
imply endorsement of any Modified Version.
|
||||
|
||||
@item
|
||||
COMBINING DOCUMENTS
|
||||
|
||||
You may combine the Document with other documents released under this
|
||||
License, under the terms defined in section 4 above for modified
|
||||
versions, provided that you include in the combination all of the
|
||||
Invariant Sections of all of the original documents, unmodified, and
|
||||
list them all as Invariant Sections of your combined work in its
|
||||
license notice, and that you preserve all their Warranty Disclaimers.
|
||||
|
||||
The combined work need only contain one copy of this License, and
|
||||
multiple identical Invariant Sections may be replaced with a single
|
||||
copy. If there are multiple Invariant Sections with the same name but
|
||||
different contents, make the title of each such section unique by
|
||||
adding at the end of it, in parentheses, the name of the original
|
||||
author or publisher of that section if known, or else a unique number.
|
||||
Make the same adjustment to the section titles in the list of
|
||||
Invariant Sections in the license notice of the combined work.
|
||||
|
||||
In the combination, you must combine any sections Entitled ``History''
|
||||
in the various original documents, forming one section Entitled
|
||||
``History''; likewise combine any sections Entitled ``Acknowledgements'',
|
||||
and any sections Entitled ``Dedications''. You must delete all
|
||||
sections Entitled ``Endorsements.''
|
||||
|
||||
@item
|
||||
COLLECTIONS OF DOCUMENTS
|
||||
|
||||
You may make a collection consisting of the Document and other documents
|
||||
released under this License, and replace the individual copies of this
|
||||
License in the various documents with a single copy that is included in
|
||||
the collection, provided that you follow the rules of this License for
|
||||
verbatim copying of each of the documents in all other respects.
|
||||
|
||||
You may extract a single document from such a collection, and distribute
|
||||
it individually under this License, provided you insert a copy of this
|
||||
License into the extracted document, and follow this License in all
|
||||
other respects regarding verbatim copying of that document.
|
||||
|
||||
@item
|
||||
AGGREGATION WITH INDEPENDENT WORKS
|
||||
|
||||
A compilation of the Document or its derivatives with other separate
|
||||
and independent documents or works, in or on a volume of a storage or
|
||||
distribution medium, is called an ``aggregate'' if the copyright
|
||||
resulting from the compilation is not used to limit the legal rights
|
||||
of the compilation's users beyond what the individual works permit.
|
||||
When the Document is included in an aggregate, this License does not
|
||||
apply to the other works in the aggregate which are not themselves
|
||||
derivative works of the Document.
|
||||
|
||||
If the Cover Text requirement of section 3 is applicable to these
|
||||
copies of the Document, then if the Document is less than one half of
|
||||
the entire aggregate, the Document's Cover Texts may be placed on
|
||||
covers that bracket the Document within the aggregate, or the
|
||||
electronic equivalent of covers if the Document is in electronic form.
|
||||
Otherwise they must appear on printed covers that bracket the whole
|
||||
aggregate.
|
||||
|
||||
@item
|
||||
TRANSLATION
|
||||
|
||||
Translation is considered a kind of modification, so you may
|
||||
distribute translations of the Document under the terms of section 4.
|
||||
Replacing Invariant Sections with translations requires special
|
||||
permission from their copyright holders, but you may include
|
||||
translations of some or all Invariant Sections in addition to the
|
||||
original versions of these Invariant Sections. You may include a
|
||||
translation of this License, and all the license notices in the
|
||||
Document, and any Warranty Disclaimers, provided that you also include
|
||||
the original English version of this License and the original versions
|
||||
of those notices and disclaimers. In case of a disagreement between
|
||||
the translation and the original version of this License or a notice
|
||||
or disclaimer, the original version will prevail.
|
||||
|
||||
If a section in the Document is Entitled ``Acknowledgements'',
|
||||
``Dedications'', or ``History'', the requirement (section 4) to Preserve
|
||||
its Title (section 1) will typically require changing the actual
|
||||
title.
|
||||
|
||||
@item
|
||||
TERMINATION
|
||||
|
||||
You may not copy, modify, sublicense, or distribute the Document
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense, or distribute it is void, and
|
||||
will automatically terminate your rights under this License.
|
||||
|
||||
However, if you cease all violation of this License, then your license
|
||||
from a particular copyright holder is reinstated (a) provisionally,
|
||||
unless and until the copyright holder explicitly and finally
|
||||
terminates your license, and (b) permanently, if the copyright holder
|
||||
fails to notify you of the violation by some reasonable means prior to
|
||||
60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, receipt of a copy of some or all of the same material does
|
||||
not give you any rights to use it.
|
||||
|
||||
@item
|
||||
FUTURE REVISIONS OF THIS LICENSE
|
||||
|
||||
The Free Software Foundation may publish new, revised versions
|
||||
of the GNU Free Documentation License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns. See
|
||||
@uref{https://www.gnu.org/licenses/}.
|
||||
|
||||
Each version of the License is given a distinguishing version number.
|
||||
If the Document specifies that a particular numbered version of this
|
||||
License ``or any later version'' applies to it, you have the option of
|
||||
following the terms and conditions either of that specified version or
|
||||
of any later version that has been published (not as a draft) by the
|
||||
Free Software Foundation. If the Document does not specify a version
|
||||
number of this License, you may choose any version ever published (not
|
||||
as a draft) by the Free Software Foundation. If the Document
|
||||
specifies that a proxy can decide which future versions of this
|
||||
License can be used, that proxy's public statement of acceptance of a
|
||||
version permanently authorizes you to choose that version for the
|
||||
Document.
|
||||
|
||||
@item
|
||||
RELICENSING
|
||||
|
||||
``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any
|
||||
World Wide Web server that publishes copyrightable works and also
|
||||
provides prominent facilities for anybody to edit those works. A
|
||||
public wiki that anybody can edit is an example of such a server. A
|
||||
``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the
|
||||
site means any set of copyrightable works thus published on the MMC
|
||||
site.
|
||||
|
||||
``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0
|
||||
license published by Creative Commons Corporation, a not-for-profit
|
||||
corporation with a principal place of business in San Francisco,
|
||||
California, as well as future copyleft versions of that license
|
||||
published by that same organization.
|
||||
|
||||
``Incorporate'' means to publish or republish a Document, in whole or
|
||||
in part, as part of another Document.
|
||||
|
||||
An MMC is ``eligible for relicensing'' if it is licensed under this
|
||||
License, and if all works that were first published under this License
|
||||
somewhere other than this MMC, and subsequently incorporated in whole
|
||||
or in part into the MMC, (1) had no cover texts or invariant sections,
|
||||
and (2) were thus incorporated prior to November 1, 2008.
|
||||
|
||||
The operator of an MMC Site may republish an MMC contained in the site
|
||||
under CC-BY-SA on the same site at any time before August 1, 2009,
|
||||
provided the MMC is eligible for relicensing.
|
||||
|
||||
@end enumerate
|
||||
|
||||
@page
|
||||
@heading ADDENDUM: How to use this License for your documents
|
||||
|
||||
To use this License in a document you have written, include a copy of
|
||||
the License in the document and put the following copyright and
|
||||
license notices just after the title page:
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
Copyright (C) @var{year} @var{your name}.
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled ``GNU
|
||||
Free Documentation License''.
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
|
||||
replace the ``with@dots{}Texts.''@: line with this:
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
with the Invariant Sections being @var{list their titles}, with
|
||||
the Front-Cover Texts being @var{list}, and with the Back-Cover Texts
|
||||
being @var{list}.
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
If you have Invariant Sections without Cover Texts, or some other
|
||||
combination of the three, merge those two alternatives to suit the
|
||||
situation.
|
||||
|
||||
If your document contains nontrivial examples of program code, we
|
||||
recommend releasing these examples in parallel under your choice of
|
||||
free software license, such as the GNU General Public License,
|
||||
to permit their use in free software.
|
||||
|
||||
@c Local Variables:
|
||||
@c ispell-local-pdict: "ispell-dict"
|
||||
@c End:
|
||||
101
BUILD/libtool-2.4.7/doc/gendocs_template
Normal file
101
BUILD/libtool-2.4.7/doc/gendocs_template
Normal file
@ -0,0 +1,101 @@
|
||||
<!--#include virtual="/server/header.html" -->
|
||||
<!-- Parent-Version: 1.78 -->
|
||||
|
||||
<!--
|
||||
Copyright (C) 2006-2022 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. This file is offered as-is,
|
||||
without any warranty.
|
||||
-->
|
||||
|
||||
<title>%%TITLE%% - GNU Project - Free Software Foundation</title>
|
||||
<!--#include virtual="/server/banner.html" -->
|
||||
<h2>%%TITLE%%</h2>
|
||||
|
||||
<address>Free Software Foundation</address>
|
||||
<address>last updated %%DATE%%</address>
|
||||
|
||||
<p>This manual (%%PACKAGE%%) is available in the following formats:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="%%PACKAGE%%.html">HTML
|
||||
(%%HTML_MONO_SIZE%%K bytes)</a> - entirely on one web page.</li>
|
||||
<li><a href="html_node/index.html">HTML</a> - with one web page per
|
||||
node.</li>
|
||||
%%IF HTML_SECTION%%
|
||||
<li><a href="html_section/index.html">HTML</a> - with one web page per
|
||||
section.</li>
|
||||
%%ENDIF HTML_SECTION%%
|
||||
%%IF HTML_CHAPTER%%
|
||||
<li><a href="html_chapter/index.html">HTML</a> - with one web page per
|
||||
chapter.</li>
|
||||
%%ENDIF HTML_CHAPTER%%
|
||||
<li><a href="%%PACKAGE%%.html.gz">HTML compressed
|
||||
(%%HTML_MONO_GZ_SIZE%%K gzipped characters)</a> - entirely on
|
||||
one web page.</li>
|
||||
<li><a href="%%PACKAGE%%.html_node.tar.gz">HTML compressed
|
||||
(%%HTML_NODE_TGZ_SIZE%%K gzipped tar file)</a> -
|
||||
with one web page per node.</li>
|
||||
%%IF HTML_SECTION%%
|
||||
<li><a href="%%PACKAGE%%.html_section.tar.gz">HTML compressed
|
||||
(%%HTML_SECTION_TGZ_SIZE%%K gzipped tar file)</a> -
|
||||
with one web page per section.</li>
|
||||
%%ENDIF HTML_SECTION%%
|
||||
%%IF HTML_CHAPTER%%
|
||||
<li><a href="%%PACKAGE%%.html_chapter.tar.gz">HTML compressed
|
||||
(%%HTML_CHAPTER_TGZ_SIZE%%K gzipped tar file)</a> -
|
||||
with one web page per chapter.</li>
|
||||
%%ENDIF HTML_CHAPTER%%
|
||||
<li><a href="%%PACKAGE%%.info.tar.gz">Info document
|
||||
(%%INFO_TGZ_SIZE%%K bytes gzipped tar file)</a>.</li>
|
||||
<li><a href="%%PACKAGE%%.txt">ASCII text
|
||||
(%%ASCII_SIZE%%K bytes)</a>.</li>
|
||||
<li><a href="%%PACKAGE%%.txt.gz">ASCII text compressed
|
||||
(%%ASCII_GZ_SIZE%%K bytes gzipped)</a>.</li>
|
||||
<li><a href="%%PACKAGE%%.dvi.gz">TeX dvi file
|
||||
(%%DVI_GZ_SIZE%%K bytes gzipped)</a>.</li>
|
||||
<li><a href="%%PACKAGE%%.pdf">PDF file
|
||||
(%%PDF_SIZE%%K bytes)</a>.</li>
|
||||
<li><a href="%%PACKAGE%%.texi.tar.gz">Texinfo source
|
||||
(%%TEXI_TGZ_SIZE%%K bytes gzipped tar file).</a></li>
|
||||
</ul>
|
||||
|
||||
<p>You can <a href="https://shop.fsf.org/">buy printed copies of
|
||||
some manuals</a> (among other items) from the Free Software Foundation;
|
||||
this helps support FSF activities.</p>
|
||||
|
||||
<p>(This page generated by the <a href="%%SCRIPTURL%%">%%SCRIPTNAME%%
|
||||
script</a>.)</p>
|
||||
|
||||
<!-- If needed, change the copyright block at the bottom. In general,
|
||||
all pages on the GNU web server should have the section about
|
||||
verbatim copying. Please do NOT remove this without talking
|
||||
with the webmasters first.
|
||||
Please make sure the copyright date is consistent with the document
|
||||
and that it is like this: "2001, 2002", not this: "2001-2002". -->
|
||||
</div><!-- for id="content", starts in the include above -->
|
||||
<!--#include virtual="/server/footer.html" -->
|
||||
<div id="footer">
|
||||
<div class="unprintable">
|
||||
|
||||
<p>Please send general FSF & GNU inquiries to
|
||||
<a href="mailto:gnu@gnu.org"><gnu@gnu.org></a>.
|
||||
There are also <a href="/contact/">other ways to contact</a>
|
||||
the FSF. Broken links and other corrections or suggestions can be sent
|
||||
to <a href="mailto:%%EMAIL%%"><%%EMAIL%%></a>.</p>
|
||||
</div>
|
||||
|
||||
<p>Copyright © 2022 Free Software Foundation, Inc.</p>
|
||||
|
||||
<p>This page is licensed under a <a rel="license"
|
||||
href="https://creativecommons.org/licenses/by-nd/3.0/us/">Creative
|
||||
Commons Attribution-NoDerivs 3.0 United States License</a>.</p>
|
||||
|
||||
<!--#include virtual="/server/bottom-notes.html" -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
123
BUILD/libtool-2.4.7/doc/libtool.1
Normal file
123
BUILD/libtool-2.4.7/doc/libtool.1
Normal file
@ -0,0 +1,123 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1.
|
||||
.TH LIBTOOL "1" "March 2022" "GNU libtool 2.4.7" "User Commands"
|
||||
.SH NAME
|
||||
libtool \- manual page for libtool 2.4.7
|
||||
.SH SYNOPSIS
|
||||
.B libtool
|
||||
[\fI\,OPTION\/\fR]... [\fI\,MODE-ARG\/\fR]...
|
||||
.SH DESCRIPTION
|
||||
Provide generalized library\-building support services.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-\-config\fR
|
||||
show all configuration variables
|
||||
.TP
|
||||
\fB\-\-debug\fR
|
||||
enable verbose shell tracing
|
||||
.TP
|
||||
\fB\-n\fR, \fB\-\-dry\-run\fR
|
||||
display commands without modifying any files
|
||||
.TP
|
||||
\fB\-\-features\fR
|
||||
display basic configuration information and exit
|
||||
.TP
|
||||
\fB\-\-mode\fR=\fI\,MODE\/\fR
|
||||
use operation mode MODE
|
||||
.TP
|
||||
\fB\-\-no\-warnings\fR
|
||||
equivalent to '\-Wnone'
|
||||
.TP
|
||||
\fB\-\-preserve\-dup\-deps\fR
|
||||
don't remove duplicate dependency libraries
|
||||
.TP
|
||||
\fB\-\-quiet\fR, \fB\-\-silent\fR
|
||||
don't print informational messages
|
||||
.TP
|
||||
\fB\-\-tag\fR=\fI\,TAG\/\fR
|
||||
use configuration variables from tag TAG
|
||||
.TP
|
||||
\fB\-v\fR, \fB\-\-verbose\fR
|
||||
print more informational messages than default
|
||||
.TP
|
||||
\fB\-\-version\fR
|
||||
print version information
|
||||
.TP
|
||||
\fB\-W\fR, \fB\-\-warnings\fR=\fI\,CATEGORY\/\fR
|
||||
report the warnings falling in CATEGORY [all]
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR, \fB\-\-help\-all\fR
|
||||
print short, long, or detailed help message
|
||||
.SS "Warning categories include:"
|
||||
.TP
|
||||
\&'all'
|
||||
show all warnings
|
||||
.TP
|
||||
\&'none'
|
||||
turn off all the warnings
|
||||
.TP
|
||||
\&'error'
|
||||
warnings are treated as fatal errors
|
||||
.PP
|
||||
MODE must be one of the following:
|
||||
.TP
|
||||
clean
|
||||
remove files from the build directory
|
||||
.TP
|
||||
compile
|
||||
compile a source file into a libtool object
|
||||
.TP
|
||||
execute
|
||||
automatically set library path, then run a program
|
||||
.TP
|
||||
finish
|
||||
complete the installation of libtool libraries
|
||||
.TP
|
||||
install
|
||||
install libraries or executables
|
||||
.TP
|
||||
link
|
||||
create a library or an executable
|
||||
.TP
|
||||
uninstall
|
||||
remove libraries from an installed directory
|
||||
.PP
|
||||
MODE\-ARGS vary depending on the MODE. When passed as first option,
|
||||
\&'\-\-mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that.
|
||||
.PP
|
||||
GNU libtool home page: <http://www.gnu.org/software/libtool/>.
|
||||
.PP
|
||||
When reporting a bug, please describe a test case to reproduce it and
|
||||
include the following information:
|
||||
.TP
|
||||
host\-triplet:
|
||||
x86_64\-pc\-linux\-gnu
|
||||
.TP
|
||||
shell:
|
||||
\fI\,/bin/bash\/\fP
|
||||
.TP
|
||||
compiler:
|
||||
gcc
|
||||
.IP
|
||||
compiler flags: \fB\-g\fR \fB\-O2\fR
|
||||
linker: \fI\,/usr/bin/ld\/\fP \fB\-m\fR elf_x86_64 (gnu? yes)
|
||||
version: libtool (GNU libtool) 2.4.7
|
||||
automake: automake (GNU automake) 1.16.3
|
||||
autoconf: autoconf (GNU Autoconf) 2.69
|
||||
.SH AUTHOR
|
||||
Written by Gordon Matzigkeit, 1996
|
||||
.SH "REPORTING BUGS"
|
||||
Report bugs to <bug\-libtool@gnu.org>.
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2014 Free Software Foundation, Inc.
|
||||
.SH "SEE ALSO"
|
||||
The full documentation for
|
||||
.B libtool
|
||||
is maintained as a Texinfo manual. If the
|
||||
.B info
|
||||
and
|
||||
.B libtool
|
||||
programs are properly installed at your site, the command
|
||||
.IP
|
||||
.B info libtool
|
||||
.PP
|
||||
should give you access to the complete manual.
|
||||
143
BUILD/libtool-2.4.7/doc/libtool.info
Normal file
143
BUILD/libtool-2.4.7/doc/libtool.info
Normal file
@ -0,0 +1,143 @@
|
||||
This is libtool.info, produced by makeinfo version 6.7 from
|
||||
libtool.texi.
|
||||
|
||||
This manual is for GNU Libtool (version 2.4.7, 17 March 2022).
|
||||
|
||||
Copyright (C) 1996-2019, 2021-2022 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
INFO-DIR-SECTION Software development
|
||||
START-INFO-DIR-ENTRY
|
||||
* Libtool: (libtool). Generic shared library support script.
|
||||
END-INFO-DIR-ENTRY
|
||||
|
||||
INFO-DIR-SECTION Individual utilities
|
||||
START-INFO-DIR-ENTRY
|
||||
* libtool-invocation: (libtool)Invoking libtool. Running the 'libtool' script.
|
||||
* libtoolize: (libtool)Invoking libtoolize. Adding libtool support.
|
||||
END-INFO-DIR-ENTRY
|
||||
|
||||
|
||||
Indirect:
|
||||
libtool.info-1: 972
|
||||
libtool.info-2: 314554
|
||||
|
||||
Tag Table:
|
||||
(Indirect)
|
||||
Node: Top972
|
||||
Node: Introduction8165
|
||||
Node: Motivation9971
|
||||
Node: Issues11291
|
||||
Node: Other implementations12769
|
||||
Node: Postmortem13312
|
||||
Node: Libtool paradigm14932
|
||||
Node: Using libtool15877
|
||||
Node: Creating object files17980
|
||||
Node: Linking libraries21716
|
||||
Ref: Linking libraries-Footnote-125525
|
||||
Node: Linking executables25666
|
||||
Ref: Linking executables-Footnote-130917
|
||||
Ref: Linking executables-Footnote-231210
|
||||
Node: Wrapper executables31291
|
||||
Node: Debugging executables33519
|
||||
Node: Installing libraries36333
|
||||
Ref: Installing libraries-Footnote-139495
|
||||
Node: Installing executables39566
|
||||
Node: Static libraries40418
|
||||
Node: Invoking libtool43696
|
||||
Node: Compile mode49352
|
||||
Node: Link mode52313
|
||||
Node: Execute mode62050
|
||||
Node: Install mode62830
|
||||
Node: Finish mode65201
|
||||
Node: Uninstall mode66063
|
||||
Node: Clean mode66504
|
||||
Node: Integrating libtool66963
|
||||
Node: Autoconf macros69793
|
||||
Node: Makefile rules73636
|
||||
Node: Using Automake74739
|
||||
Ref: Using Automake-Footnote-177610
|
||||
Node: Configuring78010
|
||||
Node: LT_INIT79244
|
||||
Ref: LT_INIT-Footnote-196612
|
||||
Node: Configure notes96865
|
||||
Node: Distributing100126
|
||||
Node: Invoking libtoolize101043
|
||||
Node: Autoconf and LTLIBOBJS107225
|
||||
Node: Static-only libraries107969
|
||||
Ref: Static-only libraries-Footnote-1109282
|
||||
Node: Other languages109391
|
||||
Node: C++ libraries110090
|
||||
Node: Tags111513
|
||||
Node: Versioning112926
|
||||
Node: Interfaces114294
|
||||
Node: Libtool versioning114927
|
||||
Node: Updating version info117140
|
||||
Node: Release numbers120171
|
||||
Node: Library tips122008
|
||||
Node: C header files124813
|
||||
Ref: C header files-Footnote-1128468
|
||||
Node: Inter-library dependencies128677
|
||||
Node: Dlopened modules131378
|
||||
Node: Building modules133265
|
||||
Node: Dlpreopening134466
|
||||
Node: Linking with dlopened modules140105
|
||||
Node: Finding the dlname145035
|
||||
Ref: Finding the dlname-Footnote-1146351
|
||||
Node: Dlopen issues146404
|
||||
Node: Using libltdl147445
|
||||
Node: Libltdl interface149277
|
||||
Ref: Libltdl interface-Footnote-1162878
|
||||
Node: Modules for libltdl163172
|
||||
Node: Thread Safety in libltdl165698
|
||||
Node: User defined module data166711
|
||||
Node: Module loaders for libltdl174197
|
||||
Ref: Module loaders for libltdl-Footnote-1183463
|
||||
Node: Distributing libltdl183569
|
||||
Ref: Distributing libltdl-Footnote-1197338
|
||||
Ref: Distributing libltdl-Footnote-2197634
|
||||
Node: Trace interface197784
|
||||
Node: FAQ198619
|
||||
Node: Stripped link flags198957
|
||||
Node: Troubleshooting200402
|
||||
Node: Libtool test suite200925
|
||||
Node: Test descriptions201694
|
||||
Node: When tests fail214075
|
||||
Node: Reporting bugs215078
|
||||
Node: Maintaining216696
|
||||
Node: New ports217439
|
||||
Node: Information sources218132
|
||||
Node: Porting inter-library dependencies220589
|
||||
Node: Tested platforms223305
|
||||
Node: Platform quirks231735
|
||||
Node: References232916
|
||||
Node: Compilers233766
|
||||
Ref: Compilers-Footnote-1235344
|
||||
Node: Reloadable objects235660
|
||||
Node: Multiple dependencies236019
|
||||
Node: Archivers236913
|
||||
Node: Cross compiling237502
|
||||
Node: File name conversion243486
|
||||
Node: File Name Conversion Failure246440
|
||||
Node: Native MinGW File Name Conversion247689
|
||||
Node: Cygwin/Windows File Name Conversion249250
|
||||
Node: Unix/Windows File Name Conversion250621
|
||||
Node: LT_CYGPATH251387
|
||||
Node: Cygwin to MinGW Cross254630
|
||||
Node: Windows DLLs258927
|
||||
Node: libtool script contents266202
|
||||
Node: Cheap tricks286562
|
||||
Node: GNU Free Documentation License288425
|
||||
Node: Combined Index314554
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
Local Variables:
|
||||
coding: utf-8
|
||||
End:
|
||||
7228
BUILD/libtool-2.4.7/doc/libtool.info-1
Normal file
7228
BUILD/libtool-2.4.7/doc/libtool.info-1
Normal file
File diff suppressed because it is too large
Load Diff
BIN
BUILD/libtool-2.4.7/doc/libtool.info-2
Normal file
BIN
BUILD/libtool-2.4.7/doc/libtool.info-2
Normal file
Binary file not shown.
7282
BUILD/libtool-2.4.7/doc/libtool.texi
Normal file
7282
BUILD/libtool-2.4.7/doc/libtool.texi
Normal file
File diff suppressed because it is too large
Load Diff
127
BUILD/libtool-2.4.7/doc/libtoolize.1
Normal file
127
BUILD/libtool-2.4.7/doc/libtoolize.1
Normal file
@ -0,0 +1,127 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1.
|
||||
.TH LIBTOOLIZE "1" "March 2022" "GNU libtool 2.4.7" "User Commands"
|
||||
.SH NAME
|
||||
libtoolize \- manual page for libtoolize 2.4.7
|
||||
.SH SYNOPSIS
|
||||
.B libtoolize
|
||||
[\fI\,OPTION\/\fR]...
|
||||
.SH DESCRIPTION
|
||||
Prepare a package to use libtool.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-c\fR, \fB\-\-copy\fR
|
||||
copy files rather than symlinking them
|
||||
.TP
|
||||
\fB\-\-debug\fR
|
||||
enable verbose shell tracing
|
||||
.TP
|
||||
\fB\-n\fR, \fB\-\-dry\-run\fR
|
||||
print commands rather than running them
|
||||
.TP
|
||||
\fB\-f\fR, \fB\-\-force\fR
|
||||
replace existing files
|
||||
.TP
|
||||
\fB\-i\fR, \fB\-\-install\fR
|
||||
copy missing auxiliary files
|
||||
.TP
|
||||
\fB\-\-ltdl\fR[=\fI\,DIR\/\fR]
|
||||
install libltdl sources [default: libltdl]
|
||||
.TP
|
||||
\fB\-\-no\-warnings\fR
|
||||
equivalent to '\-Wnone'
|
||||
.TP
|
||||
\fB\-\-nonrecursive\fR
|
||||
prepare ltdl for non\-recursive make
|
||||
.TP
|
||||
\fB\-q\fR, \fB\-\-quiet\fR
|
||||
work silently
|
||||
.TP
|
||||
\fB\-\-recursive\fR
|
||||
prepare ltdl for recursive make
|
||||
.TP
|
||||
\fB\-\-subproject\fR
|
||||
prepare ltdl to configure and build independently
|
||||
.TP
|
||||
\fB\-v\fR, \fB\-\-verbose\fR
|
||||
verbosely report processing
|
||||
.TP
|
||||
\fB\-\-version\fR
|
||||
print version information and exit
|
||||
.TP
|
||||
\fB\-W\fR, \fB\-\-warnings\fR=\fI\,CATEGORY\/\fR
|
||||
report the warnings falling in CATEGORY [all]
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
print short or long help message
|
||||
.SS "Warning categories include:"
|
||||
.TP
|
||||
\&'all'
|
||||
show all warnings
|
||||
.TP
|
||||
\&'none'
|
||||
turn off all the warnings
|
||||
.TP
|
||||
\&'error'
|
||||
warnings are treated as fatal errors
|
||||
.TP
|
||||
\&'environment'
|
||||
show warnings about LIBTOOLIZE_OPTIONS content
|
||||
.TP
|
||||
\&'file'
|
||||
show warnings about file copying and linking
|
||||
.PP
|
||||
The following space or comma delimited options can be passed to libtoolize
|
||||
via the environment variable LIBTOOLIZE_OPTIONS, unknown environment
|
||||
options are ignored:
|
||||
.TP
|
||||
\fB\-\-debug\fR
|
||||
enable verbose shell tracing
|
||||
.TP
|
||||
\fB\-\-no\-warnings\fR
|
||||
don't display warning messages
|
||||
.TP
|
||||
\fB\-\-quiet\fR
|
||||
work silently
|
||||
.TP
|
||||
\fB\-\-verbose\fR
|
||||
verbosely report processing
|
||||
.PP
|
||||
You must 'cd' to the top directory of your package before you run
|
||||
\&'libtoolize'.
|
||||
.PP
|
||||
When reporting a bug, please describe a test case to reproduce it and
|
||||
include the following information:
|
||||
.TP
|
||||
host\-triplet:
|
||||
x86_64\-pc\-linux\-gnu
|
||||
.TP
|
||||
version:
|
||||
libtoolize (GNU libtool) 2.4.7
|
||||
.TP
|
||||
automake:
|
||||
automake (GNU automake) 1.16.3
|
||||
.TP
|
||||
autoconf:
|
||||
autoconf (GNU Autoconf) 2.69
|
||||
.SH AUTHOR
|
||||
Written by Gary V. Vaughan <gary@gnu.org>, 2003
|
||||
.SH "REPORTING BUGS"
|
||||
Report bugs to <bug\-libtool@gnu.org>.
|
||||
.br
|
||||
GNU libtool home page: <http://www.gnu.org/software/libtool/>.
|
||||
.br
|
||||
General help using GNU software: <http://www.gnu.org/gethelp/>.
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2022 Free Software Foundation, Inc.
|
||||
.SH "SEE ALSO"
|
||||
The full documentation for
|
||||
.B libtoolize
|
||||
is maintained as a Texinfo manual. If the
|
||||
.B info
|
||||
and
|
||||
.B libtoolize
|
||||
programs are properly installed at your site, the command
|
||||
.IP
|
||||
.B info libtoolize
|
||||
.PP
|
||||
should give you access to the complete manual.
|
||||
79
BUILD/libtool-2.4.7/doc/notes.texi
Normal file
79
BUILD/libtool-2.4.7/doc/notes.texi
Normal file
@ -0,0 +1,79 @@
|
||||
@itemize
|
||||
|
||||
@item
|
||||
You currently need GNU make to build the Libtool package itself.
|
||||
|
||||
@item
|
||||
On AIX there are two different styles of shared linking, one where symbols
|
||||
are bound at link-time and one where symbols are bound at runtime only,
|
||||
similar to ELF@. In case of doubt use @code{LDFLAGS=-Wl,-brtl} for the latter style.
|
||||
|
||||
@item
|
||||
On AIX, native tools are to be preferred over binutils; especially for C++ code,
|
||||
if using the AIX Toolbox GCC 4.0 and binutils, configure with
|
||||
@code{AR=/usr/bin/ar LD=/usr/bin/ld NM='/usr/bin/nm -B'}.
|
||||
|
||||
@item
|
||||
On AIX, the @command{/bin/sh} is very slow due to its inefficient handling
|
||||
of here-documents. A modern shell is preferable:
|
||||
@example
|
||||
CONFIG_SHELL=/bin/bash; export $CONFIG_SHELL
|
||||
$CONFIG_SHELL ./configure [...]
|
||||
@end example
|
||||
|
||||
@item
|
||||
For C++ code with templates, it may be necessary to specify the way the compiler
|
||||
will generate the instantiations. For Portland pgCC version5, use
|
||||
@code{CXX='pgCC --one_instantiation_per_object'} and avoid parallel @command{make}.
|
||||
|
||||
@item
|
||||
On Darwin, for C++ code with templates you need two level shared libraries.
|
||||
Libtool builds these by default if @env{MACOSX_DEPLOYMENT_TARGET} is set to
|
||||
10.3 or later at @command{configure} time. See @url{rdar://problem/4135857}
|
||||
for more information on this issue.
|
||||
|
||||
@c @item
|
||||
@c FreeBSD @command{make} does not conform to @sc{posix} in its handling
|
||||
@c of file modification times, which causes it to loop while building libtool.
|
||||
@c Consider using a different @command{such} as GNU make instead.
|
||||
|
||||
@item
|
||||
The default shell on UNICOS 9, a ksh 88e variant, is too buggy to
|
||||
correctly execute the libtool script. Users are advised to install a
|
||||
modern shell such as GNU bash.
|
||||
|
||||
@item
|
||||
Some HP-UX @command{sed} programs are horribly broken, and cannot handle
|
||||
libtool's requirements, so users may report unusual problems. There
|
||||
is no workaround except to install a working @command{sed} (such as GNU sed)
|
||||
on these systems.
|
||||
|
||||
@item
|
||||
The vendor-distributed NCR MP-RAS @command{cc} programs emits copyright
|
||||
on standard error that confuse tests on size of @file{conftest.err}. The
|
||||
workaround is to specify @env{CC} when run configure with
|
||||
@code{CC='cc -Hnocopyr'}.
|
||||
|
||||
@item
|
||||
Any earlier DG/UX system with ELF executables, such as R3.10 or
|
||||
R4.10, is also likely to work, but hasn't been explicitly tested.
|
||||
|
||||
@item
|
||||
On Reliant Unix libtool has only been tested with the Siemens C-compiler
|
||||
and an old version of @command{gcc} provided by Marco Walther.
|
||||
|
||||
@item
|
||||
@file{libtool.m4}, @file{ltdl.m4} and the @file{configure.ac} files are marked
|
||||
to use autoconf-mode, which is distributed with GNU Emacs 21, Autoconf itself,
|
||||
and all recent releases of XEmacs.
|
||||
|
||||
@item
|
||||
When building on some GNU/Linux systems for multilib targets @command{libtool}
|
||||
sometimes guesses the wrong paths that the linker and dynamic linker search by
|
||||
default. If this occurs for the dynamic library path, you may use the
|
||||
@code{LT_SYS_LIBRARY_PATH} environment variable to adjust. Otherwise, at
|
||||
@command{configure} time you may override libtool's guesses by setting the
|
||||
@command{autoconf} cache variables @code{lt_cv_sys_lib_search_path_spec} and
|
||||
@code{lt_cv_sys_lib_dlsearch_path_spec} respectively.
|
||||
|
||||
@end itemize
|
||||
60
BUILD/libtool-2.4.7/doc/notes.txt
Normal file
60
BUILD/libtool-2.4.7/doc/notes.txt
Normal file
@ -0,0 +1,60 @@
|
||||
* You currently need GNU make to build the Libtool package itself.
|
||||
|
||||
* On AIX there are two different styles of shared linking, one where
|
||||
symbols are bound at link-time and one where symbols are bound at
|
||||
runtime only, similar to ELF. In case of doubt use
|
||||
'LDFLAGS=-Wl,-brtl' for the latter style.
|
||||
|
||||
* On AIX, native tools are to be preferred over binutils; especially
|
||||
for C++ code, if using the AIX Toolbox GCC 4.0 and binutils,
|
||||
configure with 'AR=/usr/bin/ar LD=/usr/bin/ld NM='/usr/bin/nm -B''.
|
||||
|
||||
* On AIX, the '/bin/sh' is very slow due to its inefficient handling
|
||||
of here-documents. A modern shell is preferable:
|
||||
CONFIG_SHELL=/bin/bash; export $CONFIG_SHELL
|
||||
$CONFIG_SHELL ./configure [...]
|
||||
|
||||
* For C++ code with templates, it may be necessary to specify the way
|
||||
the compiler will generate the instantiations. For Portland pgCC
|
||||
version5, use 'CXX='pgCC --one_instantiation_per_object'' and avoid
|
||||
parallel 'make'.
|
||||
|
||||
* On Darwin, for C++ code with templates you need two level shared
|
||||
libraries. Libtool builds these by default if
|
||||
'MACOSX_DEPLOYMENT_TARGET' is set to 10.3 or later at 'configure'
|
||||
time. See <rdar://problem/4135857> for more information on this
|
||||
issue.
|
||||
|
||||
* The default shell on UNICOS 9, a ksh 88e variant, is too buggy to
|
||||
correctly execute the libtool script. Users are advised to install
|
||||
a modern shell such as GNU bash.
|
||||
|
||||
* Some HP-UX 'sed' programs are horribly broken, and cannot handle
|
||||
libtool's requirements, so users may report unusual problems.
|
||||
There is no workaround except to install a working 'sed' (such as
|
||||
GNU sed) on these systems.
|
||||
|
||||
* The vendor-distributed NCR MP-RAS 'cc' programs emits copyright on
|
||||
standard error that confuse tests on size of 'conftest.err'. The
|
||||
workaround is to specify 'CC' when run configure with 'CC='cc
|
||||
-Hnocopyr''.
|
||||
|
||||
* Any earlier DG/UX system with ELF executables, such as R3.10 or
|
||||
R4.10, is also likely to work, but hasn't been explicitly tested.
|
||||
|
||||
* On Reliant Unix libtool has only been tested with the Siemens
|
||||
C-compiler and an old version of 'gcc' provided by Marco Walther.
|
||||
|
||||
* 'libtool.m4', 'ltdl.m4' and the 'configure.ac' files are marked to
|
||||
use autoconf-mode, which is distributed with GNU Emacs 21, Autoconf
|
||||
itself, and all recent releases of XEmacs.
|
||||
|
||||
* When building on some GNU/Linux systems for multilib targets
|
||||
'libtool' sometimes guesses the wrong paths that the linker and
|
||||
dynamic linker search by default. If this occurs for the dynamic
|
||||
library path, you may use the 'LT_SYS_LIBRARY_PATH' environment
|
||||
variable to adjust. Otherwise, at 'configure' time you may
|
||||
override libtool's guesses by setting the 'autoconf' cache
|
||||
variables 'lt_cv_sys_lib_search_path_spec' and
|
||||
'lt_cv_sys_lib_dlsearch_path_spec' respectively.
|
||||
|
||||
4
BUILD/libtool-2.4.7/doc/stamp-vti
Normal file
4
BUILD/libtool-2.4.7/doc/stamp-vti
Normal file
@ -0,0 +1,4 @@
|
||||
@set UPDATED 17 March 2022
|
||||
@set UPDATED-MONTH March 2022
|
||||
@set EDITION 2.4.7
|
||||
@set VERSION 2.4.7
|
||||
4
BUILD/libtool-2.4.7/doc/version.texi
Normal file
4
BUILD/libtool-2.4.7/doc/version.texi
Normal file
@ -0,0 +1,4 @@
|
||||
@set UPDATED 17 March 2022
|
||||
@set UPDATED-MONTH March 2022
|
||||
@set EDITION 2.4.7
|
||||
@set VERSION 2.4.7
|
||||
132
BUILD/libtool-2.4.7/gnulib-tests/Makefile.am
Normal file
132
BUILD/libtool-2.4.7/gnulib-tests/Makefile.am
Normal file
@ -0,0 +1,132 @@
|
||||
## DO NOT EDIT! GENERATED AUTOMATICALLY!
|
||||
## Process this file with automake to produce Makefile.in.
|
||||
# Copyright (C) 2002-2022 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 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This file 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 file. If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception to the GNU General Public License,
|
||||
# this file may be distributed as part of a program that
|
||||
# contains a configuration script generated by Autoconf, under
|
||||
# the same distribution terms as the rest of that program.
|
||||
#
|
||||
# Generated by gnulib-tool.
|
||||
|
||||
AUTOMAKE_OPTIONS = 1.11 foreign
|
||||
|
||||
SUBDIRS = .
|
||||
TESTS =
|
||||
XFAIL_TESTS =
|
||||
TESTS_ENVIRONMENT =
|
||||
noinst_PROGRAMS =
|
||||
check_PROGRAMS =
|
||||
EXTRA_PROGRAMS =
|
||||
noinst_HEADERS =
|
||||
noinst_LIBRARIES =
|
||||
EXTRA_DIST =
|
||||
BUILT_SOURCES =
|
||||
SUFFIXES =
|
||||
MOSTLYCLEANFILES = core *.stackdump
|
||||
MOSTLYCLEANDIRS =
|
||||
CLEANFILES =
|
||||
DISTCLEANFILES =
|
||||
MAINTAINERCLEANFILES =
|
||||
|
||||
CFLAGS = @GL_CFLAG_ALLOW_WARNINGS@ $(GL_CFLAG_GNULIB_WARNINGS) @CFLAGS@
|
||||
CXXFLAGS = @GL_CXXFLAG_ALLOW_WARNINGS@ @CXXFLAGS@
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
-D@GLtests_WITNESS@=1 \
|
||||
-I. -I$(srcdir) \
|
||||
-I.. -I$(srcdir)/.. \
|
||||
-I../lib -I$(srcdir)/../lib
|
||||
|
||||
LDADD = ../lib/libgnu.la
|
||||
|
||||
TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' srcdir='$(srcdir)'
|
||||
|
||||
## begin gnulib module all-shells-tests
|
||||
|
||||
TESTS_ENVIRONMENT += \
|
||||
abs_aux_dir='$(abs_aux_dir)' \
|
||||
abs_srcdir='$(abs_srcdir)'
|
||||
EXTRA_DIST += test-all-shells.sh
|
||||
|
||||
## end gnulib module all-shells-tests
|
||||
|
||||
## begin gnulib module funclib.sh-tests
|
||||
|
||||
TESTS += \
|
||||
test-funclib-quote.sh
|
||||
EXTRA_DIST += test-funclib-quote.sh
|
||||
|
||||
## end gnulib module funclib.sh-tests
|
||||
|
||||
## begin gnulib module options-parser-tests
|
||||
|
||||
TESTS += \
|
||||
test-option-parser.sh
|
||||
EXTRA_DIST += test-option-parser.sh test-option-parser-helper
|
||||
|
||||
## end gnulib module options-parser-tests
|
||||
|
||||
## begin gnulib module test-framework-sh-tests
|
||||
|
||||
TESTS += test-init.sh
|
||||
EXTRA_DIST += init.sh
|
||||
EXTRA_DIST += test-init.sh
|
||||
|
||||
## end gnulib module test-framework-sh-tests
|
||||
|
||||
## begin gnulib module update-copyright-tests
|
||||
|
||||
TESTS += test-update-copyright.sh
|
||||
TESTS_ENVIRONMENT += abs_aux_dir='$(abs_aux_dir)'
|
||||
EXTRA_DIST += test-update-copyright.sh
|
||||
|
||||
## end gnulib module update-copyright-tests
|
||||
|
||||
## begin gnulib module vc-list-files-tests
|
||||
|
||||
TESTS += test-vc-list-files-git.sh
|
||||
TESTS += test-vc-list-files-cvs.sh
|
||||
TESTS_ENVIRONMENT += abs_aux_dir='$(abs_aux_dir)'
|
||||
EXTRA_DIST += test-vc-list-files-git.sh test-vc-list-files-cvs.sh
|
||||
|
||||
## end gnulib module vc-list-files-tests
|
||||
|
||||
all: all-notice
|
||||
all-notice:
|
||||
@echo '## ---------------------------------------------------- ##'
|
||||
@echo '## ------------------- Gnulib tests ------------------- ##'
|
||||
@echo '## You can ignore compiler warnings in this directory. ##'
|
||||
@echo '## ---------------------------------------------------- ##'
|
||||
|
||||
check-am: check-notice
|
||||
check-notice:
|
||||
@echo '## ---------------------------------------------------------------------- ##'
|
||||
@echo '## ---------------------------- Gnulib tests ---------------------------- ##'
|
||||
@echo '## Please report test failures in this directory to <bug-gnulib@gnu.org>. ##'
|
||||
@echo '## ---------------------------------------------------------------------- ##'
|
||||
|
||||
# Clean up after Solaris cc.
|
||||
clean-local:
|
||||
rm -rf SunWS_cache
|
||||
|
||||
mostlyclean-local: mostlyclean-generic
|
||||
@for dir in '' $(MOSTLYCLEANDIRS); do \
|
||||
if test -n "$$dir" && test -d $$dir; then \
|
||||
echo "rmdir $$dir"; rmdir $$dir; \
|
||||
fi; \
|
||||
done; \
|
||||
:
|
||||
1208
BUILD/libtool-2.4.7/gnulib-tests/Makefile.in
Normal file
1208
BUILD/libtool-2.4.7/gnulib-tests/Makefile.in
Normal file
File diff suppressed because it is too large
Load Diff
700
BUILD/libtool-2.4.7/gnulib-tests/init.sh
Normal file
700
BUILD/libtool-2.4.7/gnulib-tests/init.sh
Normal file
@ -0,0 +1,700 @@
|
||||
# source this file; set up for tests
|
||||
|
||||
# Copyright (C) 2009-2022 Free Software Foundation, Inc.
|
||||
|
||||
# This program 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 3 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# Using this file in a test
|
||||
# =========================
|
||||
#
|
||||
# The typical skeleton of a test looks like this:
|
||||
#
|
||||
# #!/bin/sh
|
||||
# . "${srcdir=.}/init.sh"; path_prepend_ .
|
||||
# Execute some commands.
|
||||
# Note that these commands are executed in a subdirectory, therefore you
|
||||
# need to prepend "../" to relative filenames in the build directory.
|
||||
# Note that the "path_prepend_ ." is useful only if the body of your
|
||||
# test invokes programs residing in the initial directory.
|
||||
# For example, if the programs you want to test are in src/, and this test
|
||||
# script is named tests/test-1, then you would use "path_prepend_ ../src",
|
||||
# or perhaps export PATH='$(abs_top_builddir)/src$(PATH_SEPARATOR)'"$$PATH"
|
||||
# to all tests via automake's TESTS_ENVIRONMENT.
|
||||
# Set the exit code 0 for success, 77 for skipped, or 1 or other for failure.
|
||||
# Use the skip_ and fail_ functions to print a diagnostic and then exit
|
||||
# with the corresponding exit code.
|
||||
# Exit $?
|
||||
|
||||
# Executing a test that uses this file
|
||||
# ====================================
|
||||
#
|
||||
# Running a single test:
|
||||
# $ make check TESTS=test-foo.sh
|
||||
#
|
||||
# Running a single test, with verbose output:
|
||||
# $ make check TESTS=test-foo.sh VERBOSE=yes
|
||||
#
|
||||
# Running a single test, keeping the temporary directory:
|
||||
# $ make check TESTS=test-foo.sh KEEP=yes
|
||||
#
|
||||
# Running a single test, with single-stepping:
|
||||
# 1. Go into a sub-shell:
|
||||
# $ bash
|
||||
# 2. Set relevant environment variables from TESTS_ENVIRONMENT in the
|
||||
# Makefile:
|
||||
# $ export srcdir=../../tests # this is an example
|
||||
# 3. Execute the commands from the test, copy&pasting them one by one:
|
||||
# $ . "$srcdir/init.sh"; path_prepend_ .
|
||||
# ...
|
||||
# 4. Finally
|
||||
# $ exit
|
||||
|
||||
# =============================================================================
|
||||
# Elementary diagnostics
|
||||
|
||||
ME_=`expr "./$0" : '.*/\(.*\)$'`
|
||||
|
||||
# Prepare PATH_SEPARATOR.
|
||||
# The user is always right.
|
||||
if test "${PATH_SEPARATOR+set}" != set; then
|
||||
# Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
|
||||
# contains only /bin. Note that ksh looks also at the FPATH variable,
|
||||
# so we have to set that as well for the test.
|
||||
PATH_SEPARATOR=:
|
||||
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
|
||||
&& { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
|
||||
|| PATH_SEPARATOR=';'
|
||||
}
|
||||
fi
|
||||
|
||||
# We use a trap below for cleanup. This requires us to go through
|
||||
# hoops to get the right exit status transported through the handler.
|
||||
# So use 'Exit STATUS' instead of 'exit STATUS' inside of the tests.
|
||||
# Turn off errexit here so that we don't trip the bug with OSF1/Tru64
|
||||
# sh inside this function.
|
||||
Exit () { set +e; (exit $1); exit $1; }
|
||||
|
||||
# Print warnings (e.g., about skipped and failed tests) to this file number.
|
||||
# Override by defining to say, 9, in init.cfg, and putting say,
|
||||
# export ...ENVVAR_SETTINGS...; $(SHELL) 9>&2
|
||||
# in the definition of TESTS_ENVIRONMENT in your tests/Makefile.am file.
|
||||
# This is useful when using automake's parallel tests mode, to print
|
||||
# the reason for skip/failure to console, rather than to the .log files.
|
||||
: ${stderr_fileno_=2}
|
||||
|
||||
# Note that correct expansion of "$*" depends on IFS starting with ' '.
|
||||
# Always write the full diagnostic to stderr.
|
||||
# When stderr_fileno_ is not 2, also emit the first line of the
|
||||
# diagnostic to that file descriptor.
|
||||
warn_ ()
|
||||
{
|
||||
# If IFS does not start with ' ', set it and emit the warning in a subshell.
|
||||
case $IFS in
|
||||
' '*) printf '%s\n' "$*" >&2
|
||||
test $stderr_fileno_ = 2 \
|
||||
|| { printf '%s\n' "$*" | sed 1q >&$stderr_fileno_ ; } ;;
|
||||
*) (IFS=' '; warn_ "$@");;
|
||||
esac
|
||||
}
|
||||
fail_ () { warn_ "$ME_: failed test: $@"; Exit 1; }
|
||||
skip_ () { warn_ "$ME_: skipped test: $@"; Exit 77; }
|
||||
fatal_ () { warn_ "$ME_: hard error: $@"; Exit 99; }
|
||||
framework_failure_ () { warn_ "$ME_: set-up failure: $@"; Exit 99; }
|
||||
|
||||
# =============================================================================
|
||||
# Ensure the shell supports modern syntax.
|
||||
|
||||
# Sanitize this shell to POSIX mode, if possible.
|
||||
DUALCASE=1; export DUALCASE
|
||||
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
|
||||
emulate sh
|
||||
NULLCMD=:
|
||||
alias -g '${1+"$@"}'='"$@"'
|
||||
setopt NO_GLOB_SUBST
|
||||
else
|
||||
case `(set -o) 2>/dev/null` in
|
||||
*posix*) set -o posix ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# We require $(...) support unconditionally.
|
||||
# We require that the printf built-in work correctly regarding octal escapes;
|
||||
# this eliminates /bin/sh on AIX 7.2.
|
||||
# We require non-surprising "local" semantics (this eliminates dash).
|
||||
# This takes the admittedly draconian step of eliminating dash, because the
|
||||
# assignment tab=$(printf '\t') works fine, yet preceding it with "local "
|
||||
# transforms it into an assignment that sets the variable to the empty string.
|
||||
# That is too counter-intuitive, and can lead to subtle run-time malfunction.
|
||||
# The example below is less subtle in that with dash, it evokes the run-time
|
||||
# exception "dash: 1: local: 1: bad variable name".
|
||||
# We require a few additional shell features only when $EXEEXT is nonempty,
|
||||
# in order to support automatic $EXEEXT emulation:
|
||||
# - hyphen-containing alias names
|
||||
# - we prefer to use ${var#...} substitution, rather than having
|
||||
# to work around lack of support for that feature.
|
||||
# The following code attempts to find a shell with support for these features.
|
||||
# If the current shell passes the test, we're done. Otherwise, test other
|
||||
# shells until we find one that passes. If one is found, re-exec it.
|
||||
# If no acceptable shell is found, skip the current test.
|
||||
#
|
||||
# The "...set -x; P=1 true 2>err..." test is to disqualify any shell that
|
||||
# emits "P=1" into err, as /bin/sh from SunOS 5.11 and OpenBSD 4.7 do.
|
||||
#
|
||||
# Use "9" to indicate success (rather than 0), in case some shell acts
|
||||
# like Solaris 10's /bin/sh but exits successfully instead of with status 2.
|
||||
|
||||
# Eval this code in a subshell to determine a shell's suitability.
|
||||
# 10 - passes all tests; ok to use
|
||||
# 9 - ok, but enabling "set -x" corrupts app stderr; prefer higher score
|
||||
# ? - not ok
|
||||
gl_shell_test_script_='
|
||||
test $(echo y) = y || exit 1
|
||||
LC_ALL=en_US.UTF-8 printf "\\351" 2>/dev/null \
|
||||
| LC_ALL=C tr "\\351" x | LC_ALL=C grep "^x$" > /dev/null \
|
||||
|| exit 1
|
||||
printf "\\351" 2>/dev/null \
|
||||
| LC_ALL=C tr "\\351" x | LC_ALL=C grep "^x$" > /dev/null \
|
||||
|| exit 1
|
||||
f_local_() { local v=1; }; f_local_ || exit 1
|
||||
f_dash_local_fail_() { local t=$(printf " 1"); }; f_dash_local_fail_
|
||||
score_=10
|
||||
if test "$VERBOSE" = yes; then
|
||||
test -n "$( (exec 3>&1; set -x; P=1 true 2>&3) 2> /dev/null)" && score_=9
|
||||
fi
|
||||
test -z "$EXEEXT" && exit $score_
|
||||
shopt -s expand_aliases
|
||||
alias a-b="echo zoo"
|
||||
v=abx
|
||||
test ${v%x} = ab \
|
||||
&& test ${v#a} = bx \
|
||||
&& test $(a-b) = zoo \
|
||||
&& exit $score_
|
||||
'
|
||||
|
||||
if test "x$1" = "x--no-reexec"; then
|
||||
shift
|
||||
else
|
||||
# Assume a working shell. Export to subshells (setup_ needs this).
|
||||
gl_set_x_corrupts_stderr_=false
|
||||
export gl_set_x_corrupts_stderr_
|
||||
|
||||
# Record the first marginally acceptable shell.
|
||||
marginal_=
|
||||
|
||||
# Search for a shell that meets our requirements.
|
||||
for re_shell_ in __current__ "${CONFIG_SHELL:-no_shell}" \
|
||||
/bin/sh bash dash zsh pdksh fail
|
||||
do
|
||||
test "$re_shell_" = no_shell && continue
|
||||
|
||||
# If we've made it all the way to the sentinel, "fail" without
|
||||
# finding even a marginal shell, skip this test.
|
||||
if test "$re_shell_" = fail; then
|
||||
test -z "$marginal_" && skip_ failed to find an adequate shell
|
||||
re_shell_=$marginal_
|
||||
break
|
||||
fi
|
||||
|
||||
# When testing the current shell, simply "eval" the test code.
|
||||
# Otherwise, run it via $re_shell_ -c ...
|
||||
if test "$re_shell_" = __current__; then
|
||||
# 'eval'ing this code makes Solaris 10's /bin/sh exit with
|
||||
# $? set to 2. It does not evaluate any of the code after the
|
||||
# "unexpected" first '('. Thus, we must run it in a subshell.
|
||||
( eval "$gl_shell_test_script_" ) > /dev/null 2>&1
|
||||
else
|
||||
"$re_shell_" -c "$gl_shell_test_script_" 2>/dev/null
|
||||
fi
|
||||
|
||||
st_=$?
|
||||
|
||||
# $re_shell_ works just fine. Use it.
|
||||
if test $st_ = 10; then
|
||||
gl_set_x_corrupts_stderr_=false
|
||||
break
|
||||
fi
|
||||
|
||||
# If this is our first marginally acceptable shell, remember it.
|
||||
if test "$st_:$marginal_" = 9: ; then
|
||||
marginal_="$re_shell_"
|
||||
gl_set_x_corrupts_stderr_=true
|
||||
fi
|
||||
done
|
||||
|
||||
if test "$re_shell_" != __current__; then
|
||||
# Found a usable shell. Preserve -v and -x.
|
||||
case $- in
|
||||
*v*x* | *x*v*) opts_=-vx ;;
|
||||
*v*) opts_=-v ;;
|
||||
*x*) opts_=-x ;;
|
||||
*) opts_= ;;
|
||||
esac
|
||||
re_shell=$re_shell_
|
||||
export re_shell
|
||||
exec "$re_shell_" $opts_ "$0" --no-reexec "$@"
|
||||
echo "$ME_: exec failed" 1>&2
|
||||
exit 127
|
||||
fi
|
||||
fi
|
||||
|
||||
# =============================================================================
|
||||
# Ensure the shell behaves reasonably.
|
||||
|
||||
# If this is bash, turn off all aliases.
|
||||
test -n "$BASH_VERSION" && unalias -a
|
||||
|
||||
# Note that when supporting $EXEEXT (transparently mapping from PROG_NAME to
|
||||
# PROG_NAME.exe), we want to support hyphen-containing names like test-acos.
|
||||
# That is part of the shell-selection test above. Why use aliases rather
|
||||
# than functions? Because support for hyphen-containing aliases is more
|
||||
# widespread than that for hyphen-containing function names.
|
||||
test -n "$EXEEXT" && test -n "$BASH_VERSION" && shopt -s expand_aliases
|
||||
|
||||
# =============================================================================
|
||||
# Creating a temporary directory (needed by the core test framework)
|
||||
|
||||
# Create a temporary directory, much like mktemp -d does.
|
||||
# Written by Jim Meyering.
|
||||
#
|
||||
# Usage: mktempd_ /tmp phoey.XXXXXXXXXX
|
||||
#
|
||||
# First, try to use the mktemp program.
|
||||
# Failing that, we'll roll our own mktemp-like function:
|
||||
# - try to get random bytes from /dev/urandom
|
||||
# - failing that, generate output from a combination of quickly-varying
|
||||
# sources and gzip. Ignore non-varying gzip header, and extract
|
||||
# "random" bits from there.
|
||||
# - given those bits, map to file-name bytes using tr, and try to create
|
||||
# the desired directory.
|
||||
# - make only $MAX_TRIES_ attempts
|
||||
|
||||
# Helper function. Print $N pseudo-random bytes from a-zA-Z0-9.
|
||||
rand_bytes_ ()
|
||||
{
|
||||
n_=$1
|
||||
|
||||
# Maybe try openssl rand -base64 $n_prime_|tr '+/=\012' abcd first?
|
||||
# But if they have openssl, they probably have mktemp, too.
|
||||
|
||||
chars_=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
|
||||
dev_rand_=/dev/urandom
|
||||
if test -r "$dev_rand_"; then
|
||||
# Note: 256-length($chars_) == 194; 3 copies of $chars_ is 186 + 8 = 194.
|
||||
dd ibs=$n_ count=1 if=$dev_rand_ 2>/dev/null \
|
||||
| LC_ALL=C tr -c $chars_ 01234567$chars_$chars_$chars_
|
||||
return
|
||||
fi
|
||||
|
||||
n_plus_50_=`expr $n_ + 50`
|
||||
cmds_='date; date +%N; free; who -a; w; ps auxww; ps -ef'
|
||||
data_=` (eval "$cmds_") 2>&1 | gzip `
|
||||
|
||||
# Ensure that $data_ has length at least 50+$n_
|
||||
while :; do
|
||||
len_=`echo "$data_"|wc -c`
|
||||
test $n_plus_50_ -le $len_ && break;
|
||||
data_=` (echo "$data_"; eval "$cmds_") 2>&1 | gzip `
|
||||
done
|
||||
|
||||
echo "$data_" \
|
||||
| dd bs=1 skip=50 count=$n_ 2>/dev/null \
|
||||
| LC_ALL=C tr -c $chars_ 01234567$chars_$chars_$chars_
|
||||
}
|
||||
|
||||
mktempd_ ()
|
||||
{
|
||||
case $# in
|
||||
2);;
|
||||
*) fail_ "Usage: mktempd_ DIR TEMPLATE";;
|
||||
esac
|
||||
|
||||
destdir_=$1
|
||||
template_=$2
|
||||
|
||||
MAX_TRIES_=4
|
||||
|
||||
# Disallow any trailing slash on specified destdir:
|
||||
# it would subvert the post-mktemp "case"-based destdir test.
|
||||
case $destdir_ in
|
||||
/ | //) destdir_slash_=$destdir;;
|
||||
*/) fail_ "invalid destination dir: remove trailing slash(es)";;
|
||||
*) destdir_slash_=$destdir_/;;
|
||||
esac
|
||||
|
||||
case $template_ in
|
||||
*XXXX) ;;
|
||||
*) fail_ \
|
||||
"invalid template: $template_ (must have a suffix of at least 4 X's)";;
|
||||
esac
|
||||
|
||||
# First, try to use mktemp.
|
||||
d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` &&
|
||||
|
||||
# The resulting name must be in the specified directory.
|
||||
case $d in "$destdir_slash_"*) :;; *) false;; esac &&
|
||||
|
||||
# It must have created the directory.
|
||||
test -d "$d" &&
|
||||
|
||||
# It must have 0700 permissions. Handle sticky "S" bits.
|
||||
perms=`ls -dgo "$d" 2>/dev/null` &&
|
||||
case $perms in drwx--[-S]---*) :;; *) false;; esac && {
|
||||
echo "$d"
|
||||
return
|
||||
}
|
||||
|
||||
# If we reach this point, we'll have to create a directory manually.
|
||||
|
||||
# Get a copy of the template without its suffix of X's.
|
||||
base_template_=`echo "$template_"|sed 's/XX*$//'`
|
||||
|
||||
# Calculate how many X's we've just removed.
|
||||
template_length_=`echo "$template_" | wc -c`
|
||||
nx_=`echo "$base_template_" | wc -c`
|
||||
nx_=`expr $template_length_ - $nx_`
|
||||
|
||||
err_=
|
||||
i_=1
|
||||
while :; do
|
||||
X_=`rand_bytes_ $nx_`
|
||||
candidate_dir_="$destdir_slash_$base_template_$X_"
|
||||
err_=`mkdir -m 0700 "$candidate_dir_" 2>&1` \
|
||||
&& { echo "$candidate_dir_"; return; }
|
||||
test $MAX_TRIES_ -le $i_ && break;
|
||||
i_=`expr $i_ + 1`
|
||||
done
|
||||
fail_ "$err_"
|
||||
}
|
||||
|
||||
# =============================================================================
|
||||
# Core test framework
|
||||
|
||||
# An arbitrary prefix to help distinguish test directories.
|
||||
testdir_prefix_ () { printf gt; }
|
||||
|
||||
# Set up the environment for the test to run in.
|
||||
setup_ ()
|
||||
{
|
||||
if test "$VERBOSE" = yes; then
|
||||
# Test whether set -x may cause the selected shell to corrupt an
|
||||
# application's stderr. Many do, including zsh-4.3.10 and the /bin/sh
|
||||
# from SunOS 5.11, OpenBSD 4.7 and Irix 6.5.
|
||||
# If enabling verbose output this way would cause trouble, simply
|
||||
# issue a warning and refrain.
|
||||
if $gl_set_x_corrupts_stderr_; then
|
||||
warn_ "using SHELL=$SHELL with 'set -x' corrupts stderr"
|
||||
else
|
||||
set -x
|
||||
fi
|
||||
fi
|
||||
|
||||
initial_cwd_=$PWD
|
||||
|
||||
# Create and enter the temporary directory.
|
||||
pfx_=`testdir_prefix_`
|
||||
test_dir_=`mktempd_ "$initial_cwd_" "$pfx_-$ME_.XXXX"` \
|
||||
|| fail_ "failed to create temporary directory in $initial_cwd_"
|
||||
cd "$test_dir_" || fail_ "failed to cd to temporary directory"
|
||||
# Set variables srcdir, builddir, for the convenience of the test.
|
||||
case $srcdir in
|
||||
/* | ?:*) ;;
|
||||
*) srcdir="../$srcdir" ;;
|
||||
esac
|
||||
builddir=".."
|
||||
export srcdir builddir
|
||||
|
||||
# As autoconf-generated configure scripts do, ensure that IFS
|
||||
# is defined initially, so that saving and restoring $IFS works.
|
||||
gl_init_sh_nl_='
|
||||
'
|
||||
IFS=" "" $gl_init_sh_nl_"
|
||||
|
||||
# This trap statement, along with a trap on 0 below, ensure that the
|
||||
# temporary directory, $test_dir_, is removed upon exit as well as
|
||||
# upon receipt of any of the listed signals.
|
||||
for sig_ in 1 2 3 13 15; do
|
||||
eval "trap 'Exit $(expr $sig_ + 128)' $sig_"
|
||||
done
|
||||
|
||||
# Remove relative and non-accessible directories from PATH, including '.'
|
||||
# and Zero-length entries.
|
||||
saved_IFS="$IFS"
|
||||
IFS=:
|
||||
new_PATH=
|
||||
sep_=
|
||||
for dir in $PATH; do
|
||||
case "$dir" in
|
||||
/*) test -d "$dir/." || continue
|
||||
new_PATH="${new_PATH}${sep_}${dir}"
|
||||
sep_=':';;
|
||||
esac
|
||||
done
|
||||
IFS="$saved_IFS"
|
||||
PATH="$new_PATH"
|
||||
export PATH
|
||||
}
|
||||
|
||||
# This is a stub function that is run upon trap (upon regular exit and
|
||||
# interrupt). Override it with a per-test function, e.g., to unmount
|
||||
# a partition, or to undo any other global state changes.
|
||||
cleanup_ () { :; }
|
||||
|
||||
# Run the user-overridable cleanup_ function, remove the temporary
|
||||
# directory and exit with the incoming value of $?.
|
||||
remove_tmp_ ()
|
||||
{
|
||||
__st=$?
|
||||
cleanup_
|
||||
if test "$KEEP" = yes; then
|
||||
echo "Not removing temporary directory $test_dir_"
|
||||
else
|
||||
# cd out of the directory we're about to remove
|
||||
cd "$initial_cwd_" || cd / || cd /tmp
|
||||
chmod -R u+rwx "$test_dir_"
|
||||
# If removal fails and exit status was to be 0, then change it to 1.
|
||||
rm -rf "$test_dir_" || { test $__st = 0 && __st=1; }
|
||||
fi
|
||||
exit $__st
|
||||
}
|
||||
|
||||
# =============================================================================
|
||||
# Prepending directories to PATH
|
||||
|
||||
# Given a directory name, DIR, if every entry in it that matches *.exe
|
||||
# contains only the specified bytes (see the case stmt below), then print
|
||||
# a space-separated list of those names and return 0. Otherwise, don't
|
||||
# print anything and return 1. Naming constraints apply also to DIR.
|
||||
find_exe_basenames_ ()
|
||||
{
|
||||
feb_dir_=$1
|
||||
feb_fail_=0
|
||||
feb_result_=
|
||||
feb_sp_=
|
||||
for feb_file_ in $feb_dir_/*.exe; do
|
||||
# If there was no *.exe file, or there existed a file named "*.exe" that
|
||||
# was deleted between the above glob expansion and the existence test
|
||||
# below, just skip it.
|
||||
test "x$feb_file_" = "x$feb_dir_/*.exe" && test ! -f "$feb_file_" \
|
||||
&& continue
|
||||
# Exempt [.exe, since we can't create a function by that name, yet
|
||||
# we can't invoke [ by PATH search anyways due to shell builtins.
|
||||
test "x$feb_file_" = "x$feb_dir_/[.exe" && continue
|
||||
case $feb_file_ in
|
||||
*[!-a-zA-Z/0-9_.+]*) feb_fail_=1; break;;
|
||||
*) # Remove leading file name components as well as the .exe suffix.
|
||||
feb_file_=${feb_file_##*/}
|
||||
feb_file_=${feb_file_%.exe}
|
||||
feb_result_="$feb_result_$feb_sp_$feb_file_";;
|
||||
esac
|
||||
feb_sp_=' '
|
||||
done
|
||||
test $feb_fail_ = 0 && printf %s "$feb_result_"
|
||||
return $feb_fail_
|
||||
}
|
||||
|
||||
# Consider the files in directory, $1.
|
||||
# For each file name of the form PROG.exe, create an alias named
|
||||
# PROG that simply invokes PROG.exe, then return 0. If any selected
|
||||
# file name or the directory name, $1, contains an unexpected character,
|
||||
# define no alias and return 1.
|
||||
create_exe_shims_ ()
|
||||
{
|
||||
case $EXEEXT in
|
||||
'') return 0 ;;
|
||||
.exe) ;;
|
||||
*) echo "$0: unexpected \$EXEEXT value: $EXEEXT" 1>&2; return 1 ;;
|
||||
esac
|
||||
|
||||
base_names_=`find_exe_basenames_ $1` \
|
||||
|| { echo "$0 (exe_shim): skipping directory: $1" 1>&2; return 0; }
|
||||
|
||||
if test -n "$base_names_"; then
|
||||
for base_ in $base_names_; do
|
||||
alias "$base_"="$base_$EXEEXT"
|
||||
done
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Use this function to prepend to PATH an absolute name for each
|
||||
# specified, possibly-$initial_cwd_-relative, directory.
|
||||
path_prepend_ ()
|
||||
{
|
||||
while test $# != 0; do
|
||||
path_dir_=$1
|
||||
case $path_dir_ in
|
||||
'') fail_ "invalid path dir: '$1'";;
|
||||
/* | ?:*) abs_path_dir_=$path_dir_;;
|
||||
*) abs_path_dir_=$initial_cwd_/$path_dir_;;
|
||||
esac
|
||||
case $abs_path_dir_ in
|
||||
*$PATH_SEPARATOR*) fail_ "invalid path dir: '$abs_path_dir_'";;
|
||||
esac
|
||||
PATH="$abs_path_dir_$PATH_SEPARATOR$PATH"
|
||||
|
||||
# Create an alias, FOO, for each FOO.exe in this directory.
|
||||
create_exe_shims_ "$abs_path_dir_" \
|
||||
|| fail_ "something failed (above): $abs_path_dir_"
|
||||
shift
|
||||
done
|
||||
export PATH
|
||||
}
|
||||
|
||||
# =============================================================================
|
||||
# Convenience environment variables for the tests
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Enable glibc's malloc-perturbing option.
|
||||
# This is useful for exposing code that depends on the fact that
|
||||
# malloc-related functions often return memory that is mostly zeroed.
|
||||
# If you have the time and cycles, use valgrind to do an even better job.
|
||||
: ${MALLOC_PERTURB_=87}
|
||||
export MALLOC_PERTURB_
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# The interpreter for Bourne-shell scripts.
|
||||
# No special standards compatibility requirements.
|
||||
# Some environments, such as Android, don't have /bin/sh.
|
||||
if test -f /bin/sh$EXEEXT; then
|
||||
BOURNE_SHELL=/bin/sh
|
||||
else
|
||||
BOURNE_SHELL=sh
|
||||
fi
|
||||
|
||||
# =============================================================================
|
||||
# Convenience functions for the tests
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Return value checking
|
||||
|
||||
# This is used to simplify checking of the return value
|
||||
# which is useful when ensuring a command fails as desired.
|
||||
# I.e., just doing `command ... &&fail=1` will not catch
|
||||
# a segfault in command for example. With this helper you
|
||||
# instead check an explicit exit code like
|
||||
# returns_ 1 command ... || fail
|
||||
returns_ () {
|
||||
# Disable tracing so it doesn't interfere with stderr of the wrapped command
|
||||
{ set +x; } 2>/dev/null
|
||||
|
||||
local exp_exit="$1"
|
||||
shift
|
||||
"$@"
|
||||
test $? -eq $exp_exit && ret_=0 || ret_=1
|
||||
|
||||
if test "$VERBOSE" = yes && test "$gl_set_x_corrupts_stderr_" = false; then
|
||||
set -x
|
||||
fi
|
||||
{ return $ret_; } 2>/dev/null
|
||||
}
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Text file comparison
|
||||
|
||||
# Emit a header similar to that from diff -u; Print the simulated "diff"
|
||||
# command so that the order of arguments is clear. Don't bother with @@ lines.
|
||||
emit_diff_u_header_ ()
|
||||
{
|
||||
printf '%s\n' "diff -u $*" \
|
||||
"--- $1 1970-01-01" \
|
||||
"+++ $2 1970-01-01"
|
||||
}
|
||||
|
||||
# Arrange not to let diff or cmp operate on /dev/null,
|
||||
# since on some systems (at least OSF/1 5.1), that doesn't work.
|
||||
# When there are not two arguments, or no argument is /dev/null, return 2.
|
||||
# When one argument is /dev/null and the other is not empty,
|
||||
# cat the nonempty file to stderr and return 1.
|
||||
# Otherwise, return 0.
|
||||
compare_dev_null_ ()
|
||||
{
|
||||
test $# = 2 || return 2
|
||||
|
||||
if test "x$1" = x/dev/null; then
|
||||
test -s "$2" || return 0
|
||||
emit_diff_u_header_ "$@"; sed 's/^/+/' "$2"
|
||||
return 1
|
||||
fi
|
||||
|
||||
if test "x$2" = x/dev/null; then
|
||||
test -s "$1" || return 0
|
||||
emit_diff_u_header_ "$@"; sed 's/^/-/' "$1"
|
||||
return 1
|
||||
fi
|
||||
|
||||
return 2
|
||||
}
|
||||
|
||||
for diff_opt_ in -u -U3 -c '' no; do
|
||||
test "$diff_opt_" != no &&
|
||||
diff_out_=`exec 2>/dev/null; diff $diff_opt_ "$0" "$0" < /dev/null` &&
|
||||
break
|
||||
done
|
||||
if test "$diff_opt_" != no; then
|
||||
if test -z "$diff_out_"; then
|
||||
compare_ () { diff $diff_opt_ "$@"; }
|
||||
else
|
||||
compare_ ()
|
||||
{
|
||||
# If no differences were found, AIX and HP-UX 'diff' produce output
|
||||
# like "No differences encountered". Hide this output.
|
||||
diff $diff_opt_ "$@" > diff.out
|
||||
diff_status_=$?
|
||||
test $diff_status_ -eq 0 || cat diff.out || diff_status_=2
|
||||
rm -f diff.out || diff_status_=2
|
||||
return $diff_status_
|
||||
}
|
||||
fi
|
||||
elif cmp -s /dev/null /dev/null 2>/dev/null; then
|
||||
compare_ () { cmp -s "$@"; }
|
||||
else
|
||||
compare_ () { cmp "$@"; }
|
||||
fi
|
||||
|
||||
# Usage: compare EXPECTED ACTUAL
|
||||
#
|
||||
# Given compare_dev_null_'s preprocessing, defer to compare_ if 2 or more.
|
||||
# Otherwise, propagate $? to caller: any diffs have already been printed.
|
||||
compare ()
|
||||
{
|
||||
# This looks like it can be factored to use a simple "case $?"
|
||||
# after unchecked compare_dev_null_ invocation, but that would
|
||||
# fail in a "set -e" environment.
|
||||
if compare_dev_null_ "$@"; then
|
||||
return 0
|
||||
else
|
||||
case $? in
|
||||
1) return 1;;
|
||||
*) compare_ "$@";;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# If you want to override the testdir_prefix_ function,
|
||||
# or to add more utility functions, use this file.
|
||||
test -f "$srcdir/init.cfg" \
|
||||
&& . "$srcdir/init.cfg"
|
||||
|
||||
# =============================================================================
|
||||
# Set up the environment for the test to run in.
|
||||
|
||||
setup_ "$@"
|
||||
# This trap is here, rather than in the setup_ function, because some
|
||||
# shells run the exit trap at shell function exit, rather than script exit.
|
||||
trap remove_tmp_ 0
|
||||
103
BUILD/libtool-2.4.7/gnulib-tests/test-all-shells.sh
Normal file
103
BUILD/libtool-2.4.7/gnulib-tests/test-all-shells.sh
Normal file
@ -0,0 +1,103 @@
|
||||
#! /bin/sh
|
||||
|
||||
# Unit test helper.
|
||||
|
||||
# This is free software. There is NO warranty; not even for
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
#
|
||||
# Copyright (C) 2015-2019, 2021 Bootstrap Authors
|
||||
#
|
||||
# This file is dual licensed under the terms of the MIT license
|
||||
# <https://opensource.org/license/MIT>, and GPL version 2 or later
|
||||
# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
|
||||
# these licenses when using or redistributing this software or any of
|
||||
# the files within it. See the URLs above, or the file `LICENSE`
|
||||
# included in the Bootstrap distribution for the full license texts.
|
||||
|
||||
# Please report bugs or propose patches to:
|
||||
# <https://github.com/gnulib-modules/bootstrap/issues>
|
||||
|
||||
|
||||
# This shell snippet (when sourced) tries to find as many /bin/sh compatible
|
||||
# shells as possible on tested box -- and then re-executes the calling script
|
||||
# in all of them. At the end, the default shell (/bin/sh usually) is also
|
||||
# tested.
|
||||
#
|
||||
# To write compatible test-case, you usually need only those lines:
|
||||
#
|
||||
# #! /bin/sh
|
||||
#
|
||||
# all_shells_script=$0
|
||||
# . "$abs_srcdir/test-all-shells.sh"
|
||||
#
|
||||
# your_check && all_shells_error "failed your_check"
|
||||
#
|
||||
# $all_shells_exit_cmd
|
||||
|
||||
|
||||
# List of shells we try to check in.
|
||||
: ${GL_ALL_SHELLS='ash bash dash ksh ksh88 mksh zsh busybox'}
|
||||
|
||||
# List of directories to search for the shell interpreter.
|
||||
: ${GL_ALL_SHELLS_DIRS='/bin /sbin'}
|
||||
|
||||
# List of shell emulations to test with BusyBox.
|
||||
: ${GL_ALL_SHELLS_BBE='sh ash'}
|
||||
|
||||
. "$abs_aux_dir"/funclib.sh || exit 1
|
||||
|
||||
all_shells_exit_cmd=:
|
||||
|
||||
: ${all_shells_script=false}
|
||||
|
||||
|
||||
all_shells_error ()
|
||||
{
|
||||
$ECHO "error: $*" >&2
|
||||
all_shells_exit_cmd=false
|
||||
}
|
||||
|
||||
|
||||
__notify_shell ()
|
||||
{
|
||||
$ECHO "== running in '$*' ==" >&2
|
||||
}
|
||||
|
||||
|
||||
__reexec_in_all_shells ()
|
||||
{
|
||||
for _G_dir in $GL_ALL_SHELLS_DIRS
|
||||
do
|
||||
for _G_shell in $GL_ALL_SHELLS
|
||||
do
|
||||
_G_abs_shell=$_G_dir/$_G_shell
|
||||
test -f "$_G_abs_shell" || continue
|
||||
|
||||
case $_G_abs_shell in
|
||||
*busybox)
|
||||
for _G_bbe in $GL_ALL_SHELLS_BBE
|
||||
do
|
||||
_G_full_bb="$_G_abs_shell $_G_bbe"
|
||||
__notify_shell "$_G_full_bb"
|
||||
__GL_ALL_SHELLS_SHELL="$_G_full_bb" \
|
||||
"$_G_abs_shell" "$_G_bbe" "$all_shells_script" ${1+"$@"} \
|
||||
|| all_shells_error "can't run in $_G_bbe"
|
||||
done
|
||||
;;
|
||||
*)
|
||||
__notify_shell "$_G_abs_shell"
|
||||
__GL_ALL_SHELLS_SHELL="$_G_abs_shell" \
|
||||
"$_G_abs_shell" "$all_shells_script" ${1+"$@"} \
|
||||
|| all_shells_error "can't run in $_G_abs_shell"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
test x = "x$__GL_ALL_SHELLS_SHELL" \
|
||||
&& __reexec_in_all_shells ${1+"$@"} \
|
||||
&& __notify_shell "default shell"
|
||||
|
||||
:
|
||||
183
BUILD/libtool-2.4.7/gnulib-tests/test-funclib-quote.sh
Executable file
183
BUILD/libtool-2.4.7/gnulib-tests/test-funclib-quote.sh
Executable file
@ -0,0 +1,183 @@
|
||||
#! /bin/sh
|
||||
|
||||
# Unit tests for funclib.sh
|
||||
|
||||
# This is free software. There is NO warranty; not even for
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
#
|
||||
# Copyright (C) 2015-2019, 2021 Bootstrap Authors
|
||||
#
|
||||
# This file is dual licensed under the terms of the MIT license
|
||||
# <https://opensource.org/license/MIT>, and GPL version 2 or later
|
||||
# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
|
||||
# these licenses when using or redistributing this software or any of
|
||||
# the files within it. See the URLs above, or the file `LICENSE`
|
||||
# included in the Bootstrap distribution for the full license texts.
|
||||
|
||||
# Please report bugs or propose patches to:
|
||||
# <https://github.com/gnulib-modules/bootstrap/issues>
|
||||
|
||||
|
||||
all_shells_script=$0
|
||||
. "$abs_srcdir/test-all-shells.sh" || exit 1
|
||||
|
||||
|
||||
_compare_or_error ()
|
||||
{
|
||||
_G_msg="$1: strings differ:
|
||||
a: $2
|
||||
b: $3"
|
||||
test "$2" = "$3" || all_shells_error "$_G_msg"
|
||||
}
|
||||
|
||||
|
||||
dump_args ()
|
||||
{
|
||||
dump_args_result=
|
||||
_separator=
|
||||
for arg
|
||||
do
|
||||
func_append dump_args_result "$_separator$arg"
|
||||
_separator=' '
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
# test_q_eval DESC ARGs...
|
||||
# ------------------------
|
||||
# Apply 'func_quote eval' on ARGs and eval the result. The eval-ed result must
|
||||
# 100% match the original ARGs.
|
||||
test_q_eval ()
|
||||
{
|
||||
description="$1" ; shift
|
||||
|
||||
dump_args ${1+"$@"}
|
||||
original=$dump_args_result
|
||||
|
||||
$ECHO "~> func_quote eval: $description: $original"
|
||||
|
||||
# Pretty implementation
|
||||
func_quote eval,pretty ${1+"$@"} \
|
||||
|| all_shells_error "can't pretty func_quote args '$*'"
|
||||
eval "set dummy $func_quote_result" ; shift
|
||||
dump_args ${1+"$@"}
|
||||
pretty=$dump_args_result
|
||||
|
||||
# Fast implementation (if available)
|
||||
func_quote eval ${1+"$@"} || all_shells_error "can't fast func_quote args '$*'"
|
||||
eval "set dummy $func_quote_result" ; shift
|
||||
dump_args ${1+"$@"}
|
||||
fast=$dump_args_result
|
||||
|
||||
_compare_or_error "$description (pretty)" "$original" "$pretty"
|
||||
_compare_or_error "$description (fast)" "$original" "$fast"
|
||||
}
|
||||
|
||||
|
||||
# test_q_arg_eval DESC ARG
|
||||
# ------------------------
|
||||
# Apply 'func_quote_arg eval' on ARG and eval the result. Echo-ed result within
|
||||
# eval must match original echo-ed ARG.
|
||||
test_q_arg_eval ()
|
||||
{
|
||||
description=$1
|
||||
original=$2
|
||||
original_echo=`$ECHO "$original"`
|
||||
|
||||
$ECHO "~> func_quote_arg eval: $description: $original_echo"
|
||||
|
||||
func_quote_arg pretty,unquoted "$original" \
|
||||
|| all_shells_error "can't quote_arg: $original"
|
||||
pretty=$func_quote_arg_result
|
||||
pretty_unquoted=$func_quote_arg_unquoted_result
|
||||
pretty_echo=`eval '$ECHO '"$pretty"` \
|
||||
|| all_shells_error "can't eval: $pretty"
|
||||
|
||||
pretty_unquoted_echo=`eval '$ECHO '"\"$pretty_unquoted\""` \
|
||||
|| all_shells_error "can't eval: $pretty"
|
||||
|
||||
# Fast implementation.
|
||||
func_quote_arg eval "$original"
|
||||
fast=$func_quote_arg_result
|
||||
fast_echo=`eval '$ECHO '"$fast"` || all_shells_error "can't eval: $pretty"
|
||||
|
||||
_compare_or_error "$description (pretty)" \
|
||||
"$original_echo" "$pretty_echo"
|
||||
_compare_or_error "$description (pretty_unquoted)" \
|
||||
"$original_echo" "$pretty_unquoted_echo"
|
||||
_compare_or_error "$description (fast)" \
|
||||
"$original_echo" "$fast_echo"
|
||||
}
|
||||
|
||||
|
||||
# test_q_expand DESC EXP_RESULT ARG
|
||||
# ---------------------------------
|
||||
# Test that 'func_quote expand' works fine --> all shell special characters are
|
||||
# quoted except '$' -- while all variables are expanded.
|
||||
test_q_expand ()
|
||||
{
|
||||
description=$1 ; shift
|
||||
exp_result=$1 ; shift
|
||||
|
||||
dump_args ${1+"$@"}
|
||||
$ECHO "~> func_quote expand: $description: $dump_args_result"
|
||||
|
||||
func_quote expand ${1+"$@"}
|
||||
eval "set dummy $func_quote_result" ; shift
|
||||
dump_args ${1+"$@"}
|
||||
|
||||
_compare_or_error "$description (expand)" "$exp_result" "$dump_args_result"
|
||||
}
|
||||
|
||||
|
||||
## ============== ##
|
||||
## Start testing! ##
|
||||
## ============== ##
|
||||
|
||||
aaa=aaa ; bbb=bbb ; ccc=ccc ; ddd=ddd
|
||||
|
||||
# Needed for later testing of globbing.
|
||||
touch fltestA fltestB
|
||||
|
||||
test_q_eval basic a b c
|
||||
# TODO: Intentionally not checking newline here yet, it never worked.
|
||||
test_q_eval spaces 'space space' 'tab tab'
|
||||
test_q_eval empty_arg '' '' ''
|
||||
test_q_eval globs '*' '.*' '[a-zA-Z0-9_]' '?' '~'
|
||||
test_q_eval variables '$aaa' '${bbb}' '"${ccc} $ddd"'
|
||||
test_q_eval exclamation-mark '$!' '!$' '!'
|
||||
test_q_eval tilde '"~"'
|
||||
test_q_eval single-quotes "'a'" "'"'$bbb'"'"
|
||||
test_q_eval shell-vars '$1' '$@' '$*' 'ending$'
|
||||
test_q_eval complicated-cmd grep b '>' /noperm '<' /noperm
|
||||
|
||||
test_q_arg_eval basic a
|
||||
test_q_arg_eval single-quotes "'''"
|
||||
test_q_arg_eval double-quotes '"""'
|
||||
test_q_arg_eval tilde '~'
|
||||
test_q_arg_eval ampersand '&'
|
||||
test_q_arg_eval pipe '|'
|
||||
test_q_arg_eval questionmark 'fltest?'
|
||||
test_q_arg_eval glob-bracket 'fltest[A-Z]'
|
||||
test_q_arg_eval space 'space space'
|
||||
test_q_arg_eval tab 'tab tab'
|
||||
test_q_arg_eval '`command`' '`false command`'
|
||||
test_q_arg_eval '$(command)' '$(false command)'
|
||||
test_q_arg_eval semicolon '; false'
|
||||
test_q_arg_eval vars '$aaa ${bbb} "${ccc} $ddd"'
|
||||
test_q_arg_eval if-then-else 'if false; then false; else false; fi'
|
||||
test_q_arg_eval file-redirect 'echo a > /no-perm 2> /no-perm'
|
||||
test_q_arg_eval case-stmt 'case $empty in "") false;; a) broken ;; esac'
|
||||
test_q_arg_eval comment 'unexistent #'
|
||||
test_q_arg_eval func 'func () { } # syntax error'
|
||||
|
||||
test_q_expand basic 'a b c aaa d' a b c '$aaa' d
|
||||
test_q_expand double-quotes '" " " "bbb"' '"' '" "' '"$bbb"'
|
||||
test_q_expand spaces ' ccc' ' ' ' ' '${ccc}'
|
||||
# Note the *no expected space* here!
|
||||
test_q_expand non-existent '' '$empty' '${empty}'
|
||||
test_q_expand non-existent-2 '"" ""' '"$empty"' '"${empty}"'
|
||||
# TODO: Intentionally not checking '$(cmd)' yet.
|
||||
test_q_expand '`command`' '`aaa bbb`' '`$aaa $empty${bbb}`'
|
||||
|
||||
$all_shells_exit_cmd && rm -rf fltest*
|
||||
74
BUILD/libtool-2.4.7/gnulib-tests/test-init.sh
Executable file
74
BUILD/libtool-2.4.7/gnulib-tests/test-init.sh
Executable file
@ -0,0 +1,74 @@
|
||||
#!/bin/sh
|
||||
# Unit tests for init.sh
|
||||
# Copyright (C) 2011-2022 Free Software Foundation, Inc.
|
||||
# This file is part of the GNUlib Library.
|
||||
#
|
||||
# This program 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 3 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. If not, see <https://www.gnu.org/licenses/>. */
|
||||
|
||||
: ${srcdir=.}
|
||||
. "$srcdir/init.sh"; path_prepend_ .
|
||||
|
||||
fail=0
|
||||
|
||||
test_compare()
|
||||
{
|
||||
touch empty || fail=1
|
||||
echo xyz > in || fail=1
|
||||
|
||||
compare /dev/null /dev/null >out 2>err || fail=1
|
||||
test -s out && fail_ "out not empty: $(cat out)"
|
||||
# "err" should be empty, too, but has "set -x" output when VERBOSE=yes
|
||||
case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac
|
||||
|
||||
compare /dev/null empty >out 2>err || fail=1
|
||||
test -s out && fail_ "out not empty: $(cat out)"
|
||||
case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac
|
||||
|
||||
compare in in >out 2>err || fail=1
|
||||
test -s out && fail_ "out not empty: $(cat out)"
|
||||
case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac
|
||||
|
||||
compare /dev/null in >out 2>err && fail=1
|
||||
cat <<\EOF > exp
|
||||
diff -u /dev/null in
|
||||
--- /dev/null 1970-01-01
|
||||
+++ in 1970-01-01
|
||||
+xyz
|
||||
EOF
|
||||
compare exp out || fail=1
|
||||
case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac
|
||||
|
||||
compare empty in >out 2>err && fail=1
|
||||
# Compare against expected output only if compare is using diff -u.
|
||||
if grep @ out >/dev/null; then
|
||||
# Remove the TAB-date suffix on each --- and +++ line,
|
||||
# for both the expected and the actual output files.
|
||||
# Also remove the @@ line, since Solaris 5.10 and GNU diff formats differ:
|
||||
# -@@ -0,0 +1 @@
|
||||
# +@@ -1,0 +1,1 @@
|
||||
# Also, remove space after leading '+', since AIX 7.1 diff outputs a space.
|
||||
sed 's/ .*//;/^@@/d;s/^+ /+/' out > k && mv k out
|
||||
cat <<\EOF > exp
|
||||
--- empty
|
||||
+++ in
|
||||
+xyz
|
||||
EOF
|
||||
compare exp out || fail=1
|
||||
fi
|
||||
case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac
|
||||
}
|
||||
|
||||
test_compare
|
||||
|
||||
Exit $fail
|
||||
200
BUILD/libtool-2.4.7/gnulib-tests/test-option-parser-helper
Executable file
200
BUILD/libtool-2.4.7/gnulib-tests/test-option-parser-helper
Executable file
@ -0,0 +1,200 @@
|
||||
#! /bin/sh
|
||||
|
||||
# Unit tests for funclib.sh
|
||||
|
||||
# This is free software. There is NO warranty; not even for
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
#
|
||||
# Copyright (C) 2015-2019, 2021 Bootstrap Authors
|
||||
#
|
||||
# This file is dual licensed under the terms of the MIT license
|
||||
# <https://opensource.org/license/MIT>, and GPL version 2 or later
|
||||
# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
|
||||
# these licenses when using or redistributing this software or any of
|
||||
# the files within it. See the URLs above, or the file `LICENSE`
|
||||
# included in the Bootstrap distribution for the full license texts.
|
||||
|
||||
# Please report bugs or propose patches to:
|
||||
# <https://github.com/gnulib-modules/bootstrap/issues>
|
||||
|
||||
. "$abs_aux_dir"/funclib.sh || exit 1
|
||||
. "$abs_aux_dir"/options-parser || exit 1
|
||||
|
||||
set -e
|
||||
|
||||
scriptversion='test-version'
|
||||
|
||||
func_help ()
|
||||
{
|
||||
$ECHO "HELP"
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
# Make sure that setting <func_name>_result has no effect if we return non-zero
|
||||
# return value.
|
||||
test_prep_do_nothing ()
|
||||
{
|
||||
:
|
||||
}
|
||||
func_add_hook func_options_prep test_prep_do_nothing
|
||||
|
||||
|
||||
test_prep_shortcuts ()
|
||||
{
|
||||
debug_on=
|
||||
test x--debug = "x$1" && debug_on=--debug && shift
|
||||
|
||||
case $1 in
|
||||
short|shortc|shortcu|shortcut)
|
||||
shift
|
||||
func_quote eval --test SHORTCUT $debug_on ${1+"$@"}
|
||||
test_prep_shortcuts_result=$func_quote_result
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
}
|
||||
func_add_hook func_options_prep test_prep_shortcuts
|
||||
|
||||
|
||||
test_parse_split_short ()
|
||||
{
|
||||
while test $# -gt 0
|
||||
do
|
||||
_G_opt=$1 ; shift
|
||||
case $_G_opt in
|
||||
-t?*)
|
||||
func_split_short_opt "$_G_opt"
|
||||
set dummy "$func_split_short_opt_name" \
|
||||
"$func_split_short_opt_arg" ${1+"$@"}
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set dummy "$_G_opt" ${1+"$@"} ; shift
|
||||
;;
|
||||
esac
|
||||
break
|
||||
done
|
||||
|
||||
func_quote eval ${1+"$@"}
|
||||
test_parse_split_short_result=$func_quote_result
|
||||
}
|
||||
func_add_hook func_parse_options test_parse_split_short
|
||||
|
||||
|
||||
test_parse_subst_equal_signs ()
|
||||
{
|
||||
_G_opt=$1 ; shift
|
||||
case $_G_opt in
|
||||
--*=*)
|
||||
func_split_equals "$_G_opt"
|
||||
set dummy "$func_split_equals_lhs" \
|
||||
"$func_split_equals_rhs" ${1+"$@"}
|
||||
shift
|
||||
func_quote eval ${1+"$@"}
|
||||
test_parse_subst_equal_signs_result=$func_quote_result
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
}
|
||||
func_add_hook func_parse_options test_parse_subst_equal_signs
|
||||
|
||||
|
||||
test_parse_do_nothing ()
|
||||
{
|
||||
:
|
||||
}
|
||||
func_add_hook func_parse_options test_parse_do_nothing
|
||||
|
||||
|
||||
test_parse_eat_test ()
|
||||
{
|
||||
_t_parse_match=false
|
||||
_G_opt=$1 ; shift
|
||||
case $_G_opt in
|
||||
--test|-t)
|
||||
_t_parse_match=:
|
||||
if test $# = 0; then
|
||||
func_missing_arg $_G_opt
|
||||
else
|
||||
opt_test=$1
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if $_t_parse_match; then
|
||||
func_quote eval ${1+"$@"}
|
||||
test_parse_eat_test_result=$func_quote_result
|
||||
fi
|
||||
}
|
||||
func_add_hook func_parse_options test_parse_eat_test
|
||||
|
||||
|
||||
test_validate_do_nothing ()
|
||||
{
|
||||
:
|
||||
}
|
||||
func_add_hook func_validate_options test_validate_do_nothing
|
||||
|
||||
|
||||
test_validate_eat_sth ()
|
||||
{
|
||||
if test validate_out = "$1"; then
|
||||
shift
|
||||
func_quote eval ${1+"$@"}
|
||||
test_validate_eat_sth_result=$func_quote_result
|
||||
fi
|
||||
}
|
||||
func_add_hook func_validate_options test_validate_eat_sth
|
||||
|
||||
|
||||
unset_test_opt ()
|
||||
{
|
||||
case $# in
|
||||
0)
|
||||
$ECHO UNSET_TEST
|
||||
;;
|
||||
1)
|
||||
$ECHO "ONE_ARG $*"
|
||||
;;
|
||||
2)
|
||||
case $1 in
|
||||
eval)
|
||||
eval "$2"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
3)
|
||||
$ECHO THREE_ARGS
|
||||
;;
|
||||
*)
|
||||
$ECHO MORE_ARGS
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
func_options ${1+"$@"}
|
||||
eval set dummy "$func_options_result"; shift
|
||||
|
||||
case ${opt_test-unset} in
|
||||
'')
|
||||
$ECHO "EMPTY_TEST"
|
||||
;;
|
||||
unset)
|
||||
unset_test_opt ${1+"$@"}
|
||||
;;
|
||||
false)
|
||||
$ECHO "FALSE_TEST"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
$ECHO $opt_test
|
||||
;;
|
||||
esac
|
||||
|
||||
:
|
||||
131
BUILD/libtool-2.4.7/gnulib-tests/test-option-parser.sh
Executable file
131
BUILD/libtool-2.4.7/gnulib-tests/test-option-parser.sh
Executable file
@ -0,0 +1,131 @@
|
||||
#! /bin/sh
|
||||
|
||||
# Unit tests for option-parser
|
||||
|
||||
# This is free software. There is NO warranty; not even for
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
#
|
||||
# Copyright (C) 2015-2019, 2021 Bootstrap Authors
|
||||
#
|
||||
# This file is dual licensed under the terms of the MIT license
|
||||
# <https://opensource.org/license/MIT>, and GPL version 2 or later
|
||||
# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
|
||||
# these licenses when using or redistributing this software or any of
|
||||
# the files within it. See the URLs above, or the file `LICENSE`
|
||||
# included in the Bootstrap distribution for the full license texts.
|
||||
|
||||
# Please report bugs or propose patches to:
|
||||
# <https://github.com/gnulib-modules/bootstrap/issues>
|
||||
|
||||
all_shells_script=$0
|
||||
. "$abs_srcdir/test-all-shells.sh"
|
||||
|
||||
. "$abs_aux_dir"/options-parser || exit 1
|
||||
|
||||
helper="$__GL_ALL_SHELLS_SHELL $abs_srcdir/test-option-parser-helper"
|
||||
|
||||
check_output_inner ()
|
||||
{
|
||||
exp_output=$1 ; shift
|
||||
exp_retval=$1 ; shift
|
||||
|
||||
func_quote pretty ${1+"$@"}
|
||||
$ECHO "[[ output check ]] args: $func_quote_result"
|
||||
|
||||
output=`$helper ${1+"$@"} 2>/dev/null`
|
||||
rc=$?
|
||||
test "$rc" -eq "$exp_retval" \
|
||||
|| all_shells_error "unexpected exit status $rc $exp_retval"
|
||||
|
||||
if test "$exp_output" = "$output"
|
||||
then
|
||||
:
|
||||
else
|
||||
$ECHO "expected:"
|
||||
$ECHO "$exp_output"
|
||||
$ECHO "given:"
|
||||
$ECHO "$output"
|
||||
all_shells_error "unexpected output"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
check_output ()
|
||||
{
|
||||
_co_exp_output=$1 ; shift
|
||||
_co_exp_retval=$1 ; shift
|
||||
check_output_inner "$_co_exp_output" "$_co_exp_retval" ${1+"$@"}
|
||||
check_output_inner "$_co_exp_output" "$_co_exp_retval" --debug ${1+"$@"}
|
||||
}
|
||||
|
||||
|
||||
check_retval ()
|
||||
{
|
||||
exp_retval=$1 ; shift
|
||||
func_quote pretty ${1+"$@"}
|
||||
$ECHO "[[ retval check ]] args: $func_quote_result"
|
||||
$helper ${1+"$@"} >/dev/null 2>/dev/null
|
||||
rc=$?
|
||||
test "$rc" -eq "$exp_retval" \
|
||||
|| all_shells_error "unexpected retval $rc (should be $exp_retval)"
|
||||
}
|
||||
|
||||
|
||||
grep_output ()
|
||||
{
|
||||
grep_for=$1 ; shift
|
||||
exp_retval=$1 ; shift
|
||||
|
||||
func_quote pretty ${1+"$@"}
|
||||
$ECHO "[[ grep for '$grep_for' ]] args: $func_quote_result"
|
||||
|
||||
output=`$helper ${1+"$@"} 2>/dev/null`
|
||||
rc=$?
|
||||
case $output in
|
||||
*$grep_for*) : ;;
|
||||
*) all_shells_error "$grep_for is not in stdout $output" ;;
|
||||
esac
|
||||
|
||||
test "$rc" -eq "$exp_retval" \
|
||||
|| all_shells_error "unexpected retval $rc (should be $exp_retval)"
|
||||
}
|
||||
|
||||
|
||||
check_output HELP 0 --help
|
||||
check_output HELP 0 --test jej --help
|
||||
check_output HELP 0 --test=jej --help
|
||||
check_output HELP 0 --test= --help
|
||||
|
||||
check_output EMPTY_TEST 0 --test=
|
||||
check_output EMPTY_TEST 0 -t ''
|
||||
check_output EMPTY_TEST 0 --test ''
|
||||
check_output FALSE_TEST 1 --test=false
|
||||
check_output FALSE_TEST 1 -tfalse
|
||||
check_output FALSE_TEST 1 -t false
|
||||
check_output UNSET_TEST 0
|
||||
check_output 'ONE_ARG a' 0 a
|
||||
check_output THREE_ARGS 0 a b c
|
||||
check_output MORE_ARGS 0 a b c d
|
||||
|
||||
check_output SHORTCUT 0 short
|
||||
check_output SHORTCUT 0 shortcut
|
||||
check_output HELP 0 short --help
|
||||
|
||||
check_output eval 4 eval 'echo eval ; exit 4'
|
||||
check_output eval 4 validate_out eval 'echo eval ; exit 4'
|
||||
|
||||
# No argument.
|
||||
check_retval 1 --test
|
||||
check_retval 1 --not-existent
|
||||
check_retval 1 short --not-existent
|
||||
|
||||
grep_output test-version 0 --version
|
||||
grep_output test-version 0 --version --whatever
|
||||
grep_output test-version 0 --debug --version
|
||||
|
||||
# TODO: Shouldn't this code be able to parse multiple occurrences of
|
||||
# single option (IOW, hooks should be called in loop..)?
|
||||
# check_output FALSE_TEST 1 short --test false
|
||||
# check_output FALSE_TEST 1 --test a --test false
|
||||
|
||||
$all_shells_exit_cmd
|
||||
561
BUILD/libtool-2.4.7/gnulib-tests/test-update-copyright.sh
Executable file
561
BUILD/libtool-2.4.7/gnulib-tests/test-update-copyright.sh
Executable file
@ -0,0 +1,561 @@
|
||||
#!/bin/sh
|
||||
# Test suite for update-copyright.
|
||||
# Copyright (C) 2009-2022 Free Software Foundation, Inc.
|
||||
# This file is part of the GNUlib Library.
|
||||
#
|
||||
# This program 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 3 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. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
diffout=`diff -u /dev/null /dev/null 2>&1`
|
||||
if test x"$diffout" = x"" && test $? -eq 0; then
|
||||
compare() { diff -u "$@"; }
|
||||
else
|
||||
compare() { cmp "$@"; }
|
||||
fi
|
||||
|
||||
# Ensure the update-copyright program gets found.
|
||||
PATH=$abs_aux_dir:$PATH
|
||||
export PATH
|
||||
|
||||
TMP_BASE=update-copyright.test
|
||||
trap 'rm -f $TMP_BASE*' 0 1 2 3 15
|
||||
|
||||
## --------------------------------- ##
|
||||
## Skip if user does not have perl. ##
|
||||
## --------------------------------- ##
|
||||
|
||||
TMP=$TMP_BASE
|
||||
s=$TMP-script
|
||||
cat <<\EOF > $s
|
||||
#!/bin/sh
|
||||
#! -*-perl-*-
|
||||
# This is a prologue that allows to run a perl script as an executable
|
||||
# on systems that are compliant to a POSIX version before POSIX:2017.
|
||||
# On such systems, the usual invocation of an executable through execlp()
|
||||
# or execvp() fails with ENOEXEC if it is a script that does not start
|
||||
# with a #! line. The script interpreter mentioned in the #! line has
|
||||
# to be /bin/sh, because on GuixSD systems that is the only program that
|
||||
# has a fixed file name. The second line is essential for perl and is
|
||||
# also useful for editing this file in Emacs. The next two lines below
|
||||
# are valid code in both sh and perl. When executed by sh, they re-execute
|
||||
# the script through the perl program found in $PATH. The '-x' option
|
||||
# is essential as well; without it, perl would re-execute the script
|
||||
# through /bin/sh. When executed by perl, the next two lines are a no-op.
|
||||
eval 'exec perl -wSx -pi "$0" "$@"'
|
||||
if 0;
|
||||
|
||||
s/a/b/
|
||||
EOF
|
||||
chmod a+x $s
|
||||
echo a > $TMP-in
|
||||
./$s $TMP-in 2>/dev/null && test b = "`cat $TMP-in 2>/dev/null`" ||
|
||||
{
|
||||
printf '%s\n' "$0: skipping this test;" \
|
||||
'your system has insufficient support for Perl' 1>&2
|
||||
exit 77
|
||||
}
|
||||
|
||||
# Skip this test if Perl is too old. FIXME: 5.8.0 is just a guess.
|
||||
# We have a report that 5.6.1 is inadequate and that 5.8.0 works.
|
||||
perl -e 'require 5.8.0' || {
|
||||
echo '$0: skipping this test; Perl version is too old' 1>&2
|
||||
exit 77
|
||||
}
|
||||
|
||||
# Do not let a different envvar setting perturb results.
|
||||
UPDATE_COPYRIGHT_MAX_LINE_LENGTH=72
|
||||
export UPDATE_COPYRIGHT_MAX_LINE_LENGTH
|
||||
|
||||
## ----------------------------- ##
|
||||
## Examples from documentation. ##
|
||||
## ----------------------------- ##
|
||||
|
||||
TMP=$TMP_BASE-ex
|
||||
cat > $TMP.1 <<EOF
|
||||
Copyright @copyright{} 1990-2005, 2007-2009 Free Software
|
||||
Foundation, Inc.
|
||||
EOF
|
||||
cat > $TMP.2 <<EOF
|
||||
# Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# Foundation, Inc.
|
||||
EOF
|
||||
cat > $TMP.3 <<EOF
|
||||
/*
|
||||
* Copyright © 90,2005,2007-2009
|
||||
* Free Software Foundation, Inc.
|
||||
*/
|
||||
EOF
|
||||
cat > $TMP.4 <<EOF
|
||||
## Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# Foundation, Inc.
|
||||
EOF
|
||||
cat > $TMP.5 <<EOF
|
||||
Copyright (C) 1990-2005, 2007-2009 Acme, Inc.
|
||||
EOF
|
||||
cat > $TMP.6 <<EOF
|
||||
## Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# Foundation, Inc.
|
||||
|
||||
Copyright (C) 1990-2005, 2007-2009 Free Software Foundation,
|
||||
Inc.
|
||||
EOF
|
||||
cat > $TMP.7 <<EOF
|
||||
Copyright (C) 1990-2005, 2007-2009 Acme, Inc.
|
||||
|
||||
# Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# Foundation, Inc.
|
||||
EOF
|
||||
|
||||
UPDATE_COPYRIGHT_YEAR=2009 \
|
||||
update-copyright $TMP.? 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare - $TMP-stderr <<EOF || exit 1
|
||||
$TMP.4: warning: copyright statement not found
|
||||
$TMP.5: warning: copyright statement not found
|
||||
EOF
|
||||
compare - $TMP.1 <<EOF || exit 1
|
||||
Copyright @copyright{} 1990-2005, 2007-2009 Free Software
|
||||
Foundation, Inc.
|
||||
EOF
|
||||
compare - $TMP.2 <<EOF || exit 1
|
||||
# Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# Foundation, Inc.
|
||||
EOF
|
||||
compare - $TMP.3 <<EOF || exit 1
|
||||
/*
|
||||
* Copyright © 90,2005,2007-2009
|
||||
* Free Software Foundation, Inc.
|
||||
*/
|
||||
EOF
|
||||
compare - $TMP.4 <<EOF || exit 1
|
||||
## Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# Foundation, Inc.
|
||||
EOF
|
||||
compare - $TMP.5 <<EOF || exit 1
|
||||
Copyright (C) 1990-2005, 2007-2009 Acme, Inc.
|
||||
EOF
|
||||
compare - $TMP.6 <<EOF || exit 1
|
||||
## Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# Foundation, Inc.
|
||||
|
||||
Copyright (C) 1990-2005, 2007-2009 Free Software Foundation,
|
||||
Inc.
|
||||
EOF
|
||||
compare - $TMP.7 <<EOF || exit 1
|
||||
Copyright (C) 1990-2005, 2007-2009 Acme, Inc.
|
||||
|
||||
# Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# Foundation, Inc.
|
||||
EOF
|
||||
|
||||
UPDATE_COPYRIGHT_YEAR=2010 UPDATE_COPYRIGHT_USE_INTERVALS=1 \
|
||||
update-copyright $TMP.? 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare - $TMP-stderr <<EOF || exit 1
|
||||
$TMP.4: warning: copyright statement not found
|
||||
$TMP.5: warning: copyright statement not found
|
||||
EOF
|
||||
compare - $TMP.1 <<EOF || exit 1
|
||||
Copyright @copyright{} 1990-2005, 2007-2010 Free Software Foundation,
|
||||
Inc.
|
||||
EOF
|
||||
compare - $TMP.2 <<EOF || exit 1
|
||||
# Copyright (C) 1990-2005, 2007-2010 Free Software Foundation, Inc.
|
||||
EOF
|
||||
compare - $TMP.3 <<EOF || exit 1
|
||||
/*
|
||||
* Copyright © 1990, 2005, 2007-2010 Free Software Foundation, Inc.
|
||||
*/
|
||||
EOF
|
||||
compare - $TMP.4 <<EOF || exit 1
|
||||
## Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# Foundation, Inc.
|
||||
EOF
|
||||
compare - $TMP.5 <<EOF || exit 1
|
||||
Copyright (C) 1990-2005, 2007-2009 Acme, Inc.
|
||||
EOF
|
||||
compare - $TMP.6 <<EOF || exit 1
|
||||
## Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# Foundation, Inc.
|
||||
|
||||
Copyright (C) 1990-2005, 2007-2010 Free Software Foundation, Inc.
|
||||
EOF
|
||||
compare - $TMP.7 <<EOF || exit 1
|
||||
Copyright (C) 1990-2005, 2007-2009 Acme, Inc.
|
||||
|
||||
# Copyright (C) 1990-2005, 2007-2010 Free Software Foundation, Inc.
|
||||
EOF
|
||||
|
||||
UPDATE_COPYRIGHT_YEAR=2010 UPDATE_COPYRIGHT_FORCE=1 \
|
||||
update-copyright $TMP.? 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare - $TMP-stderr <<EOF || exit 1
|
||||
$TMP.4: warning: copyright statement not found
|
||||
$TMP.5: warning: copyright statement not found
|
||||
EOF
|
||||
compare - $TMP.1 <<EOF || exit 1
|
||||
Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
||||
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010
|
||||
Free Software Foundation, Inc.
|
||||
EOF
|
||||
compare - $TMP.2 <<EOF || exit 1
|
||||
# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010 Free
|
||||
# Software Foundation, Inc.
|
||||
EOF
|
||||
compare - $TMP.3 <<EOF || exit 1
|
||||
/*
|
||||
* Copyright © 1990, 2005, 2007, 2008, 2009, 2010 Free Software
|
||||
* Foundation, Inc.
|
||||
*/
|
||||
EOF
|
||||
compare - $TMP.4 <<EOF || exit 1
|
||||
## Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# Foundation, Inc.
|
||||
EOF
|
||||
compare - $TMP.5 <<EOF || exit 1
|
||||
Copyright (C) 1990-2005, 2007-2009 Acme, Inc.
|
||||
EOF
|
||||
compare - $TMP.6 <<EOF || exit 1
|
||||
## Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# Foundation, Inc.
|
||||
|
||||
Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010 Free
|
||||
Software Foundation, Inc.
|
||||
EOF
|
||||
compare - $TMP.7 <<EOF || exit 1
|
||||
Copyright (C) 1990-2005, 2007-2009 Acme, Inc.
|
||||
|
||||
# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010 Free
|
||||
# Software Foundation, Inc.
|
||||
EOF
|
||||
|
||||
rm $TMP*
|
||||
|
||||
## -------------- ##
|
||||
## Current year. ##
|
||||
## -------------- ##
|
||||
|
||||
TMP=$TMP_BASE-current-year
|
||||
YEAR=`date +%Y`
|
||||
cat > $TMP <<EOF
|
||||
'\" Copyright (C) 2006
|
||||
'\" Free Software Foundation,
|
||||
'\" Inc.
|
||||
EOF
|
||||
update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare /dev/null $TMP-stderr || exit 1
|
||||
compare - $TMP <<EOF || exit 1
|
||||
'\" Copyright (C) 2006, $YEAR Free Software Foundation, Inc.
|
||||
EOF
|
||||
UPDATE_COPYRIGHT_USE_INTERVALS=1 \
|
||||
update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare /dev/null $TMP-stderr || exit 1
|
||||
compare - $TMP <<EOF || exit 1
|
||||
'\" Copyright (C) 2006, $YEAR Free Software Foundation, Inc.
|
||||
EOF
|
||||
rm $TMP*
|
||||
|
||||
## ------------------ ##
|
||||
## Surrounding text. ##
|
||||
## ------------------ ##
|
||||
|
||||
TMP=$TMP_BASE-surrounding-text
|
||||
cat > $TMP <<EOF
|
||||
Undisturbed text.
|
||||
dnl Undisturbed text.
|
||||
dnl Copyright (C) 89
|
||||
dnl Free Software Foundation, Inc.
|
||||
dnl Undisturbed text.
|
||||
EOF
|
||||
UPDATE_COPYRIGHT_YEAR=2010 \
|
||||
update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare /dev/null $TMP-stderr || exit 1
|
||||
compare - $TMP <<EOF || exit 1
|
||||
Undisturbed text.
|
||||
dnl Undisturbed text.
|
||||
dnl Copyright (C) 1989, 2010 Free Software Foundation, Inc.
|
||||
dnl Undisturbed text.
|
||||
EOF
|
||||
rm $TMP*
|
||||
|
||||
## --------------- ##
|
||||
## Widest prefix. ##
|
||||
## --------------- ##
|
||||
|
||||
TMP=$TMP_BASE-widest-prefix
|
||||
cat > $TMP <<EOF
|
||||
#### Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985,
|
||||
#### 1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
|
||||
#### 2008 Free Software Foundation, Inc.
|
||||
EOF
|
||||
UPDATE_COPYRIGHT_YEAR=2010 \
|
||||
update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare /dev/null $TMP-stderr || exit 1
|
||||
compare - $TMP <<EOF || exit 1
|
||||
#### Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984,
|
||||
#### 1985, 1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
#### 2006, 2007, 2008, 2010 Free Software Foundation, Inc.
|
||||
EOF
|
||||
UPDATE_COPYRIGHT_YEAR=2011 UPDATE_COPYRIGHT_USE_INTERVALS=1 \
|
||||
update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare /dev/null $TMP-stderr || exit 1
|
||||
compare - $TMP <<EOF || exit 1
|
||||
#### Copyright (C) 1976-1988, 1999-2008, 2010-2011 Free Software
|
||||
#### Foundation, Inc.
|
||||
EOF
|
||||
rm $TMP*
|
||||
|
||||
## ------------------- ##
|
||||
## Prefix too large. ##
|
||||
## ------------------- ##
|
||||
|
||||
TMP=$TMP_BASE-prefix-too-large
|
||||
cat > $TMP <<EOF
|
||||
#### Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985,
|
||||
#### 1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
|
||||
#### 2008 Free Software Foundation, Inc.
|
||||
EOF
|
||||
UPDATE_COPYRIGHT_YEAR=2010 \
|
||||
update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare - $TMP-stderr <<EOF || exit 1
|
||||
$TMP: warning: copyright statement not found
|
||||
EOF
|
||||
compare - $TMP <<EOF || exit 1
|
||||
#### Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985,
|
||||
#### 1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
|
||||
#### 2008 Free Software Foundation, Inc.
|
||||
EOF
|
||||
rm $TMP*
|
||||
|
||||
## ------------- ##
|
||||
## Blank lines. ##
|
||||
## ------------- ##
|
||||
|
||||
TMP=$TMP_BASE-blank-lines
|
||||
cat > $TMP <<EOF
|
||||
#Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985,
|
||||
#
|
||||
#1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
|
||||
#2008 Free Software Foundation, Inc.
|
||||
|
||||
Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985,
|
||||
|
||||
1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
|
||||
2008 Free Software Foundation, Inc.
|
||||
EOF
|
||||
UPDATE_COPYRIGHT_YEAR=2010 \
|
||||
update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare - $TMP-stderr <<EOF || exit 1
|
||||
$TMP: warning: copyright statement not found
|
||||
EOF
|
||||
compare - $TMP <<EOF || exit 1
|
||||
#Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985,
|
||||
#
|
||||
#1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
|
||||
#2008 Free Software Foundation, Inc.
|
||||
|
||||
Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985,
|
||||
|
||||
1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
|
||||
2008 Free Software Foundation, Inc.
|
||||
EOF
|
||||
rm $TMP*
|
||||
|
||||
## -------------- ##
|
||||
## Leading tabs. ##
|
||||
## -------------- ##
|
||||
|
||||
TMP=$TMP_BASE-leading-tabs
|
||||
cat > $TMP <<EOF
|
||||
Copyright (C) 87, 88, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 98,
|
||||
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free
|
||||
Software Foundation, Inc.
|
||||
EOF
|
||||
UPDATE_COPYRIGHT_YEAR=2010 \
|
||||
update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare /dev/null $TMP-stderr || exit 1
|
||||
compare - $TMP <<EOF || exit 1
|
||||
Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
|
||||
1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
||||
2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||
EOF
|
||||
UPDATE_COPYRIGHT_YEAR=2011 UPDATE_COPYRIGHT_USE_INTERVALS=1 \
|
||||
update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare /dev/null $TMP-stderr || exit 1
|
||||
compare - $TMP <<EOF || exit 1
|
||||
Copyright (C) 1987-1988, 1991-2011 Free Software Foundation,
|
||||
Inc.
|
||||
EOF
|
||||
rm $TMP*
|
||||
|
||||
## -------------------- ##
|
||||
## Unusual whitespace. ##
|
||||
## -------------------- ##
|
||||
|
||||
TMP=$TMP_BASE-unusual-ws
|
||||
cat > $TMP <<EOF
|
||||
# Copyright (C) 87-88, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
||||
# 98, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
|
||||
# 2009 Free Software Foundation, Inc.
|
||||
EOF
|
||||
UPDATE_COPYRIGHT_YEAR=2010 \
|
||||
update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare /dev/null $TMP-stderr || exit 1
|
||||
compare - $TMP <<EOF || exit 1
|
||||
# Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994,
|
||||
# 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
|
||||
# 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
|
||||
# Foundation, Inc.
|
||||
EOF
|
||||
UPDATE_COPYRIGHT_YEAR=2011 UPDATE_COPYRIGHT_USE_INTERVALS=1 \
|
||||
update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare /dev/null $TMP-stderr || exit 1
|
||||
compare - $TMP <<EOF || exit 1
|
||||
# Copyright (C) 1987-1988, 1991-2011 Free Software
|
||||
# Foundation, Inc.
|
||||
EOF
|
||||
UPDATE_COPYRIGHT_YEAR=2011 UPDATE_COPYRIGHT_USE_INTERVALS=2 \
|
||||
UPDATE_COPYRIGHT_FORCE=1 update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare /dev/null $TMP-stderr || exit 1
|
||||
compare - $TMP <<EOF || exit 1
|
||||
# Copyright (C) 1987-2011 Free Software Foundation, Inc.
|
||||
EOF
|
||||
rm $TMP*
|
||||
|
||||
## --------- ##
|
||||
## DOS EOL. ##
|
||||
## --------- ##
|
||||
|
||||
TMP=$TMP_BASE-dos-eol
|
||||
tr @ '\015' > $TMP <<\EOF
|
||||
Rem Copyright (C) 87, 88, 1991, 1992, 1993, 1994, 1995, 1996, 1997,@
|
||||
Rem 98, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,@
|
||||
Rem 2009 Free Software Foundation, Inc.@
|
||||
EOF
|
||||
UPDATE_COPYRIGHT_YEAR=2010 \
|
||||
update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare /dev/null $TMP-stderr || exit 1
|
||||
tr @ '\015' > $TMP-exp <<\EOF
|
||||
Rem Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,@
|
||||
Rem 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,@
|
||||
Rem 2009, 2010 Free Software Foundation, Inc.@
|
||||
EOF
|
||||
compare $TMP-exp $TMP || exit 1
|
||||
rm $TMP*
|
||||
|
||||
## --------------- ##
|
||||
## Omitted "(C)". ##
|
||||
## --------------- ##
|
||||
|
||||
TMP=$TMP_BASE-omitted-circle-c
|
||||
cat > $TMP <<EOF
|
||||
Copyright 87, 88, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
||||
98, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
|
||||
2009 Free Software Foundation, Inc.
|
||||
EOF
|
||||
UPDATE_COPYRIGHT_YEAR=2010 \
|
||||
update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare /dev/null $TMP-stderr || exit 1
|
||||
compare - $TMP <<EOF || exit 1
|
||||
Copyright 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
|
||||
Free Software Foundation, Inc.
|
||||
EOF
|
||||
rm $TMP*
|
||||
|
||||
## ------------------ ##
|
||||
## C-style comments. ##
|
||||
## ------------------ ##
|
||||
|
||||
TMP=$TMP_BASE-c-style-comments
|
||||
cat > $TMP.star <<EOF
|
||||
/* Copyright 87, 88, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
||||
* 98, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
|
||||
* 2009 Free Software Foundation, Inc. */
|
||||
EOF
|
||||
cat > $TMP.space <<EOF
|
||||
/*Copyright 87, 88, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
||||
98, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
|
||||
2009 Free Software Foundation, Inc. */
|
||||
EOF
|
||||
cat > $TMP.single-line <<EOF
|
||||
/* Copyright 87, 1991, 1992 Free Software Foundation, Inc. */
|
||||
EOF
|
||||
cat > $TMP.single-line-wrapped <<EOF
|
||||
/* Copyright 1988, 1991, 1992, 1993 Free Software Foundation, Inc. */
|
||||
EOF
|
||||
cat > $TMP.extra-text-star <<EOF
|
||||
/* Copyright 1987, 1988, 1991, 1992 Free Software Foundation, Inc. End
|
||||
* More comments. */
|
||||
EOF
|
||||
cat > $TMP.extra-text-space <<EOF
|
||||
/* Copyright 1987, 1988, 1991, 1992 Free Software Foundation, Inc. ***
|
||||
* End of comments. */
|
||||
EOF
|
||||
cat > $TMP.two-digit-final-is-substr-of-first <<EOF
|
||||
/* Copyright 1991, 99 Free Software Foundation, Inc. */
|
||||
EOF
|
||||
UPDATE_COPYRIGHT_YEAR=2010 \
|
||||
update-copyright $TMP.* 1> $TMP-stdout 2> $TMP-stderr
|
||||
compare /dev/null $TMP-stdout || exit 1
|
||||
compare /dev/null $TMP-stderr || exit 1
|
||||
compare - $TMP.star <<EOF || exit 1
|
||||
/* Copyright 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
||||
* 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
|
||||
* 2009, 2010 Free Software Foundation, Inc. */
|
||||
EOF
|
||||
compare - $TMP.space <<EOF || exit 1
|
||||
/*Copyright 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
||||
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
|
||||
2009, 2010 Free Software Foundation, Inc. */
|
||||
EOF
|
||||
compare - $TMP.single-line <<EOF || exit 1
|
||||
/* Copyright 1987, 1991, 1992, 2010 Free Software Foundation, Inc. */
|
||||
EOF
|
||||
compare - $TMP.single-line-wrapped <<EOF || exit 1
|
||||
/* Copyright 1988, 1991, 1992, 1993, 2010 Free Software Foundation,
|
||||
* Inc. */
|
||||
EOF
|
||||
compare - $TMP.extra-text-star <<EOF || exit 1
|
||||
/* Copyright 1987, 1988, 1991, 1992, 2010 Free Software Foundation,
|
||||
* Inc. End
|
||||
* More comments. */
|
||||
EOF
|
||||
compare - $TMP.extra-text-space <<EOF || exit 1
|
||||
/* Copyright 1987, 1988, 1991, 1992, 2010 Free Software Foundation,
|
||||
Inc. ***
|
||||
* End of comments. */
|
||||
EOF
|
||||
compare - $TMP.two-digit-final-is-substr-of-first <<EOF || exit 1
|
||||
/* Copyright 1991, 1999, 2010 Free Software Foundation, Inc. */
|
||||
EOF
|
||||
rm $TMP*
|
||||
|
||||
exit 0
|
||||
53
BUILD/libtool-2.4.7/gnulib-tests/test-vc-list-files-cvs.sh
Executable file
53
BUILD/libtool-2.4.7/gnulib-tests/test-vc-list-files-cvs.sh
Executable file
@ -0,0 +1,53 @@
|
||||
#!/bin/sh
|
||||
# Unit tests for vc-list-files
|
||||
# Copyright (C) 2008-2022 Free Software Foundation, Inc.
|
||||
# This file is part of the GNUlib Library.
|
||||
#
|
||||
# This program 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 3 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. If not, see <https://www.gnu.org/licenses/>. */
|
||||
|
||||
: ${srcdir=.}
|
||||
. "$srcdir/init.sh"; path_prepend_ .
|
||||
|
||||
tmpdir=vc-cvs
|
||||
repo=`pwd`/$tmpdir/repo
|
||||
|
||||
fail=0
|
||||
for i in with-cvsu without; do
|
||||
# On the first iteration, test using cvsu, if it's in your path.
|
||||
# On the second iteration, ensure that cvsu fails, so we'll
|
||||
# exercise the awk-using code.
|
||||
if test $i = without; then
|
||||
printf '%s\n' '#!/bin/sh' 'exit 1' > cvsu
|
||||
chmod a+x cvsu
|
||||
PATH=`pwd`:$PATH
|
||||
export PATH
|
||||
fi
|
||||
ok=0
|
||||
mkdir $tmpdir && cd $tmpdir &&
|
||||
# without cvs, skip the test
|
||||
{ ( cvs -Q -d "$repo" init ) > /dev/null 2>&1 \
|
||||
|| skip_ "cvs not found in PATH"; } &&
|
||||
mkdir w && cd w &&
|
||||
mkdir d &&
|
||||
touch d/a b c &&
|
||||
cvs -Q -d "$repo" import -m imp m M M0 &&
|
||||
cvs -Q -d "$repo" co m && cd m &&
|
||||
printf '%s\n' b c d/a > expected &&
|
||||
$BOURNE_SHELL "$abs_aux_dir/vc-list-files" | sort > actual &&
|
||||
compare expected actual &&
|
||||
ok=1
|
||||
test $ok = 0 && fail=1
|
||||
done
|
||||
|
||||
Exit $fail
|
||||
42
BUILD/libtool-2.4.7/gnulib-tests/test-vc-list-files-git.sh
Executable file
42
BUILD/libtool-2.4.7/gnulib-tests/test-vc-list-files-git.sh
Executable file
@ -0,0 +1,42 @@
|
||||
#!/bin/sh
|
||||
# Unit tests for vc-list-files
|
||||
# Copyright (C) 2008-2022 Free Software Foundation, Inc.
|
||||
# This file is part of the GNUlib Library.
|
||||
#
|
||||
# This program 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 3 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. If not, see <https://www.gnu.org/licenses/>. */
|
||||
|
||||
: ${srcdir=.}
|
||||
. "$srcdir/init.sh"; path_prepend_ .
|
||||
|
||||
tmpdir=vc-git-$$
|
||||
GIT_DIR= GIT_WORK_TREE=; unset GIT_DIR GIT_WORK_TREE
|
||||
|
||||
fail=1
|
||||
mkdir $tmpdir && cd $tmpdir &&
|
||||
# without git, skip the test
|
||||
# The double use of 'exit' is needed for the reference to $? inside the trap.
|
||||
{ ( git init -q ) > /dev/null 2>&1 \
|
||||
|| skip_ "git not found in PATH"; } &&
|
||||
mkdir d &&
|
||||
touch d/a b c &&
|
||||
git config user.email "you@example.com" &&
|
||||
git config user.name "Your Name" &&
|
||||
git add . > /dev/null &&
|
||||
git commit -q -a -m log &&
|
||||
printf '%s\n' b c d/a > expected &&
|
||||
$BOURNE_SHELL "$abs_aux_dir/vc-list-files" > actual &&
|
||||
compare expected actual &&
|
||||
fail=0
|
||||
|
||||
Exit $fail
|
||||
502
BUILD/libtool-2.4.7/libltdl/COPYING.LIB
Normal file
502
BUILD/libtool-2.4.7/libltdl/COPYING.LIB
Normal file
@ -0,0 +1,502 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser 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
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
159
BUILD/libtool-2.4.7/libltdl/Makefile.am
Normal file
159
BUILD/libtool-2.4.7/libltdl/Makefile.am
Normal file
@ -0,0 +1,159 @@
|
||||
## ltdl.mk -- includable Makefile snippet
|
||||
##
|
||||
## Copyright (C) 2003-2005, 2007, 2011-2019, 2021-2022 Free Software
|
||||
## Foundation, Inc.
|
||||
## Written by Gary V. Vaughan, 2003
|
||||
##
|
||||
## NOTE: The canonical source of this file is maintained with the
|
||||
## GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
##
|
||||
## GNU Libltdl is free software; you can redistribute it and/or
|
||||
## modify it under the terms of the GNU Lesser General Public
|
||||
## License as published by the Free Software Foundation; either
|
||||
## version 2 of the License, or (at your option) any later version.
|
||||
##
|
||||
## As a special exception to the GNU Lesser General Public License,
|
||||
## if you distribute this file as part of a program or library that
|
||||
## is built using GNU libtool, you may include this file under the
|
||||
## same distribution terms that you use for the rest of that program.
|
||||
##
|
||||
## GNU Libltdl 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 Lesser General Public License for more details.
|
||||
##
|
||||
## You should have received a copy of the GNU LesserGeneral Public
|
||||
## License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
## copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
## or obtained by writing to the Free Software Foundation, Inc.,
|
||||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#####
|
||||
|
||||
ACLOCAL_AMFLAGS = -I ../m4
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
AM_CPPFLAGS =
|
||||
AM_LDFLAGS =
|
||||
BUILT_SOURCES =
|
||||
include_HEADERS =
|
||||
noinst_LTLIBRARIES =
|
||||
lib_LTLIBRARIES =
|
||||
EXTRA_LTLIBRARIES =
|
||||
EXTRA_DIST =
|
||||
CLEANFILES =
|
||||
MOSTLYCLEANFILES =
|
||||
|
||||
# -I$(srcdir) is needed for user that built libltdl with a sub-Automake
|
||||
# (not as a sub-package!) using 'nostdinc':
|
||||
AM_CPPFLAGS += -DLT_CONFIG_H='<$(LT_CONFIG_H)>' \
|
||||
-DLTDL -I. -I$(srcdir) -Ilibltdl \
|
||||
-I$(srcdir)/libltdl
|
||||
AM_LDFLAGS += -no-undefined
|
||||
LTDL_VERSION_INFO = -version-info 10:2:3
|
||||
|
||||
noinst_LTLIBRARIES += $(LT_DLLOADERS)
|
||||
|
||||
if INSTALL_LTDL
|
||||
ltdlincludedir = $(includedir)/libltdl
|
||||
ltdlinclude_HEADERS = libltdl/lt_system.h \
|
||||
libltdl/lt_error.h \
|
||||
libltdl/lt_dlloader.h
|
||||
include_HEADERS += ltdl.h
|
||||
lib_LTLIBRARIES += libltdl.la
|
||||
endif
|
||||
|
||||
if CONVENIENCE_LTDL
|
||||
noinst_LTLIBRARIES += libltdlc.la
|
||||
endif
|
||||
|
||||
libltdl_la_SOURCES = libltdl/lt__alloc.h \
|
||||
libltdl/lt__dirent.h \
|
||||
libltdl/lt__glibc.h \
|
||||
libltdl/lt__private.h \
|
||||
libltdl/lt__strl.h \
|
||||
libltdl/lt_dlloader.h \
|
||||
libltdl/lt_error.h \
|
||||
libltdl/lt_system.h \
|
||||
libltdl/slist.h \
|
||||
loaders/preopen.c \
|
||||
lt__alloc.c \
|
||||
lt_dlloader.c \
|
||||
lt_error.c \
|
||||
ltdl.c \
|
||||
ltdl.h \
|
||||
slist.c
|
||||
|
||||
EXTRA_DIST += lt__dirent.c \
|
||||
lt__strl.c
|
||||
|
||||
libltdl_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN) $(AM_CPPFLAGS)
|
||||
libltdl_la_LDFLAGS = $(AM_LDFLAGS) $(LTDL_VERSION_INFO) $(LT_DLPREOPEN)
|
||||
libltdl_la_LIBADD = $(LTLIBOBJS)
|
||||
libltdl_la_DEPENDENCIES = $(LT_DLLOADERS) $(LTLIBOBJS)
|
||||
|
||||
libltdlc_la_SOURCES = $(libltdl_la_SOURCES)
|
||||
libltdlc_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN)c $(AM_CPPFLAGS)
|
||||
libltdlc_la_LDFLAGS = $(AM_LDFLAGS) $(LT_DLPREOPEN)
|
||||
libltdlc_la_LIBADD = $(libltdl_la_LIBADD)
|
||||
libltdlc_la_DEPENDENCIES= $(libltdl_la_DEPENDENCIES)
|
||||
|
||||
## The loaders are preopened by libltdl, itself always built from
|
||||
## pic-objects (either as a shared library, or a convenience library),
|
||||
## so the loaders themselves must be made from pic-objects too. We
|
||||
## use convenience libraries for that purpose:
|
||||
EXTRA_LTLIBRARIES += dlopen.la \
|
||||
dld_link.la \
|
||||
dyld.la \
|
||||
load_add_on.la \
|
||||
loadlibrary.la \
|
||||
shl_load.la
|
||||
|
||||
dlopen_la_SOURCES = loaders/dlopen.c
|
||||
dlopen_la_LDFLAGS = -module -avoid-version
|
||||
dlopen_la_LIBADD = $(LIBADD_DLOPEN)
|
||||
|
||||
dld_link_la_SOURCES = loaders/dld_link.c
|
||||
dld_link_la_LDFLAGS = -module -avoid-version
|
||||
dld_link_la_LIBADD = -ldld
|
||||
|
||||
dyld_la_SOURCES = loaders/dyld.c
|
||||
dyld_la_LDFLAGS = -module -avoid-version
|
||||
|
||||
load_add_on_la_SOURCES = loaders/load_add_on.c
|
||||
load_add_on_la_LDFLAGS = -module -avoid-version
|
||||
|
||||
loadlibrary_la_SOURCES = loaders/loadlibrary.c
|
||||
loadlibrary_la_LDFLAGS = -module -avoid-version
|
||||
|
||||
shl_load_la_SOURCES = loaders/shl_load.c
|
||||
shl_load_la_LDFLAGS = -module -avoid-version
|
||||
shl_load_la_LIBADD = $(LIBADD_SHL_LOAD)
|
||||
|
||||
## Make sure these will be cleaned even when they're not built by default:
|
||||
CLEANFILES += libltdl.la \
|
||||
libltdlc.la \
|
||||
libdlloader.la
|
||||
|
||||
## Automake-1.9.6 doesn't clean subdir AC_LIBOBJ compiled objects
|
||||
## automatically:
|
||||
CLEANFILES += $(LIBOBJS) $(LTLIBOBJS)
|
||||
|
||||
EXTRA_DIST += COPYING.LIB \
|
||||
README
|
||||
|
||||
## --------------------------- ##
|
||||
## Gnulib Makefile.am snippets ##
|
||||
## --------------------------- ##
|
||||
|
||||
BUILT_SOURCES += libltdl/$(LT_ARGZ_H)
|
||||
EXTRA_DIST += libltdl/lt__argz_.h \
|
||||
lt__argz.c
|
||||
|
||||
# We need the following in order to create an <argz.h> when the system
|
||||
# doesn't have one that works with the given compiler.
|
||||
all-local $(lib_OBJECTS): $(LT_ARGZ_H)
|
||||
libltdl/lt__argz.h: libltdl/lt__argz_.h
|
||||
$(AM_V_at)$(mkinstalldirs) . libltdl
|
||||
$(AM_V_GEN)cp $(srcdir)/libltdl/lt__argz_.h $@-t
|
||||
$(AM_V_at)mv $@-t $@
|
||||
MOSTLYCLEANFILES += libltdl/lt__argz.h \
|
||||
libltdl/lt__argz.h-t
|
||||
1293
BUILD/libtool-2.4.7/libltdl/Makefile.in
Normal file
1293
BUILD/libtool-2.4.7/libltdl/Makefile.in
Normal file
File diff suppressed because it is too large
Load Diff
21
BUILD/libtool-2.4.7/libltdl/README
Normal file
21
BUILD/libtool-2.4.7/libltdl/README
Normal file
@ -0,0 +1,21 @@
|
||||
This is GNU libltdl, a system independent dlopen wrapper for GNU libtool.
|
||||
|
||||
It supports the following dlopen interfaces:
|
||||
* dlopen (POSIX)
|
||||
* shl_load (HP-UX)
|
||||
* LoadLibrary (Win16 and Win32)
|
||||
* load_add_on (BeOS)
|
||||
* GNU DLD (emulates dynamic linking for static libraries)
|
||||
* dyld (darwin/Mac OS X)
|
||||
* libtool's dlpreopen
|
||||
--
|
||||
Copyright (C) 1999, 2003, 2011-2019, 2021-2022 Free Software
|
||||
Foundation, Inc.
|
||||
Written by Thomas Tanner, 1999
|
||||
|
||||
This file is part of GNU Libtool.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. This file is offered as-is,
|
||||
without warranty of any kind.
|
||||
1139
BUILD/libtool-2.4.7/libltdl/aclocal.m4
vendored
Normal file
1139
BUILD/libtool-2.4.7/libltdl/aclocal.m4
vendored
Normal file
File diff suppressed because it is too large
Load Diff
180
BUILD/libtool-2.4.7/libltdl/config-h.in
Normal file
180
BUILD/libtool-2.4.7/libltdl/config-h.in
Normal file
@ -0,0 +1,180 @@
|
||||
/* config-h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define to 1 if you have the `argz_add' function. */
|
||||
#undef HAVE_ARGZ_ADD
|
||||
|
||||
/* Define to 1 if you have the `argz_append' function. */
|
||||
#undef HAVE_ARGZ_APPEND
|
||||
|
||||
/* Define to 1 if you have the `argz_count' function. */
|
||||
#undef HAVE_ARGZ_COUNT
|
||||
|
||||
/* Define to 1 if you have the `argz_create_sep' function. */
|
||||
#undef HAVE_ARGZ_CREATE_SEP
|
||||
|
||||
/* Define to 1 if you have the <argz.h> header file. */
|
||||
#undef HAVE_ARGZ_H
|
||||
|
||||
/* Define to 1 if you have the `argz_insert' function. */
|
||||
#undef HAVE_ARGZ_INSERT
|
||||
|
||||
/* Define to 1 if you have the `argz_next' function. */
|
||||
#undef HAVE_ARGZ_NEXT
|
||||
|
||||
/* Define to 1 if you have the `argz_stringify' function. */
|
||||
#undef HAVE_ARGZ_STRINGIFY
|
||||
|
||||
/* Define to 1 if you have the `closedir' function. */
|
||||
#undef HAVE_CLOSEDIR
|
||||
|
||||
/* Define to 1 if you have the declaration of `cygwin_conv_path', and to 0 if
|
||||
you don't. */
|
||||
#undef HAVE_DECL_CYGWIN_CONV_PATH
|
||||
|
||||
/* Define to 1 if you have the <dirent.h> header file. */
|
||||
#undef HAVE_DIRENT_H
|
||||
|
||||
/* Define if you have the GNU dld library. */
|
||||
#undef HAVE_DLD
|
||||
|
||||
/* Define to 1 if you have the <dld.h> header file. */
|
||||
#undef HAVE_DLD_H
|
||||
|
||||
/* Define to 1 if you have the `dlerror' function. */
|
||||
#undef HAVE_DLERROR
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
/* Define to 1 if you have the <dl.h> header file. */
|
||||
#undef HAVE_DL_H
|
||||
|
||||
/* Define if you have the _dyld_func_lookup function. */
|
||||
#undef HAVE_DYLD
|
||||
|
||||
/* Define to 1 if the system has the type `error_t'. */
|
||||
#undef HAVE_ERROR_T
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define if you have the libdl library or equivalent. */
|
||||
#undef HAVE_LIBDL
|
||||
|
||||
/* Define if libdlloader will be built on this platform */
|
||||
#undef HAVE_LIBDLLOADER
|
||||
|
||||
/* Define to 1 if you have the <mach-o/dyld.h> header file. */
|
||||
#undef HAVE_MACH_O_DYLD_H
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the `opendir' function. */
|
||||
#undef HAVE_OPENDIR
|
||||
|
||||
/* Define if libtool can extract symbol lists from object files. */
|
||||
#undef HAVE_PRELOADED_SYMBOLS
|
||||
|
||||
/* Define to 1 if you have the `readdir' function. */
|
||||
#undef HAVE_READDIR
|
||||
|
||||
/* Define if you have the shl_load function. */
|
||||
#undef HAVE_SHL_LOAD
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the `strlcat' function. */
|
||||
#undef HAVE_STRLCAT
|
||||
|
||||
/* Define to 1 if you have the `strlcpy' function. */
|
||||
#undef HAVE_STRLCPY
|
||||
|
||||
/* Define to 1 if you have the <sys/dl.h> header file. */
|
||||
#undef HAVE_SYS_DL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* This value is set to 1 to indicate that the system argz facility works */
|
||||
#undef HAVE_WORKING_ARGZ
|
||||
|
||||
/* Define if the OS needs help to load dependent libraries for dlopen(). */
|
||||
#undef LTDL_DLOPEN_DEPLIBS
|
||||
|
||||
/* Define to the system default library search path. */
|
||||
#undef LT_DLSEARCH_PATH
|
||||
|
||||
/* The archive extension */
|
||||
#undef LT_LIBEXT
|
||||
|
||||
/* The archive prefix */
|
||||
#undef LT_LIBPREFIX
|
||||
|
||||
/* Define to the extension used for runtime loadable modules, say, ".so". */
|
||||
#undef LT_MODULE_EXT
|
||||
|
||||
/* Define to the name of the environment variable that determines the run-time
|
||||
module search path. */
|
||||
#undef LT_MODULE_PATH_VAR
|
||||
|
||||
/* Define to the sub-directory where libtool stores uninstalled libraries. */
|
||||
#undef LT_OBJDIR
|
||||
|
||||
/* Define to the shared library suffix, say, ".dylib". */
|
||||
#undef LT_SHARED_EXT
|
||||
|
||||
/* Define to the shared archive member specification, say "(shr.o)". */
|
||||
#undef LT_SHARED_LIB_MEMBER
|
||||
|
||||
/* Define if dlsym() requires a leading underscore in symbol names. */
|
||||
#undef NEED_USCORE
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* Define so that glibc/gnulib argp.h does not typedef error_t. */
|
||||
#undef __error_t_defined
|
||||
|
||||
/* Define to a type to use for 'error_t' if it is not otherwise available. */
|
||||
#undef error_t
|
||||
15659
BUILD/libtool-2.4.7/libltdl/configure
vendored
Executable file
15659
BUILD/libtool-2.4.7/libltdl/configure
vendored
Executable file
File diff suppressed because it is too large
Load Diff
76
BUILD/libtool-2.4.7/libltdl/configure.ac
Normal file
76
BUILD/libtool-2.4.7/libltdl/configure.ac
Normal file
@ -0,0 +1,76 @@
|
||||
# Process this file with autoconf to create configure. -*- autoconf -*-
|
||||
#
|
||||
# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free
|
||||
# Software Foundation, Inc.
|
||||
# Written by Gary V. Vaughan, 2004
|
||||
#
|
||||
# NOTE: The canonical source of this file is maintained with the
|
||||
# GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
#
|
||||
# GNU Libltdl is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# As a special exception to the GNU Lesser General Public License,
|
||||
# if you distribute this file as part of a program or library that
|
||||
# is built using GNU libtool, you may include this file under the
|
||||
# same distribution terms that you use for the rest of that program.
|
||||
#
|
||||
# GNU Libltdl 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU LesserGeneral Public
|
||||
# License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
# copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
# or obtained by writing to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
####
|
||||
|
||||
# This configure.ac is not used at all by the libtool bootstrap, but
|
||||
# is copied to the ltdl subdirectory if you libtoolize --ltdl your own
|
||||
# project. Adding LT_WITH_LTDL to your project configure.ac will then
|
||||
# configure this directory if your user doesn't want to use the installed
|
||||
# libltdl.
|
||||
|
||||
AC_PREREQ(2.59)dnl We use AS_HELP_STRING
|
||||
|
||||
|
||||
## ------------------------ ##
|
||||
## Autoconf initialisation. ##
|
||||
## ------------------------ ##
|
||||
AC_INIT([libltdl], [2.4.3a], [bug-libtool@gnu.org])
|
||||
AC_CONFIG_HEADERS([config.h:config-h.in])
|
||||
AC_CONFIG_SRCDIR([ltdl.c])
|
||||
AC_CONFIG_AUX_DIR([../build-aux])
|
||||
LT_CONFIG_LTDL_DIR([.]) # I am me!
|
||||
|
||||
|
||||
## ------------------------ ##
|
||||
## Automake Initialisation. ##
|
||||
## ------------------------ ##
|
||||
|
||||
AM_INIT_AUTOMAKE([gnu subdir-objects])
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||
|
||||
|
||||
## ------------------------------- ##
|
||||
## Libtool specific configuration. ##
|
||||
## ------------------------------- ##
|
||||
pkgdatadir='$datadir'"/$PACKAGE"
|
||||
|
||||
|
||||
## ----------------------- ##
|
||||
## Libtool initialisation. ##
|
||||
## ----------------------- ##
|
||||
LT_INIT([dlopen win32-dll])
|
||||
_LTDL_SETUP
|
||||
|
||||
|
||||
## -------- ##
|
||||
## Outputs. ##
|
||||
## -------- ##
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_OUTPUT
|
||||
59
BUILD/libtool-2.4.7/libltdl/libltdl/lt__alloc.h
Normal file
59
BUILD/libtool-2.4.7/libltdl/libltdl/lt__alloc.h
Normal file
@ -0,0 +1,59 @@
|
||||
/* lt__alloc.h -- internal memory management interface
|
||||
|
||||
Copyright (C) 2004, 2011-2019, 2021-2022 Free Software Foundation,
|
||||
Inc.
|
||||
Written by Gary V. Vaughan, 2004
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined LT__ALLOC_H
|
||||
#define LT__ALLOC_H 1
|
||||
|
||||
#include "lt_system.h"
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
|
||||
#define MALLOC(tp, n) (tp*) lt__malloc((n) * sizeof(tp))
|
||||
#define REALLOC(tp, mem, n) (tp*) lt__realloc((mem), (n) * sizeof(tp))
|
||||
#define FREE(mem) LT_STMT_START { \
|
||||
free (mem); mem = NULL; } LT_STMT_END
|
||||
#define MEMREASSIGN(p, q) LT_STMT_START { \
|
||||
if ((p) != (q)) { free (p); (p) = (q); (q) = 0; } \
|
||||
} LT_STMT_END
|
||||
|
||||
/* If set, this function is called when memory allocation has failed. */
|
||||
LT_SCOPE void (*lt__alloc_die) (void);
|
||||
|
||||
LT_SCOPE void *lt__malloc (size_t n);
|
||||
LT_SCOPE void *lt__zalloc (size_t n);
|
||||
LT_SCOPE void *lt__realloc (void *mem, size_t n);
|
||||
LT_SCOPE void *lt__memdup (void const *mem, size_t n);
|
||||
|
||||
LT_SCOPE char *lt__strdup (const char *string);
|
||||
|
||||
LT_END_C_DECLS
|
||||
|
||||
#endif /*!defined LT__ALLOC_H*/
|
||||
69
BUILD/libtool-2.4.7/libltdl/libltdl/lt__argz_.h
Normal file
69
BUILD/libtool-2.4.7/libltdl/libltdl/lt__argz_.h
Normal file
@ -0,0 +1,69 @@
|
||||
/* lt__argz.h -- internal argz interface for non-glibc systems
|
||||
|
||||
Copyright (C) 2004, 2007-2008, 2011-2019, 2021-2022 Free Software
|
||||
Foundation, Inc.
|
||||
Written by Gary V. Vaughan, 2004
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined LT__ARGZ_H
|
||||
#define LT__ARGZ_H 1
|
||||
|
||||
#include <stdlib.h>
|
||||
#define __need_error_t
|
||||
#include <errno.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#if defined LTDL
|
||||
# include "lt__glibc.h"
|
||||
# include "lt_system.h"
|
||||
#else
|
||||
# define LT_SCOPE
|
||||
#endif
|
||||
|
||||
#if defined __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
LT_SCOPE error_t argz_append (char **pargz, size_t *pargz_len,
|
||||
const char *buf, size_t buf_len);
|
||||
LT_SCOPE error_t argz_create_sep(const char *str, int delim,
|
||||
char **pargz, size_t *pargz_len);
|
||||
LT_SCOPE error_t argz_insert (char **pargz, size_t *pargz_len,
|
||||
char *before, const char *entry);
|
||||
LT_SCOPE char * argz_next (char *argz, size_t argz_len,
|
||||
const char *entry);
|
||||
LT_SCOPE void argz_stringify (char *argz, size_t argz_len, int sep);
|
||||
|
||||
#if defined __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined LTDL
|
||||
# undef LT_SCOPE
|
||||
#endif
|
||||
|
||||
#endif /*!defined LT__ARGZ_H*/
|
||||
88
BUILD/libtool-2.4.7/libltdl/libltdl/lt__dirent.h
Normal file
88
BUILD/libtool-2.4.7/libltdl/libltdl/lt__dirent.h
Normal file
@ -0,0 +1,88 @@
|
||||
/* lt__dirent.h -- internal directory entry scanning interface
|
||||
|
||||
Copyright (C) 2001, 2004, 2006, 2011-2019, 2021-2022 Free Software
|
||||
Foundation, Inc.
|
||||
Written by Bob Friesenhahn, 2001
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined LT__DIRENT_H
|
||||
#define LT__DIRENT_H 1
|
||||
|
||||
#if defined LT_CONFIG_H
|
||||
# include LT_CONFIG_H
|
||||
#else
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include "lt_system.h"
|
||||
|
||||
#ifdef HAVE_DIRENT_H
|
||||
/* We have a fully operational dirent subsystem. */
|
||||
# include <dirent.h>
|
||||
# define D_NAMLEN(dirent) (strlen((dirent)->d_name))
|
||||
|
||||
#elif defined __WINDOWS__
|
||||
/* Use some wrapper code to emulate dirent on windows.. */
|
||||
# define WINDOWS_DIRENT_EMULATION 1
|
||||
|
||||
# include <windows.h>
|
||||
|
||||
# define D_NAMLEN(dirent) (strlen((dirent)->d_name))
|
||||
# define dirent lt__dirent
|
||||
# define DIR lt__DIR
|
||||
# define opendir lt__opendir
|
||||
# define readdir lt__readdir
|
||||
# define closedir lt__closedir
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
|
||||
struct dirent
|
||||
{
|
||||
char d_name[LT_FILENAME_MAX];
|
||||
int d_namlen;
|
||||
};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
HANDLE hSearch;
|
||||
WIN32_FIND_DATA Win32FindData;
|
||||
BOOL firsttime;
|
||||
struct dirent file_info;
|
||||
} DIR;
|
||||
|
||||
|
||||
LT_SCOPE DIR * opendir (const char *path);
|
||||
LT_SCOPE struct dirent *readdir (DIR *entry);
|
||||
LT_SCOPE void closedir (DIR *entry);
|
||||
|
||||
LT_END_C_DECLS
|
||||
|
||||
#else /* !defined __WINDOWS__*/
|
||||
ERROR - cannot find dirent
|
||||
#endif /*!defined __WINDOWS__*/
|
||||
|
||||
#endif /*!defined LT__DIRENT_H*/
|
||||
89
BUILD/libtool-2.4.7/libltdl/libltdl/lt__glibc.h
Normal file
89
BUILD/libtool-2.4.7/libltdl/libltdl/lt__glibc.h
Normal file
@ -0,0 +1,89 @@
|
||||
/* lt__glibc.h -- support for non glibc environments
|
||||
|
||||
Copyright (C) 2004, 2006-2007, 2011-2019, 2021-2022 Free Software
|
||||
Foundation, Inc.
|
||||
Written by Gary V. Vaughan, 2004
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined LT__GLIBC_H
|
||||
#define LT__GLIBC_H 1
|
||||
|
||||
#if defined LT_CONFIG_H
|
||||
# include LT_CONFIG_H
|
||||
#else
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#if !defined HAVE_ARGZ_H || !defined HAVE_WORKING_ARGZ
|
||||
/* Redefine any glibc symbols we reimplement to import the
|
||||
implementations into our lt__ namespace so we don't ever
|
||||
clash with the system library if our clients use argz_*
|
||||
from there in addition to libltdl. */
|
||||
# undef argz_append
|
||||
# define argz_append lt__argz_append
|
||||
# undef argz_create_sep
|
||||
# define argz_create_sep lt__argz_create_sep
|
||||
# undef argz_insert
|
||||
# define argz_insert lt__argz_insert
|
||||
# undef argz_next
|
||||
# define argz_next lt__argz_next
|
||||
# undef argz_stringify
|
||||
# define argz_stringify lt__argz_stringify
|
||||
|
||||
# include <lt__argz.h>
|
||||
|
||||
#else
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <argz.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /*!defined HAVE_ARGZ_H || !defined HAVE_WORKING_ARGZ*/
|
||||
|
||||
# define slist_concat lt__slist_concat
|
||||
# define slist_cons lt__slist_cons
|
||||
# define slist_delete lt__slist_delete
|
||||
# define slist_remove lt__slist_remove
|
||||
# define slist_reverse lt__slist_reverse
|
||||
# define slist_sort lt__slist_sort
|
||||
# define slist_tail lt__slist_tail
|
||||
# define slist_nth lt__slist_nth
|
||||
# define slist_find lt__slist_find
|
||||
# define slist_length lt__slist_length
|
||||
# define slist_foreach lt__slist_foreach
|
||||
# define slist_box lt__slist_box
|
||||
# define slist_unbox lt__slist_unbox
|
||||
|
||||
#include <slist.h>
|
||||
|
||||
#endif /*!defined LT__GLIBC_H*/
|
||||
150
BUILD/libtool-2.4.7/libltdl/libltdl/lt__private.h
Normal file
150
BUILD/libtool-2.4.7/libltdl/libltdl/lt__private.h
Normal file
@ -0,0 +1,150 @@
|
||||
/* lt__private.h -- internal apis for libltdl
|
||||
|
||||
Copyright (C) 2004-2008, 2011-2019, 2021-2022 Free Software
|
||||
Foundation, Inc.
|
||||
Written by Gary V. Vaughan, 2004
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy con be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined LT__PRIVATE_H
|
||||
#define LT__PRIVATE_H 1
|
||||
|
||||
#if defined LT_CONFIG_H
|
||||
# include LT_CONFIG_H
|
||||
#else
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
||||
#if defined HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
/* Import internal interfaces... */
|
||||
#include "lt__alloc.h"
|
||||
#include "lt__dirent.h"
|
||||
#include "lt__strl.h"
|
||||
#include "lt__glibc.h"
|
||||
|
||||
/* ...and all exported interfaces. */
|
||||
#include "ltdl.h"
|
||||
|
||||
#if defined WITH_DMALLOC
|
||||
# include <dmalloc.h>
|
||||
#endif
|
||||
|
||||
/* DLL building support on win32 hosts; mostly to workaround their
|
||||
ridiculous implementation of data symbol exporting. */
|
||||
#ifndef LT_GLOBAL_DATA
|
||||
# if defined __WINDOWS__ || defined __CYGWIN__
|
||||
# if defined DLL_EXPORT /* defined by libtool (if required) */
|
||||
# define LT_GLOBAL_DATA __declspec(dllexport)
|
||||
# endif
|
||||
# endif
|
||||
# ifndef LT_GLOBAL_DATA
|
||||
# define LT_GLOBAL_DATA /* static linking or !__WINDOWS__ */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef __attribute__
|
||||
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
|
||||
# define __attribute__(x)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef LT__UNUSED
|
||||
# define LT__UNUSED __attribute__ ((__unused__))
|
||||
#endif
|
||||
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
|
||||
#if !defined errno
|
||||
extern int errno;
|
||||
#endif
|
||||
|
||||
LT_SCOPE void lt__alloc_die_callback (void);
|
||||
|
||||
|
||||
/* For readability: */
|
||||
#define STRNEQ(s1, s2) (strcmp((s1), (s2)) != 0)
|
||||
#define STREQ(s1, s2) (strcmp((s1), (s2)) == 0)
|
||||
|
||||
|
||||
|
||||
/* --- OPAQUE STRUCTURES DECLARED IN LTDL.H --- */
|
||||
|
||||
/* This type is used for the array of interface data sets in each handler. */
|
||||
typedef struct {
|
||||
lt_dlinterface_id key;
|
||||
void * data;
|
||||
} lt_interface_data;
|
||||
|
||||
struct lt__handle {
|
||||
lt_dlhandle next;
|
||||
const lt_dlvtable * vtable; /* dlopening interface */
|
||||
lt_dlinfo info; /* user visible fields */
|
||||
int depcount; /* number of dependencies */
|
||||
lt_dlhandle * deplibs; /* dependencies */
|
||||
lt_module module; /* system module handle */
|
||||
void * system; /* system specific data */
|
||||
lt_interface_data * interface_data; /* per caller associated data */
|
||||
int flags; /* various boolean stats */
|
||||
};
|
||||
|
||||
struct lt__advise {
|
||||
unsigned int try_ext:1; /* try system library extensions. */
|
||||
unsigned int is_resident:1; /* module can't be unloaded. */
|
||||
unsigned int is_symglobal:1; /* module symbols can satisfy
|
||||
subsequently loaded modules. */
|
||||
unsigned int is_symlocal:1; /* module symbols are only available
|
||||
locally. */
|
||||
unsigned int try_preload_only:1;/* only preloaded modules will be tried. */
|
||||
};
|
||||
|
||||
/* --- ERROR HANDLING --- */
|
||||
|
||||
/* Extract the diagnostic strings from the error table macro in the same
|
||||
order as the enumerated indices in lt_error.h. */
|
||||
|
||||
#define LT__STRERROR(name) lt__error_string(LT_CONC(LT_ERROR_,name))
|
||||
|
||||
#define LT__GETERROR(lvalue) (lvalue) = lt__get_last_error()
|
||||
#define LT__SETERRORSTR(errormsg) lt__set_last_error(errormsg)
|
||||
#define LT__SETERROR(errorcode) LT__SETERRORSTR(LT__STRERROR(errorcode))
|
||||
|
||||
LT_SCOPE const char *lt__error_string (int errorcode);
|
||||
LT_SCOPE const char *lt__get_last_error (void);
|
||||
LT_SCOPE const char *lt__set_last_error (const char *errormsg);
|
||||
|
||||
LT_END_C_DECLS
|
||||
|
||||
#endif /*!defined LT__PRIVATE_H*/
|
||||
54
BUILD/libtool-2.4.7/libltdl/libltdl/lt__strl.h
Normal file
54
BUILD/libtool-2.4.7/libltdl/libltdl/lt__strl.h
Normal file
@ -0,0 +1,54 @@
|
||||
/* lt__strl.h -- size-bounded string copying and concatenation
|
||||
|
||||
Copyright (C) 2004, 2006, 2011-2019, 2021-2022 Free Software
|
||||
Foundation, Inc.
|
||||
Written by Bob Friesenhahn, 2004
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#if !defined LT__STRL_H
|
||||
#define LT__STRL_H 1
|
||||
|
||||
#if defined LT_CONFIG_H
|
||||
# include LT_CONFIG_H
|
||||
#else
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include "lt_system.h"
|
||||
|
||||
#if !defined HAVE_STRLCAT
|
||||
# define strlcat(dst,src,dstsize) lt_strlcat(dst,src,dstsize)
|
||||
LT_SCOPE size_t lt_strlcat(char *dst, const char *src, const size_t dstsize);
|
||||
#endif /* !defined HAVE_STRLCAT */
|
||||
|
||||
#if !defined HAVE_STRLCPY
|
||||
# define strlcpy(dst,src,dstsize) lt_strlcpy(dst,src,dstsize)
|
||||
LT_SCOPE size_t lt_strlcpy(char *dst, const char *src, const size_t dstsize);
|
||||
#endif /* !defined HAVE_STRLCPY */
|
||||
|
||||
#endif /*!defined LT__STRL_H*/
|
||||
91
BUILD/libtool-2.4.7/libltdl/libltdl/lt_dlloader.h
Normal file
91
BUILD/libtool-2.4.7/libltdl/libltdl/lt_dlloader.h
Normal file
@ -0,0 +1,91 @@
|
||||
/* lt_dlloader.h -- dynamic library loader interface
|
||||
|
||||
Copyright (C) 2004, 2007-2008, 2011-2019, 2021-2022 Free Software
|
||||
Foundation, Inc.
|
||||
Written by Gary V. Vaughan, 2004
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#if !defined LT_DLLOADER_H
|
||||
#define LT_DLLOADER_H 1
|
||||
|
||||
#include <libltdl/lt_system.h>
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
|
||||
typedef void * lt_dlloader;
|
||||
typedef void * lt_module;
|
||||
typedef void * lt_user_data;
|
||||
typedef struct lt__advise * lt_dladvise;
|
||||
|
||||
/* Function pointer types for module loader vtable entries: */
|
||||
typedef lt_module lt_module_open (lt_user_data data,
|
||||
const char *filename,
|
||||
lt_dladvise advise);
|
||||
typedef int lt_module_close (lt_user_data data,
|
||||
lt_module module);
|
||||
typedef void * lt_find_sym (lt_user_data data, lt_module module,
|
||||
const char *symbolname);
|
||||
typedef int lt_dlloader_init (lt_user_data data);
|
||||
typedef int lt_dlloader_exit (lt_user_data data);
|
||||
|
||||
/* Default priority is LT_DLLOADER_PREPEND if none is explicitly given. */
|
||||
typedef enum {
|
||||
LT_DLLOADER_PREPEND = 0, LT_DLLOADER_APPEND
|
||||
} lt_dlloader_priority;
|
||||
|
||||
/* This structure defines a module loader, as populated by the get_vtable
|
||||
entry point of each loader. */
|
||||
typedef struct {
|
||||
const char * name;
|
||||
const char * sym_prefix;
|
||||
lt_module_open * module_open;
|
||||
lt_module_close * module_close;
|
||||
lt_find_sym * find_sym;
|
||||
lt_dlloader_init * dlloader_init;
|
||||
lt_dlloader_exit * dlloader_exit;
|
||||
lt_user_data dlloader_data;
|
||||
lt_dlloader_priority priority;
|
||||
} lt_dlvtable;
|
||||
|
||||
LT_SCOPE int lt_dlloader_add (const lt_dlvtable *vtable);
|
||||
LT_SCOPE lt_dlloader lt_dlloader_next (const lt_dlloader loader);
|
||||
|
||||
LT_SCOPE lt_dlvtable * lt_dlloader_remove (const char *name);
|
||||
LT_SCOPE const lt_dlvtable *lt_dlloader_find (const char *name);
|
||||
LT_SCOPE const lt_dlvtable *lt_dlloader_get (lt_dlloader loader);
|
||||
|
||||
|
||||
/* Type of a function to get a loader's vtable: */
|
||||
typedef const lt_dlvtable *lt_get_vtable (lt_user_data data);
|
||||
|
||||
#ifdef LT_DEBUG_LOADERS
|
||||
LT_SCOPE void lt_dlloader_dump (void);
|
||||
#endif
|
||||
|
||||
LT_END_C_DECLS
|
||||
|
||||
#endif /*!defined LT_DLLOADER_H*/
|
||||
86
BUILD/libtool-2.4.7/libltdl/libltdl/lt_error.h
Normal file
86
BUILD/libtool-2.4.7/libltdl/libltdl/lt_error.h
Normal file
@ -0,0 +1,86 @@
|
||||
/* lt_error.h -- error propagation interface
|
||||
|
||||
Copyright (C) 1999-2001, 2004, 2007, 2011-2019, 2021-2022 Free
|
||||
Software Foundation, Inc.
|
||||
Written by Thomas Tanner, 1999
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
/* Only include this header file once. */
|
||||
#if !defined LT_ERROR_H
|
||||
#define LT_ERROR_H 1
|
||||
|
||||
#include <libltdl/lt_system.h>
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
|
||||
/* Defining error strings alongside their symbolic names in a macro in
|
||||
this way allows us to expand the macro in different contexts with
|
||||
confidence that the enumeration of symbolic names will map correctly
|
||||
onto the table of error strings. \0 is appended to the strings to
|
||||
expilicitely initialize the string terminator. */
|
||||
#define lt_dlerror_table \
|
||||
LT_ERROR(UNKNOWN, "unknown error\0") \
|
||||
LT_ERROR(DLOPEN_NOT_SUPPORTED, "dlopen support not available\0") \
|
||||
LT_ERROR(INVALID_LOADER, "invalid loader\0") \
|
||||
LT_ERROR(INIT_LOADER, "loader initialization failed\0") \
|
||||
LT_ERROR(REMOVE_LOADER, "loader removal failed\0") \
|
||||
LT_ERROR(FILE_NOT_FOUND, "file not found\0") \
|
||||
LT_ERROR(DEPLIB_NOT_FOUND, "dependency library not found\0") \
|
||||
LT_ERROR(NO_SYMBOLS, "no symbols defined\0") \
|
||||
LT_ERROR(CANNOT_OPEN, "can't open the module\0") \
|
||||
LT_ERROR(CANNOT_CLOSE, "can't close the module\0") \
|
||||
LT_ERROR(SYMBOL_NOT_FOUND, "symbol not found\0") \
|
||||
LT_ERROR(NO_MEMORY, "not enough memory\0") \
|
||||
LT_ERROR(INVALID_HANDLE, "invalid module handle\0") \
|
||||
LT_ERROR(BUFFER_OVERFLOW, "internal buffer overflow\0") \
|
||||
LT_ERROR(INVALID_ERRORCODE, "invalid errorcode\0") \
|
||||
LT_ERROR(SHUTDOWN, "library already shutdown\0") \
|
||||
LT_ERROR(CLOSE_RESIDENT_MODULE, "can't close resident module\0") \
|
||||
LT_ERROR(INVALID_MUTEX_ARGS, "internal error (code withdrawn)\0")\
|
||||
LT_ERROR(INVALID_POSITION, "invalid search path insert position\0")\
|
||||
LT_ERROR(CONFLICTING_FLAGS, "symbol visibility can be global or local\0")
|
||||
|
||||
/* Enumerate the symbolic error names. */
|
||||
enum {
|
||||
#define LT_ERROR(name, diagnostic) LT_CONC(LT_ERROR_, name),
|
||||
lt_dlerror_table
|
||||
#undef LT_ERROR
|
||||
|
||||
LT_ERROR_MAX
|
||||
};
|
||||
|
||||
/* Should be max of the error string lengths above (plus one for C++) */
|
||||
#define LT_ERROR_LEN_MAX (41)
|
||||
|
||||
/* These functions are only useful from inside custom module loaders. */
|
||||
LT_SCOPE int lt_dladderror (const char *diagnostic);
|
||||
LT_SCOPE int lt_dlseterror (int errorcode);
|
||||
|
||||
|
||||
LT_END_C_DECLS
|
||||
|
||||
#endif /*!defined LT_ERROR_H*/
|
||||
167
BUILD/libtool-2.4.7/libltdl/libltdl/lt_system.h
Normal file
167
BUILD/libtool-2.4.7/libltdl/libltdl/lt_system.h
Normal file
@ -0,0 +1,167 @@
|
||||
/* lt_system.h -- system portability abstraction layer
|
||||
|
||||
Copyright (C) 2004, 2007, 2010-2019, 2021-2022 Free Software
|
||||
Foundation, Inc.
|
||||
Written by Gary V. Vaughan, 2004
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#if !defined LT_SYSTEM_H
|
||||
#define LT_SYSTEM_H 1
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
/* Some systems do not define EXIT_*, even with STDC_HEADERS. */
|
||||
#if !defined EXIT_SUCCESS
|
||||
# define EXIT_SUCCESS 0
|
||||
#endif
|
||||
#if !defined EXIT_FAILURE
|
||||
# define EXIT_FAILURE 1
|
||||
#endif
|
||||
|
||||
/* Just pick a big number... */
|
||||
#define LT_FILENAME_MAX 2048
|
||||
|
||||
|
||||
/* Saves on those hard to debug '\0' typos.... */
|
||||
#define LT_EOS_CHAR '\0'
|
||||
|
||||
/* LTDL_BEGIN_C_DECLS should be used at the beginning of your declarations,
|
||||
so that C++ compilers don't mangle their names. Use LTDL_END_C_DECLS at
|
||||
the end of C declarations. */
|
||||
#if defined __cplusplus
|
||||
# define LT_BEGIN_C_DECLS extern "C" {
|
||||
# define LT_END_C_DECLS }
|
||||
#else
|
||||
# define LT_BEGIN_C_DECLS /* empty */
|
||||
# define LT_END_C_DECLS /* empty */
|
||||
#endif
|
||||
|
||||
/* LT_STMT_START/END are used to create macros that expand to a
|
||||
a single compound statement in a portable way. */
|
||||
#if defined __GNUC__ && !defined __STRICT_ANSI__ && !defined __cplusplus
|
||||
# define LT_STMT_START (void)(
|
||||
# define LT_STMT_END )
|
||||
#else
|
||||
# if (defined sun || defined __sun__)
|
||||
# define LT_STMT_START if (1)
|
||||
# define LT_STMT_END else (void)0
|
||||
# else
|
||||
# define LT_STMT_START do
|
||||
# define LT_STMT_END while (0)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
|
||||
#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
|
||||
/* DATA imports from DLLs on WIN32 can't be const, because runtime
|
||||
relocations are performed -- see ld's documentation on pseudo-relocs. */
|
||||
# define LT_DLSYM_CONST
|
||||
#elif defined __osf__
|
||||
/* This system does not cope well with relocations in const data. */
|
||||
# define LT_DLSYM_CONST
|
||||
#else
|
||||
# define LT_DLSYM_CONST const
|
||||
#endif
|
||||
|
||||
/* Canonicalise Windows and Cygwin recognition macros.
|
||||
To match the values set by recent Cygwin compilers, make sure that if
|
||||
__CYGWIN__ is defined (after canonicalisation), __WINDOWS__ is NOT! */
|
||||
#if defined __CYGWIN32__ && !defined __CYGWIN__
|
||||
# define __CYGWIN__ __CYGWIN32__
|
||||
#endif
|
||||
#if defined __CYGWIN__
|
||||
# if defined __WINDOWS__
|
||||
# undef __WINDOWS__
|
||||
# endif
|
||||
#elif defined _WIN32
|
||||
# define __WINDOWS__ _WIN32
|
||||
#elif defined WIN32
|
||||
# define __WINDOWS__ WIN32
|
||||
#endif
|
||||
#if defined __CYGWIN__ && defined __WINDOWS__
|
||||
# undef __WINDOWS__
|
||||
#endif
|
||||
|
||||
|
||||
/* DLL building support on win32 hosts; mostly to workaround their
|
||||
ridiculous implementation of data symbol exporting. */
|
||||
#if !defined LT_SCOPE
|
||||
# if defined __WINDOWS__ || defined __CYGWIN__
|
||||
# if defined DLL_EXPORT /* defined by libtool (if required) */
|
||||
# define LT_SCOPE extern __declspec(dllexport)
|
||||
# endif
|
||||
# if defined LIBLTDL_DLL_IMPORT /* define if linking with this dll */
|
||||
/* note: cygwin/mingw compilers can rely instead on auto-import */
|
||||
# define LT_SCOPE extern __declspec(dllimport)
|
||||
# endif
|
||||
# endif
|
||||
# if !defined LT_SCOPE /* static linking or !__WINDOWS__ */
|
||||
# define LT_SCOPE extern
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined __WINDOWS__
|
||||
/* LT_DIRSEP_CHAR is accepted *in addition* to '/' as a directory
|
||||
separator when it is set. */
|
||||
# define LT_DIRSEP_CHAR '\\'
|
||||
# define LT_PATHSEP_CHAR ';'
|
||||
#else
|
||||
# define LT_PATHSEP_CHAR ':'
|
||||
#endif
|
||||
|
||||
#if defined _MSC_VER /* Visual Studio */
|
||||
# define R_OK 4
|
||||
#endif
|
||||
|
||||
/* fopen() mode flags for reading a text file */
|
||||
#undef LT_READTEXT_MODE
|
||||
#if defined __WINDOWS__ || defined __CYGWIN__
|
||||
# define LT_READTEXT_MODE "rt"
|
||||
#else
|
||||
# define LT_READTEXT_MODE "r"
|
||||
#endif
|
||||
|
||||
/* The extra indirection to the LT__STR and LT__CONC macros is required so
|
||||
that if the arguments to LT_STR() (or LT_CONC()) are themselves macros,
|
||||
they will be expanded before being quoted. */
|
||||
#ifndef LT_STR
|
||||
# define LT__STR(arg) #arg
|
||||
# define LT_STR(arg) LT__STR(arg)
|
||||
#endif
|
||||
|
||||
#ifndef LT_CONC
|
||||
# define LT__CONC(a, b) a##b
|
||||
# define LT_CONC(a, b) LT__CONC(a, b)
|
||||
#endif
|
||||
#ifndef LT_CONC3
|
||||
# define LT__CONC3(a, b, c) a##b##c
|
||||
# define LT_CONC3(a, b, c) LT__CONC3(a, b, c)
|
||||
#endif
|
||||
|
||||
#endif /*!defined LT_SYSTEM_H*/
|
||||
97
BUILD/libtool-2.4.7/libltdl/libltdl/slist.h
Normal file
97
BUILD/libtool-2.4.7/libltdl/libltdl/slist.h
Normal file
@ -0,0 +1,97 @@
|
||||
/* slist.h -- generalised singly linked lists
|
||||
|
||||
Copyright (C) 2000, 2004, 2009, 2011-2019, 2021-2022 Free Software
|
||||
Foundation, Inc.
|
||||
Written by Gary V. Vaughan, 2000
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
/* A generalised list. This is deliberately transparent so that you
|
||||
can make the NEXT field of all your chained data structures first,
|
||||
and then cast them to '(SList *)' so that they can be manipulated
|
||||
by this API.
|
||||
|
||||
Alternatively, you can generate raw SList elements using slist_new(),
|
||||
and put the element data in the USERDATA field. Either way you
|
||||
get to manage the memory involved by yourself.
|
||||
*/
|
||||
|
||||
#if !defined SLIST_H
|
||||
#define SLIST_H 1
|
||||
|
||||
#if defined LTDL
|
||||
# include <libltdl/lt__glibc.h>
|
||||
# include <libltdl/lt_system.h>
|
||||
#else
|
||||
# define LT_SCOPE
|
||||
#endif
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#if defined __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct slist {
|
||||
struct slist *next; /* chain forward pointer*/
|
||||
const void *userdata; /* for boxed 'SList' item */
|
||||
} SList;
|
||||
|
||||
typedef void * SListCallback (SList *item, void *userdata);
|
||||
typedef int SListCompare (const SList *item1, const SList *item2,
|
||||
void *userdata);
|
||||
|
||||
LT_SCOPE SList *slist_concat (SList *head, SList *tail);
|
||||
LT_SCOPE SList *slist_cons (SList *item, SList *slist);
|
||||
|
||||
LT_SCOPE SList *slist_delete (SList *slist, void (*delete_fct) (void *item));
|
||||
LT_SCOPE SList *slist_remove (SList **phead, SListCallback *find,
|
||||
void *matchdata);
|
||||
LT_SCOPE SList *slist_reverse (SList *slist);
|
||||
LT_SCOPE SList *slist_sort (SList *slist, SListCompare *compare,
|
||||
void *userdata);
|
||||
|
||||
LT_SCOPE SList *slist_tail (SList *slist);
|
||||
LT_SCOPE SList *slist_nth (SList *slist, size_t n);
|
||||
LT_SCOPE void * slist_find (SList *slist, SListCallback *find,
|
||||
void *matchdata);
|
||||
LT_SCOPE size_t slist_length (SList *slist);
|
||||
|
||||
LT_SCOPE void * slist_foreach (SList *slist, SListCallback *foreach,
|
||||
void *userdata);
|
||||
|
||||
LT_SCOPE SList *slist_box (const void *userdata);
|
||||
LT_SCOPE void * slist_unbox (SList *item);
|
||||
|
||||
#if defined __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined LTDL
|
||||
# undef LT_SCOPE
|
||||
#endif
|
||||
|
||||
#endif /*!defined SLIST_H*/
|
||||
158
BUILD/libtool-2.4.7/libltdl/loaders/dld_link.c
Normal file
158
BUILD/libtool-2.4.7/libltdl/loaders/dld_link.c
Normal file
@ -0,0 +1,158 @@
|
||||
/* loader-dld_link.c -- dynamic linking with dld
|
||||
|
||||
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2019, 2021-2022 Free
|
||||
Software Foundation, Inc.
|
||||
Written by Thomas Tanner, 1998
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "lt__private.h"
|
||||
#include "lt_dlloader.h"
|
||||
|
||||
/* Use the preprocessor to rename non-static symbols to avoid namespace
|
||||
collisions when the loader code is statically linked into libltdl.
|
||||
Use the "<module_name>_LTX_" prefix so that the symbol addresses can
|
||||
be fetched from the preloaded symbol list by lt_dlsym(): */
|
||||
#define get_vtable dld_link_LTX_get_vtable
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data);
|
||||
LT_END_C_DECLS
|
||||
|
||||
|
||||
/* Boilerplate code to set up the vtable for hooking this loader into
|
||||
libltdl's loader list: */
|
||||
static int vl_exit (lt_user_data loader_data);
|
||||
static lt_module vm_open (lt_user_data loader_data, const char *filename,
|
||||
lt_dladvise advise);
|
||||
static int vm_close (lt_user_data loader_data, lt_module module);
|
||||
static void * vm_sym (lt_user_data loader_data, lt_module module,
|
||||
const char *symbolname);
|
||||
|
||||
static lt_dlvtable *vtable = 0;
|
||||
|
||||
/* Return the vtable for this loader, only the name and sym_prefix
|
||||
attributes (plus the virtual function implementations, obviously)
|
||||
change between loaders. */
|
||||
lt_dlvtable *
|
||||
get_vtable (lt_user_data loader_data)
|
||||
{
|
||||
if (!vtable)
|
||||
{
|
||||
vtable = lt__zalloc (sizeof *vtable);
|
||||
}
|
||||
|
||||
if (vtable && !vtable->name)
|
||||
{
|
||||
vtable->name = "lt_dld_link";
|
||||
vtable->module_open = vm_open;
|
||||
vtable->module_close = vm_close;
|
||||
vtable->find_sym = vm_sym;
|
||||
vtable->dlloader_exit = vl_exit;
|
||||
vtable->dlloader_data = loader_data;
|
||||
vtable->priority = LT_DLLOADER_APPEND;
|
||||
}
|
||||
|
||||
if (vtable && (vtable->dlloader_data != loader_data))
|
||||
{
|
||||
LT__SETERROR (INIT_LOADER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return vtable;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* --- IMPLEMENTATION --- */
|
||||
|
||||
|
||||
#if defined HAVE_DLD_H
|
||||
# include <dld.h>
|
||||
#endif
|
||||
|
||||
/* A function called through the vtable when this loader is no
|
||||
longer needed by the application. */
|
||||
static int
|
||||
vl_exit (lt_user_data loader_data LT__UNUSED)
|
||||
{
|
||||
vtable = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* A function called through the vtable to open a module with this
|
||||
loader. Returns an opaque representation of the newly opened
|
||||
module for processing with this loader's other vtable functions. */
|
||||
static lt_module
|
||||
vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
|
||||
lt_dladvise advise LT__UNUSED)
|
||||
{
|
||||
lt_module module = lt__strdup (filename);
|
||||
|
||||
if (module && dld_link (filename) != 0)
|
||||
{
|
||||
LT__SETERROR (CANNOT_OPEN);
|
||||
FREE (module);
|
||||
}
|
||||
|
||||
return module;
|
||||
}
|
||||
|
||||
/* A function called through the vtable when a particular module
|
||||
should be unloaded. */
|
||||
static int
|
||||
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module)
|
||||
{
|
||||
int errors = 0;
|
||||
|
||||
if (dld_unlink_by_file ((char*)(module), 1) != 0)
|
||||
{
|
||||
LT__SETERROR (CANNOT_CLOSE);
|
||||
++errors;
|
||||
}
|
||||
else
|
||||
{
|
||||
FREE (module);
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
/* A function called through the vtable to get the address of
|
||||
a symbol loaded from a particular module. */
|
||||
static void *
|
||||
vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module LT__UNUSED,
|
||||
const char *name)
|
||||
{
|
||||
void *address = dld_get_func (name);
|
||||
|
||||
if (!address)
|
||||
{
|
||||
LT__SETERROR (SYMBOL_NOT_FOUND);
|
||||
}
|
||||
|
||||
return address;
|
||||
}
|
||||
275
BUILD/libtool-2.4.7/libltdl/loaders/dlopen.c
Normal file
275
BUILD/libtool-2.4.7/libltdl/loaders/dlopen.c
Normal file
@ -0,0 +1,275 @@
|
||||
/* loader-dlopen.c -- dynamic linking with dlopen/dlsym
|
||||
|
||||
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2019, 2021-2022 Free
|
||||
Software Foundation, Inc.
|
||||
Written by Thomas Tanner, 1998
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "lt__private.h"
|
||||
#include "lt_dlloader.h"
|
||||
|
||||
/* Use the preprocessor to rename non-static symbols to avoid namespace
|
||||
collisions when the loader code is statically linked into libltdl.
|
||||
Use the "<module_name>_LTX_" prefix so that the symbol addresses can
|
||||
be fetched from the preloaded symbol list by lt_dlsym(): */
|
||||
#define get_vtable dlopen_LTX_get_vtable
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data);
|
||||
LT_END_C_DECLS
|
||||
|
||||
|
||||
/* Boilerplate code to set up the vtable for hooking this loader into
|
||||
libltdl's loader list: */
|
||||
static int vl_exit (lt_user_data loader_data);
|
||||
static lt_module vm_open (lt_user_data loader_data, const char *filename,
|
||||
lt_dladvise advise);
|
||||
static int vm_close (lt_user_data loader_data, lt_module module);
|
||||
static void * vm_sym (lt_user_data loader_data, lt_module module,
|
||||
const char *symbolname);
|
||||
|
||||
static lt_dlvtable *vtable = 0;
|
||||
|
||||
/* Return the vtable for this loader, only the name and sym_prefix
|
||||
attributes (plus the virtual function implementations, obviously)
|
||||
change between loaders. */
|
||||
lt_dlvtable *
|
||||
get_vtable (lt_user_data loader_data)
|
||||
{
|
||||
if (!vtable)
|
||||
{
|
||||
vtable = (lt_dlvtable *) lt__zalloc (sizeof *vtable);
|
||||
}
|
||||
|
||||
if (vtable && !vtable->name)
|
||||
{
|
||||
vtable->name = "lt_dlopen";
|
||||
#if defined DLSYM_USCORE
|
||||
vtable->sym_prefix = "_";
|
||||
#endif
|
||||
vtable->module_open = vm_open;
|
||||
vtable->module_close = vm_close;
|
||||
vtable->find_sym = vm_sym;
|
||||
vtable->dlloader_exit = vl_exit;
|
||||
vtable->dlloader_data = loader_data;
|
||||
vtable->priority = LT_DLLOADER_PREPEND;
|
||||
}
|
||||
|
||||
if (vtable && (vtable->dlloader_data != loader_data))
|
||||
{
|
||||
LT__SETERROR (INIT_LOADER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return vtable;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* --- IMPLEMENTATION --- */
|
||||
|
||||
|
||||
#if defined HAVE_DLFCN_H
|
||||
# include <dlfcn.h>
|
||||
#endif
|
||||
|
||||
#if defined HAVE_SYS_DL_H
|
||||
# include <sys/dl.h>
|
||||
#endif
|
||||
|
||||
|
||||
/* We may have to define LT_LAZY_OR_NOW in the command line if we
|
||||
find out it does not work in some platform. */
|
||||
#if !defined LT_LAZY_OR_NOW
|
||||
# if defined RTLD_LAZY
|
||||
# define LT_LAZY_OR_NOW RTLD_LAZY
|
||||
# else
|
||||
# if defined DL_LAZY
|
||||
# define LT_LAZY_OR_NOW DL_LAZY
|
||||
# endif
|
||||
# endif /* !RTLD_LAZY */
|
||||
#endif
|
||||
#if !defined LT_LAZY_OR_NOW
|
||||
# if defined RTLD_NOW
|
||||
# define LT_LAZY_OR_NOW RTLD_NOW
|
||||
# else
|
||||
# if defined DL_NOW
|
||||
# define LT_LAZY_OR_NOW DL_NOW
|
||||
# endif
|
||||
# endif /* !RTLD_NOW */
|
||||
#endif
|
||||
#if !defined LT_LAZY_OR_NOW
|
||||
# define LT_LAZY_OR_NOW 0
|
||||
#endif /* !LT_LAZY_OR_NOW */
|
||||
|
||||
/* We only support local and global symbols from modules for loaders
|
||||
that provide such a thing, otherwise the system default is used. */
|
||||
#if !defined RTLD_GLOBAL
|
||||
# if defined DL_GLOBAL
|
||||
# define RTLD_GLOBAL DL_GLOBAL
|
||||
# endif
|
||||
#endif /* !RTLD_GLOBAL */
|
||||
#if !defined RTLD_LOCAL
|
||||
# if defined DL_LOCAL
|
||||
# define RTLD_LOCAL DL_LOCAL
|
||||
# endif
|
||||
#endif /* !RTLD_LOCAL */
|
||||
|
||||
#if defined HAVE_DLERROR
|
||||
# define DLERROR(arg) dlerror ()
|
||||
#else
|
||||
# define DLERROR(arg) LT__STRERROR (arg)
|
||||
#endif
|
||||
|
||||
#define DL__SETERROR(errorcode) \
|
||||
LT__SETERRORSTR (DLERROR (errorcode))
|
||||
|
||||
|
||||
/* A function called through the vtable when this loader is no
|
||||
longer needed by the application. */
|
||||
static int
|
||||
vl_exit (lt_user_data loader_data LT__UNUSED)
|
||||
{
|
||||
vtable = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* A function called through the vtable to open a module with this
|
||||
loader. Returns an opaque representation of the newly opened
|
||||
module for processing with this loader's other vtable functions. */
|
||||
static lt_module
|
||||
vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
|
||||
lt_dladvise advise)
|
||||
{
|
||||
int module_flags = LT_LAZY_OR_NOW;
|
||||
lt_module module;
|
||||
#ifdef RTLD_MEMBER
|
||||
int len = LT_STRLEN (filename);
|
||||
#endif
|
||||
|
||||
if (advise)
|
||||
{
|
||||
#ifdef RTLD_GLOBAL
|
||||
/* If there is some means of asking for global symbol resolution,
|
||||
do so. */
|
||||
if (advise->is_symglobal)
|
||||
module_flags |= RTLD_GLOBAL;
|
||||
#else
|
||||
/* Otherwise, reset that bit so the caller can tell it wasn't
|
||||
acted on. */
|
||||
advise->is_symglobal = 0;
|
||||
#endif
|
||||
|
||||
/* And similarly for local only symbol resolution. */
|
||||
#ifdef RTLD_LOCAL
|
||||
if (advise->is_symlocal)
|
||||
module_flags |= RTLD_LOCAL;
|
||||
#else
|
||||
advise->is_symlocal = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef RTLD_MEMBER /* AIX */
|
||||
if (len >= 4) /* at least "l(m)" */
|
||||
{
|
||||
/* Advise loading an archive member only if the filename really
|
||||
contains both the opening and closing parent, and a member. */
|
||||
if (filename[len-1] == ')')
|
||||
{
|
||||
const char *opening = strrchr(filename, '(');
|
||||
if (opening && opening < (filename+len-2) && strchr(opening+1, '/') == NULL)
|
||||
module_flags |= RTLD_MEMBER;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
module = dlopen (filename, module_flags);
|
||||
|
||||
#if defined RTLD_MEMBER && defined LT_SHARED_LIB_MEMBER
|
||||
if (!module && len && !(module_flags & RTLD_MEMBER) && errno == ENOEXEC)
|
||||
{
|
||||
/* Loading without a member specified failed with "Exec format error".
|
||||
So the file is there, but either has wrong bitwidth, or is an
|
||||
archive eventually containing the default shared archive member.
|
||||
Retry with default member, getting same error in worst case. */
|
||||
const char *member = LT_SHARED_LIB_MEMBER;
|
||||
|
||||
char *attempt = MALLOC (char, len + strlen (member) + 1);
|
||||
if (!attempt)
|
||||
{
|
||||
LT__SETERROR (NO_MEMORY);
|
||||
return module;
|
||||
}
|
||||
|
||||
sprintf (attempt, "%s%s", filename, member);
|
||||
module = vm_open (loader_data, attempt, advise);
|
||||
FREE (attempt);
|
||||
return module;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!module)
|
||||
{
|
||||
DL__SETERROR (CANNOT_OPEN);
|
||||
}
|
||||
|
||||
return module;
|
||||
}
|
||||
|
||||
|
||||
/* A function called through the vtable when a particular module
|
||||
should be unloaded. */
|
||||
static int
|
||||
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module)
|
||||
{
|
||||
int errors = 0;
|
||||
|
||||
if (dlclose (module) != 0)
|
||||
{
|
||||
DL__SETERROR (CANNOT_CLOSE);
|
||||
++errors;
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
|
||||
/* A function called through the vtable to get the address of
|
||||
a symbol loaded from a particular module. */
|
||||
static void *
|
||||
vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name)
|
||||
{
|
||||
void *address = dlsym (module, name);
|
||||
|
||||
if (!address)
|
||||
{
|
||||
DL__SETERROR (SYMBOL_NOT_FOUND);
|
||||
}
|
||||
|
||||
return address;
|
||||
}
|
||||
511
BUILD/libtool-2.4.7/libltdl/loaders/dyld.c
Normal file
511
BUILD/libtool-2.4.7/libltdl/loaders/dyld.c
Normal file
@ -0,0 +1,511 @@
|
||||
/* loader-dyld.c -- dynamic linking on darwin and OS X
|
||||
|
||||
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2019, 2021-2022 Free
|
||||
Software Foundation, Inc.
|
||||
Written by Peter O'Gorman, 1998
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "lt__private.h"
|
||||
#include "lt_dlloader.h"
|
||||
|
||||
/* Use the preprocessor to rename non-static symbols to avoid namespace
|
||||
collisions when the loader code is statically linked into libltdl.
|
||||
Use the "<module_name>_LTX_" prefix so that the symbol addresses can
|
||||
be fetched from the preloaded symbol list by lt_dlsym(): */
|
||||
#define get_vtable dyld_LTX_get_vtable
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data);
|
||||
LT_END_C_DECLS
|
||||
|
||||
|
||||
/* Boilerplate code to set up the vtable for hooking this loader into
|
||||
libltdl's loader list: */
|
||||
static int vl_init (lt_user_data loader_data);
|
||||
static int vl_exit (lt_user_data loader_data);
|
||||
static lt_module vm_open (lt_user_data loader_data, const char *filename,
|
||||
lt_dladvise advise);
|
||||
static int vm_close (lt_user_data loader_data, lt_module module);
|
||||
static void * vm_sym (lt_user_data loader_data, lt_module module,
|
||||
const char *symbolname);
|
||||
|
||||
static lt_dlvtable *vtable = 0;
|
||||
|
||||
/* Return the vtable for this loader, only the name and sym_prefix
|
||||
attributes (plus the virtual function implementations, obviously)
|
||||
change between loaders. */
|
||||
lt_dlvtable *
|
||||
get_vtable (lt_user_data loader_data)
|
||||
{
|
||||
if (!vtable)
|
||||
{
|
||||
vtable = lt__zalloc (sizeof *vtable);
|
||||
}
|
||||
|
||||
if (vtable && !vtable->name)
|
||||
{
|
||||
vtable->name = "lt_dyld";
|
||||
vtable->sym_prefix = "_";
|
||||
vtable->dlloader_init = vl_init;
|
||||
vtable->module_open = vm_open;
|
||||
vtable->module_close = vm_close;
|
||||
vtable->find_sym = vm_sym;
|
||||
vtable->dlloader_exit = vl_exit;
|
||||
vtable->dlloader_data = loader_data;
|
||||
vtable->priority = LT_DLLOADER_APPEND;
|
||||
}
|
||||
|
||||
if (vtable && (vtable->dlloader_data != loader_data))
|
||||
{
|
||||
LT__SETERROR (INIT_LOADER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return vtable;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* --- IMPLEMENTATION --- */
|
||||
|
||||
|
||||
#if defined HAVE_MACH_O_DYLD_H
|
||||
# if !defined __APPLE_CC__ && !defined __MWERKS__ && !defined __private_extern__
|
||||
/* Is this correct? Does it still function properly? */
|
||||
# define __private_extern__ extern
|
||||
# endif
|
||||
# include <mach-o/dyld.h>
|
||||
#endif
|
||||
|
||||
#include <mach-o/getsect.h>
|
||||
|
||||
/* We have to put some stuff here that isn't in older dyld.h files */
|
||||
#if !defined ENUM_DYLD_BOOL
|
||||
# define ENUM_DYLD_BOOL
|
||||
# undef FALSE
|
||||
# undef TRUE
|
||||
enum DYLD_BOOL {
|
||||
FALSE,
|
||||
TRUE
|
||||
};
|
||||
#endif
|
||||
#if !defined LC_REQ_DYLD
|
||||
# define LC_REQ_DYLD 0x80000000
|
||||
#endif
|
||||
#if !defined LC_LOAD_WEAK_DYLIB
|
||||
# define LC_LOAD_WEAK_DYLIB (0x18 | LC_REQ_DYLD)
|
||||
#endif
|
||||
|
||||
#if !defined NSADDIMAGE_OPTION_NONE
|
||||
# define NSADDIMAGE_OPTION_NONE 0x0
|
||||
#endif
|
||||
#if !defined NSADDIMAGE_OPTION_RETURN_ON_ERROR
|
||||
# define NSADDIMAGE_OPTION_RETURN_ON_ERROR 0x1
|
||||
#endif
|
||||
#if !defined NSADDIMAGE_OPTION_WITH_SEARCHING
|
||||
# define NSADDIMAGE_OPTION_WITH_SEARCHING 0x2
|
||||
#endif
|
||||
#if !defined NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED
|
||||
# define NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED 0x4
|
||||
#endif
|
||||
#if !defined NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME
|
||||
# define NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME 0x8
|
||||
#endif
|
||||
|
||||
#if !defined NSLOOKUPSYMBOLINIMAGE_OPTION_BIND
|
||||
# define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND 0x0
|
||||
#endif
|
||||
#if !defined NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW
|
||||
# define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW 0x1
|
||||
#endif
|
||||
#if !defined NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY
|
||||
# define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY 0x2
|
||||
#endif
|
||||
#if !defined NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR
|
||||
# define NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR 0x4
|
||||
#endif
|
||||
|
||||
#define LT__SYMLOOKUP_OPTS (NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW \
|
||||
| NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR)
|
||||
|
||||
#if defined __BIG_ENDIAN__
|
||||
# define LT__MAGIC MH_MAGIC
|
||||
#else
|
||||
# define LT__MAGIC MH_CIGAM
|
||||
#endif
|
||||
|
||||
#define DYLD__SETMYERROR(errmsg) LT__SETERRORSTR (dylderror (errmsg))
|
||||
#define DYLD__SETERROR(errcode) DYLD__SETMYERROR (LT__STRERROR (errcode))
|
||||
|
||||
typedef struct mach_header mach_header;
|
||||
typedef struct dylib_command dylib_command;
|
||||
|
||||
static const char *dylderror (const char *errmsg);
|
||||
static const mach_header *lt__nsmodule_get_header (NSModule module);
|
||||
static const char *lt__header_get_instnam (const mach_header *mh);
|
||||
static const mach_header *lt__match_loadedlib (const char *name);
|
||||
static NSSymbol lt__linkedlib_symbol (const char *symname, const mach_header *mh);
|
||||
|
||||
static const mach_header *(*lt__addimage) (const char *image_name,
|
||||
unsigned long options) = 0;
|
||||
static NSSymbol (*lt__image_symbol) (const mach_header *image,
|
||||
const char *symbolName,
|
||||
unsigned long options) = 0;
|
||||
static enum DYLD_BOOL (*lt__image_symbol_p) (const mach_header *image,
|
||||
const char *symbolName) = 0;
|
||||
static enum DYLD_BOOL (*lt__module_export) (NSModule module) = 0;
|
||||
|
||||
static int dyld_cannot_close = 0;
|
||||
|
||||
|
||||
/* A function called through the vtable when this loader is no
|
||||
longer needed by the application. */
|
||||
static int
|
||||
vl_exit (lt_user_data loader_data LT__UNUSED)
|
||||
{
|
||||
vtable = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* A function called through the vtable to initialise this loader. */
|
||||
static int
|
||||
vl_init (lt_user_data loader_data)
|
||||
{
|
||||
int errors = 0;
|
||||
|
||||
if (! dyld_cannot_close)
|
||||
{
|
||||
if (!_dyld_present ())
|
||||
{
|
||||
++errors;
|
||||
}
|
||||
else
|
||||
{
|
||||
(void) _dyld_func_lookup ("__dyld_NSAddImage",
|
||||
(unsigned long*) <__addimage);
|
||||
(void) _dyld_func_lookup ("__dyld_NSLookupSymbolInImage",
|
||||
(unsigned long*)<__image_symbol);
|
||||
(void) _dyld_func_lookup ("__dyld_NSIsSymbolNameDefinedInImage",
|
||||
(unsigned long*) <__image_symbol_p);
|
||||
(void) _dyld_func_lookup ("__dyld_NSMakePrivateModulePublic",
|
||||
(unsigned long*) <__module_export);
|
||||
dyld_cannot_close = lt_dladderror ("can't close a dylib");
|
||||
}
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
|
||||
/* A function called through the vtable to open a module with this
|
||||
loader. Returns an opaque representation of the newly opened
|
||||
module for processing with this loader's other vtable functions. */
|
||||
static lt_module
|
||||
vm_open (lt_user_data loader_data, const char *filename,
|
||||
lt_dladvise advise LT__UNUSED)
|
||||
{
|
||||
lt_module module = 0;
|
||||
NSObjectFileImage ofi = 0;
|
||||
|
||||
if (!filename)
|
||||
{
|
||||
return (lt_module) -1;
|
||||
}
|
||||
|
||||
switch (NSCreateObjectFileImageFromFile (filename, &ofi))
|
||||
{
|
||||
case NSObjectFileImageSuccess:
|
||||
module = NSLinkModule (ofi, filename, NSLINKMODULE_OPTION_RETURN_ON_ERROR
|
||||
| NSLINKMODULE_OPTION_PRIVATE
|
||||
| NSLINKMODULE_OPTION_BINDNOW);
|
||||
NSDestroyObjectFileImage (ofi);
|
||||
|
||||
if (module)
|
||||
{
|
||||
lt__module_export (module);
|
||||
}
|
||||
break;
|
||||
|
||||
case NSObjectFileImageInappropriateFile:
|
||||
if (lt__image_symbol_p && lt__image_symbol)
|
||||
{
|
||||
module = (lt_module) lt__addimage(filename,
|
||||
NSADDIMAGE_OPTION_RETURN_ON_ERROR);
|
||||
}
|
||||
break;
|
||||
|
||||
case NSObjectFileImageFailure:
|
||||
case NSObjectFileImageArch:
|
||||
case NSObjectFileImageFormat:
|
||||
case NSObjectFileImageAccess:
|
||||
/*NOWORK*/
|
||||
break;
|
||||
}
|
||||
|
||||
if (!module)
|
||||
{
|
||||
DYLD__SETERROR (CANNOT_OPEN);
|
||||
}
|
||||
|
||||
return module;
|
||||
}
|
||||
|
||||
|
||||
/* A function called through the vtable when a particular module
|
||||
should be unloaded. */
|
||||
static int
|
||||
vm_close (lt_user_data loader_data, lt_module module)
|
||||
{
|
||||
int errors = 0;
|
||||
|
||||
if (module != (lt_module) -1)
|
||||
{
|
||||
const mach_header *mh = (const mach_header *) module;
|
||||
int flags = 0;
|
||||
if (mh->magic == LT__MAGIC)
|
||||
{
|
||||
lt_dlseterror (dyld_cannot_close);
|
||||
++errors;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Currently, if a module contains c++ static destructors and it
|
||||
is unloaded, we get a segfault in atexit(), due to compiler and
|
||||
dynamic loader differences of opinion, this works around that. */
|
||||
if ((const struct section *) NULL !=
|
||||
getsectbynamefromheader (lt__nsmodule_get_header (module),
|
||||
"__DATA", "__mod_term_func"))
|
||||
{
|
||||
flags |= NSUNLINKMODULE_OPTION_KEEP_MEMORY_MAPPED;
|
||||
}
|
||||
#if defined __ppc__
|
||||
flags |= NSUNLINKMODULE_OPTION_RESET_LAZY_REFERENCES;
|
||||
#endif
|
||||
if (!NSUnLinkModule (module, flags))
|
||||
{
|
||||
DYLD__SETERROR (CANNOT_CLOSE);
|
||||
++errors;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
/* A function called through the vtable to get the address of
|
||||
a symbol loaded from a particular module. */
|
||||
static void *
|
||||
vm_sym (lt_user_data loader_data, lt_module module, const char *name)
|
||||
{
|
||||
NSSymbol *nssym = 0;
|
||||
const mach_header *mh = (const mach_header *) module;
|
||||
char saveError[256] = "Symbol not found";
|
||||
|
||||
if (module == (lt_module) -1)
|
||||
{
|
||||
void *address, *unused;
|
||||
_dyld_lookup_and_bind (name, (unsigned long*) &address, &unused);
|
||||
return address;
|
||||
}
|
||||
|
||||
if (mh->magic == LT__MAGIC)
|
||||
{
|
||||
if (lt__image_symbol_p && lt__image_symbol)
|
||||
{
|
||||
if (lt__image_symbol_p (mh, name))
|
||||
{
|
||||
nssym = lt__image_symbol (mh, name, LT__SYMLOOKUP_OPTS);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
nssym = NSLookupSymbolInModule (module, name);
|
||||
}
|
||||
|
||||
if (!nssym)
|
||||
{
|
||||
strlcpy (saveError, dylderror (LT__STRERROR (SYMBOL_NOT_FOUND)), 255);
|
||||
saveError[255] = 0;
|
||||
if (!mh)
|
||||
{
|
||||
mh = (mach_header *)lt__nsmodule_get_header (module);
|
||||
}
|
||||
nssym = lt__linkedlib_symbol (name, mh);
|
||||
}
|
||||
|
||||
if (!nssym)
|
||||
{
|
||||
LT__SETERRORSTR (saveError);
|
||||
}
|
||||
|
||||
return nssym ? NSAddressOfSymbol (nssym) : 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* --- HELPER FUNCTIONS --- */
|
||||
|
||||
|
||||
/* Return the dyld error string, or the passed in error string if none. */
|
||||
static const char *
|
||||
dylderror (const char *errmsg)
|
||||
{
|
||||
NSLinkEditErrors ler;
|
||||
int lerno;
|
||||
const char *file;
|
||||
const char *errstr;
|
||||
|
||||
NSLinkEditError (&ler, &lerno, &file, &errstr);
|
||||
|
||||
if (! (errstr && *errstr))
|
||||
{
|
||||
errstr = errmsg;
|
||||
}
|
||||
|
||||
return errstr;
|
||||
}
|
||||
|
||||
/* There should probably be an apple dyld api for this. */
|
||||
static const mach_header *
|
||||
lt__nsmodule_get_header (NSModule module)
|
||||
{
|
||||
int i = _dyld_image_count();
|
||||
const char *modname = NSNameOfModule (module);
|
||||
const mach_header *mh = 0;
|
||||
|
||||
if (!modname)
|
||||
return NULL;
|
||||
|
||||
while (i > 0)
|
||||
{
|
||||
--i;
|
||||
if (strneq (_dyld_get_image_name (i), modname))
|
||||
{
|
||||
mh = _dyld_get_image_header (i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return mh;
|
||||
}
|
||||
|
||||
/* NSAddImage is also used to get the loaded image, but it only works if
|
||||
the lib is installed, for uninstalled libs we need to check the
|
||||
install_names against each other. Note that this is still broken if
|
||||
DYLD_IMAGE_SUFFIX is set and a different lib was loaded as a result. */
|
||||
static const char *
|
||||
lt__header_get_instnam (const mach_header *mh)
|
||||
{
|
||||
unsigned long offset = sizeof(mach_header);
|
||||
const char* result = 0;
|
||||
int j;
|
||||
|
||||
for (j = 0; j < mh->ncmds; j++)
|
||||
{
|
||||
struct load_command *lc;
|
||||
|
||||
lc = (struct load_command*) (((unsigned long) mh) + offset);
|
||||
if (LC_ID_DYLIB == lc->cmd)
|
||||
{
|
||||
result=(char*)(((dylib_command*) lc)->dylib.name.offset +
|
||||
(unsigned long) lc);
|
||||
}
|
||||
offset += lc->cmdsize;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static const mach_header *
|
||||
lt__match_loadedlib (const char *name)
|
||||
{
|
||||
const mach_header *mh = 0;
|
||||
int i = _dyld_image_count();
|
||||
|
||||
while (i > 0)
|
||||
{
|
||||
const char *id;
|
||||
|
||||
--i;
|
||||
id = lt__header_get_instnam (_dyld_get_image_header (i));
|
||||
if (id && strneq (id, name))
|
||||
{
|
||||
mh = _dyld_get_image_header (i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return mh;
|
||||
}
|
||||
|
||||
/* Safe to assume our mh is good. */
|
||||
static NSSymbol
|
||||
lt__linkedlib_symbol (const char *symname, const mach_header *mh)
|
||||
{
|
||||
NSSymbol symbol = 0;
|
||||
|
||||
if (lt__image_symbol && NSIsSymbolNameDefined (symname))
|
||||
{
|
||||
unsigned long offset = sizeof(mach_header);
|
||||
struct load_command *lc;
|
||||
int j;
|
||||
|
||||
for (j = 0; j < mh->ncmds; j++)
|
||||
{
|
||||
lc = (struct load_command*) (((unsigned long) mh) + offset);
|
||||
if ((LC_LOAD_DYLIB == lc->cmd) || (LC_LOAD_WEAK_DYLIB == lc->cmd))
|
||||
{
|
||||
unsigned long base = ((dylib_command *) lc)->dylib.name.offset;
|
||||
char *name = (char *) (base + (unsigned long) lc);
|
||||
const mach_header *mh1 = lt__match_loadedlib (name);
|
||||
|
||||
if (!mh1)
|
||||
{
|
||||
/* Maybe NSAddImage can find it */
|
||||
mh1 = lt__addimage (name,
|
||||
NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED
|
||||
| NSADDIMAGE_OPTION_WITH_SEARCHING
|
||||
| NSADDIMAGE_OPTION_RETURN_ON_ERROR);
|
||||
}
|
||||
|
||||
if (mh1)
|
||||
{
|
||||
symbol = lt__image_symbol (mh1, symname, LT__SYMLOOKUP_OPTS);
|
||||
if (symbol)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
offset += lc->cmdsize;
|
||||
}
|
||||
}
|
||||
|
||||
return symbol;
|
||||
}
|
||||
167
BUILD/libtool-2.4.7/libltdl/loaders/load_add_on.c
Normal file
167
BUILD/libtool-2.4.7/libltdl/loaders/load_add_on.c
Normal file
@ -0,0 +1,167 @@
|
||||
/* loader-load_add_on.c -- dynamic linking for BeOS
|
||||
|
||||
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2019, 2021-2022 Free
|
||||
Software Foundation, Inc.
|
||||
Written by Thomas Tanner, 1998
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "lt__private.h"
|
||||
#include "lt_dlloader.h"
|
||||
|
||||
/* Use the preprocessor to rename non-static symbols to avoid namespace
|
||||
collisions when the loader code is statically linked into libltdl.
|
||||
Use the "<module_name>_LTX_" prefix so that the symbol addresses can
|
||||
be fetched from the preloaded symbol list by lt_dlsym(): */
|
||||
#define get_vtable load_add_on_LTX_get_vtable
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data);
|
||||
LT_END_C_DECLS
|
||||
|
||||
|
||||
/* Boilerplate code to set up the vtable for hooking this loader into
|
||||
libltdl's loader list: */
|
||||
static int vl_exit (lt_user_data loader_data);
|
||||
static lt_module vm_open (lt_user_data loader_data, const char *filename,
|
||||
lt_dladvise advise);
|
||||
static int vm_close (lt_user_data loader_data, lt_module module);
|
||||
static void * vm_sym (lt_user_data loader_data, lt_module module,
|
||||
const char *symbolname);
|
||||
|
||||
static lt_dlvtable *vtable = 0;
|
||||
|
||||
/* Return the vtable for this loader, only the name and sym_prefix
|
||||
attributes (plus the virtual function implementations, obviously)
|
||||
change between loaders. */
|
||||
lt_dlvtable *
|
||||
get_vtable (lt_user_data loader_data)
|
||||
{
|
||||
if (!vtable)
|
||||
{
|
||||
vtable = lt__zalloc (sizeof *vtable);
|
||||
}
|
||||
|
||||
if (vtable && !vtable->name)
|
||||
{
|
||||
vtable->name = "lt_load_add_on";
|
||||
vtable->module_open = vm_open;
|
||||
vtable->module_close = vm_close;
|
||||
vtable->find_sym = vm_sym;
|
||||
vtable->dlloader_exit = vl_exit;
|
||||
vtable->dlloader_data = loader_data;
|
||||
vtable->priority = LT_DLLOADER_APPEND;
|
||||
}
|
||||
|
||||
if (vtable && (vtable->dlloader_data != loader_data))
|
||||
{
|
||||
LT__SETERROR (INIT_LOADER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return vtable;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* --- IMPLEMENTATION --- */
|
||||
|
||||
|
||||
#include <kernel/image.h>
|
||||
|
||||
/* A function called through the vtable when this loader is no
|
||||
longer needed by the application. */
|
||||
static int
|
||||
vl_exit (lt_user_data loader_data LT__UNUSED)
|
||||
{
|
||||
vtable = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* A function called through the vtable to open a module with this
|
||||
loader. Returns an opaque representation of the newly opened
|
||||
module for processing with this loader's other vtable functions. */
|
||||
static lt_module
|
||||
vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
|
||||
lt_dladvise advise LT__UNUSED)
|
||||
{
|
||||
image_id image = 0;
|
||||
|
||||
if (filename)
|
||||
{
|
||||
image = load_add_on (filename);
|
||||
}
|
||||
else
|
||||
{
|
||||
image_info info;
|
||||
int32 cookie = 0;
|
||||
if (get_next_image_info (0, &cookie, &info) == B_OK)
|
||||
image = load_add_on (info.name);
|
||||
}
|
||||
|
||||
if (image <= 0)
|
||||
{
|
||||
LT__SETERROR (CANNOT_OPEN);
|
||||
image = 0;
|
||||
}
|
||||
|
||||
return (lt_module) image;
|
||||
}
|
||||
|
||||
|
||||
/* A function called through the vtable when a particular module
|
||||
should be unloaded. */
|
||||
static int
|
||||
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module)
|
||||
{
|
||||
int errors = 0;
|
||||
|
||||
if (unload_add_on ((image_id) module) != B_OK)
|
||||
{
|
||||
LT__SETERROR (CANNOT_CLOSE);
|
||||
++errors;
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
|
||||
/* A function called through the vtable to get the address of
|
||||
a symbol loaded from a particular module. */
|
||||
static void *
|
||||
vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name)
|
||||
{
|
||||
void *address = 0;
|
||||
image_id image = (image_id) module;
|
||||
|
||||
if (get_image_symbol (image, name, B_SYMBOL_TYPE_ANY, address) != B_OK)
|
||||
{
|
||||
LT__SETERROR (SYMBOL_NOT_FOUND);
|
||||
address = 0;
|
||||
}
|
||||
|
||||
return address;
|
||||
}
|
||||
369
BUILD/libtool-2.4.7/libltdl/loaders/loadlibrary.c
Normal file
369
BUILD/libtool-2.4.7/libltdl/loaders/loadlibrary.c
Normal file
@ -0,0 +1,369 @@
|
||||
/* loader-loadlibrary.c -- dynamic linking for Win32
|
||||
|
||||
Copyright (C) 1998-2000, 2004-2008, 2010-2019, 2021-2022 Free
|
||||
Software Foundation, Inc.
|
||||
Written by Thomas Tanner, 1998
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "lt__private.h"
|
||||
#include "lt_dlloader.h"
|
||||
|
||||
#if defined __CYGWIN__
|
||||
# include <sys/cygwin.h>
|
||||
#endif
|
||||
|
||||
/* Use the preprocessor to rename non-static symbols to avoid namespace
|
||||
collisions when the loader code is statically linked into libltdl.
|
||||
Use the "<module_name>_LTX_" prefix so that the symbol addresses can
|
||||
be fetched from the preloaded symbol list by lt_dlsym(): */
|
||||
#define get_vtable loadlibrary_LTX_get_vtable
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data);
|
||||
LT_END_C_DECLS
|
||||
|
||||
|
||||
/* Boilerplate code to set up the vtable for hooking this loader into
|
||||
libltdl's loader list: */
|
||||
static int vl_exit (lt_user_data loader_data);
|
||||
static lt_module vm_open (lt_user_data loader_data, const char *filename,
|
||||
lt_dladvise advise);
|
||||
static int vm_close (lt_user_data loader_data, lt_module module);
|
||||
static void * vm_sym (lt_user_data loader_data, lt_module module,
|
||||
const char *symbolname);
|
||||
|
||||
static lt_dlinterface_id iface_id = 0;
|
||||
static lt_dlvtable *vtable = 0;
|
||||
|
||||
/* Return the vtable for this loader, only the name and sym_prefix
|
||||
attributes (plus the virtual function implementations, obviously)
|
||||
change between loaders. */
|
||||
lt_dlvtable *
|
||||
get_vtable (lt_user_data loader_data)
|
||||
{
|
||||
if (!vtable)
|
||||
{
|
||||
vtable = (lt_dlvtable *) lt__zalloc (sizeof *vtable);
|
||||
iface_id = lt_dlinterface_register ("ltdl loadlibrary", NULL);
|
||||
}
|
||||
|
||||
if (vtable && !vtable->name)
|
||||
{
|
||||
vtable->name = "lt_loadlibrary";
|
||||
vtable->module_open = vm_open;
|
||||
vtable->module_close = vm_close;
|
||||
vtable->find_sym = vm_sym;
|
||||
vtable->dlloader_exit = vl_exit;
|
||||
vtable->dlloader_data = loader_data;
|
||||
vtable->priority = LT_DLLOADER_APPEND;
|
||||
}
|
||||
|
||||
if (vtable && (vtable->dlloader_data != loader_data))
|
||||
{
|
||||
LT__SETERROR (INIT_LOADER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return vtable;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* --- IMPLEMENTATION --- */
|
||||
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#define LOCALFREE(mem) LT_STMT_START { \
|
||||
if (mem) { LocalFree ((void *)mem); mem = NULL; } } LT_STMT_END
|
||||
#define LOADLIB__SETERROR(errmsg) LT__SETERRORSTR (loadlibraryerror (errmsg))
|
||||
#define LOADLIB_SETERROR(errcode) LOADLIB__SETERROR (LT__STRERROR (errcode))
|
||||
|
||||
static const char *loadlibraryerror (const char *default_errmsg);
|
||||
static DWORD WINAPI wrap_getthreaderrormode (void);
|
||||
static DWORD WINAPI fallback_getthreaderrormode (void);
|
||||
static BOOL WINAPI wrap_setthreaderrormode (DWORD mode, DWORD *oldmode);
|
||||
static BOOL WINAPI fallback_setthreaderrormode (DWORD mode, DWORD *oldmode);
|
||||
|
||||
typedef DWORD (WINAPI getthreaderrormode_type) (void);
|
||||
typedef BOOL (WINAPI setthreaderrormode_type) (DWORD, DWORD *);
|
||||
|
||||
static getthreaderrormode_type *getthreaderrormode = wrap_getthreaderrormode;
|
||||
static setthreaderrormode_type *setthreaderrormode = wrap_setthreaderrormode;
|
||||
static char *error_message = 0;
|
||||
|
||||
|
||||
/* A function called through the vtable when this loader is no
|
||||
longer needed by the application. */
|
||||
static int
|
||||
vl_exit (lt_user_data loader_data LT__UNUSED)
|
||||
{
|
||||
vtable = NULL;
|
||||
LOCALFREE (error_message);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* A function called through the vtable to open a module with this
|
||||
loader. Returns an opaque representation of the newly opened
|
||||
module for processing with this loader's other vtable functions. */
|
||||
static lt_module
|
||||
vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
|
||||
lt_dladvise advise LT__UNUSED)
|
||||
{
|
||||
lt_module module = 0;
|
||||
char *ext;
|
||||
char wpath[MAX_PATH];
|
||||
size_t len;
|
||||
|
||||
if (!filename)
|
||||
{
|
||||
/* Get the name of main module */
|
||||
*wpath = 0;
|
||||
GetModuleFileName (NULL, wpath, sizeof (wpath));
|
||||
filename = wpath;
|
||||
}
|
||||
else
|
||||
{
|
||||
len = LT_STRLEN (filename);
|
||||
|
||||
if (len >= MAX_PATH)
|
||||
{
|
||||
LT__SETERROR (CANNOT_OPEN);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if HAVE_DECL_CYGWIN_CONV_PATH
|
||||
if (cygwin_conv_path (CCP_POSIX_TO_WIN_A, filename, wpath, MAX_PATH))
|
||||
{
|
||||
LT__SETERROR (CANNOT_OPEN);
|
||||
return 0;
|
||||
}
|
||||
len = 0;
|
||||
#elif defined __CYGWIN__
|
||||
cygwin_conv_to_full_win32_path (filename, wpath);
|
||||
len = 0;
|
||||
#else
|
||||
strcpy(wpath, filename);
|
||||
#endif
|
||||
|
||||
ext = strrchr (wpath, '.');
|
||||
if (!ext)
|
||||
{
|
||||
/* Append a '.' to stop Windows from adding an
|
||||
implicit '.dll' extension. */
|
||||
if (!len)
|
||||
len = strlen (wpath);
|
||||
|
||||
if (len + 1 >= MAX_PATH)
|
||||
{
|
||||
LT__SETERROR (CANNOT_OPEN);
|
||||
return 0;
|
||||
}
|
||||
|
||||
wpath[len] = '.';
|
||||
wpath[len+1] = '\0';
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
/* Silence dialog from LoadLibrary on some failures. */
|
||||
DWORD errormode = getthreaderrormode ();
|
||||
DWORD last_error;
|
||||
|
||||
setthreaderrormode (errormode | SEM_FAILCRITICALERRORS, NULL);
|
||||
|
||||
module = LoadLibrary (wpath);
|
||||
|
||||
/* Restore the error mode. */
|
||||
last_error = GetLastError ();
|
||||
setthreaderrormode (errormode, NULL);
|
||||
SetLastError (last_error);
|
||||
}
|
||||
|
||||
/* libltdl expects this function to fail if it is unable
|
||||
to physically load the library. Sadly, LoadLibrary
|
||||
will search the loaded libraries for a match and return
|
||||
one of them if the path search load fails.
|
||||
|
||||
We check whether LoadLibrary is returning a handle to
|
||||
an already loaded module, and simulate failure if we
|
||||
find one. */
|
||||
{
|
||||
lt_dlhandle cur = 0;
|
||||
|
||||
while ((cur = lt_dlhandle_iterate (iface_id, cur)))
|
||||
{
|
||||
if (!cur->module)
|
||||
{
|
||||
cur = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
if (cur->module == module)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!module)
|
||||
LOADLIB_SETERROR (CANNOT_OPEN);
|
||||
else if (cur)
|
||||
{
|
||||
LT__SETERROR (CANNOT_OPEN);
|
||||
module = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return module;
|
||||
}
|
||||
|
||||
|
||||
/* A function called through the vtable when a particular module
|
||||
should be unloaded. */
|
||||
static int
|
||||
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module)
|
||||
{
|
||||
int errors = 0;
|
||||
|
||||
if (FreeLibrary ((HMODULE) module) == 0)
|
||||
{
|
||||
LOADLIB_SETERROR (CANNOT_CLOSE);
|
||||
++errors;
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
|
||||
/* A function called through the vtable to get the address of
|
||||
a symbol loaded from a particular module. */
|
||||
static void *
|
||||
vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name)
|
||||
{
|
||||
void *address = (void *) GetProcAddress ((HMODULE) module, name);
|
||||
|
||||
if (!address)
|
||||
{
|
||||
LOADLIB_SETERROR (SYMBOL_NOT_FOUND);
|
||||
}
|
||||
|
||||
return address;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* --- HELPER FUNCTIONS --- */
|
||||
|
||||
|
||||
/* Return the windows error message, or the passed in error message on
|
||||
failure. */
|
||||
static const char *
|
||||
loadlibraryerror (const char *default_errmsg)
|
||||
{
|
||||
size_t len;
|
||||
LOCALFREE (error_message);
|
||||
|
||||
FormatMessageA (FORMAT_MESSAGE_ALLOCATE_BUFFER |
|
||||
FORMAT_MESSAGE_FROM_SYSTEM |
|
||||
FORMAT_MESSAGE_IGNORE_INSERTS,
|
||||
NULL,
|
||||
GetLastError (),
|
||||
0,
|
||||
(char *) &error_message,
|
||||
0, NULL);
|
||||
|
||||
/* Remove trailing CRNL */
|
||||
len = LT_STRLEN (error_message);
|
||||
if (len && error_message[len - 1] == '\n')
|
||||
error_message[--len] = LT_EOS_CHAR;
|
||||
if (len && error_message[len - 1] == '\r')
|
||||
error_message[--len] = LT_EOS_CHAR;
|
||||
|
||||
return len ? error_message : default_errmsg;
|
||||
}
|
||||
|
||||
/* A function called through the getthreaderrormode variable that checks
|
||||
if the system supports GetThreadErrorMode (or GetErrorMode) and arranges
|
||||
for it or a fallback implementation to be called directly in the future.
|
||||
The selected version is then called. */
|
||||
static DWORD WINAPI
|
||||
wrap_getthreaderrormode (void)
|
||||
{
|
||||
HMODULE kernel32 = GetModuleHandleA ("kernel32.dll");
|
||||
getthreaderrormode
|
||||
= (getthreaderrormode_type *) GetProcAddress (kernel32,
|
||||
"GetThreadErrorMode");
|
||||
if (!getthreaderrormode)
|
||||
getthreaderrormode
|
||||
= (getthreaderrormode_type *) GetProcAddress (kernel32,
|
||||
"GetErrorMode");
|
||||
if (!getthreaderrormode)
|
||||
getthreaderrormode = fallback_getthreaderrormode;
|
||||
return getthreaderrormode ();
|
||||
}
|
||||
|
||||
/* A function called through the getthreaderrormode variable for cases
|
||||
where the system does not support GetThreadErrorMode or GetErrorMode */
|
||||
static DWORD WINAPI
|
||||
fallback_getthreaderrormode (void)
|
||||
{
|
||||
/* Prior to Windows Vista, the only way to get the current error
|
||||
mode was to set a new one. In our case, we are setting a new
|
||||
error mode right after "getting" it while ignoring the error
|
||||
mode in effect when setting the new error mode, so that's
|
||||
fairly ok. */
|
||||
return (DWORD) SetErrorMode (SEM_FAILCRITICALERRORS);
|
||||
}
|
||||
|
||||
/* A function called through the setthreaderrormode variable that checks
|
||||
if the system supports SetThreadErrorMode and arranges for it or a
|
||||
fallback implementation to be called directly in the future.
|
||||
The selected version is then called. */
|
||||
static BOOL WINAPI
|
||||
wrap_setthreaderrormode (DWORD mode, DWORD *oldmode)
|
||||
{
|
||||
HMODULE kernel32 = GetModuleHandleA ("kernel32.dll");
|
||||
setthreaderrormode
|
||||
= (setthreaderrormode_type *) GetProcAddress (kernel32,
|
||||
"SetThreadErrorMode");
|
||||
if (!setthreaderrormode)
|
||||
setthreaderrormode = fallback_setthreaderrormode;
|
||||
return setthreaderrormode (mode, oldmode);
|
||||
}
|
||||
|
||||
/* A function called through the setthreaderrormode variable for cases
|
||||
where the system does not support SetThreadErrorMode. */
|
||||
static BOOL WINAPI
|
||||
fallback_setthreaderrormode (DWORD mode, DWORD *oldmode)
|
||||
{
|
||||
/* Prior to Windows 7, there was no way to set the thread local error
|
||||
mode, so set the process global error mode instead. */
|
||||
DWORD old = (DWORD) SetErrorMode (mode);
|
||||
if (oldmode)
|
||||
*oldmode = old;
|
||||
return TRUE;
|
||||
}
|
||||
387
BUILD/libtool-2.4.7/libltdl/loaders/preopen.c
Normal file
387
BUILD/libtool-2.4.7/libltdl/loaders/preopen.c
Normal file
@ -0,0 +1,387 @@
|
||||
/* loader-preopen.c -- emulate dynamic linking using preloaded_symbols
|
||||
|
||||
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2019, 2021-2022 Free
|
||||
Software Foundation, Inc.
|
||||
Written by Thomas Tanner, 1998
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
As a special exception to the GNU Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "lt__private.h"
|
||||
#include "lt_dlloader.h"
|
||||
|
||||
/* Use the preprocessor to rename non-static symbols to avoid namespace
|
||||
collisions when the loader code is statically linked into libltdl.
|
||||
Use the "<module_name>_LTX_" prefix so that the symbol addresses can
|
||||
be fetched from the preloaded symbol list by lt_dlsym(): */
|
||||
#define get_vtable preopen_LTX_get_vtable
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data);
|
||||
LT_END_C_DECLS
|
||||
|
||||
|
||||
/* Boilerplate code to set up the vtable for hooking this loader into
|
||||
libltdl's loader list: */
|
||||
static int vl_init (lt_user_data loader_data);
|
||||
static int vl_exit (lt_user_data loader_data);
|
||||
static lt_module vm_open (lt_user_data loader_data, const char *filename,
|
||||
lt_dladvise advise);
|
||||
static int vm_close (lt_user_data loader_data, lt_module module);
|
||||
static void * vm_sym (lt_user_data loader_data, lt_module module,
|
||||
const char *symbolname);
|
||||
|
||||
static lt_dlvtable *vtable = 0;
|
||||
|
||||
/* Return the vtable for this loader, only the name and sym_prefix
|
||||
attributes (plus the virtual function implementations, obviously)
|
||||
change between loaders. */
|
||||
lt_dlvtable *
|
||||
get_vtable (lt_user_data loader_data)
|
||||
{
|
||||
if (!vtable)
|
||||
{
|
||||
vtable = (lt_dlvtable *) lt__zalloc (sizeof *vtable);
|
||||
}
|
||||
|
||||
if (vtable && !vtable->name)
|
||||
{
|
||||
vtable->name = "lt_preopen";
|
||||
vtable->sym_prefix = 0;
|
||||
vtable->module_open = vm_open;
|
||||
vtable->module_close = vm_close;
|
||||
vtable->find_sym = vm_sym;
|
||||
vtable->dlloader_init = vl_init;
|
||||
vtable->dlloader_exit = vl_exit;
|
||||
vtable->dlloader_data = loader_data;
|
||||
vtable->priority = LT_DLLOADER_PREPEND;
|
||||
}
|
||||
|
||||
if (vtable && (vtable->dlloader_data != loader_data))
|
||||
{
|
||||
LT__SETERROR (INIT_LOADER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return vtable;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* --- IMPLEMENTATION --- */
|
||||
|
||||
|
||||
/* Wrapper type to chain together symbol lists of various origins. */
|
||||
typedef struct symlist_chain
|
||||
{
|
||||
struct symlist_chain *next;
|
||||
const lt_dlsymlist *symlist;
|
||||
} symlist_chain;
|
||||
|
||||
|
||||
static int add_symlist (const lt_dlsymlist *symlist);
|
||||
static int free_symlists (void);
|
||||
|
||||
/* The start of the symbol lists chain. */
|
||||
static symlist_chain *preloaded_symlists = 0;
|
||||
|
||||
/* A symbol list preloaded before lt_init() was called. */
|
||||
static const lt_dlsymlist *default_preloaded_symbols = 0;
|
||||
|
||||
|
||||
/* A function called through the vtable to initialise this loader. */
|
||||
static int
|
||||
vl_init (lt_user_data loader_data LT__UNUSED)
|
||||
{
|
||||
int errors = 0;
|
||||
|
||||
preloaded_symlists = 0;
|
||||
if (default_preloaded_symbols)
|
||||
{
|
||||
errors = lt_dlpreload (default_preloaded_symbols);
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
|
||||
/* A function called through the vtable when this loader is no
|
||||
longer needed by the application. */
|
||||
static int
|
||||
vl_exit (lt_user_data loader_data LT__UNUSED)
|
||||
{
|
||||
vtable = NULL;
|
||||
free_symlists ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* A function called through the vtable to open a module with this
|
||||
loader. Returns an opaque representation of the newly opened
|
||||
module for processing with this loader's other vtable functions. */
|
||||
static lt_module
|
||||
vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
|
||||
lt_dladvise advise LT__UNUSED)
|
||||
{
|
||||
symlist_chain *lists;
|
||||
lt_module module = 0;
|
||||
|
||||
if (!preloaded_symlists)
|
||||
{
|
||||
LT__SETERROR (NO_SYMBOLS);
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Can't use NULL as the reflective symbol header, as NULL is
|
||||
used to mark the end of the entire symbol list. Self-dlpreopened
|
||||
symbols follow this magic number, chosen to be an unlikely
|
||||
clash with a real module name. */
|
||||
if (!filename)
|
||||
{
|
||||
filename = "@PROGRAM@";
|
||||
}
|
||||
|
||||
for (lists = preloaded_symlists; lists; lists = lists->next)
|
||||
{
|
||||
const lt_dlsymlist *symbol;
|
||||
for (symbol= lists->symlist; symbol->name; ++symbol)
|
||||
{
|
||||
if (!symbol->address && STREQ (symbol->name, filename))
|
||||
{
|
||||
/* If the next symbol's name and address is 0, it means
|
||||
the module just contains the originator and no symbols.
|
||||
In this case we pretend that we never saw the module and
|
||||
hope that some other loader will be able to load the module
|
||||
and have access to its symbols */
|
||||
const lt_dlsymlist *next_symbol = symbol +1;
|
||||
if (next_symbol->address && next_symbol->name)
|
||||
{
|
||||
module = (lt_module) lists->symlist;
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LT__SETERROR (FILE_NOT_FOUND);
|
||||
|
||||
done:
|
||||
return module;
|
||||
}
|
||||
|
||||
|
||||
/* A function called through the vtable when a particular module
|
||||
should be unloaded. */
|
||||
static int
|
||||
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module LT__UNUSED)
|
||||
{
|
||||
/* Just to silence gcc -Wall */
|
||||
module = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* A function called through the vtable to get the address of
|
||||
a symbol loaded from a particular module. */
|
||||
static void *
|
||||
vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name)
|
||||
{
|
||||
lt_dlsymlist *symbol = (lt_dlsymlist*) module;
|
||||
|
||||
if (symbol[1].name && STREQ (symbol[1].name, "@INIT@"))
|
||||
{
|
||||
symbol++; /* Skip optional init entry. */
|
||||
}
|
||||
|
||||
symbol +=2; /* Skip header (originator then libname). */
|
||||
|
||||
while (symbol->name)
|
||||
{
|
||||
if (STREQ (symbol->name, name))
|
||||
{
|
||||
return symbol->address;
|
||||
}
|
||||
|
||||
++symbol;
|
||||
}
|
||||
|
||||
LT__SETERROR (SYMBOL_NOT_FOUND);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* --- HELPER FUNCTIONS --- */
|
||||
|
||||
|
||||
/* The symbol lists themselves are not allocated from the heap, but
|
||||
we can unhook them and free up the chain of links between them. */
|
||||
static int
|
||||
free_symlists (void)
|
||||
{
|
||||
symlist_chain *lists;
|
||||
|
||||
lists = preloaded_symlists;
|
||||
while (lists)
|
||||
{
|
||||
symlist_chain *next = lists->next;
|
||||
FREE (lists);
|
||||
lists = next;
|
||||
}
|
||||
preloaded_symlists = 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Add a new symbol list to the global chain. */
|
||||
static int
|
||||
add_symlist (const lt_dlsymlist *symlist)
|
||||
{
|
||||
symlist_chain *lists;
|
||||
int errors = 0;
|
||||
|
||||
/* Search for duplicate entries: */
|
||||
for (lists = preloaded_symlists;
|
||||
lists && lists->symlist != symlist; lists = lists->next)
|
||||
/*NOWORK*/;
|
||||
|
||||
/* Don't add the same list twice: */
|
||||
if (!lists)
|
||||
{
|
||||
symlist_chain *tmp = (symlist_chain *) lt__zalloc (sizeof *tmp);
|
||||
|
||||
if (tmp)
|
||||
{
|
||||
tmp->symlist = symlist;
|
||||
tmp->next = preloaded_symlists;
|
||||
preloaded_symlists = tmp;
|
||||
|
||||
if (symlist[1].name && STREQ (symlist[1].name, "@INIT@"))
|
||||
{
|
||||
void (*init_symlist)(void);
|
||||
*(void **)(&init_symlist) = symlist[1].address;
|
||||
(*init_symlist)();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
++errors;
|
||||
}
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* --- PRELOADING API CALL IMPLEMENTATIONS --- */
|
||||
|
||||
|
||||
/* Save a default symbol list for later. */
|
||||
int
|
||||
lt_dlpreload_default (const lt_dlsymlist *preloaded)
|
||||
{
|
||||
default_preloaded_symbols = preloaded;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* Add a symbol list to the global chain, or with a NULL argument,
|
||||
revert to just the default list. */
|
||||
int
|
||||
lt_dlpreload (const lt_dlsymlist *preloaded)
|
||||
{
|
||||
int errors = 0;
|
||||
|
||||
if (preloaded)
|
||||
{
|
||||
errors = add_symlist (preloaded);
|
||||
}
|
||||
else
|
||||
{
|
||||
free_symlists();
|
||||
|
||||
if (default_preloaded_symbols)
|
||||
{
|
||||
errors = lt_dlpreload (default_preloaded_symbols);
|
||||
}
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
|
||||
/* Open all the preloaded modules from the named originator, executing
|
||||
a callback for each one. If ORIGINATOR is NULL, then call FUNC for
|
||||
each preloaded module from the program itself. */
|
||||
int
|
||||
lt_dlpreload_open (const char *originator, lt_dlpreload_callback_func *func)
|
||||
{
|
||||
symlist_chain *list;
|
||||
int errors = 0;
|
||||
int found = 0;
|
||||
|
||||
/* For each symlist in the chain... */
|
||||
for (list = preloaded_symlists; list; list = list->next)
|
||||
{
|
||||
/* ...that was preloaded by the requesting ORIGINATOR... */
|
||||
if ((originator && STREQ (list->symlist->name, originator))
|
||||
|| (!originator && STREQ (list->symlist->name, "@PROGRAM@")))
|
||||
{
|
||||
const lt_dlsymlist *symbol;
|
||||
unsigned int idx = 0;
|
||||
|
||||
++found;
|
||||
|
||||
/* ...load the symbols per source compilation unit:
|
||||
(we preincrement the index to skip over the originator entry) */
|
||||
while ((symbol = &list->symlist[++idx])->name != 0)
|
||||
{
|
||||
if ((symbol->address == 0)
|
||||
&& (STRNEQ (symbol->name, "@PROGRAM@")))
|
||||
{
|
||||
lt_dlhandle handle = lt_dlopen (symbol->name);
|
||||
if (handle == 0)
|
||||
{
|
||||
++errors;
|
||||
}
|
||||
else
|
||||
{
|
||||
errors += (*func) (handle);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!found)
|
||||
{
|
||||
LT__SETERROR(CANNOT_OPEN);
|
||||
++errors;
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user