Makefile.msc 87 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867
  1. #
  2. # nmake Makefile for SQLite
  3. #
  4. ###############################################################################
  5. ############################## START OF OPTIONS ###############################
  6. ###############################################################################
  7. # The toplevel directory of the source tree. This is the directory
  8. # that contains this "Makefile.msc".
  9. #
  10. TOP = .
  11. # <<mark>>
  12. # Set this non-0 to create and use the SQLite amalgamation file.
  13. #
  14. !IFNDEF USE_AMALGAMATION
  15. USE_AMALGAMATION = 1
  16. !ENDIF
  17. # <</mark>>
  18. # Optionally set EXTRA_SRC to a list of C files to append to
  19. # the generated sqlite3.c. Any sqlite3 extensions added this
  20. # way may require manual editing, as described in
  21. # https://sqlite.org/forum/forumpost/903f721f3e7c0d25
  22. #
  23. !IFNDEF EXTRA_SRC
  24. EXTRA_SRC =
  25. !ENDIF
  26. # Set this non-0 to enable full warnings (-W4, etc) when compiling.
  27. #
  28. !IFNDEF USE_FULLWARN
  29. USE_FULLWARN = 1
  30. !ENDIF
  31. # Set this non-0 to enable treating warnings as errors (-WX, etc) when
  32. # compiling.
  33. #
  34. !IFNDEF USE_FATAL_WARN
  35. USE_FATAL_WARN = 0
  36. !ENDIF
  37. # Set this non-0 to enable full runtime error checks (-RTC1, etc). This
  38. # has no effect if (any) optimizations are enabled.
  39. #
  40. !IFNDEF USE_RUNTIME_CHECKS
  41. USE_RUNTIME_CHECKS = 0
  42. !ENDIF
  43. # Set this non-0 to create a SQLite amalgamation file that excludes the
  44. # various built-in extensions.
  45. #
  46. !IFNDEF MINIMAL_AMALGAMATION
  47. MINIMAL_AMALGAMATION = 0
  48. !ENDIF
  49. # Set this non-0 to use "stdcall" calling convention for the core library
  50. # and shell executable.
  51. #
  52. !IFNDEF USE_STDCALL
  53. USE_STDCALL = 0
  54. !ENDIF
  55. # Use the USE_SEH=0 option on the nmake command line to omit structured
  56. # exception handling (SEH) support. SEH is on by default.
  57. #
  58. !IFNDEF USE_SEH
  59. USE_SEH = 1
  60. !ENDIF
  61. # Use STATICALLY_LINK_TCL=1 to statically link against TCL
  62. #
  63. !IFNDEF STATICALLY_LINK_TCL
  64. STATICALLY_LINK_TCL = 0
  65. !ELSEIF $(STATICALLY_LINK_TCL)!=0
  66. CCOPTS = $(CCOPTS) -DSTATIC_BUILD
  67. !ENDIF
  68. # Set this non-0 to have the shell executable link against the core dynamic
  69. # link library.
  70. #
  71. !IFNDEF DYNAMIC_SHELL
  72. DYNAMIC_SHELL = 0
  73. !ENDIF
  74. # Set this non-0 to enable extra code that attempts to detect misuse of the
  75. # SQLite API.
  76. #
  77. !IFNDEF API_ARMOR
  78. API_ARMOR = 0
  79. !ENDIF
  80. # If necessary, create a list of harmless compiler warnings to disable when
  81. # compiling the various tools. For the SQLite source code itself, warnings,
  82. # if any, will be disabled from within it.
  83. #
  84. !IFNDEF NO_WARN
  85. !IF $(USE_FULLWARN)!=0
  86. NO_WARN = -wd4054 -wd4055 -wd4100 -wd4127 -wd4130 -wd4152 -wd4189 -wd4206
  87. NO_WARN = $(NO_WARN) -wd4210 -wd4232 -wd4244 -wd4305 -wd4306 -wd4702 -wd4706
  88. !ENDIF
  89. !ENDIF
  90. # Set this non-0 to use the library paths and other options necessary for
  91. # Windows Phone 8.1.
  92. #
  93. !IFNDEF USE_WP81_OPTS
  94. USE_WP81_OPTS = 0
  95. !ENDIF
  96. # Set this non-0 to split the SQLite amalgamation file into chunks to
  97. # be used for debugging with Visual Studio.
  98. #
  99. !IFNDEF SPLIT_AMALGAMATION
  100. SPLIT_AMALGAMATION = 0
  101. !ENDIF
  102. # <<mark>>
  103. # Set this non-0 to have this makefile assume the Tcl shell executable
  104. # (tclsh*.exe) is available in the PATH. By default, this is disabled
  105. # for compatibility with older build environments. This setting only
  106. # applies if TCLSH_CMD is not set manually.
  107. #
  108. !IFNDEF USE_TCLSH_IN_PATH
  109. USE_TCLSH_IN_PATH = 0
  110. !ENDIF
  111. # Set this non-0 to use zlib, possibly compiling it from source code.
  112. #
  113. !IFNDEF USE_ZLIB
  114. USE_ZLIB = 0
  115. !ENDIF
  116. # Set this non-0 to build zlib from source code. This is enabled by
  117. # default and in that case it will be assumed that the ZLIBDIR macro
  118. # points to the top-level source code directory for zlib.
  119. #
  120. !IFNDEF BUILD_ZLIB
  121. BUILD_ZLIB = 1
  122. !ENDIF
  123. # Set this non-0 to use the International Components for Unicode (ICU).
  124. #
  125. !IFNDEF USE_ICU
  126. USE_ICU = 0
  127. !ENDIF
  128. # <</mark>>
  129. # Set this non-0 to dynamically link to the MSVC runtime library.
  130. #
  131. !IFNDEF USE_CRT_DLL
  132. USE_CRT_DLL = 0
  133. !ENDIF
  134. # Set this non-0 to link to the RPCRT4 library.
  135. #
  136. !IFNDEF USE_RPCRT4_LIB
  137. USE_RPCRT4_LIB = 0
  138. !ENDIF
  139. # Set this non-0 to generate assembly code listings for the source code
  140. # files.
  141. #
  142. !IFNDEF USE_LISTINGS
  143. USE_LISTINGS = 0
  144. !ENDIF
  145. # Set this non-0 to attempt setting the native compiler automatically
  146. # for cross-compiling the command line tools needed during the compilation
  147. # process.
  148. #
  149. !IFNDEF XCOMPILE
  150. XCOMPILE = 0
  151. !ENDIF
  152. # Set this non-0 to use the native libraries paths for cross-compiling
  153. # the command line tools needed during the compilation process.
  154. #
  155. !IFNDEF USE_NATIVE_LIBPATHS
  156. USE_NATIVE_LIBPATHS = 0
  157. !ENDIF
  158. # Set this 0 to skip the compiling and embedding of version resources.
  159. #
  160. !IFNDEF USE_RC
  161. USE_RC = 1
  162. !ENDIF
  163. # Set this non-0 to compile binaries suitable for the WinRT environment.
  164. # This setting does not apply to any binaries that require Tcl to operate
  165. # properly (i.e. the text fixture, etc).
  166. #
  167. !IFNDEF FOR_WINRT
  168. FOR_WINRT = 0
  169. !ENDIF
  170. # Set this non-0 to compile binaries suitable for the UWP environment.
  171. # This setting does not apply to any binaries that require Tcl to operate
  172. # properly (i.e. the text fixture, etc).
  173. #
  174. !IFNDEF FOR_UWP
  175. FOR_UWP = 0
  176. !ENDIF
  177. # Set this non-0 to compile binaries suitable for the Windows 10 platform.
  178. #
  179. !IFNDEF FOR_WIN10
  180. FOR_WIN10 = 0
  181. !ENDIF
  182. # <<mark>>
  183. # Set this non-0 to skip attempting to look for and/or link with the Tcl
  184. # runtime library.
  185. #
  186. !IFNDEF NO_TCL
  187. NO_TCL = 0
  188. !ENDIF
  189. # <</mark>>
  190. # Set this to non-0 to create and use PDBs.
  191. #
  192. !IFNDEF SYMBOLS
  193. SYMBOLS = 1
  194. !ENDIF
  195. # Set this to non-0 to use the SQLite debugging heap subsystem.
  196. #
  197. !IFNDEF MEMDEBUG
  198. MEMDEBUG = 0
  199. !ENDIF
  200. # Set this to non-0 to use the Win32 native heap subsystem.
  201. #
  202. !IFNDEF WIN32HEAP
  203. WIN32HEAP = 0
  204. !ENDIF
  205. # Set this to non-0 to enable OSTRACE() macros, which can be useful when
  206. # debugging.
  207. #
  208. !IFNDEF OSTRACE
  209. OSTRACE = 0
  210. !ENDIF
  211. # enable address sanitizer using ASAN=1 on the command-line.
  212. #
  213. !IFNDEF ASAN
  214. ASAN = 0
  215. !ENDIF
  216. # Set this to one of the following values to enable various debugging
  217. # features. Each level includes the debugging options from the previous
  218. # levels. Currently, the recognized values for DEBUG are:
  219. #
  220. # 0 == NDEBUG: Disables assert() and other runtime diagnostics.
  221. # 1 == SQLITE_ENABLE_API_ARMOR: extra attempts to detect misuse of the API.
  222. # 2 == Disables NDEBUG and all optimizations and then enables PDBs.
  223. # 3 == SQLITE_DEBUG: Enables various diagnostics messages and code.
  224. # 4 == SQLITE_WIN32_MALLOC_VALIDATE: Validate the Win32 native heap per call.
  225. # 5 == SQLITE_DEBUG_OS_TRACE: Enables output from the OSTRACE() macros.
  226. # 6 == SQLITE_ENABLE_IOTRACE: Enables output from the IOTRACE() macros.
  227. #
  228. !IFNDEF DEBUG
  229. DEBUG = 0
  230. !ENDIF
  231. # <<mark>>
  232. # By default, use --linemacros=1 argument to the mksqlite3c.tcl tool, which
  233. # is used to build the amalgamation. This can be turned off to ease debug
  234. # of the amalgamation away from the source tree.
  235. #
  236. !IFNDEF NO_LINEMACROS
  237. NO_LINEMACROS = 0
  238. !ENDIF
  239. # <</mark>>
  240. # Enable use of available compiler optimizations? Normally, this should be
  241. # non-zero. Setting this to zero, thus disabling all compiler optimizations,
  242. # can be useful for testing.
  243. #
  244. !IFNDEF OPTIMIZATIONS
  245. OPTIMIZATIONS = 2
  246. !ENDIF
  247. # Set this to non-0 to enable support for the session extension.
  248. #
  249. !IFNDEF SESSION
  250. SESSION = 0
  251. !ENDIF
  252. # Set this to non-0 to enable support for the rbu extension.
  253. #
  254. !IFNDEF RBU
  255. RBU = 0
  256. !ENDIF
  257. # Set this to non-0 to enable support for blocking locks.
  258. #
  259. !IFNDEF SETLK_TIMEOUT
  260. SETLK_TIMEOUT = 0
  261. !ENDIF
  262. # Set the source code file to be used by executables and libraries when
  263. # they need the amalgamation.
  264. #
  265. !IFNDEF SQLITE3C
  266. !IF $(SPLIT_AMALGAMATION)!=0
  267. SQLITE3C = sqlite3-all.c
  268. !ELSE
  269. SQLITE3C = sqlite3.c
  270. !ENDIF
  271. !ENDIF
  272. # Set the include code file to be used by executables and libraries when
  273. # they need SQLite.
  274. #
  275. !IFNDEF SQLITE3H
  276. SQLITE3H = sqlite3.h
  277. !ENDIF
  278. # This is the name to use for the SQLite dynamic link library (DLL).
  279. #
  280. !IFNDEF SQLITE3DLL
  281. !IF $(FOR_WIN10)!=0
  282. SQLITE3DLL = winsqlite3.dll
  283. !ELSE
  284. SQLITE3DLL = sqlite3.dll
  285. !ENDIF
  286. !ENDIF
  287. # This is the name to use for the SQLite import library (LIB).
  288. #
  289. !IFNDEF SQLITE3LIB
  290. !IF $(FOR_WIN10)!=0
  291. SQLITE3LIB = winsqlite3.lib
  292. !ELSE
  293. SQLITE3LIB = sqlite3.lib
  294. !ENDIF
  295. !ENDIF
  296. # This is the name to use for the SQLite shell executable (EXE).
  297. #
  298. !IFNDEF SQLITE3EXE
  299. !IF $(FOR_WIN10)!=0
  300. SQLITE3EXE = winsqlite3shell.exe
  301. !ELSE
  302. SQLITE3EXE = sqlite3.exe
  303. !ENDIF
  304. !ENDIF
  305. # This is the argument used to set the program database (PDB) file for the
  306. # SQLite shell executable (EXE).
  307. #
  308. !IFNDEF SQLITE3EXEPDB
  309. !IF $(FOR_WIN10)!=0
  310. SQLITE3EXEPDB =
  311. !ELSE
  312. SQLITE3EXEPDB = /pdb:sqlite3sh.pdb
  313. !ENDIF
  314. !ENDIF
  315. # <<mark>>
  316. # These are the names of the customized Tcl header files used by various parts
  317. # of this makefile when the stdcall calling convention is in use. It is not
  318. # used for any other purpose.
  319. #
  320. !IFNDEF SQLITETCLH
  321. SQLITETCLH = sqlite_tcl.h
  322. !ENDIF
  323. !IFNDEF SQLITETCLDECLSH
  324. SQLITETCLDECLSH = sqlite_tclDecls.h
  325. !ENDIF
  326. # This is the name to use for the dynamic link library (DLL) containing the
  327. # Tcl bindings for SQLite.
  328. #
  329. !IFNDEF SQLITE3TCLDLL
  330. SQLITE3TCLDLL = tclsqlite3.dll
  331. !ENDIF
  332. # These are the additional targets that the targets that integrate with the
  333. # Tcl library should depend on when compiling, etc.
  334. #
  335. !IFNDEF SQLITE_TCL_DEP
  336. !IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
  337. SQLITE_TCL_DEP = $(SQLITETCLDECLSH) $(SQLITETCLH)
  338. !ELSE
  339. SQLITE_TCL_DEP =
  340. !ENDIF
  341. !ENDIF
  342. # <</mark>>
  343. # These are the "standard" SQLite compilation options used when compiling for
  344. # the Windows platform.
  345. #
  346. !IFNDEF OPT_FEATURE_FLAGS
  347. OPT_FEATURE_FLAGS = $(OPT_XTRA)
  348. !IF $(MINIMAL_AMALGAMATION)==0
  349. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS3=1
  350. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS5=1
  351. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_RTREE=1
  352. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_GEOPOLY=1
  353. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_STMTVTAB=1
  354. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_DBPAGE_VTAB=1
  355. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_DBSTAT_VTAB=1
  356. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_BYTECODE_VTAB=1
  357. !ENDIF
  358. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_COLUMN_METADATA=1
  359. !ENDIF
  360. # Additional feature-options above and beyond what are normally used can be
  361. # be added using OPTIONS=.... on the command-line. These values are
  362. # appended to the OPT_FEATURE_FLAGS variable.
  363. #
  364. !IFDEF OPTIONS
  365. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) $(OPTIONS)
  366. !ENDIF
  367. # Should the session extension be enabled? If so, add compilation options
  368. # to enable it.
  369. #
  370. !IF $(SESSION)!=0
  371. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_SESSION=1
  372. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_PREUPDATE_HOOK=1
  373. !ENDIF
  374. # Always enable math functions on Windows
  375. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_MATH_FUNCTIONS
  376. # Should the rbu extension be enabled? If so, add compilation options
  377. # to enable it.
  378. #
  379. !IF $(RBU)!=0
  380. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_RBU=1
  381. !ENDIF
  382. # Should structured exception handling (SEH) be enabled for WAL mode in
  383. # the core library? It is on by default. Only omit it if the
  384. # USE_SEH=0 option is provided on the nmake command-line.
  385. #
  386. !IF $(USE_SEH)==0
  387. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_OMIT_SEH=1
  388. !ENDIF
  389. # These are the "extended" SQLite compilation options used when compiling for
  390. # the Windows 10 platform.
  391. #
  392. !IFNDEF EXT_FEATURE_FLAGS
  393. !IF $(FOR_WIN10)!=0
  394. EXT_FEATURE_FLAGS = $(EXT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS4=1
  395. EXT_FEATURE_FLAGS = $(EXT_FEATURE_FLAGS) -DSQLITE_SYSTEM_MALLOC=1
  396. EXT_FEATURE_FLAGS = $(EXT_FEATURE_FLAGS) -DSQLITE_OMIT_LOCALTIME=1
  397. !ELSE
  398. EXT_FEATURE_FLAGS =
  399. !ENDIF
  400. !ENDIF
  401. !IF $(SETLK_TIMEOUT)!=0
  402. OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_SETLK_TIMEOUT
  403. !ENDIF
  404. ###############################################################################
  405. ############################### END OF OPTIONS ################################
  406. ###############################################################################
  407. # When compiling for the Windows 10 platform, the PLATFORM macro must be set
  408. # to an appropriate value (e.g. x86, x64, arm, arm64, etc).
  409. #
  410. !IF $(FOR_WIN10)!=0
  411. !IFNDEF PLATFORM
  412. !ERROR Using the FOR_WIN10 option requires a value for PLATFORM.
  413. !ENDIF
  414. !ENDIF
  415. # This assumes that MSVC is always installed in 32-bit Program Files directory
  416. # and sets the variable for use in locating other 32-bit installs accordingly.
  417. #
  418. PROGRAMFILES_X86 = $(VCINSTALLDIR)\..\..
  419. PROGRAMFILES_X86 = $(PROGRAMFILES_X86:\\=\)
  420. # Check for the predefined command macro CC. This should point to the compiler
  421. # binary for the target platform. If it is not defined, simply define it to
  422. # the legacy default value 'cl.exe'.
  423. #
  424. !IFNDEF CC
  425. CC = cl.exe
  426. !ENDIF
  427. # Check for the predefined command macro CSC. This should point to a working
  428. # C Sharp compiler binary. If it is not defined, simply define it to the
  429. # legacy default value 'csc.exe'.
  430. #
  431. !IFNDEF CSC
  432. CSC = csc.exe
  433. !ENDIF
  434. # Check for the command macro LD. This should point to the linker binary for
  435. # the target platform. If it is not defined, simply define it to the legacy
  436. # default value 'link.exe'.
  437. #
  438. !IFNDEF LD
  439. LD = link.exe
  440. !ENDIF
  441. # Check for the predefined command macro RC. This should point to the resource
  442. # compiler binary for the target platform. If it is not defined, simply define
  443. # it to the legacy default value 'rc.exe'.
  444. #
  445. !IFNDEF RC
  446. RC = rc.exe
  447. !ENDIF
  448. # Check for the MSVC runtime library path macro. Otherwise, this value will
  449. # default to the 'lib' directory underneath the MSVC installation directory.
  450. #
  451. !IFNDEF CRTLIBPATH
  452. CRTLIBPATH = $(VCINSTALLDIR)\lib
  453. !ENDIF
  454. CRTLIBPATH = $(CRTLIBPATH:\\=\)
  455. # Check for the command macro NCC. This should point to the compiler binary
  456. # for the platform the compilation process is taking place on. If it is not
  457. # defined, simply define it to have the same value as the CC macro. When
  458. # cross-compiling, it is suggested that this macro be modified via the command
  459. # line (since nmake itself does not provide a built-in method to guess it).
  460. # For example, to use the x86 compiler when cross-compiling for x64, a command
  461. # line similar to the following could be used (all on one line):
  462. #
  463. # nmake /f Makefile.msc sqlite3.dll
  464. # XCOMPILE=1 USE_NATIVE_LIBPATHS=1
  465. #
  466. # Alternatively, the full path and file name to the compiler binary for the
  467. # platform the compilation process is taking place may be specified (all on
  468. # one line):
  469. #
  470. # nmake /f Makefile.msc sqlite3.dll
  471. # "NCC=""%VCINSTALLDIR%\bin\cl.exe"""
  472. # USE_NATIVE_LIBPATHS=1
  473. #
  474. !IFDEF NCC
  475. NCC = $(NCC:\\=\)
  476. !ELSEIF $(XCOMPILE)!=0
  477. NCC = "$(VCINSTALLDIR)\bin\$(CC)"
  478. NCC = $(NCC:\\=\)
  479. !ELSE
  480. NCC = $(CC)
  481. !ENDIF
  482. # Check for the MSVC native runtime library path macro. Otherwise,
  483. # this value will default to the 'lib' directory underneath the MSVC
  484. # installation directory.
  485. #
  486. !IFNDEF NCRTLIBPATH
  487. NCRTLIBPATH = $(VCINSTALLDIR)\lib
  488. !ENDIF
  489. NCRTLIBPATH = $(NCRTLIBPATH:\\=\)
  490. # Check for the Platform SDK library path macro. Otherwise, this
  491. # value will default to the 'lib' directory underneath the Windows
  492. # SDK installation directory (the environment variable used appears
  493. # to be available when using Visual C++ 2008 or later via the
  494. # command line).
  495. #
  496. !IFNDEF NSDKLIBPATH
  497. NSDKLIBPATH = $(WINDOWSSDKDIR)\lib
  498. !ENDIF
  499. NSDKLIBPATH = $(NSDKLIBPATH:\\=\)
  500. # Check for the UCRT library path macro. Otherwise, this value will
  501. # default to the version-specific, platform-specific 'lib' directory
  502. # underneath the Windows SDK installation directory.
  503. #
  504. !IFNDEF UCRTLIBPATH
  505. UCRTLIBPATH = $(WINDOWSSDKDIR)\lib\$(WINDOWSSDKLIBVERSION)\ucrt\$(PLATFORM)
  506. !ENDIF
  507. UCRTLIBPATH = $(UCRTLIBPATH:\\=\)
  508. # C compiler and options for use in building executables that
  509. # will run on the platform that is doing the build.
  510. #
  511. !IF $(USE_FULLWARN)!=0
  512. BCC = $(NCC) -nologo -W4 -Fd$*.pdb $(CCOPTS) $(BCCOPTS)
  513. !ELSE
  514. BCC = $(NCC) -nologo -W3 -Fd$*.pdb $(CCOPTS) $(BCCOPTS)
  515. !ENDIF
  516. # Check if assembly code listings should be generated for the source
  517. # code files to be compiled.
  518. #
  519. !IF $(USE_LISTINGS)!=0
  520. BCC = $(BCC) -FAcs
  521. !ENDIF
  522. # Check if the native library paths should be used when compiling
  523. # the command line tools used during the compilation process. If
  524. # so, set the necessary macro now.
  525. #
  526. !IF $(USE_NATIVE_LIBPATHS)!=0
  527. NLTLIBPATHS = "/LIBPATH:$(NCRTLIBPATH)" "/LIBPATH:$(NSDKLIBPATH)"
  528. !IFDEF NUCRTLIBPATH
  529. NUCRTLIBPATH = $(NUCRTLIBPATH:\\=\)
  530. NLTLIBPATHS = $(NLTLIBPATHS) "/LIBPATH:$(NUCRTLIBPATH)"
  531. !ENDIF
  532. !ENDIF
  533. # C compiler and options for use in building executables that
  534. # will run on the target platform. (BCC and TCC are usually the
  535. # same unless your are cross-compiling.)
  536. #
  537. !IF $(USE_FULLWARN)!=0
  538. TCC = $(CC) -nologo -W4 -DINCLUDE_MSVC_H=1 $(CCOPTS) $(TCCOPTS)
  539. !ELSE
  540. TCC = $(CC) -nologo -W3 $(CCOPTS) $(TCCOPTS)
  541. !ENDIF
  542. # Check if warnings should be treated as errors when compiling.
  543. #
  544. !IF $(USE_FATAL_WARN)!=0
  545. TCC = $(TCC) -WX
  546. !ENDIF
  547. TCC = $(TCC) -DSQLITE_OS_WIN=1 -I. -I$(TOP) -I$(TOP)\src -fp:precise
  548. RCC = $(RC) -DSQLITE_OS_WIN=1 -I. -I$(TOP) -I$(TOP)\src $(RCOPTS) $(RCCOPTS)
  549. # Check if we want to use the "stdcall" calling convention when compiling.
  550. # This is not supported by the compilers for non-x86 platforms. It should
  551. # also be noted here that building any target with these "stdcall" options
  552. # will most likely fail if the Tcl library is also required. This is due
  553. # to how the Tcl library functions are declared and exported (i.e. without
  554. # an explicit calling convention, which results in "cdecl").
  555. #
  556. !IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
  557. !IF "$(PLATFORM)"=="x86"
  558. CORE_CCONV_OPTS = -Gz -guard:cf -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall
  559. SHELL_CCONV_OPTS = -Gz -guard:cf -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall
  560. # <<mark>>
  561. TEST_CCONV_OPTS = -Gz -guard:cf -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall -DINCLUDE_SQLITE_TCL_H=1 -DSQLITE_TCLAPI=__cdecl
  562. # <</mark>>
  563. !ELSE
  564. !IFNDEF PLATFORM
  565. CORE_CCONV_OPTS = -Gz -guard:cf -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall
  566. SHELL_CCONV_OPTS = -Gz -guard:cf -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall
  567. # <<mark>>
  568. TEST_CCONV_OPTS = -Gz -guard:cf -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall -DINCLUDE_SQLITE_TCL_H=1 -DSQLITE_TCLAPI=__cdecl
  569. # <</mark>>
  570. !ELSE
  571. CORE_CCONV_OPTS =
  572. SHELL_CCONV_OPTS =
  573. # <<mark>>
  574. TEST_CCONV_OPTS =
  575. # <</mark>>
  576. !ENDIF
  577. !ENDIF
  578. !ELSE
  579. CORE_CCONV_OPTS =
  580. SHELL_CCONV_OPTS =
  581. # <<mark>>
  582. TEST_CCONV_OPTS =
  583. # <</mark>>
  584. !ENDIF
  585. # These are additional compiler options used for the core library.
  586. #
  587. !IFNDEF CORE_COMPILE_OPTS
  588. !IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0
  589. CORE_COMPILE_OPTS = $(CORE_CCONV_OPTS) -DSQLITE_API=__declspec(dllexport)
  590. !ELSE
  591. CORE_COMPILE_OPTS = $(CORE_CCONV_OPTS)
  592. !ENDIF
  593. !ENDIF
  594. # These are the additional targets that the core library should depend on
  595. # when linking.
  596. #
  597. !IFNDEF CORE_LINK_DEP
  598. !IF $(DYNAMIC_SHELL)!=0
  599. CORE_LINK_DEP =
  600. !ELSEIF $(FOR_WIN10)==0 || "$(PLATFORM)"=="x86"
  601. CORE_LINK_DEP = sqlite3.def
  602. !ELSE
  603. CORE_LINK_DEP =
  604. !ENDIF
  605. !ENDIF
  606. # These are additional linker options used for the core library.
  607. #
  608. !IFNDEF CORE_LINK_OPTS
  609. !IF $(DYNAMIC_SHELL)!=0
  610. CORE_LINK_OPTS =
  611. !ELSEIF $(FOR_WIN10)==0 || "$(PLATFORM)"=="x86"
  612. CORE_LINK_OPTS = /DEF:sqlite3.def
  613. !ELSE
  614. CORE_LINK_OPTS =
  615. !ENDIF
  616. !ENDIF
  617. # These are additional compiler options used for the shell executable.
  618. #
  619. !IFNDEF SHELL_COMPILE_OPTS
  620. !IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0
  621. SHELL_COMPILE_OPTS = $(SHELL_CCONV_OPTS) -DSQLITE_API=__declspec(dllimport)
  622. !ELSE
  623. SHELL_COMPILE_OPTS = $(SHELL_CCONV_OPTS)
  624. !ENDIF
  625. !ENDIF
  626. # This is the source code that the shell executable should be compiled
  627. # with.
  628. #
  629. !IFNDEF SHELL_CORE_SRC
  630. !IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0
  631. SHELL_CORE_SRC =
  632. # <<mark>>
  633. !ELSEIF $(USE_AMALGAMATION)==0
  634. SHELL_CORE_SRC =
  635. # <</mark>>
  636. !ELSE
  637. SHELL_CORE_SRC = $(SQLITE3C)
  638. !ENDIF
  639. !ENDIF
  640. # This is the core library that the shell executable should depend on.
  641. #
  642. !IFNDEF SHELL_CORE_DEP
  643. !IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0
  644. SHELL_CORE_DEP = $(SQLITE3DLL)
  645. # <<mark>>
  646. !ELSEIF $(USE_AMALGAMATION)==0
  647. SHELL_CORE_DEP = libsqlite3.lib
  648. # <</mark>>
  649. !ELSE
  650. SHELL_CORE_DEP =
  651. !ENDIF
  652. !ENDIF
  653. # <<mark>>
  654. # If zlib support is enabled, add the dependencies for it.
  655. #
  656. !IF $(USE_ZLIB)!=0 && $(BUILD_ZLIB)!=0
  657. SHELL_CORE_DEP = zlib $(SHELL_CORE_DEP)
  658. TESTFIXTURE_DEP = zlib $(TESTFIXTURE_DEP)
  659. !ENDIF
  660. # <</mark>>
  661. # This is the core library that the shell executable should link with.
  662. #
  663. !IFNDEF SHELL_CORE_LIB
  664. !IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0
  665. SHELL_CORE_LIB = $(SQLITE3LIB)
  666. # <<mark>>
  667. !ELSEIF $(USE_AMALGAMATION)==0
  668. SHELL_CORE_LIB = libsqlite3.lib
  669. # <</mark>>
  670. !ELSE
  671. SHELL_CORE_LIB =
  672. !ENDIF
  673. !ENDIF
  674. # These are additional linker options used for the shell executable.
  675. #
  676. !IFNDEF SHELL_LINK_OPTS
  677. SHELL_LINK_OPTS = $(SHELL_CORE_LIB)
  678. !ENDIF
  679. # Check if assembly code listings should be generated for the source
  680. # code files to be compiled.
  681. #
  682. !IF $(USE_LISTINGS)!=0
  683. TCC = $(TCC) -FAcs
  684. !ENDIF
  685. # When compiling the library for use in the WinRT environment,
  686. # the following compile-time options must be used as well to
  687. # disable use of Win32 APIs that are not available and to enable
  688. # use of Win32 APIs that are specific to Windows 8 and/or WinRT.
  689. #
  690. !IF $(FOR_WINRT)!=0
  691. TCC = $(TCC) -DSQLITE_OS_WINRT=1
  692. RCC = $(RCC) -DSQLITE_OS_WINRT=1
  693. TCC = $(TCC) -DWINAPI_FAMILY=WINAPI_FAMILY_APP
  694. RCC = $(RCC) -DWINAPI_FAMILY=WINAPI_FAMILY_APP
  695. !ENDIF
  696. # C compiler options for the Windows 10 platform (needs MSVC 2015).
  697. #
  698. !IF $(FOR_WIN10)!=0
  699. TCC = $(TCC) /d2guard4 -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE
  700. BCC = $(BCC) /d2guard4 -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE
  701. !ENDIF
  702. # Also, we need to dynamically link to the correct MSVC runtime
  703. # when compiling for WinRT (e.g. debug or release) OR if the
  704. # USE_CRT_DLL option is set to force dynamically linking to the
  705. # MSVC runtime library.
  706. #
  707. !IF $(FOR_WINRT)!=0 || $(USE_CRT_DLL)!=0
  708. !IF $(DEBUG)>1
  709. TCC = $(TCC) -MDd
  710. BCC = $(BCC) -MDd
  711. !ELSE
  712. TCC = $(TCC) -MD
  713. BCC = $(BCC) -MD
  714. !ENDIF
  715. !ELSE
  716. !IF $(DEBUG)>1
  717. TCC = $(TCC) -MTd
  718. BCC = $(BCC) -MTd
  719. !ELSE
  720. TCC = $(TCC) -MT
  721. BCC = $(BCC) -MT
  722. !ENDIF
  723. !ENDIF
  724. # <<mark>>
  725. # The mksqlite3c.tcl and mksqlite3h.tcl scripts will pull in
  726. # any extension header files by default. For non-amalgamation
  727. # builds, we need to make sure the compiler can find these.
  728. #
  729. !IF $(USE_AMALGAMATION)==0
  730. TCC = $(TCC) -I$(TOP)\ext\fts3
  731. RCC = $(RCC) -I$(TOP)\ext\fts3
  732. TCC = $(TCC) -I$(TOP)\ext\rtree
  733. RCC = $(RCC) -I$(TOP)\ext\rtree
  734. TCC = $(TCC) -I$(TOP)\ext\session
  735. RCC = $(RCC) -I$(TOP)\ext\session
  736. !ENDIF
  737. # The mksqlite3c.tcl script accepts some options on the command
  738. # line. When compiling with debugging enabled, some of these
  739. # options are necessary in order to allow debugging symbols to
  740. # work correctly with Visual Studio when using the amalgamation.
  741. #
  742. !IFNDEF MKSQLITE3C_TOOL
  743. !IF $(MINIMAL_AMALGAMATION)!=0
  744. MKSQLITE3C_TOOL = $(TOP)\tool\mksqlite3c-noext.tcl
  745. !ELSE
  746. MKSQLITE3C_TOOL = $(TOP)\tool\mksqlite3c.tcl
  747. !ENDIF
  748. !ENDIF
  749. !IFNDEF MKSQLITE3C_ARGS
  750. !IF $(DEBUG)>1 && $(NO_LINEMACROS)==0
  751. MKSQLITE3C_ARGS = --linemacros=1
  752. !ELSE
  753. MKSQLITE3C_ARGS = --linemacros=0
  754. !ENDIF
  755. !IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
  756. MKSQLITE3C_ARGS = $(MKSQLITE3C_ARGS) --useapicall
  757. !ENDIF
  758. !ENDIF
  759. # The mksqlite3h.tcl script accepts some options on the command line.
  760. # When compiling with stdcall support, some of these options are
  761. # necessary.
  762. #
  763. !IFNDEF MKSQLITE3H_ARGS
  764. !IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
  765. MKSQLITE3H_ARGS = --useapicall
  766. !ELSE
  767. MKSQLITE3H_ARGS =
  768. !ENDIF
  769. !ENDIF
  770. # <</mark>>
  771. # Define -DNDEBUG to compile without debugging (i.e., for production usage)
  772. # Omitting the define will cause extra debugging code to be inserted and
  773. # includes extra comments when "EXPLAIN stmt" is used.
  774. #
  775. !IF $(DEBUG)==0
  776. TCC = $(TCC) -DNDEBUG
  777. BCC = $(BCC) -DNDEBUG
  778. RCC = $(RCC) -DNDEBUG
  779. !ENDIF
  780. !IF $(DEBUG)>0 || $(API_ARMOR)!=0 || $(FOR_WIN10)!=0
  781. TCC = $(TCC) -DSQLITE_ENABLE_API_ARMOR=1
  782. RCC = $(RCC) -DSQLITE_ENABLE_API_ARMOR=1
  783. !ENDIF
  784. !IF $(DEBUG)>2
  785. TCC = $(TCC) -DSQLITE_DEBUG=1
  786. RCC = $(RCC) -DSQLITE_DEBUG=1
  787. !IF $(DYNAMIC_SHELL)==0
  788. TCC = $(TCC) -DSQLITE_ENABLE_WHERETRACE -DSQLITE_ENABLE_SELECTTRACE
  789. RCC = $(RCC) -DSQLITE_ENABLE_WHERETRACE -DSQLITE_ENABLE_SELECTTRACE
  790. !ENDIF
  791. !ENDIF
  792. !IF $(DEBUG)>4 || $(OSTRACE)!=0
  793. TCC = $(TCC) -DSQLITE_FORCE_OS_TRACE=1 -DSQLITE_DEBUG_OS_TRACE=1
  794. RCC = $(RCC) -DSQLITE_FORCE_OS_TRACE=1 -DSQLITE_DEBUG_OS_TRACE=1
  795. !ENDIF
  796. !IF $(DEBUG)>5
  797. TCC = $(TCC) -DSQLITE_ENABLE_IOTRACE=1
  798. RCC = $(RCC) -DSQLITE_ENABLE_IOTRACE=1
  799. !ENDIF
  800. # Prevent warnings about "insecure" MSVC runtime library functions
  801. # being used.
  802. #
  803. TCC = $(TCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS
  804. BCC = $(BCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS
  805. RCC = $(RCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS
  806. # Prevent warnings about "deprecated" POSIX functions being used.
  807. #
  808. TCC = $(TCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS
  809. BCC = $(BCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS
  810. RCC = $(RCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS
  811. # Use the SQLite debugging heap subsystem?
  812. #
  813. !IF $(MEMDEBUG)!=0
  814. TCC = $(TCC) -DSQLITE_MEMDEBUG=1
  815. RCC = $(RCC) -DSQLITE_MEMDEBUG=1
  816. # Use native Win32 heap subsystem instead of malloc/free?
  817. #
  818. !ELSEIF $(WIN32HEAP)!=0
  819. TCC = $(TCC) -DSQLITE_WIN32_MALLOC=1
  820. RCC = $(RCC) -DSQLITE_WIN32_MALLOC=1
  821. # Validate the heap on every call into the native Win32 heap subsystem?
  822. #
  823. !IF $(DEBUG)>3
  824. TCC = $(TCC) -DSQLITE_WIN32_MALLOC_VALIDATE=1
  825. RCC = $(RCC) -DSQLITE_WIN32_MALLOC_VALIDATE=1
  826. !ENDIF
  827. !ENDIF
  828. # Address sanitizer if ASAN=1
  829. #
  830. !IF $(ASAN)>0
  831. TCC = $(TCC) /fsanitize=address
  832. !ENDIF
  833. # <<mark>>
  834. # The locations of the Tcl header and library files. Also, the library that
  835. # non-stubs enabled programs using Tcl must link against. These variables
  836. # (TCLINCDIR, TCLLIBDIR, and LIBTCL) may be overridden via the environment
  837. # prior to running nmake in order to match the actual installed location and
  838. # version on this machine.
  839. #
  840. !IF $(STATICALLY_LINK_TCL)!=0
  841. TCLSUFFIX = s
  842. !ENDIF
  843. !IFNDEF TCLSUFFIX
  844. TCLSUFFIX =
  845. !ENDIF
  846. !IFNDEF TCLDIR
  847. TCLDIR = C:\Tcl
  848. !ENDIF
  849. !IFNDEF TCLVERSION
  850. !IF EXISTS("$(TCLDIR)\lib\tcl90$(TCLSUFFIX).lib")
  851. TCLVERSION = 90
  852. !ELSEIF EXISTS("$(TCLDIR)\lib\tcl86$(TCLSUFFIX).lib")
  853. TCLVERSION = 86
  854. !ELSEIF EXISTS("$(TCLDIR)\lib\tcl86t.lib")
  855. TCLSUFFIX = t
  856. TCLVERSION = 86
  857. !ELSE
  858. TCLVERSION = 90
  859. !ENDIF
  860. !ENDIF
  861. !IFNDEF TCLINCDIR
  862. TCLINCDIR = $(TCLDIR)\include
  863. !ENDIF
  864. !IFNDEF TCLLIBDIR
  865. TCLLIBDIR = $(TCLDIR)\lib
  866. !ENDIF
  867. !IFNDEF LIBTCL
  868. LIBTCL = tcl$(TCLVERSION)$(TCLSUFFIX).lib
  869. !ENDIF
  870. !IFNDEF TCLLIBS
  871. !IF $(STATICALLY_LINK_TCL)!=0
  872. TCLLIBS = /NODEFAULTLIB:libucrt.lib netapi32.lib user32.lib ucrt.lib
  873. !ELSE
  874. TCLLIBS =
  875. !ENDIF
  876. !ENDIF
  877. !IFNDEF LIBTCLSTUB
  878. !IF EXISTS("$(TCLLIBDIR)\tclstub$(TCLVERSION)$(TCLSUFFIX).lib")
  879. LIBTCLSTUB = tclstub$(TCLVERSION)$(TCLSUFFIX).lib
  880. !ELSEIF EXISTS("$(TCLLIBDIR)\tclstub$(TCLSUFFIX).lib")
  881. LIBTCLSTUB = tclstub$(TCLSUFFIX).lib
  882. !ELSEIF EXISTS("$(TCLLIBDIR)\tclstub$(TCLVERSION).lib")
  883. LIBTCLSTUB = tclstub$(TCLVERSION).lib
  884. !ELSE
  885. LIBTCLSTUB = tclstub.lib
  886. !ENDIF
  887. !ENDIF
  888. !IFNDEF LIBTCLPATH
  889. LIBTCLPATH = $(TCLDIR)\bin
  890. !ENDIF
  891. # The locations of the zlib header and library files. These variables
  892. # (ZLIBINCDIR, ZLIBLIBDIR, and ZLIBLIB) may be overridden via the environment
  893. # prior to running nmake in order to match the actual installed (or source
  894. # code) location on this machine.
  895. #
  896. !IFNDEF ZLIBDIR
  897. ZLIBDIR = $(TOP)\compat\zlib
  898. !ENDIF
  899. !IFNDEF ZLIBINCDIR
  900. ZLIBINCDIR = $(ZLIBDIR)
  901. !ENDIF
  902. !IFNDEF ZLIBLIBDIR
  903. ZLIBLIBDIR = $(ZLIBDIR)
  904. !ENDIF
  905. !IFNDEF ZLIBLIB
  906. !IF $(DYNAMIC_SHELL)!=0
  907. ZLIBLIB = zdll.lib
  908. !ELSE
  909. ZLIBLIB = zlib.lib
  910. !ENDIF
  911. !ENDIF
  912. # The locations of the ICU header and library files. These variables
  913. # (ICUINCDIR, ICULIBDIR, and LIBICU) may be overridden via the environment
  914. # prior to running nmake in order to match the actual installed location on
  915. # this machine.
  916. #
  917. !IFNDEF ICUDIR
  918. ICUDIR = $(TOP)\compat\icu
  919. !ENDIF
  920. !IFNDEF ICUINCDIR
  921. ICUINCDIR = $(ICUDIR)\include
  922. !ENDIF
  923. !IFNDEF ICULIBDIR
  924. ICULIBDIR = $(ICUDIR)\lib
  925. !ENDIF
  926. !IFNDEF LIBICU
  927. LIBICU = icuuc.lib icuin.lib
  928. !ENDIF
  929. # This is the command to use for tclsh - normally just "tclsh", but we may
  930. # know the specific version we want to use. This variable (TCLSH_CMD) may be
  931. # overridden via the environment prior to running nmake in order to select a
  932. # specific Tcl shell to use.
  933. #
  934. !IFNDEF TCLSH_CMD
  935. !IF EXISTS("$(TCLDIR)\bin\tclsh$(TCLVERSION).exe")
  936. TCLSH_CMD = $(TCLDIR)\bin\tclsh$(TCLVERSION).exe
  937. !ELSEIF EXISTS("$(TCLDIR)\bin\tclsh90.exe")
  938. TCLSH_CMD = $(TCLDIR)\bin\tclsh90.exe
  939. !ELSEIF EXISTS("$(TCLDIR)\bin\tclsh86.exe")
  940. TCLSH_CMD = $(TCLDIR)\bin\tclsh86.exe
  941. !ELSEIF EXISTS("$(TCLDIR)\bin\tclsh86t.exe")
  942. TCLSH_CMD = $(TCLDIR)\bin\tclsh86t.exe
  943. !ELSEIF EXISTS("$(TCLDIR)\bin\tclsh.exe")
  944. TCLSH_CMD = $(TCLDIR)\bin\tclsh.exe
  945. !ELSE
  946. TCLSH_CMD = tclsh
  947. !ENDIF
  948. !ENDIF
  949. # A light-weight TCLSH replacement that can be used for code generation
  950. # but which is not adequate for testing. This is "jimsh0" by default,
  951. # with source code in the repository. To force the whole build to use
  952. # the full, official tclsh, add WITHOUT_JIMSH=1 to the nmake command line.
  953. #
  954. !IFDEF WITHOUT_JIMSH
  955. JIM_TCLSH = $(TCLSH_CMD)
  956. !ENDIF
  957. !IFNDEF JIM_TCLSH
  958. JIM_TCLSH = jimsh0.exe
  959. !ENDIF
  960. # <</mark>>
  961. # Compiler options needed for programs that use the readline() library.
  962. #
  963. !IFNDEF READLINE_FLAGS
  964. READLINE_FLAGS = -DHAVE_READLINE=0
  965. !ENDIF
  966. # The library that programs using readline() must link against.
  967. #
  968. !IFNDEF LIBREADLINE
  969. LIBREADLINE =
  970. !ENDIF
  971. # Should the database engine be compiled threadsafe
  972. #
  973. TCC = $(TCC) -DSQLITE_THREADSAFE=1
  974. RCC = $(RCC) -DSQLITE_THREADSAFE=1
  975. # Do threads override each others locks by default (1), or do we test (-1)
  976. #
  977. TCC = $(TCC) -DSQLITE_THREAD_OVERRIDE_LOCK=-1
  978. RCC = $(RCC) -DSQLITE_THREAD_OVERRIDE_LOCK=-1
  979. # Any target libraries which libsqlite must be linked against
  980. #
  981. !IFNDEF TLIBS
  982. TLIBS =
  983. !ENDIF
  984. # Enable/disable loadable extensions, and other optional features
  985. # based on configuration. (-DSQLITE_OMIT*, -DSQLITE_ENABLE*).
  986. # The same set of OMIT and ENABLE flags should be passed to the
  987. # LEMON parser generator and the mkkeywordhash tool as well.
  988. # These are the required SQLite compilation options used when compiling for
  989. # the Windows platform.
  990. #
  991. REQ_FEATURE_FLAGS = $(REQ_FEATURE_FLAGS) -DSQLITE_MAX_TRIGGER_DEPTH=100
  992. # If we are linking to the RPCRT4 library, enable features that need it.
  993. #
  994. !IF $(USE_RPCRT4_LIB)!=0
  995. REQ_FEATURE_FLAGS = $(REQ_FEATURE_FLAGS) -DSQLITE_WIN32_USE_UUID=1
  996. !ENDIF
  997. # Add the required and optional SQLite compilation options into the command
  998. # lines used to invoke the MSVC code and resource compilers.
  999. #
  1000. TCC = $(TCC) $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS)
  1001. RCC = $(RCC) $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS)
  1002. # Add in any optional parameters specified on the commane line, e.g.
  1003. # nmake /f Makefile.msc all "OPTS=-DSQLITE_ENABLE_FOO=1 -DSQLITE_OMIT_FOO=1"
  1004. #
  1005. TCC = $(TCC) $(OPTS)
  1006. RCC = $(RCC) $(OPTS)
  1007. # If compiling for debugging, add some defines.
  1008. #
  1009. !IF $(DEBUG)>1
  1010. TCC = $(TCC) -D_DEBUG
  1011. BCC = $(BCC) -D_DEBUG
  1012. RCC = $(RCC) -D_DEBUG
  1013. !ENDIF
  1014. # If optimizations are enabled or disabled (either implicitly or
  1015. # explicitly), add the necessary flags.
  1016. #
  1017. !IF $(DEBUG)>1 || $(OPTIMIZATIONS)==0
  1018. TCC = $(TCC) -Od
  1019. BCC = $(BCC) -Od
  1020. !IF $(USE_RUNTIME_CHECKS)!=0
  1021. TCC = $(TCC) -RTC1
  1022. BCC = $(BCC) -RTC1
  1023. !ENDIF
  1024. !ELSEIF $(OPTIMIZATIONS)>=3
  1025. TCC = $(TCC) -Ox
  1026. BCC = $(BCC) -Ox
  1027. !ELSEIF $(OPTIMIZATIONS)==2
  1028. TCC = $(TCC) -O2
  1029. BCC = $(BCC) -O2
  1030. !ELSEIF $(OPTIMIZATIONS)==1
  1031. TCC = $(TCC) -O1
  1032. BCC = $(BCC) -O1
  1033. !ENDIF
  1034. # If symbols are enabled (or compiling for debugging), enable PDBs.
  1035. #
  1036. !IF $(DEBUG)>1 || $(SYMBOLS)!=0
  1037. TCC = $(TCC) -Zi
  1038. BCC = $(BCC) -Zi
  1039. !ENDIF
  1040. # <<mark>>
  1041. # If zlib support is enabled, add the compiler options for it.
  1042. #
  1043. !IF $(USE_ZLIB)!=0
  1044. TCC = $(TCC) -DSQLITE_HAVE_ZLIB=1
  1045. RCC = $(RCC) -DSQLITE_HAVE_ZLIB=1
  1046. TCC = $(TCC) -I$(ZLIBINCDIR)
  1047. RCC = $(RCC) -I$(ZLIBINCDIR)
  1048. !ENDIF
  1049. # If ICU support is enabled, add the compiler options for it.
  1050. #
  1051. !IF $(USE_ICU)!=0
  1052. TCC = $(TCC) -DSQLITE_ENABLE_ICU=1
  1053. RCC = $(RCC) -DSQLITE_ENABLE_ICU=1
  1054. TCC = $(TCC) -I$(TOP)\ext\icu
  1055. RCC = $(RCC) -I$(TOP)\ext\icu
  1056. TCC = $(TCC) -I$(ICUINCDIR)
  1057. RCC = $(RCC) -I$(ICUINCDIR)
  1058. !ENDIF
  1059. # <</mark>>
  1060. # Command line prefixes for compiling code, compiling resources,
  1061. # linking, etc.
  1062. #
  1063. LTCOMPILE = $(TCC) -Fo$@ -Fd$*.pdb
  1064. LTRCOMPILE = $(RCC) -r
  1065. LTLIB = lib.exe
  1066. LTLINK = $(TCC) -Fe$@
  1067. # If requested, link to the RPCRT4 library.
  1068. #
  1069. !IF $(USE_RPCRT4_LIB)!=0
  1070. LTLIBS = $(LTLIBS) rpcrt4.lib
  1071. !ENDIF
  1072. # If a platform was set, force the linker to target that.
  1073. # Note that the vcvars*.bat family of batch files typically
  1074. # set this for you. Otherwise, the linker will attempt
  1075. # to deduce the binary type based on the object files.
  1076. !IFDEF PLATFORM
  1077. LTLINKOPTS = /NOLOGO /MACHINE:$(PLATFORM)
  1078. LTLIBOPTS = /NOLOGO /MACHINE:$(PLATFORM)
  1079. !ELSEIF "$(VISUALSTUDIOVERSION)"=="12.0" || \
  1080. "$(VISUALSTUDIOVERSION)"=="14.0" || \
  1081. "$(VISUALSTUDIOVERSION)"=="15.0"
  1082. LTLINKOPTS = /NOLOGO /MACHINE:x86
  1083. LTLIBOPTS = /NOLOGO /MACHINE:x86
  1084. !ELSE
  1085. LTLINKOPTS = /NOLOGO
  1086. LTLIBOPTS = /NOLOGO
  1087. !ENDIF
  1088. # When compiling for use in the WinRT environment, the following
  1089. # linker option must be used to mark the executable as runnable
  1090. # only in the context of an application container.
  1091. #
  1092. !IF $(FOR_WINRT)!=0
  1093. LTLINKOPTS = $(LTLINKOPTS) /APPCONTAINER
  1094. !IF "$(VISUALSTUDIOVERSION)"=="12.0" || "$(VISUALSTUDIOVERSION)"=="14.0"
  1095. !IFNDEF STORELIBPATH
  1096. !IF "$(PLATFORM)"=="x86"
  1097. STORELIBPATH = $(CRTLIBPATH)\store
  1098. !ELSEIF "$(PLATFORM)"=="x64"
  1099. STORELIBPATH = $(CRTLIBPATH)\store\amd64
  1100. !ELSEIF "$(PLATFORM)"=="ARM"
  1101. STORELIBPATH = $(CRTLIBPATH)\store\arm
  1102. !ELSE
  1103. STORELIBPATH = $(CRTLIBPATH)\store
  1104. !ENDIF
  1105. !ENDIF
  1106. STORELIBPATH = $(STORELIBPATH:\\=\)
  1107. LTLINKOPTS = $(LTLINKOPTS) "/LIBPATH:$(STORELIBPATH)"
  1108. !ENDIF
  1109. !ENDIF
  1110. # When compiling for Windows Phone 8.1, an extra library path is
  1111. # required.
  1112. #
  1113. !IF $(USE_WP81_OPTS)!=0
  1114. !IFNDEF WP81LIBPATH
  1115. !IF "$(PLATFORM)"=="x86"
  1116. WP81LIBPATH = $(PROGRAMFILES_X86)\Windows Phone Kits\8.1\lib\x86
  1117. !ELSEIF "$(PLATFORM)"=="ARM"
  1118. WP81LIBPATH = $(PROGRAMFILES_X86)\Windows Phone Kits\8.1\lib\ARM
  1119. !ELSE
  1120. WP81LIBPATH = $(PROGRAMFILES_X86)\Windows Phone Kits\8.1\lib\x86
  1121. !ENDIF
  1122. !ENDIF
  1123. !ENDIF
  1124. # When compiling for Windows Phone 8.1, some extra linker options
  1125. # are also required.
  1126. #
  1127. !IF $(USE_WP81_OPTS)!=0
  1128. !IFDEF WP81LIBPATH
  1129. LTLINKOPTS = $(LTLINKOPTS) "/LIBPATH:$(WP81LIBPATH)"
  1130. !ENDIF
  1131. LTLINKOPTS = $(LTLINKOPTS) /DYNAMICBASE
  1132. LTLINKOPTS = $(LTLINKOPTS) WindowsPhoneCore.lib RuntimeObject.lib PhoneAppModelHost.lib
  1133. LTLINKOPTS = $(LTLINKOPTS) /NODEFAULTLIB:kernel32.lib /NODEFAULTLIB:ole32.lib
  1134. !ENDIF
  1135. # When compiling for UWP or the Windows 10 platform, some extra linker
  1136. # options are also required.
  1137. #
  1138. !IF $(FOR_UWP)!=0 || $(FOR_WIN10)!=0
  1139. LTLINKOPTS = $(LTLINKOPTS) /DYNAMICBASE /NODEFAULTLIB:kernel32.lib
  1140. LTLINKOPTS = $(LTLINKOPTS) mincore.lib
  1141. !IFDEF PSDKLIBPATH
  1142. LTLINKOPTS = $(LTLINKOPTS) "/LIBPATH:$(PSDKLIBPATH)"
  1143. !ENDIF
  1144. !ENDIF
  1145. !IF $(FOR_WIN10)!=0
  1146. LTLINKOPTS = $(LTLINKOPTS) /guard:cf "/LIBPATH:$(UCRTLIBPATH)"
  1147. !IF $(DEBUG)>1
  1148. LTLINKOPTS = $(LTLINKOPTS) /NODEFAULTLIB:libucrtd.lib /DEFAULTLIB:ucrtd.lib
  1149. !ELSE
  1150. LTLINKOPTS = $(LTLINKOPTS) /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib
  1151. !ENDIF
  1152. !ENDIF
  1153. # If either debugging or symbols are enabled, enable PDBs.
  1154. #
  1155. !IF $(DEBUG)>1 || $(SYMBOLS)!=0
  1156. LDFLAGS = /DEBUG $(LDOPTS)
  1157. !ELSE
  1158. LDFLAGS = $(LDOPTS)
  1159. !ENDIF
  1160. # <<mark>>
  1161. # Start with the Tcl related linker options.
  1162. #
  1163. !IF $(NO_TCL)==0
  1164. TCLLIBPATHS = $(TCLLIBPATHS) /LIBPATH:$(TCLLIBDIR)
  1165. TCLLIBS = $(TCLLIBS) $(LIBTCL)
  1166. !ENDIF
  1167. # If zlib support is enabled, add the linker options for it.
  1168. #
  1169. !IF $(USE_ZLIB)!=0
  1170. LTLIBPATHS = $(LTLIBPATHS) /LIBPATH:$(ZLIBLIBDIR)
  1171. LTLIBS = $(LTLIBS) $(ZLIBLIB)
  1172. !ENDIF
  1173. # If ICU support is enabled, add the linker options for it.
  1174. #
  1175. !IF $(USE_ICU)!=0
  1176. LTLIBPATHS = $(LTLIBPATHS) /LIBPATH:$(ICULIBDIR)
  1177. LTLIBS = $(LTLIBS) $(LIBICU)
  1178. !ENDIF
  1179. # <</mark>>
  1180. # You should not have to change anything below this line
  1181. ###############################################################################
  1182. # <<mark>>
  1183. # Object files for the SQLite library (non-amalgamation).
  1184. #
  1185. LIBOBJS0 = vdbe.lo parse.lo alter.lo analyze.lo attach.lo auth.lo \
  1186. backup.lo bitvec.lo btmutex.lo btree.lo build.lo \
  1187. callback.lo complete.lo ctime.lo \
  1188. date.lo dbpage.lo dbstat.lo delete.lo \
  1189. expr.lo fault.lo fkey.lo \
  1190. fts3.lo fts3_aux.lo fts3_expr.lo fts3_hash.lo fts3_icu.lo \
  1191. fts3_porter.lo fts3_snippet.lo fts3_tokenizer.lo fts3_tokenizer1.lo \
  1192. fts3_tokenize_vtab.lo fts3_unicode.lo fts3_unicode2.lo fts3_write.lo \
  1193. fts5.lo \
  1194. func.lo global.lo hash.lo \
  1195. icu.lo insert.lo json.lo legacy.lo loadext.lo \
  1196. main.lo malloc.lo mem0.lo mem1.lo mem2.lo mem3.lo mem5.lo \
  1197. memdb.lo memjournal.lo \
  1198. mutex.lo mutex_noop.lo mutex_unix.lo mutex_w32.lo \
  1199. notify.lo opcodes.lo os.lo os_kv.lo os_unix.lo os_win.lo \
  1200. pager.lo pcache.lo pcache1.lo pragma.lo prepare.lo printf.lo \
  1201. random.lo resolve.lo rowset.lo rtree.lo \
  1202. sqlite3session.lo select.lo sqlite3rbu.lo status.lo stmt.lo \
  1203. table.lo threads.lo tokenize.lo treeview.lo trigger.lo \
  1204. update.lo upsert.lo util.lo vacuum.lo \
  1205. vdbeapi.lo vdbeaux.lo vdbeblob.lo vdbemem.lo vdbesort.lo \
  1206. vdbetrace.lo vdbevtab.lo wal.lo walker.lo where.lo wherecode.lo \
  1207. whereexpr.lo \
  1208. window.lo utf.lo vtab.lo
  1209. # <</mark>>
  1210. # Object files for the amalgamation.
  1211. #
  1212. LIBOBJS1 = sqlite3.lo
  1213. # Determine the real value of LIBOBJ based on the 'configure' script
  1214. #
  1215. # <<mark>>
  1216. !IF $(USE_AMALGAMATION)==0
  1217. LIBOBJ = $(LIBOBJS0)
  1218. !ELSE
  1219. # <</mark>>
  1220. LIBOBJ = $(LIBOBJS1)
  1221. # <<mark>>
  1222. !ENDIF
  1223. # <</mark>>
  1224. # Determine if embedded resource compilation and usage are enabled.
  1225. #
  1226. !IF $(USE_RC)!=0
  1227. LIBRESOBJS = sqlite3res.lo
  1228. !ELSE
  1229. LIBRESOBJS =
  1230. !ENDIF
  1231. # <<mark>>
  1232. # Core source code files, part 1.
  1233. #
  1234. SRC00 = \
  1235. $(TOP)\src\alter.c \
  1236. $(TOP)\src\analyze.c \
  1237. $(TOP)\src\attach.c \
  1238. $(TOP)\src\auth.c \
  1239. $(TOP)\src\backup.c \
  1240. $(TOP)\src\bitvec.c \
  1241. $(TOP)\src\btmutex.c \
  1242. $(TOP)\src\btree.c \
  1243. $(TOP)\src\build.c \
  1244. $(TOP)\src\callback.c \
  1245. $(TOP)\src\complete.c \
  1246. ctime.c \
  1247. $(TOP)\src\date.c \
  1248. $(TOP)\src\dbpage.c \
  1249. $(TOP)\src\dbstat.c \
  1250. $(TOP)\src\delete.c \
  1251. $(TOP)\src\expr.c \
  1252. $(TOP)\src\fault.c \
  1253. $(TOP)\src\fkey.c \
  1254. $(TOP)\src\func.c \
  1255. $(TOP)\src\global.c \
  1256. $(TOP)\src\hash.c \
  1257. $(TOP)\src\insert.c \
  1258. $(TOP)\src\json.c \
  1259. $(TOP)\src\legacy.c \
  1260. $(TOP)\src\loadext.c \
  1261. $(TOP)\src\main.c \
  1262. $(TOP)\src\malloc.c \
  1263. $(TOP)\src\mem0.c \
  1264. $(TOP)\src\mem1.c \
  1265. $(TOP)\src\mem2.c \
  1266. $(TOP)\src\mem3.c \
  1267. $(TOP)\src\mem5.c \
  1268. $(TOP)\src\memdb.c \
  1269. $(TOP)\src\memjournal.c \
  1270. $(TOP)\src\mutex.c \
  1271. $(TOP)\src\mutex_noop.c \
  1272. $(TOP)\src\mutex_unix.c \
  1273. $(TOP)\src\mutex_w32.c \
  1274. $(TOP)\src\notify.c \
  1275. $(TOP)\src\os.c \
  1276. $(TOP)\src\os_kv.c \
  1277. $(TOP)\src\os_unix.c \
  1278. $(TOP)\src\os_win.c
  1279. # Core source code files, part 2.
  1280. #
  1281. SRC01 = \
  1282. $(TOP)\src\pager.c \
  1283. $(TOP)\src\pcache.c \
  1284. $(TOP)\src\pcache1.c \
  1285. $(TOP)\src\pragma.c \
  1286. $(TOP)\src\prepare.c \
  1287. $(TOP)\src\printf.c \
  1288. $(TOP)\src\random.c \
  1289. $(TOP)\src\resolve.c \
  1290. $(TOP)\src\rowset.c \
  1291. $(TOP)\src\select.c \
  1292. $(TOP)\src\status.c \
  1293. $(TOP)\src\table.c \
  1294. $(TOP)\src\threads.c \
  1295. $(TOP)\src\tclsqlite.c \
  1296. $(TOP)\src\tokenize.c \
  1297. $(TOP)\src\treeview.c \
  1298. $(TOP)\src\trigger.c \
  1299. $(TOP)\src\utf.c \
  1300. $(TOP)\src\update.c \
  1301. $(TOP)\src\upsert.c \
  1302. $(TOP)\src\util.c \
  1303. $(TOP)\src\vacuum.c \
  1304. $(TOP)\src\vdbe.c \
  1305. $(TOP)\src\vdbeapi.c \
  1306. $(TOP)\src\vdbeaux.c \
  1307. $(TOP)\src\vdbeblob.c \
  1308. $(TOP)\src\vdbemem.c \
  1309. $(TOP)\src\vdbesort.c \
  1310. $(TOP)\src\vdbetrace.c \
  1311. $(TOP)\src\vdbevtab.c \
  1312. $(TOP)\src\vtab.c \
  1313. $(TOP)\src\wal.c \
  1314. $(TOP)\src\walker.c \
  1315. $(TOP)\src\where.c \
  1316. $(TOP)\src\wherecode.c \
  1317. $(TOP)\src\whereexpr.c \
  1318. $(TOP)\src\window.c
  1319. # Core miscellaneous files.
  1320. #
  1321. SRC03 = \
  1322. $(TOP)\src\parse.y
  1323. # Core header files, part 1.
  1324. #
  1325. SRC04 = \
  1326. $(TOP)\src\btree.h \
  1327. $(TOP)\src\btreeInt.h \
  1328. $(TOP)\src\hash.h \
  1329. $(TOP)\src\hwtime.h \
  1330. $(TOP)\src\msvc.h \
  1331. $(TOP)\src\mutex.h \
  1332. $(TOP)\src\os.h \
  1333. $(TOP)\src\os_common.h \
  1334. $(TOP)\src\os_setup.h \
  1335. $(TOP)\src\os_win.h
  1336. # Core header files, part 2.
  1337. #
  1338. SRC05 = \
  1339. $(TOP)\src\pager.h \
  1340. $(TOP)\src\pcache.h \
  1341. pragma.h \
  1342. $(TOP)\src\sqlite.h.in \
  1343. $(TOP)\src\sqlite3ext.h \
  1344. $(TOP)\src\sqliteInt.h \
  1345. $(TOP)\src\sqliteLimit.h \
  1346. $(TOP)\src\vdbe.h \
  1347. $(TOP)\src\vdbeInt.h \
  1348. $(TOP)\src\vxworks.h \
  1349. $(TOP)\src\wal.h \
  1350. $(TOP)\src\whereInt.h
  1351. # Extension source code files, part 2.
  1352. #
  1353. SRC07 = \
  1354. $(TOP)\ext\fts3\fts3.c \
  1355. $(TOP)\ext\fts3\fts3_aux.c \
  1356. $(TOP)\ext\fts3\fts3_expr.c \
  1357. $(TOP)\ext\fts3\fts3_hash.c \
  1358. $(TOP)\ext\fts3\fts3_icu.c \
  1359. $(TOP)\ext\fts3\fts3_porter.c \
  1360. $(TOP)\ext\fts3\fts3_snippet.c \
  1361. $(TOP)\ext\fts3\fts3_tokenizer.c \
  1362. $(TOP)\ext\fts3\fts3_tokenizer1.c \
  1363. $(TOP)\ext\fts3\fts3_tokenize_vtab.c \
  1364. $(TOP)\ext\fts3\fts3_unicode.c \
  1365. $(TOP)\ext\fts3\fts3_unicode2.c \
  1366. $(TOP)\ext\fts3\fts3_write.c \
  1367. $(TOP)\ext\icu\icu.c \
  1368. $(TOP)\ext\rtree\rtree.c \
  1369. $(TOP)\ext\session\sqlite3session.c \
  1370. $(TOP)\ext\rbu\sqlite3rbu.c \
  1371. $(TOP)\ext\misc\stmt.c
  1372. # Extension header files, part 2.
  1373. #
  1374. SRC09 = \
  1375. $(TOP)\ext\fts3\fts3.h \
  1376. $(TOP)\ext\fts3\fts3Int.h \
  1377. $(TOP)\ext\fts3\fts3_hash.h \
  1378. $(TOP)\ext\fts3\fts3_tokenizer.h \
  1379. $(TOP)\ext\icu\sqliteicu.h \
  1380. $(TOP)\ext\rtree\rtree.h \
  1381. $(TOP)\ext\rtree\geopoly.c \
  1382. $(TOP)\ext\rbu\sqlite3rbu.h \
  1383. $(TOP)\ext\session\sqlite3session.h
  1384. # Generated source code files
  1385. #
  1386. SRC10 = \
  1387. opcodes.c \
  1388. parse.c
  1389. # Generated header files
  1390. #
  1391. SRC11 = \
  1392. keywordhash.h \
  1393. opcodes.h \
  1394. parse.h \
  1395. shell.c \
  1396. $(SQLITE3H)
  1397. # Generated Tcl header files
  1398. #
  1399. !IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
  1400. SRC12 = \
  1401. $(SQLITETCLH) \
  1402. $(SQLITETCLDECLSH)
  1403. !ELSE
  1404. SRC12 =
  1405. !ENDIF
  1406. # All source code files.
  1407. #
  1408. SRC = $(SRC00) $(SRC01) $(SRC03) $(SRC04) $(SRC05) $(SRC07) $(SRC09) $(SRC10) $(SRC11) $(SRC12)
  1409. # Source code to the test files.
  1410. #
  1411. TESTSRC = \
  1412. $(TOP)\src\test1.c \
  1413. $(TOP)\src\test2.c \
  1414. $(TOP)\src\test3.c \
  1415. $(TOP)\src\test4.c \
  1416. $(TOP)\src\test5.c \
  1417. $(TOP)\src\test6.c \
  1418. $(TOP)\src\test8.c \
  1419. $(TOP)\src\test9.c \
  1420. $(TOP)\src\test_autoext.c \
  1421. $(TOP)\src\test_backup.c \
  1422. $(TOP)\src\test_bestindex.c \
  1423. $(TOP)\src\test_blob.c \
  1424. $(TOP)\src\test_btree.c \
  1425. $(TOP)\src\test_config.c \
  1426. $(TOP)\src\test_delete.c \
  1427. $(TOP)\src\test_demovfs.c \
  1428. $(TOP)\src\test_devsym.c \
  1429. $(TOP)\src\test_fs.c \
  1430. $(TOP)\src\test_func.c \
  1431. $(TOP)\src\test_hexio.c \
  1432. $(TOP)\src\test_init.c \
  1433. $(TOP)\src\test_intarray.c \
  1434. $(TOP)\src\test_journal.c \
  1435. $(TOP)\src\test_malloc.c \
  1436. $(TOP)\src\test_md5.c \
  1437. $(TOP)\src\test_multiplex.c \
  1438. $(TOP)\src\test_mutex.c \
  1439. $(TOP)\src\test_onefile.c \
  1440. $(TOP)\src\test_osinst.c \
  1441. $(TOP)\src\test_pcache.c \
  1442. $(TOP)\src\test_quota.c \
  1443. $(TOP)\src\test_rtree.c \
  1444. $(TOP)\src\test_schema.c \
  1445. $(TOP)\src\test_superlock.c \
  1446. $(TOP)\src\test_syscall.c \
  1447. $(TOP)\src\test_tclsh.c \
  1448. $(TOP)\src\test_tclvar.c \
  1449. $(TOP)\src\test_thread.c \
  1450. $(TOP)\src\test_vdbecov.c \
  1451. $(TOP)\src\test_vfs.c \
  1452. $(TOP)\src\test_windirent.c \
  1453. $(TOP)\src\test_window.c \
  1454. $(TOP)\src\test_wsd.c \
  1455. $(TOP)\ext\fts3\fts3_term.c \
  1456. $(TOP)\ext\fts3\fts3_test.c \
  1457. $(TOP)\ext\rbu\test_rbu.c \
  1458. $(TOP)\ext\session\test_session.c
  1459. # Statically linked extensions.
  1460. #
  1461. TESTEXT = \
  1462. $(TOP)\ext\expert\sqlite3expert.c \
  1463. $(TOP)\ext\expert\test_expert.c \
  1464. $(TOP)\ext\misc\amatch.c \
  1465. $(TOP)\ext\misc\appendvfs.c \
  1466. $(TOP)\ext\misc\basexx.c \
  1467. $(TOP)\ext\misc\carray.c \
  1468. $(TOP)\ext\misc\cksumvfs.c \
  1469. $(TOP)\ext\misc\closure.c \
  1470. $(TOP)\ext\misc\csv.c \
  1471. $(TOP)\ext\misc\decimal.c \
  1472. $(TOP)\ext\misc\eval.c \
  1473. $(TOP)\ext\misc\explain.c \
  1474. $(TOP)\ext\misc\fileio.c \
  1475. $(TOP)\ext\misc\fuzzer.c \
  1476. $(TOP)\ext\fts5\fts5_tcl.c \
  1477. $(TOP)\ext\fts5\fts5_test_mi.c \
  1478. $(TOP)\ext\fts5\fts5_test_tok.c \
  1479. $(TOP)\ext\misc\ieee754.c \
  1480. $(TOP)\ext\misc\mmapwarm.c \
  1481. $(TOP)\ext\misc\nextchar.c \
  1482. $(TOP)\ext\misc\normalize.c \
  1483. $(TOP)\ext\misc\percentile.c \
  1484. $(TOP)\ext\misc\prefixes.c \
  1485. $(TOP)\ext\misc\qpvtab.c \
  1486. $(TOP)\ext\misc\randomjson.c \
  1487. $(TOP)\ext\misc\regexp.c \
  1488. $(TOP)\ext\misc\remember.c \
  1489. $(TOP)\ext\misc\series.c \
  1490. $(TOP)\ext\misc\spellfix.c \
  1491. $(TOP)\ext\misc\stmtrand.c \
  1492. $(TOP)\ext\misc\totype.c \
  1493. $(TOP)\ext\misc\unionvtab.c \
  1494. $(TOP)\ext\misc\wholenumber.c \
  1495. $(TOP)\ext\rtree\test_rtreedoc.c \
  1496. $(TOP)\ext\recover\sqlite3recover.c \
  1497. $(TOP)\ext\recover\test_recover.c \
  1498. $(TOP)\ext\intck\test_intck.c \
  1499. $(TOP)\ext\intck\sqlite3intck.c \
  1500. $(TOP)\ext\recover\dbdata.c
  1501. # If use of zlib is enabled, add the "zipfile.c" source file.
  1502. #
  1503. !IF $(USE_ZLIB)!=0
  1504. TESTEXT = $(TESTEXT) $(TOP)\ext\misc\zipfile.c
  1505. !ENDIF
  1506. # Source code to the library files needed by the test fixture
  1507. # (non-amalgamation)
  1508. #
  1509. TESTSRC2 = \
  1510. $(SRC00) \
  1511. $(SRC01) \
  1512. $(SRC07) \
  1513. $(SRC10) \
  1514. fts5.c
  1515. # Header files used by all library source files.
  1516. #
  1517. HDR = \
  1518. $(TOP)\src\btree.h \
  1519. $(TOP)\src\btreeInt.h \
  1520. $(TOP)\src\hash.h \
  1521. $(TOP)\src\hwtime.h \
  1522. keywordhash.h \
  1523. $(TOP)\src\msvc.h \
  1524. $(TOP)\src\mutex.h \
  1525. opcodes.h \
  1526. $(TOP)\src\os.h \
  1527. $(TOP)\src\os_common.h \
  1528. $(TOP)\src\os_setup.h \
  1529. $(TOP)\src\os_win.h \
  1530. $(TOP)\src\pager.h \
  1531. $(TOP)\src\pcache.h \
  1532. parse.h \
  1533. pragma.h \
  1534. $(SQLITE3H) \
  1535. sqlite3ext.h \
  1536. $(TOP)\src\sqliteInt.h \
  1537. $(TOP)\src\sqliteLimit.h \
  1538. $(TOP)\src\vdbe.h \
  1539. $(TOP)\src\vdbeInt.h \
  1540. $(TOP)\src\vxworks.h \
  1541. $(TOP)\src\whereInt.h
  1542. # Header files used by extensions
  1543. #
  1544. EXTHDR = $(EXTHDR) \
  1545. $(TOP)\ext\fts3\fts3.h \
  1546. $(TOP)\ext\fts3\fts3Int.h \
  1547. $(TOP)\ext\fts3\fts3_hash.h \
  1548. $(TOP)\ext\fts3\fts3_tokenizer.h
  1549. EXTHDR = $(EXTHDR) \
  1550. $(TOP)\ext\rtree\rtree.h \
  1551. $(TOP)\ext\rtree\geopoly.c
  1552. EXTHDR = $(EXTHDR) \
  1553. $(TOP)\ext\icu\sqliteicu.h
  1554. EXTHDR = $(EXTHDR) \
  1555. $(TOP)\ext\rtree\sqlite3rtree.h
  1556. EXTHDR = $(EXTHDR) \
  1557. $(TOP)\ext\session\sqlite3session.h
  1558. # executables needed for testing
  1559. #
  1560. TESTPROGS = \
  1561. testfixture.exe \
  1562. $(SQLITE3EXE) \
  1563. sqlite3_analyzer.exe \
  1564. sqlite3_checker.exe \
  1565. sqldiff.exe \
  1566. dbhash.exe \
  1567. sqltclsh.exe
  1568. # Databases containing fuzzer test cases
  1569. #
  1570. FUZZDATA = \
  1571. $(TOP)\test\fuzzdata1.db \
  1572. $(TOP)\test\fuzzdata2.db \
  1573. $(TOP)\test\fuzzdata3.db \
  1574. $(TOP)\test\fuzzdata4.db \
  1575. $(TOP)\test\fuzzdata5.db \
  1576. $(TOP)\test\fuzzdata6.db \
  1577. $(TOP)\test\fuzzdata7.db \
  1578. $(TOP)\test\fuzzdata8.db
  1579. # <</mark>>
  1580. # Additional compiler options for the shell. These are only effective
  1581. # when the shell is not being dynamically linked.
  1582. #
  1583. !IF $(DYNAMIC_SHELL)==0 && $(FOR_WIN10)==0
  1584. SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_DQS=0
  1585. SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_FTS4=1
  1586. SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_EXPLAIN_COMMENTS=1
  1587. SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_OFFSET_SQL_FUNC=1
  1588. SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION=1
  1589. SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_STMT_SCANSTATUS=1
  1590. SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_STRICT_SUBTYPE=1
  1591. !ENDIF
  1592. # <<mark>>
  1593. # Extra compiler options for various test tools.
  1594. #
  1595. MPTESTER_COMPILE_OPTS = -DSQLITE_ENABLE_FTS5
  1596. FUZZERSHELL_COMPILE_OPTS =
  1597. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -I$(TOP)\test -I$(TOP)\ext\recover
  1598. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_MEMSYS5
  1599. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_OSS_FUZZ
  1600. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_BYTECODE_VTAB
  1601. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_DBPAGE_VTAB
  1602. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_DBSTAT_VTAB
  1603. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_BYTECODE_VTAB
  1604. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_DESERIALIZE
  1605. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_EXPLAIN_COMMENTS
  1606. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_FTS3_PARENTHESIS
  1607. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_FTS4
  1608. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_FTS5
  1609. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_GEOPOLY
  1610. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_MATH_FUNCTIONS
  1611. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_MEMSYS5
  1612. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_NORMALIZE
  1613. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_OFFSET_SQL_FUNC
  1614. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_PREUPDATE_HOOK
  1615. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_RTREE
  1616. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_SESSION
  1617. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_STMTVTAB
  1618. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
  1619. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_STAT4
  1620. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_STMT_SCANSTATUS
  1621. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_MAX_MEMORY=50000000
  1622. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_MAX_MMAP_SIZE=0
  1623. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_OMIT_LOAD_EXTENSION
  1624. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_PRINTF_PRECISION_LIMIT=1000
  1625. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_PRIVATE=""
  1626. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_STRICT_SUBTYPE=1
  1627. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_STATIC_RANDOMJSON
  1628. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_MAX_MEMORY=50000000
  1629. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_PRINTF_PRECISION_LIMIT=1000
  1630. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_OMIT_LOAD_EXTENSION
  1631. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_FTS4
  1632. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_FTS5
  1633. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_RTREE
  1634. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_GEOPOLY
  1635. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_DBSTAT_VTAB
  1636. FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_BYTECODE_VTAB
  1637. FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\test\fuzzcheck.c
  1638. FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\test\ossfuzz.c
  1639. FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\test\fuzzinvariants.c
  1640. FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\test\vt02.c
  1641. FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\ext\recover\dbdata.c
  1642. FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\ext\recover\sqlite3recover.c
  1643. FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\ext\misc\percentile.c
  1644. FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\ext\misc\randomjson.c
  1645. OSSSHELL_SRC = $(TOP)\test\ossshell.c $(TOP)\test\ossfuzz.c
  1646. DBFUZZ_COMPILE_OPTS = -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION
  1647. KV_COMPILE_OPTS = -DSQLITE_THREADSAFE=0 -DSQLITE_DIRECT_OVERFLOW_READ
  1648. ST_COMPILE_OPTS = -DSQLITE_THREADSAFE=0
  1649. # Standard options to testfixture.
  1650. #
  1651. TESTOPTS = --verbose=file --output=test-out.txt
  1652. # Extra targets for the "all" target that require Tcl.
  1653. #
  1654. !IF $(NO_TCL)==0
  1655. ALL_TCL_TARGETS = $(SQLITE3TCLDLL)
  1656. !ELSE
  1657. ALL_TCL_TARGETS =
  1658. !ENDIF
  1659. # <</mark>>
  1660. # This is the default Makefile target. The objects listed here
  1661. # are what get build when you type just "make" with no arguments.
  1662. #
  1663. core: dll libsqlite3.lib shell
  1664. # Targets that require the Tcl library.
  1665. #
  1666. tcl: $(ALL_TCL_TARGETS)
  1667. # This Makefile target builds all of the standard binaries.
  1668. #
  1669. all: core tcl
  1670. # Dynamic link library section.
  1671. #
  1672. dll: $(SQLITE3DLL)
  1673. # Shell executable.
  1674. #
  1675. shell: $(SQLITE3EXE)
  1676. # jimsh0 - replacement for tclsh
  1677. #
  1678. jimsh0.exe: $(TOP)\autosetup\jimsh0.c
  1679. cl -DHAVE__FULLPATH=1 $(TOP)\autosetup\jimsh0.c
  1680. # <<mark>>
  1681. libsqlite3.lib: $(LIBOBJ)
  1682. $(LTLIB) $(LTLIBOPTS) /OUT:$@ $(LIBOBJ) $(TLIBS)
  1683. libtclsqlite3.lib: tclsqlite.lo libsqlite3.lib
  1684. $(LTLIB) $(LTLIBOPTS) $(TCLLIBPATHS) $(LTLIBPATHS) /OUT:$@ tclsqlite.lo libsqlite3.lib $(LIBTCLSTUB) $(TLIBS)
  1685. tclsqlite3.def: tclsqlite.lo
  1686. echo EXPORTS > tclsqlite3.def
  1687. dumpbin /all tclsqlite.lo \
  1688. | $(TCLSH_CMD) $(TOP)\tool\replace.tcl include "^\s+/EXPORT:_?((?:Sqlite3|Tclsqlite3)_[^@]*)(?:@\d+)?$$" \1 \
  1689. | sort >> tclsqlite3.def
  1690. pkgIndex.tcl: $(TOP)\VERSION
  1691. for /F %%V in ('type "$(TOP)\VERSION"') do ( \
  1692. echo package ifneeded sqlite3 @version@ [list load [file join $$dir $(SQLITE3TCLDLL)] Sqlite3] \
  1693. | $(TCLSH_CMD) $(TOP)\tool\replace.tcl exact @version@ %%V > pkgIndex.tcl \
  1694. )
  1695. $(SQLITE3TCLDLL): libtclsqlite3.lib $(LIBRESOBJS) tclsqlite3.def pkgIndex.tcl
  1696. $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /DEF:tclsqlite3.def /OUT:$@ libtclsqlite3.lib $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
  1697. tclextension: $(SQLITE3TCLDLL)
  1698. tclextension-install: $(SQLITE3TCLDLL)
  1699. $(TCLSH_CMD) $(TOP)\tool\buildtclext.tcl --install-only
  1700. tclextension-uninstall:
  1701. $(TCLSH_CMD) $(TOP)\tool\buildtclext.tcl --uninstall
  1702. tclextension-list:
  1703. @ $(TCLSH_CMD) $(TOP)\tool\buildtclext.tcl --info
  1704. tclextension-verify: sqlite3.h
  1705. @ $(TCLSH_CMD) $(TOP)\tool\buildtclext.tcl --version-check
  1706. # <</mark>>
  1707. $(SQLITE3DLL): $(LIBOBJ) $(LIBRESOBJS) $(CORE_LINK_DEP)
  1708. $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL $(CORE_LINK_OPTS) /OUT:$@ $(LIBOBJ) $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
  1709. # <<block2>>
  1710. sqlite3.def: libsqlite3.lib $(JIM_TCLSH)
  1711. echo EXPORTS > sqlite3.def
  1712. dumpbin /all libsqlite3.lib \
  1713. | $(JIM_TCLSH) $(TOP)\tool\replace.tcl include "^\s+1 _?(sqlite3(?:session|changeset|changegroup|rebaser|rbu)?_[^@]*)(?:@\d+)?$$" \1 \
  1714. | sort >> sqlite3.def
  1715. # <</block2>>
  1716. $(SQLITE3EXE): shell.c $(SHELL_CORE_DEP) $(LIBRESOBJS) $(SHELL_CORE_SRC) $(SQLITE3H)
  1717. $(LTLINK) $(SHELL_COMPILE_OPTS) $(READLINE_FLAGS) shell.c $(SHELL_CORE_SRC) \
  1718. /link $(SQLITE3EXEPDB) $(LDFLAGS) $(LTLINKOPTS) $(SHELL_LINK_OPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LIBREADLINE) $(LTLIBS) $(TLIBS)
  1719. # <<mark>>
  1720. sqldiff.exe: $(TOP)\tool\sqldiff.c $(TOP)\ext\misc\sqlite3_stdio.h $(TOP)\ext\misc\sqlite3_stdio.c $(SQLITE3C) $(SQLITE3H) $(LIBRESOBJS)
  1721. $(LTLINK) $(NO_WARN) -I$(TOP)\ext\misc $(TOP)\tool\sqldiff.c $(TOP)\ext\misc\sqlite3_stdio.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS) $(LIBRESOBJS)
  1722. dbhash.exe: $(TOP)\tool\dbhash.c $(SQLITE3C) $(SQLITE3H)
  1723. $(LTLINK) $(NO_WARN) $(TOP)\tool\dbhash.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  1724. RSYNC_SRC = \
  1725. $(TOP)\tool\sqlite3_rsync.c \
  1726. $(SQLITE3C)
  1727. RSYNC_OPT = \
  1728. -DSQLITE_ENABLE_DBPAGE_VTAB \
  1729. -DSQLITE_THREADSAFE=0 \
  1730. -DSQLITE_OMIT_LOAD_EXTENSION \
  1731. -DSQLITE_OMIT_DEPRECATED
  1732. sqlite3_rsync.exe: $(RSYNC_SRC) $(LIBRESOBJS)
  1733. $(LTLINK) $(RSYNC_OPT) $(NO_WARN) $(RSYNC_SRC) /link $(LDFLAGS) $(LTLINKOPTS) $(LIBRESOBJS)
  1734. scrub.exe: $(TOP)\ext\misc\scrub.c $(SQLITE3C) $(SQLITE3H)
  1735. $(LTLINK) $(NO_WARN) -DSCRUB_STANDALONE=1 $(TOP)\ext\misc\scrub.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  1736. srcck1.exe: $(TOP)\tool\srcck1.c
  1737. $(BCC) $(NO_WARN) -Fe$@ $(TOP)\tool\srcck1.c
  1738. sourcetest: srcck1.exe $(SQLITE3C)
  1739. srcck1.exe $(SQLITE3C)
  1740. src-verify.exe: $(TOP)\tool\src-verify.c
  1741. $(LTLINK) $(NO_WARN) $(TOP)\tool\src-verify.c
  1742. verify-source: src-verify.exe
  1743. src-verify.exe $(TOP)
  1744. fuzzershell.exe: $(TOP)\tool\fuzzershell.c $(SQLITE3C) $(SQLITE3H)
  1745. $(LTLINK) $(NO_WARN) $(FUZZERSHELL_COMPILE_OPTS) $(TOP)\tool\fuzzershell.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  1746. dbfuzz.exe: $(TOP)\test\dbfuzz.c $(SQLITE3C) $(SQLITE3H)
  1747. $(LTLINK) $(NO_WARN) $(DBFUZZ_COMPILE_OPTS) $(TOP)\test\dbfuzz.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  1748. fuzzcheck.exe: $(FUZZCHECK_SRC) $(SQLITE3C) $(SQLITE3H)
  1749. $(LTLINK) /F 8388608 $(NO_WARN) $(FUZZCHECK_OPTS) $(FUZZCHECK_SRC) $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  1750. fuzzcheck-asan.exe: $(FUZZCHECK_SRC) $(SQLITE3C) $(SQLITE3H)
  1751. $(LTLINK) $(NO_WARN) /fsanitize=address $(FUZZCHECK_OPTS) $(FUZZCHECK_SRC) $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  1752. run-fuzzcheck: fuzzcheck.exe fuzzcheck-asan.exe
  1753. fuzzcheck --spinner $(FUZZDB)
  1754. fuzzcheck-asan --spinner $(FUZZDB)
  1755. ossshell.exe: $(OSSSHELL_SRC) $(SQLITE3C) $(SQLITE3H)
  1756. $(LTLINK) $(NO_WARN) $(FUZZCHECK_OPTS) $(OSSSHELL_SRC) $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  1757. sessionfuzz.exe: zlib $(TOP)\test\sessionfuzz.c $(SQLITE3C) $(SQLITE3H)
  1758. $(LTLINK) $(NO_WARN) -I$(ZLIBINCDIR) $(TOP)\test\sessionfuzz.c /link $(LDFLAGS) $(LTLINKOPTS) /LIBPATH:$(ZLIBLIBDIR) $(ZLIBLIB)
  1759. mptester.exe: $(TOP)\mptest\mptest.c $(SQLITE3C) $(SQLITE3H)
  1760. $(LTLINK) $(NO_WARN) $(MPTESTER_COMPILE_OPTS) $(TOP)\mptest\mptest.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  1761. MPTEST1 = mptester mptest.db $(TOP)\mptest\crash01.test --repeat 20
  1762. MPTEST2 = mptester mptest.db $(TOP)\mptest\multiwrite01.test --repeat 20
  1763. mptest: mptester.exe
  1764. del /Q mptest.db 2>NUL
  1765. $(MPTEST1) --journalmode DELETE
  1766. $(MPTEST2) --journalmode WAL
  1767. $(MPTEST1) --journalmode WAL
  1768. $(MPTEST2) --journalmode PERSIST
  1769. $(MPTEST1) --journalmode PERSIST
  1770. $(MPTEST2) --journalmode TRUNCATE
  1771. $(MPTEST1) --journalmode TRUNCATE
  1772. $(MPTEST2) --journalmode DELETE
  1773. # This target creates a directory named "tsrc" and fills it with
  1774. # copies of all of the C source code and header files needed to
  1775. # build on the target system. Some of the C source code and header
  1776. # files are automatically generated. This target takes care of
  1777. # all that automatic generation.
  1778. #
  1779. .target_source: $(SRC) $(TOP)\tool\vdbe-compress.tcl fts5.c $(SQLITE_TCL_DEP) $(JIM_TCLSH)
  1780. -rmdir /Q/S tsrc 2>NUL
  1781. -mkdir tsrc
  1782. $(JIM_TCLSH) $(TOP)\tool\cp.tcl $(SRC00) $(SRC01) $(SRC03) $(SRC04) $(SRC05) $(SRC07) $(SRC09) $(SRC10) $(SRC11) $(SRC12) fts5.c fts5.h tsrc
  1783. copy /B tsrc\fts5.c +,,
  1784. copy /B tsrc\fts5.h +,,
  1785. del /Q tsrc\sqlite.h.in tsrc\parse.y 2>NUL
  1786. $(JIM_TCLSH) $(TOP)\tool\vdbe-compress.tcl $(OPTS) < tsrc\vdbe.c > vdbe.new
  1787. move vdbe.new tsrc\vdbe.c
  1788. echo > .target_source
  1789. sqlite3.c: .target_source sqlite3ext.h sqlite3session.h $(MKSQLITE3C_TOOL) src-verify.exe $(JIM_TCLSH)
  1790. $(JIM_TCLSH) $(MKSQLITE3C_TOOL) $(MKSQLITE3C_ARGS) $(EXTRA_SRC)
  1791. sqlite3-all.c: sqlite3.c $(TOP)\tool\split-sqlite3c.tcl $(JIM_TCLSH)
  1792. $(JIM_TCLSH) $(TOP)\tool\split-sqlite3c.tcl
  1793. # <</mark>>
  1794. # Rule to build the amalgamation
  1795. #
  1796. sqlite3.lo: $(SQLITE3C)
  1797. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(SQLITE3C)
  1798. # <<mark>>
  1799. # Rules to build the LEMON compiler generator
  1800. #
  1801. lempar.c: $(TOP)\tool\lempar.c
  1802. copy /Y $(TOP)\tool\lempar.c .
  1803. copy /B lempar.c +,,
  1804. lemon.exe: $(TOP)\tool\lemon.c lempar.c
  1805. $(BCC) $(NO_WARN) -Daccess=_access \
  1806. -Fe$@ $(TOP)\tool\lemon.c /link $(LDFLAGS) $(NLTLINKOPTS) $(NLTLIBPATHS)
  1807. # <<mark>>
  1808. # Rules to build the source-id generator tool
  1809. #
  1810. mksourceid.exe: $(TOP)\tool\mksourceid.c
  1811. $(BCC) $(NO_WARN) -Fe$@ $(TOP)\tool\mksourceid.c /link $(LDFLAGS) $(NLTLINKOPTS) $(NLTLIBPATHS)
  1812. # Rules to build individual *.lo files from generated *.c files. This
  1813. # applies to:
  1814. #
  1815. # parse.lo
  1816. # opcodes.lo
  1817. #
  1818. parse.lo: parse.c $(HDR)
  1819. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c parse.c
  1820. opcodes.lo: opcodes.c
  1821. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c opcodes.c
  1822. # <</mark>>
  1823. # Rule to build the Win32 resources object file.
  1824. #
  1825. !IF $(USE_RC)!=0
  1826. # <<block1>>
  1827. $(LIBRESOBJS): $(TOP)\src\sqlite3.rc $(SQLITE3H) $(TOP)\VERSION $(JIM_TCLSH)
  1828. echo #ifndef SQLITE_RESOURCE_VERSION > sqlite3rc.h
  1829. for /F %%V in ('type "$(TOP)\VERSION"') do ( \
  1830. echo #define SQLITE_RESOURCE_VERSION %%V \
  1831. | $(JIM_TCLSH) $(TOP)\tool\replace.tcl exact . ^, >> sqlite3rc.h \
  1832. )
  1833. echo #endif >> sqlite3rc.h
  1834. $(LTRCOMPILE) -fo $(LIBRESOBJS) $(TOP)\src\sqlite3.rc
  1835. # <</block1>>
  1836. !ENDIF
  1837. # <<mark>>
  1838. # Rules to build individual *.lo files from files in the src directory.
  1839. #
  1840. alter.lo: $(TOP)\src\alter.c $(HDR)
  1841. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\alter.c
  1842. analyze.lo: $(TOP)\src\analyze.c $(HDR)
  1843. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\analyze.c
  1844. attach.lo: $(TOP)\src\attach.c $(HDR)
  1845. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\attach.c
  1846. auth.lo: $(TOP)\src\auth.c $(HDR)
  1847. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\auth.c
  1848. backup.lo: $(TOP)\src\backup.c $(HDR)
  1849. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\backup.c
  1850. bitvec.lo: $(TOP)\src\bitvec.c $(HDR)
  1851. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\bitvec.c
  1852. btmutex.lo: $(TOP)\src\btmutex.c $(HDR)
  1853. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\btmutex.c
  1854. btree.lo: $(TOP)\src\btree.c $(HDR) $(TOP)\src\pager.h
  1855. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\btree.c
  1856. build.lo: $(TOP)\src\build.c $(HDR)
  1857. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\build.c
  1858. callback.lo: $(TOP)\src\callback.c $(HDR)
  1859. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\callback.c
  1860. complete.lo: $(TOP)\src\complete.c $(HDR)
  1861. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\complete.c
  1862. ctime.c: $(TOP)\tool\mkctimec.tcl $(JIM_TCLSH)
  1863. $(JIM_TCLSH) $(TOP)\tool\mkctimec.tcl
  1864. ctime.lo: ctime.c $(HDR)
  1865. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c ctime.c
  1866. date.lo: $(TOP)\src\date.c $(HDR)
  1867. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\date.c
  1868. dbpage.lo: $(TOP)\src\dbpage.c $(HDR)
  1869. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\dbpage.c
  1870. dbstat.lo: $(TOP)\src\dbstat.c $(HDR)
  1871. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\dbstat.c
  1872. delete.lo: $(TOP)\src\delete.c $(HDR)
  1873. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\delete.c
  1874. expr.lo: $(TOP)\src\expr.c $(HDR)
  1875. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\expr.c
  1876. fault.lo: $(TOP)\src\fault.c $(HDR)
  1877. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\fault.c
  1878. fkey.lo: $(TOP)\src\fkey.c $(HDR)
  1879. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\fkey.c
  1880. func.lo: $(TOP)\src\func.c $(HDR)
  1881. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\func.c
  1882. global.lo: $(TOP)\src\global.c $(HDR)
  1883. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\global.c
  1884. hash.lo: $(TOP)\src\hash.c $(HDR)
  1885. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\hash.c
  1886. insert.lo: $(TOP)\src\insert.c $(HDR)
  1887. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\insert.c
  1888. json.lo: $(TOP)\src\json.c $(HDR)
  1889. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\json.c
  1890. legacy.lo: $(TOP)\src\legacy.c $(HDR)
  1891. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\legacy.c
  1892. loadext.lo: $(TOP)\src\loadext.c $(HDR)
  1893. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\loadext.c
  1894. main.lo: $(TOP)\src\main.c $(HDR)
  1895. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\main.c
  1896. malloc.lo: $(TOP)\src\malloc.c $(HDR)
  1897. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\malloc.c
  1898. mem0.lo: $(TOP)\src\mem0.c $(HDR)
  1899. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mem0.c
  1900. mem1.lo: $(TOP)\src\mem1.c $(HDR)
  1901. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mem1.c
  1902. mem2.lo: $(TOP)\src\mem2.c $(HDR)
  1903. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mem2.c
  1904. mem3.lo: $(TOP)\src\mem3.c $(HDR)
  1905. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mem3.c
  1906. mem5.lo: $(TOP)\src\mem5.c $(HDR)
  1907. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mem5.c
  1908. memdb.lo: $(TOP)\src\memdb.c $(HDR)
  1909. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\memdb.c
  1910. memjournal.lo: $(TOP)\src\memjournal.c $(HDR)
  1911. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\memjournal.c
  1912. mutex.lo: $(TOP)\src\mutex.c $(HDR)
  1913. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mutex.c
  1914. mutex_noop.lo: $(TOP)\src\mutex_noop.c $(HDR)
  1915. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mutex_noop.c
  1916. mutex_unix.lo: $(TOP)\src\mutex_unix.c $(HDR)
  1917. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mutex_unix.c
  1918. mutex_w32.lo: $(TOP)\src\mutex_w32.c $(HDR)
  1919. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mutex_w32.c
  1920. notify.lo: $(TOP)\src\notify.c $(HDR)
  1921. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\notify.c
  1922. pager.lo: $(TOP)\src\pager.c $(HDR) $(TOP)\src\pager.h
  1923. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\pager.c
  1924. pcache.lo: $(TOP)\src\pcache.c $(HDR) $(TOP)\src\pcache.h
  1925. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\pcache.c
  1926. pcache1.lo: $(TOP)\src\pcache1.c $(HDR) $(TOP)\src\pcache.h
  1927. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\pcache1.c
  1928. os.lo: $(TOP)\src\os.c $(HDR)
  1929. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\os.c
  1930. os_kv.lo: $(TOP)\src\os_kv.c $(HDR)
  1931. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\os_kv.c
  1932. os_unix.lo: $(TOP)\src\os_unix.c $(HDR)
  1933. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\os_unix.c
  1934. os_win.lo: $(TOP)\src\os_win.c $(HDR)
  1935. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\os_win.c
  1936. pragma.lo: $(TOP)\src\pragma.c $(HDR)
  1937. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\pragma.c
  1938. prepare.lo: $(TOP)\src\prepare.c $(HDR)
  1939. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\prepare.c
  1940. printf.lo: $(TOP)\src\printf.c $(HDR)
  1941. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\printf.c
  1942. random.lo: $(TOP)\src\random.c $(HDR)
  1943. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\random.c
  1944. resolve.lo: $(TOP)\src\resolve.c $(HDR)
  1945. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\resolve.c
  1946. rowset.lo: $(TOP)\src\rowset.c $(HDR)
  1947. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\rowset.c
  1948. select.lo: $(TOP)\src\select.c $(HDR)
  1949. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\select.c
  1950. status.lo: $(TOP)\src\status.c $(HDR)
  1951. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\status.c
  1952. table.lo: $(TOP)\src\table.c $(HDR)
  1953. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\table.c
  1954. threads.lo: $(TOP)\src\threads.c $(HDR)
  1955. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\threads.c
  1956. tokenize.lo: $(TOP)\src\tokenize.c keywordhash.h $(HDR)
  1957. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\tokenize.c
  1958. treeview.lo: $(TOP)\src\treeview.c $(HDR)
  1959. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\treeview.c
  1960. trigger.lo: $(TOP)\src\trigger.c $(HDR)
  1961. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\trigger.c
  1962. update.lo: $(TOP)\src\update.c $(HDR)
  1963. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\update.c
  1964. upsert.lo: $(TOP)\src\upsert.c $(HDR)
  1965. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\upsert.c
  1966. utf.lo: $(TOP)\src\utf.c $(HDR)
  1967. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\utf.c
  1968. util.lo: $(TOP)\src\util.c $(HDR)
  1969. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\util.c
  1970. vacuum.lo: $(TOP)\src\vacuum.c $(HDR)
  1971. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vacuum.c
  1972. vdbe.lo: $(TOP)\src\vdbe.c $(HDR)
  1973. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vdbe.c
  1974. vdbeapi.lo: $(TOP)\src\vdbeapi.c $(HDR)
  1975. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vdbeapi.c
  1976. vdbeaux.lo: $(TOP)\src\vdbeaux.c $(HDR)
  1977. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vdbeaux.c
  1978. vdbeblob.lo: $(TOP)\src\vdbeblob.c $(HDR)
  1979. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vdbeblob.c
  1980. vdbemem.lo: $(TOP)\src\vdbemem.c $(HDR)
  1981. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vdbemem.c
  1982. vdbesort.lo: $(TOP)\src\vdbesort.c $(HDR)
  1983. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vdbesort.c
  1984. vdbetrace.lo: $(TOP)\src\vdbetrace.c $(HDR)
  1985. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vdbetrace.c
  1986. vdbevtab.lo: $(TOP)\src\vdbevtab.c $(HDR)
  1987. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vdbevtab.c
  1988. vtab.lo: $(TOP)\src\vtab.c $(HDR)
  1989. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vtab.c
  1990. wal.lo: $(TOP)\src\wal.c $(HDR)
  1991. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\wal.c
  1992. walker.lo: $(TOP)\src\walker.c $(HDR)
  1993. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\walker.c
  1994. where.lo: $(TOP)\src\where.c $(HDR)
  1995. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\where.c
  1996. wherecode.lo: $(TOP)\src\wherecode.c $(HDR)
  1997. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\wherecode.c
  1998. whereexpr.lo: $(TOP)\src\whereexpr.c $(HDR)
  1999. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\whereexpr.c
  2000. window.lo: $(TOP)\src\window.c $(HDR)
  2001. $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\window.c
  2002. tclsqlite.lo: $(TOP)\src\tclsqlite.c $(HDR) $(SQLITE_TCL_DEP)
  2003. $(LTCOMPILE) $(NO_WARN) -DUSE_TCL_STUBS=1 -DBUILD_sqlite -I$(TCLINCDIR) -c $(TOP)\src\tclsqlite.c
  2004. tclsqlite-shell.lo: $(TOP)\src\tclsqlite.c $(HDR) $(SQLITE_TCL_DEP)
  2005. $(LTCOMPILE) $(NO_WARN) -DTCLSH -DBUILD_sqlite -I$(TCLINCDIR) -c $(TOP)\src\tclsqlite.c
  2006. tclsqlite3.exe: tclsqlite-shell.lo $(SQLITE3C) $(SQLITE3H) $(LIBRESOBJS)
  2007. $(LTLINK) $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS) $(TCLLIBPATHS) $(LTLIBPATHS) /OUT:$@ tclsqlite-shell.lo $(LIBRESOBJS) $(TCLLIBS) $(LTLIBS) $(TLIBS)
  2008. # Rules to build opcodes.c and opcodes.h
  2009. #
  2010. opcodes.c: opcodes.h $(TOP)\tool\mkopcodec.tcl $(JIM_TCLSH)
  2011. $(JIM_TCLSH) $(TOP)\tool\mkopcodec.tcl opcodes.h > opcodes.c
  2012. opcodes.h: parse.h $(TOP)\src\vdbe.c $(TOP)\tool\mkopcodeh.tcl $(JIM_TCLSH)
  2013. type parse.h $(TOP)\src\vdbe.c | $(JIM_TCLSH) $(TOP)\tool\mkopcodeh.tcl > opcodes.h
  2014. # Rules to build parse.c and parse.h - the outputs of lemon.
  2015. #
  2016. parse.h: parse.c
  2017. parse.c: $(TOP)\src\parse.y lemon.exe
  2018. del /Q parse.y parse.h parse.h.temp 2>NUL
  2019. copy /Y $(TOP)\src\parse.y .
  2020. copy /B parse.y +,,
  2021. .\lemon.exe $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS) $(OPTS) -S parse.y
  2022. pragma.h: $(TOP)\tool\mkpragmatab.tcl $(JIM_TCLSH)
  2023. $(JIM_TCLSH) $(TOP)\tool\mkpragmatab.tcl
  2024. $(SQLITE3H): $(TOP)\src\sqlite.h.in $(TOP)\manifest mksourceid.exe $(TOP)\VERSION $(JIM_TCLSH)
  2025. $(JIM_TCLSH) $(TOP)\tool\mksqlite3h.tcl "$(TOP:\=/)" -o $(SQLITE3H) $(MKSQLITE3H_ARGS)
  2026. sqlite3ext.h: .target_source
  2027. !IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
  2028. type tsrc\sqlite3ext.h | $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "\(\*\)" "(SQLITE_CALLBACK *)" \
  2029. | $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "\(\*" "(SQLITE_APICALL *" > sqlite3ext.h
  2030. copy /Y sqlite3ext.h tsrc\sqlite3ext.h
  2031. !ELSE
  2032. copy /Y tsrc\sqlite3ext.h sqlite3ext.h
  2033. copy /B sqlite3ext.h +,,
  2034. !ENDIF
  2035. sqlite3session.h: $(TOP)\ext\session\sqlite3session.h
  2036. copy /Y $(TOP)\ext\session\sqlite3session.h .
  2037. copy /B sqlite3session.h +,,
  2038. mkkeywordhash.exe: $(TOP)\tool\mkkeywordhash.c
  2039. $(BCC) $(NO_WARN) -Fe$@ $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS) $(OPTS) \
  2040. $(TOP)\tool\mkkeywordhash.c /link $(LDFLAGS) $(NLTLINKOPTS) $(NLTLIBPATHS)
  2041. keywordhash.h: $(TOP)\tool\mkkeywordhash.c mkkeywordhash.exe
  2042. .\mkkeywordhash.exe > keywordhash.h
  2043. # Source and header files that shell.c depends on
  2044. SHELL_DEP = \
  2045. $(TOP)\src\shell.c.in \
  2046. $(TOP)\ext\expert\sqlite3expert.c \
  2047. $(TOP)\ext\expert\sqlite3expert.h \
  2048. $(TOP)\ext\intck\sqlite3intck.c \
  2049. $(TOP)\ext\intck\sqlite3intck.h \
  2050. $(TOP)\ext\misc\appendvfs.c \
  2051. $(TOP)\ext\misc\base64.c \
  2052. $(TOP)\ext\misc\base85.c \
  2053. $(TOP)\ext\misc\completion.c \
  2054. $(TOP)\ext\misc\decimal.c \
  2055. $(TOP)\ext\misc\fileio.c \
  2056. $(TOP)\ext\misc\ieee754.c \
  2057. $(TOP)\ext\misc\memtrace.c \
  2058. $(TOP)\ext\misc\pcachetrace.c \
  2059. $(TOP)\ext\misc\percentile.c \
  2060. $(TOP)\ext\misc\regexp.c \
  2061. $(TOP)\ext\misc\series.c \
  2062. $(TOP)\ext\misc\sha1.c \
  2063. $(TOP)\ext\misc\shathree.c \
  2064. $(TOP)\ext\misc\sqlar.c \
  2065. $(TOP)\ext\misc\sqlite3_stdio.c \
  2066. $(TOP)\ext\misc\sqlite3_stdio.h \
  2067. $(TOP)\ext\misc\uint.c \
  2068. $(TOP)\ext\misc\vfstrace.c \
  2069. $(TOP)\ext\misc\zipfile.c \
  2070. $(TOP)\ext\recover\dbdata.c \
  2071. $(TOP)\ext\recover\sqlite3recover.c \
  2072. $(TOP)\ext\recover\sqlite3recover.h \
  2073. $(TOP)\src\test_windirent.c \
  2074. $(TOP)\src\test_windirent.h
  2075. # If use of zlib is enabled, add the "zipfile.c" source file.
  2076. #
  2077. !IF $(USE_ZLIB)!=0
  2078. SHELL_DEP = $(SHELL_DEP) $(TOP)\ext\misc\sqlar.c
  2079. SHELL_DEP = $(SHELL_DEP) $(TOP)\ext\misc\zipfile.c
  2080. !ENDIF
  2081. shell.c: $(SHELL_DEP) $(TOP)\tool\mkshellc.tcl $(JIM_TCLSH)
  2082. $(JIM_TCLSH) $(TOP)\tool\mkshellc.tcl shell.c
  2083. zlib:
  2084. pushd $(ZLIBDIR) && $(MAKE) /f win32\Makefile.msc clean $(ZLIBLIB) && popd
  2085. # Rules to build the extension objects.
  2086. #
  2087. icu.lo: $(TOP)\ext\icu\icu.c $(HDR) $(EXTHDR)
  2088. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\icu\icu.c
  2089. fts3.lo: $(TOP)\ext\fts3\fts3.c $(HDR) $(EXTHDR)
  2090. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3.c
  2091. fts3_aux.lo: $(TOP)\ext\fts3\fts3_aux.c $(HDR) $(EXTHDR)
  2092. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_aux.c
  2093. fts3_expr.lo: $(TOP)\ext\fts3\fts3_expr.c $(HDR) $(EXTHDR)
  2094. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_expr.c
  2095. fts3_hash.lo: $(TOP)\ext\fts3\fts3_hash.c $(HDR) $(EXTHDR)
  2096. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_hash.c
  2097. fts3_icu.lo: $(TOP)\ext\fts3\fts3_icu.c $(HDR) $(EXTHDR)
  2098. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_icu.c
  2099. fts3_snippet.lo: $(TOP)\ext\fts3\fts3_snippet.c $(HDR) $(EXTHDR)
  2100. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_snippet.c
  2101. fts3_porter.lo: $(TOP)\ext\fts3\fts3_porter.c $(HDR) $(EXTHDR)
  2102. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_porter.c
  2103. fts3_tokenizer.lo: $(TOP)\ext\fts3\fts3_tokenizer.c $(HDR) $(EXTHDR)
  2104. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenizer.c
  2105. fts3_tokenizer1.lo: $(TOP)\ext\fts3\fts3_tokenizer1.c $(HDR) $(EXTHDR)
  2106. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenizer1.c
  2107. fts3_tokenize_vtab.lo: $(TOP)\ext\fts3\fts3_tokenize_vtab.c $(HDR) $(EXTHDR)
  2108. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenize_vtab.c
  2109. fts3_unicode.lo: $(TOP)\ext\fts3\fts3_unicode.c $(HDR) $(EXTHDR)
  2110. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_unicode.c
  2111. fts3_unicode2.lo: $(TOP)\ext\fts3\fts3_unicode2.c $(HDR) $(EXTHDR)
  2112. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_unicode2.c
  2113. fts3_write.lo: $(TOP)\ext\fts3\fts3_write.c $(HDR) $(EXTHDR)
  2114. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_write.c
  2115. stmt.lo: $(TOP)\ext\misc\stmt.c $(HDR) $(EXTHDR)
  2116. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\misc\stmt.c
  2117. rtree.lo: $(TOP)\ext\rtree\rtree.c $(HDR) $(EXTHDR)
  2118. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\rtree\rtree.c
  2119. sqlite3session.lo: $(TOP)\ext\session\sqlite3session.c $(HDR) $(EXTHDR)
  2120. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\session\sqlite3session.c
  2121. # FTS5 things
  2122. #
  2123. FTS5_SRC = \
  2124. $(TOP)\ext\fts5\fts5.h \
  2125. $(TOP)\ext\fts5\fts5Int.h \
  2126. $(TOP)\ext\fts5\fts5_aux.c \
  2127. $(TOP)\ext\fts5\fts5_buffer.c \
  2128. $(TOP)\ext\fts5\fts5_main.c \
  2129. $(TOP)\ext\fts5\fts5_config.c \
  2130. $(TOP)\ext\fts5\fts5_expr.c \
  2131. $(TOP)\ext\fts5\fts5_hash.c \
  2132. $(TOP)\ext\fts5\fts5_index.c \
  2133. fts5parse.c fts5parse.h \
  2134. $(TOP)\ext\fts5\fts5_storage.c \
  2135. $(TOP)\ext\fts5\fts5_tokenize.c \
  2136. $(TOP)\ext\fts5\fts5_unicode2.c \
  2137. $(TOP)\ext\fts5\fts5_varint.c \
  2138. $(TOP)\ext\fts5\fts5_vocab.c
  2139. LSM1_SRC = \
  2140. $(TOP)\ext\lsm1\lsm.h \
  2141. $(TOP)\ext\lsm1\lsmInt.h \
  2142. $(TOP)\ext\lsm1\lsm_ckpt.c \
  2143. $(TOP)\ext\lsm1\lsm_file.c \
  2144. $(TOP)\ext\lsm1\lsm_log.c \
  2145. $(TOP)\ext\lsm1\lsm_main.c \
  2146. $(TOP)\ext\lsm1\lsm_mem.c \
  2147. $(TOP)\ext\lsm1\lsm_mutex.c \
  2148. $(TOP)\ext\lsm1\lsm_shared.c \
  2149. $(TOP)\ext\lsm1\lsm_sorted.c \
  2150. $(TOP)\ext\lsm1\lsm_str.c \
  2151. $(TOP)\ext\lsm1\lsm_tree.c \
  2152. $(TOP)\ext\lsm1\lsm_unix.c \
  2153. $(TOP)\ext\lsm1\lsm_varint.c \
  2154. $(TOP)\ext\lsm1\lsm_vtab.c \
  2155. $(TOP)\ext\lsm1\lsm_win32.c
  2156. fts5parse.c: $(TOP)\ext\fts5\fts5parse.y lemon.exe
  2157. copy /Y $(TOP)\ext\fts5\fts5parse.y .
  2158. copy /B fts5parse.y +,,
  2159. del /Q fts5parse.h 2>NUL
  2160. .\lemon.exe $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS) $(OPTS) -S fts5parse.y
  2161. fts5parse.h: fts5parse.c
  2162. fts5.c: $(FTS5_SRC) $(JIM_TCLSH)
  2163. $(JIM_TCLSH) $(TOP)\ext\fts5\tool\mkfts5c.tcl
  2164. copy /Y $(TOP)\ext\fts5\fts5.h .
  2165. copy /B fts5.h +,,
  2166. lsm1.c: $(LSM1_SRC) $(JIM_TCLSH)
  2167. $(JIM_TCLSH) $(TOP)\ext\lsm1\tool\mklsm1c.tcl
  2168. copy /Y $(TOP)\ext\lsm1\lsm.h .
  2169. copy /B lsm.h +,,
  2170. fts5.lo: fts5.c $(HDR) $(EXTHDR)
  2171. $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c fts5.c
  2172. fts5_ext.lo: fts5.c $(HDR) $(EXTHDR)
  2173. $(LTCOMPILE) $(NO_WARN) -c fts5.c
  2174. fts5.dll: fts5_ext.lo
  2175. $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /OUT:$@ fts5_ext.lo
  2176. sqlite3rbu.lo: $(TOP)\ext\rbu\sqlite3rbu.c $(HDR) $(EXTHDR)
  2177. $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\rbu\sqlite3rbu.c
  2178. # Rules to build the 'testfixture' application.
  2179. #
  2180. # If using the amalgamation, use sqlite3.c directly to build the test
  2181. # fixture. Otherwise link against libsqlite3.lib. (This distinction is
  2182. # necessary because the test fixture requires non-API symbols which are
  2183. # hidden when the library is built via the amalgamation).
  2184. #
  2185. TESTFIXTURE_FLAGS = -DTCLSH_INIT_PROC=sqlite3TestInit -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1
  2186. TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERVER=1 -DSQLITE_PRIVATE=""
  2187. TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_CORE $(NO_WARN)
  2188. TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERIES_CONSTRAINT_VERIFY=1
  2189. TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_DEFAULT_PAGE_SIZE=1024
  2190. TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_ENABLE_STMTVTAB=1
  2191. TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_ENABLE_DBPAGE_VTAB=1
  2192. TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_ENABLE_BYTECODE_VTAB=1
  2193. TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_CKSUMVFS_STATIC=1
  2194. TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) $(TEST_CCONV_OPTS)
  2195. TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_STATIC_RANDOMJSON
  2196. TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_STRICT_SUBTYPE=1
  2197. TESTFIXTURE_SRC0 = $(TESTEXT) $(TESTSRC2)
  2198. TESTFIXTURE_SRC1 = $(TESTEXT) $(SQLITE3C)
  2199. !IF $(USE_AMALGAMATION)==0
  2200. TESTFIXTURE_SRC = $(TESTSRC) $(TOP)\src\tclsqlite.c $(TESTFIXTURE_SRC0)
  2201. !ELSE
  2202. TESTFIXTURE_SRC = $(TESTSRC) $(TOP)\src\tclsqlite.c $(TESTFIXTURE_SRC1)
  2203. !ENDIF
  2204. !IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
  2205. sqlite_tclDecls.h:
  2206. echo #ifndef SQLITE_TCLAPI > $(SQLITETCLDECLSH)
  2207. echo # define SQLITE_TCLAPI >> $(SQLITETCLDECLSH)
  2208. echo #endif >> $(SQLITETCLDECLSH)
  2209. type "$(TCLINCDIR)\tclDecls.h" \
  2210. | $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "^(EXTERN(?: CONST\d+?)?\s+?[^\(]*?\s+?)Tcl_" "\1 SQLITE_TCLAPI Tcl_" \
  2211. | $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "^(EXTERN\s+?(?:void|VOID)\s+?)TclFreeObj" "\1 SQLITE_TCLAPI TclFreeObj" \
  2212. | $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "\(\*tcl_" "(SQLITE_TCLAPI *tcl_" \
  2213. | $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "\(\*tclFreeObj" "(SQLITE_TCLAPI *tclFreeObj" \
  2214. | $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "\(\*" "(SQLITE_TCLAPI *" >> $(SQLITETCLDECLSH)
  2215. sqlite_tcl.h:
  2216. type "$(TCLINCDIR)\tcl.h" | $(TCLSH_CMD) $(TOP)\tool\replace.tcl exact tclDecls.h sqlite_tclDecls.h \
  2217. | $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "typedef (.*?)\(Tcl_" "typedef \1 (SQLITE_TCLAPI Tcl_" \
  2218. | $(TCLSH_CMD) $(TOP)\tool\replace.tcl exact "void (*freeProc)" "void (SQLITE_TCLAPI *freeProc)" \
  2219. | $(TCLSH_CMD) $(TOP)\tool\replace.tcl exact "Tcl_HashEntry *(*findProc)" "Tcl_HashEntry *(SQLITE_TCLAPI *findProc)" \
  2220. | $(TCLSH_CMD) $(TOP)\tool\replace.tcl exact "Tcl_HashEntry *(*createProc)" "Tcl_HashEntry *(SQLITE_TCLAPI *createProc)" >> $(SQLITETCLH)
  2221. !ENDIF
  2222. testfixture.exe: $(TESTFIXTURE_SRC) $(TESTFIXTURE_DEP) $(SQLITE3H) $(LIBRESOBJS) $(HDR) $(SQLITE_TCL_DEP)
  2223. $(LTLINK) -DSQLITE_NO_SYNC=1 $(TESTFIXTURE_FLAGS) \
  2224. -DBUILD_sqlite -I$(TCLINCDIR) \
  2225. $(TESTFIXTURE_SRC) \
  2226. /link $(LDFLAGS) $(LTLINKOPTS) $(TCLLIBPATHS) $(LTLIBPATHS) $(LIBRESOBJS) $(TCLLIBS) $(LTLIBS) $(TLIBS)
  2227. extensiontest: testfixture.exe testloadext.dll
  2228. @set PATH=$(LIBTCLPATH);$(PATH)
  2229. .\testfixture.exe $(TOP)\test\loadext.test $(TESTOPTS)
  2230. tool-zip: testfixture.exe sqlite3.exe sqldiff.exe sqlite3_analyzer.exe sqlite3_rsync.exe $(TOP)\tool\mktoolzip.tcl
  2231. .\testfixture.exe $(TOP)\tool\mktoolzip.tcl
  2232. coretestprogs: testfixture.exe sqlite3.exe
  2233. testprogs: $(TESTPROGS) srcck1.exe fuzzcheck.exe sessionfuzz.exe
  2234. fulltest: alltest fuzztest
  2235. alltest: $(TESTPROGS)
  2236. @set PATH=$(LIBTCLPATH);$(PATH)
  2237. .\testfixture.exe $(TOP)\test\all.test $(TESTOPTS)
  2238. soaktest: $(TESTPROGS)
  2239. @set PATH=$(LIBTCLPATH);$(PATH)
  2240. .\testfixture.exe $(TOP)\test\all.test -soak=1 $(TESTOPTS)
  2241. fulltestonly: $(TESTPROGS) fuzztest
  2242. @set PATH=$(LIBTCLPATH);$(PATH)
  2243. .\testfixture.exe $(TOP)\test\full.test
  2244. queryplantest: testfixture.exe shell
  2245. @set PATH=$(LIBTCLPATH);$(PATH)
  2246. .\testfixture.exe $(TOP)\test\permutations.test queryplanner $(TESTOPTS)
  2247. fuzztest: fuzzcheck.exe
  2248. .\fuzzcheck.exe $(FUZZDATA)
  2249. # Legacy testing target for third-party integrators. The SQLite
  2250. # developers seldom use this target themselves. Instead
  2251. # they use "nmake /f Makefile.msc devtest" which runs tests on
  2252. # a standard set of options
  2253. #
  2254. test: $(TESTPROGS) sourcetest fuzztest tcltest
  2255. # Minimal testing that runs in less than 3 minutes (on a fast machine)
  2256. #
  2257. quicktest: testfixture.exe sourcetest
  2258. @set PATH=$(LIBTCLPATH);$(PATH)
  2259. .\testfixture.exe $(TOP)\test\extraquick.test $(TESTOPTS)
  2260. # This is the common case. Run many tests that do not take too long,
  2261. # including fuzzcheck, sqlite3_analyzer, and sqldiff tests.
  2262. #
  2263. # The veryquick.test TCL tests.
  2264. #
  2265. tcltest: testfixture.exe
  2266. @set PATH=$(LIBTCLPATH);$(PATH)
  2267. .\testfixture.exe $(TOP)\test\veryquick.test $(TESTOPTS)
  2268. # Runs all the same tests cases as the "tcltest" target but uses
  2269. # the testrunner.tcl script to run them in multiple cores
  2270. # concurrently.
  2271. testrunner: testfixture.exe
  2272. .\testfixture.exe $(TOP)\test\testrunner.tcl
  2273. # This is the testing target preferred by the core SQLite developers.
  2274. # It runs tests under a standard configuration. The devs run
  2275. # "nmake /f Makefile.msc devtest" prior to each check-in, at a minimum.
  2276. # Probably other tests too, but at least this one.
  2277. #
  2278. devtest: srctree-check sourcetest
  2279. $(TCLSH_CMD) $(TOP)\test\testrunner.tcl mdevtest
  2280. mdevtest:
  2281. $(TCLSH_CMD) $(TOP)\test\testrunner.tcl mdevtest
  2282. # Validate that various generated files in the source tree
  2283. # are up-to-date.
  2284. #
  2285. srctree-check: $(TOP)\tool\srctree-check.tcl
  2286. $(TCLSH_CMD) $(TOP)\tool\srctree-check.tcl
  2287. # Testing for a release
  2288. #
  2289. releasetest:
  2290. $(TCLSH_CMD) $(TOP)\test\testrunner.tcl release
  2291. smoketest: $(TESTPROGS)
  2292. @set PATH=$(LIBTCLPATH);$(PATH)
  2293. .\testfixture.exe $(TOP)\test\main.test $(TESTOPTS)
  2294. shelltest: $(TESTPROGS)
  2295. .\testfixture.exe $(TOP)\test\permutations.test shell
  2296. sqlite3_analyzer.c: $(SQLITE3C) $(SQLITE3H) $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl $(TOP)\tool\mkccode.tcl $(TOP)\tool\sqlite3_analyzer.c.in $(TOP)\ext\misc\sqlite3_stdio.h $(TOP)\ext\misc\sqlite3_stdio.c $(SQLITE_TCL_DEP)
  2297. $(TCLSH_CMD) $(TOP)\tool\mkccode.tcl -DINCLUDE_SQLITE3_C $(TOP)\tool\sqlite3_analyzer.c.in > $@
  2298. sqlite3_analyzer.exe: sqlite3_analyzer.c $(LIBRESOBJS)
  2299. $(LTLINK) $(NO_WARN) -DBUILD_sqlite -I$(TCLINCDIR) sqlite3_analyzer.c \
  2300. /link $(LDFLAGS) $(LTLINKOPTS) $(TCLLIBPATHS) $(LTLIBPATHS) $(LIBRESOBJS) $(TCLLIBS) $(LTLIBS) $(TLIBS)
  2301. sqltclsh.c: sqlite3.c $(TOP)\src\tclsqlite.c $(TOP)\tool\sqltclsh.tcl $(TOP)\ext\misc\appendvfs.c $(TOP)\tool\mkccode.tcl $(TOP)\tool\sqltclsh.c.in
  2302. $(TCLSH_CMD) $(TOP)\tool\mkccode.tcl $(TOP)\tool\sqltclsh.c.in >sqltclsh.c
  2303. sqltclsh.exe: sqltclsh.c $(SHELL_CORE_DEP) $(LIBRESOBJS)
  2304. $(LTLINK) $(NO_WARN) -DBUILD_sqlite -I$(TCLINCDIR) sqltclsh.c \
  2305. /link $(LDFLAGS) $(LTLINKOPTS) $(TCLLIBPATHS) $(LTLIBPATHS) $(LIBRESOBJS) $(TCLLIBS) $(LTLIBS) $(TLIBS)
  2306. sqlite3_expert.exe: $(SQLITE3C) $(TOP)\ext\expert\sqlite3expert.h $(TOP)\ext\expert\sqlite3expert.c $(TOP)\ext\expert\expert.c
  2307. $(LTLINK) $(NO_WARN) $(TOP)\ext\expert\sqlite3expert.c $(TOP)\ext\expert\expert.c $(SQLITE3C) $(TLIBS)
  2308. CHECKER_DEPS =\
  2309. $(TOP)\tool\mkccode.tcl \
  2310. sqlite3.c \
  2311. $(TOP)\src\tclsqlite.c \
  2312. $(TOP)\ext\repair\sqlite3_checker.tcl \
  2313. $(TOP)\ext\repair\checkindex.c \
  2314. $(TOP)\ext\repair\checkfreelist.c \
  2315. $(TOP)\ext\misc\btreeinfo.c \
  2316. $(TOP)\ext\repair\sqlite3_checker.c.in
  2317. sqlite3_checker.c: $(CHECKER_DEPS)
  2318. $(TCLSH_CMD) $(TOP)\tool\mkccode.tcl $(TOP)\ext\repair\sqlite3_checker.c.in > $@
  2319. sqlite3_checker.exe: sqlite3_checker.c $(LIBRESOBJS)
  2320. $(LTLINK) $(NO_WARN) -DBUILD_sqlite -I$(TCLINCDIR) sqlite3_checker.c \
  2321. /link $(LDFLAGS) $(LTLINKOPTS) $(TCLLIBPATHS) $(LTLIBPATHS) $(LIBRESOBJS) $(TCLLIBS) $(LTLIBS) $(TLIBS)
  2322. dbdump.exe: $(TOP)\ext\misc\dbdump.c $(SQLITE3C) $(SQLITE3H) $(LIBRESOBJS)
  2323. $(LTLINK) $(NO_WARN) -DDBDUMP_STANDALONE $(TOP)\ext\misc\dbdump.c $(SQLITE3C) \
  2324. /link $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS)
  2325. testloadext.lo: $(TOP)\src\test_loadext.c $(SQLITE3H)
  2326. $(LTCOMPILE) $(NO_WARN) -c $(TOP)\src\test_loadext.c
  2327. testloadext.dll: testloadext.lo
  2328. $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /OUT:$@ testloadext.lo
  2329. dbtotxt.exe: $(TOP)\tool\dbtotxt.c
  2330. $(LTLINK) $(NO_WARN) $(TOP)\tool\dbtotxt.c /link $(LDFLAGS) $(LTLINKOPTS)
  2331. showdb.exe: $(TOP)\tool\showdb.c $(SQLITE3C) $(SQLITE3H)
  2332. $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
  2333. $(TOP)\tool\showdb.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2334. showstat4.exe: $(TOP)\tool\showstat4.c $(SQLITE3C) $(SQLITE3H)
  2335. $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
  2336. $(TOP)\tool\showstat4.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2337. showjournal.exe: $(TOP)\tool\showjournal.c $(SQLITE3C) $(SQLITE3H)
  2338. $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
  2339. $(TOP)\tool\showjournal.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2340. showwal.exe: $(TOP)\tool\showwal.c $(SQLITE3C) $(SQLITE3H)
  2341. $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
  2342. $(TOP)\tool\showwal.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2343. showshm.exe: $(TOP)\tool\showshm.c
  2344. $(LTLINK) $(NO_WARN) $(TOP)\tool\showshm.c /link $(LDFLAGS) $(LTLINKOPTS)
  2345. index_usage.exe: $(TOP)\tool\index_usage.c $(SQLITE3C) $(SQLITE3H)
  2346. $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
  2347. $(TOP)\tool\index_usage.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2348. changeset.exe: $(TOP)\ext\session\changeset.c $(SQLITE3C) $(SQLITE3H)
  2349. $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
  2350. -DSQLITE_ENABLE_SESSION=1 -DSQLITE_ENABLE_PREUPDATE_HOOK=1 \
  2351. $(TOP)\ext\session\changeset.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2352. changesetfuzz.exe: $(TOP)\ext\session\changesetfuzz.c $(SQLITE3C) $(SQLITE3H)
  2353. $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
  2354. -DSQLITE_ENABLE_SESSION=1 -DSQLITE_ENABLE_PREUPDATE_HOOK=1 \
  2355. $(TOP)\ext\session\changesetfuzz.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2356. fts3view.exe: $(TOP)\ext\fts3\tool\fts3view.c $(SQLITE3C) $(SQLITE3H)
  2357. $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
  2358. $(TOP)\ext\fts3\tool\fts3view.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2359. rollback-test.exe: $(TOP)\tool\rollback-test.c $(SQLITE3C) $(SQLITE3H)
  2360. $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
  2361. $(TOP)\tool\rollback-test.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2362. atrc.exe: $(TOP)\test\atrc.c $(SQLITE3C) $(SQLITE3H)
  2363. $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
  2364. $(TOP)\test\atrc.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2365. LogEst.exe: $(TOP)\tool\logest.c $(SQLITE3H)
  2366. $(LTLINK) $(NO_WARN) $(TOP)\tool\LogEst.c /link $(LDFLAGS) $(LTLINKOPTS)
  2367. wordcount.exe: $(TOP)\test\wordcount.c $(SQLITE3C) $(SQLITE3H)
  2368. $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
  2369. $(TOP)\test\wordcount.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2370. speedtest1.exe: $(TOP)\test\speedtest1.c $(SQLITE3C) $(SQLITE3H)
  2371. $(LTLINK) $(NO_WARN) $(ST_COMPILE_OPTS) -DSQLITE_OMIT_LOAD_EXTENSION \
  2372. $(TOP)\test\speedtest1.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2373. kvtest.exe: $(TOP)\test\kvtest.c $(SQLITE3C) $(SQLITE3H)
  2374. $(LTLINK) $(NO_WARN) $(KV_COMPILE_OPTS) \
  2375. $(TOP)\test\kvtest.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2376. rbu.exe: $(TOP)\ext\rbu\rbu.c $(TOP)\ext\rbu\sqlite3rbu.c $(SQLITE3C) $(SQLITE3H)
  2377. $(LTLINK) $(NO_WARN) -DSQLITE_ENABLE_RBU \
  2378. $(TOP)\ext\rbu\rbu.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2379. THREADTEST3_SRC = \
  2380. $(TOP)\test\threadtest3.c \
  2381. $(TOP)\test\tt3_checkpoint.c \
  2382. $(TOP)\test\tt3_index.c \
  2383. $(TOP)\test\tt3_vacuum.c \
  2384. $(TOP)\test\tt3_stress.c \
  2385. $(TOP)\test\tt3_lookaside1.c
  2386. threadtest3.exe: $(THREADTEST3_SRC) $(TOP)\src\test_multiplex.c $(SQLITE3C) $(SQLITE3H)
  2387. $(LTLINK) $(NO_WARN) $(TOP)\test\threadtest3.c $(TOP)\src\test_multiplex.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2388. # Display key variables that control which version of TCL is to be used.
  2389. #
  2390. tcl-env:
  2391. @echo TCLDIR = $(TCLDIR)
  2392. @echo TCLVERSION = $(TCLVERSION)
  2393. @echo TCLSUFFIX = $(TCLSUFFIX)
  2394. @echo LIBTCL = $(LIBTCL)
  2395. @echo LIBTCLSTUB = $(LIBTCLSTUB)
  2396. @echo TCLSH_CMD = $(TCLSH_CMD)
  2397. @echo JIM_TCLSH = $(JIM_TCLSH)
  2398. @echo VISUALSTUDIOVERSION = $(VISUALSTUDIOVERSION)
  2399. LSMDIR=$(TOP)\ext\lsm1
  2400. !INCLUDE $(LSMDIR)\Makefile.msc
  2401. moreclean: clean
  2402. del /Q $(SQLITE3C) $(SQLITE3H) 2>NUL
  2403. # <</mark>>
  2404. clean:
  2405. del /Q *.exp *.lo *.ilk *.lib *.obj *.ncb *.pdb *.sdf *.suo 2>NUL
  2406. del /Q *.bsc *.cod *.da *.bb *.bbg *.vc gmon.out 2>NUL
  2407. del /Q sqlite3.def tclsqlite3.def ctime.c pragma.h 2>NUL
  2408. del /Q $(SQLITE3EXE) $(SQLITE3DLL) Replace.exe 2>NUL
  2409. # <<mark>>
  2410. del /Q $(SQLITE3TCLDLL) pkgIndex.tcl 2>NUL
  2411. del /Q opcodes.c opcodes.h 2>NUL
  2412. del /Q lemon.* lempar.c parse.* 2>NUL
  2413. del /Q mksourceid.* mkkeywordhash.* keywordhash.h 2>NUL
  2414. del /Q notasharedlib.* 2>NUL
  2415. -rmdir /Q/S .deps 2>NUL
  2416. -rmdir /Q/S .libs 2>NUL
  2417. -rmdir /Q/S tsrc 2>NUL
  2418. del /Q .target_source 2>NUL
  2419. del /Q tclsqlite3.exe $(SQLITETCLH) $(SQLITETCLDECLSH) 2>NUL
  2420. del /Q lsm.dll lsmtest.exe 2>NUL
  2421. del /Q atrc.exe changesetfuzz.exe dbtotxt.exe index_usage.exe 2>NUL
  2422. del /Q testloadext.dll 2>NUL
  2423. del /Q testfixture.exe test.db 2>NUL
  2424. del /Q LogEst.exe fts3view.exe rollback-test.exe showdb.exe dbdump.exe 2>NUL
  2425. del /Q changeset.exe 2>NUL
  2426. del /Q showjournal.exe showstat4.exe showwal.exe speedtest1.exe 2>NUL
  2427. del /Q mptester.exe wordcount.exe rbu.exe srcck1.exe 2>NUL
  2428. del /Q sqlite3.c sqlite3-*.c sqlite3.h 2>NUL
  2429. del /Q sqlite3rc.h 2>NUL
  2430. del /Q shell.c sqlite3ext.h sqlite3session.h 2>NUL
  2431. del /Q sqlite3_analyzer.exe sqlite3_analyzer.c sqlite3_rsync.exe 2>NUL
  2432. del /Q sqlite-*-output.vsix 2>NUL
  2433. del /Q fuzzershell.exe fuzzcheck.exe sqldiff.exe dbhash.exe 2>NUL
  2434. del /Q sqltclsh.* 2>NUL
  2435. del /Q dbfuzz.exe sessionfuzz.exe threadtest3.exe 2>NUL
  2436. del /Q kvtest.exe ossshell.exe scrub.exe 2>NUL
  2437. del /Q showshm.exe sqlite3_checker.* sqlite3_expert.exe 2>NUL
  2438. del /Q fts5.* fts5parse.* 2>NUL
  2439. del /Q lsm.h lsm1.c 2>NUL
  2440. del /q src-verify.exe 2>NUL
  2441. del /q jimsh.exe jimsh0.exe 2>NUL
  2442. # <</mark>>