1#!/bin/sh
2#
3# Copyright 2002-2018 by
4# David Turner, Robert Wilhelm, and Werner Lemberg.
5#
6# This file is part of the FreeType project, and may only be used, modified,
7# and distributed under the terms of the FreeType project license,
8# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
9# indicate that you have read the license and understand and accept it
10# fully.
11#
12#
13# Call the `configure' script located in `builds/unix'.
14#
15
16rm -f config.mk builds/unix/unix-def.mk builds/unix/unix-cc.mk
17
18# respect GNUMAKE environment variable for backward compatibility
19if test "x$GNUMAKE" = x; then
20  if test "x$MAKE" = x; then
21    if test "x`make -v 2>/dev/null | egrep 'GNU|makepp'`" = x; then
22      MAKE=gmake
23    else
24      MAKE=make
25    fi
26  fi
27else
28  MAKE=$GNUMAKE
29fi
30
31if test "x`$MAKE -v 2>/dev/null | egrep 'GNU|makepp'`" = x; then
32  echo "GNU make (>= 3.80) or makepp (>= 1.19) is required to build FreeType2." >&2
33  echo "Please try" >&2
34  echo >&2
35  echo "  MAKE=<GNU make command name> $0" >&2
36  echo >&2
37  echo "or" >&2
38  echo >&2
39  echo "  MAKE=\"makepp --norc-substitution\" $0" >&2
40  exit 1
41fi
42
43# Get `dirname' functionality.  This is taken and adapted from autoconf's
44# m4sh.m4 (_AS_EXPR_PREPARE, AS_DIRNAME_EXPR, and AS_DIRNAME_SED).
45
46if expr a : '\(a\)' >/dev/null 2>&1; then
47  ft_expr=expr
48else
49  ft_expr=false
50fi
51
52ft2_dir=`(dirname "$0") 2>/dev/null                         ||
53         $ft_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
54                  X"$0" : 'X\(//\)[^/]' \| \
55                  X"$0" : 'X\(//\)$' \| \
56                  X"$0" : 'X\(/\)' \| \
57                  .     : '\(.\)' 2>/dev/null               ||
58         echo X"$0" |
59           sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
60                  s//\1/
61                  q
62                }
63                /^X\(\/\/\)[^/].*/{
64                  s//\1/
65                  q
66                }
67                /^X\(\/\/\)$/{
68                  s//\1/
69                  q
70                }
71                /^X\(\/\).*/{
72                  s//\1/
73                  q
74                }
75                s/.*/./; q'`
76
77abs_curr_dir=`pwd`
78abs_ft2_dir=`cd "$ft2_dir" && pwd`
79
80# `--srcdir=' option can override abs_ft2_dir
81
82if test $# -gt 0; then
83  for x in "$@"; do
84    case x"$x" in
85    x--srcdir=*)
86      abs_ft2_dir=`echo $x | sed 's/^--srcdir=//'` ;;
87    esac
88  done
89fi
90
91# build a dummy Makefile if we are not building in the source tree;
92# we use inodes to avoid issues with symbolic links
93inode_src=`ls -id $abs_ft2_dir | awk '{print $1}'`
94inode_dst=`ls -id $abs_curr_dir | awk '{print $1}'`
95
96if test $inode_src -ne $inode_dst; then
97  if test ! -d reference; then
98    mkdir reference
99  fi
100  if test ! -r $abs_curr_dir/modules.cfg; then
101    echo "Copying \`modules.cfg'"
102    cp $abs_ft2_dir/modules.cfg $abs_curr_dir
103  fi
104  echo "Generating \`Makefile'"
105  echo "TOP_DIR        := $abs_ft2_dir"           > Makefile
106  echo "OBJ_DIR        := $abs_curr_dir"         >> Makefile
107  echo "OBJ_BUILD      := \$(OBJ_DIR)"           >> Makefile
108  echo "DOC_DIR        := \$(OBJ_DIR)/reference" >> Makefile
109  echo "FT_LIBTOOL_DIR := \$(OBJ_DIR)"           >> Makefile
110  echo "ifndef FT2DEMOS"                         >> Makefile
111  echo "  include \$(TOP_DIR)/Makefile"          >> Makefile
112  echo "else"                                    >> Makefile
113  echo "  TOP_DIR_2 := \$(TOP_DIR)/../ft2demos"  >> Makefile
114  echo "  PROJECT   := freetype"                 >> Makefile
115  echo "  CONFIG_MK := \$(OBJ_DIR)/config.mk"    >> Makefile
116  echo "  include \$(TOP_DIR_2)/Makefile"        >> Makefile
117  echo "endif"                                   >> Makefile
118fi
119
120# call make
121
122CFG=
123# work around zsh bug which doesn't like `${1+"$@"}'
124case $# in
1250) ;;
126*) for x in "$@"; do
127     case x"$x" in
128     x--srcdir=* ) CFG="$CFG '$x'/builds/unix" ;;
129     *) CFG="$CFG '$x'" ;;
130     esac
131   done ;;
132esac
133CFG=$CFG $MAKE setup unix
134
135# eof
136