#------------------------------------------------------------- -*- makefile -*- # # Sample makefile for building Tcl extensions. # # Basic build, test and install # nmake /s /nologo /f makefile.vc INSTALLDIR=c:\path\to\tcl # nmake /s /nologo /f makefile.vc INSTALLDIR=c:\path\to\tcl test # nmake /s /nologo /f makefile.vc INSTALLDIR=c:\path\to\tcl install # # For other build options (debug, static etc.) # See TIP 477 (https://core.tcl.tk/tips/doc/trunk/tip/477.md) for # detailed documentation. # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # #------------------------------------------------------------------------------ # PROJECT is sqlite, not sqlite3 to match TEA AC_INIT definition. # This makes the generated DLL name also consistent between the two # except for the "t" suffix which is the convention for nmake builds. PROJECT = sqlite PRJ_PACKAGE_TCLNAME = sqlite3 !include "rules-ext.vc" PRJ_OBJS = $(TMP_DIR)\tclsqlite3.obj $(ROOT)\manifest.uuid: copy $(WIN_DIR)\gitmanifest.in $(ROOT)\manifest.uuid git rev-parse HEAD >>$(ROOT)\manifest.uuid $(TMP_DIR)\sqlite3Uuid.h: $(ROOT)\manifest.uuid copy $(WIN_DIR)\sqlite3Uuid.h.in+$(ROOT)\manifest.uuid $(TMP_DIR)\sqlite3Uuid.h # Preprocessor macros specific to sqlite3. PRJ_DEFINES = -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \ -DSQLITE_ENABLE_DBPAGE_VTAB=1 -DSQLITE_ENABLE_DBSTAT_VTAB=1 \ -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 -DSQLITE_ENABLE_FTS4=1 \ -DSQLITE_ENABLE_FTS5=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 \ -DSQLITE_ENABLE_JSON1=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS=1 \ -DSQLITE_3_SUFFIX_ONLY=1 -DSQLITE_ENABLE_RTREE=1 \ -DSQLITE_UNTESTABLE=1 -DSQLITE_OMIT_LOOKASIDE=1 \ -DSQLITE_SECURE_DELETE=1 -DSQLITE_SOUNDEX=1 -DSQLITE_ENABLE_GEOPOLY=1 \ -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1 \ -DSQLITE_ENABLE_MATH_FUNCTIONS=1 -DDSQLITE_USE_ALLOCA=1 \ -DSQLITE_ENABLE_STAT4=1 -DSQLITE_OMIT_DEPRECATED=1 \ -DSQLITE_WIN32_GETVERSIONEX=0 -DSQLITE_WIN32_NO_ANSI=1 PRJ_DEFINES = $(PRJ_DEFINES) -I$(TMP_DIR) # Standard targets to build, install, test etc. !include "$(_RULESDIR)\targets.vc" # The built-in pkgindex does no suffice for our extension as # the PROJECT name (sqlite) is not same as init function name (Sqlite3) pkgindex: @echo if {[package vsatisfies [package provide Tcl] 9.0-]} { > $(OUT_DIR)\pkgIndex.tcl @echo package ifneeded $(PRJ_PACKAGE_TCLNAME) $(DOTVERSION) \ [list load [file join $$dir $(PRJLIBNAME9)] [string totitle $(PRJ_PACKAGE_TCLNAME)]] >> $(OUT_DIR)\pkgIndex.tcl @echo } else { >> $(OUT_DIR)\pkgIndex.tcl @echo package ifneeded $(PRJ_PACKAGE_TCLNAME) $(DOTVERSION) \ [list load [file join $$dir $(PRJLIBNAME8)] [string totitle $(PRJ_PACKAGE_TCLNAME)]] >> $(OUT_DIR)\pkgIndex.tcl @echo } >> $(OUT_DIR)\pkgIndex.tcl # Install the manpage though on Windows, doubt it does much good install: default-install-docs-n # Explicit dependency rules $(GENERICDIR)\tclsqlite3.c : $(TMP_DIR)\sqlite3Uuid.h