de9faa53ed
Inode values might be larger than integers supported by the shell. Fixes #1105.
138 lines
3.9 KiB
Bash
Executable File
138 lines
3.9 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright (C) 2002-2021 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 | egrep 'GNU|makepp'`" = x; then
|
|
MAKE=gmake
|
|
else
|
|
MAKE=make
|
|
fi
|
|
fi
|
|
else
|
|
MAKE=$GNUMAKE
|
|
fi
|
|
|
|
if test "x`$MAKE -v 2>/dev/null | egrep 'GNU|makepp'`" = 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
|