Skip to content

Commit 1a33d5c

Browse files
author
Erlend E. Aasland
committed
Prelim pkg-config support
1 parent 7cd7b75 commit 1a33d5c

File tree

5 files changed

+67
-11
lines changed

5 files changed

+67
-11
lines changed

Makefile.pre.in

+9
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,14 @@ LIBEXPAT_HEADERS= \
564564

565565
LIBEXPAT_A= Modules/expat/libexpat.a
566566

567+
#
568+
# SQLite stuff
569+
#
570+
571+
# For setup.py
572+
PY_SQLITE_CFLAGS=@PY_SQLITE_CFLAGS@
573+
PY_SQLITE_LDFLAGS=@PY_SQLITE_LDFLAGS@
574+
567575
#########################################################################
568576
# Rules
569577

@@ -2471,6 +2479,7 @@ MODULE__SHA512_DEPS=$(srcdir)/Modules/hashlib.h
24712479
MODULE__SOCKET_DEPS=$(srcdir)/Modules/socketmodule.h
24722480
MODULE__SSL_DEPS=$(srcdir)/Modules/_ssl.h $(srcdir)/Modules/_ssl/cert.c $(srcdir)/Modules/_ssl/debughelpers.c $(srcdir)/Modules/_ssl/misc.c $(srcdir)/Modules/_ssl_data.h $(srcdir)/Modules/_ssl_data_111.h $(srcdir)/Modules/_ssl_data_300.h $(srcdir)/Modules/socketmodule.h
24732481
MODULE__TESTCAPI_DEPS=$(srcdir)/Modules/testcapi_long.h
2482+
MODULE__SQLITE3_DEPS=$(srcdir)/Modules/_sqlite/connection.h $(srcdir)/Modules/_sqlite/cursor.h $(srcdir)/Modules/_sqlite/microprotocols.h $(srcdir)/Modules/_sqlite/module.h $(srcdir)/Modules/_sqlite/prepare_protocol.h $(srcdir)/Modules/_sqlite/row.h $(srcdir)/Modules/_sqlite/util.h
24742483

24752484
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
24762485
# Local Variables:

Modules/Setup

+1-1
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ time timemodule.c
218218
#_dbm _dbmmodule.c -lgdbm_compat -DUSE_GDBM_COMPAT
219219
#_gdbm _gdbmmodule.c -lgdbm
220220
#_lzma _lzmamodule.c -llzma
221-
#_sqlite3 _sqlite/connection.c _sqlite/cursor.c _sqlite/microprotocols.c _sqlite/module.c _sqlite/prepare_protocol.c _sqlite/row.c _sqlite/statement.c _sqlite/util.c -lsqlite3
221+
#_sqlite3 _sqlite/connection.c _sqlite/cursor.c _sqlite/microprotocols.c _sqlite/module.c _sqlite/prepare_protocol.c _sqlite/row.c _sqlite/statement.c _sqlite/util.c $(PY_SQLITE_LDFLAGS)
222222
#_uuid _uuidmodule.c -luuid
223223
#zlib zlibmodule.c -lz
224224

configure

+20-2
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,8 @@ DFLAGS
660660
DTRACE
661661
TCLTK_LIBS
662662
TCLTK_INCLUDES
663+
PY_SQLITE_LDFLAGS
664+
PY_SQLITE_CFLAGS
663665
LIBMPDEC_INTERNAL
664666
LIBMPDEC_LDFLAGS
665667
LIBMPDEC_CFLAGS
@@ -10921,10 +10923,21 @@ if test "$have_glibc_memmove_bug" = yes; then
1092110923
as_fn_append LIBMPDEC_CFLAGS " -U_FORTIFY_SOURCE"
1092210924
fi
1092310925

10926+
10927+
10928+
if test ! -z "$PKG_CONFIG"; then
10929+
as_fn_append PY_SQLITE_CFLAGS "`"$PKG_CONFIG" sqlite3 --cflags-only-I 2>/dev/null`"
10930+
as_fn_append PY_SQLITE_LDFLAGS "`"$PKG_CONFIG" sqlite3 --libs-only-L 2>/dev/null`"
10931+
fi
10932+
10933+
save_CFLAGS=$CFLAGS
10934+
save_LDFLAGS=$LDFLAGS
10935+
as_fn_append CFLAGS "$PY_SQLITE_CFLAGS"
10936+
as_fn_append LDFLAGS "$PY_SQLITE_LDFLAGS"
10937+
1092410938
ac_fn_c_check_header_mongrel "$LINENO" "sqlite3.h" "ac_cv_header_sqlite3_h" "$ac_includes_default"
1092510939
if test "x$ac_cv_header_sqlite3_h" = xyes; then :
1092610940

10927-
save_LIBS=$LIBS
1092810941
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_open_v2 in -lsqlite3" >&5
1092910942
$as_echo_n "checking for sqlite3_open_v2 in -lsqlite3... " >&6; }
1093010943
if ${ac_cv_lib_sqlite3_sqlite3_open_v2+:} false; then :
@@ -10983,8 +10996,11 @@ main ()
1098310996
_ACEOF
1098410997
if ac_fn_c_try_compile "$LINENO"; then :
1098510998

10999+
1098611000
$as_echo "#define HAVE_LIBSQLITE3 1" >>confdefs.h
1098711001

11002+
as_fn_append PY_SQLITE_LDFLAGS " -lsqlite3"
11003+
1098811004
fi
1098911005
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
1099011006

