blob: 584e6ec38068882c975a962b5aa3142d744b10c2 [file] [log] [blame]
David Turnerdc477842002-01-08 18:34:11 +00001#!/bin/sh
David Turnerdc477842002-01-08 18:34:11 +00002#
Werner Lembergb6e8a712021-01-17 07:18:48 +01003# Copyright (C) 2002-2021 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 Lemberg8cd31eb2017-05-03 23:54:29 +020018# respect GNUMAKE environment variable for backward 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
Werner Lemberg2f7ccb22013-03-31 09:04:38 +020021 if test "x`make -v 2>/dev/null | egrep 'GNU|makepp'`" = x; then
Werner Lembergeb624d72013-03-21 22:58:28 +010022 MAKE=gmake
23 else
24 MAKE=make
25 fi
Werner Lemberg6f1e3452013-03-21 09:00:27 +010026 fi
27else
28 MAKE=$GNUMAKE
David Turnerd15bc0d2002-04-12 09:31:48 +000029fi
30
Werner Lemberg2f7ccb22013-03-31 09:04:38 +020031if test "x`$MAKE -v 2>/dev/null | egrep 'GNU|makepp'`" = x; then
Alexei Podtelezhnikov843193b2018-04-15 16:27:10 -040032 echo "GNU make (>= 3.81) or makepp (>= 2.0) is required to build FreeType2." >&2
Werner Lembergeb624d72013-03-21 22:58:28 +010033 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
David Turnerd15bc0d2002-04-12 09:31:48 +000041fi
42
Werner Lemberg59939242006-01-31 20:17:42 +000043# Get `dirname' functionality. This is taken and adapted from autoconf's
44# m4sh.m4 (_AS_EXPR_PREPARE, AS_DIRNAME_EXPR, and AS_DIRNAME_SED).
Werner Lembergf83ded02002-05-05 10:57:06 +000045
46if expr a : '\(a\)' >/dev/null 2>&1; then
47 ft_expr=expr
48else
49 ft_expr=false
50fi
51
Werner Lemberg59939242006-01-31 20:17:42 +000052ft2_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'`
Werner Lembergf83ded02002-05-05 10:57:06 +000076
77abs_curr_dir=`pwd`
78abs_ft2_dir=`cd "$ft2_dir" && pwd`
79
Werner Lembergb8f97f12009-06-28 00:37:53 +020080# `--srcdir=' option can override abs_ft2_dir
suzuki toshiya66d308e2009-06-27 14:33:06 +090081
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
Werner Lemberg75eeb322010-10-03 20:17:27 +020091# build a dummy Makefile if we are not building in the source tree;
92# we use inodes to avoid issues with symbolic links
Werner Lemberg94d540e2010-10-05 12:28:15 +020093inode_src=`ls -id $abs_ft2_dir | awk '{print $1}'`
94inode_dst=`ls -id $abs_curr_dir | awk '{print $1}'`
Werner Lembergf83ded02002-05-05 10:57:06 +000095
Werner Lembergde9faa52021-10-18 21:03:38 +020096if test $inode_src != $inode_dst; then
Nikhil Ramakrishnan13c0df82020-03-22 23:29:51 +053097 if test ! -d docs; then
98 mkdir docs
Nikhil Ramakrishnanf87b7112018-08-26 17:46:25 +053099 echo "Copying documentation assets"
Nikhil Ramakrishnan13c0df82020-03-22 23:29:51 +0530100 cp -R $abs_ft2_dir/docs/markdown $abs_curr_dir/docs
Werner Lemberg75eeb322010-10-03 20:17:27 +0200101 fi
suzuki toshiya912f0392009-06-27 14:38:32 +0900102 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
Werner Lemberg59939242006-01-31 20:17:42 +0000106 echo "Generating \`Makefile'"
Werner Lemberg8a6808e2011-12-02 20:22:04 +0100107 echo "TOP_DIR := $abs_ft2_dir" > Makefile
108 echo "OBJ_DIR := $abs_curr_dir" >> Makefile
109 echo "OBJ_BUILD := \$(OBJ_DIR)" >> Makefile
Nikhil Ramakrishnan13c0df82020-03-22 23:29:51 +0530110 echo "DOC_DIR := \$(OBJ_DIR)/docs" >> Makefile
Werner Lemberg8a6808e2011-12-02 20:22:04 +0100111 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
Werner Lembergf83ded02002-05-05 10:57:06 +0000120fi
121
122# call make
123
Werner Lembergd898aed2006-08-29 09:50:34 +0000124CFG=
Werner Lemberg4e33f9e2008-07-05 06:35:28 +0000125# work around zsh bug which doesn't like `${1+"$@"}'
126case $# in
1270) ;;
128*) for x in "$@"; do
suzuki toshiya66d308e2009-06-27 14:33:06 +0900129 case x"$x" in
130 x--srcdir=* ) CFG="$CFG '$x'/builds/unix" ;;
131 *) CFG="$CFG '$x'" ;;
132 esac
Werner Lemberg4e33f9e2008-07-05 06:35:28 +0000133 done ;;
134esac
Werner Lemberg6f1e3452013-03-21 09:00:27 +0100135CFG=$CFG $MAKE setup unix
Werner Lembergf83ded02002-05-05 10:57:06 +0000136
137# eof