rgamble / libcsv

Fast and flexible CSV library written in pure ANSI C that can read and write CSV data.
GNU Lesser General Public License v2.1
181 stars 40 forks source link

Build fails with latest commits (reopened) #7

Closed bobhairgrove closed 7 years ago

bobhairgrove commented 7 years ago
bob@mylaptop:~/libcsv_WORK$ make
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/bob/libcsv_WORK/missing aclocal-1.14 -I m4
/home/bob/libcsv_WORK/missing: line 81: aclocal-1.14: command not found
WARNING: 'aclocal-1.14' is missing on your system.
         You should only need it if you modified 'acinclude.m4' or
         'configure.ac' or m4 files included by 'configure.ac'.
         The 'aclocal' program is part of the GNU Automake package:
         <http://www.gnu.org/software/automake>
         It also requires GNU Autoconf, GNU m4 and Perl in order to run:
         <http://www.gnu.org/software/autoconf>
         <http://www.gnu.org/software/m4/>
         <http://www.perl.org/>
Makefile:572: recipe for target 'aclocal.m4' failed
make: *** [aclocal.m4] Error 127
rgamble commented 7 years ago

This looks like a timestamp issue caused by a combination of the fact that git does not preserve timestamps and the way that autoconf works. I'll add a fix-timestamps.sh script to address the issue.

bobhairgrove commented 7 years ago

This should really be fixed by running autoreconf -fi ... (assuming that this is a valid fix; I'm pretty much a newbie when it comes to autotools).

This project (and others) seem to have been struggling with the same issue:

https://github.com/Jasig/mod_auth_cas/issues/91

IMHO, requiring users to run an extra script after make bails out is not an elegant way to solve this problem. It should "just work" by running configure && make && sudo make install (if possible).

rgamble commented 7 years ago

Hi Bob, I agree the solution is not elegant but there doesn't appear to be a better solution. A lot of projects run into this issue which is why it is specifically addressed in the automake documentation where the recommended approach is the timestamp script. Regarding autoreconf -fi, I honestly don't see how this is related to the underlying issue or why it would help address the problem. It might be possible to incorporate the running of fix-timestamps.sh into the configure script which would further improve the current situation.

bobhairgrove commented 7 years ago

Here is another suggestion by enabling maintainer mode in configure.ac: https://autotools.io/automake/maintainer.html

Maybe this would be the best solution?

rgamble commented 7 years ago

AM_MAINTAINER_MODE is not a great solution in general but it may be a reasonable approach for this project.

bobhairgrove commented 7 years ago

OK, maybe we could leave it at that and run the script when necessary. Whatever works... then we can concentrate on the actual code!