| dnl -------------------------------------------------------- -*- autoconf -*- |
| dnl Licensed to the Apache Software Foundation (ASF) under one or more |
| dnl contributor license agreements. See the NOTICE file distributed with |
| dnl this work for additional information regarding copyright ownership. |
| dnl The ASF licenses this file to You under the Apache License, Version 2.0 |
| dnl (the "License"); you may not use this file except in compliance with |
| dnl the License. You may obtain a copy of the License at |
| dnl |
| dnl http://www.apache.org/licenses/LICENSE-2.0 |
| dnl |
| dnl Unless required by applicable law or agreed to in writing, software |
| dnl distributed under the License is distributed on an "AS IS" BASIS, |
| dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| dnl See the License for the specific language governing permissions and |
| dnl limitations under the License. |
| |
| dnl |
| dnl jk_common.m4: JK's general-purpose autoconf macros |
| dnl Mostly taken from APR. |
| dnl |
| |
| dnl |
| dnl JK_CHECK_SIZEOF_EXTENDED(INCLUDES, TYPE [, CROSS_SIZE]) |
| dnl |
| dnl A variant of AC_CHECK_SIZEOF which allows the checking of |
| dnl sizes of non-builtin types |
| dnl |
| AC_DEFUN([JK_CHECK_SIZEOF_EXTENDED], |
| [changequote(<<,>>)dnl |
| dnl The name to #define |
| define(<<AC_TYPE_NAME>>, translit(sizeof_$2, [a-z *], [A-Z_P]))dnl |
| dnl The cache variable |
| define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$2, [ *],[<p>]))dnl |
| changequote([, ])dnl |
| AC_MSG_CHECKING(size of $2) |
| AC_CACHE_VAL(AC_CV_NAME, |
| [AC_TRY_RUN([#include <stdio.h> |
| #include <stdlib.h> |
| $1 |
| main() |
| { |
| FILE *f=fopen("conftestval","w"); |
| if (!f) exit(1); |
| fprintf(f, "%d\n", sizeof($2)); |
| exit(0); |
| }], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$3],,, |
| AC_CV_NAME=$3))])dnl |
| AC_MSG_RESULT($AC_CV_NAME) |
| AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The size of ]$2) |
| undefine([AC_TYPE_NAME])dnl |
| undefine([AC_CV_NAME])dnl |
| ]) |
| |
| dnl |
| dnl JK_PREFIX_IF_MISSING(variable, prefix) |
| dnl |
| dnl Prefix all tokens in a variable with "prefix" unless |
| dnl it is already there. |
| dnl |
| AC_DEFUN([JK_PREFIX_IF_MISSING], [ |
| jk_new_val="" |
| jk_val_changed=0 |
| for i in $$1; do |
| case $i in |
| $2*) |
| jk_new_val="$jk_new_val $i" |
| ;; |
| *) |
| jk_new_val="$jk_new_val $2$i" |
| jk_val_changed=1 |
| ;; |
| esac |
| done |
| if test $jk_val_changed = "1"; then |
| AC_MSG_NOTICE(tokens in $1 have been prefixed with '[$2]') |
| $1=$jk_new_val |
| fi |
| ]) dnl |
| |
| dnl Iteratively interpolate the contents of the second argument |
| dnl until interpolation offers no new result. Then assign the |
| dnl final result to $1. |
| dnl |
| dnl Example: |
| dnl |
| dnl foo=1 |
| dnl bar='${foo}/2' |
| dnl baz='${bar}/3' |
| dnl JK_EXPAND_VAR(fraz, $baz) |
| dnl $fraz is now "1/2/3" |
| dnl |
| AC_DEFUN([JK_EXPAND_VAR], [ |
| jk_last= |
| jk_cur="$2" |
| while test "x${jk_cur}" != "x${jk_last}"; |
| do |
| jk_last="${jk_cur}" |
| jk_cur=`eval "echo ${jk_cur}"` |
| done |
| $1="${jk_cur}" |
| ]) |
| |
| dnl |
| dnl JK_CONFIG_NICE(filename) |
| dnl |
| dnl Saves a snapshot of the configure command-line for later reuse |
| dnl |
| AC_DEFUN([JK_CONFIG_NICE], [ |
| rm -f $1 |
| cat >$1<<EOF |
| #! /bin/sh |
| # |
| # Created by configure |
| |
| EOF |
| if test -n "$CC"; then |
| echo "CC=\"$CC\"; export CC" >> $1 |
| fi |
| if test -n "$CFLAGS"; then |
| echo "CFLAGS=\"$CFLAGS\"; export CFLAGS" >> $1 |
| fi |
| if test -n "$CPPFLAGS"; then |
| echo "CPPFLAGS=\"$CPPFLAGS\"; export CPPFLAGS" >> $1 |
| fi |
| if test -n "$LDFLAGS"; then |
| echo "LDFLAGS=\"$LDFLAGS\"; export LDFLAGS" >> $1 |
| fi |
| if test -n "$LTFLAGS"; then |
| echo "LTFLAGS=\"$LTFLAGS\"; export LTFLAGS" >> $1 |
| fi |
| if test -n "$LIBS"; then |
| echo "LIBS=\"$LIBS\"; export LIBS" >> $1 |
| fi |
| if test -n "$INCLUDES"; then |
| echo "INCLUDES=\"$INCLUDES\"; export INCLUDES" >> $1 |
| fi |
| if test -n "$NOTEST_CFLAGS"; then |
| echo "NOTEST_CFLAGS=\"$NOTEST_CFLAGS\"; export NOTEST_CFLAGS" >> $1 |
| fi |
| if test -n "$NOTEST_CPPFLAGS"; then |
| echo "NOTEST_CPPFLAGS=\"$NOTEST_CPPFLAGS\"; export NOTEST_CPPFLAGS" >> $1 |
| fi |
| if test -n "$NOTEST_LDFLAGS"; then |
| echo "NOTEST_LDFLAGS=\"$NOTEST_LDFLAGS\"; export NOTEST_LDFLAGS" >> $1 |
| fi |
| if test -n "$NOTEST_LIBS"; then |
| echo "NOTEST_LIBS=\"$NOTEST_LIBS\"; export NOTEST_LIBS" >> $1 |
| fi |
| |
| # Retrieve command-line arguments. |
| eval "set x $[0] $ac_configure_args" |
| shift |
| |
| for arg |
| do |
| JK_EXPAND_VAR(arg, $arg) |
| echo "\"[$]arg\" \\" >> $1 |
| done |
| echo '"[$]@"' >> $1 |
| chmod +x $1 |
| ])dnl |