User Tools

Site Tools


chumby

Differences

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

Link to this comparison view

chumby [2010/06/21 21:37]
ladyada
chumby [2016/01/28 18:05]
Line 1: Line 1:
- ​====== Stuff you'll need ====== 
- 
-  - Chumby One - faster than the classic chumby 
-  - Other computer you can use as a terminal 
- 
-What I did! 
- 
-==== Chumbify==== 
-Bunnie visited and gave us 2 chumby ones. one had no working wifi. the other one seemed to be OK. Using the OK one 
- 
-Activated it. works OK 
- 
-==== Turn on SSHD ==== 
- ​[[http://​wiki.chumby.com/​mediawiki/​index.php/​Chumby_tricks#​Hidden_screen_in_Control_Panel|Turn on sshd]] 
- 
-ssh in as root, and turn off the control panel (to free up some memory and cycles) 
- 
-<​file>​ 
-stop_control_panel 
-</​file>​ 
- 
-Then make the sshd '​permanent'​ 
- 
-<​file>​ 
-touch /​psp/​start_sshd 
-</​file>​ 
- 
-==== Install Dev ==== 
- 
-Download & install silvermoon dev environment. Chmod +x the shell script and run it. This will take a bit 
- 
-==== Tried to install/​port latest SDL ==== 
- 
-Download the latest SDL tarball (we used 1.2.14) 
- 
-run: 
-<​file>​ 
-./​configure ​ --enable-video-fbcon --disable-video-x11 --disable-dga --disable-esd --disable-oss --disable-pulseaudio --disable-joystick --disable-cdrom --without-x 
-make 
-mount -oremount,​rw / 
-make install 
-</​file>​ 
- 
-Ran the test programs. Nothing happened. Kinda disappointed. So now going to backtrack 
- 
-==== Try ChumbyQuake SDL port ==== 
- 
- 
-Download chumby_quake to /​mnt/​storage and uncompress. ​ 
- 
-Make my own '​bitops.h'​ file from kludged together stuff 
- 
-Go into the SDL directory and run 
-<​file>​ 
-./configure --enable-alsa --enable-static --disable-oss --disable-esd --disable-pulseaudio --disable-video-x11 --enable-video-fbcon --disable-alsa-shared 
-make 
-make install 
-</​file>​ 
- 
-run tests. Nothing happens on the display but it -says- it found stuff. Disappointed. backtrack some more 
- 
-==== Try chumbyquake ==== 
- 
-Download chumby quake bins and stick on USB key. plug it in and run from command line. Had to use 
-<​file>​export SDL_NOMOUSE=1 </​file>​ to stop mouse complaints 
-Audio is fine, pressing the top button makes the '​gun'​ fire. But no video. Disappointed. backtrack some more 
- 
-==== WTF is the frame buffer ==== 
- 
-bunnie suggests maybe the framebuffers are swapped (seems there are two) so tried 
-<​file>​ 
-dd if=/​dev/​zero of=/dev/fb0 
-</​file>​ 
-This wipes the screen (yay) so at least we know that the framebuffer is writable and is at /dev/fb0 
- 
-Now try to run quake again. Notice that the top line is the only thing that displays (easier to see this if you wipe the screen) 
- 
-Look at old SDL tests - graywin, for example, '​works'​ but only displays top line. So its not the quake code and is something either in the library/​driver/​kernel 
- 
-==== Why is FB broken? ==== 
- 
-OK so looking around some more, it looks like [[http://​forum.chumby.com/​viewtopic.php?​id=4603|this has come up before]] - and the answer is the kernel is buggy (?) 
- 
-So try to install new kernel with composite vid support (hey i might need it eventually) by [[http://​forum.chumby.com/​viewtopic.php?​id=4283|running the script on the forums]] 
- 
-Realise a little too late that this is going to cause the chumby to '​brick'​ due to the wifi driver having incompatibilities. eit. 
- 
-==== Unbrick chumby ==== 
- 
-Follow the [[http://​www.chumby.com/​pages/​latest_software|USB update instructions]] to get the kernel back. Hey its a good thing to know anyways! 
- 
-==== Really fix the FB ==== 
- 
-So finally I use my reading comprehension to realize that really whats broken is just needing to poke the chip to tell it which FB to use. [[http://​forum.chumby.com/​viewtopic.php?​id=4283|Following this helpful post]] I run 
- 
-<​file>​ 
-wget http://​files.chumby.com/​hacks/​switch_output 
-chmod +x switch_output 
- 
-stop_control_panel 
-/​mnt/​storage/​switch_output -l 
-switch_fb.sh 0 
-</​file>​ 
- 
-==== Try chumbyquake again ==== 
-It runs! But it looks like some colorspace swappage is going on. I'll fix it later 
- 
-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 ==== 
-Grab the source, try to build 
- 
-<​file>​chumby:/​mnt/​storage/​stella/​stella-3.0#​ ./configure 
-Running Stella configure... 
-./​configure:​ line 341: printf: not found 
-g++ 
-./​configure:​ line 363: printf: not found 
-4.3.3, ok 
-./​configure:​ line 493: printf: not found 
-linux-gnu 
-./​configure:​ line 504: printf: not found 
-none found! 
-</​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)