You've already forked macports-base
mirror of
https://github.com/macports/macports-base.git
synced 2026-07-12 18:18:43 -07:00
1e2ff3991b
The standalone libmd implementation as used on Linux includes a header called "sha2.h" which is supposed to be relative to its own include directory. Unfortunately, MacPorts ships its own SHA2 implementation in pextlib (in case neither CommonCrypto, nor libmd nor OpenSSL-like implementations are available), which also uses the "sha2.h" header file name. This seems to take precedence and both header files are not compatible, so the build fails. Move the standalone SHA2 implementation to src/compat/sha2 and update the references. Additionally, SHA1_File is almost never a proper function, but most often defined as a macro set to the real function. In any case, checking for it via AC_CHECK_FUNCS() is wrong, so switch to AC_CHECK_DECLS() and use the updated checking macros. Fixes: https://trac.macports.org/ticket/58060
1191 lines
33 KiB
Plaintext
1191 lines
33 KiB
Plaintext
builtin(include,m4/tcl.m4)
|
|
|
|
dnl Search for a variable in a list. Run ACTION-IF-FOUND if it is in the list,
|
|
dnl ACTION-IF-NOT-FOUND otherwise.
|
|
dnl
|
|
dnl Parameters:
|
|
dnl - The name of the list.
|
|
dnl - The name of the variable that should be searched in the list.
|
|
dnl - An optional action to be run if found
|
|
dnl - An optional action to be run if not found
|
|
dnl
|
|
dnl _MP_LIST_CONTAINS_QUOTED([listname], [varname], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
|
AC_DEFUN([_MP_LIST_CONTAINS], [dnl
|
|
mp_list_contains_present=
|
|
eval "mp_list_contains_list=\"$$1\""
|
|
for mp_list_contains_entry in $mp_list_contains_list; do
|
|
test -z "$mp_list_contains_entry" && continue
|
|
if test "x$$2" = "x$mp_list_contains_entry"; then
|
|
mp_list_contains_present=1
|
|
break
|
|
fi
|
|
done
|
|
if test "x$mp_list_contains_present" = "x"; then
|
|
m4_ifvaln([$3], [$3], [:])dnl
|
|
m4_ifvaln([$4], [else $4])dnl
|
|
fi
|
|
])
|
|
|
|
dnl Quote a variable and prepend it to a list.
|
|
dnl
|
|
dnl Parameters:
|
|
dnl - The name of the list.
|
|
dnl - The name of the variable that should be quoted and prepended to the
|
|
dnl list.
|
|
AC_DEFUN([_MP_LIST_PREPEND_QUOTED], [dnl
|
|
_MP_QUOTE([$2])
|
|
_MP_VAR_PREPEND([$1], ["$$2 "])
|
|
])
|
|
|
|
|
|
dnl Quote a variable and append it to a list.
|
|
dnl
|
|
dnl Parameters:
|
|
dnl - The name of the list.
|
|
dnl - The name of the variable that should be quoted and appended to the list.
|
|
AC_DEFUN([_MP_LIST_APPEND_QUOTED], [dnl
|
|
_MP_QUOTE([$2])
|
|
AS_VAR_APPEND([$1], [" $$2"])
|
|
])
|
|
|
|
dnl Prepend the shell expansion of a value to a variable.
|
|
dnl
|
|
dnl Parameters:
|
|
dnl - The name of the variable to which the second argument should be
|
|
dnl prepended.
|
|
dnl - The value that should be expanded using the shell expansion rules and
|
|
dnl prepended to the variable given in the first argument.
|
|
AC_DEFUN([_MP_VAR_PREPEND], [dnl
|
|
AC_REQUIRE([_MP_VAR_PREPEND_PREPARE])dnl
|
|
mp_fn_var_prepend $1 $2
|
|
])
|
|
|
|
dnl Define the function required for _MP_VAR_PREPEND
|
|
AC_DEFUN([_MP_VAR_PREPEND_PREPARE], [dnl
|
|
mp_fn_var_prepend() {
|
|
eval "$[]1=\"$[]2\$$[]1\""
|
|
}
|
|
])
|
|
|
|
dnl Quote a variable in single quotes (escaping any existing single quotes) and
|
|
dnl store it in itself.
|
|
dnl
|
|
dnl Parameters:
|
|
dnl - The name of the variable that should be quoted using single quotes.
|
|
AC_DEFUN([_MP_QUOTE], [dnl
|
|
case $$1 in
|
|
*\'*)
|
|
$1=$(AS_ECHO(["$$1"]) | sed "s/'/'\\\\\\\\''/g")
|
|
;;
|
|
esac
|
|
$1="'$$1'"dnl
|
|
])
|
|
|
|
|
|
dnl Extract the key part of a key-value pair given as string in the form
|
|
dnl --key=value or
|
|
dnl -key=value
|
|
dnl
|
|
dnl Parameters:
|
|
dnl - The variable name to assign to
|
|
dnl - The (quoted, if necessary) key-value pair
|
|
AC_DEFUN([_MP_EXTRACT_KEY], [dnl
|
|
$1=$(AS_ECHO([$2]) | sed -E 's/^--?([[^=]]+)=.*$/\1/')dnl
|
|
])
|
|
|
|
dnl Similar to AC_ARG_VAR, but implemented with --with-pkg=PATH for PKG.
|
|
dnl
|
|
dnl Parameters: Similar to AC_ARG_VAR ($2 gets some boiler plate around it)
|
|
AC_DEFUN([MP_TOOL_PATH], [dnl
|
|
AC_ARG_WITH([m4_tolower($1)], [AS_HELP_STRING([--with-m4_tolower($1)=PATH],
|
|
[path to alternate $2 command])], [$1=$withval],dnl
|
|
[])dnl
|
|
])
|
|
|
|
dnl Configure a project contained in a subdirectory. Different from
|
|
dnl AC_CONFIG_SUBDIRS (on which this macro is based), you can pass parameters
|
|
dnl to the sub-configure script.
|
|
dnl
|
|
dnl Parameters:
|
|
dnl - The relative path to the directory that contains the configure script
|
|
dnl to be run
|
|
dnl - Parameters to pass to the configure script
|
|
dnl
|
|
dnl MP_CONFIG_SUBDIR([path-to-directory], [configure-parameters])
|
|
AC_DEFUN([MP_CONFIG_SUBDIR], [
|
|
|
|
ac_dir="$1"
|
|
|
|
mp_popdir=$(pwd)
|
|
|
|
AS_MKDIR_P(["$ac_dir"])
|
|
_AC_SRCDIRS(["$ac_dir"])
|
|
cd "$ac_dir"
|
|
|
|
if test "$no_recursion" != yes || test ! -f "$ac_srcdir/config.status"; then
|
|
AC_MSG_NOTICE([=== configuring in $ac_dir ($mp_popdir/$ac_dir)])
|
|
if test -f "$ac_srcdir/configure"; then
|
|
# Run 'make distclean' first, ignoring errors; unfortunately some
|
|
# of our projects are not reconfigure-safe and will not correctly
|
|
# pick up modified configure variables or recompile files affected
|
|
# by such variables. See
|
|
# https://github.com/macports/macports-base/pull/79 and
|
|
# https://github.com/macports/macports-base/pull/80
|
|
make distclean || true
|
|
|
|
mp_sub_configure_args=
|
|
mp_sub_configure_keys=
|
|
# Compile a list of keys that have been given to the MP_CONFIG_SUBDIR
|
|
# macro; we want to skip copying those parameters from the original
|
|
# configure invocation.
|
|
for mp_arg in $2; do
|
|
case $mp_arg in
|
|
--*=* | -*=*)
|
|
_MP_EXTRACT_KEY([mp_arg_key], ["$mp_arg"])
|
|
_MP_LIST_APPEND_QUOTED([mp_sub_configure_keys], [mp_arg_key])
|
|
;;
|
|
esac
|
|
_MP_LIST_APPEND_QUOTED([mp_sub_configure_args], [mp_arg])
|
|
done
|
|
# Walk the list of arguments given to the original configure script;
|
|
# filter out a few common ones we likely would not want to pass along,
|
|
# add --disable-option-checking and filter those already given as
|
|
# argument to MP_CONFIG_SUBDIR.
|
|
# Most of this code is adapted from _AC_OUTPUT_SUBDIRS in
|
|
# $prefix/share/autoconf/autoconf/status.m4.
|
|
mp_prev=
|
|
eval "set x $ac_configure_args"
|
|
shift
|
|
for mp_arg; do
|
|
if test -n "$mp_prev"; then
|
|
mp_prev=
|
|
continue
|
|
fi
|
|
case $mp_arg in
|
|
-cache-file \
|
|
| --cache-file \
|
|
| --cache-fil \
|
|
| --cache-fi \
|
|
| --cache-f \
|
|
| --cache- \
|
|
| --cache \
|
|
| --cach \
|
|
| --cac \
|
|
| --ca \
|
|
| --c)
|
|
mp_prev=cache_file
|
|
;;
|
|
-cache-file=* \
|
|
| --cache-file=* \
|
|
| --cache-fil=* \
|
|
| --cache-fi=* \
|
|
| --cache-f=* \
|
|
| --cache-=* \
|
|
| --cache=* \
|
|
| --cach=* \
|
|
| --cac=* \
|
|
| --ca=* \
|
|
| --c=*)
|
|
# ignore --cache-file
|
|
;;
|
|
--config-cache \
|
|
| -C)
|
|
# ignore -C
|
|
;;
|
|
-srcdir \
|
|
| --srcdir \
|
|
| -srcdi \
|
|
| -srcd \
|
|
| -src \
|
|
| -sr)
|
|
mp_prev=srcdir
|
|
;;
|
|
-srcdir=* \
|
|
| --srcdir=* \
|
|
| --srcdi=* \
|
|
| --srcd=* \
|
|
| --src=* \
|
|
| --sr=*)
|
|
# ignore --srcdir
|
|
;;
|
|
-prefix \
|
|
| --prefix \
|
|
| --prefi \
|
|
| --pref \
|
|
| --pre \
|
|
| --pr \
|
|
| --p)
|
|
mp_prev=prefix
|
|
;;
|
|
-prefix=* \
|
|
| --prefix=* \
|
|
| --prefi=* \
|
|
| --pref=* \
|
|
| --pre=* \
|
|
| --pr=* \
|
|
| --p=*)
|
|
# ignore --prefix
|
|
;;
|
|
--disable-option-checking)
|
|
# ignore --disable-option-checking
|
|
;;
|
|
--*=* | -*=*)
|
|
_MP_EXTRACT_KEY([mp_arg_key], ["$mp_arg"])
|
|
_MP_LIST_CONTAINS([mp_sub_configure_keys], [mp_arg_key], [], [
|
|
_MP_LIST_APPEND_QUOTED([mp_sub_configure_args], [mp_arg])
|
|
])
|
|
;;
|
|
*)
|
|
# always pass positional arguments
|
|
_MP_LIST_APPEND_QUOTED([mp_sub_configure_args], [mp_arg])
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Now prepend some arguments that should always be present unless
|
|
# overriden, such as --prefix, --silent, --disable-option-checking,
|
|
# --cache-file, --srcdir
|
|
# Pass --prefix unless already given
|
|
mp_arg_key=prefix
|
|
_MP_LIST_CONTAINS([mp_sub_configure_args], [mp_arg_key], [], [
|
|
mp_arg="--prefix=$prefix"
|
|
_MP_LIST_PREPEND_QUOTED([mp_sub_configure_args], [mp_arg])
|
|
])
|
|
|
|
# Pass --silent
|
|
if test "$silent" = yes; then
|
|
mp_arg="--silent"
|
|
_MP_LIST_PREPEND_QUOTED([mp_sub_configure_args], [mp_arg])
|
|
fi
|
|
|
|
# Always prepend --disable-option-checking to silence warnings, since
|
|
# different subdirs can have different --enable and --with options.
|
|
mp_arg="--disable-option-checking"
|
|
_MP_LIST_PREPEND_QUOTED([mp_sub_configure_args], [mp_arg])
|
|
|
|
# Make the cache file name correct relative to the subdirectory.
|
|
case $cache_file in
|
|
[[\\/]]* | ?:[[\\/]]* )
|
|
mp_sub_cache_file=$cache_file
|
|
;;
|
|
*) # Relative name.
|
|
mp_sub_cache_file=$ac_top_build_prefix$cache_file
|
|
;;
|
|
esac
|
|
mp_arg="--cache-file=$mp_sub_cache_file"
|
|
_MP_LIST_PREPEND_QUOTED([mp_sub_configure_args], [mp_arg])
|
|
|
|
mp_arg="CC=$CC"
|
|
_MP_LIST_APPEND_QUOTED([mp_sub_configure_args], [mp_arg])
|
|
|
|
AC_MSG_NOTICE([running $SHELL $ac_srcdir/configure $mp_sub_configure_args in $ac_dir])
|
|
eval "\$SHELL \$ac_srcdir/configure $mp_sub_configure_args" || AC_MSG_ERROR([configure failed for $ac_dir])
|
|
else
|
|
AC_MSG_ERROR([no configure script found in $ac_dir])
|
|
fi
|
|
AC_MSG_NOTICE([=== finished configuring in $ac_dir ($mp_popdir/$ac_dir)])
|
|
fi
|
|
cd "$mp_popdir"
|
|
])
|
|
|
|
|
|
#------------------------------------------------------------------------
|
|
# MP_CHECK_FRAMEWORK_COREFOUNDATION --
|
|
#
|
|
# Check if CoreFoundation framework is available, define HAVE_FRAMEWORK_COREFOUNDATION if so.
|
|
#
|
|
# Arguments:
|
|
# None.
|
|
#
|
|
# Requires:
|
|
# None.
|
|
#
|
|
# Depends:
|
|
# AC_LANG_PROGRAM
|
|
#
|
|
# Results:
|
|
# Result is cached.
|
|
#
|
|
# If CoreFoundation framework is available, defines the following variables:
|
|
# HAVE_FRAMEWORK_COREFOUNDATION
|
|
#
|
|
#------------------------------------------------------------------------
|
|
AC_DEFUN(MP_CHECK_FRAMEWORK_COREFOUNDATION, [
|
|
FRAMEWORK_LIBS="-framework CoreFoundation"
|
|
|
|
AC_MSG_CHECKING([for CoreFoundation framework])
|
|
|
|
AC_CACHE_VAL(mp_cv_have_framework_corefoundation, [
|
|
ac_save_LIBS="$LIBS"
|
|
LIBS="$FRAMEWORK_LIBS $LIBS"
|
|
|
|
AC_LINK_IFELSE([
|
|
AC_LANG_PROGRAM([
|
|
#include <CoreFoundation/CoreFoundation.h>
|
|
], [
|
|
CFURLRef url = CFURLCreateWithFileSystemPath(NULL, CFSTR("/testing"), kCFURLPOSIXPathStyle, 1);
|
|
CFArrayRef bundles = CFBundleCreateBundlesFromDirectory(NULL, url, CFSTR("pkg"));
|
|
])
|
|
], [
|
|
mp_cv_have_framework_corefoundation="yes"
|
|
], [
|
|
mp_cv_have_framework_corefoundation="no"
|
|
]
|
|
)
|
|
|
|
LIBS="$ac_save_LIBS"
|
|
])
|
|
|
|
AC_MSG_RESULT(${mp_cv_have_framework_corefoundation})
|
|
|
|
if test x"${mp_cv_have_framework_corefoundation}" = "xyes"; then
|
|
AC_DEFINE([HAVE_FRAMEWORK_COREFOUNDATION], [], [Define if CoreFoundation framework is available])
|
|
fi
|
|
|
|
AC_SUBST(HAVE_FRAMEWORK_COREFOUNDATION, [$mp_cv_have_framework_corefoundation])
|
|
])
|
|
|
|
|
|
#------------------------------------------------------------------------
|
|
# MP_CHECK_FUNCTION_CFNOTIFICATIONCENTERGETDARWINNOTIFYCENTER --
|
|
#
|
|
# Check if if the routine CFNOTIFICATIONCENTERGETDARWINNOTIFYCENTER
|
|
# is available in CoreFoundation.
|
|
#
|
|
# Arguments:
|
|
# None.
|
|
#
|
|
# Requires:
|
|
# None.
|
|
#
|
|
# Depends:
|
|
# AC_LANG_PROGRAM
|
|
#
|
|
# Results:
|
|
# Result is cached.
|
|
#
|
|
# If function CFNotificationCenterGetDarwinNotifyCenter is in the CoreFoundation framework, defines the following variables:
|
|
# HAVE_FUNCTION_CFNOTIFICATIONCENTERGETDARWINNOTIFYCENTER
|
|
#
|
|
#------------------------------------------------------------------------
|
|
AC_DEFUN(MP_CHECK_FUNCTION_CFNOTIFICATIONCENTERGETDARWINNOTIFYCENTER, [
|
|
FRAMEWORK_LIBS="-framework CoreFoundation"
|
|
|
|
AC_MSG_CHECKING([for CFNotificationCenterGetDarwinNotifyCenter])
|
|
|
|
AC_CACHE_VAL(mp_cv_have_function_cfnotificationcentergetdarwinnotifycenter, [
|
|
ac_save_LIBS="$LIBS"
|
|
LIBS="$FRAMEWORK_LIBS $LIBS"
|
|
|
|
AC_LINK_IFELSE([
|
|
AC_LANG_PROGRAM([
|
|
#include <CoreFoundation/CoreFoundation.h>
|
|
], [
|
|
CFNotificationCenterRef ref = CFNotificationCenterGetDarwinNotifyCenter();
|
|
])
|
|
], [
|
|
mp_cv_have_function_cfnotificationcentergetdarwinnotifycenter="yes"
|
|
], [
|
|
mp_cv_have_function_cfnotificationcentergetdarwinnotifycenter="no"
|
|
]
|
|
)
|
|
|
|
LIBS="$ac_save_LIBS"
|
|
])
|
|
|
|
AC_MSG_RESULT(${mp_cv_have_function_cfnotificationcentergetdarwinnotifycenter})
|
|
|
|
if test x"${mp_cv_have_function_cfnotificationcentergetdarwinnotifycenter}" = "xyes"; then
|
|
AC_DEFINE([HAVE_FUNCTION_CFNOTIFICATIONCENTERGETDARWINNOTIFYCENTER], [], [Define if function CFNotificationCenterGetDarwinNotifyCenter in CoreFoundation framework])
|
|
fi
|
|
|
|
AC_SUBST(HAVE_FUNCTION_CFNOTIFICATIONCENTERGETDARWINNOTIFYCENTER)
|
|
])
|
|
|
|
|
|
#------------------------------------------------------------------------
|
|
# MP_CHECK_FRAMEWORK_SYSTEMCONFIGURATION --
|
|
#
|
|
# Check if SystemConfiguration framework is available, define HAVE_FRAMEWORK_SYSTEMCONFIGURATION if so.
|
|
#
|
|
# Arguments:
|
|
# None.
|
|
#
|
|
# Requires:
|
|
# None.
|
|
#
|
|
# Depends:
|
|
# AC_LANG_PROGRAM
|
|
#
|
|
# Results:
|
|
# Result is cached.
|
|
#
|
|
# If SystemConfiguration framework is available, defines the following variables:
|
|
# HAVE_FRAMEWORK_SYSTEMCONFIGURATION
|
|
#
|
|
#------------------------------------------------------------------------
|
|
AC_DEFUN(MP_CHECK_FRAMEWORK_SYSTEMCONFIGURATION, [
|
|
FRAMEWORK_LIBS="-framework SystemConfiguration"
|
|
|
|
AC_MSG_CHECKING([for SystemConfiguration framework])
|
|
|
|
AC_CACHE_VAL(mp_cv_have_framework_systemconfiguration, [
|
|
ac_save_LIBS="$LIBS"
|
|
LIBS="$FRAMEWORK_LIBS $LIBS"
|
|
|
|
AC_LINK_IFELSE([
|
|
AC_LANG_PROGRAM([
|
|
#include <SystemConfiguration/SystemConfiguration.h>
|
|
], [
|
|
int err = SCError();
|
|
SCDynamicStoreRef dsRef = SCDynamicStoreCreate(NULL, NULL, NULL, NULL);
|
|
])
|
|
], [
|
|
mp_cv_have_framework_systemconfiguration="yes"
|
|
], [
|
|
mp_cv_have_framework_systemconfiguration="no"
|
|
]
|
|
)
|
|
|
|
LIBS="$ac_save_LIBS"
|
|
])
|
|
|
|
AC_MSG_RESULT(${mp_cv_have_framework_systemconfiguration})
|
|
|
|
if test x"${mp_cv_have_framework_systemconfiguration}" = "xyes"; then
|
|
AC_DEFINE([HAVE_FRAMEWORK_SYSTEMCONFIGURATION], [], [Define if SystemConfiguration framework is available])
|
|
fi
|
|
|
|
AC_SUBST(HAVE_FRAMEWORK_SYSTEMCONFIGURATION, [$mp_cv_have_framework_systemconfiguration])
|
|
])
|
|
|
|
|
|
#------------------------------------------------------------------------
|
|
# MP_CHECK_FRAMEWORK_IOKIT --
|
|
#
|
|
# Check if IOKit framework is available, define HAVE_FRAMEWORK_IOKIT if so.
|
|
#
|
|
# Arguments:
|
|
# None.
|
|
#
|
|
# Requires:
|
|
# None.
|
|
#
|
|
# Depends:
|
|
# AC_LANG_PROGRAM
|
|
#
|
|
# Results:
|
|
# Result is cached.
|
|
#
|
|
# If IOKit framework is available, defines the following variables:
|
|
# HAVE_FRAMEWORK_IOKIT
|
|
#
|
|
#------------------------------------------------------------------------
|
|
AC_DEFUN(MP_CHECK_FRAMEWORK_IOKIT, [
|
|
FRAMEWORK_LIBS="-framework IOKit"
|
|
|
|
AC_MSG_CHECKING([for IOKit framework])
|
|
|
|
AC_CACHE_VAL(mp_cv_have_framework_iokit, [
|
|
ac_save_LIBS="$LIBS"
|
|
LIBS="$FRAMEWORK_LIBS $LIBS"
|
|
|
|
AC_LINK_IFELSE([
|
|
AC_LANG_PROGRAM([
|
|
#include <IOKit/IOKitLib.h>
|
|
#include <IOKit/pwr_mgt/IOPMLib.h>
|
|
], [
|
|
IOCreateReceivePort(0, NULL);
|
|
IORegisterForSystemPower(0, NULL, NULL, NULL);
|
|
])
|
|
], [
|
|
mp_cv_have_framework_iokit="yes"
|
|
], [
|
|
mp_cv_have_framework_iokit="no"
|
|
]
|
|
)
|
|
|
|
LIBS="$ac_save_LIBS"
|
|
])
|
|
|
|
AC_MSG_RESULT(${mp_cv_have_framework_iokit})
|
|
|
|
if test x"${mp_cv_have_framework_iokit}" = "xyes"; then
|
|
AC_DEFINE([HAVE_FRAMEWORK_IOKIT], [], [Define if IOKit framework is available])
|
|
fi
|
|
|
|
AC_SUBST(HAVE_FRAMEWORK_IOKIT, [$mp_cv_have_framework_iokit])
|
|
])
|
|
|
|
# MP_PATH_MPCONFIGDIR
|
|
#---------------------------------------
|
|
AC_DEFUN([MP_PATH_MPCONFIGDIR],[
|
|
dnl if the user actually specified --prefix, shift
|
|
dnl mpconfigdir to $prefix/etc/macports
|
|
|
|
AC_MSG_CHECKING([for MacPorts config directory])
|
|
|
|
mpconfigdir='${sysconfdir}/macports'
|
|
|
|
AC_MSG_RESULT([$mpconfigdir])
|
|
MPCONFIGDIR="$mpconfigdir"
|
|
AC_SUBST(MPCONFIGDIR)
|
|
|
|
])
|
|
|
|
# MP_CHECK_OLDLAYOUT
|
|
#---------------------------------------
|
|
AC_DEFUN([MP_CHECK_OLDLAYOUT],[
|
|
dnl Bail if there is an existing install of DP/MP older than 1.5
|
|
|
|
AC_MSG_CHECKING([that any existing MacPorts install can be upgraded])
|
|
|
|
eval dpversionfile="${sysconfdir}/ports/dp_version"
|
|
if test -f "$dpversionfile"; then
|
|
AC_MSG_ERROR([Existing MacPorts or DarwinPorts install is too old to be upgraded. Install MacPorts 1.7.1 first.])
|
|
else
|
|
AC_MSG_RESULT([yes])
|
|
fi
|
|
|
|
])
|
|
|
|
# MP_CHECK_NOROOTPRIVILEGES
|
|
#-------------------------------------------------
|
|
AC_DEFUN([MP_CHECK_NOROOTPRIVILEGES],[
|
|
dnl if the user specifies --with-no-root-privileges,
|
|
dnl use current user and group.
|
|
dnl use ~/Library/Tcl as Tcl package directory
|
|
AC_REQUIRE([MP_PATH_MPCONFIGDIR])
|
|
|
|
AC_ARG_WITH(no-root-privileges, [AS_HELP_STRING([--with-no-root-privileges],[specify that MacPorts should be installed in your home directory])], [ROOTPRIVS=$withval] )
|
|
|
|
if test "${ROOTPRIVS+set}" = set; then
|
|
# Set install-user to current user
|
|
AC_MSG_CHECKING([for install user])
|
|
DSTUSR=`id -un`
|
|
AC_MSG_RESULT([$DSTUSR])
|
|
AC_SUBST(DSTUSR)
|
|
|
|
# Set install-group to current user
|
|
AC_MSG_CHECKING([for install group])
|
|
DSTGRP=`id -gn`
|
|
AC_MSG_RESULT([$DSTGRP])
|
|
AC_SUBST(DSTGRP)
|
|
|
|
# Set run-user to current user
|
|
AC_MSG_CHECKING([for macports user])
|
|
RUNUSR=`id -un`
|
|
AC_MSG_RESULT([$RUNUSR])
|
|
AC_SUBST(RUNUSR)
|
|
fi
|
|
|
|
])
|
|
|
|
# MP_CHECK_RUNUSER
|
|
#-------------------------------------------------
|
|
AC_DEFUN([MP_CHECK_RUNUSER],[
|
|
dnl if the user specifies --with-macports-user,
|
|
dnl use it, otherwise default to platform defaults
|
|
AC_REQUIRE([MP_PATH_MPCONFIGDIR])
|
|
|
|
AC_ARG_WITH(macports-user, [AS_HELP_STRING([--with-macports-user=USER],[specify user to drop privileges to, if possible, during compiles, etc.])], [ RUNUSR=$withval ] )
|
|
|
|
AC_MSG_CHECKING([for macports user])
|
|
if test "x$RUNUSR" = "x" ; then
|
|
RUNUSR=macports
|
|
fi
|
|
|
|
AC_MSG_RESULT([$RUNUSR])
|
|
AC_SUBST(RUNUSR)
|
|
])
|
|
|
|
|
|
# MP_SHARED_DIRECTORY
|
|
#-------------------------------------------------
|
|
AC_DEFUN([MP_SHARED_DIRECTORY],[
|
|
dnl if the user specifies --with-shared-directory,
|
|
dnl use 0775 permissions for ${prefix} directories
|
|
AC_REQUIRE([MP_PATH_MPCONFIGDIR])
|
|
|
|
AC_ARG_WITH(shared-directory, [AS_HELP_STRING([--with-shared-directory],[use 0775 permissions for installed directories])], [ SHAREDIR=$withval ] )
|
|
|
|
if test "${SHAREDIR+set}" = set; then
|
|
AC_MSG_CHECKING([whether to share the install directory with all members of the install group])
|
|
DSTMODE=0775
|
|
|
|
AC_MSG_RESULT([$DSTMODE])
|
|
AC_SUBST(DSTMODE)
|
|
fi
|
|
])
|
|
|
|
# MP_CHECK_INSTALLUSER
|
|
#-------------------------------------------------
|
|
AC_DEFUN([MP_CHECK_INSTALLUSER],[
|
|
dnl if the user specifies --with-install-user,
|
|
dnl use it, otherwise default to platform defaults
|
|
AC_REQUIRE([MP_PATH_MPCONFIGDIR])
|
|
|
|
AC_ARG_WITH(install-user, [AS_HELP_STRING([--with-install-user=USER],[specify user ownership of installed files])], [ DSTUSR=$withval ] )
|
|
|
|
AC_MSG_CHECKING([for install user])
|
|
if test "x$DSTUSR" = "x" ; then
|
|
DSTUSR=root
|
|
fi
|
|
|
|
AC_MSG_RESULT([$DSTUSR])
|
|
AC_SUBST(DSTUSR)
|
|
])
|
|
|
|
# MP_CHECK_INSTALLGROUP
|
|
#-------------------------------------------------
|
|
AC_DEFUN([MP_CHECK_INSTALLGROUP],[
|
|
dnl if the user specifies --with-install-group,
|
|
dnl use it, otherwise default to platform defaults
|
|
AC_REQUIRE([MP_CHECK_INSTALLUSER])
|
|
|
|
AC_ARG_WITH(install-group, [AS_HELP_STRING([--with-install-group=GROUP],[specify group ownership of installed files])], [ DSTGRP=$withval ] )
|
|
|
|
AC_MSG_CHECKING([for install group])
|
|
if test "x$DSTGRP" = "x" ; then
|
|
case $host_os in
|
|
darwin*)
|
|
DSTGRP="admin"
|
|
;;
|
|
freebsd*)
|
|
DSTGRP="wheel"
|
|
;;
|
|
linux*)
|
|
DSTGRP="root"
|
|
;;
|
|
*)
|
|
DSTGRP="wheel"
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
AC_MSG_RESULT([$DSTGRP])
|
|
AC_SUBST(DSTGRP)
|
|
])
|
|
|
|
# MP_DIRECTORY_MODE
|
|
#-------------------------------------------------
|
|
AC_DEFUN([MP_DIRECTORY_MODE],[
|
|
dnl if the user specifies --with-directory-mode,
|
|
dnl use the specified permissions for ${prefix} directories,
|
|
dnl otherwise use 0755
|
|
AC_REQUIRE([MP_PATH_MPCONFIGDIR])
|
|
|
|
AC_ARG_WITH(directory-mode, [AS_HELP_STRING([--with-directory-mode=MODE],[specify directory mode of installed directories])], [ DSTMODE=$withval ] )
|
|
|
|
AC_MSG_CHECKING([what permissions to use for installation directories])
|
|
if test "x$DSTMODE" = "x" ; then
|
|
DSTMODE=0755
|
|
fi
|
|
|
|
AC_MSG_RESULT([$DSTMODE])
|
|
AC_SUBST(DSTMODE)
|
|
])
|
|
|
|
# MP_PATH_APPLICATIONS
|
|
#---------------------------------------
|
|
AC_DEFUN([MP_PATH_APPLICATIONS],[
|
|
AC_REQUIRE([MP_CHECK_INSTALLUSER])
|
|
|
|
AC_ARG_WITH(applications-dir,[AS_HELP_STRING([--with-applications-dir],[applications installation directory])], MPAPPLICATIONSDIR=${withval})
|
|
|
|
oldprefix=$prefix
|
|
if test "x$prefix" = "xNONE" ; then
|
|
prefix=$ac_default_prefix
|
|
fi
|
|
AC_MSG_CHECKING([for Applications installation directory])
|
|
|
|
if test "x$MPAPPLICATIONSDIR" = "x" ; then
|
|
if test "$DSTUSR" = "root" ; then
|
|
MPAPPLICATIONSDIR="/Applications/MacPorts"
|
|
else
|
|
MPAPPLICATIONSDIR="$(eval echo ~$DSTUSR)/Applications/MacPorts"
|
|
fi
|
|
fi
|
|
|
|
AC_MSG_RESULT([$MPAPPLICATIONSDIR])
|
|
AC_SUBST(MPAPPLICATIONSDIR)
|
|
prefix=$oldprefix
|
|
])
|
|
|
|
# MP_PATH_FRAMEWORKS
|
|
#---------------------------------------
|
|
AC_DEFUN([MP_PATH_FRAMEWORKS],[
|
|
AC_REQUIRE([MP_CHECK_INSTALLUSER])
|
|
|
|
AC_ARG_WITH(frameworks-dir,[AS_HELP_STRING([--with-frameworks-dir],[frameworks installation directory])], MPFRAMEWORKSDIR=${withval})
|
|
|
|
oldprefix=$prefix
|
|
if test "x$prefix" = "xNONE" ; then
|
|
prefix=$ac_default_prefix
|
|
fi
|
|
AC_MSG_CHECKING([for Frameworks installation directory])
|
|
|
|
if test "x$MPFRAMEWORKSDIR" = "x" ; then
|
|
MPFRAMEWORKSDIR="${prefix}/Library/Frameworks"
|
|
fi
|
|
|
|
AC_MSG_RESULT([$MPFRAMEWORKSDIR])
|
|
AC_SUBST(MPFRAMEWORKSDIR)
|
|
prefix=$oldprefix
|
|
])
|
|
|
|
# MP_CHECK_STARTUPITEMS
|
|
#-------------------------------------------------
|
|
AC_DEFUN([MP_CHECK_STARTUPITEMS],[
|
|
dnl if the user specifies --without-startupitems,
|
|
dnl set "startupitem_install no" in macports.conf
|
|
AC_ARG_WITH(startupitems, [AS_HELP_STRING([--without-startupitems],[set "startupitem_install no" in macports.conf])], [with_startupitems=$withval], [with_startupitems=default] )
|
|
|
|
AC_MSG_CHECKING([for startupitem_install])
|
|
|
|
if test "x$with_startupitems" = "xno" ; then
|
|
startupitem_install="startupitem_install no"
|
|
elif test "x$with_startupitems" = "xdefault" -a "$DSTUSR" != "root" ; then
|
|
startupitem_install="startupitem_install no"
|
|
with_startupitems=no
|
|
else
|
|
startupitem_install="#startupitem_install yes"
|
|
with_startupitems=yes
|
|
fi
|
|
|
|
AC_MSG_RESULT([$with_startupitems])
|
|
AC_SUBST(startupitem_install)
|
|
])
|
|
|
|
|
|
# MP_UNIVERSAL_OPTIONS
|
|
#---------------------------------------
|
|
AC_DEFUN([MP_UNIVERSAL_OPTIONS],[
|
|
AC_ARG_WITH(universal-archs,[AS_HELP_STRING([--with-universal-archs="CPU"],[universal CPU architectures (space separated)])], UNIVERSAL_ARCHS=${withval})
|
|
|
|
if test "x$UNIVERSAL_ARCHS" = "x"; then
|
|
case "$MACOSX_VERSION" in
|
|
10.1[[0-3]]*)
|
|
UNIVERSAL_ARCHS="x86_64 i386"
|
|
;;
|
|
10.1[[4-9]]*)
|
|
UNIVERSAL_ARCHS="x86_64"
|
|
;;
|
|
10.[[0-5]]*)
|
|
UNIVERSAL_ARCHS="i386 ppc"
|
|
;;
|
|
10.[[6-9]]*)
|
|
UNIVERSAL_ARCHS="x86_64 i386"
|
|
;;
|
|
*)
|
|
UNIVERSAL_ARCHS="arm64 x86_64"
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
UNIVERSAL_ARCHFLAGS=
|
|
for arch in $UNIVERSAL_ARCHS; do
|
|
UNIVERSAL_ARCHFLAGS="$UNIVERSAL_ARCHFLAGS -arch $arch"
|
|
done
|
|
|
|
AC_MSG_CHECKING([for Universal CPU architectures])
|
|
AC_MSG_RESULT([$UNIVERSAL_ARCHS])
|
|
AC_SUBST(UNIVERSAL_ARCHS)
|
|
AC_SUBST(UNIVERSAL_ARCHFLAGS)
|
|
])
|
|
|
|
# MP_LIB_MD5
|
|
#---------------------------------------
|
|
# Check for an md5 implementation
|
|
AC_DEFUN([MP_LIB_MD5],[
|
|
# Check for libmd from FreeBSD, which is preferred
|
|
AC_CHECK_LIB([md], [MD5File],[
|
|
AC_CHECK_HEADERS([md5.h sha.h], ,[
|
|
AC_MSG_ERROR([libmd was found, but md5.h or sha.h is missing.])
|
|
])
|
|
ac_save_LIBS="$LIBS"
|
|
LIBS="-lmd $LIBS"
|
|
AC_CHECK_DECLS([SHA1_File], [], [], [[#include <sha.h>]])
|
|
LIBS="$ac_save_LIBS"
|
|
AC_CHECK_HEADERS([ripemd.h sha256.h])
|
|
AC_DEFINE([HAVE_LIBMD], ,[Define if you have the `md' library (-lmd).])
|
|
MD5_LIBS="-lmd"]
|
|
)
|
|
if test "x$MD5_LIBS" = "x"; then
|
|
# If libmd is not found, check for libcrypto from OpenSSL
|
|
AC_CHECK_LIB([crypto], [MD5_Update],[
|
|
AC_CHECK_HEADERS([openssl/md5.h openssl/sha.h], ,[
|
|
AC_MSG_ERROR([libcrypto was found, but openssl/md5.h or openssl/sha.h is missing.])
|
|
])
|
|
AC_CHECK_HEADERS([openssl/ripemd.h])
|
|
ac_save_LIBS="$LIBS"
|
|
LIBS="-lcrypto $LIBS"
|
|
AC_CHECK_FUNCS([SHA256_Update])
|
|
LIBS="$ac_save_LIBS"
|
|
AC_DEFINE([HAVE_LIBCRYPTO], ,[Define if you have the `crypto' library (-lcrypto).])
|
|
MD5_LIBS="-lcrypto"]
|
|
)
|
|
fi
|
|
if test "x$MD5_LIBS" = "x"; then
|
|
AC_MSG_ERROR([Neither CommonCrypto, libmd nor libcrypto were found. A working md5 implementation is required.])
|
|
fi
|
|
AC_SUBST([MD5_LIBS])
|
|
])
|
|
|
|
# MP_PROG_DAEMONDO
|
|
#---------------------------------------
|
|
AC_DEFUN([MP_PROG_DAEMONDO],[
|
|
AC_REQUIRE([MP_CHECK_FRAMEWORK_COREFOUNDATION])
|
|
AC_REQUIRE([MP_CHECK_FRAMEWORK_SYSTEMCONFIGURATION])
|
|
AC_REQUIRE([MP_CHECK_FRAMEWORK_IOKIT])
|
|
AC_REQUIRE([MP_CHECK_FUNCTION_CFNOTIFICATIONCENTERGETDARWINNOTIFYCENTER])
|
|
|
|
AC_MSG_CHECKING(for whether we will build daemondo)
|
|
result=no
|
|
case $host_os in
|
|
darwin*)
|
|
if test "x$mp_cv_have_framework_corefoundation" = "xyes" &&
|
|
test "x$mp_cv_have_framework_systemconfiguration" = "xyes" &&
|
|
test "x$mp_cv_have_framework_iokit" = "xyes" &&
|
|
test "x$mp_cv_have_function_cfnotificationcentergetdarwinnotifycenter" = "xyes"; then
|
|
result=yes
|
|
EXTRA_PROGS="$EXTRA_PROGS daemondo"
|
|
AC_CONFIG_FILES([src/programs/daemondo/Makefile])
|
|
fi
|
|
;;
|
|
*)
|
|
esac
|
|
AC_MSG_RESULT(${result})
|
|
])
|
|
|
|
# MP_LIBCURL_FLAGS
|
|
# Sets the flags to compile with libcurl.
|
|
#
|
|
# Arguments:
|
|
# None.
|
|
#
|
|
# Requires:
|
|
# curl-config or user parameters to define the flags.
|
|
#
|
|
# Results:
|
|
# defines some help strings.
|
|
# sets CFLAGS_LIBCURL and LDFLAGS_LIBCURL
|
|
#---------------------------------------
|
|
AC_DEFUN([MP_LIBCURL_FLAGS],[
|
|
AC_ARG_WITH(curlprefix,
|
|
[ --with-curlprefix base directory for the curl install ('/usr', '/usr/local', ...)],
|
|
[ curlprefix=$withval ])
|
|
|
|
if test "x$curlprefix" = "x"; then
|
|
AC_PATH_PROG([CURL_CONFIG], [curl-config])
|
|
else
|
|
AC_PATH_PROG([CURL_CONFIG], [curl-config], , [$curlprefix/bin])
|
|
fi
|
|
|
|
if test "x$CURL_CONFIG" = "x"; then
|
|
AC_MSG_ERROR([cannot find curl-config. Is libcurl installed?])
|
|
fi
|
|
|
|
CFLAGS_LIBCURL=$($CURL_CONFIG --cflags)
|
|
if test "x$curlprefix" = "x"; then
|
|
# System curl-config emits absurd output for --libs
|
|
# See rdar://7244457
|
|
LDFLAGS_LIBCURL="-lcurl"
|
|
else
|
|
# Due to a bug in dist, --arch flags are improperly supplied by curl-config.
|
|
# Get rid of them.
|
|
LDFLAGS_LIBCURL=$($CURL_CONFIG --libs | [sed 's/-arch [A-Za-z0-9_]* //g'])
|
|
fi
|
|
|
|
AC_SUBST(CFLAGS_LIBCURL)
|
|
AC_SUBST(LDFLAGS_LIBCURL)
|
|
])
|
|
|
|
dnl This macro tests if the compiler supports GCC's
|
|
dnl __attribute__ syntax for unused variables/parameters
|
|
AC_DEFUN([MP_COMPILER_ATTRIBUTE_UNUSED], [
|
|
AC_MSG_CHECKING([how to mark unused variables])
|
|
AC_COMPILE_IFELSE(
|
|
[AC_LANG_SOURCE([[int a __attribute__ ((unused));]])],
|
|
[AC_DEFINE(UNUSED, [__attribute__((unused))], [Attribute to mark unused variables])],
|
|
[AC_DEFINE(UNUSED, [])])
|
|
|
|
AC_MSG_RESULT([])
|
|
|
|
])
|
|
|
|
dnl This macro ensures MP installation prefix paths are NOT in CFLAGS,
|
|
dnl CPPFLAGS, OBJCFLAGS, LDFLAGS for configure to prevent potential problems
|
|
dnl when base/ code is updated and ports are installed that would match needed
|
|
dnl items.
|
|
AC_DEFUN([MP_FLAGS_SCAN],[
|
|
AC_ARG_ENABLE(
|
|
[flag-sanitization],
|
|
AS_HELP_STRING([--disable-flag-sanitization], [do not sanitize CPPFLAGS, CFLAGS, OBJCFLAGS and LDFLAGS]),
|
|
[disable_mp_flags_scan=yes],
|
|
[disable_mp_flags_scan=no])
|
|
|
|
if test x"$disable_mp_flags_scan" != "xyes"; then
|
|
# Get a value for $prefix
|
|
oldprefix=$prefix
|
|
if test "x$prefix" = "xNONE" ; then
|
|
prefix=$ac_default_prefix
|
|
fi
|
|
|
|
mp_flags_scan_found=
|
|
|
|
# Clean CFLAGS CPPFLAGS OBJCFLAGS and LDFLAGS
|
|
for mp_flags_flagname in CFLAGS CPPFLAGS OBJCFLAGS LDFLAGS; do
|
|
mp_flags_scan_flag_cleaned=
|
|
eval "set x \$$mp_flags_flagname"
|
|
shift
|
|
for mp_flags_scan_val; do
|
|
case "$mp_flags_scan_val" in
|
|
-I$prefix/* | -L$prefix/*)
|
|
AC_MSG_NOTICE([Removing `$mp_flags_scan_val' from \$$mp_flags_flagname because it might cause a self-dependency])
|
|
mp_flags_scan_found=1
|
|
;; #(
|
|
*)
|
|
if test -z "$mp_flags_scan_flag_cleaned"; then
|
|
mp_flags_scan_flag_cleaned=$mp_flags_scan_val
|
|
else
|
|
AS_VAR_APPEND([mp_flags_scan_flag_cleaned], [" $mp_flags_scan_val"])
|
|
fi
|
|
;;
|
|
esac
|
|
done
|
|
if test -z "$mp_flags_scan_flag_cleaned"; then
|
|
(unset $mp_flags_flagname) >/dev/null 2>&1 && unset $mp_flags_flagname
|
|
(export -n $mp_flags_flagname) >/dev/null 2>&1 && export -n $mp_flags_flagname
|
|
else
|
|
eval "$mp_flags_flagname=\"$mp_flags_scan_flag_cleaned\""
|
|
export $mp_flags_flagname
|
|
fi
|
|
eval "ac_env_${mp_flags_flagname}_set=\${${mp_flags_flagname}+set}"
|
|
eval "ac_env_${mp_flags_flagname}_value=\${${mp_flags_flagname}}"
|
|
eval "ac_cv_env_${mp_flags_flagname}_set=\${${mp_flags_flagname}+set}"
|
|
eval "ac_cv_env_${mp_flags_flagname}_value=\${${mp_flags_flagname}}"
|
|
done
|
|
|
|
# Since those are all precious variables they have been saved into config.cache and put into $ac_configure_args
|
|
# We need to remove them at least from $ac_configure_args, because that's being passed to sub-configures
|
|
eval "set x $ac_configure_args"
|
|
shift
|
|
ac_configure_args=
|
|
for mp_flags_configure_arg; do
|
|
case "$mp_flags_configure_arg" in
|
|
CFLAGS=* | CPPFLAGS=* | OBJCFLAGS=* | LDFLAGS=*)
|
|
mp_flags_configure_arg_key=$(AS_ECHO(["$mp_flags_configure_arg"]) | sed -E 's/^([[^=]]+)=.*$/\1/')
|
|
eval "mp_flags_configure_arg_newval=\$$mp_flags_configure_arg_key"
|
|
if test -n "$mp_flags_configure_arg_newval"; then
|
|
AS_VAR_APPEND([ac_configure_args], [" '$mp_flags_configure_arg_key=$mp_flags_configure_arg_newval'"])
|
|
fi
|
|
;;
|
|
*)
|
|
AS_VAR_APPEND([ac_configure_args], [" '$mp_flags_configure_arg'"])
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if ! test -z "$mp_flags_scan_found"; then
|
|
AC_MSG_NOTICE([See https://trac.macports.org/ticket/42756 for rationale on why this script is removing these values])
|
|
AC_MSG_NOTICE([Pass --disable-flag-sanitization if you're aware of the potential problems and want to risk them anyway])
|
|
fi
|
|
|
|
# Restore $prefix
|
|
prefix=$oldprefix
|
|
fi
|
|
])
|
|
|
|
|
|
dnl This macro ensures MP installation prefix paths are NOT in PATH
|
|
dnl for configure to prevent potential problems when base/ code is updated
|
|
dnl and ports are installed that would match needed items.
|
|
AC_DEFUN([MP_PATH_SCAN],[
|
|
oldprefix=$prefix
|
|
if test "x$prefix" = "xNONE" ; then
|
|
prefix=$ac_default_prefix
|
|
fi
|
|
oldPATH=$PATH
|
|
newPATH=
|
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
for as_dir in $oldPATH
|
|
do
|
|
IFS=$as_save_IFS
|
|
case "$as_dir" in
|
|
$prefix/*)
|
|
;;
|
|
*)
|
|
if test -z "$newPATH"; then
|
|
newPATH=$as_dir
|
|
else
|
|
newPATH=$newPATH$PATH_SEPARATOR$as_dir
|
|
fi
|
|
;;
|
|
esac
|
|
done
|
|
PATH=$newPATH; export PATH
|
|
AC_SUBST(PATH_CLEANED,$newPATH)
|
|
prefix=$oldprefix
|
|
])
|
|
|
|
dnl This macro tests for tar support of -q (BSD) or not (GNU)
|
|
AC_DEFUN([MP_TAR_FAST_READ],[
|
|
AC_PATH_PROG(TAR, [tar])
|
|
|
|
AC_MSG_CHECKING([whether tar supports -q])
|
|
if $TAR -t -q -f - </dev/null 2>/dev/null ; then
|
|
AC_MSG_RESULT([yes (bsdtar)])
|
|
TAR_Q='q'
|
|
else
|
|
AC_MSG_RESULT([no (gnutar)])
|
|
TAR_Q=
|
|
fi
|
|
AC_SUBST(TAR_Q)
|
|
])
|
|
|
|
dnl This macro tests for tar support of --no-same-owner
|
|
AC_DEFUN([MP_TAR_NO_SAME_OWNER],[
|
|
AC_PATH_PROG(TAR, [tar])
|
|
AC_PATH_PROG(GNUTAR, [gnutar])
|
|
|
|
AC_MSG_CHECKING([for which tar variant to use])
|
|
AS_IF([test -n "$GNUTAR"], [TAR_CMD=$GNUTAR], [TAR_CMD=$TAR])
|
|
AC_MSG_RESULT([$TAR_CMD])
|
|
AC_SUBST(TAR_CMD)
|
|
|
|
AC_MSG_CHECKING([for $TAR_CMD --no-same-owner support])
|
|
[no_same_owner_support=`$TAR_CMD --help 2>&1 | grep no-same-owner`]
|
|
if test -z "$no_same_owner_support" ; then
|
|
AC_MSG_RESULT([no])
|
|
else
|
|
AC_MSG_RESULT([yes])
|
|
TAR_CMD="$TAR_CMD --no-same-owner"
|
|
fi
|
|
])
|
|
|
|
dnl This macro tests for GNU patch
|
|
AC_DEFUN([MP_PATCH_GNU_VERSION],[
|
|
AC_PATH_PROG(PATCH, [patch])
|
|
AC_PATH_PROG(GNUPATCH, [gpatch])
|
|
|
|
AC_MSG_CHECKING([for GNU (FSF) patch])
|
|
AS_IF([test -n "$GNUPATCH"], [PATCH_CMD=$GNUPATCH], [PATCH_CMD=$PATCH])
|
|
[fsf_version=`$PATCH_CMD --version 2>&1 | grep "Free Software Foundation"`]
|
|
if test -z "$fsf_version" ; then
|
|
AC_MSG_RESULT([none])
|
|
else
|
|
AC_MSG_RESULT([$PATCH_CMD])
|
|
GNUPATCH="$PATCH_CMD"
|
|
fi
|
|
])
|
|
|
|
#------------------------------------------------------------------------
|
|
# MP_WERROR --
|
|
#
|
|
# Enable -Werror
|
|
#
|
|
# Arguments:
|
|
# None.
|
|
#
|
|
# Requires:
|
|
# none
|
|
#
|
|
# Depends:
|
|
# none
|
|
#
|
|
# Results:
|
|
# Substitutes WERROR_CFLAGS variable
|
|
#------------------------------------------------------------------------
|
|
AC_DEFUN([MP_WERROR],[
|
|
AC_REQUIRE([AC_PROG_CC])
|
|
AC_ARG_ENABLE(werror, AS_HELP_STRING([--enable-werror],[add -Werror to CFLAGS (used for development)]), [enable_werror=${enableval}], [enable_werror=no])
|
|
if test x"$enable_werror" != "xno"; then
|
|
CFLAGS_WERROR="-Werror"
|
|
else
|
|
CFLAGS_WERROR=""
|
|
fi
|
|
AC_SUBST([CFLAGS_WERROR])
|
|
])
|
|
|
|
#------------------------------------------------------------------------
|
|
# MP_PLATFORM --
|
|
#
|
|
# Export target platform and major version
|
|
#
|
|
# Arguments:
|
|
# none.
|
|
#
|
|
# Requires:
|
|
# none.
|
|
#
|
|
# Depends:
|
|
# none.
|
|
#
|
|
# Results:
|
|
# Defines OS_PLATFORM and OS_MAJOR.
|
|
#
|
|
#------------------------------------------------------------------------
|
|
AC_DEFUN([MP_PLATFORM],[
|
|
AC_MSG_CHECKING([for target platform])
|
|
OS_PLATFORM=`uname -s | tr '[[:upper:]]' '[[:lower:]]'`
|
|
OS_MAJOR=`uname -r | cut -d '.' -f 1`
|
|
AC_MSG_RESULT($OS_PLATFORM $OS_MAJOR)
|
|
AC_SUBST(OS_PLATFORM)
|
|
AC_SUBST(OS_MAJOR)
|
|
])
|
|
|
|
#------------------------------------------------------------------------
|
|
# MP_TRACEMODE_SUPPORT --
|
|
#
|
|
# Check whether trace mode is supported on this platform
|
|
#
|
|
# Arguments:
|
|
# none.
|
|
#
|
|
# Requires:
|
|
# OS_PLATFORM and OS_MAJOR from MP_PLATFORM.
|
|
#
|
|
# Depends:
|
|
# none.
|
|
#
|
|
# Results:
|
|
# Defines the TRACEMODE_SUPPORT substitution and the
|
|
# HAVE_TRACEMODE_SUPPORT macro.
|
|
#
|
|
#------------------------------------------------------------------------
|
|
AC_DEFUN([MP_TRACEMODE_SUPPORT],[
|
|
AC_REQUIRE([MP_PLATFORM])
|
|
|
|
AC_CHECK_FUNCS([kqueue kevent])
|
|
|
|
AC_MSG_CHECKING([whether trace mode is supported on this platform])
|
|
if test x"${OS_PLATFORM}" != "xdarwin"; then
|
|
AC_MSG_RESULT([not darwin, no])
|
|
TRACEMODE_SUPPORT=0
|
|
elif test x"${ac_cv_func_kqueue}" != "xyes"; then
|
|
AC_MSG_RESULT([kqueue() not available, no])
|
|
TRACEMODE_SUPPORT=0
|
|
elif test x"${ac_cv_func_kevent}" != "xyes"; then
|
|
AC_MSG_RESULT([kevent() not available, no])
|
|
TRACEMODE_SUPPORT=0
|
|
else
|
|
AC_EGREP_CPP(yes_have_ev_receipt, [
|
|
#include <sys/types.h>
|
|
#include <sys/event.h>
|
|
#include <sys/time.h>
|
|
#ifdef EV_RECEIPT
|
|
yes_have_ev_receipt
|
|
#endif
|
|
],[
|
|
AC_MSG_RESULT([yes])
|
|
TRACEMODE_SUPPORT=1
|
|
AC_DEFINE([HAVE_TRACEMODE_SUPPORT], [1], [Platform supports tracemode.])
|
|
],[
|
|
AC_MSG_RESULT([EV_RECEIPT not available, no])
|
|
TRACEMODE_SUPPORT=0
|
|
])
|
|
fi
|
|
AC_SUBST(TRACEMODE_SUPPORT)
|
|
])
|