• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/sh
2#
3# Copyright (C) 2002-2022 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.81) or makepp (>= 2.0) 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 != $inode_dst; then
97  if test ! -d docs; then
98    mkdir docs
99    echo "Copying documentation assets"
100    cp -R $abs_ft2_dir/docs/markdown $abs_curr_dir/docs
101  fi
102  if test ! -r $abs_curr_dir/modules.cfg; then
103    echo "Copying \`modules.cfg'"
104    cp $abs_ft2_dir/modules.cfg $abs_curr_dir
105  fi
106  echo "Generating \`Makefile'"
107  echo "TOP_DIR        := $abs_ft2_dir"           > Makefile
108  echo "OBJ_DIR        := $abs_curr_dir"         >> Makefile
109  echo "OBJ_BUILD      := \$(OBJ_DIR)"           >> Makefile
110  echo "DOC_DIR        := \$(OBJ_DIR)/docs"      >> Makefile
111  echo "FT_LIBTOOL_DIR := \$(OBJ_DIR)"           >> Makefile
112  echo "ifndef FT2DEMOS"                         >> Makefile
113  echo "  include \$(TOP_DIR)/Makefile"          >> Makefile
114  echo "else"                                    >> Makefile
115  echo "  TOP_DIR_2 := \$(TOP_DIR)/../ft2demos"  >> Makefile
116  echo "  PROJECT   := freetype"                 >> Makefile
117  echo "  CONFIG_MK := \$(OBJ_DIR)/config.mk"    >> Makefile
118  echo "  include \$(TOP_DIR_2)/Makefile"        >> Makefile
119  echo "endif"                                   >> Makefile
120fi
121
122# call make
123
124CFG=
125# work around zsh bug which doesn't like `${1+"$@"}'
126case $# in
1270) ;;
128*) for x in "$@"; do
129     case x"$x" in
130     x--srcdir=* ) CFG="$CFG '$x'/builds/unix" ;;
131     *) CFG="$CFG '$x'" ;;
132     esac
133   done ;;
134esac
135CFG=$CFG $MAKE setup unix
136
137# eof
138