blob: 17e51819f6caceb37afa4cd683a899e409329c46 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
AC_PREREQ(2.65)
m4_define([arrow_glib_version], 0.15.1)
AC_INIT([arrow-glib],
arrow_glib_version,
[https://issues.apache.org/jira/browse/ARROW],
[apache-arrow-glib])
AC_CONFIG_AUX_DIR([config])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR([arrow-glib/arrow-glib.h])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([1.13 foreign])
AM_SILENT_RULES([yes])
GARROW_VERSION_MAJOR=$(echo "arrow_glib_version" | \
sed -E -e 's/^([[0-9]]+)\..+$/\1/' | \
tr -d '\n')
GARROW_VERSION_MINOR=$(echo "arrow_glib_version" | \
sed -E -e 's/^[[0-9]]+\.([[0-9]]+)\..+$/\1/' | \
tr -d '\n')
GARROW_VERSION_MICRO=$(echo "arrow_glib_version" | \
sed -E -e 's/^[[0-9]]+\.[[0-9]]+\.([[0-9]]+).*$/\1/' | \
tr -d '\n')
if echo "arrow_glib_version" | grep -- "-" > /dev/null; then
GARROW_VERSION_TAG=$(echo "arrow_glib_version" | \
sed -E -e 's/^[[0-9]]+\.[[0-9]]+\.[[0-9]]+-(.+)$/\1/' | \
tr -d '\n')
else
GARROW_VERSION_TAG=
fi
AC_SUBST(GARROW_VERSION_MAJOR)
AC_SUBST(GARROW_VERSION_MINOR)
AC_SUBST(GARROW_VERSION_MICRO)
AC_SUBST(GARROW_VERSION_TAG)
AC_CANONICAL_HOST
AC_MSG_CHECKING([for macOS])
case "$host_os" in
darwin*)
os_macos=yes
;;
*)
os_macos=no
;;
esac
AC_MSG_RESULT([$os_macos])
AM_CONDITIONAL(OS_MACOS, test "$os_macos" = "yes")
LT_INIT
LT_CURRENT=$(expr ${GARROW_VERSION_MAJOR} \* 100 + ${GARROW_VERSION_MINOR})
LT_REVISION=${GARROW_VERSION_MICRO}
LT_AGE=0
LT_VERSION_INFO="\$(LT_CURRENT):\$(LT_REVISION):\$(LT_AGE)"
AC_SUBST(LT_CURRENT)
AC_SUBST(LT_REVISION)
AC_SUBST(LT_AGE)
AC_SUBST(LT_VERSION_INFO)
AC_PROG_CC
AC_PROG_CXX
AX_CXX_COMPILE_STDCXX_11([ext], [mandatory])
GARROW_CFLAGS="-Wall"
GARROW_CXXFLAGS="-Wall"
AC_ARG_ENABLE(debug,
[AS_HELP_STRING([--enable-debug],
[Use debug flags (default=no)])],
[GARROW_DEBUG="$enableval"],
[GARROW_DEBUG="no"])
if test "x$GARROW_DEBUG" != "xno"; then
GARROW_DEBUG="yes"
if test "$CLANG" = "yes"; then
CFLAGS="$CFLAGS -O0 -g"
CXXFLAGS="$CXXFLAGS -O0 -g"
elif test "$GCC" = "yes"; then
CFLAGS="$CFLAGS -O0 -g3"
CXXFLAGS="$CXXFLAGS -O0 -g3"
fi
fi
AC_SUBST(GARROW_CFLAGS)
AC_SUBST(GARROW_CXXFLAGS)
AM_PATH_GLIB_2_0([2.32.4],
[],
[AC_MSG_ERROR(GLib isn't available)],
[gobject gio])
GOBJECT_INTROSPECTION_REQUIRE([1.32.1])
GTK_DOC_CHECK([1.18-2])
AC_ARG_WITH(arrow-cpp-build-type,
[AS_HELP_STRING([--with-arrow-cpp-build-type=TYPE],
[-DCMAKE_BUILD_TYPE option value for Arrow C++ (default=release)])],
[GARROW_ARROW_CPP_BUILD_TYPE="$withval"],
[GARROW_ARROW_CPP_BUILD_TYPE="release"])
ARROW_CUDA_PKG_CONFIG_PATH=""
AC_ARG_WITH(arrow-cpp-build-dir,
[AS_HELP_STRING([--with-arrow-cpp-build-dir=PATH],
[Use this option to build with not installed Arrow C++])],
[GARROW_ARROW_CPP_BUILD_DIR="$withval"],
[GARROW_ARROW_CPP_BUILD_DIR=""])
if test "x$GARROW_ARROW_CPP_BUILD_DIR" = "x"; then
USE_ARROW_BUILD_DIR=no
PKG_CHECK_MODULES([ARROW], [arrow arrow-compute])
_PKG_CONFIG(ARROW_LIB_DIR, [variable=libdir], [arrow])
ARROW_LIB_DIR="$pkg_cv_ARROW_LIB_DIR"
PKG_CHECK_MODULES([ARROW_ORC],
[arrow-orc],
[HAVE_ARROW_ORC=yes],
[HAVE_ARROW_ORC=no])
PKG_CHECK_MODULES([ARROW_CUDA],
[arrow-cuda],
[HAVE_ARROW_CUDA=yes],
[HAVE_ARROW_CUDA=no])
PKG_CHECK_MODULES([GANDIVA],
[gandiva],
[HAVE_GANDIVA=yes],
[HAVE_GANDIVA=no])
PKG_CHECK_MODULES([PARQUET],
[parquet],
[HAVE_PARQUET=yes],
[HAVE_PARQUET=no])
PKG_CHECK_MODULES([PLASMA],
[plasma],
[HAVE_PLASMA=yes],
[HAVE_PLASMA=no])
else
USE_ARROW_BUILD_DIR=yes
ARROW_BUILD_DIR="${GARROW_ARROW_CPP_BUILD_DIR}"
AC_SUBST(ARROW_BUILD_DIR)
ARROW_SOURCE_INCLUDE_DIR="\$(abs_top_srcdir)/../cpp/src"
ARROW_BUILD_INCLUDE_DIR="${GARROW_ARROW_CPP_BUILD_DIR}/src"
ARROW_LIB_DIR="${GARROW_ARROW_CPP_BUILD_DIR}/${GARROW_ARROW_CPP_BUILD_TYPE}"
AC_SUBST(ARROW_LIB_DIR)
ARROW_CFLAGS="-I${ARROW_BUILD_INCLUDE_DIR} -I${ARROW_SOURCE_INCLUDE_DIR}"
ARROW_LIBS="-L${ARROW_LIB_DIR} -larrow"
AC_SUBST(ARROW_CFLAGS)
AC_SUBST(ARROW_LIBS)
if test -f "${GARROW_ARROW_CPP_BUILD_DIR}/src/arrow/adapters/orc/arrow-orc.pc"; then
HAVE_ARROW_ORC=yes
else
HAVE_ARROW_ORC=no
fi
ARROW_CUDA_CFLAGS=""
if test -f "${GARROW_ARROW_CPP_BUILD_DIR}/src/arrow/gpu/arrow-cuda.pc"; then
HAVE_ARROW_CUDA=yes
ARROW_CUDA_LIBS="-larrow_cuda"
ARROW_CUDA_PKG_CONFIG_PATH="\$(ARROW_BUILD_DIR)/src/arrow/gpu"
else
HAVE_ARROW_CUDA=no
ARROW_CUDA_LIBS=""
ARROW_CUDA_PKG_CONFIG_PATH=""
fi
AC_SUBST(ARROW_CUDA_CFLAGS)
AC_SUBST(ARROW_CUDA_LIBS)
AC_SUBST(ARROW_CUDA_PKG_CONFIG_PATH)
GANDIVA_CFLAGS=""
if test -f "${GARROW_ARROW_CPP_BUILD_DIR}/src/gandiva/gandiva.pc"; then
HAVE_GANDIVA=yes
GANDIVA_LIBS="-lgandiva"
else
HAVE_GANDIVA=no
GANDIVA_LIBS=""
fi
AC_SUBST(GANDIVA_CFLAGS)
AC_SUBST(GANDIVA_LIBS)
PARQUET_CFLAGS=""
if test -f "${GARROW_ARROW_CPP_BUILD_DIR}/src/parquet/parquet.pc"; then
HAVE_PARQUET=yes
PARQUET_LIBS="-lparquet"
else
HAVE_PARQUET=no
PARQUET_LIBS=""
fi
AC_SUBST(PARQUET_CFLAGS)
AC_SUBST(PARQUET_LIBS)
PLASMA_CFLAGS=""
if test -f "${GARROW_ARROW_CPP_BUILD_DIR}/src/plasma/plasma.pc"; then
HAVE_PLASMA=yes
PLASMA_LIBS="-lplasma"
else
HAVE_PLASMA=no
PLASMA_LIBS=""
fi
AC_SUBST(PLASMA_CFLAGS)
AC_SUBST(PLASMA_LIBS)
fi
AM_CONDITIONAL([USE_ARROW_BUILD_DIR],
[test "$USE_ARROW_BUILD_DIR" = "yes"])
AM_CONDITIONAL([HAVE_ARROW_ORC], [test "$HAVE_ARROW_ORC" = "yes"])
if test "$HAVE_ARROW_ORC" = "yes"; then
AC_DEFINE(HAVE_ARROW_ORC, [1], [Define to 1 if Apache Arrow supports ORC.])
fi
AM_CONDITIONAL([HAVE_ARROW_CUDA], [test "$HAVE_ARROW_CUDA" = "yes"])
if test "$HAVE_ARROW_CUDA" = "yes"; then
ARROW_CUDA_GLIB_PACKAGE="arrow-cuda-glib"
PLASMA_ARROW_CUDA_PKG_CONFIG_PATH=":\$(abs_top_builddir)/arrow-cuda-glib"
if test -n "${ARROW_CUDA_PKG_CONFIG_PATH}"; then
PLASMA_ARROW_CUDA_PKG_CONFIG_PATH=":${ARROW_CUDA_PKG_CONFIG_PATH}${PLASMA_ARROW_CUDA_PKG_CONFIG_PATH}"
fi
AC_DEFINE(HAVE_ARROW_CUDA, [1], [Define to 1 if Apache Arrow supports CUDA.])
else
ARROW_CUDA_GLIB_PACKAGE=""
PLASMA_ARROW_CUDA_PKG_CONFIG_PATH=""
fi
AC_SUBST(ARROW_CUDA_GLIB_PACKAGE)
AC_SUBST(PLASMA_ARROW_CUDA_PKG_CONFIG_PATH)
AM_CONDITIONAL([HAVE_GANDIVA], [test "$HAVE_GANDIVA" = "yes"])
if test "$HAVE_GANDIVA" = "yes"; then
AC_DEFINE(HAVE_GANDIVA, [1], [Define to 1 if Gandiva exists.])
fi
AM_CONDITIONAL([HAVE_PARQUET], [test "$HAVE_PARQUET" = "yes"])
if test "$HAVE_PARQUET" = "yes"; then
AC_DEFINE(HAVE_PARQUET, [1], [Define to 1 if Apache Parquet exists.])
fi
AM_CONDITIONAL([HAVE_PLASMA], [test "$HAVE_PLASMA" = "yes"])
if test "$HAVE_PLASMA" = "yes"; then
AC_DEFINE(HAVE_PLASMA, [1], [Define to 1 if Plasma exists.])
fi
exampledir="\$(datadir)/arrow-glib/example"
AC_SUBST(exampledir)
AC_CONFIG_FILES([
Makefile
arrow-cuda-glib/Makefile
arrow-cuda-glib/arrow-cuda-glib.pc
arrow-glib/Makefile
arrow-glib/arrow-glib.pc
arrow-glib/arrow-orc-glib.pc
arrow-glib/version.h
gandiva-glib/Makefile
gandiva-glib/gandiva-glib.pc
parquet-glib/Makefile
parquet-glib/parquet-glib.pc
plasma-glib/Makefile
plasma-glib/plasma-glib.pc
doc/Makefile
doc/arrow-glib/Makefile
doc/arrow-glib/entities.xml
doc/gandiva-glib/Makefile
doc/gandiva-glib/entities.xml
doc/parquet-glib/Makefile
doc/parquet-glib/entities.xml
doc/plasma-glib/Makefile
doc/plasma-glib/entities.xml
example/Makefile
example/lua/Makefile
])
AC_OUTPUT