From 595a2532f398331b0efcf923b7dfb15cb21df6e6 Mon Sep 17 00:00:00 2001 From: stephan Date: Sat, 28 Sep 2024 14:51:10 +0000 Subject: [PATCH] Get libsqlite3.so building. FossilOrigin-Name: c65e3679e0d28e980bb555b47f31690b27915d9ff0850f598e3bed528b18ca1d --- Makefile.in | 112 +++++++++++++++++++++---------------- auto.def | 4 +- autosetup/hwaci-common.tcl | 21 +++++++ manifest | 16 +++--- manifest.uuid | 2 +- 5 files changed, 96 insertions(+), 59 deletions(-) diff --git a/Makefile.in b/Makefile.in index 1e60d411b8..aa984a53d5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -39,7 +39,11 @@ BCC = @BUILD_CC@ @BUILD_CFLAGS@ CC = @CC@ CFLAGS ?= @CFLAGS@ CPPFLAGS ?= @CPPFLAGS@ -TCC = ${CC} ${CFLAGS} -I. -I${TOP}/src -I${TOP}/ext/rtree -I${TOP}/ext/icu +@if SH_CFLAGS +CFLAGS += @SH_CFLAGS@ +@endif +TCC = ${CC} ${CFLAGS} +TCC += -I. -I${TOP}/src -I${TOP}/ext/rtree -I${TOP}/ext/icu TCC += -I${TOP}/ext/fts3 -I${TOP}/ext/async -I${TOP}/ext/session TCC += -I${TOP}/ext/userauth @@ -79,6 +83,7 @@ READLINE_FLAGS = -DHAVE_READLINE=@HAVE_READLINE@ @CFLAGS_READLINE@ # Any target libraries which libsqlite must be linked against # TLIBS = @LIBS@ $(LIBS) + #XX# # Flags controlling use of the in memory btree implementation # @@ -113,10 +118,12 @@ TCC += @LDFLAGS_ZLIB@ VERSION = @VERSION@ RELEASE = @RELEASE@ -# Filename extensions for binaries +# Filename extensions for binaries and shared libraries # BEXE = @BUILD_EXEEXT@ TEXE = @TARGET_EXEEXT@ +BDLL = @BDLL@ +TDLL = @TDLL@ # The following variable is "1" if the configure script was able to locate # the tclConfig.sh file. It is an empty string otherwise. When this @@ -154,9 +161,8 @@ TSTRNNR_OPTS = @TSTRNNR_OPTS@ GCOV_CFLAGS1 = -DSQLITE_COVERAGE_TEST=1 -fprofile-arcs -ftest-coverage GCOV_LDFLAGS1 = -lgcov USE_GCOV = @USE_GCOV@ -#XX#LTCOMPILE_EXTRAS += $(GCOV_CFLAGS$(USE_GCOV)) -#XX#LTLINK_EXTRAS += $(GCOV_LDFLAGS$(USE_GCOV)) - +LTCOMPILE_EXTRAS += $(GCOV_CFLAGS$(USE_GCOV)) +LTLINK_EXTRAS += $(GCOV_LDFLAGS$(USE_GCOV)) # The directory into which to store package information for @@ -176,6 +182,9 @@ INSTALL = @BIN_INSTALL@ #XX#LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(TCC) $(LTCOMPILE_EXTRAS) #XX#LTLINK = $(LIBTOOL) --mode=link $(TCC) $(LTCOMPILE_EXTRAS) @LDFLAGS@ $(LTLINK_EXTRAS) #XX#LTINSTALL = $(LIBTOOL) --mode=install $(INSTALL) +TCOMPILE = $(TCC) $(LTCOMPILE_EXTRAS) +TLINK = $(TCC) $(LTLINK_EXTRAS) +TINSTALL = $(INSTALL) # # You should not have to change anything below this line @@ -192,45 +201,44 @@ USE_AMALGAMATION = @USE_AMALGAMATION@ AMALGAMATION_LINE_MACROS = @AMALGAMATION_LINE_MACROS@ # -#XX## Object files for the SQLite library (non-amalgamation). -#XX## -#XX#LIBOBJS0 = alter.lo analyze.lo attach.lo auth.lo \ -#XX# backup.lo bitvec.lo btmutex.lo btree.lo build.lo \ -#XX# callback.lo complete.lo ctime.lo \ -#XX# date.lo dbpage.lo dbstat.lo delete.lo \ -#XX# expr.lo fault.lo fkey.lo \ -#XX# fts3.lo fts3_aux.lo fts3_expr.lo fts3_hash.lo fts3_icu.lo \ -#XX# fts3_porter.lo fts3_snippet.lo fts3_tokenizer.lo fts3_tokenizer1.lo \ -#XX# fts3_tokenize_vtab.lo \ -#XX# fts3_unicode.lo fts3_unicode2.lo fts3_write.lo \ -#XX# fts5.lo \ -#XX# func.lo global.lo hash.lo \ -#XX# icu.lo insert.lo json.lo legacy.lo loadext.lo \ -#XX# main.lo malloc.lo mem0.lo mem1.lo mem2.lo mem3.lo mem5.lo \ -#XX# memdb.lo memjournal.lo \ -#XX# mutex.lo mutex_noop.lo mutex_unix.lo mutex_w32.lo \ -#XX# notify.lo opcodes.lo os.lo os_kv.lo os_unix.lo os_win.lo \ -#XX# pager.lo parse.lo pcache.lo pcache1.lo pragma.lo prepare.lo printf.lo \ -#XX# random.lo resolve.lo rowset.lo rtree.lo \ -#XX# sqlite3session.lo select.lo sqlite3rbu.lo status.lo stmt.lo \ -#XX# table.lo threads.lo tokenize.lo treeview.lo trigger.lo \ -#XX# update.lo userauth.lo upsert.lo util.lo vacuum.lo \ -#XX# vdbe.lo vdbeapi.lo vdbeaux.lo vdbeblob.lo vdbemem.lo vdbesort.lo \ -#XX# vdbetrace.lo vdbevtab.lo \ -#XX# wal.lo walker.lo where.lo wherecode.lo whereexpr.lo \ -#XX# window.lo utf.lo vtab.lo -#XX# -#XX## Object files for the amalgamation. -#XX## -#XX#LIBOBJS1 = sqlite3.lo -#XX# -#XX## Determine the real value of LIBOBJ based on the 'configure' script -#XX## -#XX#LIBOBJ = $(LIBOBJS$(USE_AMALGAMATION)) -#XX# -#XX# -#XX## All of the source code files. -#XX## +# Object files for the SQLite library (non-amalgamation). +# +LIBOBJS0 = alter.o analyze.o attach.o auth.o \ + backup.o bitvec.o btmutex.o btree.o build.o \ + callback.o complete.o ctime.o \ + date.o dbpage.o dbstat.o delete.o \ + expr.o fault.o fkey.o \ + fts3.o fts3_aux.o fts3_expr.o fts3_hash.o fts3_icu.o \ + fts3_porter.o fts3_snippet.o fts3_tokenizer.o fts3_tokenizer1.o \ + fts3_tokenize_vtab.o \ + fts3_unicode.o fts3_unicode2.o fts3_write.o \ + fts5.o \ + func.o global.o hash.o \ + icu.o insert.o json.o legacy.o loadext.o \ + main.o malloc.o mem0.o mem1.o mem2.o mem3.o mem5.o \ + memdb.o memjournal.o \ + mutex.o mutex_noop.o mutex_unix.o mutex_w32.o \ + notify.o opcodes.o os.o os_kv.o os_unix.o os_win.o \ + pager.o parse.o pcache.o pcache1.o pragma.o prepare.o printf.o \ + random.o resolve.o rowset.o rtree.o \ + sqlite3session.o select.o sqlite3rbu.o status.o stmt.o \ + table.o threads.o tokenize.o treeview.o trigger.o \ + update.o userauth.o upsert.o util.o vacuum.o \ + vdbe.o vdbeapi.o vdbeaux.o vdbeblob.o vdbemem.o vdbesort.o \ + vdbetrace.o vdbevtab.o \ + wal.o walker.o where.o wherecode.o whereexpr.o \ + window.o utf.o vtab.o + +# Object files for the amalgamation. +# +LIBOBJS1 = sqlite3.o + +# Determine the real value of LIBOBJ based on the 'configure' script +# +LIBOBJ = $(LIBOBJS$(USE_AMALGAMATION)) + +# All of the source code files. +# SRC = \ $(TOP)/src/alter.c \ $(TOP)/src/analyze.c \ @@ -714,21 +722,27 @@ sqlite_cfg.h: $(TOP)/sqlite_cfg.h.in $(AS_AUTO_DEF) $(AUTOREMAKE) @touch $@ -#XX#libsqlite3.la: $(LIBOBJ) -#XX# $(LTLINK) -no-undefined -o $@ $(LIBOBJ) $(TLIBS) \ -#XX# ${ALLOWRELEASE} -rpath "$(libdir)" -version-info "8:6:8" -#XX# +libsqlite3.DLL = libsqlite3$(TDLL) +$(libsqlite3.DLL): $(LIBOBJ) + $(TLINK) -o $@ \ + @SHOBJ_LDFLAGS@ $(LIBOBJ) $(TLIBS) \ + @LDFLAGS_RPATH@ +dll: $(libsqlite3.DLL) +all: dll + #XX#libtclsqlite3.la: tclsqlite.lo libsqlite3.la #XX# $(LTLINK) -no-undefined -o $@ tclsqlite.lo \ #XX# libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \ #XX# -rpath "$(TCLLIBDIR)" \ #XX# -version-info "8:6:8" \ #XX# -avoid-version -#XX# + sqlite3$(TEXE): shell.c sqlite3.c $(TCC) $(READLINE_FLAGS) $(SHELL_OPT) -o $@ \ shell.c sqlite3.c \ @LDFLAGS_RPATH@ @LDFLAGS_READLINE@ $(TLIBS) +cli: sqlite3$(TEXE) +all: cli #XX# #XX#sqldiff$(TEXE): $(TOP)/tool/sqldiff.c sqlite3.lo sqlite3.h #XX# $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c sqlite3.lo $(TLIBS) diff --git a/auto.def b/auto.def index c5c972d450..2a87e4b711 100644 --- a/auto.def +++ b/auto.def @@ -174,6 +174,8 @@ if {".exe" eq [get-define TARGET_EXEEXT]} { define SQLITE_OS_WIN 0 # todo? add -DSQLITE_OS_UNIX=1 to CFLAGS? } +define BDLL [hwaci-dll-extension build] +define TDLL [hwaci-dll-extension host] ######### # Programs needed @@ -855,7 +857,7 @@ if {"" ne $oFF} { define OPT_FEATURE_FLAGS [lsort -unique $oFF] msg-result "Final feature flags: [get-define OPT_FEATURE_FLAGS]" } -set oFF [get-define SHELL_OPT] +set oFF [get-define OPT_SHELL] if {"" ne $oFF} { msg-result "Final shell opts: [get-define OPT_SHELL]" } diff --git a/autosetup/hwaci-common.tcl b/autosetup/hwaci-common.tcl index 3da0961c54..b823d57c63 100644 --- a/autosetup/hwaci-common.tcl +++ b/autosetup/hwaci-common.tcl @@ -448,6 +448,27 @@ proc hwaci-looks-like-windows {{key host}} { return 0 } +######################################################################## +# Looks at either the 'host' (==compilation target platform) or +# 'build' (==the being-built-on platform) define value and returns a +# file extension for DLLs on that platform, including the leading ".". +# +# TODO: have someone verify whether this is correct for the +# non-Linux/BSD platforms. +proc hwaci-dll-extension {{key host}} { + switch -glob -- [get-define $key] { + *apple* { + return ".dylib" + } + *-*-ming* - *-*-cygwin - *-*-msys { + return ".dll" + } + default { + return ".so" + } + } +} + ######################################################################## # Checks autosetup's "host" and "build" defines to see if the build # host and target are Windows-esque (Cygwin, MinGW, MSys). If the diff --git a/manifest b/manifest index 5dd40c0b4e..aeed538d8d 100644 --- a/manifest +++ b/manifest @@ -1,9 +1,9 @@ -C Latest\supstream\sautosetup\sfor\sa\s--help\sfix\son\sQNX. -D 2024-09-28T00:41:34.737 +C Get\slibsqlite3.so\sbuilding. +D 2024-09-28T14:51:10.851 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 -F Makefile.in 5253a425c9167286a21b2393d4293c197914c135e35ef3fdea7b1334df98c9cc +F Makefile.in 697e01f6bf783c56ccf80c31dcd58165b5a95469e4b5db716ffe70c48fccfbaa F Makefile.linux-gcc f3842a0b1efbfbb74ac0ef60e56b301836d05b4d867d014f714fa750048f1ab6 F Makefile.msc 9c6d80d9d103fa42e931f4c464884a5e577fae8563acc7589bff4e43fbe8f864 F README.md c3c0f19532ce28f6297a71870f3c7b424729f0e6d9ab889616d3587dd2332159 @@ -14,7 +14,7 @@ F art/icon-80x90.gif 65509ce3e5f86a9cd64fe7fca2d23954199f31fe44c1e09e208c80fb83d F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2 F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90 F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2 -F auto.def 6e46e578f319e20c2469c90c0e54f4c08c246d136b2b20962ba8281c715c3b4b +F auto.def 62bfff338c701174786e6613c30c2be7b98563dbdd1eaaaa3b4156165ee46d53 F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903 F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347 F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac @@ -46,7 +46,7 @@ F autosetup/cc-lib.tcl 493c5935b5dd3bf9bd4eca89b07c8b1b1a9356d61783035144e21795f F autosetup/cc-shared.tcl 4f024e94a47f427ba61de1739f6381ef0080210f9fae89112d5c1de1e5460d78 F autosetup/cc.tcl 7e2fe943ae9d45cf39e9f5b05b6230df8e719415edea5af06c30eb68680bde14 F autosetup/default.auto 5cdf016de2140e50f1db190a02039dc42fb390af1dda4cc4853e3042a9ef0e82 -F autosetup/hwaci-common.tcl bd3321e80b92eb0644be4f05df44d5c98ab415b2c7dc10866303dfe5ba77592a +F autosetup/hwaci-common.tcl bc7611bd7122b0308453bf0353ef81ae4658744f7ef67e5e53f3033551ddcac6 F autosetup/jimsh0.c 1b5fe91fffcddbc29f2b16acb80f1650632ea2edbe8336b8155ef7b4c66f6d8d F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba F autosetup/system.tcl 3a39d6e0b3bfba526fd39afe07c1d0d325e5a31925013a1ba7c671e1128e31bb @@ -2233,8 +2233,8 @@ F vsixtest/vsixtest.tcl 6195aba1f12a5e10efc2b8c0009532167be5e301abe5b31385638080 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P c3877d1241f946b470a7a4868f13e1106e8aac4851d4bc5a64c90e0569444b81 -R c95c554af644d55a7c83b59eb1349814 +P b9faebbb543fb3a03f46dd4defe28ffa0c32a9a46ed73912f93b86e41f3db04a +R d30efb2f23fa7708ccc4acb26fa1caa0 U stephan -Z d6501046de47ed3c7029a05bf2997e84 +Z 22dfd7e3022119773556b9c0d01ecb08 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index eccaa51081..635d73158a 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b9faebbb543fb3a03f46dd4defe28ffa0c32a9a46ed73912f93b86e41f3db04a +c65e3679e0d28e980bb555b47f31690b27915d9ff0850f598e3bed528b18ca1d -- 2.47.2