From 499de0966b9296b9987a5cb0491a591345aab3ec Mon Sep 17 00:00:00 2001 From: Sebastien Fabbro Date: Mon, 14 Jun 2010 18:08:25 +0000 Subject: [PATCH] Version bump Package-Manager: portage-2.2_rc67/cvs/Linux x86_64 --- sci-libs/cfitsio/ChangeLog | 8 +- sci-libs/cfitsio/Manifest | 13 +- sci-libs/cfitsio/cfitsio-3.250.ebuild | 49 ++ .../files/cfitsio-3.250-autotools.patch | 562 ++++++++++++++++++ 4 files changed, 626 insertions(+), 6 deletions(-) create mode 100644 sci-libs/cfitsio/cfitsio-3.250.ebuild create mode 100644 sci-libs/cfitsio/files/cfitsio-3.250-autotools.patch diff --git a/sci-libs/cfitsio/ChangeLog b/sci-libs/cfitsio/ChangeLog index f58c5e5c1884..9ea2f3d02c3f 100644 --- a/sci-libs/cfitsio/ChangeLog +++ b/sci-libs/cfitsio/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for sci-libs/cfitsio # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sci-libs/cfitsio/ChangeLog,v 1.43 2010/02/01 22:10:50 bicatali Exp $ +# $Header: /var/cvsroot/gentoo-x86/sci-libs/cfitsio/ChangeLog,v 1.44 2010/06/14 18:08:25 bicatali Exp $ + +*cfitsio-3.250 (14 Jun 2010) + + 14 Jun 2010; Sébastien Fabbro + +cfitsio-3.250.ebuild, +files/cfitsio-3.250-autotools.patch: + Version bump *cfitsio-3.240 (01 Feb 2010) diff --git a/sci-libs/cfitsio/Manifest b/sci-libs/cfitsio/Manifest index 92a2b9442d1a..a42f9f4bdd7b 100644 --- a/sci-libs/cfitsio/Manifest +++ b/sci-libs/cfitsio/Manifest @@ -4,16 +4,19 @@ Hash: SHA1 AUX cfitsio-3.140-autotools.patch 8213 RMD160 b886aa73d3bc7b4f6f0ea824d8e4705be6870e6a SHA1 bc1c9257befbeec7b283a2b6b8d7e3b0cd5e463e SHA256 46eba8ba973eb0873992ea942d196815d375951c9154af65eb217abddd4c617f AUX cfitsio-3.140-missing-include.patch 384 RMD160 364b1eb604f925916a3fca9d470bda8930b623dd SHA1 18a022de6f2964ab1bf4796f677fb73a287f059f SHA256 3758a4c2b926889b42c14e6ad01857c4ab7ab5bf07010b8d5c043c284d1740eb AUX cfitsio-3.240-autotools.patch 20064 RMD160 2f98266419c919b1b330c327a68ad48084eb8ea6 SHA1 3ff174ff73c037e709014952cc87cf5465248ba6 SHA256 f315ddddc913843cd20c341589a6e67823dfd962ddf853822894dea2d03da0b7 +AUX cfitsio-3.250-autotools.patch 19585 RMD160 06b4820d3d71d6fe133053f300cf7cf7588f0293 SHA1 0362fa26feb20a3322b50837c1e1816b1c3868be SHA256 acd6efe2af0c8350ab3f3abc6cb849ec7eb20efc5fda84490ea7efade77bd03a DIST cfitsio3140.tar.gz 2903379 RMD160 df80966f6b0ae7a435828bdfe4ef33ae708aecf5 SHA1 54c10c83e1edc9901229169b3aba337677e468a7 SHA256 d45e253d513d8df331a0294d243460773c57f9045878c8b79efbc7427c873d96 DIST cfitsio3240.tar.gz 2608712 RMD160 1ed243b6dc1689e632f01825bb971ab428123eca SHA1 3395081f68c2ba5691c040d3472214e546479009 SHA256 01d3d54bfe46fec8817a6c9cd78f5c7d4613f1e114cf16e7afcd4fe688643096 +DIST cfitsio3250.tar.gz 2605913 RMD160 d551bb5d59189f5203db3063259eabd7aa8827fe SHA1 b4a025472ffe81be6cd3a46e1fe095144230c8a4 SHA256 54090657ef67ce9a4214b2edb9f068671af6832c1fc5ea187334591f9137a7ba EBUILD cfitsio-3.140.ebuild 1466 RMD160 9e4105541fce82519486847c10dc2334c799ab86 SHA1 a39fa6ad85bab2f4b50081ed65d1138dbf1da2ac SHA256 ebadb23dca7e5c8c892b84d743137b1778091b0fb4e8f4efef68b93d887e043a EBUILD cfitsio-3.240.ebuild 1371 RMD160 2ed784f3de40a3a253d817c55cdd2db173620f35 SHA1 874b304717e03016a6a3c885311d759cb3a1053d SHA256 8885897bb06eecc5f69addaa174b6a4e07858837bafd8fcf36634ffa426e0996 -MISC ChangeLog 8739 RMD160 6c67ac282144766b83ccf49e6df6270e877c8888 SHA1 7895e645f0b875197d6b688a7ba319f0b6eeec9f SHA256 eba19046087ea187ab138803bb3bd936d153432756eb0d32bd7e857203fff09e +EBUILD cfitsio-3.250.ebuild 1371 RMD160 0f8998366be96e7b4657780e64deb85c2d691bda SHA1 9218bb446c51efc612783268b3be33d6a553ebd6 SHA256 3ada9db0f58e7b2a7e23e93a2f5040e1b2538bf4ca5a9e893cd3effae0941f0f +MISC ChangeLog 8903 RMD160 ad65b4610af0054f18783338cacb16575498d462 SHA1 46cfc2e511ceca44e11d38e206ccc6b40acd3d67 SHA256 8f89547999ae40365ad61a2eed37faba56ef70e134cc6229f2c576ebd0f6bfd2 MISC metadata.xml 677 RMD160 3a527306bc0d3ee04c9aa7a89ae9669300449f25 SHA1 332827a79018490259a4fda69a9b508862612941 SHA256 20ff9f82126be9cb9b5a8c21e1bf2556e8ae91e32442b59f26f938ccc1f42b91 -----BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.14 (GNU/Linux) +Version: GnuPG v2.0.15 (GNU/Linux) -iEYEARECAAYFAktnUXIACgkQ1ycZbhPLE2BV1QCfYBiFtdeLk73CVci2g9q9Xwxo -6dEAn1+LShJdnqQEYTEL18//BbiR6asY -=uHMq +iEYEARECAAYFAkwWdqQACgkQ1ycZbhPLE2BURACgi7veP88nlfXEmM1jCbIOdlGY +en0AnRknk5q/v7rMEhyUgzoiOFwpyK1y +=o4ID -----END PGP SIGNATURE----- diff --git a/sci-libs/cfitsio/cfitsio-3.250.ebuild b/sci-libs/cfitsio/cfitsio-3.250.ebuild new file mode 100644 index 000000000000..c578b1a9f2cf --- /dev/null +++ b/sci-libs/cfitsio/cfitsio-3.250.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-libs/cfitsio/cfitsio-3.250.ebuild,v 1.1 2010/06/14 18:08:25 bicatali Exp $ + +EAPI=2 +inherit eutils autotools + +DESCRIPTION="C and Fortran library for manipulating FITS files" +HOMEPAGE="http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html" +SRC_URI="ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/${PN}${PV//.}.tar.gz" + +LICENSE="BSD GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86" +IUSE="doc fortran threads" + +DEPEND="fortran? ( dev-lang/cfortran )" +RDEPEND="" + +S="${WORKDIR}/${PN}" + +src_prepare() { + # avoid internal cfortran + if use fortran; then + mv cfortran.h cfortran.h.disabled + ln -s /usr/include/cfortran.h . + fi + epatch "${FILESDIR}"/${P}-autotools.patch + eautoreconf +} + +src_configure() { + econf \ + $(use_enable threads) \ + $(use_enable fortran) +} + +src_install () { + emake DESTDIR="${D}" install || die "emake install failed" + dodoc changes.txt README cfitsio.doc || die "dodoc failed" + insinto /usr/share/doc/${PF}/examples + doins cookbook.c testprog.c speed.c smem.c || die "install examples failed" + use fortran && dodoc fitsio.doc && doins cookbook.f + if use doc; then + insinto /usr/share/doc/${PF} + doins quick.ps cfitsio.ps fpackguide.pdf + use fortran && doins fitsio.ps + fi +} diff --git a/sci-libs/cfitsio/files/cfitsio-3.250-autotools.patch b/sci-libs/cfitsio/files/cfitsio-3.250-autotools.patch new file mode 100644 index 000000000000..a6d7cd036413 --- /dev/null +++ b/sci-libs/cfitsio/files/cfitsio-3.250-autotools.patch @@ -0,0 +1,562 @@ +--- configure.ac.orig 1970-01-01 01:00:00.000000000 +0100 ++++ configure.ac 2010-01-04 18:39:51.000000000 +0000 +@@ -0,0 +1,195 @@ ++AC_PREREQ(2.62) ++AC_INIT([cfitsio], [3.230], [pence@tetra.gsfc.nasa.gov]) ++AC_CONFIG_SRCDIR([fitscore.c]) ++AM_INIT_AUTOMAKE([foreign]) ++ ++AC_MSG_CHECKING([whether to enable POSIX threads]) ++AC_ARG_ENABLE([threads], ++ [AS_HELP_STRING([--enable-threads], [Enable POSIX threads [default=yes]])], ++ [enable_threads=$enableval], ++ [enable_threads=no]) ++ ++sinclude(ax_pthread.m4) ++AX_PTHREAD(,[enable_threads=no]) ++if test x"$enable_threads" != xno; then ++ LIBS="$PTHREAD_LIBS $LIBS" ++ CFLAGS="$PTHREAD_CFLAGS $CFLAGS" ++ CC="$PTHREAD_CC" ++ AC_DEFINE(_REENTRANT) ++fi ++ ++AC_PROG_LIBTOOL ++dnl no api version info, so simply copy package version ++SHARED_VERSION_INFO="3:0:0" ++AC_SUBST(SHARED_VERSION_INFO) ++ ++AC_PROG_YACC ++AC_PROG_LEX ++ ++AC_MSG_CHECKING([whether to enable fortran interface]) ++AC_ARG_ENABLE([fortran], ++ [AS_HELP_STRING([--enable-fortran], [Compile the fortran interface [default=yes]])], ++ [ENABLE_FORTRAN=$enableval]) ++ ++case x"$ENABLE_FORTRAN" in ++ xno) ++ ENABLE_FORTRAN=no ++ AC_MSG_RESULT([no]) ++ ;; ++ *) ++ ENABLE_FORTRAN=yes ++ AC_MSG_RESULT([yes]) ++ AC_PROG_F77 ++ if test x$F77 = xg77; then ++ cfortran_def=g77Fortran ++ elif test x$F77 = xifort ; then ++ cfortran_def=INTEL_COMPILER ++ elif test x$F77 = xgfortran ; then ++ cfortran_def=gFortran ++ elif test x$F77 = xpgf77 ; then ++ cfortran_def=pgiFortran ++ else ++ cfortran_def=f2cFortran ++ fi ++ CPPFLAGS_FORTRAN="-D$cfortran_def" ++ AC_SUBST(CPPFLAGS_FORTRAN) ++ ;; ++esac ++ ++AC_SUBST([ENABLE_FORTRAN]) ++AM_CONDITIONAL([ENABLE_FORTRAN], test "x$ENABLE_FORTRAN" = "xyes") ++ ++AC_CANONICAL_HOST ++case $host in ++ *apple*darwin*) ++ dnl may break Absoft compilers ++ AC_DEFINE(_LARGEFILE_SOURCE, [1], ++ [Define to 1 if you have large file support]) ++ AC_DEFINE(_FILE_OFFSET_BITS, [64], ++ [Offsets bits in files]) ++ ;; ++ *hppa*) ++ CPPFLAGS_EXTRA="-DPG_PPU" ++ ;; ++ *sunos5*) ++ AC_DEFINE(_LARGEFILE_SOURCE, [1], ++ [Define to 1 if you have large file support]) ++ AC_DEFINE(_FILE_OFFSET_BITS, [64], ++ [Offsets bits in files]) ++ CPPFLAGS_EXTRA="-DHAVE_ALLOCA_H -DHAVE_POSIX_SIGNALS" ++ ;; ++ *irix*) ++ CPPFLAGS_EXTRA="-DHAVE_POSIX_SIGNALS" ++ ;; ++ *linux*) ++ AC_DEFINE(_LARGEFILE_SOURCE, [1], ++ [Define to 1 if you have large file support]) ++ AC_DEFINE(_FILE_OFFSET_BITS, [64], ++ [Offsets bits in files]) ++ ;; ++ *cygwin*) ++ CPPFLAGS_EXTRA="-DHAVE_POSIX_SIGNALS" ++ ;; ++ *) ++ ;; ++esac ++AC_SUBST(CPPFLAGS_EXTRA) ++ ++AC_CHECK_FUNCS([ftruncate]) ++AC_CHECK_FUNCS([shmat shmdt shmget], ++ AC_DEFINE(HAVE_SHMEM_SERVICES, [1], ++ [Define to yes if you have shared memory functions]) ++) ++AC_CHECK_FUNCS([gethostbyname connect], ++ [AC_DEFINE(HAVE_NET_SERVICES, [1], ++ [Define to 1 if you have network functions])] ++) ++AC_CHECK_TYPE(long long, ++ [AC_DEFINE(HAVE_LONGLONG, [1], ++ [Define to 1 if your compiler supports long long])] ++) ++dnl check for flock_t ++AC_MSG_CHECKING([for flock_t in sys/fcntl.h]) ++AC_COMPILE_IFELSE( ++ [AC_LANG_PROGRAM([[ ++#include ++ ]], [[ ++flock_t filler; ++ ]])], ++ [AC_DEFINE(HAVE_FLOCK_T, 1, [if you have flock_t]) ++ AC_MSG_RESULT([yes])], ++ [AC_MSG_RESULT([no]) ]) ++ ++if test "$HAVE_FLOCK_T" != 1; then ++ AC_MSG_CHECKING([for flock_t in sys/flock.h]) ++ AC_COMPILE_IFELSE([ ++ AC_LANG_PROGRAM([[ ++#include ++ ]], [[ ++flock_t filler; ++ ]])], ++ [AC_DEFINE(HAVE_FLOCK_T, 1, [if you have flock_t]) ++ AC_MSG_RESULT([yes])], ++ [AC_MSG_RESULT([no]) ]) ++fi ++ ++# check for union semun type ++AC_CHECK_TYPE(union semun, ++ AC_DEFINE(HAVE_UNION_SEMUN, [1], ++ [Define to 1 if you have semun in sys/sem.h]),,[ ++#include ++#include ++#include ++ ] ++) ++ ++dnl this quick check will add -lm to LIBS ++AC_CHECK_LIB(m, cos) ++ ++AC_ARG_WITH([gsiftp-flavour], ++ [AC_HELP_STRING([--with-gsiftp-flavour[=PATH]], [Compile with a given Globus Toolkit gsiftp protocol flavour])], ++ , ++ [withval=no]) ++ ++case x$withval in ++ xno) ++ AC_MSG_CHECKING([for Globus flavor]) ++ AC_MSG_RESULT([none]) ++ ;; ++ xyes) ++ AC_MSG_RESULT([yes]) ++ ;; ++ *) ++ AC_MSG_RESULT([$withval]) ++ GSIFTP_FLAVOUR=$withval ++ AC_DEFINE(GSIFTP_FLAVOUR, [1], ++ [Define to 1 if you want Globus Toolkit architecture]) ++ ;; ++esac ++ ++AC_ARG_WITH(gsiftp, ++ [AC_HELP_STRING([--with-gsiftp[=PATH]], [Compile with Globus Toolkit gsiftp protocol support [default=no]])], ++ , ++ [withval=no]) ++case "x$withval" in ++ xno) ++ AC_MSG_CHECKING([for Globus Toolkit]) ++ AC_MSG_RESULT([no]) ++ ;; ++ xyes) ++ AC_MSG_RESULT([yes]) ++ ;; ++ *) ++ AC_MSG_RESULT([yes]) ++ CPPFLAGS_GLOBUS="-I${withval}/include/${GSIFTP_FLAVOUR}" ++ LIBS_GLOBUS="-L${withval}/lib -lglobus_ftp_client_${GSIFTP_FLAVOUR}" ++ HAVE_GSIFTP=yes ++ AC_DEFINE(HAVE_GSIFTP, [1], ++ [Define if you want Globus Toolkit gsiftp protocol support]) ++ ;; ++esac ++ ++AC_SUBST(CPPFLAGS_GLOBUS) ++AC_SUBST(LIBS_GLOBUS) ++AC_CONFIG_FILES([Makefile cfitsio.pc]) ++AC_OUTPUT +--- Makefile.am.orig 1970-01-01 01:00:00.000000000 +0100 ++++ Makefile.am 2009-12-08 19:00:18.000000000 +0000 +@@ -0,0 +1,86 @@ ++lib_LTLIBRARIES = libcfitsio.la ++ ++C_SOURCES = \ ++ buffers.c cfileio.c checksum.c compress.c drvrfile.c drvrmem.c \ ++ drvrnet.c drvrsmem.c drvrgsiftp.c editcol.c edithdu.c eval_l.c \ ++ eval_y.c eval_f.c fitscore.c getcol.c getcolb.c getcold.c getcole.c \ ++ getcoli.c getcolj.c getcolk.c getcoll.c getcols.c getcolsb.c \ ++ getcoluk.c getcolui.c getcoluj.c getkey.c group.c grparser.c \ ++ histo.c iraffits.c \ ++ modkey.c putcol.c putcolb.c putcold.c putcole.c putcoli.c \ ++ putcolj.c putcolk.c putcoluk.c putcoll.c putcols.c putcolsb.c \ ++ putcolu.c putcolui.c putcoluj.c putkey.c region.c scalnull.c \ ++ swapproc.c wcssub.c wcsutil.c imcompress.c quantize.c ricecomp.c \ ++ pliocomp.c fits_hcompress.c fits_hdecompress.c ++ ++F77_SOURCES= ++if ENABLE_FORTRAN ++F77_SOURCES += f77_wrap1.c f77_wrap2.c f77_wrap3.c f77_wrap4.c f77_wrap.h ++endif ++AM_YFLAGS = -d -v ++ ++include_HEADERS = fitsio.h fitsio2.h longnam.h drvrsmem.h ++noinst_HEADERS = cfortran.h drvrgsiftp.h eval_defs.h f77_wrap.h group.h \ ++ compress.h eval_tab.h fpack.h grparser.h region.h ++ ++libcfitsio_la_SOURCES = $(C_SOURCES) $(F77_SOURCES) $(include_HEADERS) ++libcfitsio_la_LDFLAGS = -no-undefined -version-info @SHARED_VERSION_INFO@ ++libcfitsio_la_CPPFLAGS = @CPPFLAGS_FORTRAN@ @CPPFLAGS_EXTRA@ @CPPFLAGS_GLOBUS@ ++libcfitsio_la_LIBADD = @LIBS_GLOBUS@ ++ ++ ++pkgconfigdir = $(libdir)/pkgconfig ++pkgconfig_DATA = cfitsio.pc ++ ++LDADD = libcfitsio.la ++bin_PROGRAMS = fitscopy imcopy listhead fpack funpack ++fitscopy_SOURCES = fitscopy.c ++listhead_SOURCES = listhead.c ++imcopy_SOURCES = imcopy.c ++fpack_SOURCES = fpack.c fpackutil.c ++funpack_SOURCES = funpack.c fpackutil.c ++ ++# tests ++check_PROGRAMS = testprog ++noinst_PROGRAMS = speed cookbook smem ++testprog_SOURCES = testprog.c ++speed_SOURCES = speed.c ++cookbook_SOURCES = cookbook.c ++smem_SOURCES = smem.c ++ ++if ENABLE_FORTRAN ++check_PROGRAMS += testf77 ++testf77_SOURCES = testf77.f ++endif ++ ++EXTRA_DIST = README README.MacOS README.win32 License.txt changes.txt cfitsio.doc fitsio.doc cfitsio.tex fitsio.tex quick.tex ++ ++check-local: $(check_PROGRAMS) ++ @total=0; failed=0; \ ++ for i in $(check_PROGRAMS); do \ ++ echo "--- Testing $$i ---"; \ ++ ./$$i${EXEEXT} > my_$$i.out; \ ++ diff $$i.out my_$$i.out; \ ++ cmp $$i.fit $$i.std; \ ++ if [ "x$$?" = "x0" ]; then \ ++ echo "Test \`$$i' PASSED."; \ ++ else \ ++ echo "Test \`$$i' FAILED!!!"; \ ++ failed=$$(($$failed + 1)); \ ++ fi; \ ++ total=$$(($$total + 1)); \ ++ done; \ ++ if [ $$failed -gt 0 ]; then \ ++ echo "*** ERROR: $$failed/$$total tests failed!!!"; \ ++ echo ""; \ ++ exit 1; \ ++ fi ++ ++eval: ++ @$(LEX) -t eval.l > eval_l.c1; \ ++ sed -e 's/yy/ff/g' -e 's/YY/FF/g' eval_l.c1 > eval_l.c; \ ++ rm -f eval_l.c1; \ ++ $(YACC) -d -v -y eval.y; \ ++ sed -e 's/yy/ff/g' -e 's/YY/FF/g' y.tab.c > eval_y.c; \ ++ sed -e 's/yy/ff/g' -e 's/YY/FF/g' y.tab.h > eval_tab.h; \ ++ rm -f y.tab.c y.tab.h +--- ax_pthread.m4.orig 1970-01-01 01:00:00.000000000 +0100 ++++ ax_pthread.m4 2010-01-04 19:00:08.000000000 +0000 +@@ -0,0 +1,272 @@ ++# =========================================================================== ++# http://www.nongnu.org/autoconf-archive/ax_pthread.html ++# =========================================================================== ++# ++# SYNOPSIS ++# ++# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) ++# ++# DESCRIPTION ++# ++# This macro figures out how to build C programs using POSIX threads. It ++# sets the PTHREAD_LIBS output variable to the threads library and linker ++# flags, and the PTHREAD_CFLAGS output variable to any special C compiler ++# flags that are needed. (The user can also force certain compiler ++# flags/libs to be tested by setting these environment variables.) ++# ++# Also sets PTHREAD_CC to any special C compiler that is needed for ++# multi-threaded programs (defaults to the value of CC otherwise). (This ++# is necessary on AIX to use the special cc_r compiler alias.) ++# ++# NOTE: You are assumed to not only compile your program with these flags, ++# but also link it with them as well. e.g. you should link with ++# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS ++# ++# If you are only building threads programs, you may wish to use these ++# variables in your default LIBS, CFLAGS, and CC: ++# ++# LIBS="$PTHREAD_LIBS $LIBS" ++# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++# CC="$PTHREAD_CC" ++# ++# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant ++# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name ++# (e.g. PTHREAD_CREATE_UNDETACHED on AIX). ++# ++# ACTION-IF-FOUND is a list of shell commands to run if a threads library ++# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it ++# is not found. If ACTION-IF-FOUND is not specified, the default action ++# will define HAVE_PTHREAD. ++# ++# Please let the authors know if this macro fails on any platform, or if ++# you have any other suggestions or comments. This macro was based on work ++# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help ++# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by ++# Alejandro Forero Cuervo to the autoconf macro repository. We are also ++# grateful for the helpful feedback of numerous users. ++# ++# LICENSE ++# ++# Copyright (c) 2008 Steven G. Johnson ++# ++# 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 . ++# ++# As a special exception, the respective Autoconf Macro's copyright owner ++# gives unlimited permission to copy, distribute and modify the configure ++# scripts that are the output of Autoconf when processing the Macro. You ++# need not follow the terms of the GNU General Public License when using ++# or distributing such scripts, even though portions of the text of the ++# Macro appear in them. The GNU General Public License (GPL) does govern ++# all other use of the material that constitutes the Autoconf Macro. ++# ++# This special exception to the GPL applies to versions of the Autoconf ++# Macro released by the Autoconf Archive. When you make and distribute a ++# modified version of the Autoconf Macro, you may extend this special ++# exception to the GPL to apply to your modified version as well. ++ ++AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) ++AC_DEFUN([AX_PTHREAD], [ ++AC_REQUIRE([AC_CANONICAL_HOST]) ++AC_LANG_SAVE ++AC_LANG_C ++ax_pthread_ok=no ++ ++# We used to check for pthread.h first, but this fails if pthread.h ++# requires special compiler flags (e.g. on True64 or Sequent). ++# It gets checked for in the link test anyway. ++ ++# First of all, check if the user has set any of the PTHREAD_LIBS, ++# etcetera environment variables, and if threads linking works using ++# them: ++if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++ save_LIBS="$LIBS" ++ LIBS="$PTHREAD_LIBS $LIBS" ++ AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) ++ AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes) ++ AC_MSG_RESULT($ax_pthread_ok) ++ if test x"$ax_pthread_ok" = xno; then ++ PTHREAD_LIBS="" ++ PTHREAD_CFLAGS="" ++ fi ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++fi ++ ++# We must check for the threads library under a number of different ++# names; the ordering is very important because some systems ++# (e.g. DEC) have both -lpthread and -lpthreads, where one of the ++# libraries is broken (non-POSIX). ++ ++# Create a list of thread flags to try. Items starting with a "-" are ++# C compiler flags, and other items are library names, except for "none" ++# which indicates that we try without any flags at all, and "pthread-config" ++# which is a program returning the flags for the Pth emulation library. ++ ++ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" ++ ++# The ordering *is* (sometimes) important. Some notes on the ++# individual items follow: ++ ++# pthreads: AIX (must check this before -lpthread) ++# none: in case threads are in libc; should be tried before -Kthread and ++# other compiler flags to prevent continual compiler warnings ++# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) ++# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) ++# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) ++# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) ++# -pthreads: Solaris/gcc ++# -mthreads: Mingw32/gcc, Lynx/gcc ++# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it ++# doesn't hurt to check since this sometimes defines pthreads too; ++# also defines -D_REENTRANT) ++# ... -mt is also the pthreads flag for HP/aCC ++# pthread: Linux, etcetera ++# --thread-safe: KAI C++ ++# pthread-config: use pthread-config program (for GNU Pth library) ++ ++case "${host_cpu}-${host_os}" in ++ *solaris*) ++ ++ # On Solaris (at least, for some versions), libc contains stubbed ++ # (non-functional) versions of the pthreads routines, so link-based ++ # tests will erroneously succeed. (We need to link with -pthreads/-mt/ ++ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather ++ # a function called by this macro, so we could check for that, but ++ # who knows whether they'll stub that too in a future libc.) So, ++ # we'll just look for -pthreads and -lpthread first: ++ ++ ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" ++ ;; ++esac ++ ++if test x"$ax_pthread_ok" = xno; then ++for flag in $ax_pthread_flags; do ++ ++ case $flag in ++ none) ++ AC_MSG_CHECKING([whether pthreads work without any flags]) ++ ;; ++ ++ -*) ++ AC_MSG_CHECKING([whether pthreads work with $flag]) ++ PTHREAD_CFLAGS="$flag" ++ ;; ++ ++ pthread-config) ++ AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no) ++ if test x"$ax_pthread_config" = xno; then continue; fi ++ PTHREAD_CFLAGS="`pthread-config --cflags`" ++ PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ++ ;; ++ ++ *) ++ AC_MSG_CHECKING([for the pthreads library -l$flag]) ++ PTHREAD_LIBS="-l$flag" ++ ;; ++ esac ++ ++ save_LIBS="$LIBS" ++ save_CFLAGS="$CFLAGS" ++ LIBS="$PTHREAD_LIBS $LIBS" ++ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++ ++ # Check for various functions. We must include pthread.h, ++ # since some functions may be macros. (On the Sequent, we ++ # need a special flag -Kthread to make this header compile.) ++ # We check for pthread_join because it is in -lpthread on IRIX ++ # while pthread_create is in libc. We check for pthread_attr_init ++ # due to DEC craziness with -lpthreads. We check for ++ # pthread_cleanup_push because it is one of the few pthread ++ # functions on Solaris that doesn't have a non-functional libc stub. ++ # We try pthread_create on general principles. ++ AC_TRY_LINK([#include ], ++ [pthread_t th; pthread_join(th, 0); ++ pthread_attr_init(0); pthread_cleanup_push(0, 0); ++ pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], ++ [ax_pthread_ok=yes]) ++ ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++ ++ AC_MSG_RESULT($ax_pthread_ok) ++ if test "x$ax_pthread_ok" = xyes; then ++ break; ++ fi ++ ++ PTHREAD_LIBS="" ++ PTHREAD_CFLAGS="" ++done ++fi ++ ++# Various other checks: ++if test "x$ax_pthread_ok" = xyes; then ++ save_LIBS="$LIBS" ++ LIBS="$PTHREAD_LIBS $LIBS" ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++ ++ # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. ++ AC_MSG_CHECKING([for joinable pthread attribute]) ++ attr_name=unknown ++ for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do ++ AC_TRY_LINK([#include ], [int attr=$attr; return attr;], ++ [attr_name=$attr; break]) ++ done ++ AC_MSG_RESULT($attr_name) ++ if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then ++ AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, ++ [Define to necessary symbol if this constant ++ uses a non-standard name on your system.]) ++ fi ++ ++ AC_MSG_CHECKING([if more special flags are required for pthreads]) ++ flag=no ++ case "${host_cpu}-${host_os}" in ++ *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; ++ *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; ++ esac ++ AC_MSG_RESULT(${flag}) ++ if test "x$flag" != xno; then ++ PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" ++ fi ++ ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++ ++ # More AIX lossage: must compile with xlc_r or cc_r ++ if test x"$GCC" != xyes; then ++ AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) ++ else ++ PTHREAD_CC=$CC ++ fi ++else ++ PTHREAD_CC="$CC" ++fi ++ ++AC_SUBST(PTHREAD_LIBS) ++AC_SUBST(PTHREAD_CFLAGS) ++AC_SUBST(PTHREAD_CC) ++ ++# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: ++if test x"$ax_pthread_ok" = xyes; then ++ ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) ++ : ++else ++ ax_pthread_ok=no ++ $2 ++fi ++AC_LANG_RESTORE ++])dnl AX_PTHREAD -- 2.26.2