diff options
author | Dana Robinson <derobins@hdfgroup.org> | 2015-11-13 11:24:43 (GMT) |
---|---|---|
committer | Dana Robinson <derobins@hdfgroup.org> | 2015-11-13 11:24:43 (GMT) |
commit | f7b73969f32fdf7a671b0e2b98685a770f3a6030 (patch) | |
tree | 0dc6f5ba472bbd3a19b7140c921e93933ae86758 /autogen.sh | |
parent | 7426415d9536290cca8847e85a7101a3aa11905c (diff) | |
download | hdf5-f7b73969f32fdf7a671b0e2b98685a770f3a6030.zip hdf5-f7b73969f32fdf7a671b0e2b98685a770f3a6030.tar.gz hdf5-f7b73969f32fdf7a671b0e2b98685a770f3a6030.tar.bz2 |
[svn-r28332] Updated autogen.sh to not run flex/bison.
This was giving a lot of users headaches and the parser code rarely
changes. There is now a new script (bin/genparser) which can be
run as needed.
Tested on: Ubuntu 15.10 (x86_64 Linux 4.2.0)
gcc 5.2.1, flex 2.5.39, bison 3.0.2
Diffstat (limited to 'autogen.sh')
-rwxr-xr-x | autogen.sh | 114 |
1 files changed, 3 insertions, 111 deletions
@@ -19,22 +19,18 @@ # IMPORTANT OS X NOTE # # If you are using OS X, you will probably not have the autotools -# installed, even if you have the Xcode command-line tools. The -# bison version you have installed may also have a bug that makes -# it unable to process our input files. +# installed, even if you have the Xcode command-line tools. # # The easiest way to fix this is to install everything via Homebrew: # # http://brew.sh/ # # After you install the base packages, install autoconf, automake, -# libtool, and flex/bison. +# and libtool. # # brew install autoconf # brew install automake # brew install libtool -# brew install flex -# brew install bison # # This only takes a few minutes. Note that libtool and libtoolize will # be glibtool and glibtoolize so as not to conflict with Apple's non-gnu @@ -52,8 +48,6 @@ # HDF5_AUTOCONF # HDF5_LIBTOOL # HDF5_M4 -# HDF5_FLEX -# HDF5_BISON # # Note that aclocal will attempt to include libtool's share/aclocal # directory. @@ -149,12 +143,6 @@ if [ "$production" = true ] ; then if test -z ${HDF5_M4}; then HDF5_M4=/usr/hdf/bin/AUTOTOOLS/m4 fi - if test -z ${HDF5_BISON}; then - HDF5_BISON=/usr/hdf/bin/AUTOTOOLS/bison - fi - if test -z ${HDF5_FLEX}; then - HDF5_FLEX=/usr/hdf/bin/AUTOTOOLS/flex - fi else @@ -189,12 +177,6 @@ else if test -z ${HDF5_M4}; then HDF5_M4=$(which m4) fi - if test -z ${HDF5_BISON}; then - HDF5_BISON=$(which bison) - fi - if test -z ${HDF5_FLEX}; then - HDF5_FLEX=$(which flex) - fi fi # production @@ -203,9 +185,7 @@ fi # production AUTOCONF_DIR=`dirname ${HDF5_AUTOCONF}` LIBTOOL_DIR=`dirname ${HDF5_LIBTOOL}` M4_DIR=`dirname ${HDF5_M4}` -BISON_DIR=`dirname ${HDF5_BISON}` -FLEX_DIR=`dirname ${HDF5_FLEX}` -PATH=${AUTOCONF_DIR}:${LIBTOOL_DIR}:${M4_DIR}:${FLEX_DIR}:${BISON_DIR}:$PATH +PATH=${AUTOCONF_DIR}:${LIBTOOL_DIR}:${M4_DIR}:$PATH # Make libtoolize match the specified libtool case "`uname`" in @@ -315,94 +295,6 @@ echo echo "Running overflow macro generation script:" bin/make_overflow src/H5overflow.txt || exit 1 -# Run flex and bison -# automatically generates hl/src/H5LTanalyze.c and hl/src/H5LTparse.c -# Note that, as of Xcode 6.1 (2015), the default bison version on OS X -# is old enough to have the circular dependency bug. You'll have -# to install a later version of bison. See the OS X note at the top -# of this script. -echo -echo "Generating H5LT parser code (requires yacc/bison):" -echo "Generate hl/src/H5LTparse.c from hl/src/H5LTparse.y" -# HDF5_BISON is set via the environment or 'which bison', above -if test -z ${HDF5_BISON}; then - echo - echo "*************************" - echo " ERROR - bison not found" - echo "*************************" - echo "bison is required to generate parser code in H5LT" - echo - exit 127 -fi -cd hl/src -if [ "$verbose" = true ] ; then - ${HDF5_BISON} --version -fi -${HDF5_BISON} -pH5LTyy -o H5LTparse.c -d H5LTparse.y - -echo -echo "Generating H5LT lexer code (requires lex/flex):" -echo "Generate hl/src/H5LTanalyze.c from hl/src/H5LTanalyze.l" -# HDF5_FLEX is set via the environment or 'which flex', above -if test -z ${HDF5_FLEX}; then - echo - echo "************************" - echo " ERROR - flex not found" - echo "************************" - echo "flex is required to generate lexer code in H5LT" - echo - exit 127 -fi -if [ "$verbose" = true ] ; then - ${HDF5_FLEX} --version -fi -${HDF5_FLEX} --nounistd -PH5LTyy -o H5LTanalyze.c H5LTanalyze.l - -# fix H5LTparse.c to declare H5LTyyparse return type as an hid_t -# instead of int. Currently the generated function H5LTyyparse is -# generated with a return value of type int, which is a mapping to the -# flex yyparse function. The return value in the HL library should be -# an hid_t. -# I propose to not use flex to generate this function, but for now I am -# adding a perl command to find and replace this function declaration in -# H5LTparse.c. -perl -0777 -pi -e 's/int yyparse/hid_t yyparse/igs' H5LTparse.c -perl -0777 -pi -e 's/int\nyyparse/hid_t\nyyparse/igs' H5LTparse.c -perl -0777 -pi -e 's/int H5LTyyparse/hid_t H5LTyyparse/igs' H5LTparse.c - -# Add code that disables warnings in the flex/bison-generated code. -# -# Note that the GCC pragmas did not exist until gcc 4.2. Earlier versions -# will simply ignore them, but we want to avoid those warnings. -for f in H5LTparse.c H5LTanalyze.c -do - echo '#if __GNUC__ >= 4 && __GNUC_MINOR__ >=2 ' >> tmp.out - echo '#pragma GCC diagnostic ignored "-Wconversion" ' >> tmp.out - echo '#pragma GCC diagnostic ignored "-Wimplicit-function-declaration" ' >> tmp.out - echo '#pragma GCC diagnostic ignored "-Wlarger-than=" ' >> tmp.out - echo '#pragma GCC diagnostic ignored "-Wmissing-prototypes" ' >> tmp.out - echo '#pragma GCC diagnostic ignored "-Wnested-externs" ' >> tmp.out - echo '#pragma GCC diagnostic ignored "-Wold-style-definition" ' >> tmp.out - echo '#pragma GCC diagnostic ignored "-Wsign-compare" ' >> tmp.out - echo '#pragma GCC diagnostic ignored "-Wsign-conversion" ' >> tmp.out - echo '#pragma GCC diagnostic ignored "-Wstrict-prototypes" ' >> tmp.out - echo '#pragma GCC diagnostic ignored "-Wswitch-default" ' >> tmp.out - echo '#pragma GCC diagnostic ignored "-Wunused-function" ' >> tmp.out - echo '#pragma GCC diagnostic ignored "-Wunused-macros" ' >> tmp.out - echo '#pragma GCC diagnostic ignored "-Wunused-parameter" ' >> tmp.out - echo '#pragma GCC diagnostic ignored "-Wredundant-decls" ' >> tmp.out - echo '#elif defined __SUNPRO_CC ' >> tmp.out - echo '#pragma disable_warn ' >> tmp.out - echo '#elif defined _MSC_VER ' >> tmp.out - echo '#pragma warning(push, 1) ' >> tmp.out - echo '#endif ' >> tmp.out - - cat $f >> tmp.out - mv tmp.out $f -done - -cd ../.. - echo exit 0 |