Official mirror of https://gitlab.freedesktop.org/freetype/freetype
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
3.9 KiB
137 lines
3.9 KiB
#!/bin/sh |
|
# |
|
# Copyright (C) 2002-2024 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
|
|
|