diff --git a/.gitignore b/.gitignore index 7d5a646..d15be1b 100644 --- a/.gitignore +++ b/.gitignore @@ -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* diff --git a/Makefile b/Makefile deleted file mode 100644 index 47eba10..0000000 --- a/Makefile +++ /dev/null @@ -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 - diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..cce8ff1 --- /dev/null +++ b/Makefile.am @@ -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 $@ $< + diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..4b38721 --- /dev/null +++ b/autogen.sh @@ -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 diff --git a/build-aux/.gitignore b/build-aux/.gitignore new file mode 100644 index 0000000..fefd4f8 --- /dev/null +++ b/build-aux/.gitignore @@ -0,0 +1,9 @@ +compile +config.guess +config.sub +depcomp +install-sh +ltmain.sh +missing +test-driver +ylwrap diff --git a/build-aux/m4/.gitignore b/build-aux/m4/.gitignore new file mode 100644 index 0000000..464ba5c --- /dev/null +++ b/build-aux/m4/.gitignore @@ -0,0 +1,5 @@ +libtool.m4 +lt~obsolete.m4 +ltoptions.m4 +ltsugar.m4 +ltversion.m4 diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..46035d5 --- /dev/null +++ b/configure.ac @@ -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 + diff --git a/libsqlpars-uninstalled.pc.in b/libsqlpars-uninstalled.pc.in new file mode 100644 index 0000000..3d17910 --- /dev/null +++ b/libsqlpars-uninstalled.pc.in @@ -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 diff --git a/libsqlpars.pc.in b/libsqlpars.pc.in new file mode 100644 index 0000000..59b45e7 --- /dev/null +++ b/libsqlpars.pc.in @@ -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}