On 10/29/15, Jaromir Capik <jcapik at 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 at sqlite.org