blob: aa3956fd9ff1844782b9d3d8e3293da2bd0c3a49 [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 Lemberg6f1e3452013-03-21 09:00:27 +010031 echo " \`MAKE=<GNU make command name> $0'." >&2
Werner Lemberg26eccb42004-04-13 08:35:05 +000032 echo "or >&2"
Werner Lemberg6f1e3452013-03-21 09:00:27 +010033 echo " \`MAKE=\"makepp --norc-substitution\" $0'." >&2
Werner Lemberg26eccb42004-04-13 08:35:05 +000034 exit 1
35 fi
David Turnerd15bc0d2002-04-12 09:31:48 +000036fi
37
Werner Lemberg59939242006-01-31 20:17:42 +000038# Get `dirname' functionality. This is taken and adapted from autoconf's
39# m4sh.m4 (_AS_EXPR_PREPARE, AS_DIRNAME_EXPR, and AS_DIRNAME_SED).
Werner Lembergf83ded02002-05-05 10:57:06 +000040
41if expr a : '\(a\)' >/dev/null 2>&1; then
42 ft_expr=expr
43else
44 ft_expr=false
45fi
46
Werner Lemberg59939242006-01-31 20:17:42 +000047ft2_dir=`(dirname "$0") 2>/dev/null ||
48 $ft_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
49 X"$0" : 'X\(//\)[^/]' \| \
50 X"$0" : 'X\(//\)$' \| \
51 X"$0" : 'X\(/\)' \| \
52 . : '\(.\)' 2>/dev/null ||
53 echo X"$0" |
54 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
55 s//\1/
56 q
57 }
58 /^X\(\/\/\)[^/].*/{
59 s//\1/
60 q
61 }
62 /^X\(\/\/\)$/{
63 s//\1/
64 q
65 }
66 /^X\(\/\).*/{
67 s//\1/
68 q
69 }
70 s/.*/./; q'`
Werner Lembergf83ded02002-05-05 10:57:06 +000071
72abs_curr_dir=`pwd`
73abs_ft2_dir=`cd "$ft2_dir" && pwd`
74
Werner Lembergb8f97f12009-06-28 00:37:53 +020075# `--srcdir=' option can override abs_ft2_dir
suzuki toshiya66d308e2009-06-27 14:33:06 +090076
77if test $# -gt 0; then
78 for x in "$@"; do
79 case x"$x" in
80 x--srcdir=*)
81 abs_ft2_dir=`echo $x | sed 's/^--srcdir=//'` ;;
82 esac
83 done
84fi
85
Werner Lemberg75eeb322010-10-03 20:17:27 +020086# build a dummy Makefile if we are not building in the source tree;
87# we use inodes to avoid issues with symbolic links
Werner Lemberg94d540e2010-10-05 12:28:15 +020088inode_src=`ls -id $abs_ft2_dir | awk '{print $1}'`
89inode_dst=`ls -id $abs_curr_dir | awk '{print $1}'`
Werner Lembergf83ded02002-05-05 10:57:06 +000090
Werner Lemberg75eeb322010-10-03 20:17:27 +020091if test $inode_src -ne $inode_dst; then
92 if test ! -d reference; then
93 mkdir reference
94 fi
suzuki toshiya912f0392009-06-27 14:38:32 +090095 if test ! -r $abs_curr_dir/modules.cfg; then
96 echo "Copying \`modules.cfg'"
97 cp $abs_ft2_dir/modules.cfg $abs_curr_dir
98 fi
Werner Lemberg59939242006-01-31 20:17:42 +000099 echo "Generating \`Makefile'"
Werner Lemberg8a6808e2011-12-02 20:22:04 +0100100 echo "TOP_DIR := $abs_ft2_dir" > Makefile
101 echo "OBJ_DIR := $abs_curr_dir" >> Makefile
102 echo "OBJ_BUILD := \$(OBJ_DIR)" >> Makefile
103 echo "DOC_DIR := \$(OBJ_DIR)/reference" >> Makefile
104 echo "FT_LIBTOOL_DIR := \$(OBJ_DIR)" >> Makefile
105 echo "ifndef FT2DEMOS" >> Makefile
106 echo " include \$(TOP_DIR)/Makefile" >> Makefile
107 echo "else" >> Makefile
108 echo " TOP_DIR_2 := \$(TOP_DIR)/../ft2demos" >> Makefile
109 echo " PROJECT := freetype" >> Makefile
110 echo " CONFIG_MK := \$(OBJ_DIR)/config.mk" >> Makefile
111 echo " include \$(TOP_DIR_2)/Makefile" >> Makefile
112 echo "endif" >> Makefile
Werner Lembergf83ded02002-05-05 10:57:06 +0000113fi
114
115# call make
116
Werner Lembergd898aed2006-08-29 09:50:34 +0000117CFG=
Werner Lemberg4e33f9e2008-07-05 06:35:28 +0000118# work around zsh bug which doesn't like `${1+"$@"}'
119case $# in
1200) ;;
121*) for x in "$@"; do
suzuki toshiya66d308e2009-06-27 14:33:06 +0900122 case x"$x" in
123 x--srcdir=* ) CFG="$CFG '$x'/builds/unix" ;;
124 *) CFG="$CFG '$x'" ;;
125 esac
Werner Lemberg4e33f9e2008-07-05 06:35:28 +0000126 done ;;
127esac
Werner Lemberg6f1e3452013-03-21 09:00:27 +0100128CFG=$CFG $MAKE setup unix
Werner Lembergf83ded02002-05-05 10:57:06 +0000129
130# eof