summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraham Leggett <minfrin@apache.org>2019-12-31 21:26:02 +0000
committerGraham Leggett <minfrin@apache.org>2019-12-31 21:26:02 +0000
commitb6dbbc77da35a7b46754c99f465827f2a583e23c (patch)
tree016a8c2322ba2d673f6d182850c7ced86207a720
parent609814e7d74f83492d276c13b782666351989976 (diff)
downloadapr-b6dbbc77da35a7b46754c99f465827f2a583e23c.tar.gz
Add the ability to cross compile APR.
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/branches/1.7.x@1872147 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--CHANGES2
-rw-r--r--apr-config.in22
2 files changed, 24 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index bdaf79bd9..7c3edba58 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,8 @@
-*- coding: utf-8 -*-
Changes for APR 1.7.1
+ *) Add the ability to cross compile APR. [Graham Leggett]
+
*) While cross-compiling, the tools/gen_test_char could not
be executed at build time, use AX_PROG_CC_FOR_BUILD to
build native tools/gen_test_char
diff --git a/apr-config.in b/apr-config.in
index 84b407356..4873fc00e 100644
--- a/apr-config.in
+++ b/apr-config.in
@@ -48,6 +48,14 @@ APR_LIBNAME="@APR_LIBNAME@"
# NOTE: the following line is modified during 'make install': alter with care!
location=@APR_CONFIG_LOCATION@
+# absolute path, but not installed path - we're cross compiling
+case "$0" in
+ "${bindir}/"*) ;;
+ "/"*) location=crosscompile;
+ APR_TARGET_DIR=${0%${bindir}/apr-${APR_MAJOR_VERSION}-config} ;;
+ *) ;;
+esac
+
show_usage()
{
cat << EOF
@@ -93,6 +101,8 @@ fi
if test "$location" = "installed"; then
LA_FILE="$libdir/lib${APR_LIBNAME}.la"
+elif test "$location" = "crosscompile"; then
+ LA_FILE="$APR_TARGET_DIR/$libdir/lib${APR_LIBNAME}.la"
else
LA_FILE="$APR_BUILD_DIR/lib${APR_LIBNAME}.la"
fi
@@ -122,6 +132,8 @@ while test $# -gt 0; do
--includedir)
if test "$location" = "installed"; then
flags="$includedir"
+ elif test "$location" = "crosscompile"; then
+ flags="$APR_TARGET_DIR/$includedir"
elif test "$location" = "source"; then
flags="$APR_SOURCE_DIR/include"
else
@@ -154,6 +166,8 @@ while test $# -gt 0; do
--includes)
if test "$location" = "installed"; then
flags="$flags -I$includedir $EXTRA_INCLUDES"
+ elif test "$location" = "crosscompile"; then
+ flags="$flags -I$APR_TARGET_DIR/$includedir $EXTRA_INCLUDES"
elif test "$location" = "source"; then
flags="$flags -I$APR_SOURCE_DIR/include $EXTRA_INCLUDES"
else
@@ -168,6 +182,8 @@ while test $# -gt 0; do
--installbuilddir)
if test "$location" = "installed"; then
echo "${installbuilddir}"
+ elif test "$location" = "crosscompile"; then
+ echo "$APR_TARGET_DIR/${installbuilddir}"
elif test "$location" = "source"; then
echo "$APR_SOURCE_DIR/build"
else
@@ -184,6 +200,8 @@ while test $# -gt 0; do
if test "$location" = "installed"; then
### avoid using -L if libdir is a "standard" location like /usr/lib
flags="$flags -L$libdir -l${APR_LIBNAME}"
+ elif test "$location" = "crosscompile"; then
+ flags="$flags -L$APR_TARGET_DIR/$libdir -l${APR_LIBNAME}"
else
### this surely can't work since the library is in .libs?
flags="$flags -L$APR_BUILD_DIR -l${APR_LIBNAME}"
@@ -201,6 +219,8 @@ while test $# -gt 0; do
# Since the user is specifying they are linking with libtool, we
# *know* that -R will be recognized by libtool.
flags="$flags -L$libdir -R$libdir -l${APR_LIBNAME}"
+ elif test "$location" = "crosscompile"; then
+ flags="$flags -L${APR_TARGET_DIR}/$libdir -l${APR_LIBNAME}"
else
flags="$flags $LA_FILE"
fi
@@ -225,6 +245,8 @@ while test $# -gt 0; do
--apr-libtool)
if test "$location" = "installed"; then
echo "${installbuilddir}/libtool"
+ elif test "$location" = "crosscompile"; then
+ echo "$APR_TARGET_DIR/${installbuilddir}/build"
else
echo "$APR_BUILD_DIR/libtool"
fi