blob: b397556241077f20ee77021c017c3503d073c4c8 [file] [log] [blame]
David Turnerdc477842002-01-08 18:34:11 +00001#!/bin/sh
David Turnerdc477842002-01-08 18:34:11 +00002#
Werner Lemberg75eeb322010-10-03 20:17:27 +02003# Copyright 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010 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 Lembergf83ded02002-05-05 10:57:06 +000018if test "x$GNUMAKE" = x; then
David Turnerd15bc0d2002-04-12 09:31:48 +000019 GNUMAKE=make
20fi
21
Werner Lembergf83ded02002-05-05 10:57:06 +000022if test -z "`$GNUMAKE -v 2>/dev/null | grep GNU`"; then
Werner Lemberg26eccb42004-04-13 08:35:05 +000023 if test -z "`$GNUMAKE -v 2>/dev/null | grep makepp`"; then
Werner Lemberg4e33f9e2008-07-05 06:35:28 +000024 echo "GNU make (>= 3.80) or makepp (>= 1.19) is required to build FreeType2." >&2
Werner Lemberg26eccb42004-04-13 08:35:05 +000025 echo "Please try" >&2
26 echo " \`GNUMAKE=<GNU make command name> $0'." >&2
27 echo "or >&2"
28 echo " \`GNUMAKE=\"makepp --norc-substitution\" $0'." >&2
29 exit 1
30 fi
David Turnerd15bc0d2002-04-12 09:31:48 +000031fi
32
Werner Lemberg59939242006-01-31 20:17:42 +000033# Get `dirname' functionality. This is taken and adapted from autoconf's
34# m4sh.m4 (_AS_EXPR_PREPARE, AS_DIRNAME_EXPR, and AS_DIRNAME_SED).
Werner Lembergf83ded02002-05-05 10:57:06 +000035
36if expr a : '\(a\)' >/dev/null 2>&1; then
37 ft_expr=expr
38else
39 ft_expr=false
40fi
41
Werner Lemberg59939242006-01-31 20:17:42 +000042ft2_dir=`(dirname "$0") 2>/dev/null ||
43 $ft_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
44 X"$0" : 'X\(//\)[^/]' \| \
45 X"$0" : 'X\(//\)$' \| \
46 X"$0" : 'X\(/\)' \| \
47 . : '\(.\)' 2>/dev/null ||
48 echo X"$0" |
49 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
50 s//\1/
51 q
52 }
53 /^X\(\/\/\)[^/].*/{
54 s//\1/
55 q
56 }
57 /^X\(\/\/\)$/{
58 s//\1/
59 q
60 }
61 /^X\(\/\).*/{
62 s//\1/
63 q
64 }
65 s/.*/./; q'`
Werner Lembergf83ded02002-05-05 10:57:06 +000066
67abs_curr_dir=`pwd`
68abs_ft2_dir=`cd "$ft2_dir" && pwd`
69
Werner Lembergb8f97f12009-06-28 00:37:53 +020070# `--srcdir=' option can override abs_ft2_dir
suzuki toshiya66d308e2009-06-27 14:33:06 +090071
72if test $# -gt 0; then
73 for x in "$@"; do
74 case x"$x" in
75 x--srcdir=*)
76 abs_ft2_dir=`echo $x | sed 's/^--srcdir=//'` ;;
77 esac
78 done
79fi
80
Werner Lemberg75eeb322010-10-03 20:17:27 +020081# build a dummy Makefile if we are not building in the source tree;
82# we use inodes to avoid issues with symbolic links
Werner Lemberg94d540e2010-10-05 12:28:15 +020083inode_src=`ls -id $abs_ft2_dir | awk '{print $1}'`
84inode_dst=`ls -id $abs_curr_dir | awk '{print $1}'`
Werner Lembergf83ded02002-05-05 10:57:06 +000085
Werner Lemberg75eeb322010-10-03 20:17:27 +020086if test $inode_src -ne $inode_dst; then
87 if test ! -d reference; then
88 mkdir reference
89 fi
suzuki toshiya912f0392009-06-27 14:38:32 +090090 if test ! -r $abs_curr_dir/modules.cfg; then
91 echo "Copying \`modules.cfg'"
92 cp $abs_ft2_dir/modules.cfg $abs_curr_dir
93 fi
Werner Lemberg59939242006-01-31 20:17:42 +000094 echo "Generating \`Makefile'"
Werner Lemberga33bd862005-02-13 05:46:50 +000095 echo "TOP_DIR := $abs_ft2_dir" > Makefile
96 echo "OBJ_DIR := $abs_curr_dir" >> Makefile
97 echo "OBJ_BUILD := \$(OBJ_DIR)" >> Makefile
98 echo "DOC_DIR := \$(OBJ_DIR)/reference" >> Makefile
suzuki toshiyafd0cdb72010-08-31 18:32:03 +090099 echo "FT_LIBTOOL_DIR := \$(OBJ_DIR)" >> Makefile
Werner Lemberga33bd862005-02-13 05:46:50 +0000100 echo "ifndef FT2DEMOS" >> Makefile
101 echo " include \$(TOP_DIR)/Makefile" >> Makefile
102 echo "else" >> Makefile
103 echo " TOP_DIR_2 := \$(TOP_DIR)/../ft2demos" >> Makefile
104 echo " PROJECT := freetype" >> Makefile
105 echo " CONFIG_MK := \$(OBJ_DIR)/config.mk" >> Makefile
106 echo " include \$(TOP_DIR_2)/Makefile" >> Makefile
107 echo "endif" >> Makefile
Werner Lembergf83ded02002-05-05 10:57:06 +0000108fi
109
110# call make
111
Werner Lembergd898aed2006-08-29 09:50:34 +0000112CFG=
Werner Lemberg4e33f9e2008-07-05 06:35:28 +0000113# work around zsh bug which doesn't like `${1+"$@"}'
114case $# in
1150) ;;
116*) for x in "$@"; do
suzuki toshiya66d308e2009-06-27 14:33:06 +0900117 case x"$x" in
118 x--srcdir=* ) CFG="$CFG '$x'/builds/unix" ;;
119 *) CFG="$CFG '$x'" ;;
120 esac
Werner Lemberg4e33f9e2008-07-05 06:35:28 +0000121 done ;;
122esac
Werner Lembergd898aed2006-08-29 09:50:34 +0000123CFG=$CFG $GNUMAKE setup unix
Werner Lembergf83ded02002-05-05 10:57:06 +0000124
125# eof