Switch to autoconf/automake/libtool.

libtool is included as future preparation for exporting a library.
This commit is contained in:
Jeff Garzik 2016-07-29 06:27:45 -04:00
parent 32043a11c3
commit e1e9c6558c
9 changed files with 174 additions and 41 deletions

15
.gitignore vendored
View File

@ -2,10 +2,23 @@
*.o
*.output
Makefile.in
sql.tab.*
sql.lex.h
sql.c
sql
push
libtool
configure
stamp-h1
autom4te.cache/
.deps/
aclocal.m4
config.log
config.status
libsqlpars-uninstalled.pc
libsqlpars.pc
sqlpars-config.h*

View File

@ -1,40 +0,0 @@
# $Header: /home/johnl/flnb/code/sql/RCS/Makefile,v 2.1 2009/11/08 02:53:39 johnl Exp $
# Companion source code for "flex & bison", published by O'Reilly
# Media, ISBN 978-0-596-15597-1
# Copyright (c) 2009, Taughannock Networks. All rights reserved.
# See the README file for license conditions and contact info.
CC = gcc -Wall -O -g
LEX = flex
YACC = bison
CFLAGS = -DYYDEBUG=1
PROGRAMS = sql
all: ${PROGRAMS}
# chapter 4
OBJS = sql.o sql.tab.o exec.o
sql: ${OBJS} sql-parser.h
${CC} -o $@ ${OBJS}
sql.tab.c sql.tab.h: sql.y
${YACC} -vd sql.y
sql.c: sql.l
${LEX} -o $@ $<
sql.o: sql.c sql.tab.h
clean:
rm -f sql sql.tab.c sql.tab.h sql.lex.h sql.c ${OBJS} \
sql.output
.SUFFIXES: .l .y .c
exec.o: exec.c sql-parser.h
sql.o: sql-parser.h
sql.tab.o: sql-parser.h

26
Makefile.am Normal file
View File

@ -0,0 +1,26 @@
ACLOCAL_AMFLAGS = -I build-aux/m4
AM_CFLAGS = -DYYDEBUG=1
bin_PROGRAMS = sql
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libsqlpars.pc
# TESTS = test/unitester
# noinst_PROGRAMS = $(TESTS)
EXTRA_DIST=sql.y sql.l
sql_SOURCES = exec.c sql-parser.h
nodist_sql_SOURCES = sql.c sql.tab.c sql.tab.h sql.lex.h
BUILT_SOURCES = $(nodist_sql_SOURCES)
CLEANFILES = $(nodist_sql_SOURCES) sql.output
sql.tab.c sql.tab.h: sql.y Makefile
${BISON} -vd $<
sql.c sql.lex.h: sql.l Makefile
${LEX} -o $@ $<

9
autogen.sh Executable file
View File

@ -0,0 +1,9 @@
#!/bin/sh
set -e
srcdir="$(dirname $0)"
cd "$srcdir"
if [ -z ${LIBTOOLIZE} ] && GLIBTOOLIZE="`which glibtoolize 2>/dev/null`"; then
LIBTOOLIZE="${GLIBTOOLIZE}"
export LIBTOOLIZE
fi
autoreconf --install --force

9
build-aux/.gitignore vendored Normal file
View File

@ -0,0 +1,9 @@
compile
config.guess
config.sub
depcomp
install-sh
ltmain.sh
missing
test-driver
ylwrap

5
build-aux/m4/.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
libtool.m4
lt~obsolete.m4
ltoptions.m4
ltsugar.m4
ltversion.m4

92
configure.ac Normal file
View File

