mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-12-27 08:01:04 +08:00
33ea1ada24
Merge 64-bit ID changes from branch to trunk. (Plus a few minor cleanups that aren't on the branch) Tested on: Mac OSX/64 10.9.4 (amazon) w/C++ & FORTRAN (h5committested on branch already for a week)
66 lines
2.4 KiB
Bash
Executable File
66 lines
2.4 KiB
Bash
Executable File
#!/bin/sh
|
|
##
|
|
## Copyright by the Board of Trustees of the University of Illinois.
|
|
## All rights reserved.
|
|
##
|
|
## This file is part of HDF5. The full HDF5 copyright notice, including
|
|
## terms governing use, modification, and redistribution, is contained in
|
|
## the files COPYING and Copyright.html. COPYING can be found at the root
|
|
## of the source code distribution tree; Copyright.html can be found at the
|
|
## root level of an installed copy of the electronic HDF5 document set and
|
|
## is linked from the top-level documents page. It can also be found at
|
|
## http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have
|
|
## access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu.
|
|
##
|
|
# regenerate hl/src/H5LTanalyze.c
|
|
|
|
# HDF5 currently uses the following versions of the bison flex:
|
|
BISON_VERSION="bison (GNU Bison) 2.7"
|
|
FLEX_VERSION="flex 2.5.37"
|
|
|
|
# If paths to bison flex are not specified by the user, assume tools are
|
|
# running on jam in /mnt/hdf/packages and set paths accordingly.
|
|
if test -z ${BISON}; then
|
|
BISON=/usr/hdf/bin/bison
|
|
fi
|
|
if test -z ${FLEX}; then
|
|
FLEX=/usr/hdf/bin/flex
|
|
fi
|
|
|
|
# Check version numbers of all bison flex against the "correct" versions
|
|
BI_VERS=`${BISON} --version 2>&1 | grep "^${BISON_VERSION}"`
|
|
if test -z "${BI_VERS}"; then
|
|
echo "${BISON} version is not ${BISON_VERSION}"
|
|
exit 1
|
|
fi
|
|
FL_VERS=`${FLEX} --version 2>&1 | grep "^${FLEX_VERSION}"`
|
|
if test -z "${FL_VERS}"; then
|
|
echo "${FLEX} version is not ${FLEX_VERSION}"
|
|
exit 1
|
|
fi
|
|
|
|
# Make sure that the tools are in the path.
|
|
BISON_DIR=`dirname ${BISON}`
|
|
FLEX_DIR=`dirname ${FLEX}`
|
|
|
|
# Main body
|
|
cd hl/src
|
|
echo "Generate hl/src/H5LTparse.c from hl/src/H5LTparse.y"
|
|
bison -pH5LTyy -o H5LTparse.c -d H5LTparse.y
|
|
echo "Generate hl/src/H5LTanalyze.c from hl/src/H5LTanalyze.l"
|
|
flex --nounistd -PH5LTyy -oH5LTanalyze.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\nyyparse/hid_t\nyyparse/igs' H5LTparse.c
|
|
perl -0777 -pi -e 's/int H5LTyyparse/hid_t H5LTyyparse/igs' H5LTparse.c
|
|
cd ../..
|
|
|
|
exit 0
|