#!/bin/sh
#
-# Copyright 2002, 2003, 2004, 2005, 2006 by
+# Copyright 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
if test -z "`$GNUMAKE -v 2>/dev/null | grep GNU`"; then
if test -z "`$GNUMAKE -v 2>/dev/null | grep makepp`"; then
- echo "GNU make (>= 3.79.1) or makepp (>= 1.19) is required to build FreeType2." >&2
+ echo "GNU make (>= 3.80) or makepp (>= 1.19) is required to build FreeType2." >&2
echo "Please try" >&2
echo " \`GNUMAKE=<GNU make command name> $0'." >&2
echo "or >&2"
abs_curr_dir=`pwd`
abs_ft2_dir=`cd "$ft2_dir" && pwd`
-# build a dummy Makefile if we are not building in the source tree
+# `--srcdir=' option can override abs_ft2_dir
-if test "$abs_curr_dir" != "$abs_ft2_dir"; then
- mkdir reference
- echo "Copying \`modules.cfg'"
- cp $abs_ft2_dir/modules.cfg $abs_curr_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 -ne $inode_dst; then
+ if test ! -d reference; then
+ mkdir reference
+ 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)/reference" >> Makefile
- echo "LIBTOOL := \$(OBJ_DIR)/libtool" >> Makefile
+ echo "FT_LIBTOOL_DIR := \$(OBJ_DIR)" >> Makefile
echo "ifndef FT2DEMOS" >> Makefile
echo " include \$(TOP_DIR)/Makefile" >> Makefile
echo "else" >> Makefile
# call make
CFG=
-for x in ${1+"$@"}; do
- CFG="$CFG \"$x\""
-done
+# 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 $GNUMAKE setup unix
# eof