This is a follow up / rediff to my previous patch at http://gcc.gnu.org/ml/fortran/2010-11/msg00339.html, incorporating the comments by Ralf and Matthias.

Changes:
- Parts of the patch have been committed separately
- Removed licence text from .texi file following the suggestion of Matthias - which is in line with http://www.gnu.org/prep/maintain/html_node/License-Notices-for-Documentation.html - Added LICENCES which lists the other licences which apply to the code (as suggested by Matthias, trying to follow GLIBC) - Minor changes: uses AC_ARG_ENABLE, tailing white space removed, uses @need 800 (all suggested by Ralf); add one-line description to the math functions

Build on x86-64-linux.
OK for the trunk?

Tobias
2010-11-30  Tobias Burnus  <bur...@net-b.de>

	PR fortran/46543
	* LICENCES: Add.
	* configure.ac: Add texinfo checks.
	* Makefile.am: Handle .texi documentation.
	* libquadmath.texi: New.
	* configure: Regenerated.
	* Makefile.in: Regenerated.

Index: configure.ac
===================================================================
--- configure.ac	(Revision 167307)
+++ configure.ac	(Arbeitskopie)
@@ -41,6 +41,14 @@
 
 GCC_NO_EXECUTABLES
 
+# See if makeinfo has been installed and is modern enough
+# that we can use it.
+ACX_CHECK_PROG_VER([MAKEINFO], [makeinfo], [--version],
+                   [GNU texinfo.* \([0-9][0-9.]*\)],
+                   [4.[4-9]*|4.[1-9][0-9]*|[5-9]*|[1-9][0-9]*])
+AM_CONDITIONAL(BUILD_INFO, test $gcc_cv_prog_makeinfo_modern = "yes")
+
+
 # Configure libtool
 AM_PROG_LIBTOOL
 AC_SUBST(enable_shared)
@@ -186,5 +194,20 @@
   multilib_arg=
 fi
 
+
+# We would like our source tree to be readonly. However when releases or
+# pre-releases are generated, the flex/bison generated files as well as the
+# various formats of manuals need to be included along with the rest of the
+# sources.  Therefore we have --enable-generated-files-in-srcdir to do 
+# just that.
+AC_MSG_CHECKING([for --enable-generated-files-in-srcdir])
+AC_ARG_ENABLE(generated-files-in-srcdir, no, ,
+   [put copies of generated files in source dir intended for creating source 
+    tarballs for users without texinfo bison or flex.],
+   permit yes|no)
+AC_MSG_RESULT($enable_generated_files_in_srcdir)
+AM_CONDITIONAL(GENINSRC, test "$enable_generated_files_in_srcdir" = yes)
+
+
 AC_CONFIG_FILES(Makefile)
 AC_OUTPUT
Index: Makefile.am
===================================================================
--- Makefile.am	(Revision 167307)
+++ Makefile.am	(Arbeitskopie)
@@ -105,4 +105,46 @@
 
 MAKEOVERRIDES=
 
+# AM_CONDITIONAL on configure option --generated-files-in-srcdir
+if GENINSRC
+STAMP_GENINSRC = stamp-geninsrc
+else
+STAMP_GENINSRC =
 endif
