diff options
author | Zeranoe <zeranoe@gmail.com> | 2021-02-22 07:18:30 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-22 13:18:30 +0100 |
commit | a9bf8e47514537c1ce9ab149c811249b8f9e6951 (patch) | |
tree | 44ec0949075c4e5755196b44dc2121ce46a130af | |
parent | 7bb5934c95ed420d5dbf4e7baf2796cdccf8062f (diff) | |
download | libgphoto2-a9bf8e47514537c1ce9ab149c811249b8f9e6951.tar.gz |
Remove stdint.h shim (#625)
stdint.h has wide adoption at this point, so it should be safe to use.
35 files changed, 39 insertions, 1523 deletions
diff --git a/.gitignore b/.gitignore index ce7e26ca5..477281ae1 100644 --- a/.gitignore +++ b/.gitignore @@ -97,7 +97,6 @@ libgphoto2_port/po/stamp-po libgphoto2_port/stamp-h1 libgphoto2_port/test/test-gp-port libgphoto2_port/test/test-port-list -libgphoto2/_stdint.h libtool Makefile Makefile.in diff --git a/HACKING.md b/HACKING.md index 86a80fb79..e53383e05 100644 --- a/HACKING.md +++ b/HACKING.md @@ -268,7 +268,7 @@ for more details. * A char can be signed or unsigned. Use `signed char` or `unsigned char`, or `int8_t` or `uint8_t` from - `_stdint.h`, to be sure to get the type you want when it is + `stdint.h`, to be sure to get the type you want when it is important. @@ -280,16 +280,16 @@ for more details. * An `int` can be almost any width. Don't assume that it's 32 or 16 bits or any other value. Instead, - if you need a variable of a certain size, include the gphoto2 header - file `_stdint.h` (or `gphoto2-endian.h`) and use the C99-style - fixed-width types declared therein. If you don't really care about - the size of a variable (e.g. as the index variable in a small for - loop), you can still use an `int` as it's often the most efficient - type for each processor. It's usually the case that a char is 8 - bits, `int` is at least 16 bits, and a long is at least 32 bits. - Never assume that `int` or `long` (or `char`, for that matter) have a - specific size, or that they will overflow at a particular point. - Use a size-specific type (e.g. `uint32_t`) if necessary. + if you need a variable of a certain size, include the header file + `stdint.h` (or `gphoto2-endian.h`) and use the C99-style fixed-width + types declared therein. If you don't really care about the size of a + variable (e.g. as the index variable in a small for loop), you can + still use an `int` as it's often the most efficient type for each + processor. It's usually the case that a char is 8 bits, `int` is at + least 16 bits, and a long is at least 32 bits. Never assume that + `int` or `long` (or `char`, for that matter) have a specific size, or + that they will overflow at a particular point. Use a size-specific + type (e.g. `uint32_t`) if necessary. * The sequence of bytes received from a camera isn't necessarily the @@ -338,8 +338,7 @@ for more details. the installed base of C compilers to allow unrestricted use, but this will change as time goes by. In the meantime, use `autoconf` to detect if the feature is available at run-time and act - appropriately (for an extreme example, see how configure handles the - C99 header file `stdint.h` or inline keyword). + appropriately. Although one-line comments starting with `//` have been available in most compilers for several years, they were only officially added to diff --git a/camlibs/ax203/ax203.c b/camlibs/ax203/ax203.c index db696110d..8c232c8a7 100644 --- a/camlibs/ax203/ax203.c +++ b/camlibs/ax203/ax203.c @@ -22,7 +22,7 @@ #include <stdio.h> #include <string.h> #include <errno.h> -#include <_stdint.h> +#include <stdint.h> #include <stdlib.h> #include <time.h> #include <fcntl.h> diff --git a/camlibs/ax203/ax203_decode_yuv.c b/camlibs/ax203/ax203_decode_yuv.c index e07fb874b..3e347f4cb 100644 --- a/camlibs/ax203/ax203_decode_yuv.c +++ b/camlibs/ax203/ax203_decode_yuv.c @@ -22,7 +22,7 @@ #ifdef STANDALONE_MAIN #include <stdio.h> -#include <_stdint.h> +#include <stdint.h> #include <errno.h> #include <stdlib.h> #include <string.h> diff --git a/camlibs/ax203/ax203_decode_yuv_delta.c b/camlibs/ax203/ax203_decode_yuv_delta.c index ed6833044..1006b54f4 100644 --- a/camlibs/ax203/ax203_decode_yuv_delta.c +++ b/camlibs/ax203/ax203_decode_yuv_delta.c @@ -22,7 +22,7 @@ #ifdef STANDALONE_MAIN #include <stdio.h> -#include <_stdint.h> +#include <stdint.h> #include <errno.h> #include <stdlib.h> #include <string.h> diff --git a/camlibs/ax203/jidctflt.c b/camlibs/ax203/jidctflt.c index 572abe244..f04046f28 100644 --- a/camlibs/ax203/jidctflt.c +++ b/camlibs/ax203/jidctflt.c @@ -72,7 +72,7 @@ */ #include "config.h" -#include <_stdint.h> +#include <stdint.h> #include "tinyjpeg-internal.h" #define FAST_FLOAT float diff --git a/camlibs/ax203/tinyjpeg.c b/camlibs/ax203/tinyjpeg.c index 205c77950..91c91f572 100644 --- a/camlibs/ax203/tinyjpeg.c +++ b/camlibs/ax203/tinyjpeg.c @@ -44,7 +44,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> -#include <_stdint.h> +#include <stdint.h> #include <errno.h> #include "tinyjpeg.h" diff --git a/camlibs/dimera/dimera3500.c b/camlibs/dimera/dimera3500.c index 70e6cca72..98f6efcc4 100644 --- a/camlibs/dimera/dimera3500.c +++ b/camlibs/dimera/dimera3500.c @@ -29,7 +29,7 @@ #include <stdlib.h> #include <stdio.h> #include <string.h> -#include <_stdint.h> +#include <stdint.h> #include <gphoto2/gphoto2.h> diff --git a/camlibs/dimera/mesalib.h b/camlibs/dimera/mesalib.h index 8ce007672..b707beddd 100644 --- a/camlibs/dimera/mesalib.h +++ b/camlibs/dimera/mesalib.h @@ -12,7 +12,7 @@ #ifndef MESALIB_H #define MESALIB_H -#include <_stdint.h> +#include <stdint.h> #include <gphoto2/gphoto2-port.h> #define CHECK(result) {int res = (result); if (res < 0) return (res);} diff --git a/camlibs/gsmart300/gsmart300.h b/camlibs/gsmart300/gsmart300.h index e7bcb1d57..1e58f35f4 100644 --- a/camlibs/gsmart300/gsmart300.h +++ b/camlibs/gsmart300/gsmart300.h @@ -27,7 +27,7 @@ #ifndef __GSMART300_H__ #define __GSMART300_H__ -#include <_stdint.h> +#include <stdint.h> #include <gphoto2/gphoto2-camera.h> #define FLASH_PAGE_SIZE_300 0x200 diff --git a/camlibs/jl2005c/jl2005bcd_decompress.c b/camlibs/jl2005c/jl2005bcd_decompress.c index 005bf8e52..c98ca4b14 100644 --- a/camlibs/jl2005c/jl2005bcd_decompress.c +++ b/camlibs/jl2005c/jl2005bcd_decompress.c @@ -27,7 +27,7 @@ #define _DEFAULT_SOURCE #include <stdio.h> -#include <_stdint.h> +#include <stdint.h> #include <stdlib.h> #include <string.h> diff --git a/camlibs/panasonic/dc.h b/camlibs/panasonic/dc.h index a921a10c5..b17944224 100644 --- a/camlibs/panasonic/dc.h +++ b/camlibs/panasonic/dc.h @@ -22,7 +22,7 @@ #include <stdio.h> #include <errno.h> -#include <_stdint.h> +#include <stdint.h> #include <gphoto2/gphoto2.h> #define DSC1 1 /* DC1000 */ diff --git a/camlibs/pccam300/pccam300.c b/camlibs/pccam300/pccam300.c index 25ad889ca..8ecf508c5 100644 --- a/camlibs/pccam300/pccam300.c +++ b/camlibs/pccam300/pccam300.c @@ -27,7 +27,7 @@ #include <stdio.h> #include <stdlib.h> -#include <_stdint.h> +#include <stdint.h> #include "pccam300.h" diff --git a/camlibs/ptp2/olympus-wrap.c b/camlibs/ptp2/olympus-wrap.c index 71cada5c4..4ae8d8ab3 100644 --- a/camlibs/ptp2/olympus-wrap.c +++ b/camlibs/ptp2/olympus-wrap.c @@ -30,7 +30,7 @@ #include <string.h> #include <stdlib.h> #include <stdio.h> -#include <_stdint.h> +#include <stdint.h> #include <libxml/parser.h> diff --git a/camlibs/sierra/epson-desc.c b/camlibs/sierra/epson-desc.c index f8cb8180b..981783d66 100644 --- a/camlibs/sierra/epson-desc.c +++ b/camlibs/sierra/epson-desc.c @@ -22,7 +22,7 @@ #include "config.h" #include <stdio.h> -#include <_stdint.h> +#include <stdint.h> #include <sys/types.h> #include <stdlib.h> #include <string.h> diff --git a/camlibs/sierra/nikon-desc.c b/camlibs/sierra/nikon-desc.c index 9b55d1681..0311b74df 100644 --- a/camlibs/sierra/nikon-desc.c +++ b/camlibs/sierra/nikon-desc.c @@ -18,7 +18,7 @@ * Boston, MA 02110-1301 USA */ #include <stdio.h> -#include <_stdint.h> +#include <stdint.h> #include <sys/types.h> #include <stdlib.h> #include <string.h> diff --git a/camlibs/sierra/olympus-desc.c b/camlibs/sierra/olympus-desc.c index 5a128fc42..41abe540e 100644 --- a/camlibs/sierra/olympus-desc.c +++ b/camlibs/sierra/olympus-desc.c @@ -23,7 +23,7 @@ * Boston, MA 02110-1301 USA */ #include <stdio.h> -#include <_stdint.h> +#include <stdint.h> #include <sys/types.h> #include <stdlib.h> #include <string.h> diff --git a/camlibs/sierra/sierra-desc.c b/camlibs/sierra/sierra-desc.c index 8918912d7..41740f9d0 100644 --- a/camlibs/sierra/sierra-desc.c +++ b/camlibs/sierra/sierra-desc.c @@ -20,7 +20,7 @@ #include "config.h" #include <stdlib.h> -#include <_stdint.h> +#include <stdint.h> #include <stdio.h> #include <string.h> diff --git a/camlibs/sierra/sierra-usbwrap.c b/camlibs/sierra/sierra-usbwrap.c index cf8fbb595..e89e5fd90 100644 --- a/camlibs/sierra/sierra-usbwrap.c +++ b/camlibs/sierra/sierra-usbwrap.c @@ -50,7 +50,7 @@ #include <string.h> #include <stdlib.h> -#include <_stdint.h> +#include <stdint.h> #include <gphoto2/gphoto2-result.h> #include <gphoto2/gphoto2-port-log.h> diff --git a/camlibs/sierra/sierra.c b/camlibs/sierra/sierra.c index 71857d1f8..f1fd0478b 100644 --- a/camlibs/sierra/sierra.c +++ b/camlibs/sierra/sierra.c @@ -23,7 +23,7 @@ #include "sierra.h" #include <stdlib.h> -#include <_stdint.h> +#include <stdint.h> #include <stdio.h> #include <string.h> #include <time.h> diff --git a/camlibs/soundvision/soundvision.h b/camlibs/soundvision/soundvision.h index 17230abce..e533cc814 100644 --- a/camlibs/soundvision/soundvision.h +++ b/camlibs/soundvision/soundvision.h @@ -17,7 +17,7 @@ #ifndef soundvision_H #define soundvision_H -#include <_stdint.h> +#include <stdint.h> #define SOUNDVISION_START_TRANSACTION 0x0001 diff --git a/camlibs/spca50x/spca50x.h b/camlibs/spca50x/spca50x.h index 71a218b3b..072759178 100644 --- a/camlibs/spca50x/spca50x.h +++ b/camlibs/spca50x/spca50x.h @@ -26,7 +26,7 @@ #ifndef __SPCA50X_H__ #define __SPCA50X_H__ -#include <_stdint.h> +#include <stdint.h> #include <gphoto2/gphoto2-camera.h> #define SPCA50X_FAT_PAGE_SIZE 0x100 diff --git a/camlibs/st2205/st2205.c b/camlibs/st2205/st2205.c index d4498adfa..8579fde9e 100644 --- a/camlibs/st2205/st2205.c +++ b/camlibs/st2205/st2205.c @@ -25,7 +25,7 @@ #include <stdio.h> #include <string.h> #include <errno.h> -#include <_stdint.h> +#include <stdint.h> #include <stdlib.h> #include <time.h> #include <fcntl.h> diff --git a/camlibs/topfield/tf_bytes.h b/camlibs/topfield/tf_bytes.h index 4e8241db6..26f128d63 100644 --- a/camlibs/topfield/tf_bytes.h +++ b/camlibs/topfield/tf_bytes.h @@ -24,7 +24,7 @@ #ifndef _TF_BYTES_H #define _TF_BYTES_H 1 -#include <_stdint.h> +#include <stdint.h> unsigned short get_u16(void *addr); unsigned short get_u16_raw(void *addr); diff --git a/camlibs/toshiba/pdrm11/library.c b/camlibs/toshiba/pdrm11/library.c index 1b7964315..8c4bb9624 100644 --- a/camlibs/toshiba/pdrm11/library.c +++ b/camlibs/toshiba/pdrm11/library.c @@ -21,7 +21,7 @@ #include "config.h" #include "pdrm11.h" -#include <_stdint.h> +#include <stdint.h> #include <string.h> #include <gphoto2/gphoto2.h> diff --git a/camlibs/toshiba/pdrm11/pdrm11.h b/camlibs/toshiba/pdrm11/pdrm11.h index 5cc2534ef..aa8105d8c 100644 --- a/camlibs/toshiba/pdrm11/pdrm11.h +++ b/camlibs/toshiba/pdrm11/pdrm11.h @@ -23,7 +23,7 @@ #include "config.h" #include <gphoto2/gphoto2.h> -#include <_stdint.h> +#include <stdint.h> /* once in a while a gp_port command will fail and then work on a * second try this tries to run the command twice and returns the diff --git a/camlibs/tp6801/tp6801.c b/camlibs/tp6801/tp6801.c index 6cc095ac5..b76974bcc 100644 --- a/camlibs/tp6801/tp6801.c +++ b/camlibs/tp6801/tp6801.c @@ -24,7 +24,7 @@ #include <stdio.h> #include <string.h> #include <errno.h> -#include <_stdint.h> +#include <stdint.h> #include <stdlib.h> #include <time.h> #include <fcntl.h> diff --git a/configure.ac b/configure.ac index 39aa6a20b..98de65d3a 100644 --- a/configure.ac +++ b/configure.ac @@ -426,20 +426,6 @@ AC_CHECK_MEMBERS([struct statvfs.f_blocks],,,[ #endif ]) - -dnl --------------------------------------------------------------------------- -dnl Checks for integer types. -dnl --------------------------------------------------------------------------- -dnl -dnl FIXME: Test AC_TYPE_UINT32_T & Co and check whether that could work for us. -dnl Potential problem: The required autoconf version. -dnl Note: We are already using AC_TYPE_SIZE_T somewhere else in here. - - -dnl Create a stdint.h-like file containing size-specific integer definitions -dnl that will always be available -AX_NEED_STDINT_H([libgphoto2/_stdint.h]) - dnl Create a header file containing NetBSD-style byte swapping macros AC_NEED_BYTEORDER_H([libgphoto2/gphoto2-endian.h]) diff --git a/gphoto-m4/Makefile-files b/gphoto-m4/Makefile-files index 03c9d78e8..c43c8b82e 100644 --- a/gphoto-m4/Makefile-files +++ b/gphoto-m4/Makefile-files @@ -24,7 +24,6 @@ EXTRA_DIST += %reldir%/gp-manual-pstoimg.m4 EXTRA_DIST += %reldir%/gp-manual-w3m.m4 EXTRA_DIST += %reldir%/gp-packaging.m4 EXTRA_DIST += %reldir%/gp-references.m4 -EXTRA_DIST += %reldir%/gp-stdint.m4 EXTRA_DIST += %reldir%/gp-subpackage.m4 EXTRA_DIST += %reldir%/gp-udev.m4 EXTRA_DIST += %reldir%/gp-va-copy.m4 diff --git a/gphoto-m4/gp-byteorder.m4 b/gphoto-m4/gp-byteorder.m4 index bf90bc707..2f2ce0be4 100644 --- a/gphoto-m4/gp-byteorder.m4 +++ b/gphoto-m4/gp-byteorder.m4 @@ -349,7 +349,7 @@ fi cat >> "$1" << EOF /* Define the C99 standard length-specific integer types */ -#include <_stdint.h> +#include <stdint.h> EOF diff --git a/gphoto-m4/gp-stdint.m4 b/gphoto-m4/gp-stdint.m4 deleted file mode 100644 index 82ef1dae2..000000000 --- a/gphoto-m4/gp-stdint.m4 +++ /dev/null @@ -1,732 +0,0 @@ -dnl AC_NEED_STDINT_H ( HEADER-TO-GENERATE ) -dnl Originally written 2001 by Dan Fandrich <dan@coneharvesters.com> -dnl My contribution is hereby placed into the public domain. -dnl No warranty is expressed or implied. -dnl -dnl Look for a header file that defines size-specific integer types like the -dnl ones recommended to be in stdint.h in the C99 standard (e.g. uint32_t). -dnl This is a dumbed-down version of the macro of the same name in the file -dnl ac_need_stdint_h.m4 which is part of the ac-archive, available at -dnl <URL:http://ac-archive.sourceforge.net/> (also, another macro -dnl AC_CREATE_STDINT_H by the same author). This version is not as smart, -dnl but works on older autoconf versions and has a different license. - -dnl AX_CHECK_DEFINED_TYPE ( TYPE, FILE, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND ) -dnl This is similar to _AC_CHECK_TYPE_NEW (a.k.a. new syntax version of -dnl AC_CHECK_TYPE) in autoconf 2.50 but works on older versions -AC_DEFUN([AX_CHECK_DEFINED_TYPE], -[AC_MSG_CHECKING([for $1 in $2]) -AC_EGREP_CPP(changequote(<<,>>)dnl -<<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl -changequote([,]), [#include <$2>], -ac_cv_type_$1=yes, ac_cv_type_$1=no)dnl -AC_MSG_RESULT($ac_cv_type_$1) -if test $ac_cv_type_$1 = yes; then - $3 -else - $4 -fi -]) - -dnl Look for a header file that defines size-specific integer types -AC_DEFUN([AX_NEED_STDINT_H], -[ -ac_dir=`AS_DIRNAME(["$1"])` -if test "$ac_dir" != "$1" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && AS_MKDIR_P(["$ac_dir"]) -fi - -AX_CHECK_DEFINED_TYPE(uint8_t, -stdint.h, -[ -cat > "$1" <<EOF -/* This file is generated automatically by configure */ -#include <stdint.h> -EOF], -[AX_CHECK_DEFINED_TYPE(uint8_t, -inttypes.h, -[cat > "$1" <<EOF -/* This file is generated automatically by configure */ -#include <inttypes.h> -EOF], -[AX_CHECK_DEFINED_TYPE(uint8_t, -sys/types.h, -[cat > "$1" <<EOF -/* This file is generated automatically by configure */ -#include <sys/types.h> -EOF], -[AX_CHECK_DEFINED_TYPE(u_int8_t, -sys/types.h, -[cat > "$1" <<EOF -/* This file is generated automatically by configure */ -#ifndef __STDINT_H -#define __STDINT_H -#include <sys/types.h> -typedef u_int8_t uint8_t; -typedef u_int16_t uint16_t; -typedef u_int32_t uint32_t; -EOF - -AX_CHECK_DEFINED_TYPE(u_int64_t, -sys/types.h, -[cat >> "$1" <<EOF -typedef u_int64_t uint64_t; -#endif /*!__STDINT_H*/ -EOF], -[cat >> "$1" <<EOF -/* 64-bit types are not available on this system */ -/* typedef u_int64_t uint64_t; */ -#endif /*!__STDINT_H*/ -EOF]) - -], -[AC_MSG_WARN([I can't find size-specific integer definitions on this system]) -if test -e "$1" ; then - rm -f "$1" -fi -])])])])dnl -]) - -AC_DEFUN([AX_CHECK_DATA_MODEL],[ - AC_CHECK_SIZEOF(char) - AC_CHECK_SIZEOF(short) - AC_CHECK_SIZEOF(int) - AC_CHECK_SIZEOF(long) - AC_CHECK_SIZEOF(void*) - ac_cv_char_data_model="" - ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_char" - ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_short" - ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_int" - ac_cv_long_data_model="" - ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_int" - ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_long" - ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_voidp" - AC_MSG_CHECKING([data model]) - case "$ac_cv_char_data_model/$ac_cv_long_data_model" in - 122/242) ac_cv_data_model="IP16" ; n="standard 16bit machine" ;; - 122/244) ac_cv_data_model="LP32" ; n="standard 32bit machine" ;; - 122/*) ac_cv_data_model="i16" ; n="unusual int16 model" ;; - 124/444) ac_cv_data_model="ILP32" ; n="standard 32bit unixish" ;; - 124/488) ac_cv_data_model="LP64" ; n="standard 64bit unixish" ;; - 124/448) ac_cv_data_model="LLP64" ; n="unusual 64bit unixish" ;; - 124/*) ac_cv_data_model="i32" ; n="unusual int32 model" ;; - 128/888) ac_cv_data_model="ILP64" ; n="unusual 64bit numeric" ;; - 128/*) ac_cv_data_model="i64" ; n="unusual int64 model" ;; - 222/*2) ac_cv_data_model="DSP16" ; n="strict 16bit dsptype" ;; - 333/*3) ac_cv_data_model="DSP24" ; n="strict 24bit dsptype" ;; - 444/*4) ac_cv_data_model="DSP32" ; n="strict 32bit dsptype" ;; - 666/*6) ac_cv_data_model="DSP48" ; n="strict 48bit dsptype" ;; - 888/*8) ac_cv_data_model="DSP64" ; n="strict 64bit dsptype" ;; - 222/*|333/*|444/*|666/*|888/*) : - ac_cv_data_model="iDSP" ; n="unusual dsptype" ;; - *) ac_cv_data_model="none" ; n="very unusual model" ;; - esac - AC_MSG_RESULT([$ac_cv_data_model ($ac_cv_long_data_model, $n)]) -]) - -dnl AX_CHECK_HEADER_STDINT_X([HEADERLIST][,ACTION-IF]) -AC_DEFUN([AX_CHECK_HEADER_STDINT_X],[ -AC_CACHE_CHECK([for stdint uintptr_t], [ac_cv_header_stdint_x],[ - ac_cv_header_stdint_x="" # the 1997 typedefs (inttypes.h) - AC_MSG_RESULT([(..)]) - for i in m4_ifval([$1],[$1],[stdint.h inttypes.h sys/inttypes.h]) ; do - unset ac_cv_type_uintptr_t - unset ac_cv_type_uint64_t - AC_CHECK_TYPE(uintptr_t,[ac_cv_header_stdint_x=$i],continue,[#include <$i>]) - AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>]) - m4_ifvaln([$1],[$1]) break - done - AC_MSG_CHECKING([for stdint uintptr_t]) - ]) -]) - -AC_DEFUN([AX_CHECK_HEADER_STDINT_O],[ -AC_CACHE_CHECK([for stdint uint32_t], [ac_cv_header_stdint_o],[ - ac_cv_header_stdint_o="" # the 1995 typedefs (sys/inttypes.h) - AC_MSG_RESULT([(..)]) - for i in m4_ifval([$1],[$1],[inttypes.h sys/inttypes.h stdint.h]) ; do - unset ac_cv_type_uint32_t - unset ac_cv_type_uint64_t - AC_CHECK_TYPE(uint32_t,[ac_cv_header_stdint_o=$i],continue,[#include <$i>]) - AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>]) - m4_ifvaln([$1],[$1]) break - break; - done - AC_MSG_CHECKING([for stdint uint32_t]) - ]) -]) - -AC_DEFUN([AX_CHECK_HEADER_STDINT_U],[ -AC_CACHE_CHECK([for stdint u_int32_t], [ac_cv_header_stdint_u],[ - ac_cv_header_stdint_u="" # the BSD typedefs (sys/types.h) - AC_MSG_RESULT([(..)]) - for i in m4_ifval([$1],[$1],[sys/types.h inttypes.h sys/inttypes.h]) ; do - unset ac_cv_type_u_int32_t - unset ac_cv_type_u_int64_t - AC_CHECK_TYPE(u_int32_t,[ac_cv_header_stdint_u=$i],continue,[#include <$i>]) - AC_CHECK_TYPE(u_int64_t,[and64="/u_int64_t"],[and64=""],[#include<$i>]) - m4_ifvaln([$1],[$1]) break - break; - done - AC_MSG_CHECKING([for stdint u_int32_t]) - ]) -]) - -AC_DEFUN([AX_CREATE_STDINT_H], -[# ------ AX CREATE STDINT H ------------------------------------- -AC_MSG_CHECKING([for stdint types]) -ac_stdint_h=`echo ifelse($1, , _stdint.h, $1)` -# try to shortcircuit - if the default include path of the compiler -# can find a "stdint.h" header then we assume that all compilers can. -AC_CACHE_VAL([ac_cv_header_stdint_t],[ -old_CXXFLAGS="$CXXFLAGS" ; CXXFLAGS="" -old_CPPFLAGS="$CPPFLAGS" ; CPPFLAGS="" -old_CFLAGS="$CFLAGS" ; CFLAGS="" -AC_TRY_COMPILE([#include <stdint.h>],[int_least32_t v = 0;], -[ac_cv_stdint_result="(assuming C99 compatible system)" - ac_cv_header_stdint_t="stdint.h"; ], -[ac_cv_header_stdint_t=""]) -CXXFLAGS="$old_CXXFLAGS" -CPPFLAGS="$old_CPPFLAGS" -CFLAGS="$old_CFLAGS" ]) - -v="... $ac_cv_header_stdint_h" -if test "$ac_stdint_h" = "stdint.h" ; then - AC_MSG_RESULT([(are you sure you want them in ./stdint.h?)]) -elif test "$ac_stdint_h" = "inttypes.h" ; then - AC_MSG_RESULT([(are you sure you want them in ./inttypes.h?)]) -elif test "_$ac_cv_header_stdint_t" = "_" ; then - AC_MSG_RESULT([(putting them into $ac_stdint_h)$v]) -else - ac_cv_header_stdint="$ac_cv_header_stdint_t" - AC_MSG_RESULT([$ac_cv_header_stdint (shortcircuit)]) -fi - -if test "_$ac_cv_header_stdint_t" = "_" ; then # can not shortcircuit.. - -dnl .....intro message done, now do a few system checks..... -dnl btw, all old CHECK_TYPE macros do automatically "DEFINE" a type, -dnl therefore we use the autoconf implementation detail CHECK_TYPE_NEW -dnl instead that is triggered with 3 or more arguments (see types.m4) - -inttype_headers=`echo $2 | sed -e 's/,/ /g'` - -ac_cv_stdint_result="(no helpful system typedefs seen)" -AX_CHECK_HEADER_STDINT_X(dnl - stdint.h inttypes.h sys/inttypes.h $inttype_headers, - ac_cv_stdint_result="(seen uintptr_t$and64 in $i)") - -if test "_$ac_cv_header_stdint_x" = "_" ; then -AX_CHECK_HEADER_STDINT_O(dnl, - inttypes.h sys/inttypes.h stdint.h $inttype_headers, - ac_cv_stdint_result="(seen uint32_t$and64 in $i)") -fi - -if test "_$ac_cv_header_stdint_x" = "_" ; then -if test "_$ac_cv_header_stdint_o" = "_" ; then -AX_CHECK_HEADER_STDINT_U(dnl, - sys/types.h inttypes.h sys/inttypes.h $inttype_headers, - ac_cv_stdint_result="(seen u_int32_t$and64 in $i)") -fi fi - -dnl if there was no good C99 header file, do some typedef checks... -if test "_$ac_cv_header_stdint_x" = "_" ; then - AC_MSG_CHECKING([for stdint datatype model]) - AC_MSG_RESULT([(..)]) - AX_CHECK_DATA_MODEL -fi - -if test "_$ac_cv_header_stdint_x" != "_" ; then - ac_cv_header_stdint="$ac_cv_header_stdint_x" -elif test "_$ac_cv_header_stdint_o" != "_" ; then - ac_cv_header_stdint="$ac_cv_header_stdint_o" -elif test "_$ac_cv_header_stdint_u" != "_" ; then - ac_cv_header_stdint="$ac_cv_header_stdint_u" -else - ac_cv_header_stdint="stddef.h" -fi - -AC_MSG_CHECKING([for extra inttypes in chosen header]) -AC_MSG_RESULT([($ac_cv_header_stdint)]) -dnl see if int_least and int_fast types are present in _this_ header. -unset ac_cv_type_int_least32_t -unset ac_cv_type_int_fast32_t -AC_CHECK_TYPE(int_least32_t,,,[#include <$ac_cv_header_stdint>]) -AC_CHECK_TYPE(int_fast32_t,,,[#include<$ac_cv_header_stdint>]) -AC_CHECK_TYPE(intmax_t,,,[#include <$ac_cv_header_stdint>]) - -fi # shortcircut to system "stdint.h" -# ------------------ PREPARE VARIABLES ------------------------------ -if test "$GCC" = "yes" ; then -ac_cv_stdint_message="using gnu compiler "`$CC --version | head -1` -else -ac_cv_stdint_message="using $CC" -fi - -AC_MSG_RESULT([make use of $ac_cv_header_stdint in $ac_stdint_h dnl -$ac_cv_stdint_result]) - -dnl ----------------------------------------------------------------- -# ----------------- DONE inttypes.h checks START header ------------- -AC_CONFIG_COMMANDS([$ac_stdint_h],[ -AC_MSG_NOTICE(creating $ac_stdint_h : $_ac_stdint_h) -ac_stdint=$tmp/_stdint.h - -echo "#ifndef" $_ac_stdint_h >$ac_stdint -echo "#define" $_ac_stdint_h "1" >>$ac_stdint -echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint -echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint -echo "/* generated $ac_cv_stdint_message */" >>$ac_stdint -if test "_$ac_cv_header_stdint_t" != "_" ; then -echo "#define _STDINT_HAVE_STDINT_H" "1" >>$ac_stdint -echo "#include <stdint.h>" >>$ac_stdint -echo "#endif" >>$ac_stdint -echo "#endif" >>$ac_stdint -else - -cat >>$ac_stdint <<STDINT_EOF - -/* ................... shortcircuit part ........................... */ - -#if defined HAVE_STDINT_H || defined _STDINT_HAVE_STDINT_H -#include <stdint.h> -#else -#include <stddef.h> - -/* .................... configured part ............................ */ - -STDINT_EOF - -echo "/* whether we have a C99 compatible stdint header file */" >>$ac_stdint -if test "_$ac_cv_header_stdint_x" != "_" ; then - ac_header="$ac_cv_header_stdint_x" - echo "#define _STDINT_HEADER_INTPTR" '"'"$ac_header"'"' >>$ac_stdint -else - echo "/* #undef _STDINT_HEADER_INTPTR */" >>$ac_stdint -fi - -echo "/* whether we have a C96 compatible inttypes header file */" >>$ac_stdint -if test "_$ac_cv_header_stdint_o" != "_" ; then - ac_header="$ac_cv_header_stdint_o" - echo "#define _STDINT_HEADER_UINT32" '"'"$ac_header"'"' >>$ac_stdint -else - echo "/* #undef _STDINT_HEADER_UINT32 */" >>$ac_stdint -fi - -echo "/* whether we have a BSD compatible inet types header */" >>$ac_stdint -if test "_$ac_cv_header_stdint_u" != "_" ; then - ac_header="$ac_cv_header_stdint_u" - echo "#define _STDINT_HEADER_U_INT32" '"'"$ac_header"'"' >>$ac_stdint -else - echo "/* #undef _STDINT_HEADER_U_INT32 */" >>$ac_stdint -fi - -echo "" >>$ac_stdint - -if test "_$ac_header" != "_" ; then if test "$ac_header" != "stddef.h" ; then - echo "#include <$ac_header>" >>$ac_stdint - echo "" >>$ac_stdint -fi fi - -echo "/* which 64bit typedef has been found */" >>$ac_stdint -if test "$ac_cv_type_uint64_t" = "yes" ; then -echo "#define _STDINT_HAVE_UINT64_T" "1" >>$ac_stdint -else -echo "/* #undef _STDINT_HAVE_UINT64_T */" >>$ac_stdint -fi -if test "$ac_cv_type_u_int64_t" = "yes" ; then -echo "#define _STDINT_HAVE_U_INT64_T" "1" >>$ac_stdint -else -echo "/* #undef _STDINT_HAVE_U_INT64_T */" >>$ac_stdint -fi -echo "" >>$ac_stdint - -echo "/* which type model has been detected */" >>$ac_stdint -if test "_$ac_cv_char_data_model" != "_" ; then -echo "#define _STDINT_CHAR_MODEL" "$ac_cv_char_data_model" >>$ac_stdint -echo "#define _STDINT_LONG_MODEL" "$ac_cv_long_data_model" >>$ac_stdint -else -echo "/* #undef _STDINT_CHAR_MODEL // skipped */" >>$ac_stdint -echo "/* #undef _STDINT_LONG_MODEL // skipped */" >>$ac_stdint -fi -echo "" >>$ac_stdint - -echo "/* whether int_least types were detected */" >>$ac_stdint -if test "$ac_cv_type_int_least32_t" = "yes"; then -echo "#define _STDINT_HAVE_INT_LEAST32_T" "1" >>$ac_stdint -else -echo "/* #undef _STDINT_HAVE_INT_LEAST32_T */" >>$ac_stdint -fi -echo "/* whether int_fast types were detected */" >>$ac_stdint -if test "$ac_cv_type_int_fast32_t" = "yes"; then -echo "#define _STDINT_HAVE_INT_FAST32_T" "1" >>$ac_stdint -else -echo "/* #undef _STDINT_HAVE_INT_FAST32_T */" >>$ac_stdint -fi -echo "/* whether intmax_t type was detected */" >>$ac_stdint -if test "$ac_cv_type_intmax_t" = "yes"; then -echo "#define _STDINT_HAVE_INTMAX_T" "1" >>$ac_stdint -else -echo "/* #undef _STDINT_HAVE_INTMAX_T */" >>$ac_stdint -fi -echo "" >>$ac_stdint - - cat >>$ac_stdint <<STDINT_EOF -/* .................... detections part ............................ */ - -/* whether we need to define bitspecific types from compiler base types */ -#ifndef _STDINT_HEADER_INTPTR -#ifndef _STDINT_HEADER_UINT32 -#ifndef _STDINT_HEADER_U_INT32 -#define _STDINT_NEED_INT_MODEL_T -#else -#define _STDINT_HAVE_U_INT_TYPES -#endif -#endif -#endif - -#ifdef _STDINT_HAVE_U_INT_TYPES -#undef _STDINT_NEED_INT_MODEL_T -#endif - -#ifdef _STDINT_CHAR_MODEL -#if _STDINT_CHAR_MODEL+0 == 122 || _STDINT_CHAR_MODEL+0 == 124 -#ifndef _STDINT_BYTE_MODEL -#define _STDINT_BYTE_MODEL 12 -#endif -#endif -#endif - -#ifndef _STDINT_HAVE_INT_LEAST32_T -#define _STDINT_NEED_INT_LEAST_T -#endif - -#ifndef _STDINT_HAVE_INT_FAST32_T -#define _STDINT_NEED_INT_FAST_T -#endif - -#ifndef _STDINT_HEADER_INTPTR -#define _STDINT_NEED_INTPTR_T -#ifndef _STDINT_HAVE_INTMAX_T -#define _STDINT_NEED_INTMAX_T -#endif -#endif - - -/* .................... definition part ............................ */ - -/* some system headers have good uint64_t */ -#ifndef _HAVE_UINT64_T -#if defined _STDINT_HAVE_UINT64_T || defined HAVE_UINT64_T -#define _HAVE_UINT64_T -#elif defined _STDINT_HAVE_U_INT64_T || defined HAVE_U_INT64_T -#define _HAVE_UINT64_T -typedef u_int64_t uint64_t; -#endif -#endif - -#ifndef _HAVE_UINT64_T -/* .. here are some common heuristics using compiler runtime specifics */ -#if defined __STDC_VERSION__ && defined __STDC_VERSION__ >= 199901L -#define _HAVE_UINT64_T -#define _HAVE_LONGLONG_UINT64_T -typedef long long int64_t; -typedef unsigned long long uint64_t; - -#elif !defined __STRICT_ANSI__ -#if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__ -#define _HAVE_UINT64_T -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; - -#elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__ -/* note: all ELF-systems seem to have loff-support which needs 64-bit */ -#if !defined _NO_LONGLONG -#define _HAVE_UINT64_T -#define _HAVE_LONGLONG_UINT64_T -typedef long long int64_t; -typedef unsigned long long uint64_t; -#endif - -#elif defined __alpha || (defined __mips && defined _ABIN32) -#if !defined _NO_LONGLONG -typedef long int64_t; -typedef unsigned long uint64_t; -#endif - /* compiler/cpu type to define int64_t */ -#endif -#endif -#endif - -#if defined _STDINT_HAVE_U_INT_TYPES -/* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */ -typedef u_int8_t uint8_t; -typedef u_int16_t uint16_t; -typedef u_int32_t uint32_t; - -/* glibc compatibility */ -#ifndef __int8_t_defined -#define __int8_t_defined -#endif -#endif - -#ifdef _STDINT_NEED_INT_MODEL_T -/* we must guess all the basic types. Apart from byte-addressable system, */ -/* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */ -/* (btw, those nibble-addressable systems are way off, or so we assume) */ - -dnl /* have a look at "64bit and data size neutrality" at */ -dnl /* http://unix.org/version2/whatsnew/login_64bit.html */ -dnl /* (the shorthand "ILP" types always have a "P" part) */ - -#if defined _STDINT_BYTE_MODEL -#if _STDINT_LONG_MODEL+0 == 242 -/* 2:4:2 = IP16 = a normal 16-bit system */ -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned long uint32_t; -#ifndef __int8_t_defined -#define __int8_t_defined -typedef char int8_t; -typedef short int16_t; -typedef long int32_t; -#endif -#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444 -/* 2:4:4 = LP32 = a 32-bit system derived from a 16-bit */ -/* 4:4:4 = ILP32 = a normal 32-bit system */ -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#ifndef __int8_t_defined -#define __int8_t_defined -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -#endif -#elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488 -/* 4:8:4 = IP32 = a 32-bit system prepared for 64-bit */ -/* 4:8:8 = LP64 = a normal 64-bit system */ -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#ifndef __int8_t_defined -#define __int8_t_defined -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -#endif -/* this system has a "long" of 64bit */ -#ifndef _HAVE_UINT64_T -#define _HAVE_UINT64_T -typedef unsigned long uint64_t; -typedef long int64_t; -#endif -#elif _STDINT_LONG_MODEL+0 == 448 -/* LLP64 a 64-bit system derived from a 32-bit system */ -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#ifndef __int8_t_defined -#define __int8_t_defined -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -#endif -/* assuming the system has a "long long" */ -#ifndef _HAVE_UINT64_T -#define _HAVE_UINT64_T -#define _HAVE_LONGLONG_UINT64_T -typedef unsigned long long uint64_t; -typedef long long int64_t; -#endif -#else -#define _STDINT_NO_INT32_T -#endif -#else -#define _STDINT_NO_INT8_T -#define _STDINT_NO_INT32_T -#endif -#endif - -/* - * quote from SunOS-5.8 sys/inttypes.h: - * Use at your own risk. As of February 1996, the committee is squarely - * behind the fixed sized types; the "least" and "fast" types are still being - * discussed. The probability that the "fast" types may be removed before - * the standard is finalized is high enough that they are not currently - * implemented. - */ - -#if defined _STDINT_NEED_INT_LEAST_T -typedef int8_t int_least8_t; -typedef int16_t int_least16_t; -typedef int32_t int_least32_t; -#ifdef _HAVE_UINT64_T -typedef int64_t int_least64_t; -#endif - -typedef uint8_t uint_least8_t; -typedef uint16_t uint_least16_t; -typedef uint32_t uint_least32_t; -#ifdef _HAVE_UINT64_T -typedef uint64_t uint_least64_t; -#endif - /* least types */ -#endif - -#if defined _STDINT_NEED_INT_FAST_T -typedef int8_t int_fast8_t; -typedef int int_fast16_t; -typedef int32_t int_fast32_t; -#ifdef _HAVE_UINT64_T -typedef int64_t int_fast64_t; -#endif - -typedef uint8_t uint_fast8_t; -typedef unsigned uint_fast16_t; -typedef uint32_t uint_fast32_t; -#ifdef _HAVE_UINT64_T -typedef uint64_t uint_fast64_t; -#endif - /* fast types */ -#endif - -#ifdef _STDINT_NEED_INTMAX_T -#ifdef _HAVE_UINT64_T -typedef int64_t intmax_t; -typedef uint64_t uintmax_t; -#else -typedef long intmax_t; -typedef unsigned long uintmax_t; -#endif -#endif - -#ifdef _STDINT_NEED_INTPTR_T -#ifndef __intptr_t_defined -#define __intptr_t_defined -/* we encourage using "long" to store pointer values, never use "int" ! */ -#if _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484 -typedef unsinged int uintptr_t; -typedef int intptr_t; -#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444 -typedef unsigned long uintptr_t; -typedef long intptr_t; -#elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T -typedef uint64_t uintptr_t; -typedef int64_t intptr_t; -#else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */ -typedef unsigned long uintptr_t; -typedef long intptr_t; -#endif -#endif -#endif - -/* The ISO C99 standard specifies that in C++ implementations these - should only be defined if explicitly requested. */ -#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS -#ifndef UINT32_C - -/* Signed. */ -# define INT8_C(c) c -# define INT16_C(c) c -# define INT32_C(c) c -# ifdef _HAVE_LONGLONG_UINT64_T -# define INT64_C(c) c ## L -# else -# define INT64_C(c) c ## LL -# endif - -/* Unsigned. */ -# define UINT8_C(c) c ## U -# define UINT16_C(c) c ## U -# define UINT32_C(c) c ## U -# ifdef _HAVE_LONGLONG_UINT64_T -# define UINT64_C(c) c ## UL -# else -# define UINT64_C(c) c ## ULL -# endif - -/* Maximal type. */ -# ifdef _HAVE_LONGLONG_UINT64_T -# define INTMAX_C(c) c ## L -# define UINTMAX_C(c) c ## UL -# else -# define INTMAX_C(c) c ## LL -# define UINTMAX_C(c) c ## ULL -# endif - - /* literalnumbers */ -#endif -#endif - -/* These limits are merily those of a two complement byte-oriented system */ - -/* Minimum of signed integral types. */ -# define INT8_MIN (-128) -# define INT16_MIN (-32767-1) -# define INT32_MIN (-2147483647-1) -# define INT64_MIN (-__INT64_C(9223372036854775807)-1) -/* Maximum of signed integral types. */ -# define INT8_MAX (127) -# define INT16_MAX (32767) -# define INT32_MAX (2147483647) -# define INT64_MAX (__INT64_C(9223372036854775807)) - -/* Maximum of unsigned integral types. */ -# define UINT8_MAX (255) -# define UINT16_MAX (65535) -# define UINT32_MAX (4294967295U) -# define UINT64_MAX (__UINT64_C(18446744073709551615)) - -/* Minimum of signed integral types having a minimum size. */ -# define INT_LEAST8_MIN INT8_MIN -# define INT_LEAST16_MIN INT16_MIN -# define INT_LEAST32_MIN INT32_MIN -# define INT_LEAST64_MIN INT64_MIN -/* Maximum of signed integral types having a minimum size. */ -# define INT_LEAST8_MAX INT8_MAX -# define INT_LEAST16_MAX INT16_MAX -# define INT_LEAST32_MAX INT32_MAX -# define INT_LEAST64_MAX INT64_MAX - -/* Maximum of unsigned integral types having a minimum size. */ -# define UINT_LEAST8_MAX UINT8_MAX -# define UINT_LEAST16_MAX UINT16_MAX -# define UINT_LEAST32_MAX UINT32_MAX -# define UINT_LEAST64_MAX UINT64_MAX - - /* shortcircuit*/ -#endif - /* once */ -#endif -#endif -STDINT_EOF -fi - if cmp -s $ac_stdint_h $ac_stdint 2>/dev/null; then - AC_MSG_NOTICE([$ac_stdint_h is unchanged]) - else - ac_dir=`AS_DIRNAME(["$ac_stdint_h"])` - AS_MKDIR_P(["$ac_dir"]) - rm -f $ac_stdint_h - mv $ac_stdint $ac_stdint_h - fi -],[# variables for create stdint.h replacement -PACKAGE="$PACKAGE" -VERSION="$VERSION" -ac_stdint_h="$ac_stdint_h" -_ac_stdint_h=AS_TR_CPP(_$PACKAGE-$ac_stdint_h) -ac_cv_stdint_message="$ac_cv_stdint_message" -ac_cv_header_stdint_t="$ac_cv_header_stdint_t" -ac_cv_header_stdint_x="$ac_cv_header_stdint_x" -ac_cv_header_stdint_o="$ac_cv_header_stdint_o" -ac_cv_header_stdint_u="$ac_cv_header_stdint_u" -ac_cv_type_uint64_t="$ac_cv_type_uint64_t" -ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t" -ac_cv_char_data_model="$ac_cv_char_data_model" -ac_cv_long_data_model="$ac_cv_long_data_model" -ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t" -ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t" -ac_cv_type_intmax_t="$ac_cv_type_intmax_t" -]) -]) diff --git a/libgphoto2/Makefile.am b/libgphoto2/Makefile.am index 705413f88..090ff7cab 100644 --- a/libgphoto2/Makefile.am +++ b/libgphoto2/Makefile.am @@ -55,5 +55,3 @@ libgphoto2_la_DEPENDENCIES = \ $(srcdir)/libgphoto2.sym EXTRA_DIST = gphoto2-library.c libgphoto2.sym - -DISTCLEANFILES = _stdint.h diff --git a/libgphoto2_port/gphoto-m4/Makefile-files b/libgphoto2_port/gphoto-m4/Makefile-files index bc7ce8eb4..3f338ab72 100644 --- a/libgphoto2_port/gphoto-m4/Makefile-files +++ b/libgphoto2_port/gphoto-m4/Makefile-files @@ -25,7 +25,6 @@ EXTRA_DIST += %reldir%/gp-manual-w3m.m4 EXTRA_DIST += %reldir%/gp-packaging.m4 EXTRA_DIST += %reldir%/gp-pkg-config.m4 EXTRA_DIST += %reldir%/gp-references.m4 -EXTRA_DIST += %reldir%/gp-stdint.m4 EXTRA_DIST += %reldir%/gp-subpackage.m4 EXTRA_DIST += %reldir%/gp-udev.m4 EXTRA_DIST += %reldir%/gp-va-copy.m4 diff --git a/libgphoto2_port/gphoto-m4/gp-byteorder.m4 b/libgphoto2_port/gphoto-m4/gp-byteorder.m4 index cd4ed0d39..d8eeabda3 100644 --- a/libgphoto2_port/gphoto-m4/gp-byteorder.m4 +++ b/libgphoto2_port/gphoto-m4/gp-byteorder.m4 @@ -345,7 +345,7 @@ fi cat >> "$1" << EOF /* Define the C99 standard length-specific integer types */ -#include <_stdint.h> +#include <stdint.h> EOF diff --git a/libgphoto2_port/gphoto-m4/gp-stdint.m4 b/libgphoto2_port/gphoto-m4/gp-stdint.m4 deleted file mode 100644 index 82ef1dae2..000000000 --- a/libgphoto2_port/gphoto-m4/gp-stdint.m4 +++ /dev/null @@ -1,732 +0,0 @@ -dnl AC_NEED_STDINT_H ( HEADER-TO-GENERATE ) -dnl Originally written 2001 by Dan Fandrich <dan@coneharvesters.com> -dnl My contribution is hereby placed into the public domain. -dnl No warranty is expressed or implied. -dnl -dnl Look for a header file that defines size-specific integer types like the -dnl ones recommended to be in stdint.h in the C99 standard (e.g. uint32_t). -dnl This is a dumbed-down version of the macro of the same name in the file -dnl ac_need_stdint_h.m4 which is part of the ac-archive, available at -dnl <URL:http://ac-archive.sourceforge.net/> (also, another macro -dnl AC_CREATE_STDINT_H by the same author). This version is not as smart, -dnl but works on older autoconf versions and has a different license. - -dnl AX_CHECK_DEFINED_TYPE ( TYPE, FILE, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND ) -dnl This is similar to _AC_CHECK_TYPE_NEW (a.k.a. new syntax version of -dnl AC_CHECK_TYPE) in autoconf 2.50 but works on older versions -AC_DEFUN([AX_CHECK_DEFINED_TYPE], -[AC_MSG_CHECKING([for $1 in $2]) -AC_EGREP_CPP(changequote(<<,>>)dnl -<<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl -changequote([,]), [#include <$2>], -ac_cv_type_$1=yes, ac_cv_type_$1=no)dnl -AC_MSG_RESULT($ac_cv_type_$1) -if test $ac_cv_type_$1 = yes; then - $3 -else - $4 -fi -]) - -dnl Look for a header file that defines size-specific integer types -AC_DEFUN([AX_NEED_STDINT_H], -[ -ac_dir=`AS_DIRNAME(["$1"])` -if test "$ac_dir" != "$1" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && AS_MKDIR_P(["$ac_dir"]) -fi - -AX_CHECK_DEFINED_TYPE(uint8_t, -stdint.h, -[ -cat > "$1" <<EOF -/* This file is generated automatically by configure */ -#include <stdint.h> -EOF], -[AX_CHECK_DEFINED_TYPE(uint8_t, -inttypes.h, -[cat > "$1" <<EOF -/* This file is generated automatically by configure */ -#include <inttypes.h> -EOF], -[AX_CHECK_DEFINED_TYPE(uint8_t, -sys/types.h, -[cat > "$1" <<EOF -/* This file is generated automatically by configure */ -#include <sys/types.h> -EOF], -[AX_CHECK_DEFINED_TYPE(u_int8_t, -sys/types.h, -[cat > "$1" <<EOF -/* This file is generated automatically by configure */ -#ifndef __STDINT_H -#define __STDINT_H -#include <sys/types.h> -typedef u_int8_t uint8_t; -typedef u_int16_t uint16_t; -typedef u_int32_t uint32_t; -EOF - -AX_CHECK_DEFINED_TYPE(u_int64_t, -sys/types.h, -[cat >> "$1" <<EOF -typedef u_int64_t uint64_t; -#endif /*!__STDINT_H*/ -EOF], -[cat >> "$1" <<EOF -/* 64-bit types are not available on this system */ -/* typedef u_int64_t uint64_t; */ -#endif /*!__STDINT_H*/ -EOF]) - -], -[AC_MSG_WARN([I can't find size-specific integer definitions on this system]) -if test -e "$1" ; then - rm -f "$1" -fi -])])])])dnl -]) - -AC_DEFUN([AX_CHECK_DATA_MODEL],[ - AC_CHECK_SIZEOF(char) - AC_CHECK_SIZEOF(short) - AC_CHECK_SIZEOF(int) - AC_CHECK_SIZEOF(long) - AC_CHECK_SIZEOF(void*) - ac_cv_char_data_model="" - ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_char" - ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_short" - ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_int" - ac_cv_long_data_model="" - ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_int" - ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_long" - ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_voidp" - AC_MSG_CHECKING([data model]) - case "$ac_cv_char_data_model/$ac_cv_long_data_model" in - 122/242) ac_cv_data_model="IP16" ; n="standard 16bit machine" ;; - 122/244) ac_cv_data_model="LP32" ; n="standard 32bit machine" ;; - 122/*) ac_cv_data_model="i16" ; n="unusual int16 model" ;; - 124/444) ac_cv_data_model="ILP32" ; n="standard 32bit unixish" ;; - 124/488) ac_cv_data_model="LP64" ; n="standard 64bit unixish" ;; - 124/448) ac_cv_data_model="LLP64" ; n="unusual 64bit unixish" ;; - 124/*) ac_cv_data_model="i32" ; n="unusual int32 model" ;; - 128/888) ac_cv_data_model="ILP64" ; n="unusual 64bit numeric" ;; - 128/*) ac_cv_data_model="i64" ; n="unusual int64 model" ;; - 222/*2) ac_cv_data_model="DSP16" ; n="strict 16bit dsptype" ;; - 333/*3) ac_cv_data_model="DSP24" ; n="strict 24bit dsptype" ;; - 444/*4) ac_cv_data_model="DSP32" ; n="strict 32bit dsptype" ;; - 666/*6) ac_cv_data_model="DSP48" ; n="strict 48bit dsptype" ;; - 888/*8) ac_cv_data_model="DSP64" ; n="strict 64bit dsptype" ;; - 222/*|333/*|444/*|666/*|888/*) : - ac_cv_data_model="iDSP" ; n="unusual dsptype" ;; - *) ac_cv_data_model="none" ; n="very unusual model" ;; - esac - AC_MSG_RESULT([$ac_cv_data_model ($ac_cv_long_data_model, $n)]) -]) - -dnl AX_CHECK_HEADER_STDINT_X([HEADERLIST][,ACTION-IF]) -AC_DEFUN([AX_CHECK_HEADER_STDINT_X],[ -AC_CACHE_CHECK([for stdint uintptr_t], [ac_cv_header_stdint_x],[ - ac_cv_header_stdint_x="" # the 1997 typedefs (inttypes.h) - AC_MSG_RESULT([(..)]) - for i in m4_ifval([$1],[$1],[stdint.h inttypes.h sys/inttypes.h]) ; do - unset ac_cv_type_uintptr_t - unset ac_cv_type_uint64_t - AC_CHECK_TYPE(uintptr_t,[ac_cv_header_stdint_x=$i],continue,[#include <$i>]) - AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>]) - m4_ifvaln([$1],[$1]) break - done - AC_MSG_CHECKING([for stdint uintptr_t]) - ]) -]) - -AC_DEFUN([AX_CHECK_HEADER_STDINT_O],[ -AC_CACHE_CHECK([for stdint uint32_t], [ac_cv_header_stdint_o],[ - ac_cv_header_stdint_o="" # the 1995 typedefs (sys/inttypes.h) - AC_MSG_RESULT([(..)]) - for i in m4_ifval([$1],[$1],[inttypes.h sys/inttypes.h stdint.h]) ; do - unset ac_cv_type_uint32_t - unset ac_cv_type_uint64_t - AC_CHECK_TYPE(uint32_t,[ac_cv_header_stdint_o=$i],continue,[#include <$i>]) - AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>]) - m4_ifvaln([$1],[$1]) break - break; - done - AC_MSG_CHECKING([for stdint uint32_t]) - ]) -]) - -AC_DEFUN([AX_CHECK_HEADER_STDINT_U],[ -AC_CACHE_CHECK([for stdint u_int32_t], [ac_cv_header_stdint_u],[ - ac_cv_header_stdint_u="" # the BSD typedefs (sys/types.h) - AC_MSG_RESULT([(..)]) - for i in m4_ifval([$1],[$1],[sys/types.h inttypes.h sys/inttypes.h]) ; do - unset ac_cv_type_u_int32_t - unset ac_cv_type_u_int64_t - AC_CHECK_TYPE(u_int32_t,[ac_cv_header_stdint_u=$i],continue,[#include <$i>]) - AC_CHECK_TYPE(u_int64_t,[and64="/u_int64_t"],[and64=""],[#include<$i>]) - m4_ifvaln([$1],[$1]) break - break; - done - AC_MSG_CHECKING([for stdint u_int32_t]) - ]) -]) - -AC_DEFUN([AX_CREATE_STDINT_H], -[# ------ AX CREATE STDINT H ------------------------------------- -AC_MSG_CHECKING([for stdint types]) -ac_stdint_h=`echo ifelse($1, , _stdint.h, $1)` -# try to shortcircuit - if the default include path of the compiler -# can find a "stdint.h" header then we assume that all compilers can. -AC_CACHE_VAL([ac_cv_header_stdint_t],[ -old_CXXFLAGS="$CXXFLAGS" ; CXXFLAGS="" -old_CPPFLAGS="$CPPFLAGS" ; CPPFLAGS="" -old_CFLAGS="$CFLAGS" ; CFLAGS="" -AC_TRY_COMPILE([#include <stdint.h>],[int_least32_t v = 0;], -[ac_cv_stdint_result="(assuming C99 compatible system)" - ac_cv_header_stdint_t="stdint.h"; ], -[ac_cv_header_stdint_t=""]) -CXXFLAGS="$old_CXXFLAGS" -CPPFLAGS="$old_CPPFLAGS" -CFLAGS="$old_CFLAGS" ]) - -v="... $ac_cv_header_stdint_h" -if test "$ac_stdint_h" = "stdint.h" ; then - AC_MSG_RESULT([(are you sure you want them in ./stdint.h?)]) -elif test "$ac_stdint_h" = "inttypes.h" ; then - AC_MSG_RESULT([(are you sure you want them in ./inttypes.h?)]) -elif test "_$ac_cv_header_stdint_t" = "_" ; then - AC_MSG_RESULT([(putting them into $ac_stdint_h)$v]) -else - ac_cv_header_stdint="$ac_cv_header_stdint_t" - AC_MSG_RESULT([$ac_cv_header_stdint (shortcircuit)]) -fi - -if test "_$ac_cv_header_stdint_t" = "_" ; then # can not shortcircuit.. - -dnl .....intro message done, now do a few system checks..... -dnl btw, all old CHECK_TYPE macros do automatically "DEFINE" a type, -dnl therefore we use the autoconf implementation detail CHECK_TYPE_NEW -dnl instead that is triggered with 3 or more arguments (see types.m4) - -inttype_headers=`echo $2 | sed -e 's/,/ /g'` - -ac_cv_stdint_result="(no helpful system typedefs seen)" -AX_CHECK_HEADER_STDINT_X(dnl - stdint.h inttypes.h sys/inttypes.h $inttype_headers, - ac_cv_stdint_result="(seen uintptr_t$and64 in $i)") - -if test "_$ac_cv_header_stdint_x" = "_" ; then -AX_CHECK_HEADER_STDINT_O(dnl, - inttypes.h sys/inttypes.h stdint.h $inttype_headers, - ac_cv_stdint_result="(seen uint32_t$and64 in $i)") -fi - -if test "_$ac_cv_header_stdint_x" = "_" ; then -if test "_$ac_cv_header_stdint_o" = "_" ; then -AX_CHECK_HEADER_STDINT_U(dnl, - sys/types.h inttypes.h sys/inttypes.h $inttype_headers, - ac_cv_stdint_result="(seen u_int32_t$and64 in $i)") -fi fi - -dnl if there was no good C99 header file, do some typedef checks... -if test "_$ac_cv_header_stdint_x" = "_" ; then - AC_MSG_CHECKING([for stdint datatype model]) - AC_MSG_RESULT([(..)]) - AX_CHECK_DATA_MODEL -fi - -if test "_$ac_cv_header_stdint_x" != "_" ; then - ac_cv_header_stdint="$ac_cv_header_stdint_x" -elif test "_$ac_cv_header_stdint_o" != "_" ; then - ac_cv_header_stdint="$ac_cv_header_stdint_o" -elif test "_$ac_cv_header_stdint_u" != "_" ; then - ac_cv_header_stdint="$ac_cv_header_stdint_u" -else - ac_cv_header_stdint="stddef.h" -fi - -AC_MSG_CHECKING([for extra inttypes in chosen header]) -AC_MSG_RESULT([($ac_cv_header_stdint)]) -dnl see if int_least and int_fast types are present in _this_ header. -unset ac_cv_type_int_least32_t -unset ac_cv_type_int_fast32_t -AC_CHECK_TYPE(int_least32_t,,,[#include <$ac_cv_header_stdint>]) -AC_CHECK_TYPE(int_fast32_t,,,[#include<$ac_cv_header_stdint>]) -AC_CHECK_TYPE(intmax_t,,,[#include <$ac_cv_header_stdint>]) - -fi # shortcircut to system "stdint.h" -# ------------------ PREPARE VARIABLES ------------------------------ -if test "$GCC" = "yes" ; then -ac_cv_stdint_message="using gnu compiler "`$CC --version | head -1` -else -ac_cv_stdint_message="using $CC" -fi - -AC_MSG_RESULT([make use of $ac_cv_header_stdint in $ac_stdint_h dnl -$ac_cv_stdint_result]) - -dnl ----------------------------------------------------------------- -# ----------------- DONE inttypes.h checks START header ------------- -AC_CONFIG_COMMANDS([$ac_stdint_h],[ -AC_MSG_NOTICE(creating $ac_stdint_h : $_ac_stdint_h) -ac_stdint=$tmp/_stdint.h - -echo "#ifndef" $_ac_stdint_h >$ac_stdint -echo "#define" $_ac_stdint_h "1" >>$ac_stdint -echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint -echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint -echo "/* generated $ac_cv_stdint_message */" >>$ac_stdint -if test "_$ac_cv_header_stdint_t" != "_" ; then -echo "#define _STDINT_HAVE_STDINT_H" "1" >>$ac_stdint -echo "#include <stdint.h>" >>$ac_stdint -echo "#endif" >>$ac_stdint -echo "#endif" >>$ac_stdint -else - -cat >>$ac_stdint <<STDINT_EOF - -/* ................... shortcircuit part ........................... */ - -#if defined HAVE_STDINT_H || defined _STDINT_HAVE_STDINT_H -#include <stdint.h> -#else -#include <stddef.h> - -/* .................... configured part ............................ */ - -STDINT_EOF - -echo "/* whether we have a C99 compatible stdint header file */" >>$ac_stdint -if test "_$ac_cv_header_stdint_x" != "_" ; then - ac_header="$ac_cv_header_stdint_x" - echo "#define _STDINT_HEADER_INTPTR" '"'"$ac_header"'"' >>$ac_stdint -else - echo "/* #undef _STDINT_HEADER_INTPTR */" >>$ac_stdint -fi - -echo "/* whether we have a C96 compatible inttypes header file */" >>$ac_stdint -if test "_$ac_cv_header_stdint_o" != "_" ; then - ac_header="$ac_cv_header_stdint_o" - echo "#define _STDINT_HEADER_UINT32" '"'"$ac_header"'"' >>$ac_stdint -else - echo "/* #undef _STDINT_HEADER_UINT32 */" >>$ac_stdint -fi - -echo "/* whether we have a BSD compatible inet types header */" >>$ac_stdint -if test "_$ac_cv_header_stdint_u" != "_" ; then - ac_header="$ac_cv_header_stdint_u" - echo "#define _STDINT_HEADER_U_INT32" '"'"$ac_header"'"' >>$ac_stdint -else - echo "/* #undef _STDINT_HEADER_U_INT32 */" >>$ac_stdint -fi - -echo "" >>$ac_stdint - -if test "_$ac_header" != "_" ; then if test "$ac_header" != "stddef.h" ; then - echo "#include <$ac_header>" >>$ac_stdint - echo "" >>$ac_stdint -fi fi - -echo "/* which 64bit typedef has been found */" >>$ac_stdint -if test "$ac_cv_type_uint64_t" = "yes" ; then -echo "#define _STDINT_HAVE_UINT64_T" "1" >>$ac_stdint -else -echo "/* #undef _STDINT_HAVE_UINT64_T */" >>$ac_stdint -fi -if test "$ac_cv_type_u_int64_t" = "yes" ; then -echo "#define _STDINT_HAVE_U_INT64_T" "1" >>$ac_stdint -else -echo "/* #undef _STDINT_HAVE_U_INT64_T */" >>$ac_stdint -fi -echo "" >>$ac_stdint - -echo "/* which type model has been detected */" >>$ac_stdint -if test "_$ac_cv_char_data_model" != "_" ; then -echo "#define _STDINT_CHAR_MODEL" "$ac_cv_char_data_model" >>$ac_stdint -echo "#define _STDINT_LONG_MODEL" "$ac_cv_long_data_model" >>$ac_stdint -else -echo "/* #undef _STDINT_CHAR_MODEL // skipped */" >>$ac_stdint -echo "/* #undef _STDINT_LONG_MODEL // skipped */" >>$ac_stdint -fi -echo "" >>$ac_stdint - -echo "/* whether int_least types were detected */" >>$ac_stdint -if test "$ac_cv_type_int_least32_t" = "yes"; then -echo "#define _STDINT_HAVE_INT_LEAST32_T" "1" >>$ac_stdint -else -echo "/* #undef _STDINT_HAVE_INT_LEAST32_T */" >>$ac_stdint -fi -echo "/* whether int_fast types were detected */" >>$ac_stdint -if test "$ac_cv_type_int_fast32_t" = "yes"; then -echo "#define _STDINT_HAVE_INT_FAST32_T" "1" >>$ac_stdint -else -echo "/* #undef _STDINT_HAVE_INT_FAST32_T */" >>$ac_stdint -fi -echo "/* whether intmax_t type was detected */" >>$ac_stdint -if test "$ac_cv_type_intmax_t" = "yes"; then -echo "#define _STDINT_HAVE_INTMAX_T" "1" >>$ac_stdint -else -echo "/* #undef _STDINT_HAVE_INTMAX_T */" >>$ac_stdint -fi -echo "" >>$ac_stdint - - cat >>$ac_stdint <<STDINT_EOF -/* .................... detections part ............................ */ - -/* whether we need to define bitspecific types from compiler base types */ -#ifndef _STDINT_HEADER_INTPTR -#ifndef _STDINT_HEADER_UINT32 -#ifndef _STDINT_HEADER_U_INT32 -#define _STDINT_NEED_INT_MODEL_T -#else -#define _STDINT_HAVE_U_INT_TYPES -#endif -#endif -#endif - -#ifdef _STDINT_HAVE_U_INT_TYPES -#undef _STDINT_NEED_INT_MODEL_T -#endif - -#ifdef _STDINT_CHAR_MODEL -#if _STDINT_CHAR_MODEL+0 == 122 || _STDINT_CHAR_MODEL+0 == 124 -#ifndef _STDINT_BYTE_MODEL -#define _STDINT_BYTE_MODEL 12 -#endif -#endif -#endif - -#ifndef _STDINT_HAVE_INT_LEAST32_T -#define _STDINT_NEED_INT_LEAST_T -#endif - -#ifndef _STDINT_HAVE_INT_FAST32_T -#define _STDINT_NEED_INT_FAST_T -#endif - -#ifndef _STDINT_HEADER_INTPTR -#define _STDINT_NEED_INTPTR_T -#ifndef _STDINT_HAVE_INTMAX_T -#define _STDINT_NEED_INTMAX_T -#endif -#endif - - -/* .................... definition part ............................ */ - -/* some system headers have good uint64_t */ -#ifndef _HAVE_UINT64_T -#if defined _STDINT_HAVE_UINT64_T || defined HAVE_UINT64_T -#define _HAVE_UINT64_T -#elif defined _STDINT_HAVE_U_INT64_T || defined HAVE_U_INT64_T -#define _HAVE_UINT64_T -typedef u_int64_t uint64_t; -#endif -#endif - -#ifndef _HAVE_UINT64_T -/* .. here are some common heuristics using compiler runtime specifics */ -#if defined __STDC_VERSION__ && defined __STDC_VERSION__ >= 199901L -#define _HAVE_UINT64_T -#define _HAVE_LONGLONG_UINT64_T -typedef long long int64_t; -typedef unsigned long long uint64_t; - -#elif !defined __STRICT_ANSI__ -#if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__ -#define _HAVE_UINT64_T -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; - -#elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__ -/* note: all ELF-systems seem to have loff-support which needs 64-bit */ -#if !defined _NO_LONGLONG -#define _HAVE_UINT64_T -#define _HAVE_LONGLONG_UINT64_T -typedef long long int64_t; -typedef unsigned long long uint64_t; -#endif - -#elif defined __alpha || (defined __mips && defined _ABIN32) -#if !defined _NO_LONGLONG -typedef long int64_t; -typedef unsigned long uint64_t; -#endif - /* compiler/cpu type to define int64_t */ -#endif -#endif -#endif - -#if defined _STDINT_HAVE_U_INT_TYPES -/* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */ -typedef u_int8_t uint8_t; -typedef u_int16_t uint16_t; -typedef u_int32_t uint32_t; - -/* glibc compatibility */ -#ifndef __int8_t_defined -#define __int8_t_defined -#endif -#endif - -#ifdef _STDINT_NEED_INT_MODEL_T -/* we must guess all the basic types. Apart from byte-addressable system, */ -/* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */ -/* (btw, those nibble-addressable systems are way off, or so we assume) */ - -dnl /* have a look at "64bit and data size neutrality" at */ -dnl /* http://unix.org/version2/whatsnew/login_64bit.html */ -dnl /* (the shorthand "ILP" types always have a "P" part) */ - -#if defined _STDINT_BYTE_MODEL -#if _STDINT_LONG_MODEL+0 == 242 -/* 2:4:2 = IP16 = a normal 16-bit system */ -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned long uint32_t; -#ifndef __int8_t_defined -#define __int8_t_defined -typedef char int8_t; -typedef short int16_t; -typedef long int32_t; -#endif -#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444 -/* 2:4:4 = LP32 = a 32-bit system derived from a 16-bit */ -/* 4:4:4 = ILP32 = a normal 32-bit system */ -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#ifndef __int8_t_defined -#define __int8_t_defined -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -#endif -#elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488 -/* 4:8:4 = IP32 = a 32-bit system prepared for 64-bit */ -/* 4:8:8 = LP64 = a normal 64-bit system */ -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#ifndef __int8_t_defined -#define __int8_t_defined -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -#endif -/* this system has a "long" of 64bit */ -#ifndef _HAVE_UINT64_T -#define _HAVE_UINT64_T -typedef unsigned long uint64_t; -typedef long int64_t; -#endif -#elif _STDINT_LONG_MODEL+0 == 448 -/* LLP64 a 64-bit system derived from a 32-bit system */ -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#ifndef __int8_t_defined -#define __int8_t_defined -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -#endif -/* assuming the system has a "long long" */ -#ifndef _HAVE_UINT64_T -#define _HAVE_UINT64_T -#define _HAVE_LONGLONG_UINT64_T -typedef unsigned long long uint64_t; -typedef long long int64_t; -#endif -#else -#define _STDINT_NO_INT32_T -#endif -#else -#define _STDINT_NO_INT8_T -#define _STDINT_NO_INT32_T -#endif -#endif - -/* - * quote from SunOS-5.8 sys/inttypes.h: - * Use at your own risk. As of February 1996, the committee is squarely - * behind the fixed sized types; the "least" and "fast" types are still being - * discussed. The probability that the "fast" types may be removed before - * the standard is finalized is high enough that they are not currently - * implemented. - */ - -#if defined _STDINT_NEED_INT_LEAST_T -typedef int8_t int_least8_t; -typedef int16_t int_least16_t; -typedef int32_t int_least32_t; -#ifdef _HAVE_UINT64_T -typedef int64_t int_least64_t; -#endif - -typedef uint8_t uint_least8_t; -typedef uint16_t uint_least16_t; -typedef uint32_t uint_least32_t; -#ifdef _HAVE_UINT64_T -typedef uint64_t uint_least64_t; -#endif - /* least types */ -#endif - -#if defined _STDINT_NEED_INT_FAST_T -typedef int8_t int_fast8_t; -typedef int int_fast16_t; -typedef int32_t int_fast32_t; -#ifdef _HAVE_UINT64_T -typedef int64_t int_fast64_t; -#endif - -typedef uint8_t uint_fast8_t; -typedef unsigned uint_fast16_t; -typedef uint32_t uint_fast32_t; -#ifdef _HAVE_UINT64_T -typedef uint64_t uint_fast64_t; -#endif - /* fast types */ -#endif - -#ifdef _STDINT_NEED_INTMAX_T -#ifdef _HAVE_UINT64_T -typedef int64_t intmax_t; -typedef uint64_t uintmax_t; -#else -typedef long intmax_t; -typedef unsigned long uintmax_t; -#endif -#endif - -#ifdef _STDINT_NEED_INTPTR_T -#ifndef __intptr_t_defined -#define __intptr_t_defined -/* we encourage using "long" to store pointer values, never use "int" ! */ -#if _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484 -typedef unsinged int uintptr_t; -typedef int intptr_t; -#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444 -typedef unsigned long uintptr_t; -typedef long intptr_t; -#elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T -typedef uint64_t uintptr_t; -typedef int64_t intptr_t; -#else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */ -typedef unsigned long uintptr_t; -typedef long intptr_t; -#endif -#endif -#endif - -/* The ISO C99 standard specifies that in C++ implementations these - should only be defined if explicitly requested. */ -#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS -#ifndef UINT32_C - -/* Signed. */ -# define INT8_C(c) c -# define INT16_C(c) c -# define INT32_C(c) c -# ifdef _HAVE_LONGLONG_UINT64_T -# define INT64_C(c) c ## L -# else -# define INT64_C(c) c ## LL -# endif - -/* Unsigned. */ -# define UINT8_C(c) c ## U -# define UINT16_C(c) c ## U -# define UINT32_C(c) c ## U -# ifdef _HAVE_LONGLONG_UINT64_T -# define UINT64_C(c) c ## UL -# else -# define UINT64_C(c) c ## ULL -# endif - -/* Maximal type. */ -# ifdef _HAVE_LONGLONG_UINT64_T -# define INTMAX_C(c) c ## L -# define UINTMAX_C(c) c ## UL -# else -# define INTMAX_C(c) c ## LL -# define UINTMAX_C(c) c ## ULL -# endif - - /* literalnumbers */ -#endif -#endif - -/* These limits are merily those of a two complement byte-oriented system */ - -/* Minimum of signed integral types. */ -# define INT8_MIN (-128) -# define INT16_MIN (-32767-1) -# define INT32_MIN (-2147483647-1) -# define INT64_MIN (-__INT64_C(9223372036854775807)-1) -/* Maximum of signed integral types. */ -# define INT8_MAX (127) -# define INT16_MAX (32767) -# define INT32_MAX (2147483647) -# define INT64_MAX (__INT64_C(9223372036854775807)) - -/* Maximum of unsigned integral types. */ -# define UINT8_MAX (255) -# define UINT16_MAX (65535) -# define UINT32_MAX (4294967295U) -# define UINT64_MAX (__UINT64_C(18446744073709551615)) - -/* Minimum of signed integral types having a minimum size. */ -# define INT_LEAST8_MIN INT8_MIN -# define INT_LEAST16_MIN INT16_MIN -# define INT_LEAST32_MIN INT32_MIN -# define INT_LEAST64_MIN INT64_MIN -/* Maximum of signed integral types having a minimum size. */ -# define INT_LEAST8_MAX INT8_MAX -# define INT_LEAST16_MAX INT16_MAX -# define INT_LEAST32_MAX INT32_MAX -# define INT_LEAST64_MAX INT64_MAX - -/* Maximum of unsigned integral types having a minimum size. */ -# define UINT_LEAST8_MAX UINT8_MAX -# define UINT_LEAST16_MAX UINT16_MAX -# define UINT_LEAST32_MAX UINT32_MAX -# define UINT_LEAST64_MAX UINT64_MAX - - /* shortcircuit*/ -#endif - /* once */ -#endif -#endif -STDINT_EOF -fi - if cmp -s $ac_stdint_h $ac_stdint 2>/dev/null; then - AC_MSG_NOTICE([$ac_stdint_h is unchanged]) - else - ac_dir=`AS_DIRNAME(["$ac_stdint_h"])` - AS_MKDIR_P(["$ac_dir"]) - rm -f $ac_stdint_h - mv $ac_stdint $ac_stdint_h - fi -],[# variables for create stdint.h replacement -PACKAGE="$PACKAGE" -VERSION="$VERSION" -ac_stdint_h="$ac_stdint_h" -_ac_stdint_h=AS_TR_CPP(_$PACKAGE-$ac_stdint_h) -ac_cv_stdint_message="$ac_cv_stdint_message" -ac_cv_header_stdint_t="$ac_cv_header_stdint_t" -ac_cv_header_stdint_x="$ac_cv_header_stdint_x" -ac_cv_header_stdint_o="$ac_cv_header_stdint_o" -ac_cv_header_stdint_u="$ac_cv_header_stdint_u" -ac_cv_type_uint64_t="$ac_cv_type_uint64_t" -ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t" -ac_cv_char_data_model="$ac_cv_char_data_model" -ac_cv_long_data_model="$ac_cv_long_data_model" -ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t" -ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t" -ac_cv_type_intmax_t="$ac_cv_type_intmax_t" -]) -]) |