some more configure stuff
svn-id: r4824
This commit is contained in:
parent
66630ec3b3
commit
50af6a97b7
1 changed files with 86 additions and 17 deletions
103
configure
vendored
103
configure
vendored
|
@ -23,7 +23,9 @@
|
|||
# * ....
|
||||
|
||||
|
||||
#
|
||||
# Check whether the given command is a working C++ compiler
|
||||
#
|
||||
test_compiler ()
|
||||
{
|
||||
cat <<EOF >tmp_cxx_compiler.cpp
|
||||
|
@ -37,26 +39,45 @@ int main(int argc, char **argv)
|
|||
return 0;
|
||||
}
|
||||
EOF
|
||||
eval "$1 -o tmp_cxx_compiler tmp_cxx_compiler.cpp 2> /dev/null" && eval "./tmp_cxx_compiler 2> /dev/null"
|
||||
eval "$1 -o tmp_cxx_compiler tmp_cxx_compiler.cpp 2> /dev/null" && eval "./tmp_cxx_compiler 2> /dev/null" && rm tmp_cxx_compiler tmp_cxx_compiler.cpp
|
||||
}
|
||||
|
||||
#
|
||||
# Determine a data type with the given length
|
||||
#
|
||||
find_type_with_size ()
|
||||
{
|
||||
cat <<EOF >tmp_find_type_with_size.cpp
|
||||
#include <stdio.h>
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int size = argv[1][0] - '0';
|
||||
if (size == sizeof(int))
|
||||
printf("int\n");
|
||||
else if (size == sizeof(short))
|
||||
printf("short\n");
|
||||
else if (size == sizeof(char))
|
||||
printf("char\n");
|
||||
else if (size == sizeof(long))
|
||||
printf("long\n");
|
||||
else {
|
||||
printf("unknown\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
#
|
||||
# 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;
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
if eval "$CXX -o tmp_find_type_with_size tmp_find_type_with_size.cpp"; then
|
||||
datatype=`./tmp_find_type_with_size $1`
|
||||
if test "$datatype" = "unknown"; then
|
||||
echo "couldn't find data type with $1 bytes"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
rm tmp_find_type_with_size tmp_find_type_with_size.cpp
|
||||
echo $datatype
|
||||
}
|
||||
|
||||
#
|
||||
# Greet user
|
||||
|
@ -65,6 +86,28 @@ echo "Running ScummVM configure..."
|
|||
echo -n > config.h
|
||||
|
||||
|
||||
#
|
||||
# Check any parameters we received
|
||||
#
|
||||
# TOOD: allow for multi value params, e.g. --target=dreamcast or --backend=morphos
|
||||
#
|
||||
|
||||
for x in $@; do
|
||||
case x$x in
|
||||
x--with-alsa)
|
||||
echo "#define USE_ALSA" >> config.h
|
||||
LIBS="$LIBS -lasound"
|
||||
;;
|
||||
x--with-mad)
|
||||
echo "#define COMPRESSED_SOUND_FILE" >> config.h
|
||||
LIBS="$LIBS -lmad"
|
||||
;;
|
||||
x--enable-dump-scripts)
|
||||
echo "#define DUMP_SCRIPTS" >> config.h
|
||||
;;
|
||||
esac;
|
||||
done;
|
||||
|
||||
#
|
||||
# Determine the C++ compiler
|
||||
#
|
||||
|
@ -134,5 +177,31 @@ case $endianess in
|
|||
exit 1
|
||||
;;
|
||||
esac
|
||||
rm tmp_endianess_check tmp_endianess_check.cpp
|
||||
|
||||
#
|
||||
# Determine data type sizes
|
||||
# TODO: proper error checking
|
||||
#
|
||||
echo -n "Type with 1 byte... "
|
||||
type_1_byte=`find_type_with_size 1`
|
||||
echo "$type_1_byte"
|
||||
|
||||
echo -n "Type with 2 bytes... "
|
||||
type_2_byte=`find_type_with_size 2`
|
||||
echo "$type_2_byte"
|
||||
|
||||
echo -n "Type with 4 bytes... "
|
||||
type_4_byte=`find_type_with_size 4`
|
||||
echo "$type_4_byte"
|
||||
|
||||
echo >> config.h
|
||||
echo "// Data types" >> config.h
|
||||
echo "typedef unsigned $type_1_byte byte;" >> config.h
|
||||
echo "typedef unsigned int uint;" >> config.h
|
||||
echo "typedef unsigned $type_1_byte uint8;" >> config.h
|
||||
echo "typedef unsigned $type_2_byte uint16;" >> config.h
|
||||
echo "typedef unsigned $type_3_byte uint32;" >> config.h
|
||||
echo "typedef signed $type_1_byte int8;" >> config.h
|
||||
echo "typedef signed $type_2_byte int16;" >> config.h
|
||||
echo "typedef signed $type_4_byte int32;" >> config.h
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue