mirror of
https://github.com/protobuf-c/protobuf-c.git
synced 2024-12-26 21:04:23 +08:00
5b0661f1e8
There are some recent reports of strange build failures that might have been fixed by compiling in C++17 mode, so it might be a good idea to use C++17 in general, and not just when building against very recent protobuf versions. Since it looks like we've lost protobuf < 3.0.0 support, configure.ac can be simplified a bit if we just use C++17 by default.
135 lines
4.0 KiB
Plaintext
135 lines
4.0 KiB
Plaintext
AC_PREREQ([2.63])
|
|
|
|
AC_INIT([protobuf-c],
|
|
[1.4.1],
|
|
[https://github.com/protobuf-c/protobuf-c/issues],
|
|
[protobuf-c],
|
|
[https://github.com/protobuf-c/protobuf-c])
|
|
PACKAGE_DESCRIPTION="Protocol Buffers implementation in C"
|
|
AC_SUBST(PACKAGE_DESCRIPTION)
|
|
|
|
AC_CONFIG_SRCDIR([protobuf-c/protobuf-c.c])
|
|
AC_CONFIG_AUX_DIR([build-aux])
|
|
AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules subdir-objects])
|
|
AC_PROG_CC
|
|
AC_PROG_CXX
|
|
AC_PROG_LN_S
|
|
AC_PROG_MKDIR_P
|
|
AC_USE_SYSTEM_EXTENSIONS
|
|
AC_SYS_LARGEFILE
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
AM_SILENT_RULES([yes])
|
|
LT_INIT
|
|
|
|
AC_CONFIG_HEADERS(config.h)
|
|
AC_CONFIG_FILES([Makefile protobuf-c/libprotobuf-c.pc])
|
|
|
|
my_CFLAGS="\
|
|
-Wall \
|
|
-Wchar-subscripts \
|
|
-Wdeclaration-after-statement \
|
|
-Wformat-security \
|
|
-Wmissing-declarations \
|
|
-Wmissing-prototypes \
|
|
-Wnested-externs \
|
|
-Wpointer-arith \
|
|
-Wshadow \
|
|
-Wsign-compare \
|
|
-Wstrict-prototypes \
|
|
-Wtype-limits \
|
|
"
|
|
#AX_CHECK_COMPILE_FLAG(["-Wc90-c99-compat"],
|
|
# [my_CFLAGS="$my_CFLAGS -Wc90-c99-compat"])
|
|
AX_CHECK_COMPILE_FLAG(["-Wc99-c11-compat"],
|
|
[my_CFLAGS="$my_CFLAGS -Wc99-c11-compat"])
|
|
AX_CHECK_COMPILE_FLAG(["-Werror=incompatible-pointer-types"],
|
|
[my_CFLAGS="$my_CFLAGS -Werror=incompatible-pointer-types"])
|
|
AX_CHECK_COMPILE_FLAG(["-Werror=int-conversion"],
|
|
[my_CFLAGS="$my_CFLAGS -Werror=int-conversion"])
|
|
AX_CHECK_COMPILE_FLAG(["-Wnull-dereference"],
|
|
[my_CFLAGS="$my_CFLAGS -Wnull-dereference"])
|
|
AC_SUBST([my_CFLAGS])
|
|
|
|
AC_CHECK_PROGS([DOXYGEN], [doxygen])
|
|
AM_CONDITIONAL([HAVE_DOXYGEN],
|
|
[test -n "$DOXYGEN"])
|
|
AM_COND_IF([HAVE_DOXYGEN],
|
|
[AC_CONFIG_FILES([Doxyfile])
|
|
DOXYGEN_INPUT="${srcdir}/protobuf-c"
|
|
AC_SUBST(DOXYGEN_INPUT)
|
|
])
|
|
|
|
PKG_PROG_PKG_CONFIG
|
|
if test -n "$PKG_CONFIG"; then
|
|
# Horrible hack for systems where the pkg-config install directory is simply wrong!
|
|
if $PKG_CONFIG --variable=pc_path pkg-config 2>/dev/null | grep -q /libdata/; then
|
|
PKG_INSTALLDIR(['${prefix}/libdata/pkgconfig'])
|
|
else
|
|
PKG_INSTALLDIR
|
|
fi
|
|
fi
|
|
|
|
proto3_supported="no"
|
|
|
|
AC_ARG_ENABLE([protoc],
|
|
AS_HELP_STRING([--disable-protoc], [Disable building protoc_c (also disables tests)]))
|
|
if test "x$enable_protoc" != "xno"; then
|
|
AC_LANG_PUSH([C++])
|
|
AX_CXX_COMPILE_STDCXX(17, noext, mandatory)
|
|
PKG_CHECK_MODULES([protobuf], [protobuf >= 3.0.0], [proto3_supported=yes])
|
|
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$save_CPPFLAGS $protobuf_CFLAGS"
|
|
AC_CHECK_HEADERS([google/protobuf/compiler/command_line_interface.h],
|
|
[],
|
|
[AC_MSG_ERROR([required protobuf header file not found])])
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
|
|
AC_ARG_VAR([PROTOC], [protobuf compiler command])
|
|
AC_PATH_PROG([PROTOC], [protoc], [],
|
|
[`$PKG_CONFIG --variable=exec_prefix protobuf`/bin:$PATH])
|
|
if test -z "$PROTOC"; then
|
|
AC_MSG_ERROR([Please install the protobuf compiler from https://code.google.com/p/protobuf/.])
|
|
fi
|
|
|
|
PROTOBUF_VERSION="$($PROTOC --version)"
|
|
|
|
else
|
|
PROTOBUF_VERSION="not required, not building compiler"
|
|
fi
|
|
|
|
AM_CONDITIONAL([BUILD_COMPILER], [test "x$enable_protoc" != "xno"])
|
|
AM_CONDITIONAL([BUILD_PROTO3], [test "x$proto3_supported" != "xno"])
|
|
AM_CONDITIONAL([CROSS_COMPILING], [test "x$cross_compiling" != "xno"])
|
|
|
|
AM_COND_IF([BUILD_PROTO3], [AC_DEFINE([HAVE_PROTO3], [1], [Support proto3 syntax])])
|
|
|
|
gl_LD_VERSION_SCRIPT
|
|
|
|
gl_VALGRIND_TESTS
|
|
|
|
MY_CODE_COVERAGE
|
|
|
|
AC_C_BIGENDIAN
|
|
|
|
AC_OUTPUT
|
|
AC_MSG_RESULT([
|
|
$PACKAGE $VERSION
|
|
|
|
CC: ${CC}
|
|
CFLAGS: ${CFLAGS}
|
|
CXX: ${CXX}
|
|
CXXFLAGS: ${CXXFLAGS}
|
|
LDFLAGS: ${LDFLAGS}
|
|
LIBS: ${LIBS}
|
|
|
|
prefix: ${prefix}
|
|
sysconfdir: ${sysconfdir}
|
|
libdir: ${libdir}
|
|
includedir: ${includedir}
|
|
pkgconfigdir: ${pkgconfigdir}
|
|
|
|
bigendian: ${ac_cv_c_bigendian}
|
|
protobuf version: ${PROTOBUF_VERSION}
|
|
])
|