Skip to content

Commit c3268b8

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.
1 parent 4352a58 commit c3268b8

File tree

2 files changed

+173
-72
lines changed

2 files changed

+173
-72
lines changed

acinclude.m4

+50
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,56 @@ 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+
fi
148+
149+
# libdir
150+
tmp=`$PKG_CONFIG --variable=libdir $withpath $1` dnl ' Fix Vim syntax
151+
eval "${tmpalias}_libdir=\"\${tmp}\""
152+
153+
# includedir
154+
tmp=`$PKG_CONFIG --variable=includedir $withpath $1` dnl ' Fix Vim syntax
155+
eval "${tmpalias}_includedir=\"\${tmp}\""
156+
157+
# LIBS
158+
tmp=`$PKG_CONFIG --libs-only-l $withpath $1` dnl ' Fix Vim syntax
159+
eval "${tmpalias}_LIBS=\"\${tmp}\""
160+
161+
# LDFLAGS
162+
tmp=`$PKG_CONFIG --libs-only-L $withpath $1` dnl ' Fix Vim syntax
163+
eval "${tmpalias}_LDFLAGS=\"\${tmp}\""
164+
165+
# CPPFLAGS
166+
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
167+
tmp="`$PKG_CONFIG --cflags-only-I $withpath $1` $tmp" dnl ' Fix Vim syntax
168+
eval "${tmpalias}_CPPFLAGS=\"\${tmp}\""
169+
170+
# CFLAGS
171+
tmp=`$PKG_CONFIG --cflags-only-other $withpath $1 | sed 's/\(-D\w\+\)\(\|=\w\+\)//g' | sed 's/ / /g'` dnl ' Fix Vim syntax
172+
eval "${tmpalias}_CFLAGS=\"\${tmp}\""
173+
else
174+
eval "${tmpalias}_LDFLAGS=\"-L\${2}\""
175+
eval "${tmpalias}_CPPFLAGS=\"-I\${3}\""
176+
fi
177+
])
178+
179+
180+
131181
dnl FLINT_CC_IS_GCC([action-if-true],[action-if-false])
132182
dnl -----------------------
133183
dnl Checks if compiler is GCC.

0 commit comments

Comments
 (0)