Commit | Line | Data |
---|---|---|
4132e8ca | 1 | #!/bin/sh |
2 | # some elements originated from qemu configure | |
3 | set -e | |
4 | ||
5 | TMPC="/tmp/pcsx-conf-${RANDOM}-$$-${RANDOM}.c" | |
6 | TMPO="/tmp/pcsx-conf-${RANDOM}-$$-${RANDOM}.o" | |
07c13dfd | 7 | TMPB="/tmp/pcsx-conf-${RANDOM}-$$-${RANDOM}" |
8 | trap "rm -f $TMPC $TMPO $TMPB" EXIT INT QUIT TERM | |
4132e8ca | 9 | rm -f config.log |
10 | ||
11 | compile_object() | |
12 | { | |
07c13dfd | 13 | c="$CC $CFLAGS -c $TMPC -o $TMPO $@" |
14 | echo $c >> config.log | |
15 | $c >> config.log 2>&1 | |
16 | } | |
17 | ||
18 | compile_binary() | |
19 | { | |
20 | c="$CC $CFLAGS $TMPC -o $TMPB $LDFLAGS $MAIN_LDLIBS $@" | |
4132e8ca | 21 | echo $c >> config.log |
22 | $c >> config.log 2>&1 | |
23 | } | |
24 | ||
25 | check_define() | |
26 | { | |
cc376814 | 27 | $CC -E -dD $CFLAGS include/arm_features.h | grep -q "$1" || return 1 |
28 | return 0 | |
29 | } | |
30 | ||
31 | check_define_val() | |
32 | { | |
33 | $CC -E -dD $CFLAGS include/arm_features.h | grep "$1" | awk '{print $3}' | |
4132e8ca | 34 | return 0 |
35 | } | |
36 | ||
37 | # setting options to "yes" or "no" will make that choice default, | |
38 | # "" means "autodetect". | |
39 | ||
38c2028e | 40 | platform_list="generic pandora maemo caanoo libretro" |
4132e8ca | 41 | platform="generic" |
4cfc568d | 42 | builtin_gpu_list="neon peops unai unai_old" |
61bc6d40 | 43 | builtin_gpu="" |
b68bf5c2 | 44 | sound_driver_list="oss alsa pulseaudio sdl libretro" |
07c13dfd | 45 | sound_drivers="" |
dd4d5a35 | 46 | plugins="plugins/spunull/spunull.so \ |
4cfc568d | 47 | plugins/dfxvideo/gpu_peops.so plugins/gpu_unai_old/gpu_unai_old.so plugins/gpu_unai/gpu_unai.so" |
4132e8ca | 48 | drc_cache_base="no" |
00a212aa | 49 | have_armv5="" |
4132e8ca | 50 | have_armv6="" |
51 | have_armv7="" | |
52 | have_arm_neon="" | |
57467c77 | 53 | have_arm_neon_asm="" |
4132e8ca | 54 | have_tslib="" |
5b9aa749 | 55 | have_gles="" |
5514a050 | 56 | have_c64x_dsp="" |
4132e8ca | 57 | enable_dynarec="yes" |
f89fa2d9 | 58 | need_sdl="no" |
955f9af0 | 59 | need_xlib="no" |
cc56203b | 60 | need_libpicofe="yes" |
61 | need_warm="no" | |
5b9aa749 | 62 | CFLAGS_GLES="" |
63 | LDLIBS_GLES="" | |
4132e8ca | 64 | # these are for known platforms |
65 | optimize_cortexa8="no" | |
66 | optimize_arm926ej="no" | |
67 | ||
68 | # hardcoded stuff | |
76c06a1a | 69 | if [ "${OSTYPE}" = "FreeBSD" ]; then |
4cccc4d2 MG |
70 | CC="clang" |
71 | CXX="clang++" | |
72 | CFLAGS="-I/usr/local/include -L/usr/local/lib" | |
73 | MAKE=gmake | |
74 | else | |
75 | CC="${CC-${CROSS_COMPILE}gcc}" | |
76 | CXX="${CXX-${CROSS_COMPILE}g++}" | |
77 | fi | |
4132e8ca | 78 | AS="${AS-${CROSS_COMPILE}as}" |
79 | AR="${AS-${CROSS_COMPILE}ar}" | |
9aff1963 | 80 | MAIN_LDLIBS="$LDLIBS -ldl -lm -lpthread" |
4132e8ca | 81 | config_mak="config.mak" |
82 | ||
76c06a1a | 83 | if [ "${OSTYPE}" = "FreeBSD" ]; then |
4cccc4d2 MG |
84 | SYSROOT="$sysroot" |
85 | [ "x${SDL_CONFIG}" = "x" ] && SDL_CONFIG="${SYSROOT}/usr/local/bin/sdl-config" | |
86 | else | |
87 | SYSROOT="$(${CC} --print-sysroot)" | |
88 | [ "x${SDL_CONFIG}" = "x" ] && SDL_CONFIG="${SYSROOT}/usr/bin/sdl-config" | |
89 | fi | |
3d037671 | 90 | |
07c13dfd | 91 | fail() |
92 | { | |
93 | echo "$@" | |
5d53bb85 | 94 | if test -n "$DUMP_CONFIG_LOG"; then cat config.log; fi |
07c13dfd | 95 | exit 1 |
96 | } | |
97 | ||
4132e8ca | 98 | # call during arg parsing, so that cmd line can override platform defaults |
99 | set_platform() | |
100 | { | |
101 | platform=$1 | |
102 | case "$platform" in | |
103 | generic) | |
104 | ;; | |
105 | pandora) | |
07c13dfd | 106 | sound_drivers="oss alsa" |
4132e8ca | 107 | drc_cache_base="yes" |
108 | optimize_cortexa8="yes" | |
109 | have_arm_neon="yes" | |
955f9af0 | 110 | need_xlib="yes" |
4132e8ca | 111 | ;; |
112 | maemo) | |
4132e8ca | 113 | drc_cache_base="yes" |
114 | optimize_cortexa8="yes" | |
115 | have_arm_neon="yes" | |
116 | ;; | |
117 | caanoo) | |
07c13dfd | 118 | sound_drivers="oss" |
4132e8ca | 119 | drc_cache_base="yes" |
120 | optimize_arm926ej="yes" | |
cc56203b | 121 | need_warm="yes" |
4132e8ca | 122 | ;; |
38c2028e | 123 | libretro) |
07c13dfd | 124 | sound_drivers="libretro" |
cc56203b | 125 | need_libpicofe="no" |
38c2028e | 126 | ;; |
4132e8ca | 127 | *) |
07c13dfd | 128 | fail "unsupported platform: $platform" |
4132e8ca | 129 | ;; |
130 | esac | |
131 | } | |
132 | ||
133 | for opt do | |
134 | optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'` || true | |
135 | case "$opt" in | |
136 | --help|-h) show_help="yes" | |
137 | ;; | |
138 | --platform=*) set_platform "$optarg" | |
139 | ;; | |
61bc6d40 | 140 | --gpu=*) builtin_gpu="$optarg" |
141 | ;; | |
07c13dfd | 142 | --sound-drivers=*) sound_drivers="$optarg" |
4132e8ca | 143 | ;; |
144 | --enable-neon) have_arm_neon="yes" | |
145 | ;; | |
146 | --disable-neon) have_arm_neon="no" | |
147 | ;; | |
148 | --disable-dynarec) enable_dynarec="no" | |
149 | ;; | |
150 | *) echo "ERROR: unknown option $opt"; show_help="yes" | |
151 | ;; | |
152 | esac | |
153 | done | |
154 | ||
155 | if [ "$show_help" = "yes" ]; then | |
156 | echo "options:" | |
157 | echo " --help print this message" | |
158 | echo " --platform=NAME target platform [$platform]" | |
159 | echo " available: $platform_list" | |
61bc6d40 | 160 | echo " --gpu=NAME builtin gpu plugin [guessed]" |
161 | echo " available: $builtin_gpu_list" | |
07c13dfd | 162 | echo " --sound-drivers=LIST sound output drivers [guessed]" |
4132e8ca | 163 | echo " available: $sound_driver_list" |
164 | echo " --enable-neon" | |
165 | echo " --disable-neon enable/disable ARM NEON optimizations [guessed]" | |
166 | echo " --disable-dynarec disable dynamic recompiler" | |
167 | echo " (dynarec is only available and enabled on ARM)" | |
168 | echo "influential environment variables:" | |
ac6575cd | 169 | echo " CROSS_COMPILE CC CXX AS AR CFLAGS ASFLAGS LDFLAGS LDLIBS" |
4132e8ca | 170 | exit 1 |
171 | fi | |
172 | ||
07c13dfd | 173 | # validate selections |
61bc6d40 | 174 | if [ "x$builtin_gpu" != "x" ]; then |
07c13dfd | 175 | if ! echo $builtin_gpu_list | grep -q "\<$builtin_gpu\>"; then |
176 | fail "unsupported builtin gpu plugin: $builtin_gpu" | |
177 | fi | |
61bc6d40 | 178 | fi |
179 | ||
07c13dfd | 180 | if [ "x$sound_drivers" != "x" ]; then |
181 | for d in $sound_drivers; do | |
182 | if ! echo $sound_driver_list | grep -q "\<$d\>"; then | |
183 | fail "unsupported sound driver: $sound_driver" | |
184 | fi | |
185 | done | |
186 | fi | |
4132e8ca | 187 | |
cc56203b | 188 | if [ "$need_libpicofe" = "yes" ]; then |
189 | if ! test -f "frontend/libpicofe/README"; then | |
190 | fail "libpicofe is missing, please run 'git submodule init && git submodule update'" | |
191 | fi | |
192 | fi | |
193 | ||
194 | if [ "$need_warm" = "yes" ]; then | |
195 | if ! test -f "frontend/warm/README"; then | |
196 | fail "wARM is missing, please run 'git submodule init && git submodule update'" | |
197 | fi | |
198 | fi | |
199 | ||
00a212aa | 200 | # basic compiler test |
201 | cat > $TMPC <<EOF | |
202 | #include <zlib.h> | |
203 | int main(void) { return 0; } | |
204 | EOF | |
205 | if ! compile_binary; then | |
0dc1b4a9 | 206 | fail "compiler test failed, please check config.log" |
00a212aa | 207 | fi |
208 | ||
4132e8ca | 209 | if [ -z "$ARCH" ]; then |
0dc1b4a9 | 210 | ARCH=`$CC -dumpmachine | awk -F '-' '{print $1}'` |
4132e8ca | 211 | fi |
212 | ||
0dc1b4a9 | 213 | case "$ARCH" in |
214 | arm*) | |
215 | # ARM stuff | |
216 | ARCH="arm" | |
217 | ||
4132e8ca | 218 | if [ "$optimize_cortexa8" = "yes" ]; then |
4132e8ca | 219 | CFLAGS="$CFLAGS -mcpu=cortex-a8 -mtune=cortex-a8" |
220 | ASFLAGS="$ASFLAGS -mcpu=cortex-a8" | |
221 | fi | |
222 | if [ "$optimize_arm926ej" = "yes" ]; then | |
223 | CFLAGS="$CFLAGS -mcpu=arm926ej-s -mtune=arm926ej-s" | |
224 | ASFLAGS="$ASFLAGS -mcpu=arm926ej-s -mfloat-abi=softfp" | |
225 | fi | |
226 | ||
227 | if [ "x$have_arm_neon" = "x" ]; then | |
57467c77 | 228 | # detect NEON from user-supplied cflags to enable neon code |
4132e8ca | 229 | have_arm_neon=`check_define __ARM_NEON__ && echo yes` || true |
230 | fi | |
4132e8ca | 231 | if [ "x$have_armv7" = "x" ]; then |
00a212aa | 232 | if check_define HAVE_ARMV7; then |
4132e8ca | 233 | have_armv7="yes" |
00a212aa | 234 | have_armv6="yes" |
235 | have_armv5="yes" | |
4132e8ca | 236 | fi |
237 | fi | |
00a212aa | 238 | if [ "x$have_armv6" = "x" ]; then |
239 | if check_define HAVE_ARMV6; then | |
240 | have_armv6="yes" | |
241 | have_armv5="yes" | |
242 | fi | |
243 | fi | |
244 | if [ "x$have_armv5" = "x" ]; then | |
245 | have_armv5=`check_define HAVE_ARMV5 && echo yes` || true | |
246 | fi | |
4132e8ca | 247 | |
61bc6d40 | 248 | if [ "x$builtin_gpu" = "x" ]; then |
249 | if [ "$have_arm_neon" = "yes" ]; then | |
250 | builtin_gpu="neon" | |
251 | elif [ "$have_armv7" != "yes" ]; then | |
252 | # pre-ARMv7 hardware is usually not fast enough for peops | |
5a920d32 | 253 | builtin_gpu="unai_old" |
61bc6d40 | 254 | else |
255 | builtin_gpu="peops" | |
256 | fi | |
257 | fi | |
258 | ||
e795af9e | 259 | # automatically set mfpu and mfloat-abi if they are not set |
4132e8ca | 260 | if [ "$have_arm_neon" = "yes" ]; then |
40cf6975 | 261 | fpu="neon" |
4132e8ca | 262 | elif [ "$have_armv6" = "yes" ]; then |
40cf6975 | 263 | fpu="vfp" |
4132e8ca | 264 | fi |
40cf6975 | 265 | if [ "x$fpu" != "x" ]; then |
266 | echo "$CFLAGS" | grep -q -- '-mfpu=' || CFLAGS="$CFLAGS -mfpu=$fpu" | |
267 | echo "$ASFLAGS" | grep -q -- '-mfpu=' || ASFLAGS="$ASFLAGS -mfpu=$fpu" | |
268 | floatabi_set_by_gcc=`$CC -v 2>&1 | grep -q -- --with-float= && echo yes` || true | |
269 | if [ "$floatabi_set_by_gcc" != "yes" ]; then | |
270 | echo "$CFLAGS" | grep -q -- '-mfloat-abi=' || CFLAGS="$CFLAGS -mfloat-abi=softfp" | |
271 | echo "$ASFLAGS" | grep -q -- '-mfloat-abi=' || ASFLAGS="$ASFLAGS -mfloat-abi=softfp" | |
272 | fi | |
4132e8ca | 273 | fi |
274 | ||
9f704290 | 275 | # must disable thumb as recompiler can't handle it |
96751f36 | 276 | if check_define __thumb__; then |
9f704290 | 277 | CFLAGS="$CFLAGS -marm" |
96751f36 | 278 | fi |
00a212aa | 279 | |
280 | # warn about common mistakes | |
281 | if [ "$have_armv5" != "yes" ]; then | |
282 | if ! echo "$CFLAGS" | grep -q -- '-mcpu=\|-march='; then | |
283 | echo "Warning: compiling for ARMv4, is that really what you want?" | |
284 | echo "You probably should specify -mcpu= or -march= like this:" | |
285 | echo " CFLAGS=-march=armv6 ./configure ..." | |
286 | fi | |
287 | fi | |
288 | if [ "$have_arm_neon" = "yes" -a "$have_armv7" != "yes" ]; then | |
289 | echo "Warning: compiling for NEON, but not ARMv7?" | |
290 | echo "You probably want to specify -mcpu= or -march= like this:" | |
291 | echo " CFLAGS=-march=armv7-a ./configure ..." | |
292 | fi | |
57467c77 | 293 | have_arm_neon_asm=$have_arm_neon |
0dc1b4a9 | 294 | ;; |
55a2d0dc | 295 | aarch64) |
57467c77 | 296 | have_arm_neon="yes" |
297 | have_arm_neon_asm="no" | |
298 | if [ "x$builtin_gpu" = "x" ]; then | |
299 | builtin_gpu="neon" | |
300 | fi | |
55a2d0dc | 301 | ;; |
af486d6e | 302 | x86_64) |
303 | enable_dynarec="no" | |
304 | if [ "x$builtin_gpu" = "x" ]; then | |
305 | builtin_gpu="neon" | |
306 | fi | |
307 | ;; | |
0dc1b4a9 | 308 | *) |
4132e8ca | 309 | # dynarec only available on ARM |
310 | enable_dynarec="no" | |
0dc1b4a9 | 311 | ;; |
312 | esac | |
4132e8ca | 313 | |
61bc6d40 | 314 | if [ "x$builtin_gpu" = "x" ]; then |
315 | builtin_gpu="peops" | |
316 | fi | |
317 | ||
4132e8ca | 318 | # supposedly we can avoid -fPIC on armv5 for slightly better performace? |
319 | if [ "$ARCH" != "arm" -o "$have_armv6" = "yes" ]; then | |
320 | PLUGIN_CFLAGS="$PLUGIN_CFLAGS -fPIC" | |
321 | fi | |
322 | ||
38c2028e | 323 | case "$platform" in |
324 | generic) | |
f89fa2d9 | 325 | need_sdl="yes" |
38c2028e | 326 | ;; |
327 | maemo) | |
7010034e | 328 | CFLAGS="$CFLAGS -DMAEMO -DMAEMO_CHANGES" |
38c2028e | 329 | ;; |
330 | libretro) | |
331 | CFLAGS="$CFLAGS -fPIC" | |
22fa3f2b | 332 | MAIN_LDFLAGS="$MAIN_LDFLAGS -shared -Wl,--no-undefined" |
38c2028e | 333 | ;; |
334 | esac | |
4132e8ca | 335 | |
07c13dfd | 336 | # header/library presence tests |
337 | check_zlib() | |
338 | { | |
339 | cat > $TMPC <<EOF | |
340 | #include <zlib.h> | |
791f6e3e | 341 | int main(void) { uncompress(0, 0, 0, 0); } |
07c13dfd | 342 | EOF |
343 | compile_binary | |
344 | } | |
345 | ||
07c13dfd | 346 | check_libpng() |
347 | { | |
348 | cat > $TMPC <<EOF | |
349 | #include <png.h> | |
350 | void main() { png_init_io(0, 0); } | |
351 | EOF | |
352 | compile_binary | |
353 | } | |
354 | ||
355 | check_oss() | |
356 | { | |
357 | cat > $TMPC <<EOF | |
358 | #include <sys/soundcard.h> | |
359 | #include <sys/ioctl.h> | |
360 | void main() { int a=0; ioctl(0, SNDCTL_DSP_SETFMT, &a); } | |
361 | EOF | |
362 | compile_binary | |
363 | } | |
364 | ||
365 | check_alsa() | |
366 | { | |
367 | cat > $TMPC <<EOF | |
368 | #include <alsa/asoundlib.h> | |
369 | void main() { snd_pcm_open(0, 0, 0, 0); } | |
370 | EOF | |
371 | compile_binary "$@" | |
372 | } | |
373 | ||
b68bf5c2 | 374 | check_pulseaudio() |
375 | { | |
376 | cat > $TMPC <<EOF | |
377 | #include <pulse/pulseaudio.h> | |
378 | void main() { pa_threaded_mainloop_new(); } | |
379 | EOF | |
380 | compile_binary "$@" | |
381 | } | |
382 | ||
07c13dfd | 383 | check_sdl() |
384 | { | |
385 | cat > $TMPC <<EOF | |
386 | #include <SDL.h> | |
387 | void main() { SDL_OpenAudio(0, 0); } | |
388 | EOF | |
389 | compile_binary "$@" | |
390 | } | |
391 | ||
955f9af0 | 392 | check_xlib_headers() |
393 | { | |
394 | cat > $TMPC <<EOF | |
395 | #include <X11/Xlib.h> | |
396 | void *f() { return XOpenDisplay(0); } | |
397 | EOF | |
398 | compile_object "$@" | |
399 | } | |
400 | ||
5514a050 | 401 | # see if we have c64_tools for TI C64x DSP |
402 | check_c64_tools() | |
403 | { | |
404 | cat > $TMPC <<EOF | |
405 | #include <inc_libc64_mini.h> | |
406 | int f() { return dsp_open(); } | |
407 | EOF | |
408 | compile_object "$@" | |
409 | } | |
410 | ||
f89fa2d9 | 411 | MAIN_LDLIBS="$MAIN_LDLIBS -lz" |
9f704290 | 412 | check_zlib || fail "please install zlib (libz-dev)" |
f89fa2d9 | 413 | |
f89fa2d9 | 414 | MAIN_LDLIBS="-lpng $MAIN_LDLIBS" |
9f704290 | 415 | check_libpng || fail "please install libpng (libpng-dev)" |
07c13dfd | 416 | |
417 | # find what audio support we can compile | |
418 | if [ "x$sound_drivers" = "x" ]; then | |
419 | if check_oss; then sound_drivers="$sound_drivers oss"; fi | |
f89fa2d9 | 420 | if check_alsa -lasound; then |
421 | sound_drivers="$sound_drivers alsa" | |
422 | MAIN_LDLIBS="-lasound $MAIN_LDLIBS" | |
423 | fi | |
b68bf5c2 | 424 | if check_pulseaudio -lpulse; then |
425 | sound_drivers="$sound_drivers pulseaudio" | |
426 | MAIN_LDLIBS="-lpulse $MAIN_LDLIBS" | |
427 | fi | |
3d037671 | 428 | if [ "$need_sdl" = "yes" ] || check_sdl `${SDL_CONFIG} --cflags --libs`; then |
f89fa2d9 | 429 | sound_drivers="$sound_drivers sdl" |
430 | need_sdl="yes" | |
431 | fi | |
432 | else | |
433 | if echo $sound_drivers | grep -q "\<oss\>"; then | |
434 | check_oss || fail "oss support is missing" | |
435 | fi | |
436 | if echo $sound_drivers | grep -q "\<alsa\>"; then | |
437 | MAIN_LDLIBS="-lasound $MAIN_LDLIBS" | |
438 | check_alsa || fail "please install libasound2-dev" | |
439 | fi | |
b68bf5c2 | 440 | if echo $sound_drivers | grep -q "\<pulseaudio\>"; then |
441 | MAIN_LDLIBS="-lpulse $MAIN_LDLIBS" | |
442 | check_pulseaudio || fail "pulseaudio support is missing" | |
443 | fi | |
07c13dfd | 444 | fi |
445 | ||
9f704290 | 446 | if [ "$need_sdl" = "yes" ]; then |
3d037671 | 447 | which ${SDL_CONFIG} > /dev/null || \ |
9f704290 | 448 | fail "sdl-config is missing; please install libsdl (libsdl1.2-dev)" |
3d037671 PC |
449 | CFLAGS="$CFLAGS `${SDL_CONFIG} --cflags`" |
450 | MAIN_LDLIBS="`${SDL_CONFIG} --libs` $MAIN_LDLIBS" | |
9f704290 | 451 | check_sdl || fail "please install libsdl (libsdl1.2-dev)" |
07c13dfd | 452 | fi |
453 | ||
4132e8ca | 454 | # check for tslib (only headers needed) |
455 | if [ "x$have_tslib" = "x" ]; then | |
456 | cat > $TMPC <<EOF | |
457 | #include <tslib.h> | |
458 | void test(struct ts_sample sample) {} | |
459 | EOF | |
460 | if compile_object; then | |
461 | have_tslib="yes" | |
462 | else | |
463 | have_tslib="no" | |
464 | fi | |
465 | fi | |
466 | ||
5b9aa749 | 467 | # check for VideoCore stuff for Raspberry Pi |
ad6150e0 | 468 | if [ -d /opt/vc/include -a -d /opt/vc/lib -a "$VIDEOCORE" != "no" ]; then |
237d1f6f | 469 | CFLAGS_GLES="$CFLAGS_GLES -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux" |
5b9aa749 | 470 | LDLIBS_GLES="$LDLIBS_GLES -L/opt/vc/lib" |
cbcadc5f | 471 | if [ -f /opt/vc/lib/libbcm_host.so ]; then |
472 | LDLIBS_GLES="$LDLIBS_GLES -lbcm_host" | |
473 | fi | |
955f9af0 | 474 | need_xlib="yes" |
ad6150e0 | 475 | VIDEOCORE="yes" |
5b9aa749 | 476 | fi |
477 | ||
dd4d5a35 | 478 | # check for GLES headers |
479 | cat > $TMPC <<EOF | |
480 | #include <GLES/gl.h> | |
dd4d5a35 | 481 | #include <EGL/egl.h> |
5b9aa749 | 482 | int main(void) { |
483 | return (int)eglGetDisplay( (EGLNativeDisplayType)0 ); | |
dd4d5a35 | 484 | } |
485 | EOF | |
ad6150e0 CG |
486 | if [ "$VIDEOCORE" = "yes" ] && compile_binary $CFLAGS_GLES -lbrcmEGL -lbrcmGLESv2 $LDLIBS_GLES; then |
487 | have_gles="yes" | |
488 | LDLIBS_GLES="-lbrcmEGL -lbrcmGLESv2 $LDLIBS_GLES" | |
489 | elif compile_binary $CFLAGS_GLES -lEGL -lGLES_CM $LDLIBS_GLES; then | |
5b9aa749 | 490 | have_gles="yes" |
491 | LDLIBS_GLES="-lEGL -lGLES_CM $LDLIBS_GLES" | |
492 | elif compile_binary $CFLAGS_GLES -lEGL -lGLESv1_CM $LDLIBS_GLES; then | |
493 | have_gles="yes" | |
494 | LDLIBS_GLES="-lEGL -lGLESv1_CM $LDLIBS_GLES" | |
dd4d5a35 | 495 | fi |
496 | ||
5514a050 | 497 | if check_c64_tools; then |
498 | have_c64x_dsp="yes" | |
499 | fi | |
500 | ||
5b9aa749 | 501 | if [ "$have_gles" = "yes" ]; then |
502 | plugins="$plugins plugins/gpu-gles/gpu_gles.so" | |
503 | fi | |
61bc6d40 | 504 | if [ "$have_arm_neon" = "yes" -a "$builtin_gpu" != "neon" ]; then |
505 | plugins="$plugins plugins/gpu_neon/gpu_neon.so" | |
506 | fi | |
507 | ||
955f9af0 | 508 | # check for xlib (only headers needed) |
509 | if [ "x$need_xlib" = "xyes" ]; then | |
510 | check_xlib_headers || fail "please install libx11-dev" | |
511 | fi | |
512 | ||
cc376814 | 513 | sizeof_long=`check_define_val __SIZEOF_LONG__` |
514 | if [ "x$sizeof_long" = "x4" ]; then | |
515 | CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64" | |
516 | fi | |
517 | ||
9f704290 | 518 | cat > $TMPC <<EOF |
519 | void test(void *f, void *d) { fread(d, 1, 1, f); } | |
520 | EOF | |
521 | if compile_object -Wno-unused-result; then | |
522 | CFLAGS="$CFLAGS -Wno-unused-result" | |
523 | fi | |
524 | ||
dd4d5a35 | 525 | # short plugin list for display |
526 | for p in $plugins; do | |
527 | p1=`basename $p` | |
528 | plugins_short="$p1 $plugins_short" | |
529 | done | |
530 | ||
4132e8ca | 531 | # set things that failed to autodetect to "no" |
532 | test "x$have_armv6" != "x" || have_armv6="no" | |
533 | test "x$have_armv7" != "x" || have_armv7="no" | |
534 | test "x$have_arm_neon" != "x" || have_arm_neon="no" | |
57467c77 | 535 | test "x$have_arm_neon_asm" != "x" || have_arm_neon_asm="no" |
00a212aa | 536 | test "x$have_gles" != "x" || have_gles="no" |
5514a050 | 537 | test "x$have_c64x_dsp" != "x" || have_c64x_dsp="no" |
4132e8ca | 538 | |
539 | echo "architecture $ARCH" | |
540 | echo "platform $platform" | |
61bc6d40 | 541 | echo "built-in GPU $builtin_gpu" |
07c13dfd | 542 | echo "sound drivers $sound_drivers" |
dd4d5a35 | 543 | echo "plugins $plugins_short" |
4132e8ca | 544 | echo "C compiler $CC" |
545 | echo "C compiler flags $CFLAGS" | |
07c13dfd | 546 | echo "libraries $MAIN_LDLIBS" |
22fa3f2b | 547 | echo "linker flags $LDFLAGS$MAIN_LDFLAGS" |
4132e8ca | 548 | echo "enable dynarec $enable_dynarec" |
57467c77 | 549 | if [ "$ARCH" = "arm" -o "$ARCH" = "aarch64" ]; then |
550 | echo "enable ARM NEON $have_arm_neon" | |
551 | fi | |
5514a050 | 552 | if [ "$ARCH" = "arm" ]; then |
553 | echo "ARMv7 optimizations $have_armv7" | |
5514a050 | 554 | echo "TI C64x DSP support $have_c64x_dsp" |
555 | fi | |
4132e8ca | 556 | echo "tslib support $have_tslib" |
2c616080 | 557 | if [ "$platform" = "generic" ]; then |
558 | echo "OpenGL ES output $have_gles" | |
559 | fi | |
4132e8ca | 560 | |
561 | echo "# Automatically generated by configure" > $config_mak | |
562 | printf "# Configured with:" >> $config_mak | |
563 | printf " '%s'" "$0" "$@" >> $config_mak | |
564 | echo >> $config_mak | |
565 | ||
566 | echo "CC = $CC" >> $config_mak | |
ac6575cd | 567 | echo "CXX = $CXX" >> $config_mak |
4132e8ca | 568 | echo "AS = $AS" >> $config_mak |
569 | echo "CFLAGS += $CFLAGS" >> $config_mak | |
570 | echo "ASFLAGS += $ASFLAGS" >> $config_mak | |
571 | echo "LDFLAGS += $LDFLAGS" >> $config_mak | |
22fa3f2b | 572 | echo "MAIN_LDFLAGS += $MAIN_LDFLAGS" >> $config_mak |
07c13dfd | 573 | echo "MAIN_LDLIBS += $MAIN_LDLIBS" >> $config_mak |
4132e8ca | 574 | echo "PLUGIN_CFLAGS += $PLUGIN_CFLAGS" >> $config_mak |
575 | echo >> $config_mak | |
576 | ||
38c2028e | 577 | if [ "$platform" = "libretro" ]; then |
578 | echo "TARGET = libretro.so" >> $config_mak | |
579 | fi | |
4132e8ca | 580 | echo "ARCH = $ARCH" >> $config_mak |
581 | echo "PLATFORM = $platform" >> $config_mak | |
61bc6d40 | 582 | echo "BUILTIN_GPU = $builtin_gpu" >> $config_mak |
07c13dfd | 583 | echo "SOUND_DRIVERS = $sound_drivers" >> $config_mak |
ddd99692 | 584 | echo "PLUGINS = $plugins" >> $config_mak |
4132e8ca | 585 | if [ "$have_arm_neon" = "yes" ]; then |
586 | echo "HAVE_NEON = 1" >> $config_mak | |
587 | fi | |
57467c77 | 588 | if [ "$have_arm_neon_asm" = "yes" ]; then |
589 | echo "HAVE_NEON_ASM = 1" >> $config_mak | |
590 | fi | |
4132e8ca | 591 | if [ "$have_tslib" = "yes" ]; then |
592 | echo "HAVE_TSLIB = 1" >> $config_mak | |
593 | fi | |
5b9aa749 | 594 | if [ "$have_gles" = "yes" ]; then |
595 | echo "HAVE_GLES = 1" >> $config_mak | |
596 | echo "CFLAGS_GLES = $CFLAGS_GLES" >> $config_mak | |
597 | echo "LDLIBS_GLES = $LDLIBS_GLES" >> $config_mak | |
598 | fi | |
4132e8ca | 599 | if [ "$enable_dynarec" = "yes" ]; then |
600 | echo "USE_DYNAREC = 1" >> $config_mak | |
601 | fi | |
602 | if [ "$drc_cache_base" = "yes" ]; then | |
2a014d73 | 603 | echo "BASE_ADDR_DYNAMIC = 1" >> $config_mak |
4132e8ca | 604 | fi |
5514a050 | 605 | if [ "$have_c64x_dsp" = "yes" ]; then |
606 | echo "HAVE_C64_TOOLS = 1" >> $config_mak | |
607 | fi | |
4132e8ca | 608 | |
2e6189bc | 609 | # use pandora's skin (for now) |
610 | test -e skin || ln -s frontend/pandora/skin skin | |
611 | ||
4132e8ca | 612 | # vim:shiftwidth=2:expandtab |