summaryrefslogtreecommitdiff
path: root/packages/frodo
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2005-06-30 08:19:37 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2005-06-30 08:19:37 +0000
commitc8e5702127e507e82e6f68a4b8c546803accea9d (patch)
tree00583491f40ecc640f2b28452af995e3a63a09d7 /packages/frodo
parent87ec8ca4d2e2eb4d1c1e1e1a6b46a395d56805b9 (diff)
import clean BK tree at cset 1.3670
Diffstat (limited to 'packages/frodo')
-rw-r--r--packages/frodo/.mtn2git_empty0
-rw-r--r--packages/frodo/frodo-4.1b/.mtn2git_empty0
-rw-r--r--packages/frodo/frodo-4.1b/Frodo.pngbin0 -> 1370 bytes
-rw-r--r--packages/frodo/frodo-4.1b/conffiles1
-rw-r--r--packages/frodo/frodo-4.1b/frodo-joystick-4state.diff77
-rw-r--r--packages/frodo/frodo-4.1b/frodo-qte.diff8171
-rw-r--r--packages/frodo/frodo-4.1b/frodo.desktop6
-rw-r--r--packages/frodo/frodo-4.1b/frodorc26
-rw-r--r--packages/frodo/frodo-4.2/.mtn2git_empty0
-rw-r--r--packages/frodo/frodo-4.2/Frodo.pngbin0 -> 1370 bytes
-rw-r--r--packages/frodo/frodo-4.2/configure.patch51
-rw-r--r--packages/frodo/frodo-4.2/frodo.desktop6
-rw-r--r--packages/frodo/frodo-4.2/frodorc26
-rw-r--r--packages/frodo/frodo-4.2/m4.patch183
-rw-r--r--packages/frodo/frodo-4.2/no-pref-editor.patch27
15 files changed, 8574 insertions, 0 deletions
diff --git a/packages/frodo/.mtn2git_empty b/packages/frodo/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/frodo/.mtn2git_empty
diff --git a/packages/frodo/frodo-4.1b/.mtn2git_empty b/packages/frodo/frodo-4.1b/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/frodo/frodo-4.1b/.mtn2git_empty
diff --git a/packages/frodo/frodo-4.1b/Frodo.png b/packages/frodo/frodo-4.1b/Frodo.png
index e69de29bb2..e346195b84 100644
--- a/packages/frodo/frodo-4.1b/Frodo.png
+++ b/packages/frodo/frodo-4.1b/Frodo.png
Binary files differ
diff --git a/packages/frodo/frodo-4.1b/conffiles b/packages/frodo/frodo-4.1b/conffiles
index e69de29bb2..c9a83ab7a0 100644
--- a/packages/frodo/frodo-4.1b/conffiles
+++ b/packages/frodo/frodo-4.1b/conffiles
@@ -0,0 +1 @@
+/home/root/.frodorc
diff --git a/packages/frodo/frodo-4.1b/frodo-joystick-4state.diff b/packages/frodo/frodo-4.1b/frodo-joystick-4state.diff
index e69de29bb2..3234736d8b 100644
--- a/packages/frodo/frodo-4.1b/frodo-joystick-4state.diff
+++ b/packages/frodo/frodo-4.1b/frodo-joystick-4state.diff
@@ -0,0 +1,77 @@
+diff -u Src/C64_Qtopia.i Src/C64_Qtopia.i
+--- Src/C64_Qtopia.i 2004-07-11 09:28:05.000000000 +0200
++++ Src/C64_Qtopia.i 2004-07-11 09:30:20.000000000 +0200
+@@ -246,10 +246,16 @@
+ }
+
+ // Joystick keyboard emulation
+- if (TheDisplay->NumLock())
++ if (TheDisplay->NumLock() == 1)
+ TheCIA1->Joystick1 &= joykey;
+ else
++ if (TheDisplay->NumLock() == 2)
+ TheCIA1->Joystick2 &= joykey;
++ else
++ if (TheDisplay->NumLock() == 3) {
++ TheCIA1->Joystick1 &= joykey;
++ TheCIA1->Joystick2 &= joykey;
++ }
+
+ // Count TOD clocks
+ TheCIA1->CountTOD();
+diff -u Src/Display.h Src/Display.h
+--- Src/Display.h 2002-01-02 22:31:34.000000000 +0100
++++ Src/Display.h 2004-07-11 09:30:43.000000000 +0200
+@@ -59,7 +59,7 @@
+ #else
+ void PollKeyboard(uint8 *key_matrix, uint8 *rev_matrix, uint8 *joystick);
+ #endif
+- bool NumLock(void);
++ int NumLock(void);
+ void InitColors(uint8 *colors);
+ void NewPrefs(Prefs *prefs);
+
+diff -u Src/Display_QtopiaSDL.i Src/Display_QtopiaSDL.i
+--- Src/Display_QtopiaSDL.i 2004-07-11 09:28:06.000000000 +0200
++++ Src/Display_QtopiaSDL.i 2004-07-11 09:31:47.000000000 +0200
+@@ -17,7 +17,7 @@
+ // Display surface
+ static SDL_Surface *screen = NULL;
+
+-// Mode of Joystick emulation. 0 = none, 1 = Joyport 1, 2 = Joyport 2
++// Mode of Joystick emulation. 0 = none, 1 = Joyport 1, 2 = Joyport 2, 3 = both
+ static short joy_emu = 0;
+
+ // Keyboard
+@@ -210,6 +210,8 @@
+ draw_string(screen, DISPLAY_X * 4/5 + 2, (screen->h - 17) + 4, "1", black, fill_gray);
+ else if (joy_emu == 2)
+ draw_string(screen, DISPLAY_X * 4/5 + 2, (screen->h - 17) + 4, "2", black, fill_gray);
++ else if (joy_emu == 3)
++ draw_string(screen, DISPLAY_X * 4/5 + 2, (screen->h - 17) + 4, "3", black, fill_gray);
+ draw_string(screen, 24, (screen->h - 17) + 4, speedometer_string, black, fill_gray);
+
+ // Update display
+@@ -500,7 +502,7 @@
+ // fprintf(stderr, "SDL-Key: %d\n", event.key.keysym.sym);
+ if (tab_pressed && event.key.keysym.sym == SDLK_j)
+ {
+- if (joy_emu < 2)
++ if (joy_emu < 3)
+ joy_emu++;
+ else
+ joy_emu = 0;
+@@ -573,11 +575,9 @@
+ * Check if NumLock is down (for switching the joystick keyboard emulation)
+ */
+
+-bool C64Display::NumLock(void)
++int C64Display::NumLock(void)
+ {
+- if (joy_emu == 2)
+- return true;
+- return false;
++ return joy_emu;
+ }
+
+
diff --git a/packages/frodo/frodo-4.1b/frodo-qte.diff b/packages/frodo/frodo-4.1b/frodo-qte.diff
index e69de29bb2..c00001da99 100644
--- a/packages/frodo/frodo-4.1b/frodo-qte.diff
+++ b/packages/frodo/frodo-4.1b/frodo-qte.diff
@@ -0,0 +1,8171 @@
+diff -urN Src/C64.cpp Src/C64.cpp
+--- Src/C64.cpp 2002-01-02 22:18:46.000000000 +0100
++++ Src/C64.cpp 2002-11-21 17:07:04.000000000 +0100
+@@ -600,7 +600,7 @@
+ #ifndef FRODO_SC
+ long vicptr; // File offset of VIC data
+ #endif
+-
++
+ while (c != 10)
+ c = fgetc(f); // Shouldn't be necessary
+ if (fgetc(f) != 0) {
+@@ -698,7 +698,11 @@
+ #endif
+
+ #ifdef __unix
+-#include "C64_x.i"
++# ifdef QTOPIA
++# include "C64_Qtopia.i"
++# else
++# include "C64_x.i"
++# endif
+ #endif
+
+ #ifdef __mac__
+diff -urN Src/C64.h Src/C64.h
+--- Src/C64.h 2002-01-02 22:15:10.000000000 +0100
++++ Src/C64.h 2002-11-21 17:07:02.000000000 +0100
+@@ -22,7 +22,6 @@
+ #include "ROlib.h"
+ #endif
+
+-
+ // false: Frodo, true: FrodoSC
+ extern bool IsFrodoSC;
+
+@@ -142,6 +141,14 @@
+ CmdPipe *gui;
+ #endif
+
++#ifdef QTOPIA
++private:
++ static CmdPipe *staticGUI;
++public:
++ static void StartGUI();
++ static void StopGUI();
++#endif
++
+ #ifdef WIN32
+ private:
+ void CheckTimerChange();
+diff -urN Src/C64_Qtopia.i Src/C64_Qtopia.i
+--- Src/C64_Qtopia.i 1970-01-01 01:00:00.000000000 +0100
++++ Src/C64_Qtopia.i 2002-11-21 17:07:04.000000000 +0100
+@@ -0,0 +1,459 @@
++/*
++ * C64_Qtopia.i - Put the pieces together, X specific stuff
++ *
++ * Frodo (C) 1994-1997,2002 Christian Bauer
++ * Unix stuff by Bernd Schmidt/Lutz Vieweg
++ * Qtopia changes (against C64_x.i) from Bernd Lachner
++ */
++
++#include "main.h"
++
++
++static struct timeval tv_start;
++
++#ifndef HAVE_USLEEP
++/*
++ * NAME:
++ * usleep -- This is the precision timer for Test Set
++ * Automation. It uses the select(2) system
++ * call to delay for the desired number of
++ * micro-seconds. This call returns ZERO
++ * (which is usually ignored) on successful
++ * completion, -1 otherwise.
++ *
++ * ALGORITHM:
++ * 1) We range check the passed in microseconds and log a
++ * warning message if appropriate. We then return without
++ * delay, flagging an error.
++ * 2) Load the Seconds and micro-seconds portion of the
++ * interval timer structure.
++ * 3) Call select(2) with no file descriptors set, just the
++ * timer, this results in either delaying the proper
++ * ammount of time or being interupted early by a signal.
++ *
++ * HISTORY:
++ * Added when the need for a subsecond timer was evident.
++ *
++ * AUTHOR:
++ * Michael J. Dyer Telephone: AT&T 414.647.4044
++ * General Electric Medical Systems GE DialComm 8 *767.4044
++ * P.O. Box 414 Mail Stop 12-27 Sect'y AT&T 414.647.4584
++ * Milwaukee, Wisconsin USA 53201 8 *767.4584
++ * internet: mike@sherlock.med.ge.com GEMS WIZARD e-mail: DYER
++ */
++
++#include <unistd.h>
++#include <stdlib.h>
++#include <stdio.h>
++#include <errno.h>
++#include <time.h>
++#include <sys/time.h>
++#include <sys/param.h>
++#include <sys/types.h>
++
++int usleep(unsigned long int microSeconds)
++{
++ unsigned int Seconds, uSec;
++ int nfds, readfds, writefds, exceptfds;
++ struct timeval Timer;
++
++ nfds = readfds = writefds = exceptfds = 0;
++
++ if( (microSeconds == (unsigned long) 0)
++ || microSeconds > (unsigned long) 4000000 )
++ {
++ errno = ERANGE; /* value out of range */
++ perror( "usleep time out of range ( 0 -> 4000000 ) " );
++ return -1;
++ }
++
++ Seconds = microSeconds / (unsigned long) 1000000;
++ uSec = microSeconds % (unsigned long) 1000000;
++
++ Timer.tv_sec = Seconds;
++ Timer.tv_usec = uSec;
++
++ if( select( nfds, &readfds, &writefds, &exceptfds, &Timer ) < 0 )
++ {
++ perror( "usleep (select) failed" );
++ return -1;
++ }
++
++ return 0;
++}
++#endif
++
++CmdPipe *C64::staticGUI = 0;
++
++/*
++ * Static StartGUI method to start gui before SDL initilization
++ */
++
++void C64::StartGUI()
++{
++ // we need to create a potential GUI subprocess here, because we don't want
++ // it to inherit file-descriptors (such as for the audio-device and alike..)
++ if (!staticGUI)
++ {
++ // try to start up FrodoGUI.
++ staticGUI = new CmdPipe("frodogui", "");
++ if (staticGUI)
++ {
++ if (staticGUI->fail)
++ {
++ delete staticGUI;
++ staticGUI = 0;
++ }
++ }
++ // wait until the GUI process responds (if it does...)
++ if (staticGUI)
++ {
++ if (5 != staticGUI->ewrite("ping\n",5))
++ {
++ delete staticGUI;
++ staticGUI = 0;
++ }
++ else
++ {
++ char c;
++ fd_set set;
++ FD_ZERO(&set);
++ FD_SET(staticGUI->get_read_fd(), &set);
++ struct timeval tv;
++ tv.tv_usec = 0;
++ tv.tv_sec = 5;
++ if (select(FD_SETSIZE, &set, NULL, NULL, &tv) <= 0)
++ {
++ delete staticGUI;
++ staticGUI = 0;
++ }
++ else
++ {
++ if (1 != staticGUI->eread(&c, 1))
++ {
++ delete staticGUI;
++ staticGUI = 0;
++ }
++ else
++ {
++ if (c != 'o')
++ {
++ delete staticGUI;
++ staticGUI = 0;
++ }
++ }
++ }
++ }
++ }
++ }
++}
++
++/*
++ * Static StopGUI method
++ */
++
++void C64::StopGUI()
++{
++ if (staticGUI)
++ {
++ staticGUI->ewrite("quit\n",5);
++ delete staticGUI;
++ }
++}
++
++/*
++ * Constructor, system-dependent things
++ */
++
++void C64::c64_ctor1(void)
++{
++ // Initialize joystick variables
++ joyfd[0] = joyfd[1] = -1;
++ joy_minx = joy_miny = 32767;
++ joy_maxx = joy_maxy = -32768;
++
++ gui = staticGUI;
++}
++
++void C64::c64_ctor2(void)
++{
++#ifndef __svgalib__
++ if (!gui) {
++ fprintf(stderr,"Alas, master, no preferences window will be available.\n"
++ "If you wish to see one, make sure the 'wish' interpreter\n"
++ "(Tk version >= 4.1) is installed in your path.\n"
++ "You can still use Frodo, though. Use F10 to quit, \n"
++ "F11 to cause an NMI and F12 to reset the C64.\n"
++ "You can change the preferences by editing ~/.frodorc\n");
++ }
++#endif // SVGAlib
++
++ gettimeofday(&tv_start, NULL);
++}
++
++
++/*
++ * Destructor, system-dependent things
++ */
++
++void C64::c64_dtor(void)
++{
++}
++
++
++/*
++ * Start main emulation thread
++ */
++
++void C64::Run(void)
++{
++ // Reset chips
++ TheCPU->Reset();
++ TheSID->Reset();
++ TheCIA1->Reset();
++ TheCIA2->Reset();
++ TheCPU1541->Reset();
++
++ // Patch kernal IEC routines
++ orig_kernal_1d84 = Kernal[0x1d84];
++ orig_kernal_1d85 = Kernal[0x1d85];
++ PatchKernal(ThePrefs.FastReset, ThePrefs.Emul1541Proc);
++
++ quit_thyself = false;
++ thread_func();
++}
++
++
++/*
++ * Vertical blank: Poll keyboard and joysticks, update window
++ */
++
++void C64::VBlank(bool draw_frame)
++{
++ // Poll keyboard
++ TheDisplay->PollKeyboard(TheCIA1->KeyMatrix, TheCIA1->RevMatrix, &joykey);
++ if (TheDisplay->quit_requested)
++ quit_thyself = true;
++
++ // Poll joysticks
++ TheCIA1->Joystick1 = poll_joystick(0);
++ TheCIA1->Joystick2 = poll_joystick(1);
++
++ if (ThePrefs.JoystickSwap) {
++ uint8 tmp = TheCIA1->Joystick1;
++ TheCIA1->Joystick1 = TheCIA1->Joystick2;
++ TheCIA1->Joystick2 = tmp;
++ }
++
++ // Joystick keyboard emulation
++ if (TheDisplay->NumLock())
++ TheCIA1->Joystick1 &= joykey;
++ else
++ TheCIA1->Joystick2 &= joykey;
++
++ // Count TOD clocks
++ TheCIA1->CountTOD();
++ TheCIA2->CountTOD();
++
++ // Update window if needed
++ if (draw_frame) {
++ TheDisplay->Update();
++
++ // Calculate time between VBlanks, display speedometer
++ struct timeval tv;
++ gettimeofday(&tv, NULL);
++ if ((tv.tv_usec -= tv_start.tv_usec) < 0) {
++ tv.tv_usec += 1000000;
++ tv.tv_sec -= 1;
++ }
++ tv.tv_sec -= tv_start.tv_sec;
++ double elapsed_time = (double)tv.tv_sec * 1000000 + tv.tv_usec;
++ speed_index = 20000 / (elapsed_time + 1) * ThePrefs.SkipFrames * 100;
++
++ // Limit speed to 100% if desired
++ if ((speed_index > 100) && ThePrefs.LimitSpeed) {
++ usleep((unsigned long)(ThePrefs.SkipFrames * 20000 - elapsed_time));
++ speed_index = 100;
++ }
++
++ gettimeofday(&tv_start, NULL);
++
++ TheDisplay->Speedometer((int)speed_index);
++ }
++}
++
++
++/*
++ * Open/close joystick drivers given old and new state of
++ * joystick preferences
++ */
++
++void C64::open_close_joysticks(bool oldjoy1, bool oldjoy2, bool newjoy1, bool newjoy2)
++{
++#ifdef HAVE_LINUX_JOYSTICK_H
++ if (oldjoy1 != newjoy1) {
++ joy_minx = joy_miny = 32767; // Reset calibration
++ joy_maxx = joy_maxy = -32768;
++ if (newjoy1) {
++ joyfd[0] = open("/dev/js0", O_RDONLY);
++ if (joyfd[0] < 0)
++ fprintf(stderr, "Couldn't open joystick 1\n");
++ } else {
++ close(joyfd[0]);
++ joyfd[0] = -1;
++ }
++ }
++
++ if (oldjoy2 != newjoy2) {
++ joy_minx = joy_miny = 32767; // Reset calibration
++ joy_maxx = joy_maxy = -32768;
++ if (newjoy2) {
++ joyfd[1] = open("/dev/js1", O_RDONLY);
++ if (joyfd[1] < 0)
++ fprintf(stderr, "Couldn't open joystick 2\n");
++ } else {
++ close(joyfd[1]);
++ joyfd[1] = -1;
++ }
++ }
++#endif
++}
++
++
++/*
++ * Poll joystick port, return CIA mask
++ */
++
++uint8 C64::poll_joystick(int port)
++{
++#ifdef HAVE_LINUX_JOYSTICK_H
++ JS_DATA_TYPE js;
++ uint8 j = 0xff;
++
++ if (joyfd[port] >= 0) {
++ if (read(joyfd[port], &js, JS_RETURN) == JS_RETURN) {
++ if (js.x > joy_maxx)
++ joy_maxx = js.x;
++ if (js.x < joy_minx)
++ joy_minx = js.x;
++ if (js.y > joy_maxy)
++ joy_maxy = js.y;
++ if (js.y < joy_miny)
++ joy_miny = js.y;
++
++ if (joy_maxx-joy_minx < 100 || joy_maxy-joy_miny < 100)
++ return 0xff;
++
++ if (js.x < (joy_minx + (joy_maxx-joy_minx)/3))
++ j &= 0xfb; // Left
++ else if (js.x > (joy_minx + 2*(joy_maxx-joy_minx)/3))
++ j &= 0xf7; // Right
++
++ if (js.y < (joy_miny + (joy_maxy-joy_miny)/3))
++ j &= 0xfe; // Up
++ else if (js.y > (joy_miny + 2*(joy_maxy-joy_miny)/3))
++ j &= 0xfd; // Down
++
++ if (js.buttons & 1)
++ j &= 0xef; // Button
++ }
++ }
++ return j;
++#else
++ return 0xff;
++#endif
++}
++
++
++/*
++ * The emulation's main loop
++ */
++
++void C64::thread_func(void)
++{
++ int linecnt = 0;
++
++#ifdef FRODO_SC
++ while (!quit_thyself) {
++
++ // The order of calls is important here
++ if (TheVIC->EmulateCycle())
++ TheSID->EmulateLine();
++ TheCIA1->CheckIRQs();
++ TheCIA2->CheckIRQs();
++ TheCIA1->EmulateCycle();
++ TheCIA2->EmulateCycle();
++ TheCPU->EmulateCycle();
++
++ if (ThePrefs.Emul1541Proc) {
++ TheCPU1541->CountVIATimers(1);
++ if (!TheCPU1541->Idle)
++ TheCPU1541->EmulateCycle();
++ }
++ CycleCounter++;
++#else
++ while (!quit_thyself) {
++
++ // The order of calls is important here
++ int cycles = TheVIC->EmulateLine();
++ TheSID->EmulateLine();
++#if !PRECISE_CIA_CYCLES
++ TheCIA1->EmulateLine(ThePrefs.CIACycles);
++ TheCIA2->EmulateLine(ThePrefs.CIACycles);
++#endif
++
++ if (ThePrefs.Emul1541Proc) {
++ int cycles_1541 = ThePrefs.FloppyCycles;
++ TheCPU1541->CountVIATimers(cycles_1541);
++
++ if (!TheCPU1541->Idle) {
++ // 1541 processor active, alternately execute
++ // 6502 and 6510 instructions until both have
++ // used up their cycles
++ while (cycles >= 0 || cycles_1541 >= 0)
++ if (cycles > cycles_1541)
++ cycles -= TheCPU->EmulateLine(1);
++ else
++ cycles_1541 -= TheCPU1541->EmulateLine(1);
++ } else
++ TheCPU->EmulateLine(cycles);
++ } else
++ // 1541 processor disabled, only emulate 6510
++ TheCPU->EmulateLine(cycles);
++#endif
++ linecnt++;
++#if !defined(__svgalib__)
++ if ((linecnt & 0xfff) == 0 && gui) {
++
++ // check for command from GUI process
++ // fprintf(stderr,":");
++ while (gui->probe()) {
++ char c;
++ if (gui->eread(&c, 1) != 1) {
++ delete gui;
++ gui = 0;
++ fprintf(stderr,"Oops, GUI process died...\n");
++ } else {
++ // fprintf(stderr,"%c",c);
++ switch (c) {
++ case 'q':
++ quit_thyself = true;
++ break;
++ case 'r':
++ Reset();
++ break;
++ case 'p':{
++ Prefs *np = Frodo::reload_prefs();
++ NewPrefs(np);
++ ThePrefs = *np;
++ break;
++ }
++ default:
++ break;
++ }
++ }
++ }
++ }
++#endif
++ }
++}
+diff -urN Src/configarm Src/configarm
+--- Src/configarm 1970-01-01 01:00:00.000000000 +0100
++++ Src/configarm 2002-11-21 17:07:02.000000000 +0100
+@@ -0,0 +1,2 @@
++configure --host=i386-linux --x-includes=/opt/Qtopia/sharp/include/ --x-libraries=/opt/Qtopia/sharp/lib/ --with-sdl-prefix=/opt/Qtopia/sharp/ --enable-qtopia
++
+diff -urN Src/configure Src/configure
+--- Src/configure 2002-01-02 17:44:11.000000000 +0100
++++ Src/configure 2002-11-21 17:07:03.000000000 +0100
+@@ -1,24 +1,18 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by Autoconf 2.52d.
++# Generated by GNU Autoconf 2.53.
+ #
+-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
++# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
+ # Free Software Foundation, Inc.
+ # This configure script is free software; the Free Software Foundation
+ # gives unlimited permission to copy, distribute and modify it.
+
+-# Avoid depending upon Character Ranges.
+-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+-as_cr_digits='0123456789'
+-as_cr_alnum=$as_cr_Letters$as_cr_digits
+-
+-# Sed expression to map a string onto a valid variable name.
+-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
++if expr a : '\(a\)' >/dev/null 2>&1; then
++ as_expr=expr
++else
++ as_expr=false
++fi
+
+-# Sed expression to map a string onto a valid CPP name.
+-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+ ## --------------------- ##
+ ## M4sh Initialization. ##
+@@ -32,8 +26,165 @@
+ set -o posix
+ fi
+
++# NLS nuisances.
++# Support unset when possible.
++if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
++ as_unset=unset
++else
++ as_unset=false
++fi
++
++(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
++ { $as_unset LANG || test "${LANG+set}" != set; } ||
++ { LANG=C; export LANG; }
++(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
++ { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
++ { LC_ALL=C; export LC_ALL; }
++(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
++ { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
++ { LC_TIME=C; export LC_TIME; }
++(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
++ { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
++ { LC_CTYPE=C; export LC_CTYPE; }
++(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
++ { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
++ { LANGUAGE=C; export LANGUAGE; }
++(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
++ { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
++ { LC_COLLATE=C; export LC_COLLATE; }
++(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
++ { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
++ { LC_NUMERIC=C; export LC_NUMERIC; }
++(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
++ { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
++ { LC_MESSAGES=C; export LC_MESSAGES; }
++
++
+ # Name of the executable.
+-as_me=`echo "$0" |sed 's,.*[\\/],,'`
++as_me=`(basename "$0") 2>/dev/null ||
++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
++ X"$0" : 'X\(//\)$' \| \
++ X"$0" : 'X\(/\)$' \| \
++ . : '\(.\)' 2>/dev/null ||
++echo X/"$0" |
++ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
++ /^X\/\(\/\/\)$/{ s//\1/; q; }
++ /^X\/\(\/\).*/{ s//\1/; q; }
++ s/.*/./; q'`
++
++# PATH needs CR, and LINENO needs CR and PATH.
++# Avoid depending upon Character Ranges.
++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
++as_cr_digits='0123456789'
++as_cr_alnum=$as_cr_Letters$as_cr_digits
++
++# The user is always right.
++if test "${PATH_SEPARATOR+set}" != set; then
++ echo "#! /bin/sh" >conftest.sh
++ echo "exit 0" >>conftest.sh
++ chmod +x conftest.sh
++ if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
++ PATH_SEPARATOR=';'
++ else
++ PATH_SEPARATOR=:
++ fi
++ rm -f conftest.sh
++fi
++
++
++ as_lineno_1=$LINENO
++ as_lineno_2=$LINENO
++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
++ test "x$as_lineno_1" != "x$as_lineno_2" &&
++ test "x$as_lineno_3" = "x$as_lineno_2" || {
++ # Find who we are. Look in the path if we contain no path at all
++ # relative or not.
++ case $0 in
++ *[\\/]* ) as_myself=$0 ;;
++ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
++done
++
++ ;;
++ esac
++ # We did not find ourselves, most probably we were run as `sh COMMAND'
++ # in which case we are not to be found in the path.
++ if test "x$as_myself" = x; then
++ as_myself=$0
++ fi
++ if test ! -f "$as_myself"; then
++ { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
++ { (exit 1); exit 1; }; }
++ fi
++ case $CONFIG_SHELL in
++ '')
++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for as_base in sh bash ksh sh5; do
++ case $as_dir in
++ /*)
++ if ("$as_dir/$as_base" -c '
++ as_lineno_1=$LINENO
++ as_lineno_2=$LINENO
++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
++ test "x$as_lineno_1" != "x$as_lineno_2" &&
++ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
++ CONFIG_SHELL=$as_dir/$as_base
++ export CONFIG_SHELL
++ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
++ fi;;
++ esac
++ done
++done
++;;
++ esac
++
++ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
++ # uniformly replaced by the line number. The first 'sed' inserts a
++ # line-number line before each line; the second 'sed' does the real
++ # work. The second script uses 'N' to pair each line-number line
++ # with the numbered line, and appends trailing '-' during
++ # substitution so that $LINENO is not a special case at line end.
++ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
++ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
++ sed '=' <$as_myself |
++ sed '
++ N
++ s,$,-,
++ : loop
++ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
++ t loop
++ s,-$,,
++ s,^['$as_cr_digits']*\n,,
++ ' >$as_me.lineno &&
++ chmod +x $as_me.lineno ||
++ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
++ { (exit 1); exit 1; }; }
++
++ # Don't try to exec as it changes $[0], causing all sort of problems
++ # (the dirname of $[0] is not the place where we might find the
++ # original and so on. Autoconf is especially sensible to this).
++ . ./$as_me.lineno
++ # Exit status is that of the last command.
++ exit
++}
++
++
++case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
++ *c*,-n*) ECHO_N= ECHO_C='
++' ECHO_T=' ' ;;
++ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
++ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
++esac
+
+ if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+@@ -61,22 +212,12 @@
+
+ as_executable_p="test -f"
+
+-# Support unset when possible.
+-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+- as_unset=unset
+-else
+- as_unset=false
+-fi
++# Sed expression to map a string onto a valid CPP name.
++as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
++
++# Sed expression to map a string onto a valid variable name.
++as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+-# NLS nuisances.
+-$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
+-$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
+-$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
+-$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
+-$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
+-$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
+-$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
+-$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+
+ # IFS
+ # We need space, tab and new line, in precisely that order.
+@@ -85,7 +226,8 @@
+ IFS=" $as_nl"
+
+ # CDPATH.
+-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
++$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
++
+
+ # Name of the host.
+ # hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+@@ -100,7 +242,8 @@
+ ac_default_prefix=/usr/local
+ cross_compiling=no
+ subdirs=
+-MFLAGS= MAKEFLAGS=
++MFLAGS=
++MAKEFLAGS=
+ SHELL=${CONFIG_SHELL-/bin/sh}
+
+ # Maximum number of lines to put in a shell here document.
+@@ -108,6 +251,13 @@
+ # only ac_max_sed_lines should be used.
+ : ${ac_max_here_lines=38}
+
++# Identity of this package.
++PACKAGE_NAME=
++PACKAGE_TARNAME=
++PACKAGE_VERSION=
++PACKAGE_STRING=
++PACKAGE_BUGREPORT=
++
+ ac_unique_file="VIC.cpp"
+ # Factoring default headers for most tests.
+ ac_includes_default="\
+@@ -146,6 +296,7 @@
+ # include <unistd.h>
+ #endif"
+
++
+ # Initialize some variables set by options.
+ ac_init_help=
+ ac_init_version=false
+@@ -184,13 +335,6 @@
+ infodir='${prefix}/info'
+ mandir='${prefix}/man'
+
+-# Identity of this package.
+-PACKAGE_NAME=
+-PACKAGE_TARNAME=
+-PACKAGE_VERSION=
+-PACKAGE_STRING=
+-PACKAGE_BUGREPORT=
+-
+ ac_prev=
+ for ac_option
+ do
+@@ -323,7 +467,7 @@
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+- | --no-cr | --no-c)
++ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+@@ -502,7 +646,7 @@
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+- *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
++ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+ done
+@@ -514,18 +658,19 @@
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) ;;
+- *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
++ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+ done
+
+ # There might be people who depend on the old broken behavior: `$host'
+ # used to hold the argument of --host etc.
++# FIXME: To remove some day.
+ build=$build_alias
+ host=$host_alias
+ target=$target_alias
+
+-# FIXME: should be removed in autoconf 3.0.
++# FIXME: To remove some day.
+ if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+@@ -541,13 +686,23 @@
+
+ test "$silent" = yes && exec 6>/dev/null
+
++
+ # Find the source files, if location was not specified.
+ if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+- ac_prog=$0
+- ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'`
+- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
++ ac_confdir=`(dirname "$0") 2>/dev/null ||
++$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++ X"$0" : 'X\(//\)[^/]' \| \
++ X"$0" : 'X\(//\)$' \| \
++ X"$0" : 'X\(/\)' \| \
++ . : '\(.\)' 2>/dev/null ||
++echo X"$0" |
++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++ /^X\(\/\/\)$/{ s//\1/; q; }
++ /^X\(\/\).*/{ s//\1/; q; }
++ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..