@ -0,0 +1,92 @@
m4_define([libsqlpars_major_version], [1])
m4_define([libsqlpars_minor_version], [0])
m4_define([libsqlpars_micro_version], [0])
m4_define([libsqlpars_interface_age], [1])
# If you need a modifier for the version number.
# Normally empty, but can be used to make "fixup" releases.
m4_define([libsqlpars_extraversion], [])
dnl libtool versioning from libsqlpars
m4_define([libsqlpars_current], [m4_eval(100 * libsqlpars_minor_version + libsqlpars_micro_version - libsqlpars_interface_age)])
m4_define([libsqlpars_binary_age], [m4_eval(100 * libsqlpars_minor_version + libsqlpars_micro_version)])
m4_define([libsqlpars_revision], [libsqlpars_interface_age])
m4_define([libsqlpars_age], [m4_eval(libsqlpars_binary_age - libsqlpars_interface_age)])
m4_define([libsqlpars_version], [libsqlpars_major_version().libsqlpars_minor_version().libsqlpars_micro_version()libsqlpars_extraversion()])
AC_INIT([sqlpars], [0.0.1],
[http://github.com/jgarzik/sqlpars/])
dnl make the compilation flags quiet unless V=1 is used
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_PREREQ(2.60)
AC_CONFIG_SRCDIR([exec.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([build-aux/m4])
AC_CONFIG_HEADERS([sqlpars-config.h])
AM_INIT_AUTOMAKE([subdir-objects foreign])
LIBSQLPARS_MAJOR_VERSION=libsqlpars_major_version
LIBSQLPARS_MINOR_VERSION=libsqlpars_minor_version
LIBSQLPARS_MICRO_VERSION=libsqlpars_micro_version
LIBSQLPARS_INTERFACE_AGE=libsqlpars_interface_age
# ABI version
# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
LIBSQLPARS_CURRENT=libsqlpars_current
LIBSQLPARS_REVISION=libsqlpars_revision
LIBSQLPARS_AGE=libsqlpars_age
AC_SUBST(LIBSQLPARS_CURRENT)
AC_SUBST(LIBSQLPARS_REVISION)
AC_SUBST(LIBSQLPARS_AGE)
LT_INIT
LT_LANG([C])
AC_PROG_LEX
AC_PROG_YACC
AC_CHECK_PROG(BISON, bison, bison, false)
dnl Coverage
AC_MSG_CHECKING([whether to code coverage])
AC_ARG_ENABLE([coverage],
[AS_HELP_STRING([--enable-coverage],[generate code coverage instrumentation])],
[],
[enable_coverage=no])
AC_MSG_RESULT([$enable_coverage])
AS_IF([test "$enable_coverage" = "yes"], [
AC_PATH_PROG(GCOV, gcov, no)
AS_IF([test "$GCOV" = "no"], [
AC_MSG_ERROR(gcov tool is not available)])
AC_PATH_PROG(LCOV, lcov, no)
AS_IF([test "$LCOV" = "no"], [
AC_MSG_ERROR(lcov tool is not installed)])
CXXFLAGS="$CXXFLAGS -O1 -fprofile-arcs -ftest-coverage"
CFLAGS="$CFLAGS -O1 -fprofile-arcs -ftest-coverage"
])
case $host in
*mingw*)
LIBTOOL_APP_LDFLAGS="$LIBTOOL_APP_LDFLAGS -all-static"
;;
esac
BUILD_EXEEXT=
case $build in
*mingw*)
BUILD_EXEEXT=".exe"
;;
esac
AC_CONFIG_FILES([
Makefile
libsqlpars.pc
libsqlpars-uninstalled.pc])
AC_SUBST(LIBTOOL_APP_LDFLAGS)
AC_SUBST(BUILD_EXEEXT)
AC_OUTPUT

View File

@ -0,0 +1,9 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: libsqlpars
Description: libsqlpars, SQL parser library
Version: @VERSION@
Libs: ${pc_top_builddir}/${pcfiledir}/libsqlpars.la

10
libsqlpars.pc.in Normal file
View File

@ -0,0 +1,10 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: libsqlpars
Description: libsqlpars, SQL parser library
Version: @VERSION@
Libs: -L${libdir} -lsqlpars
Cflags: -I${includedir}