Files
ports/databases/sqlite3/Makefile
Guido Falsi 800739d5ca Add explicit SQLITE_ENABLE_FTS3. This fixes the firefox and thunderburd
ports build.

Due to recent changes in sqlite3 even if this flag is actually
implicitly added to the build when the FTS4 option is enabled, it
is not reported as present via the
sqlite3_compileoption_used("SQLITE_ENABLE_FTS3") API call, which
is used by the gecko ports configure script to check for a suitable
sqlite3 library.

Related upstream change: https://sqlite.org/src/info/9a443397a6b110f6

PR:		221361, 219963
Submitted by:	Vladimir Krstulja <vlad-fbsd@acheronmedia.com>,
		jbeich@
Approved by:	portmgr@ (blanket)
MFH:		2017Q3
2017-08-09 14:04:03 +00:00

227 lines
7.7 KiB
Makefile

# Created by: Ying-Chieh Liao <ijliao@FreeBSD.org>
# $FreeBSD$
PORTNAME= sqlite3
PORTVERSION= 3.20.0
PORTREVISION= 1
CATEGORIES= databases
MASTER_SITES= https://www.sqlite.org/2017/ http://www2.sqlite.org/2017/ http://www3.sqlite.org/2017/
DISTNAME= sqlite-autoconf-${PORTVERSION:C/\.([[:digit:]])[[:>:]]/0\1/g:S/.//g}00
MAINTAINER= pavelivolkov@gmail.com
COMMENT= SQL database engine in a C library
LICENSE= PD
USES= libtool ncurses pathfix
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
INSTALL_TARGET= install-strip
MAKE_JOBS_UNSAFE= yes
# Compilation Options For SQLite https://www.sqlite.org/compile.html
OPTIONS_DEFINE= FTS4 UPD_DEL_LIMIT URI URI_AUTHORITY SOUNDEX METADATA \
DIRECT_READ MEMMAN SECURE_DELETE UNLOCK_NOTIFY THREADS \
EXTENSION ARMOR STMT DBSTAT FTS5 JSON1 RBU NULL_TRIM \
LIKENOTBLOB STSHELL FTS3_TOKEN SESSION UNKNOWN_SQL
OPTIONS_SINGLE= RAMT
OPTIONS_RADIO= STAT
OPTIONS_GROUP= UNICODE RTREEG RL
UPD_DEL_LIMIT_DESC= ORDER BY and LIMIT on UPDATE and DELETE
URI_DESC= Enable use the URI filename
URI_AUTHORITY_DESC= Allow convert URL into a UNC
SOUNDEX_DESC= Enables the soundex() SQL function
METADATA_DESC= Enable column metadata
DIRECT_READ_DESC= File is read directly from disk
MEMMAN_DESC= Allows it to release unused memory
SECURE_DELETE_DESC= Overwrite deleted information with zeros
UNLOCK_NOTIFY_DESC= Enable notification on unlocking
EXTENSION_DESC= Allow loadable extensions
STSHELL_DESC= Statically link libsqlite3 into shell
# https://sqlite.org/compile.html#enable_null_trim
NULL_TRIM_DESC= Omits NULL columns at the ends of rows
# https://www.sqlite.org/sessionintro.html
SESSION_DESC= Enable the Session Extension
# https://sqlite.org/compile.html#like_doesnt_match_blobs
LIKENOTBLOB_DESC= LIKE does not match blobs
# https://www.sqlite.org/compile.html#enable_api_armor
ARMOR_DESC= Detect misuse of the API
# http://sqlite.org/compile.html#enable_unknown_sql_function
UNKNOWN_SQL_DESC= suppress unknown function errors
# https://www.sqlite.org/fts3.html
# https://www.sqlite.org/compile.html#enable_fts3_parenthesis
FTS4_DESC= Enable FTS3/4 (Full Text Search) module
# https://www.sqlite.org/fts5.html
FTS5_DESC= Enable version 5 full-text search engine
# https://www.sqlite.org/compile.html#enable_fts3_tokenizer
# https://www.sqlite.org/fts3.html#f3tknzr
FTS3_TOKEN_DESC= Enable two-args version fts3_tokenizer
# https://www.sqlite.org/json1.html
JSON1_DESC= Enable the JSON1 extension
# https://www.sqlite.org/rbu.html
RBU_DESC= Enable the Resumable Bulk Update
# https://www.sqlite.org/c3ref/stmt_scanstatus.html
STMT_DESC= Prepared Statement Scan Status
# https://www.sqlite.org/tempfiles.html#tempstore
OPTIONS_SINGLE_RAMT= TS0 TS1 TS2 TS3
RAMT_DESC= Where to store temporary file
TS0_DESC= Always use temporary file
TS1_DESC= File by default, change allowed PRAGMA
TS2_DESC= Memory by default, change allowed PRAGMA
TS3_DESC= Always use memory
# https://www.sqlite.org/queryplanner-ng.html#qpstab
OPTIONS_RADIO_STAT= STAT3 STAT4
STAT_DESC= Which query planner to use, Stability or ...
STAT3_DESC= collect histogram data from leftmost column
STAT4_DESC= collect histogram data from all columns
# https://www.sqlite.org/dbstat.html
DBSTAT_DESC= Enable DBSTAT Virtual Table
# https://www.sqlite.org/fts3.html#tokenizer
OPTIONS_GROUP_UNICODE= ICU UNICODE61
UNICODE_DESC= Unicode support
UNICODE61_DESC= Unicode Version 6.1 tokenizer
# https://www.sqlite.org/rtree.html
OPTIONS_GROUP_RTREEG= RTREE RTREE_INT
RTREEG_DESC= Index type for range queries
RTREE_DESC= Enable R*Tree module
RTREE_INT_DESC= Store 32-bit sig int (no float) coordinates
OPTIONS_GROUP_RL= READLINES READLINEP EDITLINE
RL_DESC= Which command line editing library to use:
READLINES_DESC= the libreadline from system
READLINEP_DESC= the GNU libreadline from ports
EDITLINE_DESC= the BSD libedit from ports
READLINES_PREVENTS= READLINEP EDITLINE
READLINEP_PREVENTS= READLINES EDITLINE
EDITLINE_PREVENTS= READLINES READLINEP
OPTIONS_DEFAULT= FTS4 URI METADATA SECURE_DELETE UNLOCK_NOTIFY THREADS \
EXTENSION TS1 UNICODE61 RTREE DBSTAT STSHELL READLINES \
FTS3_TOKEN
# SECURE_DELETE, UNLOCK_NOTIFY, DBSTAT (since 41.0) used by www/firefox et al.
# RTREE used by graphics/mapnik, databases/spatialite
# FTS3_TOKEN used by audio/clementine-player
PLIST_FILES= bin/sqlite3 include/sqlite3.h include/sqlite3ext.h \
lib/libsqlite3.a lib/libsqlite3.so lib/libsqlite3.so.0 \
lib/libsqlite3.so.0.8.6 libdata/pkgconfig/sqlite3.pc \
man/man1/sqlite3.1.gz
# The default numeric file permissions for newly created database files under unix.
# If not specified, the default is 0644 which means that the files is globally
# readable but only writable by the creator.
.ifdef DEFAULT_FILE_PERMISSIONS
CPPFLAGS+= -DSQLITE_DEFAULT_FILE_PERMISSIONS=${DEFAULT_FILE_PERMISSIONS}
.endif
# Use an in-ram database for temporary tables (never,no,yes,always),
TS0_CPPFLAGS= -DSQLITE_TEMP_STORE=0
TS1_CPPFLAGS= -DSQLITE_TEMP_STORE=1
TS2_CPPFLAGS= -DSQLITE_TEMP_STORE=2
TS3_CPPFLAGS= -DSQLITE_TEMP_STORE=3
RTREE_CPPFLAGS= -DSQLITE_ENABLE_RTREE=1
RTREE_INT_CPPFLAGS= -DSQLITE_RTREE_INT_ONLY=1
FTS4_CPPFLAGS= -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 -DSQLITE_ENABLE_FTS4=1
FTS5_CONFIGURE_ENABLE= fts5
FTS3_TOKEN_CPPFLAGS= -DSQLITE_ENABLE_FTS3_TOKENIZER=1
SOUNDEX_CPPFLAGS= -DSQLITE_SOUNDEX=1
MEMMAN_CPPFLAGS= -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1
UPD_DEL_LIMIT_CPPFLAGS= -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1
UPD_DEL_LIMIT_PREVENTS= UPD_DEL_LIMIT
UPD_DEL_LIMIT_PREVENTS_MSG= this option may only be used when the library is built from source, not from the amalgamation. Please, do not select it with this port.
SECURE_DELETE_CPPFLAGS= -DSQLITE_SECURE_DELETE=1
UNLOCK_NOTIFY_CPPFLAGS= -DSQLITE_ENABLE_UNLOCK_NOTIFY=1
METADATA_CPPFLAGS= -DSQLITE_ENABLE_COLUMN_METADATA=1
STAT3_CPPFLAGS= -DSQLITE_ENABLE_STAT3=1
STAT4_CPPFLAGS= -DSQLITE_ENABLE_STAT4=1
DBSTAT_CPPFLAGS= -DSQLITE_ENABLE_DBSTAT_VTAB=1
URI_CPPFLAGS= -DSQLITE_USE_URI=1
URI_AUTHORITY_CPPFLAGS= -DSQLITE_ALLOW_URI_AUTHORITY=1
DIRECT_READ_CPPFLAGS= -DSQLITE_DIRECT_OVERFLOW_READ=1
ARMOR_CPPFLAGS= -DSQLITE_ENABLE_API_ARMOR=1
STMT_CPPFLAGS= -DSQLITE_ENABLE_STMT_SCANSTATUS=1
EXTENSION_CONFIGURE_ENABLE= dynamic-extensions
THREADS_CONFIGURE_ENABLE= threadsafe
THREADS_LIBS= -lpthread
ICU_BUILD_DEPENDS= ${LOCALBASE}/bin/icu-config:devel/icu
ICU_LIB_DEPENDS= libicudata.so:devel/icu
ICU_CPPFLAGS= `${LOCALBASE}/bin/icu-config --cppflags` -DSQLITE_ENABLE_ICU=1
ICU_LIBS= `${LOCALBASE}/bin/icu-config --ldflags`
UNICODE61_CPPFLAGS= ""
UNICODE61_CPPFLAGS_OFF= -DSQLITE_DISABLE_FTS3_UNICODE=1
READLINES_CONFIGURE_ON= --enable-readline
READLINES_USES= readline
READLINEP_CONFIGURE_ON= --enable-readline
READLINEP_USES= readline:port
EDITLINE_CONFIGURE_ENABLE= editline
EDITLINE_USES= libedit
JSON1_CONFIGURE_ENABLE= json1
RBU_CPPFLAGS= -DSQLITE_ENABLE_RBU=1
LIKENOTBLOB_CPPFLAGS= -DSQLITE_LIKE_DOESNT_MATCH_BLOBS=1
STSHELL_CONFIGURE_ENABLE= static-shell
SESSION_CONFIGURE_ENABLE= session
UNKNOWN_SQL_CPPFLAGS= -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION=1
NULL_TRIM_CPPFLAGS= -DSQLITE_ENABLE_NULL_TRIM=1
.include <bsd.port.options.mk>
# Platform Configuration
.if !defined(WITH_DEBUG)
CFLAGS+= -Os
.endif
CPPFLAGS+= -DHAVE_ISNAN=1 -DHAVE_MALLOC_USABLE_SIZE=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_USLEEP=1 -DHAVE_STRCHRNUL=1
post-configure:
@${ECHO_MSG} "===> CONFIGURE_ARGS=${CONFIGURE_ARGS}"
@${ECHO_MSG} "===> CPPFLAGS=${CPPFLAGS}"
@${ECHO_MSG} "===> CFLAGS=${CFLAGS}"
@${ECHO_MSG} "===> LDFLAGS=${LDFLAGS}"
@${ECHO_MSG} "===> LIBS=${LIBS}"
post-build:
.if ${ARCH}=="i386"
@${ECHO_MSG} "===> WARNING: on ${ARCH} don't pass atof1-* tests"
.endif
post-install:
${RM} ${STAGEDIR}${PREFIX}/include/msvc.h
# for compares with checksum from of the site
sha1:
@sha1 ${DISTDIR}/${ALLFILES}
.include <bsd.port.mk>