User Tools

Site Tools


chumby

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
chumby [2010/03/22 14:18]
ladyada created
chumby [2010/06/21 21:37]
ladyada
Line 18: Line 18:
 <​file>​ <​file>​
 stop_control_panel stop_control_panel
 +</​file>​
 +
 +Then make the sshd '​permanent'​
 +
 +<​file>​
 +touch /​psp/​start_sshd
 </​file>​ </​file>​
  
Line 93: Line 99:
  
 stop_control_panel stop_control_panel
-switch_output -l+/​mnt/​storage/​switch_output -l
 switch_fb.sh 0 switch_fb.sh 0
 </​file>​ </​file>​
Line 101: Line 107:
  
 Also tried the old SDL tests and they'​re working good now. yay. Also tried the old SDL tests and they'​re working good now. yay.
 +
 +==== Port SIemu ====
 +
 +The '​easiest'​ emulator to port by far is SIemu. Its written in straight-up C, well documented and uses SDL as an underpinning.
 +
 +  * Had problem with audio so commented out all the Audio procedures. ​
 +  * Complained about screen size so changes graphics.h to use 320x240 screen
 +  * Runs!
 +
 +OK much success. Now to fix it so audio works. SDL doesnt seem to know about audio device - perhaps we need to install ALSA lib first?
 +
 +==== Install ALSA ====
 +
 +We configure/​make'​d ALSA
 +
 +==== Build SDL with OSS ====
 +Trying to build SDL with ALSA (unpatched) didnt really work but then  but then we realized that OSS is already in there so many we should just rebuild SDL?
 +
 +Built SDL with following flags
 +<​file>​
 +./configure --disable-esd --disable-pulseaudio --disable-video-x11 --enable-video-fbcon --disable-alsa
 +</​file>​
 +
 +compiled cleanly, ran test/​loopwave and it worked! yay!
 +
 +==== Rebuild SIemu ====
 +
 +unpatched the audio and run it with new SDL that has audio. works! and keyboard works too! kpow kpow.
 +much success.
 +
 +
 +(note used '​original'​ SDL not chumbyquake SDL!)
  
 ==== download stella & ./configure ==== ==== download stella & ./configure ====
