freetype/configure
Alexei Podtelezhnikov 5c37b64062 * configure: Use sed instead of grep.
This is more portable and consistent with `autogen.sh`.
2023-03-02 20:53:21 +00:00

138 lines
3.9 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (C) 2002-2023 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
#
#
# Call the `configure' script located in `builds/unix'.
#
rm -f config.mk builds/unix/unix-def.mk builds/unix/unix-cc.mk
# respect GNUMAKE environment variable for backward compatibility
if test "x$GNUMAKE" = x; then
if test "x$MAKE" = x; then
if test "x`make -v 2>/dev/null | sed -n -e '/GNU/p' -e '/makepp/p'`" = x; then
MAKE=gmake
else
MAKE=make
fi
fi
else
MAKE=$GNUMAKE
fi
if test "x`$MAKE -v 2>/dev/null | sed -n -e '/GNU/p' -e '/makepp/p'`" = x; then
echo "GNU make (>= 3.81) or makepp (>= 2.0) is required to build FreeType2." >&2
echo "Please try" >&2
echo >&2
echo " MAKE=<GNU make command name> $0" >&2
echo >&2
echo "or" >&2
echo >&2
echo " MAKE=\"makepp --norc-substitution\" $0" >&2
exit 1
fi
# Get `dirname' functionality. This is taken and adapted from autoconf's
# m4sh.m4 (_AS_EXPR_PREPARE, AS_DIRNAME_EXPR, and AS_DIRNAME_SED).
if expr a : '\(a\)' >/dev/null 2>&1; then
ft_expr=expr
else
ft_expr=false
fi
ft2_dir=`(dirname "$0") 2>/dev/null ||
$ft_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$0" : 'X\(//\)[^/]' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| \
. : '\(.\)' 2>/dev/null ||
echo X"$0" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
abs_curr_dir=`pwd`
abs_ft2_dir=`cd "$ft2_dir" && pwd`
# `--srcdir=' option can override abs_ft2_dir
if test $# -gt 0; then
for x in "$@"; do
case x"$x" in
x--srcdir=*)
abs_ft2_dir=`echo $x | sed 's/^--srcdir=//'` ;;
esac
done
fi
# build a dummy Makefile if we are not building in the source tree;
# we use inodes to avoid issues with symbolic links
inode_src=`ls -id $abs_ft2_dir | awk '{print $1}'`
inode_dst=`ls -id $abs_curr_dir | awk '{print $1}'`
if test $inode_src != $inode_dst; then
if test ! -d docs; then
mkdir docs
echo "Copying documentation assets"
cp -R $abs_ft2_dir/docs/markdown $abs_curr_dir/docs
fi
if test ! -r $abs_curr_dir/modules.cfg; then
echo "Copying \`modules.cfg'"
cp $abs_ft2_dir/modules.cfg $abs_curr_dir
fi
echo "Generating \`Makefile'"
echo "TOP_DIR := $abs_ft2_dir" > Makefile
echo "OBJ_DIR := $abs_curr_dir" >> Makefile
echo "OBJ_BUILD := \$(OBJ_DIR)" >> Makefile
echo "DOC_DIR := \$(OBJ_DIR)/docs" >> Makefile
echo "FT_LIBTOOL_DIR := \$(OBJ_DIR)" >> Makefile
echo "ifndef FT2DEMOS" >> Makefile
echo " include \$(TOP_DIR)/Makefile" >> Makefile
echo "else" >> Makefile
echo " TOP_DIR_2 := \$(TOP_DIR)/../ft2demos" >> Makefile
echo " PROJECT := freetype" >> Makefile
echo " CONFIG_MK := \$(OBJ_DIR)/config.mk" >> Makefile
echo " include \$(TOP_DIR_2)/Makefile" >> Makefile
echo "endif" >> Makefile
fi
# call make
CFG=
# work around zsh bug which doesn't like `${1+"$@"}'
case $# in
0) ;;
*) for x in "$@"; do
case x"$x" in
x--srcdir=* ) CFG="$CFG '$x'/builds/unix" ;;
*) CFG="$CFG '$x'" ;;
esac
done ;;
esac
CFG=$CFG $MAKE setup unix
# eof