Skip to content

Commit 08dfa0e

Browse files
committed
Use pkg-config in Autotools
This commit treats the following: - Detects if pkg-config or pkgconf is available - Uses pkg-config to set the correct flags for dependencies. In particular, this solves issues when compiling against static libraries. - Cleans up configure.ac - Sets LDFLAGS, CFLAGS, CPPFLAGS and LIBS correctly and trims their corresponding string - Now pushes -lgc if GC is used. Seems to have gone unnoticed. - Pushes LIBS into flint.pc
1 parent 4352a58 commit 08dfa0e

File tree

3 files changed

+184
-73
lines changed

3 files changed

+184
-73
lines changed

acinclude.m4

+52
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,58 @@ define(FAST_VROUNDPD_PATTERN,
128128
[[znver[2-4]* | sandybridge* | ivybridge*]])
129129

130130

131+
132+
dnl FLINT_SET_LIBFLAGS(lib,lib-path,include-path,[library_alias])
133+
dnl -----------------------
134+
dnl Sets lib_LDFLAGS and lib_CPPFLAGS to include and link library.
135+
dnl If pkg-config is available, lib_CFLAGS, lib_LIBS, lib_libdir,
136+
dnl lib_includedir are also set and also sets lib_LIBS with the appropriate
137+
dnl `-l' flag(s). Else, straight up use lib-path and include-path.
138+
139+
AC_DEFUN([FLINT_SET_LIBFLAGS],
140+
[tmpalias=m4_default([$4],[$1])
141+
142+
if test "x$PKG_CONFIG" != "x";
143+
then
144+
if test "x$2" != "x";
145+
then
146+
withpath="--with-path=$2"
147+
else
148+
withpath=""
149+
fi
150+
151+
# libdir
152+
tmp=`$PKG_CONFIG --variable=libdir $withpath $1` dnl ' Fix Vim syntax
153+
eval ${tmpalias}_libdir="\${tmp}"
154+
155+
# includedir
156+
tmp=`$PKG_CONFIG --variable=includedir $withpath $1` dnl ' Fix Vim syntax
157+
eval ${tmpalias}_includedir="\${tmp}"
158+
159+
# LIBS
160+
tmp=`$PKG_CONFIG --libs-only-l $withpath $1` dnl ' Fix Vim syntax
161+
eval ${tmpalias}_LIBS="\${tmp}"
162+
163+
# LDFLAGS
164+
tmp=`$PKG_CONFIG --libs-only-L $withpath $1` dnl ' Fix Vim syntax
165+
eval ${tmpalias}_LDFLAGS="\${tmp}"
166+
167+
# CPPFLAGS
168+
tmp=`$PKG_CONFIG --cflags-only-other $withpath $1 | sed -n 's/\(-D\w\+\)\(\|=\w\+\)/\n\1\2\n/gp' | sed -n '/^-D/p'` dnl ' Fix Vim syntax
169+
tmp="`$PKG_CONFIG --cflags-only-I $withpath $1` $tmp" dnl ' Fix Vim syntax
170+
eval ${tmpalias}_CPPFLAGS="\${tmp}"
171+
172+
# CFLAGS
173+
tmp=`$PKG_CONFIG --cflags-only-other $withpath $1 | sed 's/\(-D\w\+\)\(\|=\w\+\)//g' | sed 's/ / /g'` dnl ' Fix Vim syntax
174+
eval ${tmpalias}_CFLAGS="\${tmp}"
175+
else
176+
eval ${tmpalias}_LDFLAGS="-L\${2}"
177+
eval ${tmpalias}_CPPFLAGS="-I\${3}"
178+
fi
179+
])
180+
181+
182+
131183
dnl FLINT_CC_IS_GCC([action-if-true],[action-if-false])
132184
dnl -----------------------
133185
dnl Checks if compiler is GCC.

0 commit comments

Comments
 (0)