summaryrefslogtreecommitdiff
path: root/configure
blob: 6aea32d848aca8511ed0cdb6bfbff1ea0d5ca3a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/bin/sh
#
# configure script for ghdl (c) 2014 Tristan Gingold
#

backend=mcode
CC=${CC:-gcc}
CFLAGS=${CFLAGS:--g}
GNATMAKE=${GNATMAKE:-gnatmake}
prefix=/usr/local
build=

show_help=no
progname=$0

subst_vars="CC GNATMAKE CFLAGS build srcdir"

# Find srcdir
srcdir=`dirname $progname`
if test x$srcdir = x; then
    srcdir=.
fi

# Check echo -n / echo \c
if test x`echo -n` = x"-n" ; then
  echon=""
  echoc="\c"
else
  echon="-n"
  echoc=""
fi

# Decode options
for opt do
  optarg=`expr x$opt : 'x[^=]*=\(.*\)'`
  case "$opt" in
      CC=*|CFLAGS=*|GNATMAKE=*)
        optvar=`expr x$opt : 'x\([^=]*\)=.*'`
	eval $optvar="$optarg"
	;;
      --prefix=*) prefix="$optarg";;
      --srcdir=*) srcdir="$optarg";;
      -h|-help|--help) show_help=yes;;
      *) echo "$0: unknown option $opt; try $0 --help"
	  exit 1
	  ;;
  esac
done

if test $show_help != no; then
cat <<EOF
Usage: configure [options]

Options [defaults in brackets]:
  --prefix=PREFIX   install in PREFIX [$prefix]
  --srcdir=SRCDIR   source code path [$srcdir]
EOF
exit 0
fi

# Sanity checks
# Check that gnatmake exists
if ! $GNATMAKE 2> /dev/null; then
    echo "Sorry, you need GNAT to build GHDL.  See the README"
    echo "(gnatmake is $GNATMAKE)"
    exit 1
fi

# Check that compiler exists
if ! $CC -v 2> /dev/null; then
    echo "Sorry, you need a C compiler to build GHDL.  See the README"
    exit 1
fi

# For mcode, check that gcc emits i386
if test $backend = mcode; then
    if ! $CC $CFLAGS -dumpmachine | grep -q "[3-6]86"; then
	echo "WARNING: GHDL for mcode is supported only on x86 (32 bits)"
	echo "continuing, but build failure expected (See the README)"
    fi
fi

# Compute build machine
if test x$build = x; then
    build=`$CC $CFLAGS -dumpmachine`
fi
echo "Build machine is: $build"

# Generate config.status
rm -f config.status
{
echo "#! /bin/sh"
echo "# Generated by configure."
echo "# Run this file to recreate the current configuration."
echo
echo "# Generated by:"
echo $echon "# $progname" $echoc
for opt do
  echo $echon " " $opt $echoc
done
echo
echo
echo subst_vars=\"$subst_vars\"
for v in $subst_vars; do
    eval vval=\$$v
    echo $v="$vval"
done
echo
echo 'sed_opts=""'
echo 'for v in $subst_vars; do'
echo '  eval vval=\$$v'
echo '  sed_opts="$sed_opts -e s/@${v}@/$vval/g"'
echo 'done'
echo
echo 'echo "Creating Makefile"'
echo 'sed $sed_opts < $srcdir/Makefile.in > Makefile'
} > config.status || \
{
  echo "$progname: cannot create config.status"
  exit 1
}

chmod +x ./config.status

if ! sh ./config.status; then
    echo "$progname: cannot execute config.status"
    exit 1
fi

exit 0