blob: e00d4713f9baea30e49e926be06eac14c0dc5d15 (
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
131
132
133
134
135
136
137
138
|
#!/bin/sh
#
# THIS SCRIPT DOESN'T DO ANYTHING YET!
#
# Some things this script could/should do when finished
#
# * detect the compiler name (g++/c++/...)
# * detect whether its a GNU compiler or not (for compiler settings)
# * detect the host platform and base settings on this:
# - #defines like -DUNIX and -DMACOSX
# - required libs like -lmingw32
# * command line options to...
# - override the host settings (for cross compiles
# - select the desired backend (sdl, x11, ...)
# - whether to dump scripts (sets -DDUMP_SCRIPTS)
# - whether mad should be used (--enabled-mad) -> set LIBS/DEFINES
# * detect whether the chose backend is available (e.g. call sdl-config)
# * detect whether mad/ALSA/... are available
# * detect endianess and write that into config.h
# * detect size of data types and write that into config.h
# * check whether compiler supports "bool" and if not,
# define HAVE_NO_BOOL and add code to config.h to implement "bool"
# * ....
# Check whether the given command is a working C++ compiler
test_compiler ()
{
cat <<EOF >tmp_cxx_compiler.cpp
class Foo {
int a;
};
int main(int argc, char **argv)
{
Foo *a = new Foo();
delete a;
return 0;
}
EOF
eval "$1 -o tmp_cxx_compiler tmp_cxx_compiler.cpp 2> /dev/null" && eval "./tmp_cxx_compiler 2> /dev/null"
}
#
# Check any parameters we received
#
# TOOD: allow for multi value params, e.g. --target=dreamcast or --backend=morphos
#
USE_MAD=0;
DUMP_SCRIPTS=0;
for x in $@; do
case x$x in
x--enable-mad)
USE_MAD=1;;
x--enable-dump-scripts)
DUMP_SCRIPTS=1;;
esac;
done;
#
# Greet user
#
echo "Running ScummVM configure..."
echo -n > config.h
#
# Determine the C++ compiler
#
echo -n "Looking for C++ compiler... "
compilers="$CXX g++ c++"
CXX=
for compiler in $compilers; do
if test_compiler $compiler; then
CXX=$compiler
echo $CXX
break
fi
done
if test -z $CXX; then
echo "none found!"
exit 1
fi
#
# Determine hosttype
#
# TODO - also add an command line option to override this
echo -n "Checking hosttype... "
hosttype=`uname -s`
echo $hosttype
case $hosttype in
Linux)
echo "#define UNIX" >> config.h
;;
Darwin)
echo "#define UNIX" >> config.h
echo "#define MACOSX" >> config.h
;;
esac
#
# Check for endianess
#
echo -n "Checking endianess... "
cat <<EOF >tmp_endianess_check.cpp
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
unsigned int data = 0x01234567;
char *ptr = (char *)&data;
if (ptr[0] == 0x01 && ptr[1] == 0x23 && ptr[2] == 0x45 && ptr[3] == 0x67)
printf("big\n");
else if (ptr[3] == 0x01 && ptr[2] == 0x23 && ptr[1] == 0x45 && ptr[0] == 0x67)
printf("little\n");
else
printf("unknown\n");
return 0;
}
EOF
$CXX -o tmp_endianess_check tmp_endianess_check.cpp
endianess=`./tmp_endianess_check`
echo $endianess;
case $endianess in
big)
echo "#define SCUMM_BIG_ENDIAN" >> config.h
;;
little)
echo "#define SCUMM_LITTLE_ENDIAN" >> config.h
;;
*)
exit 1
;;
esac
|