Drop autogen.sh: Do use autoconf

Automake is changing and some of the stuff in autogen.sh is expected to fail
soon:
https://www.gnu.org/software/automake/manual/html_node/Future-of-aclocal.html

"autoreconf -if" will overwrite the INSTALL file, so its content is now in the
README file.

Added NEWS warning

Adjusted .gitignore
This commit is contained in:
Nirgal Vourgère
2013-07-14 21:35:06 +02:00
parent 5312060544
commit a63692312c
5 changed files with 101 additions and 270 deletions

1
.gitignore vendored
View File

@@ -14,6 +14,7 @@ dumptypes.h
Makefile.in
Makefile
doc/*.1
INSTALL
include/config.h
include/config.h.in
include/mdbver.h

97
INSTALL
View File

@@ -1,97 +0,0 @@
Basic Installation - from a packaged tarball (.tgz)
===================================================
See below if you are installing from git.
$ ./configure
$ make
or for a complete install (requires bison, flex, and unixODBC):
$ ./configure --enable-sql --with-unixodbc=/usr/local
$ make
This will build some useful utilities:
mdb-ver -- prints the version (JET 3 or 4) of an mdb file
mdb-dump -- simple hex dump utility that I've been using to look at mdb files
mdb-schema -- prints DDL for the specified table
mdb-export -- export table to CSV format
mdb-tables -- a simple dump of table names to be used with shell scripts
mdb-header -- generates a C header to be used in exporting mdb data to a C prog.
mdb-parsecvs -- generates a C program given a CSV file made with mdb-export
mdb-sql -- if --enable-sql is specified, a simple SQL engine (also used by
ODBC and gmdb).
gmdb2 -- a graphical utility to browse MDB files.
And some utilities useful for debugging:
prcat -- prints the catalog table from an mdb file.
prkkd -- dump of information about design view data given the offset to it.
prtable -- dump of a table definition.
prdata -- dump of the data given a table name.
prole -- dump of ole columns given a table name and sargs.
Once MDB Tools has been compiled, libmdb.[so|a] will be in the src/libmdb
directory and the utility programs will be in the src/util directory.
You can then run 'make install' as root to install (to /usr/local by default).
Some systems will also need the ld cache to be updated after installation;
You can do that running 'ldconfig' as root.
Installation Options
====================
configure can be passed any of the following flags to turn on other
capabilities. Note that the options --with-unixodbc and --with-iodbc are
mutually exclusive.
--enable-sql will cause the SQL engine to be built, you must have flex
and bison (or yacc) installed for this option.
--with-unixodbc specifies the location of the unixODBC driver manager and
causes the unixODBC driver to be built. You need version
2.2.10 or above.
--with-iodbc specifies the location of the iODBC driver manager and
causes the iODBC driver to be built.
If you want to build the html version of the docbook documentation, you need to
set the environment variable DOCBOOK_DSL to the modular dsl translation file.
For exemple, before configure, you need something like:
$ export DOCBOOK_DSL=/usr/share/sgml/docbook/stylesheet/dsssl/modular/html/docbook.dsl
Installation from sources
=========================
First, you must have reasonably current installations of:
libtool
automake
autoconf
If you don't you should install them first. Sources are available at
ftp.gnu.org.
You will also need txt2man in order to build the man pages. Source is available
at http://mvertes.free.fr/download/.
Second, download the sources from github:
$ git clone git://github.com/brianb/mdbtools.git
Third, run autogen.sh to configure everything:
$ ./autogen.sh
-- This will run libtoolize, automake, and autoconf.
Note: FreeBSD systems, as of the time of this writing, have an old version of
libtool (1.3.4) in the ports collection. It works, but requires the presence
of acinclude.m4 in the distribution, which is why it is included. If your
system has a more up-to-date version (1.4.2, at this date), this file is not
needed and, in fact, causes an error when autoconf is run:
./ltconfig: ./ltconfig: No such file or directory
configure: error: libtool configure failed
If you get this error message, delete the file "acinclude.m4" and run
autogen.sh again.
At this point, you should resume the instructions at the beginning of this
file.

12
NEWS
View File

@@ -1,15 +1,17 @@
Version 0.7.1
=============
autogen.sh is no more. Use "autoreconf" -if to bootstrap the configuration.
autoconf/automake has been updated to more recent standards.
- config.guess config.sub depcomp install-sh ltmain.sh missing ylwrap
files are now in build-aux/ directory
You'll now need autoconf >= 2.58
An experimental (buggy) version of ODBC driver that supports UCS-2 interface
is now available: libmdbodbcW.so
Note that libmdbodbc supports UTF-8 really well, so that this is usually not
needed.
autoconf/automake has been updates to more recent standards.
- config.guess config.sub depcomp install-sh ltmain.sh missing ylwrap
files are now in build-aux/ directory
You'll now need autoconf >= 2.58
Version 0.3
===========
The organization of the project files has changed a bit from that last release.

101
README
View File

@@ -6,8 +6,26 @@ pieces are:
. libmdb - the core library that allows access to MDB files programatically.
. libmdbsql - builds on libmdb to provide a SQL engine (aka Jet)
. utils - provides command line utilities to list tables, export schema,
and data, show the version of the files, and other useful stuff.
. utils - provides command line utilities:
mdb-ver -- prints the version (JET 3 or 4) of an mdb file.
mdb-dump -- simple hex dump utility that I've been using to look
at mdb files.
mdb-schema -- prints DDL for the specified table.
mdb-export -- export table to CSV format.
mdb-tables -- a simple dump of table names to be used with shell
scripts
mdb-header -- generates a C header to be used in exporting mdb
data to a C prog.
mdb-parsecvs -- generates a C program given a CSV file made with
mdb-export
mdb-sql -- if --enable-sql is specified, a simple SQL engine
(also used by ODBC and gmdb).
- And some utilities useful for debugging:
prcat -- prints the catalog table from an mdb file.
prkkd -- dump of information about design view data given the offset to it.
prtable -- dump of a table definition.
prdata -- dump of the data given a table name.
prole -- dump of ole columns given a table name and sargs.
. mdb-sql - a command line SQL tool that allows one to type sql queries and
get results.
. odbc - An ODBC driver for use with unixODBC or iODBC driver manager.
@@ -20,16 +38,83 @@ where the code stands and what has been gleened of the file format.
The initial goal of these tools is to be able to extract data structures and
data from mdb files. This goal will of course expand over time as the file
format becomes more well understood.
format becomes more well understood.
Files in libmdb, libmdbsql, and libmdbodbc are licensed under LGPL and the
utilities and gui program are under the GPL, see COPYING.LIB and COPYING files
Files in libmdb, libmdbsql, and libmdbodbc are licensed under LGPL and the
utilities and gui program are under the GPL, see COPYING.LIB and COPYING files
respectively.
To install see the INSTALL file
Check out https://github.com/brianb/mdbtools for latest version of sources.
Check out http://mdbtools.sourceforge.net for mailing list and similar.
Requirements:
=============
First, you must have reasonably current installations of:
libtool
automake
autoconf (version >= 2.58)
If you don't you should install them first. Sources are available at
ftp.gnu.org.
If you want to build the SQL engine, you'll need bison or byacc, and flex.
If you want to build the ODBC driver, you'll need unixodbc (version 2.2.10 or
above) or iodbc.
If you want to build man pages, you'll need txt2man. Source is available at
http://mvertes.free.fr/download/.
If you want to generate the html version of the docbook, you'll need openjade
and basic dsl catalogs.
Installation from source:
=========================
Last version is available at https://github.com/brianb/mdbtools
$ autoreconf -i -f
If you want to build the html version of the docbook documentation, you need to
set the environment variable DOCBOOK_DSL to the modular dsl translation file.
For exemple, before configure, you need something like:
$ export DOCBOOK_DSL=/usr/share/sgml/docbook/stylesheet/dsssl/modular/html/docbook.dsl
$ ./configure
OR for a complete install (requires bison, flex, and unixODBC):
$ ./configure --with-unixodbc=/usr/local
configure can be passed any of the following flags to turn on other
capabilities. Note that the options --with-unixodbc and --with-iodbc are
mutually exclusive.
--with-unixodbc specifies the location of the unixODBC driver manager and
causes the unixODBC driver to be built.
--with-iodbc specifies the location of the iODBC driver manager and
causes the iODBC driver to be built.
A list of general options is available in the INSTALL file, and
"configure --help" will give you the list of mdbtools specific options.
$ make
Once MDB Tools has been compiled, libmdb.[so|a] will be in the src/libmdb
directory and the utility programs will be in the src/util directory.
You can then run 'make install' as root to install (to /usr/local by default).
Some systems will also need the ld cache to be updated after installation;
You can do that running 'ldconfig' as root.
Contacts
========
The mailing list from the old site a available at
http://mdbtools.sourceforge.net
Please send bug repports to the new github platform.
https://github.com/brianb/mdbtools/issues
Brian Bruns
brian@bruns.com

View File

@@ -1,160 +0,0 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
# (Copied from output generated by Glade 0.6.2 and modified by James
# Cameron for the FreeTDS project. Changes were to PKG_NAME only.)
# Copied from FreeTDS to MDB Tools by Brian Bruns.
srcdir=`dirname $0`
PKG_NAME="MDBTools."
DIE=0
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`autoconf' installed."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}
grep "^A[CM]_PROG_LIBTOOL" configure.ac >/dev/null && {
if which libtoolize && (libtoolize --version) < /dev/null > /dev/null 2>&1; then
LIBTOOLIZE=libtoolize
else
if which glibtoolize && (glibtoolize --version) < /dev/null > /dev/null 2>&1; then
LIBTOOLIZE=glibtoolize
else
echo
echo "**Error**: You must have \`libtool' installed."
echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
fi
fi
}
grep "^AM_GNU_GETTEXT" $srcdir/configure.ac >/dev/null && {
grep "sed.*POTFILES" $srcdir/configure.ac >/dev/null || \
(gettext --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`gettext' installed."
echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
}
grep "^AM_GNOME_GETTEXT" $srcdir/configure.ac >/dev/null && {
grep "sed.*POTFILES" $srcdir/configure.ac >/dev/null || \
(gettext --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`gettext' installed."
echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
}
(automake --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`automake' installed."
echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
NO_AUTOMAKE=yes
}
# if no automake, don't bother testing for aclocal
test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: Missing \`aclocal'. The version of \`automake'"
echo "installed doesn't appear recent enough."
echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
if test "$DIE" -eq 1; then
exit 1
fi
if test x$NOCONFIGURE = x; then
if test -z "$*"; then
echo "**Warning**: I am going to run \`configure' with no arguments."
echo "If you wish to pass any to it, please specify them on the"
echo \`$0\'" command line."
echo
fi
fi
case $CC in
xlc )
am_opt=--include-deps;;
esac
for coin in `find $srcdir -name configure.ac -print`
do
dr=`dirname $coin`
if test -f $dr/NO-AUTO-GEN; then
echo skipping $dr -- flagged as no auto-gen
else
echo processing $dr
macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin`
( cd $dr
aclocalinclude="$ACLOCAL_FLAGS"
for k in $macrodirs; do
if test -d $k; then
aclocalinclude="$aclocalinclude -I $k"
##else
## echo "**Warning**: No such directory \`$k'. Ignored."
fi
done
if grep "^AM_GNU_GETTEXT" configure.ac >/dev/null; then
if grep "sed.*POTFILES" configure.ac >/dev/null; then
: do nothing -- we still have an old unmodified configure.ac
else
echo "Creating $dr/aclocal.m4 ..."
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
echo "Running gettextize... Ignore non-fatal messages."
echo "no" | gettextize --force --copy
echo "Making $dr/aclocal.m4 writable ..."
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
fi
fi
if grep "^AM_GNOME_GETTEXT" configure.ac >/dev/null; then
echo "Creating $dr/aclocal.m4 ..."
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
echo "Running gettextize... Ignore non-fatal messages."
echo "no" | gettextize --force --copy
echo "Making $dr/aclocal.m4 writable ..."
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
fi
echo "Running aclocal $aclocalinclude ..."
aclocal $aclocalinclude
if grep "^A[CM]_PROG_LIBTOOL" configure.ac >/dev/null; then
echo "Running libtoolize..."
${LIBTOOLIZE} --force --copy
fi
if grep "^A[CM]_CONFIG_HEADER" configure.ac >/dev/null; then
echo "Running autoheader..."
autoheader
fi
echo "Running automake --gnu $am_opt ..."
automake --add-missing --gnu --copy $am_opt
echo "Running autoconf ..."
autoconf
)
fi
done
#conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c
if test x$NOCONFIGURE = x; then
echo Running $srcdir/configure $conf_flags "$@" ...
$srcdir/configure $conf_flags "$@" \
&& echo Now type \`make\' to compile $PKG_NAME
else
echo Skipping configure process.
fi