@@ -127,10 +127,8 @@ OPT_FEATURE_FLAGS = @OPT_FEATURE_FLAGS@
127127
128128LDFLAGS.libsqlite3.soname = @LDFLAGS_LIBSQLITE3_SONAME@
129129# soname: see https://sqlite.org/src/forumpost/5a3b44f510df8ded
130- LDFLAGS.libsqlite3.os-specific = @LDFLAGS_MAC_CVERSION@ @LDFLAGS_OUT_IMPLIB@
131- # os-specific: see
132- # - https://sqlite.org/forum/forumpost/9dfd5b8fd525a5d7
133- # - https://sqlite.org/forum/forumpost/0c7fc097b2
130+ LDFLAGS.libsqlite3.os-specific = \
131+ @LDFLAGS_MAC_CVERSION@ @LDFLAGS_MAC_INSTALL_NAME@ @LDFLAGS_OUT_IMPLIB@
134132
135133LDFLAGS.libsqlite3 = \
136134 $(LDFLAGS.rpath ) $(LDFLAGS.pthread ) \
@@ -143,57 +141,76 @@ sqlite3.o: $(TOP)/sqlite3.h $(TOP)/sqlite3.c
143141 $(CC ) -c $(TOP ) /sqlite3.c -o $@ $(CFLAGS ) $(CFLAGS.libsqlite3 )
144142
145143libsqlite3.LIB = libsqlite3$(T.lib )
146- libsqlite3.SO = libsqlite3$(T.dll )
144+ libsqlite3.DLL.basename = @SQLITE_DLL_BASENAME@
145+ libsqlite3.out.implib = @SQLITE_OUT_IMPLIB@
146+ libsqlite3.DLL = $(libsqlite3.DLL.basename )$(T.dll )
147+ libsqlite3.DLL.install-rules = @SQLITE_DLL_INSTALL_RULES@
147148
148- $(libsqlite3.SO ) : sqlite3.o
149+ $(libsqlite3.DLL ) : sqlite3.o
149150 $(CC ) -o $@ sqlite3.o $(LDFLAGS.shlib ) \
150151 $(LDFLAGS ) $(LDFLAGS.libsqlite3 ) \
151152 $(LDFLAGS.libsqlite3.os-specific ) $(LDFLAGS.libsqlite3.soname )
152- all : $(libsqlite3.SO )
153+ $(libsqlite3.DLL ) -1 : $(libsqlite3.DLL )
154+ $(libsqlite3.DLL ) -0 :
155+ all : $(libsqlite3.DLL ) -$(ENABLE_LIB_SHARED )
153156
154157$(libsqlite3.LIB ) : sqlite3.o
155158 $(AR ) $(AR.flags ) $@ sqlite3.o
156- all : $(libsqlite3.LIB )
159+ $(libsqlite3.LIB ) -1 : $(libsqlite3.LIB )
160+ $(libsqlite3.LIB ) -0 :
161+ all : $(libsqlite3.LIB ) -$(ENABLE_LIB_STATIC )
157162
158- install-so-1 : $(install-dir.lib ) $(libsqlite3.SO )
159- $(INSTALL ) $(libsqlite3.SO ) " $( install-dir.lib) "
160- @if [ -f $( libsqlite3.SO) .a ]; then \
161- $(INSTALL ) $(libsqlite3.SO ) .a " $( install-dir.lib) " ; \
163+ #
164+ # Maintenance reminder: the install-dll-... rules must be kept in sync
165+ # with the main copies rom /main.mk.
166+ #
167+ install-dll-out-implib : $(install-dir.lib ) $(libsqlite3.DLL )
168+ if [ x != " x$( libsqlite3.out.implib) " ] && [ -f " $( libsqlite3.out.implib) " ]; then \
169+ $(INSTALL ) $(libsqlite3.out.implib ) " $( install-dir.lib) " ; \
162170 fi
163- @echo " Setting up $( libsqlite3.SO) version symlinks..." ; \
164- if [ x.dll = x$( T.dll) ]; then \
165- echo " No library symlinks needed on this platform" ; \
166- elif [ x.dylib = x$( T.dll) ]; then \
167- cd " $( install-dir.lib) " || exit $$? ; \
168- rm -f libsqlite3.0$(T.dll ) libsqlite3.$(PACKAGE_VERSION )$(T.dll ) || exit $$? ; \
169- dllname=libsqlite3.$(PACKAGE_VERSION )$(T.dll ) ; \
170- mv $(libsqlite3.SO ) $$ dllname || exit $$? ; \
171- ln -s $$ dllname $(libsqlite3.SO ) || exit $$? ; \
172- ln -s $$ dllname libsqlite3.0$(T.dll ) || exit $$? ; \
173- ls -la $$ dllname $(libsqlite3.SO ) libsqlite3.0$(T.dll ) ; \
174- else \
175- cd " $( install-dir.lib) " || exit $$? ; \
176- rm -f $(libsqlite3.SO ) .0 $(libsqlite3.SO ) .$(PACKAGE_VERSION ) || exit $$? ; \
177- mv $(libsqlite3.SO ) $(libsqlite3.SO ) .$(PACKAGE_VERSION ) || exit $$? ; \
178- ln -s $(libsqlite3.SO ) .$(PACKAGE_VERSION ) $(libsqlite3.SO ) || exit $$? ; \
179- ln -s $(libsqlite3.SO ) .$(PACKAGE_VERSION ) $(libsqlite3.SO ) .0 || exit $$? ; \
180- ls -la $(libsqlite3.SO ) $(libsqlite3.SO ) .[a03]* ; \
181- if [ -e $( libsqlite3.SO) .0.8.6 ]; then \
182- echo " ACHTUNG: legacy libtool-compatible install found. Re-linking it..." ; \
183- rm -f libsqlite3.la $(libsqlite3.SO ) .0.8.6 || exit $$? ; \
184- ln -s $(libsqlite3.SO ) .$(PACKAGE_VERSION ) $(libsqlite3.SO ) .0.8.6 || exit $$? ; \
185- ls -la $(libsqlite3.SO ) .0.8.6; \
186- elif [ x1 = " x$( INSTALL_SO_086_LINK) " ]; then \
187- echo " ACHTUNG: installing legacy libtool-style links because INSTALL_SO_086_LINK=1" ; \
188- rm -f libsqlite3.la $(libsqlite3.SO ) .0.8.6 || exit $$? ; \
189- ln -s $(libsqlite3.SO ) .$(PACKAGE_VERSION ) $(libsqlite3.SO ) .0.8.6 || exit $$? ; \
190- ls -la $(libsqlite3.SO ) .0.8.6; \
191- fi ; \
171+
172+ install-dll-unix-generic : install-dll-out-implib
173+ $(INSTALL ) $(libsqlite3.DLL ) " $( install-dir.lib) "
174+ @echo " Setting up $( libsqlite3.DLL) version symlinks..." ; \
175+ cd " $( install-dir.lib) " || exit $$? ; \
176+ rm -f $(libsqlite3.DLL ) .0 $(libsqlite3.DLL ) .$(PACKAGE_VERSION ) || exit $$? ; \
177+ mv $(libsqlite3.DLL ) $(libsqlite3.DLL ) .$(PACKAGE_VERSION ) || exit $$? ; \
178+ ln -s $(libsqlite3.DLL ) .$(PACKAGE_VERSION ) $(libsqlite3.DLL ) || exit $$? ; \
179+ ln -s $(libsqlite3.DLL ) .$(PACKAGE_VERSION ) $(libsqlite3.DLL ) .0 || exit $$? ; \
180+ ls -la $(libsqlite3.DLL ) $(libsqlite3.DLL ) .[a03]* ; \
181+ if [ -e $( libsqlite3.DLL) .0.8.6 ]; then \
182+ echo " ACHTUNG: legacy libtool-compatible install found. Re-linking it..." ; \
183+ rm -f libsqlite3.la $(libsqlite3.DLL ) .0.8.6 || exit $$? ; \
184+ ln -s $(libsqlite3.DLL ) .$(PACKAGE_VERSION ) $(libsqlite3.DLL ) .0.8.6 || exit $$? ; \
185+ ls -la $(libsqlite3.DLL ) .0.8.6; \
186+ elif [ x1 = " x$( INSTALL_SO_086_LINK) " ]; then \
187+ echo " ACHTUNG: installing legacy libtool-style links because INSTALL_SO_086_LINK=1" ; \
188+ rm -f libsqlite3.la $(libsqlite3.DLL ) .0.8.6 || exit $$? ; \
189+ ln -s $(libsqlite3.DLL ) .$(PACKAGE_VERSION ) $(libsqlite3.DLL ) .0.8.6 || exit $$? ; \
190+ ls -la $(libsqlite3.DLL ) .0.8.6; \
192191 fi
193192
194- install-so-0 install-so- :
195- install-so : install-so-$(ENABLE_LIB_SHARED )
196- install : install-so
193+ install-dll-msys : install-dll-out-implib $(install-dir.bin )
194+ $(INSTALL ) $(libsqlite3.DLL ) " $( install-dir.bin) "
195+ # ----------------------------------------------^^^ yes, bin
196+ install-dll-mingw : install-dll-msys
197+ install-dll-cygwin : install-dll-msys
198+
199+ install-dll-darwin : $(install-dir.lib ) $(libsqlite3.DLL )
200+ $(INSTALL ) $(libsqlite3.DLL ) " $( install-dir.lib) "
201+ @echo " Setting up $( libsqlite3.DLL) version symlinks..." ; \
202+ cd " $( install-dir.lib) " || exit $$? ; \
203+ rm -f libsqlite3.0$(T.dll ) libsqlite3.$(PACKAGE_VERSION )$(T.dll ) || exit $$? ; \
204+ dllname=libsqlite3.$(PACKAGE_VERSION )$(T.dll ) ; \
205+ mv $(libsqlite3.DLL ) $$ dllname || exit $$? ; \
206+ ln -s $$ dllname $(libsqlite3.DLL ) || exit $$? ; \
207+ ln -s $$ dllname libsqlite3.0$(T.dll ) || exit $$? ; \
208+ ls -la $$ dllname $(libsqlite3.DLL ) libsqlite3.0$(T.dll )
209+
210+ install-dll-1 : install-dll-$(libsqlite3.DLL.install-rules )
211+ install-dll-0 install-dll- :
212+ install-dll : install-dll-$(ENABLE_LIB_SHARED )
213+ install : install-dll
197214
198215install-lib-1 : $(install-dir.lib ) $(libsqlite3.LIB )
199216 $(INSTALL.noexec ) $(libsqlite3.LIB ) " $( install-dir.lib) "
@@ -209,7 +226,7 @@ ENABLE_STATIC_SHELL = @ENABLE_STATIC_SHELL@
209226sqlite3-shell-link-flags.1 = $(TOP ) /sqlite3.c $(LDFLAGS.libsqlite3 )
210227sqlite3-shell-link-flags.0 = -L. -lsqlite3 $(LDFLAGS.zlib )
211228sqlite3-shell-deps.1 = $(TOP ) /sqlite3.c
212- sqlite3-shell-deps.0 = $(libsqlite3.SO )
229+ sqlite3-shell-deps.0 = $(libsqlite3.DLL )
213230sqlite3$(T.exe ) : $(TOP ) /shell.c $(sqlite3-shell-deps.$(ENABLE_STATIC_SHELL ) )
214231 $(CC ) -o $@ \
215232 $(TOP ) /shell.c $(sqlite3-shell-link-flags.$(ENABLE_STATIC_SHELL ) ) \
@@ -237,7 +254,7 @@ install: install-man1
237254
238255clean :
239256 rm -f * .o sqlite3$(T.exe )
240- rm -f $(libsqlite3.LIB ) $(libsqlite3.SO ) $( libsqlite3.SO ) .a
257+ rm -f $(libsqlite3.LIB ) $(libsqlite3.DLL ) libsqlite3 $( T.dll ) .a
241258
242259distclean : clean
243260 rm -f jimsh0$(T.exe ) config.* sqlite3.pc sqlite_cfg.h Makefile
0 commit comments