[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sqlite-users
Subject:    Re: [sqlite] SQLite build dependency on tclsh
From:       Richard Hipp <drh () sqlite ! org>
Date:       2015-10-31 20:14:58
Message-ID: CALwJ=MxqZ3hGRdx4uGg7P7pdqjJ4D3P=xOc=tekg-y2pev92QA () mail ! gmail ! com
[Download RAW message or body]

On 10/29/15, Jaromir Capik <jcapik@redhat.com> wrote:
>
> This is not about being difficult. It just goes against the trend
> of striping unnecessary dependencies from the first stages.

We make two different source distributions of SQLite available.  There
is the "canonical" source distribution, containing the actual source
code files that we edit and that are checked into our version control
and which (you have discovered) now require TCL in order to build.
But there is also the "amalgamation" source distribution
(https://www.sqlite.org/2015/sqlite-autoconf-3090100.tar.gz for the
latest release) that contains the source code already pre-processed
and ready to compile.  Using the amalgamation source release, you only
need a C compiler to build - neither awk nor TCL appear anywhere in
the makefile.  And, because the code has already been amalgamated
using a TCL script, you get the 7% performance boost.

Would you be open to bootstrapping using the amalgamation source
distribution rather than the canonical source distribution?

The alternatives all have drawbacks:

(1) Maintaining separate AWK and TCL makes means that there are two
places to make changes whenever the build process changes (and those
scripts do get modified from time to time).  That also means we have
to do test builds using both techniques and verify that they generate
the same code.

(2) Going back to requiring AWK means that Windows users have to
install gawk.exe in a directory where nmake can fine it.  That is not
as easy you seem to think it is, and in our experience it is outside
the comfort zone of many Windows developers.

(3) We could rewrite the scripts as C programs, I suppose.  But, that
too seems like a maintenance problem.

On the other hand, I can't think of any real drawbacks (to you) in
using the amalgamated source distribution.  The canonical sources are
useful if you want to manually edit or tweak the source code, but you
are not doing that.  And canonical sources are required if you want to
build with some unusual compile-time options, but you are not doing
that either.  In common practice, the amalgamated source distribution
is easier to work with, takes less space on disk, compiles faster,
runs faster, and has no dependencies other than Make and a C compiler.
-- 
D. Richard Hipp
drh@sqlite.org
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic