Hi Richard & John,

Richard, the command I've meant to send you is 'autoreconf -i', and not
'autoconf -i' (e.g. with a 're' between 'auto' and 'conf') -- I gave you
the answer from what I remembered, instead of actually testing it, so
that should be a lesson for me. Please forgive my laziness that caused
you lost time.

John, the bootstrap script is a fossil of what should have left (and
did left after a change I've just committed) the repository sooner but
I've missed it -- don't use that as its out of date and incomplete.
But you are right, due to a mistake in the build system (and lack of
testing from my part, I use only out of place builds as they allow me
to keep the sources directory pristine), in-place builds temporary
failed. Another commit I've just submitted should address this -- you
can now do both in-place and out-of-place builds.

So the correct instructions (until I find a way to distribute a
tarball) are:
  git clone git://repo.or.cz/splint-patched.git
  cd splint-patched
  autoreconf -i
  ./configure
  make && sudo make install
If you'd like to also validate your build, do a check before
installing:
  make && make check && sudo make install

Configure now has some additional (preprocessor related) flags, that
you might want to set. For Debian (and derivatives), the headers are no
longer in '/usr/include' (Splint's default list of includes), but are
now spread (due to multilib) in '/usr/include' &
'/usr/include/x86_64-linux-gnu' (or '/usr/include/i386-linux-gnu' on
32-bit platforms). Thus, in such a case, you'd want to
extend Splint's list of default include directories this way:
  ./configure --with-systemdirs=/usr/include:/usr/include/x86_64-linux-gnu
Additionally, if you want Splint's default list of predefined
preprocessor symbols, use configure's 'with-predefines' flag.

Of course, the usual (autoconf generated) configure options/flags
work: --prefix, CC, CFLAGS etc.

This time I've tested everything from a fresh directory (not from my
development setup), and I'm quite sure that the indications work on a
Debian (stable) system, though hopefully they should work on any recent
unix-like one.

Sorry for the trouble I've given you, I didn't meant to. But let's
keep things in perspective: I'm trying to help by providing some
patches to a application that has been long stagnant, and it's the
first time I'm releasing some code publicly -- so please be patient. Of
course, you also want to help by testing my patches and giving me
feedback, I'm grateful for that, understand your frustration (and I
can find justification for it) and I'm sorry for the trouble (and time
lost) I've caused -- I'm still looking for your feedback and any other
ways you'd like to contribute.

What I want to say is that what we're all trying to do here is just
collaborate on a tool that could make ours (and maybe others) work a
bit easier/better. It is not my intention to frustrate anyone, or to
make others loose time -- it's just my clumsiness (and let's be
honest, a bit of laziness) in trying to help others. The lesson has
been learned, and I promise better testing from a regular user's
perspective.

Best,
Mihail.