Line 116: Line 154:
 none found! none found!
 </​file>​ </​file>​
 +
 +OK, grab an [[http://​forum.chumby.com/​viewtopic.php?​id=4474|updated busybox]] and install it
 +
 +Now printf exists, try again
 +
 +<​file>​
 + ​./​configure --disable-debugger --disable-cheats ​  
 +make
 +</​file>​
 +
 +but gcc dies :(
 +<​file>​
 +g++ -Wp,​-MMD,"​src/​emucore/​.deps/​PropsSet.d",​-MQ,"​src/​emucore/​PropsSet.o",​-MP -O2 -Wall -Wno-multichar -Wunused -fno-rtti -fomit-frame-pointer ​ -DUNIX -DBSPF_UNIX -DHAVE_GETTIMEOFDAY -DHAVE_INTTYPES -DWINDOWED_SUPPORT -DSOUND_SUPPORT -DSNAPSHOT_SUPPORT -DJOYSTICK_SUPPORT ​ -Isrc/​emucore -Isrc/​emucore/​m6502/​src -Isrc/​emucore/​m6502/​src/​bspf/​src -Isrc/​common -Isrc/gui -I/​usr/​local/​include/​SDL -D_GNU_SOURCE=1 -D_REENTRANT -Isrc/unix -c src/​emucore/​PropsSet.cxx -o src/​emucore/​PropsSet.o
 +g++: Internal error: Killed (program cc1plus)
 +Please submit a full bug report.
 +See <​http://​gcc.gnu.org/​bugs.html>​ for instructions.
 +make: *** [src/​emucore/​PropsSet.o] Error 1
 +</​file>​
 +
 +dmesg says we're out of memory!
 +
 +<​file>​
 +[  809.010000] ntpd invoked oom-killer: gfp_mask=0x1201d2,​ order=0, oomkilladj=0
 +[  809.010000] [<​c02ff9bc>​] (dump_stack+0x0/​0x14) from [<​c00777f4>​] (oom_kill_process+0x5c/​0x1d8)
 +[  809.020000] [<​c0077798>​] (oom_kill_process+0x0/​0x1d8) from [<​c0077f38>​] (out_of_memory+0x1dc/​0x254)
 +[  809.030000] ​ r8:c2aac000 r7:c0445858 r6:000001be r5:c3dec900 r4:c2a68600
 +[  809.040000] [<​c0077d5c>​] (out_of_memory+0x0/​0x254) from [<​c007ab98>​] (__alloc_pages_internal+0x300/​0x3bc)
 +[  809.050000] [<​c007a898>​] (__alloc_pages_internal+0x0/​0x3bc) from [<​c007cd6c>​] (__do_page_cache_readahead+0x118/​0x264)
 +[  809.060000] [<​c007cc54>​] (__do_page_cache_readahead+0x0/​0x264) from [<​c007cf24>​] (do_page_cache_readahead+0x6c/​0x74)
 +[  809.070000] [<​c007ceb8>​] (do_page_cache_readahead+0x0/​0x74) from [<​c0075168>​] (filemap_fault+0x1d8/​0x448)
 +[  809.080000] ​ r7:00000000 r6:c2aac000 r5:00000000 r4:00000000
 +[  809.080000] [<​c0074f90>​] (filemap_fault+0x0/​0x448) from [<​c0084958>​] (__do_fault+0x54/​0x488)
 +[  809.090000] [<​c0084904>​] (__do_fault+0x0/​0x488) from [<​c0085bf0>​] (handle_mm_fault+0x2f4/​0x7c0)
 +[  809.100000] [<​c00858fc>​] (handle_mm_fault+0x0/​0x7c0) from [<​c002da64>​] (do_page_fault+0xf0/​0x238)
 +[  809.110000] [<​c002d974>​] (do_page_fault+0x0/​0x238) from [<​c002dc34>​] (do_translation_fault+0x18/​0x80)
 +[  809.120000] [<​c002dc1c>​] (do_translation_fault+0x0/​0x80) from [<​c0026254>​] (do_PrefetchAbort+0x18/​0x1c)
 +[  809.130000] ​ r7:00000000 r6:00053790 r5:00052acc r4:ffffffff
 +[  809.140000] [<​c002623c>​] (do_PrefetchAbort+0x0/​0x1c) from [<​c0026dc0>​] (ret_from_exception+0x0/​0x10)
 +[  809.150000] Exception stack(0xc2aadfb0 to 0xc2aadff8)
 +[  809.150000] dfa0:                                     ​00000000 00052974 000002f6 000002f7 ​
 +[  809.160000] dfc0: 00000000 00052acc 00053790 00000000 00053794 0004ecfc 0005234c bed1bb2c ​
 +[  809.170000] dfe0: 00008001 bed1bb00 0002859c 00017608 60000010 ffffffff ​                  
 +[  809.180000] Mem-info:
 +[  809.180000] Normal per-cpu:
 +[  809.180000] CPU    0: hi:   18, btch:   3 usd:  10
 +[  809.190000] Active_anon:​5856 active_file:​40 inactive_anon:​5862
 +[  809.190000] ​ inactive_file:​112 unevictable:​0 dirty:0 writeback:0 unstable:0
 +[  809.190000] ​ free:285 slab:767 mapped:26 pagetables:​110 bounce:0
 +[  809.210000] Normal free:1140kB min:1016kB low:1268kB high:1524kB active_anon:​23424kB inactive_anon:​23448kB active_file:​160kB inactive_file:​448kB unevictable:​0kB present:​65024kB pages_scanned:​14 all_unreclaimable?​ no
 +[  809.230000] lowmem_reserve[]:​ 0 0
 +[  809.230000] Normal: 23*4kB 7*8kB 0*16kB 1*32kB 1*64kB 1*128kB 1*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 1140kB
 +[  809.240000] 377 total pagecache pages
 +[  809.240000] 0 pages in swap cache
 +[  809.250000] Swap cache stats: add 0, delete 0, find 0/0
 +[  809.250000] Free swap  = 0kB
 +[  809.250000] Total swap = 0kB
 +[  809.260000] 16384 pages of RAM
 +[  809.270000] 423 free pages
 +[  809.270000] 2647 reserved pages
 +[  809.270000] 630 slab pages
 +[  809.270000] 108 pages shared
 +[  809.280000] 0 pages swap cached
 +[  809.280000] Out of memory: kill process 2683 (g++) score 446 or a child
 +[  809.290000] Killed process 2684 (cc1plus)
 +</​file>​
 +
 +try..
 +
 +<​file>​
 +if [ ! -e /​mnt/​storage/​swap ]
 +then
 +    echo "​Making 256M swapfile"​
 +    dd if=/​dev/​zero of=/​mnt/​storage/​swap bs=1M count=256
 +    mkswap /​mnt/​storage/​swap
 +fi
 +swapon /​mnt/​storage/​swap
 +</​file>​
 +
 +done and...sucess!
 +
 +{{http://​farm3.static.flickr.com/​2760/​4455436625_859aa97392.jpg}}
 +
 +good news: you can play ROMs if you specify them on the command line. badnews: the ROM launcher not only doesnt work, but if it tries to run it gives some assert error and then doesnt '​release'​ the SDL library (or *something*) and it doesnt really work until reboot. :(
 +
 +commented out the Assert in Rect.h and it all works now - this should of course be fixed but hey!
 +
 +[[http://​lists.libsdl.org/​pipermail/​sdl-libsdl.org/​2006-July/​056756.html|The ^C problem is discussed here]] printf!
 +
 +==== fix colormap ====
 +
 +R and B are swapped in SDL. whyso?
 +Uncommented DEBUG_FBCON in SDL, got this
 +<​file> ​       xres: 320
 +        yres: 240
 +        xres_virtual:​ 320
 +        yres_virtual:​ 240
 +        xoffset: 0
 +        yoffset: 0
 +        bits_per_pixel:​ 16
 +        grayscale: 0
 +        nonstd: 0
 +        activate: 0
 +        height: 240
 +        width: 320
 +        accel_flags:​ 0
 +        pixclock: 154000
 +        left_margin:​ 5
 +        right_margin:​ 4
 +        upper_margin:​ 3
 +        lower_margin:​ 3
 +        hsync_len: 40
 +        vsync_len: 2
 +        sync: 0
 +        vmode: 0
 +        red: 5/0
 +        green: 6/5
 +        blue: 5/11
 +        alpha: 0/0
 +        </​file>​
 +
 +which is fetched from SDL_fbvideo.c "​ioctl(console_fd,​ FBIOGET_VSCREENINFO,​ &​vinfo)"​ (in a few places)
 +
 +So it seems like the FB driver is reporting the wrong thing
 +i guess we could just hack it..?
 +
 +Edited SDL_fbvideo.c,​ line #595 and then #1038
 +<​file>​
 +        // BEGIN TERRIBLE MEME HACK                                             
 +        uint32_t tempoffset = vinfo.red.offset; ​                                
 +        vinfo.red.offset = vinfo.blue.offset; ​                       ​
 +        vinfo.blue.offset = tempoffset; ​                           ​
 +        // END TERRIBLE MEME HACK 
 +        ​
 +</​file>​
 +
 +but...it works! should probably fix this '​upstream'​ somehow
 +
 +==== FCEUX ====
 +
 +OK so now that stella is sweet, we'll go up one level to NES emulators. FCEUX is SDL-based and works well. Lets do that.
 +
 +First we need to install python, [[http://​wiki.chumby.com/​mediawiki/​index.php/​Python|grab this precompiled tgz]] and uncompress it (we ran out of space in / so it went into /​mnt/​storage/​ and then edit your path or ln -s)
 +
 +Next we will need to install SCons, [[http://​www.scons.org/​download.php|download the latest source tarball]] we used 2.00 Once unpacked, go into the directory and type "​python setup.py install"​. If it complains that it cant find the pyconfig.h you can create it using this (which is from our desktop linux box but hey it works):
 +
 +<​file>/​* pyconfig.h. ​ Generated from pyconfig.h.in by configure. ​ */
 +/* pyconfig.h.in. ​ Generated from configure.in by autoheader. ​ */
 +
 +
 +#ifndef Py_PYCONFIG_H
 +#define Py_PYCONFIG_H
 +
 +
 +/* Define for AIX if your compiler is a genuine IBM xlC/xlC_r and you want
 +   ​support for AIX C++ shared extension modules. */
 +/* #undef AIX_GENUINE_CPLUSPLUS */
 +
 +/* Define this if you have AtheOS threads. */
 +/* #undef ATHEOS_THREADS */
 +
 +/* Define this if you have BeOS threads. */
 +/* #undef BEOS_THREADS */
 +
 +/* Define if you have the Mach cthreads package */
 +/* #undef C_THREADS */
 +
 +/* Define if --enable-ipv6 is specified */
 +#define ENABLE_IPV6 1
 +
 +/* Define if getpgrp() must be called as getpgrp(0). */
 +/* #undef GETPGRP_HAVE_ARG */
 +
 +/* Define if gettimeofday() does not have second (timezone) argument This is
 +   the case on Motorola V4 (R40V4.2) */
 +/* #undef GETTIMEOFDAY_NO_TZ */
 +
 +/* Define to 1 if you have the `acosh'​ function. */
 +#define HAVE_ACOSH 1
 +
 +/* struct addrinfo (netdb.h) */
 +#define HAVE_ADDRINFO 1
 +
 +/* Define to 1 if you have the `alarm'​ function. */
 +#define HAVE_ALARM 1
 +
 +/* Define this if your time.h defines altzone. */
 +/* #undef HAVE_ALTZONE */
 +
 +/* Define to 1 if you have the `asinh'​ function. */
 +#define HAVE_ASINH 1
 +
 +/* Define to 1 if you have the <​asm/​types.h>​ header file. */
 +#define HAVE_ASM_TYPES_H 1
 +
 +/* Define to 1 if you have the `atanh'​ function. */
 +#define HAVE_ATANH 1
 +
 +/* Define if GCC supports __attribute__((format(PyArg_ParseTuple,​ 2, 3))) */
 +/* #undef HAVE_ATTRIBUTE_FORMAT_PARSETUPLE */
 +
 +/* Define to 1 if you have the `bind_textdomain_codeset'​ function. */
 +#define HAVE_BIND_TEXTDOMAIN_CODESET 1
 +
 +/* Define to 1 if you have the <​bluetooth/​bluetooth.h>​ header file. */
 +#define HAVE_BLUETOOTH_BLUETOOTH_H 1
 +
 +/* Define to 1 if you have the <​bluetooth.h>​ header file. */
 +/* #undef HAVE_BLUETOOTH_H */
 +
 +/* Define if nice() returns success/​failure instead of the new priority. */
 +/* #undef HAVE_BROKEN_NICE */
 +
 +/* Define if poll() sets errno on invalid file descriptors. */
 +/* #undef HAVE_BROKEN_POLL */
 +
 +/* Define if the Posix semaphores do not work on your system */
 +/* #undef HAVE_BROKEN_POSIX_SEMAPHORES */
 +
 +/* Define if pthread_sigmask() does not work on your system. */
 +/* #undef HAVE_BROKEN_PTHREAD_SIGMASK */
 +
 +/* Define this if you have the type _Bool. */
 +#define HAVE_C99_BOOL 1
 +
 +/* Define to 1 if you have the `chflags'​ function. */
 +/* #undef HAVE_CHFLAGS */
 +
 +/* Define to 1 if you have the `chown'​ function. */
 +#define HAVE_CHOWN 1
 +
 +/* Define if you have the '​chroot'​ function. */
 +#define HAVE_CHROOT 1
 +
 +/* Define to 1 if you have the `clock'​ function. */
 +#define HAVE_CLOCK 1
 +
 +/* Define to 1 if you have the `confstr'​ function. */
 +#define HAVE_CONFSTR 1
 +
 +/* Define to 1 if you have the <​conio.h>​ header file. */
 +/* #undef HAVE_CONIO_H */
 +
 +/* Define to 1 if you have the `copysign'​ function. */
 +#define HAVE_COPYSIGN 1
 +
 +/* Define to 1 if you have the `ctermid'​ function. */
 +#define HAVE_CTERMID 1
 +
 +/* Define if you have the '​ctermid_r'​ function. */
 +/* #undef HAVE_CTERMID_R */
 +
 +/* Define to 1 if you have the <​curses.h>​ header file. */
 +#define HAVE_CURSES_H 1
 +
 +/* Define if you have the '​is_term_resized'​ function. */
 +#define HAVE_CURSES_IS_TERM_RESIZED 1
 +
 +/* Define if you have the '​resizeterm'​ function. */
 +#define HAVE_CURSES_RESIZETERM 1
 +
 +/* Define if you have the '​resize_term'​ function. */
 +#define HAVE_CURSES_RESIZE_TERM 1
 +
 +/* Define to 1 if you have the declaration of `isfinite',​ and to 0 if you
 +   ​don'​t. */
 +#define HAVE_DECL_ISFINITE 1
 +
 +/* Define to 1 if you have the declaration of `isinf',​ and to 0 if you don't.
 +   */
 +#define HAVE_DECL_ISINF 1
 +
 +/* Define to 1 if you have the declaration of `isnan',​ and to 0 if you don't.
 +   */
 +#define HAVE_DECL_ISNAN 1
 +
 +/* Define to 1 if you have the declaration of `tzname',​ and to 0 if you don't.
 +   */
 +/* #undef HAVE_DECL_TZNAME */
 +
 +/* Define to 1 if you have the device macros. */
 +#define HAVE_DEVICE_MACROS 1
 +
 +/* Define if we have /dev/ptc. */
 +/* #undef HAVE_DEV_PTC */
 +
 +/* Define if we have /dev/ptmx. */
 +#define HAVE_DEV_PTMX 1
 +
 +/* Define to 1 if you have the <​direct.h>​ header file. */
 +/* #undef HAVE_DIRECT_H */
 +
 +/* Define to 1 if you have the <​dirent.h>​ header file, and it defines `DIR'.
 +   */
 +#define HAVE_DIRENT_H 1
 +
 +/* Define to 1 if you have the <​dlfcn.h>​ header file. */
 +#define HAVE_DLFCN_H 1
 +
 +/* Define to 1 if you have the `dlopen'​ function. */
 +#define HAVE_DLOPEN 1
 +
 +/* Define to 1 if you have the `dup2' function. */
 +#define HAVE_DUP2 1
 +
 +/* Defined when any dynamic module loading is enabled. */
 +#define HAVE_DYNAMIC_LOADING 1
 +
 +/* Define if you have the '​epoll'​ functions. */
 +#define HAVE_EPOLL 1
 +
 +/* Define to 1 if you have the <​errno.h>​ header file. */
 +#define HAVE_ERRNO_H 1
 +
 +/* Define to 1 if you have the `execv'​ function. */
 +#define HAVE_EXECV 1
 +
 +/* Define to 1 if you have the `expm1'​ function. */
 +#define HAVE_EXPM1 1
 +
 +/* Define if you have the '​fchdir'​ function. */
 +#define HAVE_FCHDIR 1
 +
 +/* Define to 1 if you have the `fchmod'​ function. */
 +#define HAVE_FCHMOD 1
 +
 +/* Define to 1 if you have the `fchown'​ function. */
 +#define HAVE_FCHOWN 1
 +
 +/* Define to 1 if you have the <​fcntl.h>​ header file. */
 +#define HAVE_FCNTL_H 1
 +
 +/* Define if you have the '​fdatasync'​ function. */
 +#define HAVE_FDATASYNC 1
 +
 +/* Define to 1 if you have the `finite'​ function. */
 +#define HAVE_FINITE 1
 +
 +/* Define if you have the '​flock'​ function. */
 +#define HAVE_FLOCK 1
 +
 +/* Define to 1 if you have the `fork' function. */
 +#define HAVE_FORK 1
 +
 +/* Define to 1 if you have the `forkpty'​ function. */
 +#define HAVE_FORKPTY 1
 +
 +/* Define to 1 if you have the `fpathconf'​ function. */
 +#define HAVE_FPATHCONF 1
 +
 +/* Define to 1 if you have the `fseek64'​ function. */
 +/* #undef HAVE_FSEEK64 */
 +
 +/* Define to 1 if you have the `fseeko'​ function. */
 +#define HAVE_FSEEKO 1
 +
 +/* Define to 1 if you have the `fstatvfs'​ function. */
 +#define HAVE_FSTATVFS 1
 +
 +/* Define if you have the '​fsync'​ function. */
 +#define HAVE_FSYNC 1
 +
 +/* Define to 1 if you have the `ftell64'​ function. */
 +/* #undef HAVE_FTELL64 */
 +
 +/* Define to 1 if you have the `ftello'​ function. */
 +#define HAVE_FTELLO 1
 +
 +/* Define to 1 if you have the `ftime'​ function. */
 +#define HAVE_FTIME 1
 +
 +/* Define to 1 if you have the `ftruncate'​ function. */
 +#define HAVE_FTRUNCATE 1
 +
 +/* Define to 1 if you have the `gai_strerror'​ function. */
 +#define HAVE_GAI_STRERROR 1
 +
 +/* Define if you have the getaddrinfo function. */
 +#define HAVE_GETADDRINFO 1
 +
 +/* Define to 1 if you have the `getcwd'​ function. */
 +#define HAVE_GETCWD 1
 +
 +/* Define this if you have flockfile(),​ getc_unlocked(),​ and funlockfile() */
 +#define HAVE_GETC_UNLOCKED 1
 +
 +/* Define to 1 if you have the `getgroups'​ function. */
 +#define HAVE_GETGROUPS 1
 +
 +/* Define to 1 if you have the `gethostbyname'​ function. */
 +/* #undef HAVE_GETHOSTBYNAME */
 +
 +/* Define this if you have some version of gethostbyname_r() */
 +#define HAVE_GETHOSTBYNAME_R 1
 +
 +/* Define this if you have the 3-arg version of gethostbyname_r(). */
 +/* #undef HAVE_GETHOSTBYNAME_R_3_ARG */
 +
 +/* Define this if you have the 5-arg version of gethostbyname_r(). */
 +/* #undef HAVE_GETHOSTBYNAME_R_5_ARG */
 +
 +/* Define this if you have the 6-arg version of gethostbyname_r(). */
 +#define HAVE_GETHOSTBYNAME_R_6_ARG 1
 +
 +/* Define to 1 if you have the `getitimer'​ function. */
 +#define HAVE_GETITIMER 1
 +
 +/* Define to 1 if you have the `getloadavg'​ function. */
 +#define HAVE_GETLOADAVG 1
 +
 +/* Define to 1 if you have the `getlogin'​ function. */
 +#define HAVE_GETLOGIN 1
 +
 +/* Define to 1 if you have the `getnameinfo'​ function. */
 +#define HAVE_GETNAMEINFO 1
 +
 +/* Define if you have the '​getpagesize'​ function. */
 +#define HAVE_GETPAGESIZE 1
 +
 +/* Define to 1 if you have the `getpeername'​ function. */
 +#define HAVE_GETPEERNAME 1
 +
 +/* Define to 1 if you have the `getpgid'​ function. */
 +#define HAVE_GETPGID 1
 +
 +/* Define to 1 if you have the `getpgrp'​ function. */
 +#define HAVE_GETPGRP 1
 +
 +/* Define to 1 if you have the `getpid'​ function. */
 +#define HAVE_GETPID 1
 +
 +/* Define to 1 if you have the `getpriority'​ function. */
 +#define HAVE_GETPRIORITY 1
 +
 +/* Define to 1 if you have the `getpwent'​ function. */
 +#define HAVE_GETPWENT 1
 +
 +/* Define to 1 if you have the `getsid'​ function. */
 +#define HAVE_GETSID 1
 +
 +/* Define to 1 if you have the `getspent'​ function. */
 +#define HAVE_GETSPENT 1
 +
 +/* Define to 1 if you have the `getspnam'​ function. */
 +#define HAVE_GETSPNAM 1
 +
 +/* Define to 1 if you have the `gettimeofday'​ function. */
 +#define HAVE_GETTIMEOFDAY 1
 +
 +/* Define to 1 if you have the `getwd'​ function. */
 +#define HAVE_GETWD 1
 +
 +/* Define to 1 if you have the <​grp.h>​ header file. */
 +#define HAVE_GRP_H 1
 +
 +/* Define if you have the '​hstrerror'​ function. */
 +#define HAVE_HSTRERROR 1
 +
 +/* Define to 1 if you have the `hypot'​ function. */
 +#define HAVE_HYPOT 1
 +
 +/* Define to 1 if you have the <​ieeefp.h>​ header file. */
 +/* #undef HAVE_IEEEFP_H */
 +
 +/* Define if you have the '​inet_aton'​ function. */
 +#define HAVE_INET_ATON 1
 +
 +/* Define if you have the '​inet_pton'​ function. */
 +#define HAVE_INET_PTON 1
 +
 +/* Define to 1 if you have the <​inttypes.h>​ header file. */
 +#define HAVE_INTTYPES_H 1
 +
 +/* Define to 1 if you have the <​io.h>​ header file. */
 +/* #undef HAVE_IO_H */
 +
 +/* Define to 1 if you have the `kill' function. */
 +#define HAVE_KILL 1
 +
 +/* Define to 1 if you have the `killpg'​ function. */
 +#define HAVE_KILLPG 1
 +
 +/* Define if you have the '​kqueue'​ functions. */
 +/* #undef HAVE_KQUEUE */
 +
 +/* Define to 1 if you have the <​langinfo.h>​ header file. */
 +#define HAVE_LANGINFO_H 1
 +
 +/* Defined to enable large file support when an off_t is bigger than a long
 +   and long long is available and at least as big as an off_t. You may need to
 +   add some flags for configuration and compilation to enable this mode. (For
 +   ​Solaris and Linux, the necessary defines are already defined.) */
 +#define HAVE_LARGEFILE_SUPPORT 1
 +
 +/* Define to 1 if you have the `lchflags'​ function. */
 +/* #undef HAVE_LCHFLAGS */
 +
 +/* Define to 1 if you have the `lchmod'​ function. */
 +/* #undef HAVE_LCHMOD */
 +
 +/* Define to 1 if you have the `lchown'​ function. */
 +#define HAVE_LCHOWN 1
 +
 +/* Define to 1 if you have the `dl' library (-ldl). */
 +#define HAVE_LIBDL 1
 +
 +/* Define to 1 if you have the `dld' library (-ldld). */
 +/* #undef HAVE_LIBDLD */
 +
 +/* Define to 1 if you have the `ieee' library (-lieee). */
 +/* #undef HAVE_LIBIEEE */
 +
 +/* Define to 1 if you have the <​libintl.h>​ header file. */
 +#define HAVE_LIBINTL_H 1
 +
 +/* Define if you have the readline library (-lreadline). */
 +#define HAVE_LIBREADLINE 1
 +
 +/* Define to 1 if you have the `resolv'​ library (-lresolv). */
 +/* #undef HAVE_LIBRESOLV */
 +
 +/* Define to 1 if you have the <​libutil.h>​ header file. */
 +/* #undef HAVE_LIBUTIL_H */
 +
 +/* Define if you have the '​link'​ function. */
 +#define HAVE_LINK 1
 +
 +/* Define to 1 if you have the <​linux/​netlink.h>​ header file. */
 +#define HAVE_LINUX_NETLINK_H 1
 +
 +/* Define to 1 if you have the <​linux/​tipc.h>​ header file. */
 +#define HAVE_LINUX_TIPC_H 1
 +
 +/* Define to 1 if you have the `log1p'​ function. */
 +#define HAVE_LOG1P 1
 +
 +/* Define this if you have the type long double. */
 +#define HAVE_LONG_DOUBLE 1
 +
 +/* Define this if you have the type long long. */
 +#define HAVE_LONG_LONG 1
 +
 +/* Define to 1 if you have the `lstat'​ function. */
 +#define HAVE_LSTAT 1
 +
 +/* Define this if you have the makedev macro. */
 +#define HAVE_MAKEDEV 1
 +
 +/* Define to 1 if you have the `memmove'​ function. */
 +#define HAVE_MEMMOVE 1
 +
 +/* Define to 1 if you have the <​memory.h>​ header file. */
 +#define HAVE_MEMORY_H 1
 +
 +/* Define to 1 if you have the `mkfifo'​ function. */
 +#define HAVE_MKFIFO 1
 +
 +/* Define to 1 if you have the `mknod'​ function. */
 +#define HAVE_MKNOD 1
 +
 +/* Define to 1 if you have the `mktime'​ function. */
 +#define HAVE_MKTIME 1
 +
 +/* Define to 1 if you have the `mremap'​ function. */
 +#define HAVE_MREMAP 1
 +
 +/* Define to 1 if you have the <​ncurses.h>​ header file. */
 +#define HAVE_NCURSES_H 1
 +
 +/* Define to 1 if you have the <​ndir.h>​ header file, and it defines `DIR'. */
 +/* #undef HAVE_NDIR_H */
 +
 +/* Define to 1 if you have the <​netpacket/​packet.h>​ header file. */
 +#define HAVE_NETPACKET_PACKET_H 1
 +
 +/* Define to 1 if you have the `nice' function. */
 +#define HAVE_NICE 1
 +
 +/* Define to 1 if you have the `openpty'​ function. */
 +#define HAVE_OPENPTY 1
 +
 +/* Define if compiling using MacOS X 10.5 SDK or later. */
 +/* #undef HAVE_OSX105_SDK */
 +
 +/* Define to 1 if you have the `pathconf'​ function. */
 +#define HAVE_PATHCONF 1
 +
 +/* Define to 1 if you have the `pause'​ function. */
 +#define HAVE_PAUSE 1
 +
 +/* Define to 1 if you have the `plock'​ function. */
 +/* #undef HAVE_PLOCK */
 +
 +/* Define to 1 if you have the `poll' function. */
 +#define HAVE_POLL 1
 +
 +/* Define to 1 if you have the <​poll.h>​ header file. */
 +#define HAVE_POLL_H 1
 +
 +/* Define to 1 if you have the <​process.h>​ header file. */
 +/* #undef HAVE_PROCESS_H */
 +
 +/* Define if your compiler supports function prototype */
 +#define HAVE_PROTOTYPES 1
 +
 +/* Define if you have GNU PTH threads. */
 +/* #undef HAVE_PTH */
 +
 +/* Defined for Solaris 2.6 bug in pthread header. */
 +/* #undef HAVE_PTHREAD_DESTRUCTOR */
 +
 +/* Define to 1 if you have the <​pthread.h>​ header file. */
 +#define HAVE_PTHREAD_H 1
 +
 +/* Define to 1 if you have the `pthread_init'​ function. */
 +/* #undef HAVE_PTHREAD_INIT */
 +
 +/* Define to 1 if you have the `pthread_sigmask'​ function. */
 +#define HAVE_PTHREAD_SIGMASK 1
 +
 +/* Define to 1 if you have the <​pty.h>​ header file. */
 +#define HAVE_PTY_H 1
 +
 +/* Define to 1 if you have the `putenv'​ function. */
 +#define HAVE_PUTENV 1
 +
 +/* Define to 1 if you have the `readlink'​ function. */
 +#define HAVE_READLINK 1
 +
 +/* Define to 1 if you have the `realpath'​ function. */
 +#define HAVE_REALPATH 1
 +
 +/* Define if you have readline 2.1 */
 +#define HAVE_RL_CALLBACK 1
 +
 +/* Define if you can turn off readline'​s signal handling. */
 +#define HAVE_RL_CATCH_SIGNAL 1
 +
 +/* Define if you have readline 2.2 */
 +#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1
 +
 +/* Define if you have readline 4.0 */
 +#define HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK 1
 +
 +/* Define if you have readline 4.2 */
 +#define HAVE_RL_COMPLETION_MATCHES 1
 +
 +/* Define if you have readline 4.0 */
 +#define HAVE_RL_PRE_INPUT_HOOK 1
 +
 +/* Define to 1 if you have the `select'​ function. */
 +#define HAVE_SELECT 1
 +
 +/* Define to 1 if you have the `setegid'​ function. */
 +#define HAVE_SETEGID 1
 +
 +/* Define to 1 if you have the `seteuid'​ function. */
 +#define HAVE_SETEUID 1
 +
 +/* Define to 1 if you have the `setgid'​ function. */
 +#define HAVE_SETGID 1
 +
 +/* Define if you have the '​setgroups'​ function. */
 +#define HAVE_SETGROUPS 1
 +
 +/* Define to 1 if you have the `setitimer'​ function. */
 +#define HAVE_SETITIMER 1
 +
 +/* Define to 1 if you have the `setlocale'​ function. */
 +#define HAVE_SETLOCALE 1
 +
 +/* Define to 1 if you have the `setpgid'​ function. */
 +#define HAVE_SETPGID 1
 +
 +/* Define to 1 if you have the `setpgrp'​ function. */
 +#define HAVE_SETPGRP 1
 +
 +/* Define to 1 if you have the `setregid'​ function. */
 +#define HAVE_SETREGID 1
 +
 +/* Define to 1 if you have the `setreuid'​ function. */
 +#define HAVE_SETREUID 1
 +
 +/* Define to 1 if you have the `setsid'​ function. */
 +#define HAVE_SETSID 1
 +
 +/* Define to 1 if you have the `setuid'​ function. */
 +#define HAVE_SETUID 1
 +
 +/* Define to 1 if you have the `setvbuf'​ function. */
 +#define HAVE_SETVBUF 1
 +
 +/* Define to 1 if you have the <​shadow.h>​ header file. */
 +#define HAVE_SHADOW_H 1
 +
 +/* Define to 1 if you have the `sigaction'​ function. */
 +#define HAVE_SIGACTION 1
 +
 +/* Define to 1 if you have the `siginterrupt'​ function. */
 +#define HAVE_SIGINTERRUPT 1
 +
 +/* Define to 1 if you have the <​signal.h>​ header file. */
 +#define HAVE_SIGNAL_H 1
 +
 +/* Define to 1 if you have the `sigrelse'​ function. */
 +#define HAVE_SIGRELSE 1
 +
 +/* Define to 1 if you have the `snprintf'​ function. */
 +#define HAVE_SNPRINTF 1
 +
 +/* Define if sockaddr has sa_len member */
 +/* #undef HAVE_SOCKADDR_SA_LEN */
 +
 +/* struct sockaddr_storage (sys/​socket.h) */
 +#define HAVE_SOCKADDR_STORAGE 1
 +
 +/* Define if you have the '​socketpair'​ function. */
 +#define HAVE_SOCKETPAIR 1
 +
 +/* Define if your compiler provides ssize_t */
 +#define HAVE_SSIZE_T 1
 +
 +/* Define to 1 if you have the `statvfs'​ function. */
 +#define HAVE_STATVFS 1
 +
 +/* Define if you have struct stat.st_mtim.tv_nsec */
 +#define HAVE_STAT_TV_NSEC 1
 +
 +/* Define if you have struct stat.st_mtimensec */
 +/* #undef HAVE_STAT_TV_NSEC2 */
 +
 +/* Define if your compiler supports variable length function prototypes (e.g.
 +   void fprintf(FILE *, char *, ...);) *and* <​stdarg.h>​ */
 +#define HAVE_STDARG_PROTOTYPES 1
 +
 +/* Define to 1 if you have the <​stdint.h>​ header file. */
 +#define HAVE_STDINT_H 1
 +
 +/* Define to 1 if you have the <​stdlib.h>​ header file. */
 +#define HAVE_STDLIB_H 1
 +
 +/* Define to 1 if you have the `strdup'​ function. */
 +#define HAVE_STRDUP 1
 +
 +/* Define to 1 if you have the `strftime'​ function. */
 +#define HAVE_STRFTIME 1
 +
 +/* Define to 1 if you have the <​strings.h>​ header file. */
 +#define HAVE_STRINGS_H 1
 +
 +/* Define to 1 if you have the <​string.h>​ header file. */
 +#define HAVE_STRING_H 1
 +
 +/* Define to 1 if you have the <​stropts.h>​ header file. */
 +#define HAVE_STROPTS_H 1
 +
 +/* Define to 1 if `st_birthtime'​ is member of `struct stat'. */
 +/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIME */
 +
 +/* Define to 1 if `st_blksize'​ is member of `struct stat'. */
 +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
 +
 +/* Define to 1 if `st_blocks'​ is member of `struct stat'. */
 +#define HAVE_STRUCT_STAT_ST_BLOCKS 1
 +
 +/* Define to 1 if `st_flags'​ is member of `struct stat'. */
 +/* #undef HAVE_STRUCT_STAT_ST_FLAGS */
 +
 +/* Define to 1 if `st_gen'​ is member of `struct stat'. */
 +/* #undef HAVE_STRUCT_STAT_ST_GEN */
 +
 +/* Define to 1 if `st_rdev'​ is member of `struct stat'. */
 +#define HAVE_STRUCT_STAT_ST_RDEV 1
 +
 +/* Define to 1 if `tm_zone'​ is member of `struct tm'. */
 +#define HAVE_STRUCT_TM_TM_ZONE 1
 +
 +/* Define to 1 if your `struct stat' has `st_blocks'​. Deprecated, use
 +   ​`HAVE_STRUCT_STAT_ST_BLOCKS'​ instead. */
 +#define HAVE_ST_BLOCKS 1
 +
 +/* Define if you have the '​symlink'​ function. */
 +#define HAVE_SYMLINK 1
 +
 +/* Define to 1 if you have the `sysconf'​ function. */
 +#define HAVE_SYSCONF 1
 +
 +/* Define to 1 if you have the <​sysexits.h>​ header file. */
 +#define HAVE_SYSEXITS_H 1
 +
 +/* Define to 1 if you have the <​sys/​audioio.h>​ header file. */
 +/* #undef HAVE_SYS_AUDIOIO_H */
 +
 +/* Define to 1 if you have the <​sys/​bsdtty.h>​ header file. */
 +/* #undef HAVE_SYS_BSDTTY_H */
 +
 +/* Define to 1 if you have the <​sys/​dir.h>​ header file, and it defines `DIR'.
 +   */
 +/* #undef HAVE_SYS_DIR_H */
 +
 +/* Define to 1 if you have the <​sys/​epoll.h>​ header file. */
 +#define HAVE_SYS_EPOLL_H 1
 +
 +/* Define to 1 if you have the <​sys/​event.h>​ header file. */
 +/* #undef HAVE_SYS_EVENT_H */
 +
 +/* Define to 1 if you have the <​sys/​file.h>​ header file. */
 +#define HAVE_SYS_FILE_H 1
 +
 +/* Define to 1 if you have the <​sys/​loadavg.h>​ header file. */
 +/* #undef HAVE_SYS_LOADAVG_H */
 +
 +/* Define to 1 if you have the <​sys/​lock.h>​ header file. */
 +/* #undef HAVE_SYS_LOCK_H */
 +
 +/* Define to 1 if you have the <​sys/​mkdev.h>​ header file. */
 +/* #undef HAVE_SYS_MKDEV_H */
 +
 +/* Define to 1 if you have the <​sys/​modem.h>​ header file. */
 +/* #undef HAVE_SYS_MODEM_H */
 +
 +/* Define to 1 if you have the <​sys/​ndir.h>​ header file, and it defines `DIR'.
 +   */
 +/* #undef HAVE_SYS_NDIR_H */
 +
 +/* Define to 1 if you have the <​sys/​param.h>​ header file. */
 +#define HAVE_SYS_PARAM_H 1
 +
 +/* Define to 1 if you have the <​sys/​poll.h>​ header file. */
 +#define HAVE_SYS_POLL_H 1
 +
 +/* Define to 1 if you have the <​sys/​resource.h>​ header file. */
 +#define HAVE_SYS_RESOURCE_H 1
 +
 +/* Define to 1 if you have the <​sys/​select.h>​ header file. */
 +#define HAVE_SYS_SELECT_H 1
 +
 +/* Define to 1 if you have the <​sys/​socket.h>​ header file. */
 +#define HAVE_SYS_SOCKET_H 1
 +
 +/* Define to 1 if you have the <​sys/​statvfs.h>​ header file. */
 +#define HAVE_SYS_STATVFS_H 1
 +
 +/* Define to 1 if you have the <​sys/​stat.h>​ header file. */
 +#define HAVE_SYS_STAT_H 1
 +
 +/* Define to 1 if you have the <​sys/​termio.h>​ header file. */
 +/* #undef HAVE_SYS_TERMIO_H */
 +
 +/* Define to 1 if you have the <​sys/​times.h>​ header file. */
 +#define HAVE_SYS_TIMES_H 1
 +
 +/* Define to 1 if you have the <​sys/​time.h>​ header file. */
 +#define HAVE_SYS_TIME_H 1
 +
 +/* Define to 1 if you have the <​sys/​types.h>​ header file. */
 +#define HAVE_SYS_TYPES_H 1
 +
 +/* Define to 1 if you have the <​sys/​un.h>​ header file. */
 +#define HAVE_SYS_UN_H 1
 +
 +/* Define to 1 if you have the <​sys/​utsname.h>​ header file. */
 +#define HAVE_SYS_UTSNAME_H 1
 +
 +/* Define to 1 if you have the <​sys/​wait.h>​ header file. */
 +#define HAVE_SYS_WAIT_H 1
 +
 +/* Define to 1 if you have the `tcgetpgrp'​ function. */
 +#define HAVE_TCGETPGRP 1
 +
 +/* Define to 1 if you have the `tcsetpgrp'​ function. */
 +#define HAVE_TCSETPGRP 1
 +
 +/* Define to 1 if you have the `tempnam'​ function. */
 +#define HAVE_TEMPNAM 1
 +
 +/* Define to 1 if you have the <​termios.h>​ header file. */
 +#define HAVE_TERMIOS_H 1
 +
 +/* Define to 1 if you have the <​term.h>​ header file. */
 +#define HAVE_TERM_H 1
 +
 +/* Define to 1 if you have the <​thread.h>​ header file. */
 +/* #undef HAVE_THREAD_H */
 +
 +/* Define to 1 if you have the `timegm'​ function. */
 +#define HAVE_TIMEGM 1
 +
 +/* Define to 1 if you have the `times'​ function. */
 +#define HAVE_TIMES 1
 +
 +/* Define to 1 if you have the `tmpfile'​ function. */
 +#define HAVE_TMPFILE 1
 +
 +/* Define to 1 if you have the `tmpnam'​ function. */
 +#define HAVE_TMPNAM 1
 +
 +/* Define to 1 if you have the `tmpnam_r'​ function. */
 +#define HAVE_TMPNAM_R 1
 +
 +/* Define to 1 if your `struct tm' has `tm_zone'​. Deprecated, use
 +   ​`HAVE_STRUCT_TM_TM_ZONE'​ instead. */
 +#define HAVE_TM_ZONE 1
 +
 +/* Define to 1 if you have the `truncate'​ function. */
 +#define HAVE_TRUNCATE 1
 +
 +/* Define to 1 if you don't have `tm_zone'​ but do have the external array
 +   ​`tzname'​. */
 +/* #undef HAVE_TZNAME */
 +
 +/* Define this if you have tcl and TCL_UTF_MAX==6 */
 +/* #undef HAVE_UCS4_TCL */
 +
 +/* Define to 1 if the system has the type `uintptr_t'​. */
 +#define HAVE_UINTPTR_T 1
 +
 +/* Define to 1 if you have the `uname'​ function. */
 +#define HAVE_UNAME 1
 +
 +/* Define to 1 if you have the <​unistd.h>​ header file. */
 +#define HAVE_UNISTD_H 1
 +
 +/* Define to 1 if you have the `unsetenv'​ function. */
 +#define HAVE_UNSETENV 1
 +
 +/* Define if you have a useable wchar_t type defined in wchar.h; useable means
 +   ​wchar_t must be an unsigned type with at least 16 bits. (see
 +   ​Include/​unicodeobject.h). */
 +/* #undef HAVE_USABLE_WCHAR_T */
 +
 +/* Define to 1 if you have the `utimes'​ function. */
 +#define HAVE_UTIMES 1
 +
 +/* Define to 1 if you have the <​utime.h>​ header file. */
 +#define HAVE_UTIME_H 1
 +
 +/* Define to 1 if you have the `wait3'​ function. */
 +#define HAVE_WAIT3 1
 +
 +/* Define to 1 if you have the `wait4'​ function. */
 +#define HAVE_WAIT4 1
 +
 +/* Define to 1 if you have the `waitpid'​ function. */
 +#define HAVE_WAITPID 1
 +
 +/* Define if the compiler provides a wchar.h header file. */
 +#define HAVE_WCHAR_H 1
 +
 +/* Define to 1 if you have the `wcscoll'​ function. */
 +#define HAVE_WCSCOLL 1
 +
 +/* Define if tzset() actually switches the local timezone in a meaningful way.
 +   */
 +#define HAVE_WORKING_TZSET 1
 +
 +/* Define if the zlib library has inflateCopy */
 +#define HAVE_ZLIB_COPY 1
 +
 +/* Define to 1 if you have the `_getpty'​ function. */
 +/* #undef HAVE__GETPTY */
 +
 +/* Define if you are using Mach cthreads directly under /include */
 +/* #undef HURD_C_THREADS */
 +
 +/* Define if you are using Mach cthreads under mach / */
 +/* #undef MACH_C_THREADS */
 +
 +/* Define to 1 if `major',​ `minor',​ and `makedev'​ are declared in <​mkdev.h>​.
 +   */
 +/* #undef MAJOR_IN_MKDEV */
 +
 +/* Define to 1 if `major',​ `minor',​ and `makedev'​ are declared in
 +   <​sysmacros.h>​. */
 +/* #undef MAJOR_IN_SYSMACROS */
 +
 +/* Define if mvwdelch in curses.h is an expression. */
 +#define MVWDELCH_IS_EXPRESSION 1
 +
 +/* Define to the address where bug reports for this package should be sent. */
 +/* #undef PACKAGE_BUGREPORT */
 +
 +/* Define to the full name of this package. */
 +/* #undef PACKAGE_NAME */
 +
 +/* Define to the full name and version of this package. */
 +/* #undef PACKAGE_STRING */
 +
 +/* Define to the one symbol short name of this package. */
 +/* #undef PACKAGE_TARNAME */
 +
 +/* Define to the version of this package. */
 +/* #undef PACKAGE_VERSION */
 +
 +/* Defined if PTHREAD_SCOPE_SYSTEM supported. */
 +#define PTHREAD_SYSTEM_SCHED_SUPPORTED 1
 +
 +/* Define to printf format modifier for Py_ssize_t */
 +#define PY_FORMAT_SIZE_T "​z"​
 +
 +/* Define as the integral type used for Unicode representation. */
 +#define PY_UNICODE_TYPE unsigned long
 +
 +/* Define if you want to build an interpreter with many run-time checks. */
 +/* #undef Py_DEBUG */
 +
 +/* Defined if Python is built as a shared library. */
 +/* #undef Py_ENABLE_SHARED */
 +
 +/* Define as the size of the unicode type. */
 +#define Py_UNICODE_SIZE 4
 +
 +/* Define if you want to have a Unicode type. */
 +#define Py_USING_UNICODE 1
 +
 +/* Define as the return type of signal handlers (`int' or `void'​). */
 +#define RETSIGTYPE void
 +
 +/* Define if setpgrp() must be called as setpgrp(0, 0). */
 +/* #undef SETPGRP_HAVE_ARG */
 +
 +/* Define this to be extension of shared libraries (including the dot!). */
 +#define SHLIB_EXT "​.so"​
 +
 +/* Define if i>>j for signed int i does not extend the sign bit when i < 0 */
 +/* #undef SIGNED_RIGHT_SHIFT_ZERO_FILLS */
 +
 +/* The size of `double',​ as computed by sizeof. */
 +#define SIZEOF_DOUBLE 8
 +
 +/* The size of `float',​ as computed by sizeof. */
 +#define SIZEOF_FLOAT 4
 +
 +/* The size of `fpos_t',​ as computed by sizeof. */
 +#define SIZEOF_FPOS_T 16
 +
 +/* The size of `int', as computed by sizeof. */
 +#define SIZEOF_INT 4
 +
 +/* The size of `long',​ as computed by sizeof. */
 +#define SIZEOF_LONG 4
 +
 +/* The size of `long double',​ as computed by sizeof. */
 +#define SIZEOF_LONG_DOUBLE 12
 +
 +/* The size of `long long', as computed by sizeof. */
 +#define SIZEOF_LONG_LONG 8
 +
 +/* The number of bytes in an off_t. */
 +#define SIZEOF_OFF_T 8
 +
 +/* The size of `pid_t',​ as computed by sizeof. */
 +#define SIZEOF_PID_T 4
 +
 +/* The number of bytes in a pthread_t. */
 +#define SIZEOF_PTHREAD_T 4
 +
 +/* The size of `short',​ as computed by sizeof. */
 +#define SIZEOF_SHORT 2
 +
 +/* The size of `size_t',​ as computed by sizeof. */
 +#define SIZEOF_SIZE_T 4
 +
 +/* The number of bytes in a time_t. */
 +#define SIZEOF_TIME_T 4
 +
 +/* The size of `uintptr_t',​ as computed by sizeof. */
 +#define SIZEOF_UINTPTR_T 4
 +
 +/* The size of `void *', as computed by sizeof. */
 +#define SIZEOF_VOID_P 4
 +
 +/* The size of `wchar_t',​ as computed by sizeof. */
 +#define SIZEOF_WCHAR_T 4
 +
 +/* The size of `_Bool',​ as computed by sizeof. */
 +#define SIZEOF__BOOL 1
 +
 +/* Define to 1 if you have the ANSI C header files. */
 +#define STDC_HEADERS 1
 +
 +/* Define if you can safely include both <​sys/​select.h>​ and <​sys/​time.h>​
 +   ​(which you can't on SCO ODT 3.0). */
 +#define SYS_SELECT_WITH_SYS_TIME 1
 +
 +/* Define if tanh(-0.) is -0., or if platform doesn'​t have signed zeros */
 +#define TANH_PRESERVES_ZERO_SIGN 1
 +
 +/* Define to 1 if you can safely include both <​sys/​time.h>​ and <​time.h>​. */
 +#define TIME_WITH_SYS_TIME 1
 +
 +/* Define to 1 if your <​sys/​time.h>​ declares `struct tm'. */
 +/* #undef TM_IN_SYS_TIME */
 +
 +/* Define if you want to use MacPython modules on MacOSX in unix-Python. */
 +/* #undef USE_TOOLBOX_OBJECT_GLUE */
 +
 +/* Define if a va_list is an array of some kind */
 +/* #undef VA_LIST_IS_ARRAY */
 +
 +/* Define if you want SIGFPE handled (see Include/​pyfpe.h). */
 +#define WANT_SIGFPE_HANDLER 1
 +
 +/* Define if you want wctype.h functions to be used instead of the one
 +   ​supplied by Python itself. (see Include/​unicodectype.h). */
 +/* #undef WANT_WCTYPE_FUNCTIONS */
 +
 +/* Define if WINDOW in curses.h offers a field _flags. */
 +#define WINDOW_HAS_FLAGS 1
 +
 +/* Define if you want documentation strings in extension modules */
 +#define WITH_DOC_STRINGS 1
 +
 +/* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic
 +   ​linker (dyld) instead of the old-style (NextStep) dynamic linker (rld).
 +   Dyld is necessary to support frameworks. */
 +/* #undef WITH_DYLD */
 +
 +/* Define to 1 if libintl is needed for locale functions. */
 +/* #undef WITH_LIBINTL */
 +
 +/* Define if you want to produce an OpenStep/​Rhapsody framework (shared
 +   ​library plus accessory files). */
 +/* #undef WITH_NEXT_FRAMEWORK */
 +
 +/* Define if you want to compile in Python-specific mallocs */
 +#define WITH_PYMALLOC 1
 +
 +/* Define if you want to compile in rudimentary thread support */
 +#define WITH_THREAD 1
 +
 +/* Define to profile with the Pentium timestamp counter */
 +/* #undef WITH_TSC */
 +
 +/* Define to 1 if your processor stores words with the most significant byte
 +   first (like Motorola and SPARC, unlike Intel and VAX). */
 +/* #undef WORDS_BIGENDIAN */
 +
 +/* Define if arithmetic is subject to x87-style double rounding issue */
 +#define X87_DOUBLE_ROUNDING 1
 +
 +/* Define to 1 if on AIX 3.
 +   ​System headers sometimes define this.
 +   We just want to avoid a redefinition error message. ​ */
 +#ifndef _ALL_SOURCE
 +# define _ALL_SOURCE 1
 +#endif
 +
 +/* Define on OpenBSD to activate all library features */
 +/* #undef _BSD_SOURCE */
 +
 +/* Define on Irix to enable u_int */
 +#define _BSD_TYPES 1
 +
 +/* Define on Darwin to activate all library features */
 +#define _DARWIN_C_SOURCE 1
 +
 +/* This must be set to 64 on some systems to enable large file support. */
 +#define _FILE_OFFSET_BITS 64
 +
 +/* Define on Linux to activate all library features */
 +#define _GNU_SOURCE 1
 +
 +/* This must be defined on some systems to enable large file support. */
 +#define _LARGEFILE_SOURCE 1
 +
 +/* Define on NetBSD to activate all library features */
 +#define _NETBSD_SOURCE 1
 +
 +/* Define _OSF_SOURCE to get the makedev macro. */
 +/* #undef _OSF_SOURCE */
 +
 +/* Define to activate features from IEEE Stds 1003.1-2001 */
 +#define _POSIX_C_SOURCE 200112L
 +
 +/* Define if you have POSIX threads, and your system does not define that. */
 +/* #undef _POSIX_THREADS */
 +
 +/* Define to force use of thread-safe errno, h_errno, and other functions */
 +/* #undef _REENTRANT */
 +
 +/* Define to the level of X/Open that your system supports */
 +#define _XOPEN_SOURCE 600
 +
 +/* Define to activate Unix95-and-earlier features */
 +#define _XOPEN_SOURCE_EXTENDED 1
 +
 +/* Define on FreeBSD to activate all library features */
 +#define __BSD_VISIBLE 1
 +
 +/* Define to 1 if type `char' is unsigned and you are not using gcc.  */
 +#ifndef __CHAR_UNSIGNED__
 +/* # undef __CHAR_UNSIGNED__ */
 +#endif
 +
 +/* Defined on Solaris to see additional function prototypes. */
 +#define __EXTENSIONS__ 1
 +
 +/* Define to '​long'​ if <​time.h>​ doesn'​t define. */
 +/* #undef clock_t */
 +
 +/* Define to empty if `const'​ does not conform to ANSI C. */
 +/* #undef const */
 +
 +/* Define to `int' if <​sys/​types.h>​ doesn'​t define. */
 +/* #undef gid_t */
 +
 +/* Define to `int' if <​sys/​types.h>​ does not define. */
 +/* #undef mode_t */
 +
 +/* Define to `long int' if <​sys/​types.h>​ does not define. */
 +/* #undef off_t */
 +
 +/* Define to `int' if <​sys/​types.h>​ does not define. */
 +/* #undef pid_t */
 +
 +/* Define to empty if the keyword does not work. */
 +/* #undef signed */
 +
 +/* Define to `unsigned int' if <​sys/​types.h>​ does not define. */
 +/* #undef size_t */
 +
 +/* Define to `int' if <​sys/​socket.h>​ does not define. */
 +/* #undef socklen_t */
 +
 +/* Define to `int' if <​sys/​types.h>​ doesn'​t define. */
 +/* #undef uid_t */
 +
 +/* Define to empty if the keyword does not work. */
 +/* #undef volatile */
 +
 +
 +/* Define the macros needed if on a UnixWare 7.x system. */
 +#if defined(__USLC__) && defined(__SCO_VERSION__)
 +#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
 +#endif
 +
 +#endif /​*Py_PYCONFIG_H*/​
 +</​file>​
 +
 +Now grab [[http://​fceux.com/​web/​home.html|FCEUX]] and uncompress the source. Edit the SConstruct file to disable GTK: **BoolVariable('​GTK',​ '​Enable GTK2 GUI (SDL only)',​ 0),**
 +
 +Run **scons** in the directory to begin the config and build. You may need to turn on swap if gcc is killed mid-compile
 +
 +For unknown reasons, scons refuses to pick up on zlib, missing the **-lz** at the end, so i just made a shell script (ash doesnt haev a large enough buffer to just paste into the command line:
 +
 +<​file>​g++ -o src/fceux -Wl,​-rpath,/​usr/​local/​lib src/asm.o src/cart.o src/cheat.o src/​conddebug.o src/​config.o src/debug.o src/​drawing.o src/​emufile.o src/fceu.o src/fds.o src/file.o src/​filter.o src/ines.o src/input.o src/​netplay.o src/nsf.o src/​oldmovie.o src/​palette.o src/ppu.o src/sound.o src/state.o src/unif.o src/video.o src/vsuni.o src/wave.o src/x6502.o src/movie.o src/​lua-engine.o src/​boards/​01-222.o src/​boards/​103.o src/​boards/​106.o src/​boards/​108.o src/​boards/​112.o src/​boards/​117.o src/​boards/​120.o src/​boards/​121.o src/​boards/​15.o src/​boards/​164.o src/​boards/​175.o src/​boards/​176.o src/​boards/​177.o src/​boards/​178.o src/​boards/​179.o src/​boards/​183.o src/​boards/​185.o src/​boards/​186.o src/​boards/​187.o src/​boards/​189.o src/​boards/​199.o src/​boards/​208.o src/​boards/​222.o src/​boards/​23.o src/​boards/​235.o src/​boards/​253.o src/​boards/​3d-block.o src/​boards/​411120-c.o src/​boards/​43.o src/​boards/​57.o src/​boards/​603-5052.o src/​boards/​68.o src/​boards/​8157.o src/​boards/​8237.o src/​boards/​830118C.o src/​boards/​88.o src/​boards/​90.o src/​boards/​95.o src/​boards/​a9711.o src/​boards/​a9746.o src/​boards/​addrlatch.o src/​boards/​ax5705.o src/​boards/​bandai.o src/​boards/​bmc13in1jy110.o src/​boards/​bmc42in1r.o src/​boards/​bmc64in1nr.o src/​boards/​bmc70in1.o src/​boards/​bonza.o src/​boards/​bs-5.o src/​boards/​copyfami_mmc3.o src/​boards/​dance.o src/​boards/​datalatch.o src/​boards/​deirom.o src/​boards/​dream.o src/​boards/​__dummy_mapper.o src/​boards/​edu2000.o src/​boards/​fk23c.o src/​boards/​ghostbusters63in1.o src/​boards/​gs-2004.o src/​boards/​gs-2013.o src/​boards/​h2288.o src/​boards/​karaoke.o src/​boards/​kof97.o src/​boards/​konami-qtai.o src/​boards/​ks7032.o src/​boards/​malee.o src/​boards/​mmc1.o src/​boards/​mmc3.o src/​boards/​mmc5.o src/​boards/​n-c22m.o src/​boards/​n106.o src/​boards/​n625092.o src/​boards/​novel.o src/​boards/​sachen.o src/​boards/​sc-127.o src/​boards/​sheroes.o src/​boards/​sl1632.o src/​boards/​smb2j.o src/​boards/​subor.o src/​boards/​super24.o src/​boards/​supervision.o src/​boards/​t-227-1.o src/​boards/​t-262.o src/​boards/​tengen.o src/​boards/​tf-1201.o src/​drivers/​common/​args.o src/​drivers/​common/​cheat.o src/​drivers/​common/​config.o src/​drivers/​common/​hq2x.o src/​drivers/​common/​hq3x.o src/​drivers/​common/​scale2x.o src/​drivers/​common/​scale3x.o src/​drivers/​common/​scalebit.o src/​drivers/​common/​vidblit.o src/​drivers/​common/​configSys.o src/​drivers/​common/​nes_ntsc.o src/​input/​arkanoid.o src/​input/​bworld.o src/​input/​cursor.o src/​input/​fkb.o src/​input/​ftrainer.o src/​input/​hypershot.o src/​input/​mahjong.o src/​input/​mouse.o src/​input/​oekakids.o src/​input/​powerpad.o src/​input/​quiz.o src/​input/​shadow.o src/​input/​suborkb.o src/​input/​toprider.o src/​input/​zapper.o src/​utils/​crc32.o src/​utils/​endian.o src/​utils/​general.o src/​utils/​guid.o src/​utils/​md5.o src/​utils/​memory.o src/​utils/​unzip.o src/​utils/​xstring.o src/​mappers/​151.o src/​mappers/​16.o src/​mappers/​17.o src/​mappers/​18.o src/​mappers/​193.o src/​mappers/​201.o src/​mappers/​202.o src/​mappers/​203.o src/​mappers/​204.o src/​mappers/​212.o src/​mappers/​213.o src/​mappers/​214.o src/​mappers/​215.o src/​mappers/​217.o src/​mappers/​21.o src/​mappers/​225.o src/​mappers/​227.o src/​mappers/​228.o src/​mappers/​229.o src/​mappers/​22.o src/​mappers/​230.o src/​mappers/​231.o src/​mappers/​232.o src/​mappers/​234.o src/​mappers/​241.o src/​mappers/​242.o src/​mappers/​244.o src/​mappers/​246.o src/​mappers/​24and26.o src/​mappers/​255.o src/​mappers/​25.o src/​mappers/​27.o src/​mappers/​32.o src/​mappers/​33.o src/​mappers/​40.o src/​mappers/​41.o src/​mappers/​42.o src/​mappers/​46.o src/​mappers/​50.o src/​mappers/​51.o src/​mappers/​59.o src/​mappers/​60.o src/​mappers/​61.o src/​mappers/​62.o src/​mappers/​65.o src/​mappers/​67.o src/​mappers/​69.o src/​mappers/​6.o src/​mappers/​71.o src/​mappers/​72.o src/​mappers/​73.o src/​mappers/​75.o src/​mappers/​76.o src/​mappers/​77.o src/​mappers/​79.o src/​mappers/​80.o src/​mappers/​82.o src/​mappers/​83.o src/​mappers/​85.o src/​mappers/​86.o src/​mappers/​89.o src/​mappers/​8.o src/​mappers/​91.o src/​mappers/​92.o src/​mappers/​97.o src/​mappers/​99.o src/​mappers/​emu2413.o src/​mappers/​mmc2and4.o src/​mappers/​simple.o src/​lua/​src/​lapi.o src/​lua/​src/​lauxlib.o src/​lua/​src/​lbaselib.o src/​lua/​src/​lcode.o src/​lua/​src/​ldblib.o src/​lua/​src/​ldebug.o src/​lua/​src/​ldo.o src/​lua/​src/​ldump.o src/​lua/​src/​lfunc.o src/​lua/​src/​lgc.o src/​lua/​src/​linit.o src/​lua/​src/​liolib.o src/​lua/​src/​llex.o src/​lua/​src/​lmathlib.o src/​lua/​src/​lmem.o src/​lua/​src/​loadlib.o src/​lua/​src/​lobject.o src/​lua/​src/​lopcodes.o src/​lua/​src/​loslib.o src/​lua/​src/​lparser.o src/​lua/​src/​lstate.o src/​lua/​src/​lstring.o src/​lua/​src/​lstrlib.o src/​lua/​src/​ltable.o src/​lua/​src/​ltablib.o src/​lua/​src/​ltm.o src/​lua/​src/​lundump.o src/​lua/​src/​lvm.o src/​lua/​src/​lzio.o src/​lua/​src/​print.o src/​drivers/​sdl/​input.o src/​drivers/​sdl/​config.o src/​drivers/​sdl/​sdl.o src/​drivers/​sdl/​sdl-joystick.o src/​drivers/​sdl/​sdl-sound.o src/​drivers/​sdl/​sdl-throttle.o src/​drivers/​sdl/​sdl-video.o src/​drivers/​sdl/​unix-netplay.o -L/​usr/​local/​lib -lSDL -lpthread **-lz** ​
 +</​file>​
 +
 +Run FCEUX 
 +
 +<​file>​
 +mount -oremount,​rw /
 +stop_control_panel
 +/​mnt/​storage/​switch_output -l
 +switch_fb.sh 0
 +cd /​mnt/​storage/​fceux
 +</​file>​
 +
 +and after all that...it doesnt work well at all :( --newppu 1 is hella slow and --newppu 0 has corrupted pixels
 +
 +==== FCE Ultra 0.98.13 ====
 +
 +On a whim I decided to try an earlier FCEU (the predecesssor) with more success! Compile went pretty much cleanly.
 +
 +Run it with **-xscale 1 -yscale 1 -sound 0** after killing chumbhowld and chumbradiod we got good performance with **-skipframe 1**
 +
 +Will see if its worth trying other versions - the later v's might add less-useful stuff
 +
  
  
/home/ladyada/public_html/wiki/data/pages/chumby.txt · Last modified: 2016/01/28 18:05 (external edit)