+
+# AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO])
+if BUILD_INFO
+STAMP_BUILD_INFO = stamp-build-info
+else
+STAMP_BUILD_INFO =
+endif
+
+
+all-local: $(STAMP_GENINSRC)
+
+stamp-geninsrc: libquadmath.info
+	cp -p $(top_builddir)/libquadmath.info $(srcdir)/libquadmath.info
+	@touch $@
+
+libquadmath.info: $(STAMP_BUILD_INFO)
+
+stamp-build-info: libquadmath.texi
+	$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libquadmath.info $(srcdir)/libquadmath.texi
+	@touch $@
+
+CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libquadmath.info
+MAINTAINERCLEANFILES = $(srcdir)/libquadmath.info
+
+endif
+
+
+# Automake Documentation:
+# If your package has Texinfo files in many directories, you can use the
+# variable TEXINFO_TEX to tell Automake where to find the canonical
+# `texinfo.tex' for your package. The value of this variable should be
+# the relative path from the current `Makefile.am' to `texinfo.tex'.
+TEXINFO_TEX   = ../gcc/doc/include/texinfo.tex
+
+# Defines info, dvi, pdf and html targets
+MAKEINFOFLAGS = -I $(srcdir)/../gcc/doc/include
+info_TEXINFOS = libquadmath.texi
Index: LICENCES
===================================================================
--- LICENCES	(Revision 0)
+++ LICENCES	(Revision 0)
@@ -0,0 +1,69 @@
+This file contains the copying permission notices for various files in the
+GCC Quad-Precision Math Library distribution that have copyright owners other
+than the Free Software Foundation.  These notices all require that a copy of
+the notice be included in the accompanying documentation and be distributed with
+binary distributions of the code, so be sure to include this file along
+with any binary distributions derived from the GCC Quad-Precision Math Library.
+
+
+The code incorporated from gdtoa is distributed under the following
+license:
+
+The author of this software is David M. Gay.
+
+Copyright (C) 1998-2001 by Lucent Technologies
+All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and
+its documentation for any purpose and without fee is hereby
+granted, provided that the above copyright notice appear in all
+copies and that both that the copyright notice and this
+permission notice and warranty disclaimer appear in supporting
+documentation, and that the name of Lucent or any of its entities
+not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.
+
+LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
+IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY
+SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
+IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
+
+
+Part of the code in math directory is distributed under the
+following license:
+
+ Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+
+ Developed at SunPro, a Sun Microsystems, Inc. business.
+ Permission to use, copy, modify, and distribute this
+ software is freely granted, provided that this notice
+ is preserved.
+
+
+Some code has the additional restriction:
+
+   __float128 expansions are
+   Copyright (C) 2001 Stephen L. Moshier <mosh...@na-net.ornl.gov>
+   and are incorporated herein by permission of the author.  The author
+   reserves the right to distribute this material elsewhere under different
+   copying permissions.  These modifications are distributed here under
+   the following terms:
+
+    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., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA */
Index: libquadmath.texi
===================================================================
--- libquadmath.texi	(Revision 0)
+++ libquadmath.texi	(Revision 0)
@@ -0,0 +1,271 @@
+\input texinfo @c -*-texinfo-*-
+
+...@c %**start of header
+...@setfilename libquadmath.info
+...@settitle GNU libquadmath
+...@c %**end of header
+
+...@copying
+Copyright @copyright{} 2011 Free Software Foundation, Inc.
+...@end copying
+
+...@ifinfo
+...@dircategory GNU Libraries
+...@direntry
+* libquadmath: (libquadmath).                  GCC Quad-Precision Math Library
+...@end direntry
+
+This manual documents the GCC Quad-Precision Math Library API.
+
+Published by the Free Software Foundation
+51 Franklin Street, Fifth Floor
+Boston, MA 02110-1301 USA
+
+...@insertcopying
+...@end ifinfo
+
+
+...@setchapternewpage odd
+
+...@titlepage
+...@title The GCC Quad-Precision Math Library
+...@page
+...@vskip 0pt plus 1filll
+...@comment For the @value{version-GCC} Version*
+...@sp 1
+Published by the Free Software Foundation @*
+51 Franklin Street, Fifth fl...@*
+Boston, MA 02110-1301, u...@*
+...@sp 1
+...@insertcopying
+...@end titlepage
+
+...@summarycontents
+...@contents
+...@page
+
+
+...@node Top
+...@top Introduction
+...@cindex Introduction
+
+This manual documents the usage of libquadmath, the GNU Quad-Precision
+Math Library Application Programming Interface (API).
+
+
+...@comment
+...@comment  When you add a new menu item, please keep the right hand
+...@comment  aligned to the same column.  Do not use tabs.  This provides
+...@comment  better formatting.
+...@comment
+...@menu
+* Math Library Routines::      The Libquadmath math runtime application
+                               programming interface.
+* I/O Library Routines::       The Libquadmath I/O runtime application
+                               programming interface.
+* Reporting Bugs::             How to report bugs in GNU Libquadmath.
+...@c * Index::                      Index of this documentation.
+...@end menu
+
+
+...@c ---------------------------------------------------------------------
+...@c Math routines
+...@c ---------------------------------------------------------------------
+
+...@node Math Library Routines
+...@chapter Math Library Routines
+
+The following mathematical functions are available:
+
+...@table @asis
+...@item @code{acosq}: arc cosine function
+...@item @code{acoshq}: inverse hyperbolic cosine function
+...@item @code{asinq}: arc sine function
+...@item @code{asinhq}: inverse hyperbolic sine function
+...@item @code{atanq}: arc tangent function
+...@item @code{atanhq}: inverse hyperbolic tangent function
+...@item @code{atan2q}: arc tangent function
+...@item @code{cbrtq}: cube root function
+...@item @code{ceilq}: ceiling value function
+...@item @code{copysignq}: copy sign of a number
+...@item @code{coshq}: hyperbolic cosine function
+...@item @code{cosq}: cosine function
+...@item @code{erfq}: error function
+...@item @code{erfcq}: complementary error function
+...@item @code{expq}: exponential function
+...@item @code{expm1q}: exponential minus 1 function
+...@need 800
+...@item @code{fabsq}: absolute value function
+...@item @code{finiteq}: check finiteness of value
+...@item @code{floorq}: floor value function
+...@item @code{fmodq}: remainder value function
+...@item @code{frexpq}: extract mantissa and exponent
+...@item @code{hypotq}: Eucledian distance function
+...@item @code{isinfq}: check for infinity
+...@item @code{isnanq}: check for not a number
+...@item @code{j0q}: Bessel function of the first kind, first order
+...@item @code{j1q}: Bessel function of the first kind, second order
+...@item @code{jnq}: Bessel function of the first kind, @var{n}-th order
+...@item @code{ldexpq}: load exponent of the value
+...@item @code{lgammaq}: logarithmic gamma function
+...@item @code{llroundq}: round to nearest integer value away from zero
+...@item @code{logq}: natural logarithm function
+...@item @code{log10q}: base 10 logarithm function
+...@item @code{log1pq}: compute natural logarithm of the value plus one
+...@need 800
+...@item @code{lroundq}: round to nearest integer value away from zero
+...@item @code{modfq}: decompose the floating-point number
+...@item @code{nanq}: return quiet NaN
+...@item @code{nextafterq}: next representable floating-point number
+...@item @code{powq}: power function
+...@item @code{remainderq}: remainder function
+...@item @code{rintq}: round-to-nearest integral value
+...@item @code{roundq}: round-to-nearest integral value, return @code{__float128}
+...@item @code{scalblnq}: compute exponent using @code{FLT_RADIX}
+...@item @code{scalbnq}: compute exponent using @code{FLT_RADIX}
+...@item @code{signbitq}: return sign bit
+...@item @code{sincosq}: calculate sine and cosine simulataneously
+...@item @code{sinhq}: hyperbolic sine function
+...@item @code{sinq}: sine function
+...@item @code{sqrtq}: square root function
+...@item @code{tanq}: tangent function
+...@item @code{tanhq}: hyperbolic tangent function
+...@need 800
+...@item @code{tgammaq}: true gamma function
+...@item @code{truncq}: round to integer, towards zero
+...@item @code{y0q}: Bessel function of the second kind, first order
+...@item @code{y1q}: Bessel function of the second kind, second order
+...@item @code{ynq}: Bessel function of the second kind, @var{n}-th order
+...@item @code{cabsq} complex absolute value function:
+...@item @code{cargq}: calculate the argument
+...@item @code{ccosq} complex cosine function:
+...@item @code{ccoshq}: complex hyperbolic cosine function
+...@item @code{cexpq}: complex exponential function
+...@item @code{cexpiq}: computes the exponential function of ``i'' times a
+                     real value
+...@item @code{clogq}: complex natural logarithm
+...@item @code{clog10q}: complex base 10 logarithm
+...@item @code{cpowq}: complex power function
+...@item @code{csinq}: complex sine function
+...@item @code{csinhq}: complex hyperbolic sine function
+...@need 800
+...@item @code{csqrtq}: complex square root
+...@item @code{ctanq}: complex tangent function
+...@item @code{ctanhq}: complex hyperbolic tangent function
+...@end table
+
+
+...@c ---------------------------------------------------------------------
+...@c I/O routines
+...@c ---------------------------------------------------------------------
+
+...@node I/O Library Routines
+...@chapter I/O Library Routines
+
+...@menu
+* @code{quadmath_strtopQ}:  quadmath_strtopQ,  Convert from string
+* @code{quadmath_dtoaq}:    quadmath_dtoaq,    Convert to string
+...@end menu
+
+
+...@node quadmath_strtopQ
+...@section @code{quadmath_strtopQ} --- Convert from string
+
+The function @code{dmath_strtopQ} converts a string into a
+...@code{__float128} number.
+
+...@table @asis
+...@item Syntax
+...@code{int quadmath_strtopQ (const char *s, char **sp, void *V)}
+
+...@c The return values are defined in gdtoa/gdtoa.h STRTOG_*
+...@c However, the values are currently not exported - thus we
+...@c do not define them here, either.
+
+...@item @emph{Arguments}:
+...@multitable @columnfractions .15 .70
+...@item @var{s}  @tab input string
+...@item @var{sp} @tab the address of the next character in the string
+...@item @var{V}  @tab @code{__float128} containing the converted number
+...@end multitable
+
+The argument @var{sp} contains, if not @code{NULL}, the address of the
+next character following the parts of the string, which have been read.
+
+...@item Example
+...@smallexample
+#include <quadmath.h>
+
+int main ()
+...@{
+  __float128 r;
+  char str[200];
+
+  quadmath_strtopQ ("1.2345678", NULL, &r);
+
+  return 0;
+...@}
+...@end smallexample
+...@end table
+
+
+...@node quadmath_dtoaq
+...@section @code{quadmath_dtoaq} --- Convert to string
+
+The function @code{quadmath_dtoaq} converts a @code{__float128} floating-point
+number into a string.
+
+...@table @asis
+...@item Syntax
+...@code{void quadmath_dtoaq (char *s, size_t size, size_t n, __float128 x)}
+
+...@item @emph{Arguments}:
+...@multitable @columnfractions .15 .70
+...@item @var{s}    @tab output string
+...@item @var{size} @tab byte size of the string, including tailing NUL
+...@item @var{n}    @tab number of digits after the decimal point
+...@item @var{x}    @tab the number to be converted
+...@end multitable
+
+...@item Example
+...@smallexample
+#include <quadmath.h>
+
+int main ()
+...@{
+  __float128 r;
+  char str[200];
+
+  r = 2.0q;
+  r = sqrtq(r);
+  quadmath_dtoaq (str, sizeof (str), 20, r);
+  printf("%s\n", str);
+  /* Prints: +1.41421356237309504880e+00 */
+  return 0;
+...@}
+...@end smallexample
+...@end table
+
+
+
+...@c ---------------------------------------------------------------------
+...@c
+...@c ---------------------------------------------------------------------
+
+...@node Reporting Bugs
+...@chapter Reporting Bugs
+
+Bugs in the GCC Quad-Precision Math Library implementation should be
+reported via @uref{http://gcc.gnu.org/bugzilla/, bugzilla}.
+
+
+...@c ---------------------------------------------------------------------
+...@c Index
+...@c ---------------------------------------------------------------------
+
+...@c @node Index
+...@c @unnumbered Index
+...@c 
+...@c @printindex cp
+
+...@bye

Reply via email to