# # ***** BEGIN LICENSE BLOCK ***** # Version: MPL 1.1/GPL 2.0/LGPL 2.1 # # The contents of this file are subject to the Mozilla Public License Version # 1.1 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # http://www.mozilla.org/MPL/ # # Software distributed under the License is distributed on an "AS IS" basis, # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License # for the specific language governing rights and limitations under the # License. # # The Original Code is sqlite3 code. # # The Initial Developer of the Original Code is # sqlite3 # Portions created by the Initial Developer are Copyright (C) 2004 # the Initial Developer. All Rights Reserved. # # Contributor(s): # Vladimir Vukicevic # Shawn Wilsher # Ryan VanderMeulen # # Alternatively, the contents of this file may be used under the terms of # either of the GNU General Public License Version 2 or later (the "GPL"), # or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), # in which case the provisions of the GPL or the LGPL are applicable instead # of those above. If you wish to allow use of your version of this file only # under the terms of either the GPL or the LGPL, and not to allow others to # use your version of this file under the terms of the MPL, indicate your # decision by deleting the provisions above and replace them with the notice # and other provisions required by the GPL or the LGPL. If you do not delete # the provisions above, a recipient may use your version of this file under # the terms of any one of the MPL, the GPL or the LGPL. # # ***** END LICENSE BLOCK ***** DEPTH = ../../.. topsrcdir = @top_srcdir@ srcdir = @srcdir@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk MODULE = sqlite3 LIBRARY_NAME = mozsqlite3 SHORT_LIBNAME = mozsqlt3 FORCE_SHARED_LIB = 1 VISIBILITY_FLAGS = LIB_IS_C_ONLY = 1 ifeq ($(OS_ARCH),WINNT) ifndef GNU_CC DEFFILE = $(CURDIR)/sqlite-processed.def RCFILE = sqlite.rc RESFILE = sqlite.res GARBAGE += \ sqlite-version.h \ $(DEFFILE) \ $(NULL) # We generate the appropriate version header file with our python script. sqlite-version.h: sqlite-version.py sqlite3.h $(PYTHON) $^ > $@ # We have to preprocess our def file because we need different symbols in debug # builds exposed that are not built in non-debug builds. $(DEFFILE): sqlite.def @$(PYTHON) $(topsrcdir)/config/Preprocessor.py $(DEFINES) \ $(srcdir)/sqlite.def > $(DEFFILE) export:: sqlite-version.h endif endif # XXX Force -O2 optimisation on Mac because using the default -O3 causes # crashes. See bug 676499. ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) MODULE_OPTIMIZE_FLAGS = -O2 endif EXPORTS = \ sqlite3.h \ $(NULL) CSRCS = \ sqlite3.c \ $(NULL) # -DSQLITE_SECURE_DELETE=1 will cause SQLITE to 0-fill delete data so we # don't have to vacuum to make sure the data is not visible in the file. # -DSQLITE_ENABLE_FTS3=1 enables the full-text index module. # -DSQLITE_CORE=1 statically links that module into the SQLite library. # -DSQLITE_DEFAULT_PAGE_SIZE=32768 and SQLITE_MAX_DEFAULT_PAGE_SIZE=32768 # increases the page size from 1k, see bug 416330. The value must stay in sync # with mozIStorageConnection::DEFAULT_PAGE_SIZE. # Note: Be sure to update the configure.in checks when these change! DEFINES = \ -DSQLITE_SECURE_DELETE=1 \ -DSQLITE_THREADSAFE=1 \ -DSQLITE_CORE=1 \ -DSQLITE_ENABLE_FTS3=1 \ -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 \ -DSQLITE_DEFAULT_PAGE_SIZE=32768 \ -DSQLITE_MAX_DEFAULT_PAGE_SIZE=32768 \ $(NULL) # -DSQLITE_ENABLE_LOCKING_STYLE=1 to help with AFP folders ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa) DEFINES += -DSQLITE_ENABLE_LOCKING_STYLE=1 endif # Turn on SQLite's assertions in debug builds. ifdef MOZ_DEBUG DEFINES += -DSQLITE_DEBUG=1 endif # disable PGO for Sun Studio ifdef SOLARIS_SUNPRO_CC NO_PROFILE_GUIDED_OPTIMIZE = 1 endif ifeq ($(OS_ARCH),OS2) ifdef MOZ_OS2_HIGH_MEMORY DEFINES += -DOS2_HIGH_MEMORY endif endif ifeq ($(OS_TARGET),Android) # default to user readable only to fit Android security model DEFINES += -DSQLITE_DEFAULT_FILE_PERMISSIONS=0600 endif include $(topsrcdir)/config/rules.mk # next line allows use of MOZ_OBJDIR in .mozconfig with older gcc on BeOS, maybe others LOCAL_INCLUDES += -I$(srcdir) ifeq ($(OS_ARCH),OS2) ADD_TO_DEF_FILE = $(PYTHON) $(topsrcdir)/config/Preprocessor.py $(DEFINES) \ $(srcdir)/sqlite.def | sed -e '1,/^EXPORTS$$/ d' -e 's,sqlite3,_\0,' \ -e 's,\ DATA.*$$,,' >> $(DEF_FILE) endif