forked from radareorg/radare2-bindings
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcheck-langs.sh
executable file
·81 lines (71 loc) · 1.69 KB
/
check-langs.sh
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
#!/bin/sh
# Check bindings supported by valabind
# pancake // radare.org - 2010-2012
SUP_LANGS="duktape"
LANGS="python perl ruby lua go java guile php5 node-ffi ctypes ocaml"
[ -z "${CC}" ] && CC=gcc
[ -z "${CXX}" ] && CXX=g++
R=`dirname $0`
PYTHON_CONFIG=`$R/python-config-wrapper -n`
export PYTHON_CONFIG
if [ "$1" = "force-all" ]; then
:> supported.langs
if [ -n "${PYTHON_CONFIG}" ]; then
echo "check-langs.sh: Detected python"
echo python >> supported.langs
fi
echo "#include <lua.h>" > .test.c
${CC} -I/usr/include/lua5.1 ${CFLAGS} -c .test.c
if [ -f .test.o ]; then
echo "check-langs.sh: Detected lua"
echo lua >> supported.langs
fi
rm -f .test.c
exit 0
fi
echo "Checking valabind languages support..."
valabind-cc --help > /dev/null 2>&1
if [ $? = 0 ]; then
# GIR IS EXPERIMENTAL #
#echo " - gir: yes"
#SUP_LANGS="gir ${SUP_LANGS}"
for a in ${LANGS}; do
printf " - $a: "
CC=${CC} CXX=${CXX} valabind-cc --test $a
if [ $? = 0 ]; then
echo yes
SUP_LANGS="$a ${SUP_LANGS}"
else
echo no
fi
done
else
echo "WARNING: cannot find valabind"
echo " - gir: no"
fi
for a in lua python php5 ; do
[ -f $a/r_core_wrap.cxx ] && SUP_LANGS="$a ${SUP_LANGS}"
done
# check g++
${CXX} --help >/dev/null 2>&1
if [ $? = 0 ]; then
echo " - cxx: yes ($CXX)"
SUP_LANGS="cxx ${SUP_LANGS}"
else
echo " - cxx: no"
fi
# check valac
valac --help > /dev/null 2>&1
if [ $? = 0 ]; then
echo " - valac: yes"
SUP_LANGS="valac ${SUP_LANGS}"
else
echo " - valac: no"
fi
:> supported.langs
for a in ${SUP_LANGS}; do
echo $a >> supported.langs
done
mv supported.langs .sl
sort -u < .sl > supported.langs
rm -f .sl