Mercurial > octave
view build-aux/mk-octave-config-h.sh @ 21239:ffc9806bb300
mk-octave-config-h.sh: Correct typdef for octave_idx_type.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 10 Feb 2016 11:46:14 -0500 |
parents | a83e7a384ee0 |
children | 7af5ca01ecac |
line wrap: on
line source
#! /bin/sh # # Copyright (C) 2016 John W. Eaton # # This file is part of Octave. # # Octave is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 3 of the License, or (at # your option) any later version. # # Octave is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with Octave; see the file COPYING. If not, see # <http://www.gnu.org/licenses/>. if [ $# -ne 1 ]; then echo "usage: mk-octave-config-h.sh CONFIG-FILE" 1>&2 exit 1 fi config_h_file=$1 cat << EOF /* DO NOT EDIT! Generated by mk-octave-config-h.sh. */ /* Copyright (C) 2016 John W. Eaton This file is part of Octave. Octave is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. Octave is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Octave; see the file COPYING. If not, see <http://www.gnu.org/licenses/>. */ #if ! defined (octave_octave_config_h) #define octave_octave_config_h 1 #include <stdint.h> #if defined (__GNUC__) # define OCTAVE_DEPRECATED(msg) __attribute__ ((__deprecated__ (msg))) # define OCTAVE_NORETURN __attribute__ ((__noreturn__)) # define OCTAVE_UNUSED __attribute__ ((__unused__)) # define HAVE_OCTAVE_DEPRECATED_ATTR 1 # define HAVE_OCTAVE_NORETURN_ATTR 1 # define HAVE_OCTAVE_UNUSED_ATTR 1 #else # define OCTAVE_DEPRECATED(msg) # define OCTAVE_NORETURN # define OCTAVE_UNUSED /* # undef HAVE_OCTAVE_DEPRECATED_ATTR */ /* # undef HAVE_OCTAVE_NORETURN_ATTR */ /* # undef HAVE_OCTAVE_UNUSED_ATTR */ #endif #if defined (_MSC_VER) # define OCTAVE_API __declspec(dllimport) # define OCTINTERP_API __declspec(dllimport) #else # define OCTAVE_API # define OCTINTERP_API #endif #include <stdint.h> EOF octave_idx_type="`sed -n 's/#define OCTAVE_IDX_TYPE \([_a-zA-Z][_a-zA-Z0-9]*\)/\1/p' $config_h_file`" if test -z "$octave_idx_type"; then echo "mk-octave-config-h.sh: failed to find OCTAVE_IDX_TYPE in $config_h_file" 1>&2 exit 1 fi cat << EOF typedef $octave_idx_type octave_idx_type; EOF if grep "#define OCTAVE_ENABLE_FLOAT_TRUNCATE 1" $config_h_file > /dev/null; then echo "#define OCTAVE_FLOAT_TRUNCATE volatile" else echo "#define OCTAVE_FLOAT_TRUNCATE" fi grep "#\(undef\|define\) OCTAVE_ENABLE_64" $config_h_file grep "#\(undef\|define\) OCTAVE_ENABLE_ATOMIC_REFCOUNT" $config_h_file grep "#\(undef\|define\) OCTAVE_ENABLE_BOUNDS_CHECK" $config_h_file grep "#\(undef\|define\) OCTAVE_ENABLE_OPENMP" $config_h_file if grep "#undef HAVE_DEV_T" $config_h_file > /dev/null; then cat << EOF typedef short dev_t; EOF else cat << EOF /* typedef short dev_t; */ EOF fi if grep "#undef HAVE_INO_T" $config_h_file > /dev/null; then cat << EOF typedef unsigned long ino_t; EOF else cat << EOF /* typedef unsigned long ino_t; */ EOF fi have_roundl=no if grep "#define HAVE_ROUNDL" $config_h_file > /dev/null; then have_roundl=yes fi sizeof_long_double="`sed -n 's/#define SIZEOF_LONG_DOUBLE \([0-9]*\)/\1/p' $config_h_file`" if test -z "$sizeof_long_double"; then echo "mk-octave-config-h.sh: failed to find SIZEOF_LONG_DOUBLE in $config_h_file" 1>&2 exit 1 fi if test $sizeof_long_double -ge 10 && test $have_roundl = yes; then echo "#define OCTAVE_INT_USE_LONG_DOUBLE 1" if test $sizeof_long_double -lt 16; then cat << EOF #if (defined (__i386__) || defined (__x86_64__)) && defined (__GNUC__) # define OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED 1 #endif EOF else cat << EOF /* #undef OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED */ EOF fi else cat << EOF /* #undef OCTAVE_INT_USE_LONG_DOUBLE */ /* #undef OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED */ EOF fi cat << EOF #endif EOF