[freetds] Nightly build fails

ZIGLIO, Frediano, VF-IT Frediano.Ziglio at vodafone.com
Fri Apr 1 06:13:55 EST 2005


> 
> On Thu, 31 Mar 2005 11:27:07 +0200, Frediano Ziglio <freddyz77 at tin.it>
> wrote:
> > 
> > > The problem with not committing autogenerated files: 
> teach autogen to
> > > make num_limits.h when building from CVS, but to include 
> num_limits.h
> > > in the output of "make dist".  The reason, you remember, is that
> > > people who build from distributions and snapshots 
> shouldn't need Perl.
> > >  I know we
> > > agree on that point; I'm just reminding everyone.  
> > 
> > Using distro
> 
> You mean freetds-0.64.dev.20050331.tar.gz, right?  
> 

I used make dist from CVS version.

> > $ make
> > make: *** No rule to make target `numeric.pl', needed by 
> `num_limits.h'.
> > Stop.
> 
> Bah.  I thought I had it working yesterday.  Maybe it was a different
> toolset.  The current set is:
> 
> autoconf (GNU Autoconf) 2.57
> automake (GNU automake) 1.7.3
> ltmain.sh (GNU libtool) 1.5.6 (1.1220.2.94 2004/04/10 16:27:27)
> 
> > all: $(BUILT_SOURCES)
> >         $(MAKE) $(AM_MAKEFLAGS) all-recursive
> > ...
> > num_limits.h: numeric.pl Makefile
> >         perl $(srcdir)/numeric.pl > .$@
> >         mv .$@ $@
> > 
> > So make require numeric.pl to build (or only check) 
> num_limits.h. The
> > only solution I see is to include numeric.pl in distribution...
> 
> I don't want to do that.  If we start including Perl code in the
> distribution, sooner or later we'll either accidentally 
> require Perl, or
> someone will think we do.  
> 
> The nightly snapshot builds if you remove $(BUILT_SOURCES): 
> 
> 	all:
> 
> from src/tds/Makefile.  
> 
> I'll look into it some more.  There has to be a way.  
> 


The key is

num_limits.h: numeric.pl Makefile

You say: if num_limits.h is former than Makefile or numeric.pl rebuild
num_limits.h... I think that Makefile is an error. Makefile is generated
by configure script so this rule will be executed by all users...
removing Makefile

num_limits.h: numeric.pl

Now if num_limits.h is former than numeric.pl make rebuild num_limits.h.
However you do not distribute numeric.pl and user get the error I
reported (make: *** No rule to make target `numeric.pl', needed by
`num_limits.h'.). So there are only two solutions:
1- remove dependency from num_limits.h to numeric.pl
2- include numeric.pl in distribution

To implement 2 just add numeric.pl in EXTRA_DIST. To implement 1 remove
numeric.pl from dependency... however you lose some automatism. However
there are some trick we can use with 1:
- make num_limits.h dependent on a file that we distribute and that is
more recent than numeric.pl. We used this trick for documentation (we
use dependency to ChangeLog in doc/Makefile.am)
- build num_limits.h during autogen.sh, so developer will build it and
user just use compiled version
- comment out num_limits.h rule if perl is not detected in configure
(still used for documentation in root Makefile.am)

freddy77


More information about the FreeTDS mailing list