Hi Richard,

> I really dislike autoconf - a feeling cultivated through years of experience
> trying to use it.  And I think I'm probably not alone in that feeling.

You are very much not alone. See http://msteveb.github.com/autosetup/why/

>  I've
> tried to avoid having to use autoconf in Fossil and have been reasonably
> successful at that for the first 5 years.  But I think we may be nearing the
> point where going to autoconf is inevitable.  (sigh...)

Certainly something is needed.

> 
> So, I'm asking for volunteers for people with better autoconf-foo than me,
> to put together an autoconf/automake setup for Fossil.  If you are good with
> autoconf/automake, please consider contributing your expertise to the
> project.

autosetup is designed to be transparently compatible with autoconf for end 
users.
It is written in Tcl, but does not require Tcl to be installed since it will 
(automatically)
build a bootstrap version of the Jim Tcl interpreter if another Tcl interpreter 
is not found.
Only a C compiler is required.

Attached is a patch against the latest fossil trunk which adds autosetup 
support.

> 
> Objectives (not an any particular order):
> 
> (1) "./configure; make install" should work on all unix systems

Done.

> 
> (2) There should be a default Makefile that does not require "configure"
> that will work on most common systems simply by running "make".

Yes. Makefile is left in place. configure creates GNUmakefile which takes 
precedence.

> 
> (3) The result should fix tickets
> 
> http://www.fossil-scm.org/fossil/info/084eedc010
>  and
> 
> http://www.fossil-scm.org/fossil/info/5ad1d9a23c

Both of those should be addressed, but we need a Haiku tester.

> 
> 
> (4) The result should have a 0 Fail-Score according to
> 
> https://www.theopensourceway.org/wiki/How_to_tell_if_a_FLOSS_project_is_doomed_to_FAIL

I will leave others to judge this.

> 
> 
> (5) Further to (4) above, there needs to be a configuration option that
> causes the result to link against a system SQLite library rather than using
> the built-in SQLite library.

  --disable-internal-sqlite      Don't use the internal sqlite, use the system 
one

> 
> (6) There should be a configure option to enable static linking, in order to
> simplify the generation of binaries for use inside chroot jails.

  --static                       Link a static executable

But probably won't work on any platform except Linux, and even there glibc
doesn't not like to be statically linked :-(

> 
> (7) There should be a configure option to enable and disable SSL support.

  --with-openssl=path|auto|none  Look for openssl in the given path, or auto or 
none

> 
> (8) There should be a configure option to enable and disable command-line
> editing support for the "fossil sql" command.

  --disable-lineedit             Disable line editing

Actually, previously line editing was always disabled.

> 
> (9) There should be a configure option to enable FOSSIL_DEBUG.

  --fossil-debug                 Build with fossil debugging enabled

> 
> (10) The src/makemake.tcl script should continue to work - it should still
> build out the various windows makefiles and the unix "main.mk" file.  In
> other words, autoconf should make use of main.mk.

Yes. Only minor modifications required.

> 
> (11) Bonus points if you can get a configure script that can be used to
> cross-compile Fossil from one unix platform to another, and double bonus
> points if you can get a configure script that will cross-compile Fossil on
> Linux targeting windows!

Yes. With --host I have cross compiled Mac OS X -> arm-linux,
x86-linux -> qnx-mips, x86-linux -> mingw32 as well as native builds
on Mac OS X, cygwin and x86-linux.

> 
> If you are willing to help with this, your contribution will be greatly
> appreciated.  Tnx.

In addition to the attached patch, autosetup needs to be installed in the 
project.
(It is bundled with the project in order to avoid any dependencies)

The easiest way is to fetch it via git or a tar/zip download at: 
https://github.com/msteveb/autosetup

And then from the fossil source directory, run: <autosetup-location>/autosetup 
--install
Alternatively I can provide a patch which does this.

Feedback is welcome.
There are a number of improvements which could be made (.e.g. for installation)
which would require more changes to the current makemake.tcl

Cheers,
Steve

--
µWeb: Embedded Web Framework - http://uweb.workware.net.au/
WorkWare Systems Pty Ltd
W: www.workware.net.au      P: +61 434 921 300
E: ste...@workware.net.au   F: +61 7 3391 6002




Attachment: 0002-Add-autosetup-support-to-configure-the-build.patch
Description: Binary data

_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to