Sélectionner une révision Git
-
Alexandre Morignot a rédigéAlexandre Morignot a rédigé
configure.ac 5,40 Kio
AC_INIT([lektor], [2.0])
AC_CONFIG_AUX_DIR([config])
AC_CONFIG_MACRO_DIRS([config/m4])
AC_LANG(C)
AC_PREFIX_DEFAULT(/usr/local)
##########
# CHECKS #
##########
AC_PATH_PROG([XXD],[xxd],[:])
AC_PATH_PROG([MAN],[man],[:])
AS_IF([test "$XXD" = "notfound"], [AC_MSG_ERROR([xxd is required])])
AS_IF([test "$MAN" = "notfound"], [AC_MSG_ERROR([man is required])])
LKT_PATH_SOURCE="$(dirname $(readlink -f "$0"))"
LKT_PATH_BUILD="$(pwd)"
AS_IF([test "$LKT_PATH_SOURCE" = "$LKT_PATH_BUILD"],
[AC_MSG_ERROR([The build directory can't be the same as the source directory])])
AC_CHECK_LIB([sqlite3], [sqlite3_open_v2])
AC_CHECK_LIB([sqlite3], [sqlite3_hard_heap_limit64])
AC_CHECK_HEADERS_ONCE([
sqlite3.h
curl/curl.h
json-c/json.h
stdnoreturn.h
stddef.h
inttypes.h
unistd.h
sys/types.h
stdlib.h
string.h
strings.h
stdio.h
endian.h
stdargs.h
ctypes.h
regex.h
locale.h
])
AC_C_INLINE
AC_TYPE_INT16_T
AC_TYPE_INT32_T
AC_TYPE_INT64_T
AC_TYPE_INT8_T
AC_TYPE_OFF_T
AC_C_RESTRICT
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
AC_TYPE_UINT16_T
AC_TYPE_UINT32_T
AC_TYPE_UINT64_T
AC_TYPE_UINT8_T
##############
# MORE RULES #
##############
AM_SILENT_RULES([yes])
AM_PROG_AR
AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects no-define std-options])
LT_INIT
LT_LANG([C])
AC_ENABLE_SHARED
AC_ENABLE_STATIC
AC_PROG_CC
AC_PROG_INSTALL
AM_PROG_AS
###########
# OPTIONS #
###########
AC_ARG_ENABLE([debug],
[AS_HELP_STRING([--enable-debug],
[Enable debug so you can use gdb])],
[LKT_DEBUG_ENABLED=yes],
[LKT_DEBUG_ENABLED=no])
if test "x${LKT_DEBUG_ENABLED}" = "xyes" ; then
AC_DEFINE_UNQUOTED([LKT_DEBUG_ENABLED], ["$LKT_DEBUG_ENABLED"], [Enable debug])
AC_SUBST([LKT_DEBUG_ENABLED])
fi
AC_ARG_ENABLE([static-module],
[AS_HELP_STRING([--disable-static-module],
[Build modules statically not in liblektor])],
[LKT_STATIC_MODULE=no],
[LKT_STATIC_MODULE=yes])
AM_CONDITIONAL([LKT_STATIC_MODULE], [test "x${LKT_STATIC_MODULE}" = "xyes"])
if test "x${LKT_STATIC_MODULE}" = "xyes" ; then
AC_DEFINE([LKT_STATIC_MODULE], [], [Build with modules inside liblektor])
AC_SUBST([LKT_STATIC_MODULE])
fi
AC_DEFINE_UNQUOTED([LKT_PREFIX_PATH], ["$prefix"], [Prefix Path for Lektor])
AC_SUBST([LKT_PREFIX_PATH])
AC_DEFINE_UNQUOTED([LKT_MAN_BINARY], ["$(which man)"], [Path to the man executable])
AC_SUBST([LKT_MAN_BINARY])
AC_DEFINE_UNQUOTED([LKT_COMPILER], ["$CC"], [Lektor compiled with])
AC_SUBST([LKT_COMPILER])
LKT_BUILD_STRING="$(basename $CC) $(uname -r) $(uname -m)"
AC_DEFINE_UNQUOTED([LKT_BUILD_STRING], ["$LKT_BUILD_STRING"], [Build string])
AC_SUBST([LKT_BUILD_STRING])
LKT_ENDIANES_LITTLE="$(echo -n I | od -to2 | head -n1 | cut -f2 -d" " | cut -c6)"
if test "$LKT_ENDIANES_LITTLE" = "1" ; then
AC_DEFINE_UNQUOTED([LKT_ENDIANES_LITTLE], [1], [Little endian])
AC_SUBST([LKT_ENDIANES_LITTLE])
else
AC_DEFINE_UNQUOTED([LKT_ENDIANES_BIG], [1], [Big endian])
AC_SUBST([LKT_ENDIANES_BIG])
fi
##########
# CFLAGS #
##########
BASEFLAGS=`test "x${LKT_DEBUG_ENABLED}" = 'xyes' && echo "-g" || echo "-O3"`
CFLAGS="-Werror -Wall -Wextra ${BASEFLAGS} -std=c11"
#################################
# BUILD WITH THE DEPENDS SCRIPT #
#################################
AC_ARG_WITH([depends],
[AS_HELP_STRING([--with-depends],
[Download and build dependencies needed for lektor])],
[LKT_BUILD_DEPENDS=yes],
[LKT_BUILD_DEPENDS=no])
AM_CONDITIONAL([LKT_DEPENDS_ENABLE], [test "x${LKT_BUILD_DEPENDS}" = "xyes"])
if test "x$LKT_BUILD_DEPENDS" = "xyes" ; then
LKT_LIB_DIR="$PWD/depends_install/lib"
AC_DISABLE_SHARED
CFLAGS="${CFLAGS} -I$PWD/depends_install/include"
LDFLAGS="${LDFLAGS} -L$PWD/depends_install/lib"
# Download and build dependencies
cd $LKT_PATH_SOURCE
./scripts/depends.bash $LKT_PATH_BUILD
if test $? -ne 0 ; then
AC_MSG_ERROR("Failed to download and build dependencies", [1])
fi
cd $LKT_PATH_BUILD
fi
##########
# OUTPUT #
##########
AC_CONFIG_HEADERS([inc/lektor/lktconfig.h])
AC_OUTPUT([
Makefile
scripts/Makefile
inc/Makefile
src/Makefile
man/Makefile
])
################
# CONF RESULTS #
################
AFF_BRANCH=$(git rev-parse --abbrev-ref HEAD)
AFF_VERSION=$(git -C $LKT_PATH_SOURCE rev-list --count HEAD).$(git -C $LKT_PATH_SOURCE rev-parse --short HEAD)
LKT_CONFIG_RESULT="
########## Lektor configuration ###########
#
# Configure run on..... $(date)
# Compiler C........... $(basename $CC)
# Version.............. mk7.$AFF_VERSION
# Branch............... $AFF_BRANCH
#
### Build options
#
# Modules.............. $(test $LKT_STATIC_MODULE = 'yes' && echo static || echo not static)
# C Flags.............. $CFLAGS
# LD Flags............. $LDFLAGS
# To link against...... -Wl,-rpath -Wl,$prefix/lib
# Builtin depends...... $LKT_BUILD_DEPENDS
#
### Other informations
#
# Build string......... $LKT_BUILD_STRING
# Debug enabled........ $LKT_DEBUG_ENABLED
# Prefix............... $prefix
# Build folder......... $PWD
# Source folder........ $LKT_PATH_SOURCE
# Endianes............. $(test $LKT_ENDIANES_LITTLE = 1 && echo little || echo big)
#
###########################################
"
printf '#!/bin/sh\ncat << EOF' > lkt_show_config
printf "$LKT_CONFIG_RESULT" | tee --append lkt_show_config
printf 'EOF' >> lkt_show_config
chmod +x lkt_show_config