Mercurial > octave
diff build-aux/mk-octave-config-h.sh @ 30580:fdc30b576333
eliminate code duplication in oct-conf-post.in.h and octave-config.h
* oct-conf-post-private.in.h, oct-conf-post-public.in.h: New files,
split form oct-conf-post.in.h.
* Makefile.am (libgnu/libgnu.la): Depend on oct-conf-post-public.h and
oct-conf-post-private.h instead of oct-conf-post.h.
(BUILT_SOURCES): Update.
(nodist_octinclude_HEADERS): Add oct-conf-post-public.h to the list.
* build-aux/module.mk (GEN_CONFIG_INC): Replace oct-conf-post.h with
oct-conf-post-private.h and oct-conf-post-public.h.
* configure.ac: Replace code using oct-conf-post.h with equivalent
actions for oct-conf-post-private.h and oct-conf-post-public.h.
* mk-octave-config-h.sh: Instead of generating code that is also
duplicated in oct-conf-post.h, include the file oct-conf-post-public.h
that is also included in Octave's config.h file.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 31 Dec 2021 09:28:05 -0500 |
parents | 796f54d4ddbf |
children | 3e395f6fc03a |
line wrap: on
line diff
--- a/build-aux/mk-octave-config-h.sh Fri Sep 24 16:01:39 2021 -0500 +++ b/build-aux/mk-octave-config-h.sh Fri Dec 31 09:28:05 2021 -0500 @@ -100,208 +100,22 @@ #define octave_octave_config_h 1 #if ! defined (OCTAVE_AUTOCONFIG_H_INCLUDED) - -# if defined (__cplusplus) -# include <cinttypes> -# else -# include <inttypes.h> -# endif - -# define OCTAVE_NAMESPACE_BEGIN namespace octave { -# define OCTAVE_NAMESPACE_END } - -# if defined (__GNUC__) -# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) -# define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__ ("[" #ver "]: " msg))) -# else -# define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__)) -# endif -# 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(ver, 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 (__MINGW32__) - /* MinGW requires special handling due to different format specifiers - * on different platforms. The macro __MINGW_PRINTF_FORMAT maps to - * either gnu_printf or ms_printf depending on where we are compiling - * to avoid warnings on format specifiers that are legal. - * See: https://bugzilla.mozilla.org/show_bug.cgi?id=1331349 */ -# if defined (__cplusplus) -# include <cstdio> -# else -# include <stdio.h> -# endif - -# define OCTAVE_FORMAT_PRINTF(stringIndex, firstToCheck) \ - __attribute__ ((format (__MINGW_PRINTF_FORMAT, stringIndex, firstToCheck))) - -# define HAVE_OCTAVE_FORMAT_PRINTF_ATTR 1 -# elif defined (__GNUC__) - /* The following attributes are used with gcc and clang compilers. */ -# define OCTAVE_FORMAT_PRINTF(index, first) \ - __attribute__ ((__format__(printf, index, first))) - -# define HAVE_OCTAVE_FORMAT_PRINTF_ATTR 1 -# else -# define OCTAVE_FORMAT_PRINTF(index, first) - -/* # undef HAVE_OCTAVE_FORMAT_PRINTF_ATTR */ -# endif - -# if ! defined (OCTAVE_FALLTHROUGH) -# if defined (__cplusplus) && __cplusplus > 201402L -# define OCTAVE_FALLTHROUGH [[fallthrough]] -# elif defined (__GNUC__) && __GNUC__ < 7 -# define OCTAVE_FALLTHROUGH ((void) 0) -# else -# define OCTAVE_FALLTHROUGH __attribute__ ((__fallthrough__)) -# endif -# endif - -# define OCTAVE_PROVIDE_DEPRECATED_SYMBOLS 1 - -# if defined (__cplusplus) -template <typename T> -static inline void -octave_unused_parameter (const T&) -{ } -# else -# define octave_unused_parameter(param) (void) param; -# endif - -/* Defined to 1 if Octave libraries were built with visibility flags */ EOF -$SED -n 's/#\(\(undef\|define\) OCTAVE_ENABLE_LIB_VISIBILITY_FLAGS.*$\)/# \1/p' $config_h_file - -cat << EOF - -# if defined (OCTAVE_ENABLE_LIB_VISIBILITY_FLAGS) -# if defined (_WIN32) || defined (__CYGWIN__) -# if defined (__GNUC__) - /* GCC */ -# define OCTAVE_EXPORT __attribute__ ((dllexport)) -# define OCTAVE_IMPORT __attribute__ ((dllimport)) -# else - /* MSVC */ -# define OCTAVE_EXPORT __declspec(dllexport) -# define OCTAVE_IMPORT __declspec(dllimport) -# endif -# else - /* All other platforms. */ -# define OCTAVE_EXPORT __attribute__ ((visibility ("default"))) -# define OCTAVE_IMPORT -# endif -# else -# define OCTAVE_EXPORT -# define OCTAVE_IMPORT -# endif - -/* API macro for liboctave */ -#if defined (OCTAVE_DLL) -# define OCTAVE_API OCTAVE_EXPORT -#else -# define OCTAVE_API OCTAVE_IMPORT -#endif - -/* API macro for libinterp */ -#if defined (OCTINTERP_DLL) -# define OCTINTERP_API OCTAVE_EXPORT -#else -# define OCTINTERP_API OCTAVE_IMPORT -#endif - -/* API macro for the Array class in liboctave and liboctinterp */ -#if (defined (OCTAVE_DLL) || defined (OCTINTERP_DLL)) -# define OCTARRAY_API OCTAVE_EXPORT -#else -# define OCTARRAY_API OCTAVE_IMPORT -#endif - -/* API macro for libinterp/graphics */ -#if defined (OCTGRAPHICS_DLL) -# define OCTGRAPHICS_API OCTAVE_EXPORT -#else -# define OCTGRAPHICS_API OCTAVE_IMPORT -#endif - -/* API macro for libgui */ -#if defined (OCTGUI_DLL) -# define OCTGUI_API OCTAVE_EXPORT -#else -# define OCTGUI_API OCTAVE_IMPORT -#endif -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 - -octave_f77_int_type="`$SED -n 's/#define OCTAVE_F77_INT_TYPE \([_a-zA-Z][_a-zA-Z0-9]*\)/\1/p' $config_h_file`" - -if test -z "$octave_f77_int_type"; then - echo "mk-octave-config-h.sh: failed to find OCTAVE_F77_INT_TYPE in $config_h_file" 1>&2 - exit 1 -fi - -cat << EOF - -typedef $octave_idx_type octave_idx_type; -typedef $octave_f77_int_type octave_f77_int_type; - -# define OCTAVE_HAVE_F77_INT_TYPE 1 - - -# if defined (__cplusplus) && ! defined (OCTAVE_THREAD_LOCAL) -# define OCTAVE_THREAD_LOCAL -# endif - -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 - -echo "" - $SED -n 's/#\(\(undef\|define\) OCTAVE_ENABLE_64.*$\)/# \1/p' $config_h_file $SED -n 's/#\(\(undef\|define\) OCTAVE_ENABLE_BOUNDS_CHECK.*$\)/# \1/p' $config_h_file +$SED -n 's/#\(\(undef\|define\) OCTAVE_ENABLE_FLOAT_TRUNCATE.*$\)/# \1/p' $config_h_file +$SED -n 's/#\(\(undef\|define\) OCTAVE_ENABLE_LIB_VISIBILITY_FLAGS.*$\)/# \1/p' $config_h_file $SED -n 's/#\(\(undef\|define\) OCTAVE_ENABLE_OPENMP.*$\)/# \1/p' $config_h_file +$SED -n 's/#\(\(undef\|define\) OCTAVE_F77_INT_TYPE.*$\)/# \1/p' $config_h_file $SED -n 's/#\(\(undef\|define\) OCTAVE_HAVE_LONG_LONG_INT.*$\)/# \1/p' $config_h_file +$SED -n 's/#\(\(undef\|define\) OCTAVE_HAVE_OVERLOAD_CHAR_INT8_TYPES.*$\)/# \1/p' $config_h_file +$SED -n 's/#\(\(undef\|define\) OCTAVE_HAVE_STD_PMR_POLYMORPHIC_ALLOCATOR.*$\)/# \1/p' $config_h_file $SED -n 's/#\(\(undef\|define\) OCTAVE_HAVE_UNSIGNED_LONG_LONG_INT.*$\)/# \1/p' $config_h_file -$SED -n 's/#\(\(undef\|define\) OCTAVE_HAVE_STD_PMR_POLYMORPHIC_ALLOCATOR.*$\)/# \1/p' $config_h_file -$SED -n 's/#\(\(undef\|define\) OCTAVE_HAVE_OVERLOAD_CHAR_INT8_TYPES.*$\)/# \1/p' $config_h_file +$SED -n 's/#\(\(undef\|define\) OCTAVE_IDX_TYPE.*$\)/# \1/p' $config_h_file $SED -n 's/#\(\(undef\|define\) OCTAVE_SIZEOF_F77_INT_TYPE.*$\)/# \1/p' $config_h_file $SED -n 's/#\(\(undef\|define\) OCTAVE_SIZEOF_IDX_TYPE.*$\)/# \1/p' $config_h_file $SED -n 's/#\(\(undef\|define\) OCTAVE_SIZEOF_INT.*$\)/# \1/p' $config_h_file - -cat << EOF - -# if defined (OCTAVE_ENABLE_64) -# define OCTAVE_IDX_TYPE_FORMAT PRId64 -# else -# define OCTAVE_IDX_TYPE_FORMAT PRId32 -# endif - -EOF - $SED -n 's/#\(\(undef\|define\) gid_t.*$\)/# \1/p' $config_h_file $SED -n 's/#\(\(undef\|define\) uid_t.*$\)/# \1/p' $config_h_file $SED -n 's/#\(\(undef\|define\) nlink_t.*$\)/# \1/p' $config_h_file @@ -370,6 +184,14 @@ cat << EOF +/* Enable inline functions or typedefs that provide access to + symbols that have been moved to the octave namespace so that + users of Octave may continue to access symbols using the + deprecated names. */ +# define OCTAVE_PROVIDE_DEPRECATED_SYMBOLS 1 + +# include "oct-conf-post-public.h" + #endif #endif