On Tue, Mar 21, 2017 at 02:04:17PM +1300, John Carter wrote:
>    Ok, worked it out... You must not build it in the source tree...
> 
>    To build....
> 
>    git clone http://repo.or.cz/splint-patched.git
>    cd splint-patched
>    mkdir config
>    ./bootstrap
>    cd ..
>    mkdir bld
>    cd bld
>    ../splint-patched/configure
>    make
>    sudo make install
> 
>    On Tue, Mar 21, 2017 at 2:00 PM, John Carter <john.car...@taitradio.com>
>    wrote:
> 
>      I got a step further than Richard....
> 
>      It seems to need a config dir...
> 
>      mkdir ./config
> 
>      Run the bootstrap script
>      ./bootstrap
> 
>      Configure it...
>      ./configure
> 
>      Make
>      make
> 
>      Alas, still dies...
>      Making all in imports
>      make[2]: Entering directory '/home/johnc/build/splint-patched/imports'
>      A  GENA A A A A  assert.lcs
>      mv: './assert.lcs' and './assert.lcs' are the same file
>      Makefile:488: recipe for target 'assert.lcs' failed
>      make[2]: *** [assert.lcs] Error 1
>      make[2]: Leaving directory '/home/johnc/build/splint-patched/imports'
>      Makefile:364: recipe for target 'all-recursive' failed
>      make[1]: *** [all-recursive] Error 1
>      make[1]: Leaving directory '/home/johnc/build/splint-patched'
>      Makefile:305: recipe for target 'all' failed
>      make: *** [all] Error 2
> 
>      On Tue, Mar 21, 2017 at 1:31 PM, Richard A. O'Keefe <o...@cs.otago.ac.nz>
>      wrote:
> 
>        >
>        > Your are correct, those bits should be changed, but I'd like to
>        point
>        > out that my main goal was code, not documentation (if I'd have to
>        also
>        > update documentation, there are places that are in need since
>        earlier
>        > then the last official version, not to mention the changes that I've
>        > described).
> 
>        Installation instructions basically *are* code,
>        that just happens to be executed by a human being.
>        Code I cannot install is code I cannot use.
>        >
> 
>        > As I've mentioned in the description, my approach to code repository
>        > is that all generated files (including configure, generated from
>        > configure.ac) don't belong in the repository (changing the
>        [external]
>        > generation tool without any changes to the template files causes
>        > changes in repository -- not my idea of good practice). But, as I've
>        > also mentioned in the announcement, now 'make dist' works correctly,
>        > producing valid archives (*.tar.gz) to distribute.
> 
>        There are many respected software engineers who say that
>        EVERYTHING belongs in the repository.A  But it's your
>        repository, so your rules.
> 
>        If I could use 'make dist' I wouldn't need to.
>        >>
>        >
>        > automake provides some standard macros that are not installed by
>        > default (that should be done only once, and its assumed the
>        developer
>        > runs that). If I remember correctly, in order to force autotools
>        > (autoconf/automake/libtool) to install/generate what is standard but
>        > missing, one should use 'autoconf -i' in the directory containing
>        > configure.ac. [Keep in mind this is just a temporary solution until
>        > I find a way to distribute proper source archives, not
>        repositories].
> 
>        Sadly, this is not a solution.
> 
>        % autoconf -i
>        configure.ac:16: error: possibly undefined macro: AM_INIT_AUTOMAKE
>        A  A  A  If this token and others are legitimate, please use
>        m4_pattern_allow.
>        A  A  A  See the Autoconf documentation.
>        configure.ac:17: error: possibly undefined macro: AM_SILENT_RULES
>        configure.ac:31: error: possibly undefined macro: AM_PROG_LEX
> 
>        It turns out that the latest version of autoconf available
>        from the GNU site is 2.69, which is the one already installed
>        on the system.
> 
>        Just to make sure, I downloaded autoconf-latest and built a
>        local installation of it, and
>        m% autoconf
>        configure.ac:16: error: possibly undefined macro: AM_INIT_AUTOMAKE
>        A  A  A  If this token and others are legitimate, please use
>        m4_pattern_allow.
>        A  A  A  See the Autoconf documentation.
>        configure.ac:17: error: possibly undefined macro: AM_SILENT_RULES
>        configure.ac:31: error: possibly undefined macro: AM_PROG_LEX
> 
>        m% autoconf --version
>        autoconf (GNU Autoconf) 2.69
>        ...
> 
>        so it is not a problem with the system's autoconf.
> 
>        So I flicked over to a Linux box and found that autoconf
>        wasn't installed there.A  So I installed a local copy of
>        autoconf 2.69, and no difference.A  Still doesn't work.
>        It's not a Linux -vs- MacOSX difference.
> 
>        Your repository, your rules, my two days of frustration.
> 
>        _______________________________________________
>        splint-discuss mailing list
>        splint-discuss@mail.cs.virginia.edu
>        http://www.cs.virginia.edu/mailman/listinfo/splint-discuss
> 
>      --
>      John Carter
>      Phone : (64)(3) 358 6639
>      Tait ElectronicsA  A  A  A  A  A  A  A  A A  A  A A A 
>      PO Box 1645 Christchurch
>      New Zealand
> 
>    --
>    John Carter
>    Phone : (64)(3) 358 6639
>    Tait ElectronicsA  A  A  A  A  A  A  A  A A  A  A A A 
>    PO Box 1645 Christchurch
>    New Zealand
> 
>      ----------------------------------------------------------------------
> 
>    This Communication is Confidential. We only send and receive email on the
>    basis of the terms set out at www.taitradio.com/email_disclaimer
> 
>      ----------------------------------------------------------------------

> _______________________________________________
> splint-discuss mailing list
> splint-discuss@mail.cs.virginia.edu
> http://www.cs.virginia.edu/mailman/listinfo/splint-discuss

_______________________________________________
splint-discuss mailing list
splint-discuss@mail.cs.virginia.edu
http://www.cs.virginia.edu/mailman/listinfo/splint-discuss

Reply via email to