blob: 5052c08ade7dca8f8e99e4caf4dbc07ebfd29b65 [file] [log] [blame]
David Turnerdc477842002-01-08 18:34:11 +00001#!/bin/sh
David Turnerdc477842002-01-08 18:34:11 +00002#
Werner Lemberg6f1e3452013-03-21 09:00:27 +01003# Copyright 2002-2006, 2008-2010, 2013 by
Werner Lemberg60a04df2005-06-04 23:04:30 +00004# 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#
Werner Lemberg67d546a2005-05-24 04:49:42 +000013# Call the `configure' script located in `builds/unix'.
Werner Lemberg3975e2e2002-01-09 21:01:18 +000014#
Werner Lemberg67d546a2005-05-24 04:49:42 +000015
16rm -f config.mk builds/unix/unix-def.mk builds/unix/unix-cc.mk
David Turnerd15bc0d2002-04-12 09:31:48 +000017
Werner Lemberg6f1e3452013-03-21 09:00:27 +010018# respect GNUMAKE environment variable for backwards compatibility
Werner Lembergf83ded02002-05-05 10:57:06 +000019if test "x$GNUMAKE" = x; then
Werner Lemberg6f1e3452013-03-21 09:00:27 +010020 if test "x$MAKE" = x; then
21 MAKE=make
22 fi
23else
24 MAKE=$GNUMAKE
David Turnerd15bc0d2002-04-12 09:31:48 +000025fi
26
Werner Lemberg6f1e3452013-03-21 09:00:27 +010027if test -z "`$MAKE -v 2>/dev/null | grep GNU`"; then
28 if test -z "`$MAKE -v 2>/dev/null | grep makepp`"; then
Werner Lemberg4e33f9e2008-07-05 06:35:28 +000029 echo "GNU make (>= 3.80) or makepp (>= 1.19) is required to build FreeType2." >&2
Werner Lemberg26eccb42004-04-13 08:35:05 +000030 echo "Please try" >&2
Werner Lemberg835b9cd2013-03-21 09:07:44 +010031 echo >&2
32 echo " MAKE=<GNU make command name> $0" >&2
33 echo >&2
34 echo "or" >&2
35 echo >&2
36 echo " MAKE=\"makepp --norc-substitution\" $0" >&2
Werner Lemberg26eccb42004-04-13 08:35:05 +000037 exit 1
38 fi
David Turnerd15bc0d2002-04-12 09:31:48 +000039fi
40
Werner Lemberg59939242006-01-31 20:17:42 +000041# Get `dirname' functionality. This is taken and adapted from autoconf's
42# m4sh.m4 (_AS_EXPR_PREPARE, AS_DIRNAME_EXPR, and AS_DIRNAME_SED).
Werner Lembergf83ded02002-05-05 10:57:06 +000043
44if expr a : '\(a\)' >/dev/null 2>&1; then
45 ft_expr=expr
46else
47 ft_expr=false
48fi
49
Werner Lemberg59939242006-01-31 20:17:42 +000050ft2_dir=`(dirname "$0") 2>/dev/null ||
51 $ft_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
52 X"$0" : 'X\(//\)[^/]' \| \
53 X"$0" : 'X\(//\)$' \| \
54 X"$0" : 'X\(/\)' \| \
55 . : '\(.\)' 2>/dev/null ||
56 echo X"$0" |
57 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
58 s//\1/
59 q
60 }
61 /^X\(\/\/\)[^/].*/{
62 s//\1/
63 q
64 }
65 /^X\(\/\/\)$/{
66 s//\1/
67 q
68 }
69 /^X\(\/\).*/{
70 s//\1/
71 q
72 }
73 s/.*/./; q'`
Werner Lembergf83ded02002-05-05 10:57:06 +000074
75abs_curr_dir=`pwd`
76abs_ft2_dir=`cd "$ft2_dir" && pwd`
77
Werner Lembergb8f97f12009-06-28 00:37:53 +020078# `--srcdir=' option can override abs_ft2_dir
suzuki toshiya66d308e2009-06-27 14:33:06 +090079
80if test $# -gt 0; then
81 for x in "$@"; do
82 case x"$x" in
83 x--srcdir=*)
84 abs_ft2_dir=`echo $x | sed 's/^--srcdir=//'` ;;
85 esac
86 done
87fi
88
Werner Lemberg75eeb322010-10-03 20:17:27 +020089# build a dummy Makefile if we are not building in the source tree;
90# we use inodes to avoid issues with symbolic links
Werner Lemberg94d540e2010-10-05 12:28:15 +020091inode_src=`ls -id $abs_ft2_dir | awk '{print $1}'`
92inode_dst=`ls -id $abs_curr_dir | awk '{print $1}'`
Werner Lembergf83ded02002-05-05 10:57:06 +000093
Werner Lemberg75eeb322010-10-03 20:17:27 +020094if test $inode_src -ne $inode_dst; then
95 if test ! -d reference; then
96 mkdir reference
97 fi
suzuki toshiya912f0392009-06-27 14:38:32 +090098 if test ! -r $abs_curr_dir/modules.cfg; then
99 echo "Copying \`modules.cfg'"
100 cp $abs_ft2_dir/modules.cfg $abs_curr_dir
101 fi
Werner Lemberg59939242006-01-31 20:17:42 +0000102 echo "Generating \`Makefile'"
Werner Lemberg8a6808e2011-12-02 20:22:04 +0100103 echo "TOP_DIR := $abs_ft2_dir" > Makefile
104 echo "OBJ_DIR := $abs_curr_dir" >> Makefile
105 echo "OBJ_BUILD := \$(OBJ_DIR)" >> Makefile
106 echo "DOC_DIR := \$(OBJ_DIR)/reference" >> Makefile
107 echo "FT_LIBTOOL_DIR := \$(OBJ_DIR)" >> Makefile
108 echo "ifndef FT2DEMOS" >> Makefile
109 echo " include \$(TOP_DIR)/Makefile" >> Makefile
110 echo "else" >> Makefile
111 echo " TOP_DIR_2 := \$(TOP_DIR)/../ft2demos" >> Makefile
112 echo " PROJECT := freetype" >> Makefile
113 echo " CONFIG_MK := \$(OBJ_DIR)/config.mk" >> Makefile
114 echo " include \$(TOP_DIR_2)/Makefile" >> Makefile
115 echo "endif" >> Makefile
Werner Lembergf83ded02002-05-05 10:57:06 +0000116fi
117
118# call make
119
Werner Lembergd898aed2006-08-29 09:50:34 +0000120CFG=
Werner Lemberg4e33f9e2008-07-05 06:35:28 +0000121# work around zsh bug which doesn't like `${1+"$@"}'
122case $# in
1230) ;;
124*) for x in "$@"; do
suzuki toshiya66d308e2009-06-27 14:33:06 +0900125 case x"$x" in
126 x--srcdir=* ) CFG="$CFG '$x'/builds/unix" ;;
127 *) CFG="$CFG '$x'" ;;
128 esac
Werner Lemberg4e33f9e2008-07-05 06:35:28 +0000129 done ;;
130esac
Werner Lemberg6f1e3452013-03-21 09:00:27 +0100131CFG=$CFG $MAKE setup unix
Werner Lembergf83ded02002-05-05 10:57:06 +0000132
133# eof