Skip to content

Commit d19cd6b

Browse files
missing m4 macros + update check pthread
1 parent fa30751 commit d19cd6b

4 files changed

Lines changed: 875 additions & 2 deletions

File tree

Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ sources = $(CFILES) \
3535
include/polylib/arithmetique.h \
3636
include/polylib/arithmetic_errors.h
3737

38-
EXTRA_DIST = doc source/oldpolytest.c INSTALL COPYING
38+
EXTRA_DIST = doc source/oldpolytest.c INSTALL COPYING m4/acx_pthread.m4 m4/ax_create_pkgconfig_info.m4
3939

4040
lib_LTLIBRARIES = @polylibs@
4141
libpolylib32_la_LDFLAGS = -rpath $(libdir) -version-info @versioninfo@

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ dnl AC_MSG_RESULT($DOXYGEN)
274274

275275

276276
dnl AC_CHECK_LIB(pthread, pthread_create)
277-
ACX_PTHREAD()
277+
AX_PTHREAD()
278278
AC_ARG_ENABLE(threadsafe,
279279
[ --enable-threadsafe threadsafe polylib (enabled by default if a threading library is found)],
280280
[

m4/ax_create_pkgconfig_info.m4

Lines changed: 351 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,351 @@
1+
# =============================================================================
2+
# https://www.gnu.org/software/autoconf-archive/ax_create_pkgconfig_info.html
3+
# =============================================================================
4+
#
5+
# SYNOPSIS
6+
#
7+
# AX_CREATE_PKGCONFIG_INFO [(outputfile, [requires [,libs [,summary [,cflags [, ldflags]]]]])]
8+
#
9+
# DESCRIPTION
10+
#
11+
# Defaults:
12+
#
13+
# $1 = $PACKAGE_NAME.pc
14+
# $2 = (empty)
15+
# $3 = $PACKAGE_LIBS $LIBS (as set at that point in configure.ac)
16+
# $4 = $PACKAGE_SUMMARY (or $1 Library)
17+
# $5 = $PACKAGE_CFLAGS (as set at the point in configure.ac)
18+
# $6 = $PACKAGE_LDFLAGS (as set at the point in configure.ac)
19+
#
20+
# PACKAGE_NAME defaults to $PACKAGE if not set.
21+
# PACKAGE_LIBS defaults to -l$PACKAGE_NAME if not set.
22+
#
23+
# The resulting file is called $PACKAGE.pc.in / $PACKAGE.pc
24+
#
25+
# You will find this macro most useful in conjunction with
26+
# ax_spec_defaults that can read good initializers from the .spec file. In
27+
# consequence, most of the generatable installable stuff can be made from
28+
# information being updated in a single place for the whole project.
29+
#
30+
# LICENSE
31+
#
32+
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
33+
# Copyright (c) 2008 Sven Verdoolaege <skimo@kotnet.org>
34+
#
35+
# This program is free software; you can redistribute it and/or modify it
36+
# under the terms of the GNU General Public License as published by the
37+
# Free Software Foundation; either version 3 of the License, or (at your
38+
# option) any later version.
39+
#
40+
# This program is distributed in the hope that it will be useful, but
41+
# WITHOUT ANY WARRANTY; without even the implied warranty of
42+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
43+
# Public License for more details.
44+
#
45+
# You should have received a copy of the GNU General Public License along
46+
# with this program. If not, see <https://www.gnu.org/licenses/>.
47+
#
48+
# As a special exception, the respective Autoconf Macro's copyright owner
49+
# gives unlimited permission to copy, distribute and modify the configure
50+
# scripts that are the output of Autoconf when processing the Macro. You
51+
# need not follow the terms of the GNU General Public License when using
52+
# or distributing such scripts, even though portions of the text of the
53+
# Macro appear in them. The GNU General Public License (GPL) does govern
54+
# all other use of the material that constitutes the Autoconf Macro.
55+
#
56+
# This special exception to the GPL applies to versions of the Autoconf
57+
# Macro released by the Autoconf Archive. When you make and distribute a
58+
# modified version of the Autoconf Macro, you may extend this special
59+
# exception to the GPL to apply to your modified version as well.
60+
61+
#serial 16
62+
63+
AC_DEFUN([AX_CREATE_PKGCONFIG_INFO],[dnl
64+
AS_VAR_PUSHDEF([PKGCONFIG_suffix],[ax_create_pkgconfig_suffix])dnl
65+
AS_VAR_PUSHDEF([PKGCONFIG_libdir],[ax_create_pkgconfig_libdir])dnl
66+
AS_VAR_PUSHDEF([PKGCONFIG_libfile],[ax_create_pkgconfig_libfile])dnl
67+
AS_VAR_PUSHDEF([PKGCONFIG_libname],[ax_create_pkgconfig_libname])dnl
68+
AS_VAR_PUSHDEF([PKGCONFIG_version],[ax_create_pkgconfig_version])dnl
69+
AS_VAR_PUSHDEF([PKGCONFIG_description],[ax_create_pkgconfig_description])dnl
70+
AS_VAR_PUSHDEF([PKGCONFIG_requires],[ax_create_pkgconfig_requires])dnl
71+
AS_VAR_PUSHDEF([PKGCONFIG_pkglibs],[ax_create_pkgconfig_pkglibs])dnl
72+
AS_VAR_PUSHDEF([PKGCONFIG_libs],[ax_create_pkgconfig_libs])dnl
73+
AS_VAR_PUSHDEF([PKGCONFIG_ldflags],[ax_create_pkgconfig_ldflags])dnl
74+
AS_VAR_PUSHDEF([PKGCONFIG_cppflags],[ax_create_pkgconfig_cppflags])dnl
75+
AS_VAR_PUSHDEF([PKGCONFIG_generate],[ax_create_pkgconfig_generate])dnl
76+
AS_VAR_PUSHDEF([PKGCONFIG_src_libdir],[ax_create_pkgconfig_src_libdir])dnl
77+
AS_VAR_PUSHDEF([PKGCONFIG_src_headers],[ax_create_pkgconfig_src_headers])dnl
78+
79+
# we need the expanded forms...
80+
test "x$prefix" = xNONE && prefix=$ac_default_prefix
81+
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
82+
83+
AC_MSG_CHECKING(our pkgconfig libname)
84+
test ".$PKGCONFIG_libname" != "." || \
85+
PKGCONFIG_libname="ifelse($1,,${PACKAGE_NAME},`basename $1 .pc`)"
86+
test ".$PKGCONFIG_libname" != "." || \
87+
PKGCONFIG_libname="$PACKAGE"
88+
PKGCONFIG_libname=`eval echo "$PKGCONFIG_libname"`
89+
PKGCONFIG_libname=`eval echo "$PKGCONFIG_libname"`
90+
AC_MSG_RESULT($PKGCONFIG_libname)
91+
92+
AC_MSG_CHECKING(our pkgconfig version)
93+
test ".$PKGCONFIG_version" != "." || \
94+
PKGCONFIG_version="${PACKAGE_VERSION}"
95+
test ".$PKGCONFIG_version" != "." || \
96+
PKGCONFIG_version="$VERSION"
97+
PKGCONFIG_version=`eval echo "$PKGCONFIG_version"`
98+
PKGCONFIG_version=`eval echo "$PKGCONFIG_version"`
99+
AC_MSG_RESULT($PKGCONFIG_version)
100+
101+
AC_MSG_CHECKING(our pkgconfig_libdir)
102+
test ".$pkgconfig_libdir" = "." && \
103+
pkgconfig_libdir='${libdir}/pkgconfig'
104+
PKGCONFIG_libdir=`eval echo "$pkgconfig_libdir"`
105+
PKGCONFIG_libdir=`eval echo "$PKGCONFIG_libdir"`
106+
PKGCONFIG_libdir=`eval echo "$PKGCONFIG_libdir"`
107+
AC_MSG_RESULT($pkgconfig_libdir)
108+
test "$pkgconfig_libdir" != "$PKGCONFIG_libdir" && (
109+
AC_MSG_RESULT(expanded our pkgconfig_libdir... $PKGCONFIG_libdir))
110+
AC_SUBST([pkgconfig_libdir])
111+
112+
AC_MSG_CHECKING(our pkgconfig_libfile)
113+
test ".$pkgconfig_libfile" != "." || \
114+
pkgconfig_libfile="ifelse($1,,$PKGCONFIG_libname.pc,`basename $1`)"
115+
PKGCONFIG_libfile=`eval echo "$pkgconfig_libfile"`
116+
PKGCONFIG_libfile=`eval echo "$PKGCONFIG_libfile"`
117+
AC_MSG_RESULT($pkgconfig_libfile)
118+
test "$pkgconfig_libfile" != "$PKGCONFIG_libfile" && (
119+
AC_MSG_RESULT(expanded our pkgconfig_libfile... $PKGCONFIG_libfile))
120+
AC_SUBST([pkgconfig_libfile])
121+
122+
AC_MSG_CHECKING(our package / suffix)
123+
PKGCONFIG_suffix="$program_suffix"
124+
test ".$PKGCONFIG_suffix" != .NONE || PKGCONFIG_suffix=""
125+
AC_MSG_RESULT(${PACKAGE_NAME} / ${PKGCONFIG_suffix})
126+
127+
AC_MSG_CHECKING(our pkgconfig description)
128+
PKGCONFIG_description="ifelse($4,,$PACKAGE_SUMMARY,$4)"
129+
test ".$PKGCONFIG_description" != "." || \
130+
PKGCONFIG_description="$PKGCONFIG_libname Library"
131+
PKGCONFIG_description=`eval echo "$PKGCONFIG_description"`
132+
PKGCONFIG_description=`eval echo "$PKGCONFIG_description"`
133+
AC_MSG_RESULT($PKGCONFIG_description)
134+
135+
AC_MSG_CHECKING(our pkgconfig requires)
136+
PKGCONFIG_requires="ifelse($2,,$PACKAGE_REQUIRES,$2)"
137+
PKGCONFIG_requires=`eval echo "$PKGCONFIG_requires"`
138+
PKGCONFIG_requires=`eval echo "$PKGCONFIG_requires"`
139+
AC_MSG_RESULT($PKGCONFIG_requires)
140+
141+
AC_MSG_CHECKING(our pkgconfig ext libs)
142+
PKGCONFIG_pkglibs="$PACKAGE_LIBS"
143+
test ".$PKGCONFIG_pkglibs" != "." || PKGCONFIG_pkglibs="-l$PKGCONFIG_libname"
144+
PKGCONFIG_libs="ifelse($3,,$PKGCONFIG_pkglibs $LIBS,$3)"
145+
PKGCONFIG_libs=`eval echo "$PKGCONFIG_libs"`
146+
PKGCONFIG_libs=`eval echo "$PKGCONFIG_libs"`
147+
AC_MSG_RESULT($PKGCONFIG_libs)
148+
149+
AC_MSG_CHECKING(our pkgconfig cppflags)
150+
PKGCONFIG_cppflags="ifelse($5,,$PACKAGE_CFLAGS,$5)"
151+
PKGCONFIG_cppflags=`eval echo "$PKGCONFIG_cppflags"`
152+
PKGCONFIG_cppflags=`eval echo "$PKGCONFIG_cppflags"`
153+
AC_MSG_RESULT($PKGCONFIG_cppflags)
154+
155+
AC_MSG_CHECKING(our pkgconfig ldflags)
156+
PKGCONFIG_ldflags="ifelse($6,,$PACKAGE_LDFLAGS,$6)"
157+
PKGCONFIG_ldflags=`eval echo "$PKGCONFIG_ldflags"`
158+
PKGCONFIG_ldflags=`eval echo "$PKGCONFIG_ldflags"`
159+
AC_MSG_RESULT($PKGCONFIG_ldflags)
160+
161+
test ".$PKGCONFIG_generate" != "." || \
162+
PKGCONFIG_generate="ifelse($1,,$PKGCONFIG_libname.pc,$1)"
163+
PKGCONFIG_generate=`eval echo "$PKGCONFIG_generate"`
164+
PKGCONFIG_generate=`eval echo "$PKGCONFIG_generate"`
165+
test "$pkgconfig_libfile" != "$PKGCONFIG_generate" && (
166+
AC_MSG_RESULT(generate the pkgconfig later... $PKGCONFIG_generate))
167+
168+
if test ".$PKGCONFIG_src_libdir" = "." ; then
169+
PKGCONFIG_src_libdir=`pwd`
170+
PKGCONFIG_src_libdir=`AS_DIRNAME("$PKGCONFIG_src_libdir/$PKGCONFIG_generate")`
171+
test ! -d $PKGCONFIG_src_libdir/src || \
172+
PKGCONFIG_src_libdir="$PKGCONFIG_src_libdir/src"
173+
case ".$objdir" in
174+
*libs) PKGCONFIG_src_libdir="$PKGCONFIG_src_libdir/$objdir" ;; esac
175+
AC_MSG_RESULT(noninstalled pkgconfig -L $PKGCONFIG_src_libdir)
176+
fi
177+
178+
if test ".$PKGCONFIG_src_headers" = "." ; then
179+
PKGCONFIG_src_headers=`pwd`
180+
v="$ac_top_srcdir" ;
181+
test ".$v" != "." || v="$ax_spec_dir"
182+
test ".$v" != "." || v="$srcdir"
183+
case "$v" in /*) PKGCONFIG_src_headers="" ;; esac
184+
PKGCONFIG_src_headers=`AS_DIRNAME("$PKGCONFIG_src_headers/$v/x")`
185+
test ! -d $PKGCONFIG_src_headers/incl[]ude || \
186+
PKGCONFIG_src_headers="$PKGCONFIG_src_headers/incl[]ude"
187+
AC_MSG_RESULT(noninstalled pkgconfig -I $PKGCONFIG_src_headers)
188+
fi
189+
190+
191+
dnl AC_CONFIG_COMMANDS crap disallows to use $PKGCONFIG_libfile here...
192+
AC_CONFIG_COMMANDS([$ax_create_pkgconfig_generate],[
193+
pkgconfig_generate="$ax_create_pkgconfig_generate"
194+
if test ! -f "$pkgconfig_generate.in"
195+
then generate="true"
196+
elif grep ' generated by configure ' $pkgconfig_generate.in >/dev/null
197+
then generate="true"
198+
else generate="false";
199+
fi
200+
if $generate ; then
201+
AC_MSG_NOTICE(creating $pkgconfig_generate.in)
202+
cat > $pkgconfig_generate.in <<AXEOF
203+
# generated by configure / remove this line to disable regeneration
204+
prefix=@prefix@
205+
exec_prefix=@exec_prefix@
206+
bindir=@bindir@
207+
libdir=@libdir@
208+
datarootdir=@datarootdir@
209+
datadir=@datadir@
210+
sysconfdir=@sysconfdir@
211+
includedir=@includedir@
212+
package=@PACKAGE@
213+
suffix=@suffix@
214+
215+
Name: @PACKAGE_NAME@
216+
Description: @PACKAGE_DESCRIPTION@
217+
Version: @PACKAGE_VERSION@
218+
Requires: @PACKAGE_REQUIRES@
219+
Libs: -L\${libdir} @LDFLAGS@ @LIBS@
220+
Cflags: -I\${includedir} @CPPFLAGS@
221+
AXEOF
222+
fi # DONE generate $pkgconfig_generate.in
223+
AC_MSG_NOTICE(creating $pkgconfig_generate)
224+
cat >conftest.sed <<AXEOF
225+
s|@prefix@|${pkgconfig_prefix}|
226+
s|@exec_prefix@|${pkgconfig_execprefix}|
227+
s|@bindir@|${pkgconfig_bindir}|
228+
s|@libdir@|${pkgconfig_libdir}|
229+
s|@datarootdir@|${pkgconfig_datarootdir}|
230+
s|@datadir@|${pkgconfig_datadir}|
231+
s|@sysconfdir@|${pkgconfig_sysconfdir}|
232+
s|@includedir@|${pkgconfig_includedir}|
233+
s|@suffix@|${pkgconfig_suffix}|
234+
s|@PACKAGE@|${pkgconfig_package}|
235+
s|@PACKAGE_NAME@|${pkgconfig_libname}|
236+
s|@PACKAGE_DESCRIPTION@|${pkgconfig_description}|
237+
s|@PACKAGE_VERSION@|${pkgconfig_version}|
238+
s|@PACKAGE_REQUIRES@|${pkgconfig_requires}|
239+
s|@LIBS@|${pkgconfig_libs}|
240+
s|@LDFLAGS@|${pkgconfig_ldflags}|
241+
s|@CPPFLAGS@|${pkgconfig_cppflags}|
242+
AXEOF
243+
sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_generate
244+
if test ! -s $pkgconfig_generate ; then
245+
AC_MSG_ERROR([$pkgconfig_generate is empty])
246+
fi ; rm conftest.sed # DONE generate $pkgconfig_generate
247+
pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.pc/'`
248+
AC_MSG_NOTICE(creating $pkgconfig_uninstalled)
249+
cat >conftest.sed <<AXEOF
250+
s|@prefix@|${pkgconfig_prefix}|
251+
s|@exec_prefix@|${pkgconfig_execprefix}|
252+
s|@bindir@|${pkgconfig_bindir}|
253+
s|@libdir@|${pkgconfig_src_libdir}|
254+
s|@datarootdir@|${pkgconfig_datarootdir}|
255+
s|@datadir@|${pkgconfig_datadir}|
256+
s|@sysconfdir@|${pkgconfig_sysconfdir}|
257+
s|@includedir@|${pkgconfig_src_headers}|
258+
s|@suffix@|${pkgconfig_suffix}|
259+
s|@PACKAGE@|${pkgconfig_package}|
260+
s|@PACKAGE_NAME@|${pkgconfig_libname}|
261+
s|@PACKAGE_DESCRIPTION@|${pkgconfig_description}|
262+
s|@PACKAGE_VERSION@|${pkgconfig_version}|
263+
s|@PACKAGE_REQUIRES@|${pkgconfig_requires}|
264+
s|@LIBS@|${pkgconfig_libs}|
265+
s|@LDFLAGS@|${pkgconfig_ldflags}|
266+
s|@CPPFLAGS@|${pkgconfig_cppflags}|
267+
AXEOF
268+
sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled
269+
if test ! -s $pkgconfig_uninstalled ; then
270+
AC_MSG_ERROR([$pkgconfig_uninstalled is empty])
271+
fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled
272+
pkgconfig_requires_add=`echo ${pkgconfig_requires}`
273+
if test ".$pkgconfig_requires_add" != "." ; then
274+
pkgconfig_requires_add="pkg-config $pkgconfig_requires_add"
275+
else pkgconfig_requires_add=":" ; fi
276+
pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.sh/'`
277+
AC_MSG_NOTICE(creating $pkgconfig_uninstalled)
278+
cat >conftest.sed <<AXEOF
279+
s|@prefix@|\"${pkgconfig_prefix}\"|
280+
s|@exec_prefix@|\"${pkgconfig_execprefix}\"|
281+
s|@bindir@|\"${pkgconfig_bindir}\"|
282+
s|@libdir@|\"${pkgconfig_src_libdir}\"|
283+
s|@datarootdir@|\"${pkgconfig_datarootdir}\"|
284+
s|@datadir@|\"${pkgconfig_datadir}\"|
285+
s|@sysconfdir@|\"${pkgconfig_sysconfdir}\"|
286+
s|@includedir@|\"${pkgconfig_src_headers}\"|
287+
s|@suffix@|\"${pkgconfig_suffix}\"|
288+
s|@PACKAGE@|\"${pkgconfig_package}\"|
289+
s|@PACKAGE_NAME@|\"${pkgconfig_libname}\"|
290+
s|@PACKAGE_DESCRIPTION@|\"${pkgconfig_description}\"|
291+
s|@PACKAGE_VERSION@|\"${pkgconfig_version}\"|
292+
s|@PACKAGE_REQUIRES@|\"${pkgconfig_requires}\"|
293+
s|@LIBS@|\"${pkgconfig_libs}\"|
294+
s|@LDFLAGS@|\"${pkgconfig_ldflags}\"|
295+
s|@CPPFLAGS@|\"${pkgconfig_cppflags}\"|
296+
s>Name:>for option\\; do case \"\$option\" in --list-all|--name) echo >
297+
s>Description: *>\\;\\; --help) pkg-config --help \\; echo Buildscript Of >
298+
s>Version: *>\\;\\; --modversion|--version) echo >
299+
s>Requires:>\\;\\; --requires) echo $pkgconfig_requires_add>
300+
s>Libs: *>\\;\\; --libs) echo >
301+
s>Cflags: *>\\;\\; --cflags) echo >
302+
/--libs)/a\\
303+
$pkgconfig_requires_add
304+
/--cflags)/a\\
305+
$pkgconfig_requires_add\\
306+
;; --variable=*) eval echo '\$'\`echo \$option | sed -e 's/.*=//'\`\\
307+
;; --uninstalled) exit 0 \\
308+
;; *) ;; esac done
309+
AXEOF
310+
sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled
311+
if test ! -s $pkgconfig_uninstalled ; then
312+
AC_MSG_ERROR([$pkgconfig_uninstalled is empty])
313+
fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled
314+
],[
315+
dnl AC_CONFIG_COMMANDS crap, the AS_PUSHVAR defines are invalid here...
316+
ax_create_pkgconfig_generate="$ax_create_pkgconfig_generate"
317+
pkgconfig_prefix='$prefix'
318+
pkgconfig_execprefix='$exec_prefix'
319+
pkgconfig_bindir='$bindir'
320+
pkgconfig_libdir='$libdir'
321+
pkgconfig_includedir='$includedir'
322+
pkgconfig_datarootdir='$datarootdir'
323+
pkgconfig_datadir='$datadir'
324+
pkgconfig_sysconfdir='$sysconfdir'
325+
pkgconfig_suffix='$ax_create_pkgconfig_suffix'
326+
pkgconfig_package='$PACKAGE_NAME'
327+
pkgconfig_libname='$ax_create_pkgconfig_libname'
328+
pkgconfig_description='$ax_create_pkgconfig_description'
329+
pkgconfig_version='$ax_create_pkgconfig_version'
330+
pkgconfig_requires='$ax_create_pkgconfig_requires'
331+
pkgconfig_libs='$ax_create_pkgconfig_libs'
332+
pkgconfig_ldflags='$ax_create_pkgconfig_ldflags'
333+
pkgconfig_cppflags='$ax_create_pkgconfig_cppflags'
334+
pkgconfig_src_libdir='$ax_create_pkgconfig_src_libdir'
335+
pkgconfig_src_headers='$ax_create_pkgconfig_src_headers'
336+
])dnl
337+
AS_VAR_POPDEF([PKGCONFIG_suffix])dnl
338+
AS_VAR_POPDEF([PKGCONFIG_libdir])dnl
339+
AS_VAR_POPDEF([PKGCONFIG_libfile])dnl
340+
AS_VAR_POPDEF([PKGCONFIG_libname])dnl
341+
AS_VAR_POPDEF([PKGCONFIG_version])dnl
342+
AS_VAR_POPDEF([PKGCONFIG_description])dnl
343+
AS_VAR_POPDEF([PKGCONFIG_requires])dnl
344+
AS_VAR_POPDEF([PKGCONFIG_pkglibs])dnl
345+
AS_VAR_POPDEF([PKGCONFIG_libs])dnl
346+
AS_VAR_POPDEF([PKGCONFIG_ldflags])dnl
347+
AS_VAR_POPDEF([PKGCONFIG_cppflags])dnl
348+
AS_VAR_POPDEF([PKGCONFIG_generate])dnl
349+
AS_VAR_POPDEF([PKGCONFIG_src_libdir])dnl
350+
AS_VAR_POPDEF([PKGCONFIG_src_headers])dnl
351+
])

0 commit comments

Comments
 (0)