@@ -11032,12 +11048,14 @@ else
1103211048
have_sqlite3_load_extension=no
1103311049
fi
1103411050

11035-
LIBS=$save_LIBS
1103611051

1103711052
fi
1103811053

1103911054

1104011055

11056+
CFLAGS=$save_CFLAGS
11057+
LDFLAGS=$save_LDFLAGS
11058+
1104111059
# Check for support for loadable sqlite extensions
1104211060
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-loadable-sqlite-extensions" >&5
1104311061
$as_echo_n "checking for --enable-loadable-sqlite-extensions... " >&6; }

configure.ac

+20-4
Original file line numberDiff line numberDiff line change
@@ -3165,9 +3165,20 @@ if test "$have_glibc_memmove_bug" = yes; then
31653165
AS_VAR_APPEND([LIBMPDEC_CFLAGS], [" -U_FORTIFY_SOURCE"])
31663166
fi
31673167

3168-
dnl Check for SQLite library
3168+
dnl Check for SQLite library. Use pkg-config if available.
3169+
AC_SUBST([PY_SQLITE_CFLAGS])
3170+
AC_SUBST([PY_SQLITE_LDFLAGS])
3171+
if test ! -z "$PKG_CONFIG"; then
3172+
AS_VAR_APPEND([PY_SQLITE_CFLAGS], ["`"$PKG_CONFIG" sqlite3 --cflags-only-I 2>/dev/null`"])
3173+
AS_VAR_APPEND([PY_SQLITE_LDFLAGS], ["`"$PKG_CONFIG" sqlite3 --libs-only-L 2>/dev/null`"])
3174+
fi
3175+
3176+
AS_VAR_COPY([save_CFLAGS], [CFLAGS])
3177+
AS_VAR_COPY([save_LDFLAGS], [LDFLAGS])
3178+
AS_VAR_APPEND([CFLAGS], ["$PY_SQLITE_CFLAGS"])
3179+
AS_VAR_APPEND([LDFLAGS], ["$PY_SQLITE_LDFLAGS"])
3180+
31693181
AC_CHECK_HEADER([sqlite3.h], [
3170-
AS_VAR_COPY([save_LIBS], [LIBS])
31713182
AC_CHECK_LIB([sqlite3], [sqlite3_open_v2], [
31723183
AC_COMPILE_IFELSE([
31733184
AC_LANG_PROGRAM([
@@ -3176,14 +3187,19 @@ AC_CHECK_HEADER([sqlite3.h], [
31763187
# error "SQLite 3.7.15 or higher required"
31773188
#endif
31783189
], [])
3179-
], [AC_DEFINE([HAVE_LIBSQLITE3], [1], [Define if SQLite > 3.7.15 is found])])
3190+
], [
3191+
AC_DEFINE([HAVE_LIBSQLITE3], [1], [Define if SQLite > 3.7.15 is found])
3192+
AS_VAR_APPEND([PY_SQLITE_LDFLAGS], [" -lsqlite3"])
3193+
])
31803194
])
31813195
AC_CHECK_LIB([sqlite3], [sqlite3_load_extension],
31823196
[have_sqlite3_load_extension=yes],
31833197
[have_sqlite3_load_extension=no])
3184-
AS_VAR_COPY([LIBS], [save_LIBS])
31853198
])
31863199

3200+
AS_VAR_COPY([CFLAGS], [save_CFLAGS])
3201+
AS_VAR_COPY([LDFLAGS], [save_LDFLAGS])
3202+
31873203
# Check for support for loadable sqlite extensions
31883204
AC_MSG_CHECKING(for --enable-loadable-sqlite-extensions)
31893205
AC_ARG_ENABLE(loadable-sqlite-extensions,

setup.py

+17-4
Original file line numberDiff line numberDiff line change
@@ -1359,7 +1359,13 @@ def detect_sqlite(self):
13591359
self.missing.append("_sqlite3")
13601360
return
13611361

1362-
sqlite_srcs = [
1362+
cflags = parse_cflags(sysconfig.get_config_var("PY_SQLITE_CFLAGS"))
1363+
include_dirs, define_macros, undef_macros, extra_compile_args = cflags
1364+
1365+
ldflags = parse_ldflags(sysconfig.get_config_var("PY_SQLITE_LDFLAGS"))
1366+
library_dirs, libraries, extra_link_args = ldflags
1367+
1368+
sources = [
13631369
"_sqlite/connection.c",
13641370
"_sqlite/cursor.c",
13651371
"_sqlite/microprotocols.c",
@@ -1369,9 +1375,16 @@ def detect_sqlite(self):
13691375
"_sqlite/statement.c",
13701376
"_sqlite/util.c",
13711377
]
1372-
self.add(Extension("_sqlite3", sqlite_srcs,
1373-
include_dirs=["Modules/_sqlite"],
1374-
libraries=["sqlite3",]))
1378+
library_dirs.append("Modules/_sqlite")
1379+
self.add(Extension("_sqlite3",
1380+
include_dirs=include_dirs,
1381+
define_macros=define_macros,
1382+
undef_macros=undef_macros,
1383+
extra_compile_args=extra_compile_args,
1384+
library_dirs=library_dirs,
1385+
libraries=libraries,
1386+
extra_link_args=extra_link_args,
1387+
sources=sources))
13751388

13761389
def detect_platform_specific_exts(self):
13771390
# Unix-only modules

0 commit comments

Comments
 (0)