David Turner | dc47784 | 2002-01-08 18:34:11 +0000 | [diff] [blame] | 1 | #!/bin/sh |
David Turner | dc47784 | 2002-01-08 18:34:11 +0000 | [diff] [blame] | 2 | # |
Werner Lemberg | d0cfb4e | 2022-01-11 10:54:10 +0100 | [diff] [blame] | 3 | # Copyright (C) 2002-2022 by |
Werner Lemberg | 60a04df | 2005-06-04 23:04:30 +0000 | [diff] [blame] | 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 | # |
Werner Lemberg | 67d546a | 2005-05-24 04:49:42 +0000 | [diff] [blame] | 13 | # Call the `configure' script located in `builds/unix'. |
Werner Lemberg | 3975e2e | 2002-01-09 21:01:18 +0000 | [diff] [blame] | 14 | # |
Werner Lemberg | 67d546a | 2005-05-24 04:49:42 +0000 | [diff] [blame] | 15 | |
| 16 | rm -f config.mk builds/unix/unix-def.mk builds/unix/unix-cc.mk |
David Turner | d15bc0d | 2002-04-12 09:31:48 +0000 | [diff] [blame] | 17 | |
Werner Lemberg | 8cd31eb | 2017-05-03 23:54:29 +0200 | [diff] [blame] | 18 | # respect GNUMAKE environment variable for backward compatibility |
Werner Lemberg | f83ded0 | 2002-05-05 10:57:06 +0000 | [diff] [blame] | 19 | if test "x$GNUMAKE" = x; then |
Werner Lemberg | 6f1e345 | 2013-03-21 09:00:27 +0100 | [diff] [blame] | 20 | if test "x$MAKE" = x; then |
Werner Lemberg | 2f7ccb2 | 2013-03-31 09:04:38 +0200 | [diff] [blame] | 21 | if test "x`make -v 2>/dev/null | egrep 'GNU|makepp'`" = x; then |
Werner Lemberg | eb624d7 | 2013-03-21 22:58:28 +0100 | [diff] [blame] | 22 | MAKE=gmake |
| 23 | else |
| 24 | MAKE=make |
| 25 | fi |
Werner Lemberg | 6f1e345 | 2013-03-21 09:00:27 +0100 | [diff] [blame] | 26 | fi |
| 27 | else |
| 28 | MAKE=$GNUMAKE |
David Turner | d15bc0d | 2002-04-12 09:31:48 +0000 | [diff] [blame] | 29 | fi |
| 30 | |
Werner Lemberg | 2f7ccb2 | 2013-03-31 09:04:38 +0200 | [diff] [blame] | 31 | if test "x`$MAKE -v 2>/dev/null | egrep 'GNU|makepp'`" = x; then |
Alexei Podtelezhnikov | 843193b | 2018-04-15 16:27:10 -0400 | [diff] [blame] | 32 | echo "GNU make (>= 3.81) or makepp (>= 2.0) is required to build FreeType2." >&2 |
Werner Lemberg | eb624d7 | 2013-03-21 22:58:28 +0100 | [diff] [blame] | 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 |
David Turner | d15bc0d | 2002-04-12 09:31:48 +0000 | [diff] [blame] | 41 | fi |
| 42 | |
Werner Lemberg | 5993924 | 2006-01-31 20:17:42 +0000 | [diff] [blame] | 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). |
Werner Lemberg | f83ded0 | 2002-05-05 10:57:06 +0000 | [diff] [blame] | 45 | |
| 46 | if expr a : '\(a\)' >/dev/null 2>&1; then |
| 47 | ft_expr=expr |
| 48 | else |
| 49 | ft_expr=false |
| 50 | fi |
| 51 | |
Werner Lemberg | 5993924 | 2006-01-31 20:17:42 +0000 | [diff] [blame] | 52 | ft2_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 Lemberg | f83ded0 | 2002-05-05 10:57:06 +0000 | [diff] [blame] | 76 | |
| 77 | abs_curr_dir=`pwd` |
| 78 | abs_ft2_dir=`cd "$ft2_dir" && pwd` |
| 79 | |
Werner Lemberg | b8f97f1 | 2009-06-28 00:37:53 +0200 | [diff] [blame] | 80 | # `--srcdir=' option can override abs_ft2_dir |
suzuki toshiya | 66d308e | 2009-06-27 14:33:06 +0900 | [diff] [blame] | 81 | |
| 82 | if 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 |
| 89 | fi |
| 90 | |
Werner Lemberg | 75eeb32 | 2010-10-03 20:17:27 +0200 | [diff] [blame] | 91 | # build a dummy Makefile if we are not building in the source tree; |
| 92 | # we use inodes to avoid issues with symbolic links |
Werner Lemberg | 94d540e | 2010-10-05 12:28:15 +0200 | [diff] [blame] | 93 | inode_src=`ls -id $abs_ft2_dir | awk '{print $1}'` |
| 94 | inode_dst=`ls -id $abs_curr_dir | awk '{print $1}'` |
Werner Lemberg | f83ded0 | 2002-05-05 10:57:06 +0000 | [diff] [blame] | 95 | |
Werner Lemberg | de9faa5 | 2021-10-18 21:03:38 +0200 | [diff] [blame] | 96 | if test $inode_src != $inode_dst; then |
Nikhil Ramakrishnan | 13c0df8 | 2020-03-22 23:29:51 +0530 | [diff] [blame] | 97 | if test ! -d docs; then |
| 98 | mkdir docs |
Nikhil Ramakrishnan | f87b711 | 2018-08-26 17:46:25 +0530 | [diff] [blame] | 99 | echo "Copying documentation assets" |
Nikhil Ramakrishnan | 13c0df8 | 2020-03-22 23:29:51 +0530 | [diff] [blame] | 100 | cp -R $abs_ft2_dir/docs/markdown $abs_curr_dir/docs |
Werner Lemberg | 75eeb32 | 2010-10-03 20:17:27 +0200 | [diff] [blame] | 101 | fi |
suzuki toshiya | 912f039 | 2009-06-27 14:38:32 +0900 | [diff] [blame] | 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 |
Werner Lemberg | 5993924 | 2006-01-31 20:17:42 +0000 | [diff] [blame] | 106 | echo "Generating \`Makefile'" |
Werner Lemberg | 8a6808e | 2011-12-02 20:22:04 +0100 | [diff] [blame] | 107 | echo "TOP_DIR := $abs_ft2_dir" > Makefile |
| 108 | echo "OBJ_DIR := $abs_curr_dir" >> Makefile |
| 109 | echo "OBJ_BUILD := \$(OBJ_DIR)" >> Makefile |
Nikhil Ramakrishnan | 13c0df8 | 2020-03-22 23:29:51 +0530 | [diff] [blame] | 110 | echo "DOC_DIR := \$(OBJ_DIR)/docs" >> Makefile |
Werner Lemberg | 8a6808e | 2011-12-02 20:22:04 +0100 | [diff] [blame] | 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 |
Werner Lemberg | f83ded0 | 2002-05-05 10:57:06 +0000 | [diff] [blame] | 120 | fi |
| 121 | |
| 122 | # call make |
| 123 | |
Werner Lemberg | d898aed | 2006-08-29 09:50:34 +0000 | [diff] [blame] | 124 | CFG= |
Werner Lemberg | 4e33f9e | 2008-07-05 06:35:28 +0000 | [diff] [blame] | 125 | # work around zsh bug which doesn't like `${1+"$@"}' |
| 126 | case $# in |
| 127 | 0) ;; |
| 128 | *) for x in "$@"; do |
suzuki toshiya | 66d308e | 2009-06-27 14:33:06 +0900 | [diff] [blame] | 129 | case x"$x" in |
| 130 | x--srcdir=* ) CFG="$CFG '$x'/builds/unix" ;; |
| 131 | *) CFG="$CFG '$x'" ;; |
| 132 | esac |
Werner Lemberg | 4e33f9e | 2008-07-05 06:35:28 +0000 | [diff] [blame] | 133 | done ;; |
| 134 | esac |
Werner Lemberg | 6f1e345 | 2013-03-21 09:00:27 +0100 | [diff] [blame] | 135 | CFG=$CFG $MAKE setup unix |
Werner Lemberg | f83ded0 | 2002-05-05 10:57:06 +0000 | [diff] [blame] | 136 | |
| 137 | # eof |