summaryrefslogtreecommitdiffstats
path: root/debian/fireflies
diff options
context:
space:
mode:
authorMichele Calgaro <[email protected]>2020-09-11 14:38:47 +0900
committerMichele Calgaro <[email protected]>2020-09-11 14:38:47 +0900
commit884c8093d63402a1ad0b502244b791e3c6782be3 (patch)
treea600d4ab0d431a2bdfe4c15b70df43c14fbd8dd0 /debian/fireflies
parent14e1aa2006796f147f3f4811fb908a6b01e79253 (diff)
downloadextra-dependencies-884c8093d63402a1ad0b502244b791e3c6782be3.tar.gz
extra-dependencies-884c8093d63402a1ad0b502244b791e3c6782be3.zip
Added debian extra dependency packages.
Signed-off-by: Michele Calgaro <[email protected]>
Diffstat (limited to 'debian/fireflies')
-rw-r--r--debian/fireflies/fireflies-2.08/COMPILE52
-rw-r--r--debian/fireflies/fireflies-2.08/COPYING340
-rw-r--r--debian/fireflies/fireflies-2.08/ChangeLog78
-rw-r--r--debian/fireflies/fireflies-2.08/Make.include.in13
-rw-r--r--debian/fireflies/fireflies-2.08/Makefile52
-rw-r--r--debian/fireflies/fireflies-2.08/README61
-rw-r--r--debian/fireflies/fireflies-2.08/TODO0
-rwxr-xr-xdebian/fireflies/fireflies-2.08/add-xscreensaver17
-rw-r--r--debian/fireflies/fireflies-2.08/config.h.in5
-rwxr-xr-xdebian/fireflies/fireflies-2.08/configure4226
-rw-r--r--debian/fireflies/fireflies-2.08/configure.ac99
-rw-r--r--debian/fireflies/fireflies-2.08/debian/README.Debian14
-rw-r--r--debian/fireflies/fireflies-2.08/debian/TODO0
-rw-r--r--debian/fireflies/fireflies-2.08/debian/changelog63
-rw-r--r--debian/fireflies/fireflies-2.08/debian/compat1
-rw-r--r--debian/fireflies/fireflies-2.08/debian/control15
-rw-r--r--debian/fireflies/fireflies-2.08/debian/copyright10
-rw-r--r--debian/fireflies/fireflies-2.08/debian/dirs3
-rw-r--r--debian/fireflies/fireflies-2.08/debian/docs2
-rwxr-xr-xdebian/fireflies/fireflies-2.08/debian/fireflies.preinst51
-rw-r--r--debian/fireflies/fireflies-2.08/debian/patches/fix-configure.diff4270
-rw-r--r--debian/fireflies/fireflies-2.08/debian/patches/fix-dso.diff13
-rw-r--r--debian/fireflies/fireflies-2.08/debian/patches/fix-gcc-4.7.diff13
-rw-r--r--debian/fireflies/fireflies-2.08/debian/patches/libgfx-1.1.0.diff13
-rw-r--r--debian/fireflies/fireflies-2.08/debian/patches/libgfx-png1.5.diff30
-rw-r--r--debian/fireflies/fireflies-2.08/debian/patches/series5
-rwxr-xr-xdebian/fireflies/fireflies-2.08/debian/rules28
-rw-r--r--debian/fireflies/fireflies-2.08/debian/source/format1
-rw-r--r--debian/fireflies/fireflies-2.08/debian/source/options3
-rw-r--r--debian/fireflies/fireflies-2.08/fireflies.spec.in58
-rw-r--r--debian/fireflies/fireflies-2.08/fireflies.xml327
-rwxr-xr-xdebian/fireflies/fireflies-2.08/install-sh251
-rwxr-xr-xdebian/fireflies/fireflies-2.08/installit.in34
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx-1.0.1.tar.gzbin0 -> 125949 bytes
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/CHANGES.txt284
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/README.txt71
-rwxr-xr-xdebian/fireflies/fireflies-2.08/libgfx/configure9653
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/configure.in290
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/build.html135
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/cdoc.css86
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/ex-gui.html238
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/ex-script.html153
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/geom3d.html59
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/gl.html112
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/gui-layout.gifbin0 -> 8119 bytes
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/gui-redbox.gifbin0 -> 3571 bytes
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/gui.html257
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/index.html81
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/intvec.html95
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/license.html54
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/mat.html119
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/mat2.html46
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/mat3.html44
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/mat4.html83
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/quat.html113
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/raster.html143
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/rotate.html107
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/script.html192
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/start.html136
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/vec.html125
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/vec2.html52
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/vec3.html70
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/doc/vec4.html65
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/gfx-config.in38
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/arcball.h55
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/array.h70
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/baseball.h55
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/color.h48
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/config-osx.h86
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/config-vc.h85
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/config.h.in81
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/geom3d.h133
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/geom4d.h36
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/gfx.h105
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/gl.h32
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/glext.h30
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/gltools.h37
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/gui.h186
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/intvec.h97
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/mat2.h158
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/mat3.h157
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/mat4.h194
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/quat.h118
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/raster.h171
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/script.h182
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/symmat2.h134
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/symmat3.h136
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/symmat4.h145
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/trackball.h39
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/vec2.h158
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/vec3.h184
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/vec4.h183
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/win/gui-mfc.h120
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/win/mfc.h30
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/include/gfx/win/wintools.h26
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/macos/libgfx.xcodeproj/project.pbxproj799
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/macos/t-gui-Info.plist20
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/Makefile29
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/arcball.cxx192
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/baseball.cxx59
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/color.cxx128
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/geom3d.cxx33
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/geom4d.cxx14
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/gltools.cxx192
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/gui-mfc.cxx297
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/gui.cxx509
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/mat2.cxx89
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/mat3.cxx82
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/mat4.cxx206
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/quat.cxx136
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/raster-jpeg.cxx113
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/raster-png.cxx180
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/raster-pnm.cxx174
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/raster-tiff.cxx158
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/raster.cxx113
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/script.cxx295
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/symmat2.cxx61
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/symmat3.cxx61
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/symmat4.cxx52
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/time.cxx86
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/trackball.cxx153
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/src/wintools.cxx88
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/tests/Makefile42
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/tests/t-glext.cxx82
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/tests/t-glimg.cxx149
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/tests/t-gui.cxx130
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/tests/t-img.cxx82
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/tests/t-script.cxx74
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/tests/t-vec.cxx78
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/tests/test1.sc17
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/vc6/libgfx.dsw89
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/vc6/libgfx/libgfx.dsp236
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/vc6/libgfxmfc/libgfx.dsp252
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/vc6/tglimg/tglimg.dsp95
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/vc6/tgui/tgui.dsp95
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/vc6/tmfc/tmfc.dsp116
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/vc6/tscript/tscript.dsp88
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/vc6/tvec/tvec.dsp88
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/vc7/libgfx.sln57
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/vc7/libgfx/libgfx.vcproj505
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/vc7/tglimg/tglimg.vcproj166
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/vc7/tgui/tgui.vcproj166
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/vc7/tscript/tscript.vcproj160
-rw-r--r--debian/fireflies/fireflies-2.08/libgfx/vc7/tvec/tvec.vcproj160
-rw-r--r--debian/fireflies/fireflies-2.08/src/Makefile29
-rw-r--r--debian/fireflies/fireflies-2.08/src/arrow.cc53
-rw-r--r--debian/fireflies/fireflies-2.08/src/arrow.h31
-rw-r--r--debian/fireflies/fireflies-2.08/src/bait.cc98
-rw-r--r--debian/fireflies/fireflies-2.08/src/bait.h40
-rw-r--r--debian/fireflies/fireflies-2.08/src/canvas_base.cc106
-rw-r--r--debian/fireflies/fireflies-2.08/src/canvas_base.h46
-rw-r--r--debian/fireflies/fireflies-2.08/src/canvas_glx.cc92
-rw-r--r--debian/fireflies/fireflies-2.08/src/canvas_glx.h37
-rw-r--r--debian/fireflies/fireflies-2.08/src/canvas_sdl.cc218
-rw-r--r--debian/fireflies/fireflies-2.08/src/canvas_sdl.h38
-rw-r--r--debian/fireflies/fireflies-2.08/src/control.h31
-rw-r--r--debian/fireflies/fireflies-2.08/src/firefly.cc84
-rw-r--r--debian/fireflies/fireflies-2.08/src/firefly.h32
-rw-r--r--debian/fireflies/fireflies-2.08/src/main.cc396
-rw-r--r--debian/fireflies/fireflies-2.08/src/main.h11
-rw-r--r--debian/fireflies/fireflies-2.08/src/modes.cc211
-rw-r--r--debian/fireflies/fireflies-2.08/src/modes.h34
-rw-r--r--debian/fireflies/fireflies-2.08/src/resource.h25
-rw-r--r--debian/fireflies/fireflies-2.08/src/resource.rc88
-rw-r--r--debian/fireflies/fireflies-2.08/src/resource.rc.french88
-rw-r--r--debian/fireflies/fireflies-2.08/src/scene.cc252
-rw-r--r--debian/fireflies/fireflies-2.08/src/scene.h80
-rw-r--r--debian/fireflies/fireflies-2.08/src/tail.cc89
-rw-r--r--debian/fireflies/fireflies-2.08/src/tail.h37
-rw-r--r--debian/fireflies/fireflies-2.08/src/utils.cc161
-rw-r--r--debian/fireflies/fireflies-2.08/src/utils.h83
-rw-r--r--debian/fireflies/fireflies-2.08/src/vroot.h156
-rw-r--r--debian/fireflies/fireflies-2.08/src/winsaver.cc415
-rw-r--r--debian/fireflies/fireflies-2.08/win32/Makefile7
-rw-r--r--debian/fireflies/fireflies-2.08/win32/fireflies.nsi41
-rw-r--r--debian/fireflies/fireflies_2.08.orig-libgfx.tar.xzbin0 -> 112920 bytes
-rw-r--r--debian/fireflies/fireflies_2.08.orig.tar.xzbin0 -> 186344 bytes
177 files changed, 36675 insertions, 0 deletions
diff --git a/debian/fireflies/fireflies-2.08/COMPILE b/debian/fireflies/fireflies-2.08/COMPILE
new file mode 100644
index 00000000..eb5a602b
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/COMPILE
@@ -0,0 +1,52 @@
+Fireflies v2.07
+===============
+by Matt Perry <[email protected]>
+
+TO COMPILE/INSTALL:
+type:
+ ./configure [--with-bindir=PATH_TO_YOUR_XSCREENSAVER_HACK_DIR]
+ [--with-confdir=PATH_TO_YOUR_XSCREENSAVER_CONFIG_DIR]
+ make
+ make install
+ ./add-xscreensaver PATH_TO_YOUR_XSCREENSAVER_FILE
+
+NOTES for Linux:
+The default installation directory for fireflies is /usr/lib/xscreensaver.
+The default installation directory for fireflies.xml (the xscreensaver
+config file) is /usr/share/xscreensaver/config. If yours differ from this
+(as it almost certainly will), you need to run ./configure with the
+--with-bindir and/or --with-confdir options to tell it where to install.
+Alternatively, you could just copy the binary and .xml file to the right
+places yourself.
+To use with xscreensaver, you must add the fireflies entry to your
+~/.xscreensaver file. ./add-xscreensaver does this for you. Just run
+ ./add-xscreensaver PATH
+where PATH would usually look like ~/.xscreensaver
+
+TO INSTALL (windows):
+If you want the standalone program (for which you need SDL, see below),
+run "./configure --disable-screensaver". Copy the 'fireflies.exe' program
+to wherever you want to put it.
+If you want the screensaver, configure and compile as usual (screensaver is
+the default). By default, "make install" will put fireflies.scr in your
+C:\Windows\ directory, which is where it should be. Leave it there. You
+can set it up by changing your Display Properties (right click on the
+desktop), and selecting 'fireflies' from the pulldown menu. Clicking on
+Settings will open up a configuration window.
+
+NOTES:
+This program uses the libgfx graphics library (included with this package)
+for basic vertex and rotation processing, available from
+http://graphics.cs.uiuc.edu/~garland/software/libgfx.html
+
+Requirements:
+ openGL and GLU (available from www.opengl.org)
+
+Optional:
+ SDL (available from www.libsdl.org)
+ - SDL will allow you to run fireflies as a standalone program and
+ let you do cool things like pause and move the camera, and
+ trigger major modes by pressing number keys [0-6] If you don't
+ have it, fireflies will only be able to draw to the root window
+ (ie, as a screensaver), and will not respond to input.
+ Linux only: glX for xscreensaver support
diff --git a/debian/fireflies/fireflies-2.08/COPYING b/debian/fireflies/fireflies-2.08/COPYING
new file mode 100644
index 00000000..60549be5
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/COPYING
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/debian/fireflies/fireflies-2.08/ChangeLog b/debian/fireflies/fireflies-2.08/ChangeLog
new file mode 100644
index 00000000..ac80a464
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/ChangeLog
@@ -0,0 +1,78 @@
+version 2.07:
+ * fix for dual-headed display bug. Thanks to an anonymous tip for finding
+ this.
+ * new FC4 spec courtesy of Simon Roberts.
+
+version 2.06:
+ * fixed a bug with mode probalities where every part was off by 1.
+ * added a French resource.rc (resource.rc.french). Rename it if you're
+ French. Thanks to Stephane Sudre for this and the Mac OS X port.
+
+version 2.05:
+ * put back autoconf GLX detection into configure.ac (don't know how that
+ disappeared).
+ * code cleanup: separated GLCanvas into CanvasGLX and CanvasSDL for the
+ different backends.
+
+version 2.04:
+ * whoops: I broke it pretty good. This release fixes it
+ * small addition: fixed jaggy lines caused when fireflies runs on a slow
+ or busy machine.
+
+version 2.03:
+ * added a default "do nothing" mode with hardcoded probability 10 (so you
+ can make modes less frequent)
+ * added small shell script to add a fireflies entry to your xscreensaver
+ config file.
+ * new package support: Redhat
+ * new package support: Debian (much thanks to Serge Koenigsmann
+ * MesaGL support
+
+version 2.02:
+ * fixed xscreensaver support which 2.01 broke
+
+version 2.01:
+ * changed how number of flies and baits work: you now specify a minimum
+ and maximum for each, so that things don't get out of control when
+ adding/killing baits and flies.
+ * -fast_forward option
+ * -fps (frames per second) option
+ * new Faded swarm mode: colors get lighter
+ * added short delays between frames so as not to waste ALL your CPU
+ * some cool new "features" in the SDL standalone program
+ * fixed mode probabilities: made fly birth/kill and swarm merge/split
+ equally likely, so you don't end up with a million flies in 1 swarm after
+ a few hours.
+ * uses autoconf to automatically determine what system you're compiling on,
+ and whether you have SDL, glX, etc
+ * option parsing: uses argp instead of getopt (not that you will notice,
+ it just makes me feel better about myself)
+ * put mode functions in their own file
+
+version 2.0: Fri Feb 21, 2003
+ * new motion algorithm: the fireflies chase after baits that fly
+ around, and freely switch who they're chasing
+ * modes: swarms go through mode changes, such as speeding up, stopping
+ for a breather, and going psychadelic. The overall scene also undergoes
+ mode changes, such as the wind picking up, creation/deletion of new
+ flies/baits, and an... interesting.. matrix mode
+ * new diamond particle shape
+ * sporting a nifty (read: ugly) xscreensaver configuration interface
+ file (Linux only)
+
+version 1.02: Thu Feb 13, 2003
+ * ported to windows (using MinGW)
+ * made it a windows screensaver! even made a config box!
+ * added a -fullscreen option
+ * fixed blending
+
+version 1.01: Sun Feb 10, 2003
+ * added wind to blow the tails around
+ * made it compatible with xscreensaver!
+ * removed dependence on GLUT (incidentally, making it slightly faster)
+
+version 1.0: Sun Feb 10, 2003
+ * First release
+
+began: Sun Jan 26, 2003
diff --git a/debian/fireflies/fireflies-2.08/Make.include.in b/debian/fireflies/fireflies-2.08/Make.include.in
new file mode 100644
index 00000000..1fe9a267
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/Make.include.in
@@ -0,0 +1,13 @@
+CXX = @CXX@
+
+SDL_LIBS = @SDL_LIBS@
+SDL_CFLAGS = @SDL_CFLAGS@
+GL_LIBS = @GL_LIBS@
+OPT_LIBS = @OPT_LIBS@
+
+CFLAGS = -Wall -I../libgfx/include/ $(SDL_CFLAGS) @CFLAGS@
+LIBS = ../libgfx/src/libgfx.a $(GL_LIBS) $(SDL_LIBS) $(OPT_LIBS) @LIBS@
+
+OBJECTS = arrow.o bait.o firefly.o scene.o tail.o utils.o modes.o @OPT_OBJS@
+PROGRAM = @PROGRAM@
+VERSION = @PACKAGE_VERSION@
diff --git a/debian/fireflies/fireflies-2.08/Makefile b/debian/fireflies/fireflies-2.08/Makefile
new file mode 100644
index 00000000..db612af2
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/Makefile
@@ -0,0 +1,52 @@
+include Make.include
+
+DISTFILES=\
+add-xscreensaver \
+COMPILE \
+COPYING \
+ChangeLog \
+debian/ \
+Make.include.in \
+Makefile \
+README \
+TODO \
+config.h.in \
+configure \
+configure.ac \
+fireflies.spec.in \
+fireflies.xml \
+install-sh \
+installit.in \
+libgfx-1.0.1.tar.gz \
+win32/
+
+all: libgfx/src/libgfx.a
+ cd src && make
+
+libgfx/src/libgfx.a:
+ gunzip -c libgfx-1.0.1.tar.gz | tar x
+ cd libgfx && ./configure && cd src && make
+
+install: all
+ sh ./installit $(DESTDIR)
+
+clean:
+ make -C src clean
+ make -C win32 clean
+
+dist:
+ rm -rf fireflies-$(VERSION)
+ mkdir fireflies-$(VERSION)
+ cp -a src fireflies-$(VERSION)
+ cp -a $(DISTFILES) fireflies-$(VERSION)
+
+ # need Make.include temporarily to run make
+ cp Make.include fireflies-$(VERSION)
+ make -C fireflies-$(VERSION) clean
+ rm -f fireflies-$(VERSION)/Make.include
+
+ # don't want to include debian's buildroot
+ rm -rf fireflies-$(VERSION)/debian/fireflies
+
+ tar czf fireflies-$(VERSION).tar.gz fireflies-$(VERSION)
+ rm -rf fireflies-$(VERSION)
diff --git a/debian/fireflies/fireflies-2.08/README b/debian/fireflies/fireflies-2.08/README
new file mode 100644
index 00000000..9af5278f
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/README
@@ -0,0 +1,61 @@
+Fireflies v2.07
+===============
+by Matt Perry <[email protected]>
+
+For information on how to compile, read COMPILE.
+
+-- MODES:
+New to 2.0 are modes. There are two types, per-swarm modes, and major
+modes. Per-swarm modes affect a single swarm (but two swarms may decide to
+switch to the same mode), while major modes affect the whole scene. They
+are activated with a certain probability, which is entirely relative. For
+example, if mode A has probability=1, and mode B has probability=5, that
+means mode B is 5 times as likely to occur as mode A. The mode numbers,
+names, and descriptions are as follows:
+
+Per-Swarm modes:
+Normal mode (0) - normal swarm flight
+Stop mode (1) - the bait comes to a halt, and the flies circle in around
+ it.
+Loop mode (2) - the bait travels in a loop, and the flies chase it.
+Psychadelic mode (3) - color cycling speed for this swarm is increased, and
+ the tails look like rainbows.
+Glow mode (4) - the tails increase by glow_factor (an option).
+Hyperspeed mode (5) - the bait and flies get hyper, and increase speed and
+ acceleration.
+Faded mode (6) - the colors fade
+
+Major Modes:
+All-Swarm mode (0) - activate a per-swarm mode for all swarms.
+FlyKill mode (1) - kill a bunch of fireflies.
+FlyBirth mode (2) - create a bunch of fireflies.
+Windy mode (3) - wind speed increases.
+Matrix mode (4) - Matrix-style pause and rotate.
+Swarmsplit mode (5) - a random swarm is split in 2.
+Swarmmerge mode (6) - 2 random swarms are merged.
+
+-- SDL standalone program:
+If you have SDL, and you compiled fireflies with SDL support as a
+standalone program (as opposed to a screensaver), you can enjoy a few neat
+features (mostly there so I could test things, but what the hell, they're
+fun for all).
+
+Mouse input:
+ * Left-click and drag to move the camera left/right/up/down.
+ * Right-click and drag up/down to zoom the camera in/out.
+ * Hold control and Left-click and drag to rotate the camera about the
+ origin.
+
+Keyboard input:
+ * q = quit
+ * p = pause the screensaver (you can move the camera, but nothing else
+ happens)
+ * t = display elapsed time in seconds to the console window (this won't
+ work in windows if you don't have a console window open)
+ * up arrow = fast forward 2x
+ * down arrow = fast forward 1/2x
+ * right arrow = fast forward +1x
+ * left arrow = fast forward -1x
+ * 0-6 = activate major mode corresponding to that digit
+ * shift + 0-6 = activate swarm mode corresponding to that digit
+ * control + 0-6 = stop swarm mode corresponding to that digit
diff --git a/debian/fireflies/fireflies-2.08/TODO b/debian/fireflies/fireflies-2.08/TODO
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/TODO
diff --git a/debian/fireflies/fireflies-2.08/add-xscreensaver b/debian/fireflies/fireflies-2.08/add-xscreensaver
new file mode 100755
index 00000000..acdb0184
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/add-xscreensaver
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# This script will add a Fireflies entry to every file you give it,
+# assuming they of xscreensaverrc file format.
+
+tmpfile=`mktemp /tmp/xrc.XXXXXX`
+for file in "$@"; do
+ [ -f $file ] || continue
+ grep -q 'fireflies' $file && continue
+ cp $file $tmpfile
+ cat $tmpfile | sed '
+/programs:/ a\
+ GL: "Fireflies 3D" fireflies -root \\n\\
+' > $file
+done
+
+rm $tmpfile
diff --git a/debian/fireflies/fireflies-2.08/config.h.in b/debian/fireflies/fireflies-2.08/config.h.in
new file mode 100644
index 00000000..6b9d2046
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/config.h.in
@@ -0,0 +1,5 @@
+#undef HAVE_SDL
+
+#undef HAVE_GLX
+
+#undef PACKAGE_VERSION
diff --git a/debian/fireflies/fireflies-2.08/configure b/debian/fireflies/fireflies-2.08/configure
new file mode 100755
index 00000000..f0a224a2
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/configure
@@ -0,0 +1,4226 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.59 for fireflies 2.07.
+#
+# Report bugs to <[email protected]>.
+#
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+ LC_TELEPHONE LC_TIME
+do
+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ eval $as_var=C; export $as_var
+ else
+ $as_unset $as_var
+ fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$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" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.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
+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+ 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
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ # We could just check for DJGPP; but this test a) works b) is more generic
+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+ if test -f conf$$.exe; then
+ # Don't use ln at all; we don't have any links
+ as_ln_s='cp -p'
+ else
+ as_ln_s='ln -s'
+ fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval 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="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" $as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_config_libobj_dir=.
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete. It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
+
+# Identity of this package.
+PACKAGE_NAME='fireflies'
+PACKAGE_TARNAME='fireflies'
+PACKAGE_VERSION='2.07'
+PACKAGE_STRING='fireflies 2.07'
+PACKAGE_BUGREPORT='[email protected]'
+
+ac_unique_file="src/arrow.cc"
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT CC CFLAGS ac_ct_CC INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SDL_CONF BINDIR CONFDIR RCFILE OPT_LIBS OPT_OBJS PROGRAM SDL_LIBS SDL_CFLAGS GL_LIBS LIBOBJS LTLIBOBJS'
+ac_subst_files=''
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+ac_prev=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_option in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ eval "enable_$ac_feature=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_$ac_feature='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_$ac_package='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package | sed 's/-/_/g'`
+ eval "with_$ac_package=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+ { (exit 1); exit 1; }; }
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+ { (exit 1); exit 1; }; }
+ ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+ eval "$ac_envvar='$ac_optarg'"
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ { echo "$as_me: error: missing argument to $ac_option" >&2
+ { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+ localstatedir libdir includedir oldincludedir infodir mandir
+do
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) ;;
+ *) { 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: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+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_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=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+ { (exit 1); exit 1; }; }
+ else
+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+ { (exit 1); exit 1; }; }
+ fi
+fi
+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+ { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+ { (exit 1); exit 1; }; }
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CXX_set=${CXX+set}
+ac_env_CXX_value=$CXX
+ac_cv_env_CXX_set=${CXX+set}
+ac_cv_env_CXX_value=$CXX
+ac_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_env_CXXFLAGS_value=$CXXFLAGS
+ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_cv_env_CXXFLAGS_value=$CXXFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+ac_env_CC_set=${CC+set}
+ac_env_CC_value=$CC
+ac_cv_env_CC_set=${CC+set}
+ac_cv_env_CC_value=$CC
+ac_env_CFLAGS_set=${CFLAGS+set}
+ac_env_CFLAGS_value=$CFLAGS
+ac_cv_env_CFLAGS_set=${CFLAGS+set}
+ac_cv_env_CFLAGS_value=$CFLAGS
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures fireflies 2.07 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+_ACEOF
+
+ cat <<_ACEOF
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --infodir=DIR info documentation [PREFIX/info]
+ --mandir=DIR man documentation [PREFIX/man]
+_ACEOF
+
+ cat <<\_ACEOF
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of fireflies 2.07:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-screensaver Compile as a Windows screensaver (default=yes)
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-bindir Where to put the binary
+ (default=/usr/lib/xscreensaver)
+ --with-confdir Where to put the xscreensaver config
+ (default=/usr/share/xscreensaver/config)
+
+Some influential environment variables:
+ CXX C++ compiler command
+ CXXFLAGS C++ compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
+ headers in a nonstandard directory <include dir>
+ CC C compiler command
+ CFLAGS C compiler flags
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <[email protected]>.
+_ACEOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ ac_popdir=`pwd`
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d $ac_dir || continue
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
+
+ cd $ac_dir
+ # Check for guested configure; otherwise get Cygnus style configure.
+ if test -f $ac_srcdir/configure.gnu; then
+ echo
+ $SHELL $ac_srcdir/configure.gnu --help=recursive
+ elif test -f $ac_srcdir/configure; then
+ echo
+ $SHELL $ac_srcdir/configure --help=recursive
+ elif test -f $ac_srcdir/configure.ac ||
+ test -f $ac_srcdir/configure.in; then
+ echo
+ $ac_configure --help
+ else
+ echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi
+ cd $ac_popdir
+ done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+ cat <<\_ACEOF
+fireflies configure 2.07
+generated by GNU Autoconf 2.59
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit 0
+fi
+exec 5>config.log
+cat >&5 <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by fireflies $as_me 2.07, which was
+generated by GNU Autoconf 2.59. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ echo "PATH: $as_dir"
+done
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_sep=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+ 2)
+ ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+ # Get rid of the leading space.
+ ac_sep=" "
+ ;;
+ esac
+ done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+{
+ (set) 2>&1 |
+ case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ sed -n \
+ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+ ;;
+ *)
+ sed -n \
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ ;;
+ esac;
+}
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=$`echo $ac_var`
+ echo "$ac_var='"'"'$ac_val'"'"'"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------- ##
+## Output files. ##
+## ------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=$`echo $ac_var`
+ echo "$ac_var='"'"'$ac_val'"'"'"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ sed "/^$/d" confdefs.h | sort
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ echo "$as_me: caught signal $ac_signal"
+ echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core &&
+ rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+ ' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special
+ # files actually), so we avoid doing that.
+ if test -f "$cache_file"; then
+ { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . $cache_file;;
+ *) . ./$cache_file;;
+ esac
+ fi
+else
+ { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+ eval ac_new_val="\$ac_env_${ac_var}_value"
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
+echo "$as_me: former value: $ac_old_val" >&2;}
+ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
+echo "$as_me: current value: $ac_new_val" >&2;}
+ ac_cache_corrupted=:
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+ ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_headers="$ac_config_headers config.h"
+
+
+sys=`uname`
+
+# Checks for programs.
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ echo "$as_me:$LINENO: result: $CXX" >&5
+echo "${ECHO_T}$CXX" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+echo "${ECHO_T}$ac_ct_CXX" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$ac_ct_CXX" && break
+done
+test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
+
+ CXX=$ac_ct_CXX
+fi
+
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+ "checking for C++ compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+echo "$as_me:$LINENO: checking for C++ compiler default output file name" >&5
+echo $ECHO_N "checking for C++ compiler default output file name... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+ (eval $ac_link_default) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Find the output, starting from the most likely. This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+
+# Be careful to initialize this variable, since it used to be cached.
+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+ac_cv_exeext=
+# b.out is created by i960 compilers.
+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+ ;;
+ conftest.$ac_ext )
+ # This is the source file.
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ # FIXME: I believe we export ac_cv_exeext for Libtool,
+ # but it would be cool to find out if it's true. Does anybody
+ # maintain Libtool? --akim.
+ export ac_cv_exeext
+ break;;
+ * )
+ break;;
+ esac
+done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C++ compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C++ compiler cannot create executables
+See \`config.log' for more details." >&2;}
+ { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
+
+# Check the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether the C++ compiler works" >&5
+echo $ECHO_N "checking whether the C++ compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { echo "$as_me:$LINENO: error: cannot run C++ compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run C++ compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ export ac_cv_exeext
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
+GXX=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+CXXFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cxx_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cxx_g=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cxx_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+for ac_declaration in \
+ '' \
+ 'extern "C" void std::exit (int) throw (); using std::exit;' \
+ 'extern "C" void std::exit (int); using std::exit;' \
+ 'extern "C" void exit (int) throw ();' \
+ 'extern "C" void exit (int);' \
+ 'void exit (int);'
+do
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+ echo '#ifdef __cplusplus' >>confdefs.h
+ echo $ac_declaration >>confdefs.h
+ echo '#endif' >>confdefs.h
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ CC=$ac_ct_CC
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ CC=$ac_ct_CC
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$ac_ct_CC" && break
+done
+
+ CC=$ac_ct_CC
+fi
+
+fi
+
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+ "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_g=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cc_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std1 is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std1. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX -qlanglvl=ansi
+# Ultrix and OSF/1 -std1
+# HP-UX 10.20 and later -Ae
+# HP-UX older versions -Aa -D_HPUX_SOURCE
+# SVR4 -Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+ x|xno)
+ echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+ *)
+ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+ CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
+# Some people use a C++ compiler to compile C. Since we use `exit',
+# in C++ we need to declare it. In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+ choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ for ac_declaration in \
+ '' \
+ 'extern "C" void std::exit (int) throw (); using std::exit;' \
+ 'extern "C" void std::exit (int); using std::exit;' \
+ 'extern "C" void exit (int) throw ();' \
+ 'extern "C" void exit (int);' \
+ 'void exit (int);'
+do
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+ echo '#ifdef __cplusplus' >>confdefs.h
+ echo $ac_declaration >>confdefs.h
+ echo '#endif' >>confdefs.h
+fi
+
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f $ac_dir/shtool; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+ ./ | .// | /cC/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+done
+
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL=$ac_install_sh
+ fi
+fi
+echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+# Check whether --enable-screensaver or --disable-screensaver was given.
+if test "${enable_screensaver+set}" = set; then
+ enableval="$enable_screensaver"
+
+fi;
+
+# Checks for SDL (optional)
+# Extract the first word of "sdl-config", so it can be a program name with args.
+set dummy sdl-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_SDL_CONF+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$SDL_CONF"; then
+ ac_cv_prog_SDL_CONF="$SDL_CONF" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_SDL_CONF="yes"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+SDL_CONF=$ac_cv_prog_SDL_CONF
+if test -n "$SDL_CONF"; then
+ echo "$as_me:$LINENO: result: $SDL_CONF" >&5
+echo "${ECHO_T}$SDL_CONF" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+case $sys in
+CYGWIN*|cygwin*|MINGW*|mingw*)
+ if test "$enable_screensaver" = "no"; then
+ OPT_LIBS="-mconsole -mwindows"
+ OPT_OBJS="main.o canvas_base.o"
+ PROGRAM="fireflies.exe"
+ BINDIR="./"
+ if test -z "$SDL_CONF"; then
+ { { echo "$as_me:$LINENO: error: need SDL to compile as non-screensaver" >&5
+echo "$as_me: error: need SDL to compile as non-screensaver" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ else
+ SDL_CONF="";
+ OPT_LIBS="-lscrnsave -lmingw32 -lgdi32 -mwindows"
+ OPT_OBJS="winsaver.o resource.o"
+ PROGRAM="fireflies.scr"
+ BINDIR='C:\Windows\'
+ fi
+
+ CFLAGS="${CFLAGS} -DWIN32"
+ GL_LIBS="-lopengl32 -lglu32"
+ ;;
+*)
+# FIXME: I should use a more sophisticated path detection method.
+ for try in /usr/lib/xscreensaver /usr/lib/X11/xscreensaver /usr/X11R6/lib/xscreensaver /usr/libexec/xscreensaver; do
+ test -d $try && BINDIR=$try
+ done
+ for try in /usr/share/xscreensaver/config /usr/share/control-center/screensavers/; do
+ test -d $try && CONFDIR=$try
+ done
+ for try in /usr/lib/X11/app-defaults/XScreenSaver /etc/X11/app-defaults/XScreenSaver; do
+ test -f $try && RCFILE=$try
+ done
+
+ OPT_LIBS=""
+ OPT_OBJS="main.o canvas_base.o"
+ PROGRAM="fireflies"
+
+ echo "$as_me:$LINENO: checking for glXSwapBuffers in -lGL" >&5
+echo $ECHO_N "checking for glXSwapBuffers in -lGL... $ECHO_C" >&6
+if test "${ac_cv_lib_GL_glXSwapBuffers+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lGL $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char glXSwapBuffers ();
+int
+main ()
+{
+glXSwapBuffers ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_GL_glXSwapBuffers=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_GL_glXSwapBuffers=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_GL_glXSwapBuffers" >&5
+echo "${ECHO_T}$ac_cv_lib_GL_glXSwapBuffers" >&6
+if test $ac_cv_lib_GL_glXSwapBuffers = yes; then
+ \
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_GLX 1
+_ACEOF
+
+ OPT_OBJS="$OPT_OBJS canvas_glx.o"
+else
+ \
+ echo "$as_me:$LINENO: checking for glXSwapBuffers in -lMesaGL" >&5
+echo $ECHO_N "checking for glXSwapBuffers in -lMesaGL... $ECHO_C" >&6
+if test "${ac_cv_lib_MesaGL_glXSwapBuffers+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lMesaGL $LIBS"
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char glXSwapBuffers ();
+int
+main ()
+{
+glXSwapBuffers ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_MesaGL_glXSwapBuffers=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_MesaGL_glXSwapBuffers=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_MesaGL_glXSwapBuffers" >&5
+echo "${ECHO_T}$ac_cv_lib_MesaGL_glXSwapBuffers" >&6
+if test $ac_cv_lib_MesaGL_glXSwapBuffers = yes; then
+ \
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_GLX 1
+_ACEOF
+
+ OPT_OBJS="$OPT_OBJS canvas_glx.o"
+fi
+
+fi
+
+
+ echo "$as_me:$LINENO: checking for glBegin in -lGL" >&5
+echo $ECHO_N "checking for glBegin in -lGL... $ECHO_C" >&6
+if test "${ac_cv_lib_GL_glBegin+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lGL $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char glBegin ();
+int
+main ()
+{
+glBegin ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_GL_glBegin=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_GL_glBegin=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_GL_glBegin" >&5
+echo "${ECHO_T}$ac_cv_lib_GL_glBegin" >&6
+if test $ac_cv_lib_GL_glBegin = yes; then
+ \
+ GL_LIBS="-lGL -lGLU"
+else
+ \
+ echo "$as_me:$LINENO: checking for glBegin in -lMesaGL" >&5
+echo $ECHO_N "checking for glBegin in -lMesaGL... $ECHO_C" >&6
+if test "${ac_cv_lib_MesaGL_glBegin+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lMesaGL $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char glBegin ();
+int
+main ()
+{
+glBegin ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_MesaGL_glBegin=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_MesaGL_glBegin=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_MesaGL_glBegin" >&5
+echo "${ECHO_T}$ac_cv_lib_MesaGL_glBegin" >&6
+if test $ac_cv_lib_MesaGL_glBegin = yes; then
+ \
+ GL_LIBS="-lMesaGL -lMesaGLU"
+else
+ \
+ { { echo "$as_me:$LINENO: error: cannot find GL libraries" >&5
+echo "$as_me: error: cannot find GL libraries" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+fi
+
+
+ ;;
+esac
+
+if test -n "$SDL_CONF"; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_SDL 1
+_ACEOF
+
+ SDL_LIBS="\`sdl-config --libs\`"
+ SDL_CFLAGS="\`sdl-config --cflags\`"
+ OPT_OBJS="$OPT_OBJS canvas_sdl.o"
+fi
+
+
+# Check whether --with-bindir or --without-bindir was given.
+if test "${with_bindir+set}" = set; then
+ withval="$with_bindir"
+ BINDIR=$withval
+fi;
+
+# Check whether --with-confdir or --without-confdir was given.
+if test "${with_confdir+set}" = set; then
+ withval="$with_confdir"
+ CONFDIR=$withval
+fi;
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_files="$ac_config_files Make.include installit fireflies.spec"
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+ (set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n \
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ ;;
+ esac;
+} |
+ sed '
+ t clear
+ : clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ : end' >>confcache
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
+ if test -w $cache_file; then
+ test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+ cat confcache >$cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[ ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[ ]*$//;
+}'
+fi
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_i=`echo "$ac_i" |
+ sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+ # 2. Add them.
+ ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+ ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+ LC_TELEPHONE LC_TIME
+do
+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ eval $as_var=C; export $as_var
+ else
+ $as_unset $as_var
+ fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$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" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.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:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+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
+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+ 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:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+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
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ # We could just check for DJGPP; but this test a) works b) is more generic
+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+ if test -f conf$$.exe; then
+ # Don't use ln at all; we don't have any links
+ as_ln_s='cp -p'
+ else
+ as_ln_s='ln -s'
+ fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval 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="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" $as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling. Logging --version etc. is OK.
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by fireflies $as_me 2.07, which was
+generated by GNU Autoconf 2.59. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+ echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+ echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+ echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+ echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Report bugs to <[email protected]>."
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+fireflies config.status 2.07
+configured by $0, generated by GNU Autoconf 2.59,
+ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+INSTALL="$INSTALL"
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value. By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "x$1" : 'x\([^=]*\)='`
+ ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ -*)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ *) # This is not an option, so the user has probably given explicit
+ # arguments.
+ ac_option=$1
+ ac_need_defaults=false;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --vers* | -V )
+ echo "$ac_cs_version"; exit 0 ;;
+ --he | --h)
+ # Conflict between --help and --header
+ { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; };;
+ --help | --hel | -h )
+ echo "$ac_cs_usage"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+ ac_need_defaults=false;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; } ;;
+
+ *) ac_config_targets="$ac_config_targets $1" ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+ echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+ exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
+_ACEOF
+
+
+
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+ case "$ac_config_target" in
+ # Handling of arguments.
+ "Make.include" ) CONFIG_FILES="$CONFIG_FILES Make.include" ;;
+ "installit" ) CONFIG_FILES="$CONFIG_FILES installit" ;;
+ "fireflies.spec" ) CONFIG_FILES="$CONFIG_FILES fireflies.spec" ;;
+ "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+ trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./confstat$$-$RANDOM
+ (umask 077 && mkdir $tmp)
+} ||
+{
+ echo "$me: cannot create a temporary directory in ." >&2
+ { (exit 1); exit 1; }
+}
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+ # Protect against being on the right side of a sed subst in config.status.
+ sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+ s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s,@SHELL@,$SHELL,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@exec_prefix@,$exec_prefix,;t t
+s,@prefix@,$prefix,;t t
+s,@program_transform_name@,$program_transform_name,;t t
+s,@bindir@,$bindir,;t t
+s,@sbindir@,$sbindir,;t t
+s,@libexecdir@,$libexecdir,;t t
+s,@datadir@,$datadir,;t t
+s,@sysconfdir@,$sysconfdir,;t t
+s,@sharedstatedir@,$sharedstatedir,;t t
+s,@localstatedir@,$localstatedir,;t t
+s,@libdir@,$libdir,;t t
+s,@includedir@,$includedir,;t t
+s,@oldincludedir@,$oldincludedir,;t t
+s,@infodir@,$infodir,;t t
+s,@mandir@,$mandir,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@DEFS@,$DEFS,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@LIBS@,$LIBS,;t t
+s,@CXX@,$CXX,;t t
+s,@CXXFLAGS@,$CXXFLAGS,;t t
+s,@LDFLAGS@,$LDFLAGS,;t t
+s,@CPPFLAGS@,$CPPFLAGS,;t t
+s,@ac_ct_CXX@,$ac_ct_CXX,;t t
+s,@EXEEXT@,$EXEEXT,;t t
+s,@OBJEXT@,$OBJEXT,;t t
+s,@CC@,$CC,;t t
+s,@CFLAGS@,$CFLAGS,;t t
+s,@ac_ct_CC@,$ac_ct_CC,;t t
+s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+s,@SDL_CONF@,$SDL_CONF,;t t
+s,@BINDIR@,$BINDIR,;t t
+s,@CONFDIR@,$CONFDIR,;t t
+s,@RCFILE@,$RCFILE,;t t
+s,@OPT_LIBS@,$OPT_LIBS,;t t
+s,@OPT_OBJS@,$OPT_OBJS,;t t
+s,@PROGRAM@,$PROGRAM,;t t
+s,@SDL_LIBS@,$SDL_LIBS,;t t
+s,@SDL_CFLAGS@,$SDL_CFLAGS,;t t
+s,@GL_LIBS@,$GL_LIBS,;t t
+s,@LIBOBJS@,$LIBOBJS,;t t
+s,@LTLIBOBJS@,$LTLIBOBJS,;t t
+CEOF
+
+_ACEOF
+
+ cat >>$CONFIG_STATUS <<\_ACEOF
+ # Split the substitutions into bite-sized pieces for seds with
+ # small command number limits, like on Digital OSF/1 and HP-UX.
+ ac_max_sed_lines=48
+ ac_sed_frag=1 # Number of current file.
+ ac_beg=1 # First line for current file.
+ ac_end=$ac_max_sed_lines # Line after last line for current file.
+ ac_more_lines=:
+ ac_sed_cmds=
+ while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ else
+ sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ fi
+ if test ! -s $tmp/subs.frag; then
+ ac_more_lines=false
+ else
+ # The purpose of the label and of the branching condition is to
+ # speed up the sed processing (if there are no `@' at all, there
+ # is no need to browse any of the substitutions).
+ # These are the two extra sed commands mentioned above.
+ (echo ':t
+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+ fi
+ ac_sed_frag=`expr $ac_sed_frag + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_lines`
+ fi
+ done
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+ fi
+fi # test -n "$CONFIG_FILES"
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case $ac_file in
+ - | *:- | *:-:* ) # input from stdin
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+ # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
+
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+ esac
+
+ if test x"$ac_file" != x-; then
+ { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ if test x"$ac_file" = x-; then
+ configure_input=
+ else
+ configure_input="$ac_file. "
+ fi
+ configure_input=$configure_input"Generated from `echo $ac_file_in |
+ sed 's,.*/,,'` by configure."
+
+ # First look for the input files in the build tree, otherwise in the
+ # src tree.
+ ac_file_inputs=`IFS=:
+ for f in $ac_file_in; do
+ case $f in
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo "$f";;
+ *) # Relative
+ if test -f "$f"; then
+ # Build tree
+ echo "$f"
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo "$srcdir/$f"
+ else
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+ sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+s,@INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+ rm -f $tmp/stdin
+ if test x"$ac_file" != x-; then
+ mv $tmp/out $ac_file
+ else
+ cat $tmp/out
+ rm -f $tmp/out
+ fi
+
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_HEADER section.
+#
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+ac_dB='[ ].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_uB='$,\1#\2define\3'
+ac_uC=' '
+ac_uD=',;t'
+
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case $ac_file in
+ - | *:- | *:-:* ) # input from stdin
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+ test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+ # First look for the input files in the build tree, otherwise in the
+ # src tree.
+ ac_file_inputs=`IFS=:
+ for f in $ac_file_in; do
+ case $f in
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ # Do quote $f, to prevent DOS paths from being IFS'd.
+ echo "$f";;
+ *) # Relative
+ if test -f "$f"; then
+ # Build tree
+ echo "$f"
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo "$srcdir/$f"
+ else
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+ # Remove the trailing spaces.
+ sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
+
+_ACEOF
+
+# Transform confdefs.h into two sed scripts, `conftest.defines' and
+# `conftest.undefs', that substitutes the proper values into
+# config.h.in to produce config.h. The first handles `#define'
+# templates, and the second `#undef' templates.
+# And first: Protect against being on the right side of a sed subst in
+# config.status. Protect against being in an unquoted here document
+# in config.status.
+rm -f conftest.defines conftest.undefs
+# Using a here document instead of a string reduces the quoting nightmare.
+# Putting comments in sed scripts is not portable.
+#
+# `end' is used to avoid that the second main sed command (meant for
+# 0-ary CPP macros) applies to n-ary macro definitions.
+# See the Autoconf documentation for `clear'.
+cat >confdef2sed.sed <<\_ACEOF
+s/[\\&,]/\\&/g
+s,[\\$`],\\&,g
+t clear
+: clear
+s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+t end
+s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+: end
+_ACEOF
+# If some macros were called several times there might be several times
+# the same #defines, which is useless. Nevertheless, we may not want to
+# sort them, since we want the *last* AC-DEFINE to be honored.
+uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+rm -f confdef2sed.sed
+
+# This sed command replaces #undef with comments. This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >>conftest.undefs <<\_ACEOF
+s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+_ACEOF
+
+# Break up conftest.defines because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+echo ' :' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.defines >/dev/null
+do
+ # Write a limited-size here document to $tmp/defines.sed.
+ echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+ # Speed up: don't consider the non `#define' lines.
+ echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
+ # Work around the forget-to-reset-the-flag bug.
+ echo 't clr' >>$CONFIG_STATUS
+ echo ': clr' >>$CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+ echo 'CEOF
+ sed -f $tmp/defines.sed $tmp/in >$tmp/out
+ rm -f $tmp/in
+ mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+ rm -f conftest.defines
+ mv conftest.tail conftest.defines
+done
+rm -f conftest.defines
+echo ' fi # grep' >>$CONFIG_STATUS
+echo >>$CONFIG_STATUS
+
+# Break up conftest.undefs because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.undefs >/dev/null
+do
+ # Write a limited-size here document to $tmp/undefs.sed.
+ echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+ # Speed up: don't consider the non `#undef'
+ echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
+ # Work around the forget-to-reset-the-flag bug.
+ echo 't clr' >>$CONFIG_STATUS
+ echo ': clr' >>$CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+ echo 'CEOF
+ sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+ rm -f $tmp/in
+ mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+ rm -f conftest.undefs
+ mv conftest.tail conftest.undefs
+done
+rm -f conftest.undefs
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ if test x"$ac_file" = x-; then
+ echo "/* Generated by configure. */" >$tmp/config.h
+ else
+ echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
+ fi
+ cat $tmp/in >>$tmp/config.h
+ rm -f $tmp/in
+ if test x"$ac_file" != x-; then
+ if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+ { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ rm -f $ac_file
+ mv $tmp/config.h $ac_file
+ fi
+ else
+ cat $tmp/config.h
+ rm -f $tmp/config.h
+ fi
+done
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || { (exit 1); exit 1; }
+fi
+
+chmod +x installit
diff --git a/debian/fireflies/fireflies-2.08/configure.ac b/debian/fireflies/fireflies-2.08/configure.ac
new file mode 100644
index 00000000..14868e1d
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/configure.ac
@@ -0,0 +1,99 @@
+# Process this file with autoconf to produce a configure script.
+AC_INIT(fireflies, 2.07, [email protected])
+AC_CONFIG_SRCDIR([src/arrow.cc])
+AC_CONFIG_HEADER([config.h])
+
+sys=`uname`
+
+# Checks for programs.
+AC_PROG_CXX
+AC_PROG_CC
+AC_PROG_INSTALL
+
+AC_ARG_ENABLE(screensaver, AC_HELP_STRING([--enable-screensaver],
+ [Compile as a Windows screensaver (default=yes)]))
+
+# Checks for SDL (optional)
+AC_CHECK_PROG([SDL_CONF], [sdl-config], [yes])
+
+case $sys in
+CYGWIN*|cygwin*|MINGW*|mingw*)
+ if test "$enable_screensaver" = "no"; then
+ OPT_LIBS="-mconsole -mwindows"
+ OPT_OBJS="main.o canvas_base.o"
+ PROGRAM="fireflies.exe"
+ BINDIR="./"
+ if test -z "$SDL_CONF"; then
+ AC_MSG_ERROR([need SDL to compile as non-screensaver])
+ fi
+ else
+ SDL_CONF="";
+ OPT_LIBS="-lscrnsave -lmingw32 -lgdi32 -mwindows"
+ OPT_OBJS="winsaver.o resource.o"
+ PROGRAM="fireflies.scr"
+ BINDIR='C:\Windows\'
+ fi
+
+ CFLAGS="${CFLAGS} -DWIN32"
+ GL_LIBS="-lopengl32 -lglu32"
+ ;;
+*)
+# FIXME: I should use a more sophisticated path detection method.
+ for try in /usr/lib/xscreensaver /usr/lib/X11/xscreensaver /usr/X11R6/lib/xscreensaver /usr/libexec/xscreensaver; do
+ test -d $try && BINDIR=$try
+ done
+ for try in /usr/share/xscreensaver/config /usr/share/control-center/screensavers/; do
+ test -d $try && CONFDIR=$try
+ done
+ for try in /usr/lib/X11/app-defaults/XScreenSaver /etc/X11/app-defaults/XScreenSaver; do
+ test -f $try && RCFILE=$try
+ done
+
+ OPT_LIBS=""
+ OPT_OBJS="main.o canvas_base.o"
+ PROGRAM="fireflies"
+
+ AC_CHECK_LIB(GL, glXSwapBuffers,\
+ AC_DEFINE(HAVE_GLX)
+ OPT_OBJS="$OPT_OBJS canvas_glx.o",\
+ AC_CHECK_LIB(MesaGL, glXSwapBuffers,\
+ AC_DEFINE(HAVE_GLX)
+ OPT_OBJS="$OPT_OBJS canvas_glx.o"))
+
+ AC_CHECK_LIB(GL, glBegin, \
+ GL_LIBS="-lGL -lGLU", \
+ AC_CHECK_LIB(MesaGL, glBegin, \
+ [GL_LIBS="-lMesaGL -lMesaGLU"], \
+ AC_MSG_ERROR([cannot find GL libraries])))
+
+ ;;
+esac
+
+if test -n "$SDL_CONF"; then
+ AC_DEFINE(HAVE_SDL)
+ SDL_LIBS="\`sdl-config --libs\`"
+ SDL_CFLAGS="\`sdl-config --cflags\`"
+ OPT_OBJS="$OPT_OBJS canvas_sdl.o"
+fi
+
+AC_ARG_WITH(bindir, AC_HELP_STRING([--with-bindir],
+ [Where to put the binary (default=/usr/lib/xscreensaver)]),
+ BINDIR=$withval)
+AC_ARG_WITH(confdir, AC_HELP_STRING([--with-confdir],
+ [Where to put the xscreensaver config (default=/usr/share/xscreensaver/config)]),
+ CONFDIR=$withval)
+
+AC_SUBST(BINDIR)
+AC_SUBST(CONFDIR)
+AC_SUBST(RCFILE)
+AC_SUBST(OPT_LIBS)
+AC_SUBST(OPT_OBJS)
+AC_SUBST(PROGRAM)
+
+AC_SUBST(SDL_LIBS)
+AC_SUBST(SDL_CFLAGS)
+
+AC_SUBST(GL_LIBS)
+
+AC_OUTPUT(Make.include installit fireflies.spec)
+chmod +x installit
diff --git a/debian/fireflies/fireflies-2.08/debian/README.Debian b/debian/fireflies/fireflies-2.08/debian/README.Debian
new file mode 100644
index 00000000..67f20c05
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/README.Debian
@@ -0,0 +1,14 @@
+fireflies for Debian
+--------------------
+
+Fireflies Screensaver
+
+To use this saver with xscreensaver, add the following lines after the line
+that starts with "programs:" in ~/.xscreensaver.
+
+-- Cut Here --
+ GL: "Fireflies" fireflies --root \n\
+-- End Here --
+
+
+ -- Serge Koenigsmann <[email protected]>, Sun, 9 Mar 2003 13:27:18 +0100
diff --git a/debian/fireflies/fireflies-2.08/debian/TODO b/debian/fireflies/fireflies-2.08/debian/TODO
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/TODO
diff --git a/debian/fireflies/fireflies-2.08/debian/changelog b/debian/fireflies/fireflies-2.08/debian/changelog
new file mode 100644
index 00000000..ac1996aa
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/changelog
@@ -0,0 +1,63 @@
+fireflies (2.08-7debian11.0.0+5~a) bullseye; urgency=low
+
+ * Change debhelper compatibility level to 9
+
+ -- Slávek Banko <[email protected]> Tue, 07 Apr 2020 10:48:58 +0200
+
+fireflies (2.08-7ubuntu20.04.0+4~a) focal; urgency=low
+
+ * Change debhelper compatibility level to 7
+
+ -- Slávek Banko <[email protected]> Sat, 13 Aug 2016 18:53:28 +0200
+
+fireflies (2.08-7ubuntu16.10.0+3~a) yakkety; urgency=low
+
+ * libgfx
+ + fix build with png 1.5
+
+ -- Slávek Banko <[email protected]> Sat, 11 Jun 2016 18:09:29 +0200
+
+fireflies (2.08-7debian6.0.0+2) squeeze; urgency=low
+
+ * Changes pulled into a separate patches
+ * Cleaning in the packaging
+ * Switch to quilt format
+
+ -- Slávek Banko <[email protected]> Sun, 31 Dec 2013 03:06:09 +0100
+
+fireflies (2.08-6) lucid; urgency=low
+
+ * Fix FTBFS under modern compilers
+
+ -- Slávek Banko <[email protected]> Sat, 30 Mar 2013 15:43:23 +0100
+
+fireflies (2.08-5~natty) natty; urgency=low
+
+ * Fix FTBFS under modern compilers
+
+ -- Timothy Pearson <[email protected]> Tue, 16 Aug 2011 13:32:00 -0600
+
+fireflies (2.05-1) stable; urgency=low
+
+ * code cleanup
+
+ -- Matt Perry <[email protected]> Sat, 26 Apr 2003 12:40:00 +0100
+
+fireflies (2.04-1) stable; urgency=low
+
+ * fixed big bug
+
+ -- Matt Perry <[email protected]> Wed, 23 Apr 2003 19:20:00 +0100
+
+fireflies (2.03-1) stable; urgency=low
+
+ * put fireflies.xml where it belongs
+
+ -- Matt Perry <[email protected]> Wed, 16 Apr 2003 13:27:18 +0100
+
+fireflies (2.02-1) stable; urgency=low
+
+ * Initial Release.
+
+ -- Serge Koenigsmann <[email protected]> Sun, 9 Mar 2003 13:27:18 +0100
+
diff --git a/debian/fireflies/fireflies-2.08/debian/compat b/debian/fireflies/fireflies-2.08/debian/compat
new file mode 100644
index 00000000..ec635144
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/fireflies/fireflies-2.08/debian/control b/debian/fireflies/fireflies-2.08/debian/control
new file mode 100644
index 00000000..536421e4
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/control
@@ -0,0 +1,15 @@
+Source: fireflies
+Section: deps-r14/x11
+Priority: optional
+Maintainer: Timothy Pearson <[email protected]>
+Build-Depends: debhelper (>= 9~), cdbs, automake, autoconf, libglu-dev, libsdl1.2-dev, xscreensaver
+Standards-Version: 3.8.4
+
+Package: fireflies
+Section: deps-r14/x11
+Architecture: any
+Depends: ${shlibs:Depends}
+Description: Fireflies OpenGL screensaver, for xscreensaver or standalone
+ An OpenGL 3D screensaver for xscreensaver. A bunch of fireflies chase a few
+ baits around the screen, leaving colorful tails which get blown around by the
+ wind.
diff --git a/debian/fireflies/fireflies-2.08/debian/copyright b/debian/fireflies/fireflies-2.08/debian/copyright
new file mode 100644
index 00000000..ffc9e4eb
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/copyright
@@ -0,0 +1,10 @@
+This package was debianized by Serge Koenigsmann <[email protected]> on
+Sun, 9 Mar 2003 13:27:18 +0100.
+
+It was downloaded from http://somewhere.fscked.org/fireflies/
+
+Upstream Author(s): Matt Perry ([email protected])
+
+Copyright:
+
+GPL
diff --git a/debian/fireflies/fireflies-2.08/debian/dirs b/debian/fireflies/fireflies-2.08/debian/dirs
new file mode 100644
index 00000000..fd7d58f6
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/dirs
@@ -0,0 +1,3 @@
+usr/bin
+usr/sbin
+usr/lib/xscreensaver \ No newline at end of file
diff --git a/debian/fireflies/fireflies-2.08/debian/docs b/debian/fireflies/fireflies-2.08/debian/docs
new file mode 100644
index 00000000..724e0844
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/docs
@@ -0,0 +1,2 @@
+README
+TODO
diff --git a/debian/fireflies/fireflies-2.08/debian/fireflies.preinst b/debian/fireflies/fireflies-2.08/debian/fireflies.preinst
new file mode 100755
index 00000000..ed30c4af
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/fireflies.preinst
@@ -0,0 +1,51 @@
+#! /bin/sh
+# preinst script for fireflies
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <new-preinst> `install'
+# * <new-preinst> `install' <old-version>
+# * <new-preinst> `upgrade' <old-version>
+# * <old-preinst> `abort-upgrade' <new-version>
+#
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+case "$1" in
+ install|upgrade)
+# --- add-xscreensaver ---
+tmpfile=`mktemp /tmp/xrc.XXXXXX`
+for file in /usr/lib/X11/app-defaults/XScreenSaver /etc/X11/app-defaults/XScreenSaver; do
+ [ -f $file ] || continue
+ grep -q 'fireflies' $file && continue
+ cp $file $tmpfile
+ cat $tmpfile | sed '
+/programs:/ a\
+ GL: "Fireflies 3D" fireflies -root \\n\\
+' > $file
+done
+
+rm $tmpfile
+# --- end add-xscreensaver ---
+ ;;
+
+ abort-upgrade)
+ ;;
+
+ *)
+ echo "preinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/fireflies/fireflies-2.08/debian/patches/fix-configure.diff b/debian/fireflies/fireflies-2.08/debian/patches/fix-configure.diff
new file mode 100644
index 00000000..6f1b38b5
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/patches/fix-configure.diff
@@ -0,0 +1,4270 @@
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -54,25 +54,25 @@
+ PROGRAM="fireflies"
+
+ AC_CHECK_LIB(GL, glXSwapBuffers,\
+- AC_DEFINE(HAVE_GLX)
+- OPT_OBJS="$OPT_OBJS canvas_glx.o",\
+- AC_CHECK_LIB(MesaGL, glXSwapBuffers,\
+- AC_DEFINE(HAVE_GLX)
+- OPT_OBJS="$OPT_OBJS canvas_glx.o"))
++ [ AC_DEFINE(HAVE_GLX)
++ OPT_OBJS="$OPT_OBJS canvas_glx.o" ],\
++ [ AC_CHECK_LIB(MesaGL, glXSwapBuffers,\
++ [ AC_DEFINE(HAVE_GLX)
++ OPT_OBJS="$OPT_OBJS canvas_glx.o" ]) ])
+
+ AC_CHECK_LIB(GL, glBegin, \
+ GL_LIBS="-lGL -lGLU", \
+- AC_CHECK_LIB(MesaGL, glBegin, \
++ [ AC_CHECK_LIB(MesaGL, glBegin, \
+ [GL_LIBS="-lMesaGL -lMesaGLU"], \
+- AC_MSG_ERROR([cannot find GL libraries])))
++ AC_MSG_ERROR([cannot find GL libraries]))] )
+
+ ;;
+ esac
+
+ if test -n "$SDL_CONF"; then
+ AC_DEFINE(HAVE_SDL)
+- SDL_LIBS="\`sdl-config --libs\`"
+- SDL_CFLAGS="\`sdl-config --cflags\`"
++ SDL_LIBS="`sdl-config --libs`"
++ SDL_CFLAGS="`sdl-config --cflags`"
+ OPT_OBJS="$OPT_OBJS canvas_sdl.o"
+ fi
+
+Index: b/configure
+===================================================================
+--- a/configure
++++ /dev/null
+@@ -1,4226 +0,0 @@
+-#! /bin/sh
+-# Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.59 for fireflies 2.07.
+-#
+-# Report bugs to <[email protected]>.
+-#
+-# Copyright (C) 2003 Free Software Foundation, Inc.
+-# This configure script is free software; the Free Software Foundation
+-# gives unlimited permission to copy, distribute and modify it.
+-## --------------------- ##
+-## M4sh Initialization. ##
+-## --------------------- ##
+-
+-# Be Bourne compatible
+-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+- emulate sh
+- NULLCMD=:
+- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+- # is contrary to our usage. Disable this feature.
+- alias -g '${1+"$@"}'='"$@"'
+-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+- set -o posix
+-fi
+-DUALCASE=1; export DUALCASE # for MKS sh
+-
+-# Support unset when possible.
+-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+- as_unset=unset
+-else
+- as_unset=false
+-fi
+-
+-
+-# Work around bugs in pre-3.0 UWIN ksh.
+-$as_unset ENV MAIL MAILPATH
+-PS1='$ '
+-PS2='> '
+-PS4='+ '
+-
+-# NLS nuisances.
+-for as_var in \
+- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+- LC_TELEPHONE LC_TIME
+-do
+- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+- eval $as_var=C; export $as_var
+- else
+- $as_unset $as_var
+- fi
+-done
+-
+-# Required to use basename.
+-if expr a : '\(a\)' >/dev/null 2>&1; then
+- as_expr=expr
+-else
+- as_expr=false
+-fi
+-
+-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+- as_basename=basename
+-else
+- as_basename=false
+-fi
+-
+-
+-# Name of the executable.
+-as_me=`$as_basename "$0" ||
+-$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" >conf$$.sh
+- echo "exit 0" >>conf$$.sh
+- chmod +x conf$$.sh
+- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+- PATH_SEPARATOR=';'
+- else
+- PATH_SEPARATOR=:
+- fi
+- rm -f conf$$.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
+- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+- 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
+-else
+- as_expr=false
+-fi
+-
+-rm -f conf$$ conf$$.exe conf$$.file
+-echo >conf$$.file
+-if ln -s conf$$.file conf$$ 2>/dev/null; then
+- # We could just check for DJGPP; but this test a) works b) is more generic
+- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+- if test -f conf$$.exe; then
+- # Don't use ln at all; we don't have any links
+- as_ln_s='cp -p'
+- else
+- as_ln_s='ln -s'
+- fi
+-elif ln conf$$.file conf$$ 2>/dev/null; then
+- as_ln_s=ln
+-else
+- as_ln_s='cp -p'
+-fi
+-rm -f conf$$ conf$$.exe conf$$.file
+-
+-if mkdir -p . 2>/dev/null; then
+- as_mkdir_p=:
+-else
+- test -d ./-p && rmdir ./-p
+- as_mkdir_p=false
+-fi
+-
+-as_executable_p="test -f"
+-
+-# Sed expression to map a string onto a valid CPP name.
+-as_tr_cpp="eval 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="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+-
+-
+-# IFS
+-# We need space, tab and new line, in precisely that order.
+-as_nl='
+-'
+-IFS=" $as_nl"
+-
+-# CDPATH.
+-$as_unset CDPATH
+-
+-
+-# Name of the host.
+-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+-# so uname gets run too.
+-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+-
+-exec 6>&1
+-
+-#
+-# Initializations.
+-#
+-ac_default_prefix=/usr/local
+-ac_config_libobj_dir=.
+-cross_compiling=no
+-subdirs=
+-MFLAGS=
+-MAKEFLAGS=
+-SHELL=${CONFIG_SHELL-/bin/sh}
+-
+-# Maximum number of lines to put in a shell here document.
+-# This variable seems obsolete. It should probably be removed, and
+-# only ac_max_sed_lines should be used.
+-: ${ac_max_here_lines=38}
+-
+-# Identity of this package.
+-PACKAGE_NAME='fireflies'
+-PACKAGE_TARNAME='fireflies'
+-PACKAGE_VERSION='2.07'
+-PACKAGE_STRING='fireflies 2.07'
+-PACKAGE_BUGREPORT='[email protected]'
+-
+-ac_unique_file="src/arrow.cc"
+-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT CC CFLAGS ac_ct_CC INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SDL_CONF BINDIR CONFDIR RCFILE OPT_LIBS OPT_OBJS PROGRAM SDL_LIBS SDL_CFLAGS GL_LIBS LIBOBJS LTLIBOBJS'
+-ac_subst_files=''
+-
+-# Initialize some variables set by options.
+-ac_init_help=
+-ac_init_version=false
+-# The variables have the same names as the options, with
+-# dashes changed to underlines.
+-cache_file=/dev/null
+-exec_prefix=NONE
+-no_create=
+-no_recursion=
+-prefix=NONE
+-program_prefix=NONE
+-program_suffix=NONE
+-program_transform_name=s,x,x,
+-silent=
+-site=
+-srcdir=
+-verbose=
+-x_includes=NONE
+-x_libraries=NONE
+-
+-# Installation directory options.
+-# These are left unexpanded so users can "make install exec_prefix=/foo"
+-# and all the variables that are supposed to be based on exec_prefix
+-# by default will actually change.
+-# Use braces instead of parens because sh, perl, etc. also accept them.
+-bindir='${exec_prefix}/bin'
+-sbindir='${exec_prefix}/sbin'
+-libexecdir='${exec_prefix}/libexec'
+-datadir='${prefix}/share'
+-sysconfdir='${prefix}/etc'
+-sharedstatedir='${prefix}/com'
+-localstatedir='${prefix}/var'
+-libdir='${exec_prefix}/lib'
+-includedir='${prefix}/include'
+-oldincludedir='/usr/include'
+-infodir='${prefix}/info'
+-mandir='${prefix}/man'
+-
+-ac_prev=
+-for ac_option
+-do
+- # If the previous option needs an argument, assign it.
+- if test -n "$ac_prev"; then
+- eval "$ac_prev=\$ac_option"
+- ac_prev=
+- continue
+- fi
+-
+- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+-
+- # Accept the important Cygnus configure options, so we can diagnose typos.
+-
+- case $ac_option in
+-
+- -bindir | --bindir | --bindi | --bind | --bin | --bi)
+- ac_prev=bindir ;;
+- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+- bindir=$ac_optarg ;;
+-
+- -build | --build | --buil | --bui | --bu)
+- ac_prev=build_alias ;;
+- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+- build_alias=$ac_optarg ;;
+-
+- -cache-file | --cache-file | --cache-fil | --cache-fi \
+- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+- ac_prev=cache_file ;;
+- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+- cache_file=$ac_optarg ;;
+-
+- --config-cache | -C)
+- cache_file=config.cache ;;
+-
+- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+- ac_prev=datadir ;;
+- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+- | --da=*)
+- datadir=$ac_optarg ;;
+-
+- -disable-* | --disable-*)
+- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+- # Reject names that are not valid shell variable names.
+- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+- { (exit 1); exit 1; }; }
+- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+- eval "enable_$ac_feature=no" ;;
+-
+- -enable-* | --enable-*)
+- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+- # Reject names that are not valid shell variable names.
+- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+- { (exit 1); exit 1; }; }
+- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+- case $ac_option in
+- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+- *) ac_optarg=yes ;;
+- esac
+- eval "enable_$ac_feature='$ac_optarg'" ;;
+-
+- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+- | --exec | --exe | --ex)
+- ac_prev=exec_prefix ;;
+- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+- | --exec=* | --exe=* | --ex=*)
+- exec_prefix=$ac_optarg ;;
+-
+- -gas | --gas | --ga | --g)
+- # Obsolete; use --with-gas.
+- with_gas=yes ;;
+-
+- -help | --help | --hel | --he | -h)
+- ac_init_help=long ;;
+- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+- ac_init_help=recursive ;;
+- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+- ac_init_help=short ;;
+-
+- -host | --host | --hos | --ho)
+- ac_prev=host_alias ;;
+- -host=* | --host=* | --hos=* | --ho=*)
+- host_alias=$ac_optarg ;;
+-
+- -includedir | --includedir | --includedi | --included | --include \
+- | --includ | --inclu | --incl | --inc)
+- ac_prev=includedir ;;
+- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+- | --includ=* | --inclu=* | --incl=* | --inc=*)
+- includedir=$ac_optarg ;;
+-
+- -infodir | --infodir | --infodi | --infod | --info | --inf)
+- ac_prev=infodir ;;
+- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+- infodir=$ac_optarg ;;
+-
+- -libdir | --libdir | --libdi | --libd)
+- ac_prev=libdir ;;
+- -libdir=* | --libdir=* | --libdi=* | --libd=*)
+- libdir=$ac_optarg ;;
+-
+- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+- | --libexe | --libex | --libe)
+- ac_prev=libexecdir ;;
+- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+- | --libexe=* | --libex=* | --libe=*)
+- libexecdir=$ac_optarg ;;
+-
+- -localstatedir | --localstatedir | --localstatedi | --localstated \
+- | --localstate | --localstat | --localsta | --localst \
+- | --locals | --local | --loca | --loc | --lo)
+- ac_prev=localstatedir ;;
+- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+- localstatedir=$ac_optarg ;;
+-
+- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+- ac_prev=mandir ;;
+- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+- mandir=$ac_optarg ;;
+-
+- -nfp | --nfp | --nf)
+- # Obsolete; use --without-fp.
+- with_fp=no ;;
+-
+- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+- | --no-cr | --no-c | -n)
+- no_create=yes ;;
+-
+- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+- no_recursion=yes ;;
+-
+- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+- | --oldin | --oldi | --old | --ol | --o)
+- ac_prev=oldincludedir ;;
+- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+- oldincludedir=$ac_optarg ;;
+-
+- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+- ac_prev=prefix ;;
+- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+- prefix=$ac_optarg ;;
+-
+- -program-prefix | --program-prefix | --program-prefi | --program-pref \
+- | --program-pre | --program-pr | --program-p)
+- ac_prev=program_prefix ;;
+- -program-prefix=* | --program-prefix=* | --program-prefi=* \
+- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+- program_prefix=$ac_optarg ;;
+-
+- -program-suffix | --program-suffix | --program-suffi | --program-suff \
+- | --program-suf | --program-su | --program-s)
+- ac_prev=program_suffix ;;
+- -program-suffix=* | --program-suffix=* | --program-suffi=* \
+- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+- program_suffix=$ac_optarg ;;
+-
+- -program-transform-name | --program-transform-name \
+- | --program-transform-nam | --program-transform-na \
+- | --program-transform-n | --program-transform- \
+- | --program-transform | --program-transfor \
+- | --program-transfo | --program-transf \
+- | --program-trans | --program-tran \
+- | --progr-tra | --program-tr | --program-t)
+- ac_prev=program_transform_name ;;
+- -program-transform-name=* | --program-transform-name=* \
+- | --program-transform-nam=* | --program-transform-na=* \
+- | --program-transform-n=* | --program-transform-=* \
+- | --program-transform=* | --program-transfor=* \
+- | --program-transfo=* | --program-transf=* \
+- | --program-trans=* | --program-tran=* \
+- | --progr-tra=* | --program-tr=* | --program-t=*)
+- program_transform_name=$ac_optarg ;;
+-
+- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+- | -silent | --silent | --silen | --sile | --sil)
+- silent=yes ;;
+-
+- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+- ac_prev=sbindir ;;
+- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+- | --sbi=* | --sb=*)
+- sbindir=$ac_optarg ;;
+-
+- -sharedstatedir | --sharedstatedir | --sharedstatedi \
+- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+- | --sharedst | --shareds | --shared | --share | --shar \
+- | --sha | --sh)
+- ac_prev=sharedstatedir ;;
+- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+- | --sha=* | --sh=*)
+- sharedstatedir=$ac_optarg ;;
+-
+- -site | --site | --sit)
+- ac_prev=site ;;
+- -site=* | --site=* | --sit=*)
+- site=$ac_optarg ;;
+-
+- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+- ac_prev=srcdir ;;
+- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+- srcdir=$ac_optarg ;;
+-
+- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+- | --syscon | --sysco | --sysc | --sys | --sy)
+- ac_prev=sysconfdir ;;
+- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+- sysconfdir=$ac_optarg ;;
+-
+- -target | --target | --targe | --targ | --tar | --ta | --t)
+- ac_prev=target_alias ;;
+- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+- target_alias=$ac_optarg ;;
+-
+- -v | -verbose | --verbose | --verbos | --verbo | --verb)
+- verbose=yes ;;
+-
+- -version | --version | --versio | --versi | --vers | -V)
+- ac_init_version=: ;;
+-
+- -with-* | --with-*)
+- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+- # Reject names that are not valid shell variable names.
+- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+- { echo "$as_me: error: invalid package name: $ac_package" >&2
+- { (exit 1); exit 1; }; }
+- ac_package=`echo $ac_package| sed 's/-/_/g'`
+- case $ac_option in
+- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+- *) ac_optarg=yes ;;
+- esac
+- eval "with_$ac_package='$ac_optarg'" ;;
+-
+- -without-* | --without-*)
+- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+- # Reject names that are not valid shell variable names.
+- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+- { echo "$as_me: error: invalid package name: $ac_package" >&2
+- { (exit 1); exit 1; }; }
+- ac_package=`echo $ac_package | sed 's/-/_/g'`
+- eval "with_$ac_package=no" ;;
+-
+- --x)
+- # Obsolete; use --with-x.
+- with_x=yes ;;
+-
+- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+- | --x-incl | --x-inc | --x-in | --x-i)
+- ac_prev=x_includes ;;
+- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+- x_includes=$ac_optarg ;;
+-
+- -x-libraries | --x-libraries | --x-librarie | --x-librari \
+- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+- ac_prev=x_libraries ;;
+- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+- x_libraries=$ac_optarg ;;
+-
+- -*) { echo "$as_me: error: unrecognized option: $ac_option
+-Try \`$0 --help' for more information." >&2
+- { (exit 1); exit 1; }; }
+- ;;
+-
+- *=*)
+- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+- # Reject names that are not valid shell variable names.
+- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+- { (exit 1); exit 1; }; }
+- ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+- eval "$ac_envvar='$ac_optarg'"
+- export $ac_envvar ;;
+-
+- *)
+- # FIXME: should be removed in autoconf 3.0.
+- echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+- echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+- ;;
+-
+- esac
+-done
+-
+-if test -n "$ac_prev"; then
+- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+- { echo "$as_me: error: missing argument to $ac_option" >&2
+- { (exit 1); exit 1; }; }
+-fi
+-
+-# Be sure to have absolute paths.
+-for ac_var in exec_prefix prefix
+-do
+- eval ac_val=$`echo $ac_var`
+- case $ac_val in
+- [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+- { (exit 1); exit 1; }; };;
+- esac
+-done
+-
+-# Be sure to have absolute paths.
+-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+- localstatedir libdir includedir oldincludedir infodir mandir
+-do
+- eval ac_val=$`echo $ac_var`
+- case $ac_val in
+- [\\/$]* | ?:[\\/]* ) ;;
+- *) { 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: To remove some day.
+-if test "x$host_alias" != x; then
+- if test "x$build_alias" = x; then
+- cross_compiling=maybe
+- echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+- If a cross compiler is detected then cross compile mode will be used." >&2
+- elif test "x$build_alias" != "x$host_alias"; then
+- cross_compiling=yes
+- fi
+-fi
+-
+-ac_tool_prefix=
+-test -n "$host_alias" && ac_tool_prefix=$host_alias-
+-
+-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_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=..
+- fi
+-else
+- ac_srcdir_defaulted=no
+-fi
+-if test ! -r $srcdir/$ac_unique_file; then
+- if test "$ac_srcdir_defaulted" = yes; then
+- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+- { (exit 1); exit 1; }; }
+- else
+- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+- { (exit 1); exit 1; }; }
+- fi
+-fi
+-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+- { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+- { (exit 1); exit 1; }; }
+-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+-ac_env_build_alias_set=${build_alias+set}
+-ac_env_build_alias_value=$build_alias
+-ac_cv_env_build_alias_set=${build_alias+set}
+-ac_cv_env_build_alias_value=$build_alias
+-ac_env_host_alias_set=${host_alias+set}
+-ac_env_host_alias_value=$host_alias
+-ac_cv_env_host_alias_set=${host_alias+set}
+-ac_cv_env_host_alias_value=$host_alias
+-ac_env_target_alias_set=${target_alias+set}
+-ac_env_target_alias_value=$target_alias
+-ac_cv_env_target_alias_set=${target_alias+set}
+-ac_cv_env_target_alias_value=$target_alias
+-ac_env_CXX_set=${CXX+set}
+-ac_env_CXX_value=$CXX
+-ac_cv_env_CXX_set=${CXX+set}
+-ac_cv_env_CXX_value=$CXX
+-ac_env_CXXFLAGS_set=${CXXFLAGS+set}
+-ac_env_CXXFLAGS_value=$CXXFLAGS
+-ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set}
+-ac_cv_env_CXXFLAGS_value=$CXXFLAGS
+-ac_env_LDFLAGS_set=${LDFLAGS+set}
+-ac_env_LDFLAGS_value=$LDFLAGS
+-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+-ac_cv_env_LDFLAGS_value=$LDFLAGS
+-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+-ac_env_CPPFLAGS_value=$CPPFLAGS
+-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+-ac_env_CC_set=${CC+set}
+-ac_env_CC_value=$CC
+-ac_cv_env_CC_set=${CC+set}
+-ac_cv_env_CC_value=$CC
+-ac_env_CFLAGS_set=${CFLAGS+set}
+-ac_env_CFLAGS_value=$CFLAGS
+-ac_cv_env_CFLAGS_set=${CFLAGS+set}
+-ac_cv_env_CFLAGS_value=$CFLAGS
+-
+-#
+-# Report the --help message.
+-#
+-if test "$ac_init_help" = "long"; then
+- # Omit some internal or obsolete options to make the list less imposing.
+- # This message is too long to be a string in the A/UX 3.1 sh.
+- cat <<_ACEOF
+-\`configure' configures fireflies 2.07 to adapt to many kinds of systems.
+-
+-Usage: $0 [OPTION]... [VAR=VALUE]...
+-
+-To assign environment variables (e.g., CC, CFLAGS...), specify them as
+-VAR=VALUE. See below for descriptions of some of the useful variables.
+-
+-Defaults for the options are specified in brackets.
+-
+-Configuration:
+- -h, --help display this help and exit
+- --help=short display options specific to this package
+- --help=recursive display the short help of all the included packages
+- -V, --version display version information and exit
+- -q, --quiet, --silent do not print \`checking...' messages
+- --cache-file=FILE cache test results in FILE [disabled]
+- -C, --config-cache alias for \`--cache-file=config.cache'
+- -n, --no-create do not create output files
+- --srcdir=DIR find the sources in DIR [configure dir or \`..']
+-
+-_ACEOF
+-
+- cat <<_ACEOF
+-Installation directories:
+- --prefix=PREFIX install architecture-independent files in PREFIX
+- [$ac_default_prefix]
+- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+- [PREFIX]
+-
+-By default, \`make install' will install all the files in
+-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+-for instance \`--prefix=\$HOME'.
+-
+-For better control, use the options below.
+-
+-Fine tuning of the installation directories:
+- --bindir=DIR user executables [EPREFIX/bin]
+- --sbindir=DIR system admin executables [EPREFIX/sbin]
+- --libexecdir=DIR program executables [EPREFIX/libexec]
+- --datadir=DIR read-only architecture-independent data [PREFIX/share]
+- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+- --libdir=DIR object code libraries [EPREFIX/lib]
+- --includedir=DIR C header files [PREFIX/include]
+- --oldincludedir=DIR C header files for non-gcc [/usr/include]
+- --infodir=DIR info documentation [PREFIX/info]
+- --mandir=DIR man documentation [PREFIX/man]
+-_ACEOF
+-
+- cat <<\_ACEOF
+-_ACEOF
+-fi
+-
+-if test -n "$ac_init_help"; then
+- case $ac_init_help in
+- short | recursive ) echo "Configuration of fireflies 2.07:";;
+- esac
+- cat <<\_ACEOF
+-
+-Optional Features:
+- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+- --enable-screensaver Compile as a Windows screensaver (default=yes)
+-
+-Optional Packages:
+- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+- --with-bindir Where to put the binary
+- (default=/usr/lib/xscreensaver)
+- --with-confdir Where to put the xscreensaver config
+- (default=/usr/share/xscreensaver/config)
+-
+-Some influential environment variables:
+- CXX C++ compiler command
+- CXXFLAGS C++ compiler flags
+- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+- nonstandard directory <lib dir>
+- CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
+- headers in a nonstandard directory <include dir>
+- CC C compiler command
+- CFLAGS C compiler flags
+-
+-Use these variables to override the choices made by `configure' or to help
+-it to find libraries and programs with nonstandard names/locations.
+-
+-Report bugs to <[email protected]>.
+-_ACEOF
+-fi
+-
+-if test "$ac_init_help" = "recursive"; then
+- # If there are subdirs, report their specific --help.
+- ac_popdir=`pwd`
+- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+- test -d $ac_dir || continue
+- ac_builddir=.
+-
+-if test "$ac_dir" != .; then
+- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+- # A "../" for each directory in $ac_dir_suffix.
+- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+-else
+- ac_dir_suffix= ac_top_builddir=
+-fi
+-
+-case $srcdir in
+- .) # No --srcdir option. We are building in place.
+- ac_srcdir=.
+- if test -z "$ac_top_builddir"; then
+- ac_top_srcdir=.
+- else
+- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+- fi ;;
+- [\\/]* | ?:[\\/]* ) # Absolute path.
+- ac_srcdir=$srcdir$ac_dir_suffix;
+- ac_top_srcdir=$srcdir ;;
+- *) # Relative path.
+- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+- ac_top_srcdir=$ac_top_builddir$srcdir ;;
+-esac
+-
+-# Do not use `cd foo && pwd` to compute absolute paths, because
+-# the directories may not exist.
+-case `pwd` in
+-.) ac_abs_builddir="$ac_dir";;
+-*)
+- case "$ac_dir" in
+- .) ac_abs_builddir=`pwd`;;
+- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+- *) ac_abs_builddir=`pwd`/"$ac_dir";;
+- esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_builddir=${ac_top_builddir}.;;
+-*)
+- case ${ac_top_builddir}. in
+- .) ac_abs_top_builddir=$ac_abs_builddir;;
+- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+- esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_srcdir=$ac_srcdir;;
+-*)
+- case $ac_srcdir in
+- .) ac_abs_srcdir=$ac_abs_builddir;;
+- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+- esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_srcdir=$ac_top_srcdir;;
+-*)
+- case $ac_top_srcdir in
+- .) ac_abs_top_srcdir=$ac_abs_builddir;;
+- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+- esac;;
+-esac
+-
+- cd $ac_dir
+- # Check for guested configure; otherwise get Cygnus style configure.
+- if test -f $ac_srcdir/configure.gnu; then
+- echo
+- $SHELL $ac_srcdir/configure.gnu --help=recursive
+- elif test -f $ac_srcdir/configure; then
+- echo
+- $SHELL $ac_srcdir/configure --help=recursive
+- elif test -f $ac_srcdir/configure.ac ||
+- test -f $ac_srcdir/configure.in; then
+- echo
+- $ac_configure --help
+- else
+- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+- fi
+- cd $ac_popdir
+- done
+-fi
+-
+-test -n "$ac_init_help" && exit 0
+-if $ac_init_version; then
+- cat <<\_ACEOF
+-fireflies configure 2.07
+-generated by GNU Autoconf 2.59
+-
+-Copyright (C) 2003 Free Software Foundation, Inc.
+-This configure script is free software; the Free Software Foundation
+-gives unlimited permission to copy, distribute and modify it.
+-_ACEOF
+- exit 0
+-fi
+-exec 5>config.log
+-cat >&5 <<_ACEOF
+-This file contains any messages produced by compilers while
+-running configure, to aid debugging if configure makes a mistake.
+-
+-It was created by fireflies $as_me 2.07, which was
+-generated by GNU Autoconf 2.59. Invocation command line was
+-
+- $ $0 $@
+-
+-_ACEOF
+-{
+-cat <<_ASUNAME
+-## --------- ##
+-## Platform. ##
+-## --------- ##
+-
+-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+-uname -m = `(uname -m) 2>/dev/null || echo unknown`
+-uname -r = `(uname -r) 2>/dev/null || echo unknown`
+-uname -s = `(uname -s) 2>/dev/null || echo unknown`
+-uname -v = `(uname -v) 2>/dev/null || echo unknown`
+-
+-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+-
+-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+-hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
+-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+-
+-_ASUNAME
+-
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+- IFS=$as_save_IFS
+- test -z "$as_dir" && as_dir=.
+- echo "PATH: $as_dir"
+-done
+-
+-} >&5
+-
+-cat >&5 <<_ACEOF
+-
+-
+-## ----------- ##
+-## Core tests. ##
+-## ----------- ##
+-
+-_ACEOF
+-
+-
+-# Keep a trace of the command line.
+-# Strip out --no-create and --no-recursion so they do not pile up.
+-# Strip out --silent because we don't want to record it for future runs.
+-# Also quote any args containing shell meta-characters.
+-# Make two passes to allow for proper duplicate-argument suppression.
+-ac_configure_args=
+-ac_configure_args0=
+-ac_configure_args1=
+-ac_sep=
+-ac_must_keep_next=false
+-for ac_pass in 1 2
+-do
+- for ac_arg
+- do
+- case $ac_arg in
+- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+- | -silent | --silent | --silen | --sile | --sil)
+- continue ;;
+- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+- esac
+- case $ac_pass in
+- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+- 2)
+- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+- if test $ac_must_keep_next = true; then
+- ac_must_keep_next=false # Got value, back to normal.
+- else
+- case $ac_arg in
+- *=* | --config-cache | -C | -disable-* | --disable-* \
+- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+- | -with-* | --with-* | -without-* | --without-* | --x)
+- case "$ac_configure_args0 " in
+- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+- esac
+- ;;
+- -* ) ac_must_keep_next=true ;;
+- esac
+- fi
+- ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+- # Get rid of the leading space.
+- ac_sep=" "
+- ;;
+- esac
+- done
+-done
+-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+-
+-# When interrupted or exit'd, cleanup temporary files, and complete
+-# config.log. We remove comments because anyway the quotes in there
+-# would cause problems or look ugly.
+-# WARNING: Be sure not to use single quotes in there, as some shells,
+-# such as our DU 5.0 friend, will then `close' the trap.
+-trap 'exit_status=$?
+- # Save into config.log some information that might help in debugging.
+- {
+- echo
+-
+- cat <<\_ASBOX
+-## ---------------- ##
+-## Cache variables. ##
+-## ---------------- ##
+-_ASBOX
+- echo
+- # The following way of writing the cache mishandles newlines in values,
+-{
+- (set) 2>&1 |
+- case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+- *ac_space=\ *)
+- sed -n \
+- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+- ;;
+- *)
+- sed -n \
+- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+- ;;
+- esac;
+-}
+- echo
+-
+- cat <<\_ASBOX
+-## ----------------- ##
+-## Output variables. ##
+-## ----------------- ##
+-_ASBOX
+- echo
+- for ac_var in $ac_subst_vars
+- do
+- eval ac_val=$`echo $ac_var`
+- echo "$ac_var='"'"'$ac_val'"'"'"
+- done | sort
+- echo
+-
+- if test -n "$ac_subst_files"; then
+- cat <<\_ASBOX
+-## ------------- ##
+-## Output files. ##
+-## ------------- ##
+-_ASBOX
+- echo
+- for ac_var in $ac_subst_files
+- do
+- eval ac_val=$`echo $ac_var`
+- echo "$ac_var='"'"'$ac_val'"'"'"
+- done | sort
+- echo
+- fi
+-
+- if test -s confdefs.h; then
+- cat <<\_ASBOX
+-## ----------- ##
+-## confdefs.h. ##
+-## ----------- ##
+-_ASBOX
+- echo
+- sed "/^$/d" confdefs.h | sort
+- echo
+- fi
+- test "$ac_signal" != 0 &&
+- echo "$as_me: caught signal $ac_signal"
+- echo "$as_me: exit $exit_status"
+- } >&5
+- rm -f core *.core &&
+- rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+- exit $exit_status
+- ' 0
+-for ac_signal in 1 2 13 15; do
+- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+-done
+-ac_signal=0
+-
+-# confdefs.h avoids OS command line length limits that DEFS can exceed.
+-rm -rf conftest* confdefs.h
+-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+-echo >confdefs.h
+-
+-# Predefined preprocessor variables.
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_NAME "$PACKAGE_NAME"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_VERSION "$PACKAGE_VERSION"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_STRING "$PACKAGE_STRING"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+-_ACEOF
+-
+-
+-# Let the site file select an alternate cache file if it wants to.
+-# Prefer explicitly selected file to automatically selected ones.
+-if test -z "$CONFIG_SITE"; then
+- if test "x$prefix" != xNONE; then
+- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+- else
+- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+- fi
+-fi
+-for ac_site_file in $CONFIG_SITE; do
+- if test -r "$ac_site_file"; then
+- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+-echo "$as_me: loading site script $ac_site_file" >&6;}
+- sed 's/^/| /' "$ac_site_file" >&5
+- . "$ac_site_file"
+- fi
+-done
+-
+-if test -r "$cache_file"; then
+- # Some versions of bash will fail to source /dev/null (special
+- # files actually), so we avoid doing that.
+- if test -f "$cache_file"; then
+- { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+-echo "$as_me: loading cache $cache_file" >&6;}
+- case $cache_file in
+- [\\/]* | ?:[\\/]* ) . $cache_file;;
+- *) . ./$cache_file;;
+- esac
+- fi
+-else
+- { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+-echo "$as_me: creating cache $cache_file" >&6;}
+- >$cache_file
+-fi
+-
+-# Check that the precious variables saved in the cache have kept the same
+-# value.
+-ac_cache_corrupted=false
+-for ac_var in `(set) 2>&1 |
+- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+- eval ac_old_set=\$ac_cv_env_${ac_var}_set
+- eval ac_new_set=\$ac_env_${ac_var}_set
+- eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+- eval ac_new_val="\$ac_env_${ac_var}_value"
+- case $ac_old_set,$ac_new_set in
+- set,)
+- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+- ac_cache_corrupted=: ;;
+- ,set)
+- { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+- ac_cache_corrupted=: ;;
+- ,);;
+- *)
+- if test "x$ac_old_val" != "x$ac_new_val"; then
+- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
+-echo "$as_me: former value: $ac_old_val" >&2;}
+- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
+-echo "$as_me: current value: $ac_new_val" >&2;}
+- ac_cache_corrupted=:
+- fi;;
+- esac
+- # Pass precious variables to config.status.
+- if test "$ac_new_set" = set; then
+- case $ac_new_val in
+- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+- *) ac_arg=$ac_var=$ac_new_val ;;
+- esac
+- case " $ac_configure_args " in
+- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+- esac
+- fi
+-done
+-if $ac_cache_corrupted; then
+- { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+- { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+- { (exit 1); exit 1; }; }
+-fi
+-
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+- ac_config_headers="$ac_config_headers config.h"
+-
+-
+-sys=`uname`
+-
+-# Checks for programs.
+-ac_ext=cc
+-ac_cpp='$CXXCPP $CPPFLAGS'
+-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+-if test -n "$ac_tool_prefix"; then
+- for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+- do
+- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CXX+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$CXX"; then
+- ac_cv_prog_CXX="$CXX" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+- IFS=$as_save_IFS
+- test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+- break 2
+- fi
+-done
+-done
+-
+-fi
+-fi
+-CXX=$ac_cv_prog_CXX
+-if test -n "$CXX"; then
+- echo "$as_me:$LINENO: result: $CXX" >&5
+-echo "${ECHO_T}$CXX" >&6
+-else
+- echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+- test -n "$CXX" && break
+- done
+-fi
+-if test -z "$CXX"; then
+- ac_ct_CXX=$CXX
+- for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+-do
+- # Extract the first word of "$ac_prog", so it can be a program name with args.
+-set dummy $ac_prog; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$ac_ct_CXX"; then
+- ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+- IFS=$as_save_IFS
+- test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_ac_ct_CXX="$ac_prog"
+- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+- break 2
+- fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+-if test -n "$ac_ct_CXX"; then
+- echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+-echo "${ECHO_T}$ac_ct_CXX" >&6
+-else
+- echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+- test -n "$ac_ct_CXX" && break
+-done
+-test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
+-
+- CXX=$ac_ct_CXX
+-fi
+-
+-
+-# Provide some information about the compiler.
+-echo "$as_me:$LINENO:" \
+- "checking for C++ compiler version" >&5
+-ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+- (eval $ac_compiler --version </dev/null >&5) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }
+-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+- (eval $ac_compiler -v </dev/null >&5) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }
+-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+- (eval $ac_compiler -V </dev/null >&5) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }
+-
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-
+-int
+-main ()
+-{
+-
+- ;
+- return 0;
+-}
+-_ACEOF
+-ac_clean_files_save=$ac_clean_files
+-ac_clean_files="$ac_clean_files a.out a.exe b.out"
+-# Try to create an executable without -o first, disregard a.out.
+-# It will help us diagnose broken compilers, and finding out an intuition
+-# of exeext.
+-echo "$as_me:$LINENO: checking for C++ compiler default output file name" >&5
+-echo $ECHO_N "checking for C++ compiler default output file name... $ECHO_C" >&6
+-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+- (eval $ac_link_default) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; then
+- # Find the output, starting from the most likely. This scheme is
+-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+-# resort.
+-
+-# Be careful to initialize this variable, since it used to be cached.
+-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+-ac_cv_exeext=
+-# b.out is created by i960 compilers.
+-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+-do
+- test -f "$ac_file" || continue
+- case $ac_file in
+- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+- ;;
+- conftest.$ac_ext )
+- # This is the source file.
+- ;;
+- [ab].out )
+- # We found the default executable, but exeext='' is most
+- # certainly right.
+- break;;
+- *.* )
+- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+- # FIXME: I believe we export ac_cv_exeext for Libtool,
+- # but it would be cool to find out if it's true. Does anybody
+- # maintain Libtool? --akim.
+- export ac_cv_exeext
+- break;;
+- * )
+- break;;
+- esac
+-done
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-{ { echo "$as_me:$LINENO: error: C++ compiler cannot create executables
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: C++ compiler cannot create executables
+-See \`config.log' for more details." >&2;}
+- { (exit 77); exit 77; }; }
+-fi
+-
+-ac_exeext=$ac_cv_exeext
+-echo "$as_me:$LINENO: result: $ac_file" >&5
+-echo "${ECHO_T}$ac_file" >&6
+-
+-# Check the compiler produces executables we can run. If not, either
+-# the compiler is broken, or we cross compile.
+-echo "$as_me:$LINENO: checking whether the C++ compiler works" >&5
+-echo $ECHO_N "checking whether the C++ compiler works... $ECHO_C" >&6
+-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+-# If not cross compiling, check that we can run a simple program.
+-if test "$cross_compiling" != yes; then
+- if { ac_try='./$ac_file'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- cross_compiling=no
+- else
+- if test "$cross_compiling" = maybe; then
+- cross_compiling=yes
+- else
+- { { echo "$as_me:$LINENO: error: cannot run C++ compiled programs.
+-If you meant to cross compile, use \`--host'.
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: cannot run C++ compiled programs.
+-If you meant to cross compile, use \`--host'.
+-See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
+- fi
+- fi
+-fi
+-echo "$as_me:$LINENO: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+-
+-rm -f a.out a.exe conftest$ac_cv_exeext b.out
+-ac_clean_files=$ac_clean_files_save
+-# Check the compiler produces executables we can run. If not, either
+-# the compiler is broken, or we cross compile.
+-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+-echo "$as_me:$LINENO: result: $cross_compiling" >&5
+-echo "${ECHO_T}$cross_compiling" >&6
+-
+-echo "$as_me:$LINENO: checking for suffix of executables" >&5
+-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; then
+- # If both `conftest.exe' and `conftest' are `present' (well, observable)
+-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+-# work properly (i.e., refer to `conftest.exe'), while it won't with
+-# `rm'.
+-for ac_file in conftest.exe conftest conftest.*; do
+- test -f "$ac_file" || continue
+- case $ac_file in
+- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+- export ac_cv_exeext
+- break;;
+- * ) break;;
+- esac
+-done
+-else
+- { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+-See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
+-fi
+-
+-rm -f conftest$ac_cv_exeext
+-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+-echo "${ECHO_T}$ac_cv_exeext" >&6
+-
+-rm -f conftest.$ac_ext
+-EXEEXT=$ac_cv_exeext
+-ac_exeext=$EXEEXT
+-echo "$as_me:$LINENO: checking for suffix of object files" >&5
+-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+-if test "${ac_cv_objext+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-
+-int
+-main ()
+-{
+-
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.o conftest.obj
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; then
+- for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+- case $ac_file in
+- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+- break;;
+- esac
+-done
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: cannot compute suffix of object files: cannot compile
+-See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
+-fi
+-
+-rm -f conftest.$ac_cv_objext conftest.$ac_ext
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+-echo "${ECHO_T}$ac_cv_objext" >&6
+-OBJEXT=$ac_cv_objext
+-ac_objext=$OBJEXT
+-echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+-echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
+-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-
+-int
+-main ()
+-{
+-#ifndef __GNUC__
+- choke me
+-#endif
+-
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -z "$ac_cxx_werror_flag"
+- || test ! -s conftest.err'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_compiler_gnu=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_compiler_gnu=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+-
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+-echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
+-GXX=`test $ac_compiler_gnu = yes && echo yes`
+-ac_test_CXXFLAGS=${CXXFLAGS+set}
+-ac_save_CXXFLAGS=$CXXFLAGS
+-CXXFLAGS="-g"
+-echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+-echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
+-if test "${ac_cv_prog_cxx_g+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-
+-int
+-main ()
+-{
+-
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -z "$ac_cxx_werror_flag"
+- || test ! -s conftest.err'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_prog_cxx_g=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_prog_cxx_g=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+-echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
+-if test "$ac_test_CXXFLAGS" = set; then
+- CXXFLAGS=$ac_save_CXXFLAGS
+-elif test $ac_cv_prog_cxx_g = yes; then
+- if test "$GXX" = yes; then
+- CXXFLAGS="-g -O2"
+- else
+- CXXFLAGS="-g"
+- fi
+-else
+- if test "$GXX" = yes; then
+- CXXFLAGS="-O2"
+- else
+- CXXFLAGS=
+- fi
+-fi
+-for ac_declaration in \
+- '' \
+- 'extern "C" void std::exit (int) throw (); using std::exit;' \
+- 'extern "C" void std::exit (int); using std::exit;' \
+- 'extern "C" void exit (int) throw ();' \
+- 'extern "C" void exit (int);' \
+- 'void exit (int);'
+-do
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-$ac_declaration
+-#include <stdlib.h>
+-int
+-main ()
+-{
+-exit (42);
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -z "$ac_cxx_werror_flag"
+- || test ! -s conftest.err'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- :
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-continue
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-$ac_declaration
+-int
+-main ()
+-{
+-exit (42);
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -z "$ac_cxx_werror_flag"
+- || test ! -s conftest.err'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- break
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-done
+-rm -f conftest*
+-if test -n "$ac_declaration"; then
+- echo '#ifdef __cplusplus' >>confdefs.h
+- echo $ac_declaration >>confdefs.h
+- echo '#endif' >>confdefs.h
+-fi
+-
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-if test -n "$ac_tool_prefix"; then
+- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}gcc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$CC"; then
+- ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+- IFS=$as_save_IFS
+- test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_CC="${ac_tool_prefix}gcc"
+- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+- break 2
+- fi
+-done
+-done
+-
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+- echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+- echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_CC"; then
+- ac_ct_CC=$CC
+- # Extract the first word of "gcc", so it can be a program name with args.
+-set dummy gcc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$ac_ct_CC"; then
+- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+- IFS=$as_save_IFS
+- test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_ac_ct_CC="gcc"
+- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+- break 2
+- fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+- echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+- CC=$ac_ct_CC
+-else
+- CC="$ac_cv_prog_CC"
+-fi
+-
+-if test -z "$CC"; then
+- if test -n "$ac_tool_prefix"; then
+- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}cc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$CC"; then
+- ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+- IFS=$as_save_IFS
+- test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_CC="${ac_tool_prefix}cc"
+- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+- break 2
+- fi
+-done
+-done
+-
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+- echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+- echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_CC"; then
+- ac_ct_CC=$CC
+- # Extract the first word of "cc", so it can be a program name with args.
+-set dummy cc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$ac_ct_CC"; then
+- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+- IFS=$as_save_IFS
+- test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_ac_ct_CC="cc"
+- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+- break 2
+- fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+- echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+- CC=$ac_ct_CC
+-else
+- CC="$ac_cv_prog_CC"
+-fi
+-
+-fi
+-if test -z "$CC"; then
+- # Extract the first word of "cc", so it can be a program name with args.
+-set dummy cc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$CC"; then
+- ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+- ac_prog_rejected=no
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+- IFS=$as_save_IFS
+- test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+- ac_prog_rejected=yes
+- continue
+- fi
+- ac_cv_prog_CC="cc"
+- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+- break 2
+- fi
+-done
+-done
+-
+-if test $ac_prog_rejected = yes; then
+- # We found a bogon in the path, so make sure we never use it.
+- set dummy $ac_cv_prog_CC
+- shift
+- if test $# != 0; then
+- # We chose a different compiler from the bogus one.
+- # However, it has the same basename, so the bogon will be chosen
+- # first if we set CC to just the basename; use the full file name.
+- shift
+- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+- fi
+-fi
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+- echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+- echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$CC"; then
+- if test -n "$ac_tool_prefix"; then
+- for ac_prog in cl
+- do
+- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$CC"; then
+- ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+- IFS=$as_save_IFS
+- test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+- break 2
+- fi
+-done
+-done
+-
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+- echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+- echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+- test -n "$CC" && break
+- done
+-fi
+-if test -z "$CC"; then
+- ac_ct_CC=$CC
+- for ac_prog in cl
+-do
+- # Extract the first word of "$ac_prog", so it can be a program name with args.
+-set dummy $ac_prog; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$ac_ct_CC"; then
+- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+- IFS=$as_save_IFS
+- test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_ac_ct_CC="$ac_prog"
+- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+- break 2
+- fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+- echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+- test -n "$ac_ct_CC" && break
+-done
+-
+- CC=$ac_ct_CC
+-fi
+-
+-fi
+-
+-
+-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: no acceptable C compiler found in \$PATH
+-See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
+-
+-# Provide some information about the compiler.
+-echo "$as_me:$LINENO:" \
+- "checking for C compiler version" >&5
+-ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+- (eval $ac_compiler --version </dev/null >&5) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }
+-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+- (eval $ac_compiler -v </dev/null >&5) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }
+-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+- (eval $ac_compiler -V </dev/null >&5) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }
+-
+-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+-if test "${ac_cv_c_compiler_gnu+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-
+-int
+-main ()
+-{
+-#ifndef __GNUC__
+- choke me
+-#endif
+-
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -z "$ac_c_werror_flag"
+- || test ! -s conftest.err'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_compiler_gnu=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_compiler_gnu=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-ac_cv_c_compiler_gnu=$ac_compiler_gnu
+-
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+-GCC=`test $ac_compiler_gnu = yes && echo yes`
+-ac_test_CFLAGS=${CFLAGS+set}
+-ac_save_CFLAGS=$CFLAGS
+-CFLAGS="-g"
+-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+-if test "${ac_cv_prog_cc_g+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-
+-int
+-main ()
+-{
+-
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -z "$ac_c_werror_flag"
+- || test ! -s conftest.err'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_prog_cc_g=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_prog_cc_g=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+-if test "$ac_test_CFLAGS" = set; then
+- CFLAGS=$ac_save_CFLAGS
+-elif test $ac_cv_prog_cc_g = yes; then
+- if test "$GCC" = yes; then
+- CFLAGS="-g -O2"
+- else
+- CFLAGS="-g"
+- fi
+-else
+- if test "$GCC" = yes; then
+- CFLAGS="-O2"
+- else
+- CFLAGS=
+- fi
+-fi
+-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+-if test "${ac_cv_prog_cc_stdc+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_cv_prog_cc_stdc=no
+-ac_save_CC=$CC
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-#include <stdarg.h>
+-#include <stdio.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+-struct buf { int x; };
+-FILE * (*rcsopen) (struct buf *, struct stat *, int);
+-static char *e (p, i)
+- char **p;
+- int i;
+-{
+- return p[i];
+-}
+-static char *f (char * (*g) (char **, int), char **p, ...)
+-{
+- char *s;
+- va_list v;
+- va_start (v,p);
+- s = g (p, va_arg (v,int));
+- va_end (v);
+- return s;
+-}
+-
+-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+- function prototypes and stuff, but not '\xHH' hex character constants.
+- These don't provoke an error unfortunately, instead are silently treated
+- as 'x'. The following induces an error, until -std1 is added to get
+- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+- array size at least. It's necessary to write '\x00'==0 to get something
+- that's true only with -std1. */
+-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+-
+-int test (int i, double x);
+-struct s1 {int (*f) (int a);};
+-struct s2 {int (*f) (double a);};
+-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+-int argc;
+-char **argv;
+-int
+-main ()
+-{
+-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+- ;
+- return 0;
+-}
+-_ACEOF
+-# Don't try gcc -ansi; that turns off useful extensions and
+-# breaks some systems' header files.
+-# AIX -qlanglvl=ansi
+-# Ultrix and OSF/1 -std1
+-# HP-UX 10.20 and later -Ae
+-# HP-UX older versions -Aa -D_HPUX_SOURCE
+-# SVR4 -Xc -D__EXTENSIONS__
+-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+-do
+- CC="$ac_save_CC $ac_arg"
+- rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -z "$ac_c_werror_flag"
+- || test ! -s conftest.err'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_prog_cc_stdc=$ac_arg
+-break
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-fi
+-rm -f conftest.err conftest.$ac_objext
+-done
+-rm -f conftest.$ac_ext conftest.$ac_objext
+-CC=$ac_save_CC
+-
+-fi
+-
+-case "x$ac_cv_prog_cc_stdc" in
+- x|xno)
+- echo "$as_me:$LINENO: result: none needed" >&5
+-echo "${ECHO_T}none needed" >&6 ;;
+- *)
+- echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+- CC="$CC $ac_cv_prog_cc_stdc" ;;
+-esac
+-
+-# Some people use a C++ compiler to compile C. Since we use `exit',
+-# in C++ we need to declare it. In case someone uses the same compiler
+-# for both compiling C and C++ we need to have the C++ compiler decide
+-# the declaration of exit, since it's the most demanding environment.
+-cat >conftest.$ac_ext <<_ACEOF
+-#ifndef __cplusplus
+- choke me
+-#endif
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -z "$ac_c_werror_flag"
+- || test ! -s conftest.err'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- for ac_declaration in \
+- '' \
+- 'extern "C" void std::exit (int) throw (); using std::exit;' \
+- 'extern "C" void std::exit (int); using std::exit;' \
+- 'extern "C" void exit (int) throw ();' \
+- 'extern "C" void exit (int);' \
+- 'void exit (int);'
+-do
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-$ac_declaration
+-#include <stdlib.h>
+-int
+-main ()
+-{
+-exit (42);
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -z "$ac_c_werror_flag"
+- || test ! -s conftest.err'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- :
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-continue
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-$ac_declaration
+-int
+-main ()
+-{
+-exit (42);
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -z "$ac_c_werror_flag"
+- || test ! -s conftest.err'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- break
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-done
+-rm -f conftest*
+-if test -n "$ac_declaration"; then
+- echo '#ifdef __cplusplus' >>confdefs.h
+- echo $ac_declaration >>confdefs.h
+- echo '#endif' >>confdefs.h
+-fi
+-
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-
+-ac_aux_dir=
+-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+- if test -f $ac_dir/install-sh; then
+- ac_aux_dir=$ac_dir
+- ac_install_sh="$ac_aux_dir/install-sh -c"
+- break
+- elif test -f $ac_dir/install.sh; then
+- ac_aux_dir=$ac_dir
+- ac_install_sh="$ac_aux_dir/install.sh -c"
+- break
+- elif test -f $ac_dir/shtool; then
+- ac_aux_dir=$ac_dir
+- ac_install_sh="$ac_aux_dir/shtool install -c"
+- break
+- fi
+-done
+-if test -z "$ac_aux_dir"; then
+- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+- { (exit 1); exit 1; }; }
+-fi
+-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+-
+-# Find a good install program. We prefer a C program (faster),
+-# so one script is as good as another. But avoid the broken or
+-# incompatible versions:
+-# SysV /etc/install, /usr/sbin/install
+-# SunOS /usr/etc/install
+-# IRIX /sbin/install
+-# AIX /bin/install
+-# AmigaOS /C/install, which installs bootblocks on floppy discs
+-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+-# OS/2's system install, which has a completely different semantic
+-# ./install, which can be erroneously created by make from ./install.sh.
+-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+-if test -z "$INSTALL"; then
+-if test "${ac_cv_path_install+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+- IFS=$as_save_IFS
+- test -z "$as_dir" && as_dir=.
+- # Account for people who put trailing slashes in PATH elements.
+-case $as_dir/ in
+- ./ | .// | /cC/* | \
+- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+- /usr/ucb/* ) ;;
+- *)
+- # OSF1 and SCO ODT 3.0 have their own names for install.
+- # Don't use installbsd from OSF since it installs stuff as root
+- # by default.
+- for ac_prog in ginstall scoinst install; do
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+- if test $ac_prog = install &&
+- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+- # AIX install. It has an incompatible calling convention.
+- :
+- elif test $ac_prog = install &&
+- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+- # program-specific install script used by HP pwplus--don't use.
+- :
+- else
+- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+- break 3
+- fi
+- fi
+- done
+- done
+- ;;
+-esac
+-done
+-
+-
+-fi
+- if test "${ac_cv_path_install+set}" = set; then
+- INSTALL=$ac_cv_path_install
+- else
+- # As a last resort, use the slow shell script. We don't cache a
+- # path for INSTALL within a source directory, because that will
+- # break other packages using the cache if that directory is
+- # removed, or if the path is relative.
+- INSTALL=$ac_install_sh
+- fi
+-fi
+-echo "$as_me:$LINENO: result: $INSTALL" >&5
+-echo "${ECHO_T}$INSTALL" >&6
+-
+-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+-# It thinks the first close brace ends the variable substitution.
+-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+-
+-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+-
+-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+-
+-
+-# Check whether --enable-screensaver or --disable-screensaver was given.
+-if test "${enable_screensaver+set}" = set; then
+- enableval="$enable_screensaver"
+-
+-fi;
+-
+-# Checks for SDL (optional)
+-# Extract the first word of "sdl-config", so it can be a program name with args.
+-set dummy sdl-config; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_SDL_CONF+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$SDL_CONF"; then
+- ac_cv_prog_SDL_CONF="$SDL_CONF" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+- IFS=$as_save_IFS
+- test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_SDL_CONF="yes"
+- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+- break 2
+- fi
+-done
+-done
+-
+-fi
+-fi
+-SDL_CONF=$ac_cv_prog_SDL_CONF
+-if test -n "$SDL_CONF"; then
+- echo "$as_me:$LINENO: result: $SDL_CONF" >&5
+-echo "${ECHO_T}$SDL_CONF" >&6
+-else
+- echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-
+-case $sys in
+-CYGWIN*|cygwin*|MINGW*|mingw*)
+- if test "$enable_screensaver" = "no"; then
+- OPT_LIBS="-mconsole -mwindows"
+- OPT_OBJS="main.o canvas_base.o"
+- PROGRAM="fireflies.exe"
+- BINDIR="./"
+- if test -z "$SDL_CONF"; then
+- { { echo "$as_me:$LINENO: error: need SDL to compile as non-screensaver" >&5
+-echo "$as_me: error: need SDL to compile as non-screensaver" >&2;}
+- { (exit 1); exit 1; }; }
+- fi
+- else
+- SDL_CONF="";
+- OPT_LIBS="-lscrnsave -lmingw32 -lgdi32 -mwindows"
+- OPT_OBJS="winsaver.o resource.o"
+- PROGRAM="fireflies.scr"
+- BINDIR='C:\Windows\'
+- fi
+-
+- CFLAGS="${CFLAGS} -DWIN32"
+- GL_LIBS="-lopengl32 -lglu32"
+- ;;
+-*)
+-# FIXME: I should use a more sophisticated path detection method.
+- for try in /usr/lib/xscreensaver /usr/lib/X11/xscreensaver /usr/X11R6/lib/xscreensaver /usr/libexec/xscreensaver; do
+- test -d $try && BINDIR=$try
+- done
+- for try in /usr/share/xscreensaver/config /usr/share/control-center/screensavers/; do
+- test -d $try && CONFDIR=$try
+- done
+- for try in /usr/lib/X11/app-defaults/XScreenSaver /etc/X11/app-defaults/XScreenSaver; do
+- test -f $try && RCFILE=$try
+- done
+-
+- OPT_LIBS=""
+- OPT_OBJS="main.o canvas_base.o"
+- PROGRAM="fireflies"
+-
+- echo "$as_me:$LINENO: checking for glXSwapBuffers in -lGL" >&5
+-echo $ECHO_N "checking for glXSwapBuffers in -lGL... $ECHO_C" >&6
+-if test "${ac_cv_lib_GL_glXSwapBuffers+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lGL $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char glXSwapBuffers ();
+-int
+-main ()
+-{
+-glXSwapBuffers ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+- (eval $ac_link) 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -z "$ac_c_werror_flag"
+- || test ! -s conftest.err'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_lib_GL_glXSwapBuffers=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_lib_GL_glXSwapBuffers=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+- conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_lib_GL_glXSwapBuffers" >&5
+-echo "${ECHO_T}$ac_cv_lib_GL_glXSwapBuffers" >&6
+-if test $ac_cv_lib_GL_glXSwapBuffers = yes; then
+- \
+- cat >>confdefs.h <<\_ACEOF
+-#define HAVE_GLX 1
+-_ACEOF
+-
+- OPT_OBJS="$OPT_OBJS canvas_glx.o"
+-else
+- \
+- echo "$as_me:$LINENO: checking for glXSwapBuffers in -lMesaGL" >&5
+-echo $ECHO_N "checking for glXSwapBuffers in -lMesaGL... $ECHO_C" >&6
+-if test "${ac_cv_lib_MesaGL_glXSwapBuffers+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lMesaGL $LIBS"
+-
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char glXSwapBuffers ();
+-int
+-main ()
+-{
+-glXSwapBuffers ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+- (eval $ac_link) 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -z "$ac_c_werror_flag"
+- || test ! -s conftest.err'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_lib_MesaGL_glXSwapBuffers=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_lib_MesaGL_glXSwapBuffers=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+- conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_lib_MesaGL_glXSwapBuffers" >&5
+-echo "${ECHO_T}$ac_cv_lib_MesaGL_glXSwapBuffers" >&6
+-if test $ac_cv_lib_MesaGL_glXSwapBuffers = yes; then
+- \
+- cat >>confdefs.h <<\_ACEOF
+-#define HAVE_GLX 1
+-_ACEOF
+-
+- OPT_OBJS="$OPT_OBJS canvas_glx.o"
+-fi
+-
+-fi
+-
+-
+- echo "$as_me:$LINENO: checking for glBegin in -lGL" >&5
+-echo $ECHO_N "checking for glBegin in -lGL... $ECHO_C" >&6
+-if test "${ac_cv_lib_GL_glBegin+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lGL $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char glBegin ();
+-int
+-main ()
+-{
+-glBegin ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+- (eval $ac_link) 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -z "$ac_c_werror_flag"
+- || test ! -s conftest.err'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_lib_GL_glBegin=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_lib_GL_glBegin=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+- conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_lib_GL_glBegin" >&5
+-echo "${ECHO_T}$ac_cv_lib_GL_glBegin" >&6
+-if test $ac_cv_lib_GL_glBegin = yes; then
+- \
+- GL_LIBS="-lGL -lGLU"
+-else
+- \
+- echo "$as_me:$LINENO: checking for glBegin in -lMesaGL" >&5
+-echo $ECHO_N "checking for glBegin in -lMesaGL... $ECHO_C" >&6
+-if test "${ac_cv_lib_MesaGL_glBegin+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lMesaGL $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char glBegin ();
+-int
+-main ()
+-{
+-glBegin ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+- (eval $ac_link) 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -z "$ac_c_werror_flag"
+- || test ! -s conftest.err'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_lib_MesaGL_glBegin=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_lib_MesaGL_glBegin=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+- conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_lib_MesaGL_glBegin" >&5
+-echo "${ECHO_T}$ac_cv_lib_MesaGL_glBegin" >&6
+-if test $ac_cv_lib_MesaGL_glBegin = yes; then
+- \
+- GL_LIBS="-lMesaGL -lMesaGLU"
+-else
+- \
+- { { echo "$as_me:$LINENO: error: cannot find GL libraries" >&5
+-echo "$as_me: error: cannot find GL libraries" >&2;}
+- { (exit 1); exit 1; }; }
+-fi
+-
+-fi
+-
+-
+- ;;
+-esac
+-
+-if test -n "$SDL_CONF"; then
+- cat >>confdefs.h <<\_ACEOF
+-#define HAVE_SDL 1
+-_ACEOF
+-
+- SDL_LIBS="\`sdl-config --libs\`"
+- SDL_CFLAGS="\`sdl-config --cflags\`"
+- OPT_OBJS="$OPT_OBJS canvas_sdl.o"
+-fi
+-
+-
+-# Check whether --with-bindir or --without-bindir was given.
+-if test "${with_bindir+set}" = set; then
+- withval="$with_bindir"
+- BINDIR=$withval
+-fi;
+-
+-# Check whether --with-confdir or --without-confdir was given.
+-if test "${with_confdir+set}" = set; then
+- withval="$with_confdir"
+- CONFDIR=$withval
+-fi;
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+- ac_config_files="$ac_config_files Make.include installit fireflies.spec"
+-cat >confcache <<\_ACEOF
+-# This file is a shell script that caches the results of configure
+-# tests run on this system so they can be shared between configure
+-# scripts and configure runs, see configure's option --config-cache.
+-# It is not useful on other systems. If it contains results you don't
+-# want to keep, you may remove or edit it.
+-#
+-# config.status only pays attention to the cache file if you give it
+-# the --recheck option to rerun configure.
+-#
+-# `ac_cv_env_foo' variables (set or unset) will be overridden when
+-# loading this file, other *unset* `ac_cv_foo' will be assigned the
+-# following values.
+-
+-_ACEOF
+-
+-# The following way of writing the cache mishandles newlines in values,
+-# but we know of no workaround that is simple, portable, and efficient.
+-# So, don't put newlines in cache variables' values.
+-# Ultrix sh set writes to stderr and can't be redirected directly,
+-# and sets the high bit in the cache file unless we assign to the vars.
+-{
+- (set) 2>&1 |
+- case `(ac_space=' '; set | grep ac_space) 2>&1` in
+- *ac_space=\ *)
+- # `set' does not quote correctly, so add quotes (double-quote
+- # substitution turns \\\\ into \\, and sed turns \\ into \).
+- sed -n \
+- "s/'/'\\\\''/g;
+- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+- ;;
+- *)
+- # `set' quotes correctly as required by POSIX, so do not add quotes.
+- sed -n \
+- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+- ;;
+- esac;
+-} |
+- sed '
+- t clear
+- : clear
+- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+- t end
+- /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+- : end' >>confcache
+-if diff $cache_file confcache >/dev/null 2>&1; then :; else
+- if test -w $cache_file; then
+- test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+- cat confcache >$cache_file
+- else
+- echo "not updating unwritable cache $cache_file"
+- fi
+-fi
+-rm -f confcache
+-
+-test "x$prefix" = xNONE && prefix=$ac_default_prefix
+-# Let make expand exec_prefix.
+-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+-
+-# VPATH may cause trouble with some makes, so we remove $(srcdir),
+-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+-# trailing colons and then remove the whole line if VPATH becomes empty
+-# (actually we leave an empty line to preserve line numbers).
+-if test "x$srcdir" = x.; then
+- ac_vpsub='/^[ ]*VPATH[ ]*=/{
+-s/:*\$(srcdir):*/:/;
+-s/:*\${srcdir}:*/:/;
+-s/:*@srcdir@:*/:/;
+-s/^\([^=]*=[ ]*\):*/\1/;
+-s/:*$//;
+-s/^[^=]*=[ ]*$//;
+-}'
+-fi
+-
+-DEFS=-DHAVE_CONFIG_H
+-
+-ac_libobjs=
+-ac_ltlibobjs=
+-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+- # 1. Remove the extension, and $U if already installed.
+- ac_i=`echo "$ac_i" |
+- sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+- # 2. Add them.
+- ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+- ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+-done
+-LIBOBJS=$ac_libobjs
+-
+-LTLIBOBJS=$ac_ltlibobjs
+-
+-
+-
+-: ${CONFIG_STATUS=./config.status}
+-ac_clean_files_save=$ac_clean_files
+-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+-echo "$as_me: creating $CONFIG_STATUS" >&6;}
+-cat >$CONFIG_STATUS <<_ACEOF
+-#! $SHELL
+-# Generated by $as_me.
+-# Run this file to recreate the current configuration.
+-# Compiler output produced by configure, useful for debugging
+-# configure, is in config.log if it exists.
+-
+-debug=false
+-ac_cs_recheck=false
+-ac_cs_silent=false
+-SHELL=\${CONFIG_SHELL-$SHELL}
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-## --------------------- ##
+-## M4sh Initialization. ##
+-## --------------------- ##
+-
+-# Be Bourne compatible
+-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+- emulate sh
+- NULLCMD=:
+- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+- # is contrary to our usage. Disable this feature.
+- alias -g '${1+"$@"}'='"$@"'
+-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+- set -o posix
+-fi
+-DUALCASE=1; export DUALCASE # for MKS sh
+-
+-# Support unset when possible.
+-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+- as_unset=unset
+-else
+- as_unset=false
+-fi
+-
+-
+-# Work around bugs in pre-3.0 UWIN ksh.
+-$as_unset ENV MAIL MAILPATH
+-PS1='$ '
+-PS2='> '
+-PS4='+ '
+-
+-# NLS nuisances.
+-for as_var in \
+- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+- LC_TELEPHONE LC_TIME
+-do
+- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+- eval $as_var=C; export $as_var
+- else
+- $as_unset $as_var
+- fi
+-done
+-
+-# Required to use basename.
+-if expr a : '\(a\)' >/dev/null 2>&1; then
+- as_expr=expr
+-else
+- as_expr=false
+-fi
+-
+-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+- as_basename=basename
+-else
+- as_basename=false
+-fi
+-
+-
+-# Name of the executable.
+-as_me=`$as_basename "$0" ||
+-$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" >conf$$.sh
+- echo "exit 0" >>conf$$.sh
+- chmod +x conf$$.sh
+- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+- PATH_SEPARATOR=';'
+- else
+- PATH_SEPARATOR=:
+- fi
+- rm -f conf$$.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:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+-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
+- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+- 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:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+-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
+-else
+- as_expr=false
+-fi
+-
+-rm -f conf$$ conf$$.exe conf$$.file
+-echo >conf$$.file
+-if ln -s conf$$.file conf$$ 2>/dev/null; then
+- # We could just check for DJGPP; but this test a) works b) is more generic
+- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+- if test -f conf$$.exe; then
+- # Don't use ln at all; we don't have any links
+- as_ln_s='cp -p'
+- else
+- as_ln_s='ln -s'
+- fi
+-elif ln conf$$.file conf$$ 2>/dev/null; then
+- as_ln_s=ln
+-else
+- as_ln_s='cp -p'
+-fi
+-rm -f conf$$ conf$$.exe conf$$.file
+-
+-if mkdir -p . 2>/dev/null; then
+- as_mkdir_p=:
+-else
+- test -d ./-p && rmdir ./-p
+- as_mkdir_p=false
+-fi
+-
+-as_executable_p="test -f"
+-
+-# Sed expression to map a string onto a valid CPP name.
+-as_tr_cpp="eval 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="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+-
+-
+-# IFS
+-# We need space, tab and new line, in precisely that order.
+-as_nl='
+-'
+-IFS=" $as_nl"
+-
+-# CDPATH.
+-$as_unset CDPATH
+-
+-exec 6>&1
+-
+-# Open the log real soon, to keep \$[0] and so on meaningful, and to
+-# report actual input values of CONFIG_FILES etc. instead of their
+-# values after options handling. Logging --version etc. is OK.
+-exec 5>>config.log
+-{
+- echo
+- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+-## Running $as_me. ##
+-_ASBOX
+-} >&5
+-cat >&5 <<_CSEOF
+-
+-This file was extended by fireflies $as_me 2.07, which was
+-generated by GNU Autoconf 2.59. Invocation command line was
+-
+- CONFIG_FILES = $CONFIG_FILES
+- CONFIG_HEADERS = $CONFIG_HEADERS
+- CONFIG_LINKS = $CONFIG_LINKS
+- CONFIG_COMMANDS = $CONFIG_COMMANDS
+- $ $0 $@
+-
+-_CSEOF
+-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+-echo >&5
+-_ACEOF
+-
+-# Files that config.status was made for.
+-if test -n "$ac_config_files"; then
+- echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+-fi
+-
+-if test -n "$ac_config_headers"; then
+- echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+-fi
+-
+-if test -n "$ac_config_links"; then
+- echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+-fi
+-
+-if test -n "$ac_config_commands"; then
+- echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+-fi
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-
+-ac_cs_usage="\
+-\`$as_me' instantiates files from templates according to the
+-current configuration.
+-
+-Usage: $0 [OPTIONS] [FILE]...
+-
+- -h, --help print this help, then exit
+- -V, --version print version number, then exit
+- -q, --quiet do not print progress messages
+- -d, --debug don't remove temporary files
+- --recheck update $as_me by reconfiguring in the same conditions
+- --file=FILE[:TEMPLATE]
+- instantiate the configuration file FILE
+- --header=FILE[:TEMPLATE]
+- instantiate the configuration header FILE
+-
+-Configuration files:
+-$config_files
+-
+-Configuration headers:
+-$config_headers
+-
+-Report bugs to <[email protected]>."
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<_ACEOF
+-ac_cs_version="\\
+-fireflies config.status 2.07
+-configured by $0, generated by GNU Autoconf 2.59,
+- with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+-
+-Copyright (C) 2003 Free Software Foundation, Inc.
+-This config.status script is free software; the Free Software Foundation
+-gives unlimited permission to copy, distribute and modify it."
+-srcdir=$srcdir
+-INSTALL="$INSTALL"
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-# If no file are specified by the user, then we need to provide default
+-# value. By we need to know if files were specified by the user.
+-ac_need_defaults=:
+-while test $# != 0
+-do
+- case $1 in
+- --*=*)
+- ac_option=`expr "x$1" : 'x\([^=]*\)='`
+- ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+- ac_shift=:
+- ;;
+- -*)
+- ac_option=$1
+- ac_optarg=$2
+- ac_shift=shift
+- ;;
+- *) # This is not an option, so the user has probably given explicit
+- # arguments.
+- ac_option=$1
+- ac_need_defaults=false;;
+- esac
+-
+- case $ac_option in
+- # Handling of the options.
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+- ac_cs_recheck=: ;;
+- --version | --vers* | -V )
+- echo "$ac_cs_version"; exit 0 ;;
+- --he | --h)
+- # Conflict between --help and --header
+- { { echo "$as_me:$LINENO: error: ambiguous option: $1
+-Try \`$0 --help' for more information." >&5
+-echo "$as_me: error: ambiguous option: $1
+-Try \`$0 --help' for more information." >&2;}
+- { (exit 1); exit 1; }; };;
+- --help | --hel | -h )
+- echo "$ac_cs_usage"; exit 0 ;;
+- --debug | --d* | -d )
+- debug=: ;;
+- --file | --fil | --fi | --f )
+- $ac_shift
+- CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+- ac_need_defaults=false;;
+- --header | --heade | --head | --hea )
+- $ac_shift
+- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+- ac_need_defaults=false;;
+- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+- | -silent | --silent | --silen | --sile | --sil | --si | --s)
+- ac_cs_silent=: ;;
+-
+- # This is an error.
+- -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+-Try \`$0 --help' for more information." >&5
+-echo "$as_me: error: unrecognized option: $1
+-Try \`$0 --help' for more information." >&2;}
+- { (exit 1); exit 1; }; } ;;
+-
+- *) ac_config_targets="$ac_config_targets $1" ;;
+-
+- esac
+- shift
+-done
+-
+-ac_configure_extra_args=
+-
+-if $ac_cs_silent; then
+- exec 6>/dev/null
+- ac_configure_extra_args="$ac_configure_extra_args --silent"
+-fi
+-
+-_ACEOF
+-cat >>$CONFIG_STATUS <<_ACEOF
+-if \$ac_cs_recheck; then
+- echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+- exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+-fi
+-
+-_ACEOF
+-
+-
+-
+-
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-for ac_config_target in $ac_config_targets
+-do
+- case "$ac_config_target" in
+- # Handling of arguments.
+- "Make.include" ) CONFIG_FILES="$CONFIG_FILES Make.include" ;;
+- "installit" ) CONFIG_FILES="$CONFIG_FILES installit" ;;
+- "fireflies.spec" ) CONFIG_FILES="$CONFIG_FILES fireflies.spec" ;;
+- "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+- { (exit 1); exit 1; }; };;
+- esac
+-done
+-
+-# If the user did not use the arguments to specify the items to instantiate,
+-# then the envvar interface is used. Set only those that are not.
+-# We use the long form for the default assignment because of an extremely
+-# bizarre bug on SunOS 4.1.3.
+-if $ac_need_defaults; then
+- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+-fi
+-
+-# Have a temporary directory for convenience. Make it in the build tree
+-# simply because there is no reason to put it here, and in addition,
+-# creating and moving files from /tmp can sometimes cause problems.
+-# Create a temporary directory, and hook for its removal unless debugging.
+-$debug ||
+-{
+- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+- trap '{ (exit 1); exit 1; }' 1 2 13 15
+-}
+-
+-# Create a (secure) tmp directory for tmp files.
+-
+-{
+- tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+- test -n "$tmp" && test -d "$tmp"
+-} ||
+-{
+- tmp=./confstat$$-$RANDOM
+- (umask 077 && mkdir $tmp)
+-} ||
+-{
+- echo "$me: cannot create a temporary directory in ." >&2
+- { (exit 1); exit 1; }
+-}
+-
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<_ACEOF
+-
+-#
+-# CONFIG_FILES section.
+-#
+-
+-# No need to generate the scripts if there are no CONFIG_FILES.
+-# This happens for instance when ./config.status config.h
+-if test -n "\$CONFIG_FILES"; then
+- # Protect against being on the right side of a sed subst in config.status.
+- sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+-s,@SHELL@,$SHELL,;t t
+-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+-s,@exec_prefix@,$exec_prefix,;t t
+-s,@prefix@,$prefix,;t t
+-s,@program_transform_name@,$program_transform_name,;t t
+-s,@bindir@,$bindir,;t t
+-s,@sbindir@,$sbindir,;t t
+-s,@libexecdir@,$libexecdir,;t t
+-s,@datadir@,$datadir,;t t
+-s,@sysconfdir@,$sysconfdir,;t t
+-s,@sharedstatedir@,$sharedstatedir,;t t
+-s,@localstatedir@,$localstatedir,;t t
+-s,@libdir@,$libdir,;t t
+-s,@includedir@,$includedir,;t t
+-s,@oldincludedir@,$oldincludedir,;t t
+-s,@infodir@,$infodir,;t t
+-s,@mandir@,$mandir,;t t
+-s,@build_alias@,$build_alias,;t t
+-s,@host_alias@,$host_alias,;t t
+-s,@target_alias@,$target_alias,;t t
+-s,@DEFS@,$DEFS,;t t
+-s,@ECHO_C@,$ECHO_C,;t t
+-s,@ECHO_N@,$ECHO_N,;t t
+-s,@ECHO_T@,$ECHO_T,;t t
+-s,@LIBS@,$LIBS,;t t
+-s,@CXX@,$CXX,;t t
+-s,@CXXFLAGS@,$CXXFLAGS,;t t
+-s,@LDFLAGS@,$LDFLAGS,;t t
+-s,@CPPFLAGS@,$CPPFLAGS,;t t
+-s,@ac_ct_CXX@,$ac_ct_CXX,;t t
+-s,@EXEEXT@,$EXEEXT,;t t
+-s,@OBJEXT@,$OBJEXT,;t t
+-s,@CC@,$CC,;t t
+-s,@CFLAGS@,$CFLAGS,;t t
+-s,@ac_ct_CC@,$ac_ct_CC,;t t
+-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+-s,@SDL_CONF@,$SDL_CONF,;t t
+-s,@BINDIR@,$BINDIR,;t t
+-s,@CONFDIR@,$CONFDIR,;t t
+-s,@RCFILE@,$RCFILE,;t t
+-s,@OPT_LIBS@,$OPT_LIBS,;t t
+-s,@OPT_OBJS@,$OPT_OBJS,;t t
+-s,@PROGRAM@,$PROGRAM,;t t
+-s,@SDL_LIBS@,$SDL_LIBS,;t t
+-s,@SDL_CFLAGS@,$SDL_CFLAGS,;t t
+-s,@GL_LIBS@,$GL_LIBS,;t t
+-s,@LIBOBJS@,$LIBOBJS,;t t
+-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
+-CEOF
+-
+-_ACEOF
+-
+- cat >>$CONFIG_STATUS <<\_ACEOF
+- # Split the substitutions into bite-sized pieces for seds with
+- # small command number limits, like on Digital OSF/1 and HP-UX.
+- ac_max_sed_lines=48
+- ac_sed_frag=1 # Number of current file.
+- ac_beg=1 # First line for current file.
+- ac_end=$ac_max_sed_lines # Line after last line for current file.
+- ac_more_lines=:
+- ac_sed_cmds=
+- while $ac_more_lines; do
+- if test $ac_beg -gt 1; then
+- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+- else
+- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+- fi
+- if test ! -s $tmp/subs.frag; then
+- ac_more_lines=false
+- else
+- # The purpose of the label and of the branching condition is to
+- # speed up the sed processing (if there are no `@' at all, there
+- # is no need to browse any of the substitutions).
+- # These are the two extra sed commands mentioned above.
+- (echo ':t
+- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+- if test -z "$ac_sed_cmds"; then
+- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+- else
+- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+- fi
+- ac_sed_frag=`expr $ac_sed_frag + 1`
+- ac_beg=$ac_end
+- ac_end=`expr $ac_end + $ac_max_sed_lines`
+- fi
+- done
+- if test -z "$ac_sed_cmds"; then
+- ac_sed_cmds=cat
+- fi
+-fi # test -n "$CONFIG_FILES"
+-
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+- case $ac_file in
+- - | *:- | *:-:* ) # input from stdin
+- cat >$tmp/stdin
+- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+- * ) ac_file_in=$ac_file.in ;;
+- esac
+-
+- # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+- X"$ac_file" : 'X\(//\)[^/]' \| \
+- X"$ac_file" : 'X\(//\)$' \| \
+- X"$ac_file" : 'X\(/\)' \| \
+- . : '\(.\)' 2>/dev/null ||
+-echo X"$ac_file" |
+- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+- /^X\(\/\/\)$/{ s//\1/; q; }
+- /^X\(\/\).*/{ s//\1/; q; }
+- s/.*/./; q'`
+- { if $as_mkdir_p; then
+- mkdir -p "$ac_dir"
+- else
+- as_dir="$ac_dir"
+- as_dirs=
+- while test ! -d "$as_dir"; do
+- as_dirs="$as_dir $as_dirs"
+- as_dir=`(dirname "$as_dir") 2>/dev/null ||
+-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+- X"$as_dir" : 'X\(//\)[^/]' \| \
+- X"$as_dir" : 'X\(//\)$' \| \
+- X"$as_dir" : 'X\(/\)' \| \
+- . : '\(.\)' 2>/dev/null ||
+-echo X"$as_dir" |
+- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+- /^X\(\/\/\)$/{ s//\1/; q; }
+- /^X\(\/\).*/{ s//\1/; q; }
+- s/.*/./; q'`
+- done
+- test ! -n "$as_dirs" || mkdir $as_dirs
+- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+- { (exit 1); exit 1; }; }; }
+-
+- ac_builddir=.
+-
+-if test "$ac_dir" != .; then
+- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+- # A "../" for each directory in $ac_dir_suffix.
+- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+-else
+- ac_dir_suffix= ac_top_builddir=
+-fi
+-
+-case $srcdir in
+- .) # No --srcdir option. We are building in place.
+- ac_srcdir=.
+- if test -z "$ac_top_builddir"; then
+- ac_top_srcdir=.
+- else
+- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+- fi ;;
+- [\\/]* | ?:[\\/]* ) # Absolute path.
+- ac_srcdir=$srcdir$ac_dir_suffix;
+- ac_top_srcdir=$srcdir ;;
+- *) # Relative path.
+- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+- ac_top_srcdir=$ac_top_builddir$srcdir ;;
+-esac
+-
+-# Do not use `cd foo && pwd` to compute absolute paths, because
+-# the directories may not exist.
+-case `pwd` in
+-.) ac_abs_builddir="$ac_dir";;
+-*)
+- case "$ac_dir" in
+- .) ac_abs_builddir=`pwd`;;
+- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+- *) ac_abs_builddir=`pwd`/"$ac_dir";;
+- esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_builddir=${ac_top_builddir}.;;
+-*)
+- case ${ac_top_builddir}. in
+- .) ac_abs_top_builddir=$ac_abs_builddir;;
+- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+- esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_srcdir=$ac_srcdir;;
+-*)
+- case $ac_srcdir in
+- .) ac_abs_srcdir=$ac_abs_builddir;;
+- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+- esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_srcdir=$ac_top_srcdir;;
+-*)
+- case $ac_top_srcdir in
+- .) ac_abs_top_srcdir=$ac_abs_builddir;;
+- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+- esac;;
+-esac
+-
+-
+- case $INSTALL in
+- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+- *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+- esac
+-
+- if test x"$ac_file" != x-; then
+- { echo "$as_me:$LINENO: creating $ac_file" >&5
+-echo "$as_me: creating $ac_file" >&6;}
+- rm -f "$ac_file"
+- fi
+- # Let's still pretend it is `configure' which instantiates (i.e., don't
+- # use $as_me), people would be surprised to read:
+- # /* config.h. Generated by config.status. */
+- if test x"$ac_file" = x-; then
+- configure_input=
+- else
+- configure_input="$ac_file. "
+- fi
+- configure_input=$configure_input"Generated from `echo $ac_file_in |
+- sed 's,.*/,,'` by configure."
+-
+- # First look for the input files in the build tree, otherwise in the
+- # src tree.
+- ac_file_inputs=`IFS=:
+- for f in $ac_file_in; do
+- case $f in
+- -) echo $tmp/stdin ;;
+- [\\/$]*)
+- # Absolute (can't be DOS-style, as IFS=:)
+- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-echo "$as_me: error: cannot find input file: $f" >&2;}
+- { (exit 1); exit 1; }; }
+- echo "$f";;
+- *) # Relative
+- if test -f "$f"; then
+- # Build tree
+- echo "$f"
+- elif test -f "$srcdir/$f"; then
+- # Source tree
+- echo "$srcdir/$f"
+- else
+- # /dev/null tree
+- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-echo "$as_me: error: cannot find input file: $f" >&2;}
+- { (exit 1); exit 1; }; }
+- fi;;
+- esac
+- done` || { (exit 1); exit 1; }
+-_ACEOF
+-cat >>$CONFIG_STATUS <<_ACEOF
+- sed "$ac_vpsub
+-$extrasub
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-:t
+-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+-s,@configure_input@,$configure_input,;t t
+-s,@srcdir@,$ac_srcdir,;t t
+-s,@abs_srcdir@,$ac_abs_srcdir,;t t
+-s,@top_srcdir@,$ac_top_srcdir,;t t
+-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+-s,@builddir@,$ac_builddir,;t t
+-s,@abs_builddir@,$ac_abs_builddir,;t t
+-s,@top_builddir@,$ac_top_builddir,;t t
+-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+-s,@INSTALL@,$ac_INSTALL,;t t
+-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+- rm -f $tmp/stdin
+- if test x"$ac_file" != x-; then
+- mv $tmp/out $ac_file
+- else
+- cat $tmp/out
+- rm -f $tmp/out
+- fi
+-
+-done
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-
+-#
+-# CONFIG_HEADER section.
+-#
+-
+-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+-# NAME is the cpp macro being defined and VALUE is the value it is being given.
+-#
+-# ac_d sets the value in "#define NAME VALUE" lines.
+-ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+-ac_dB='[ ].*$,\1#\2'
+-ac_dC=' '
+-ac_dD=',;t'
+-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+-ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+-ac_uB='$,\1#\2define\3'
+-ac_uC=' '
+-ac_uD=',;t'
+-
+-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+- case $ac_file in
+- - | *:- | *:-:* ) # input from stdin
+- cat >$tmp/stdin
+- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+- * ) ac_file_in=$ac_file.in ;;
+- esac
+-
+- test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+-echo "$as_me: creating $ac_file" >&6;}
+-
+- # First look for the input files in the build tree, otherwise in the
+- # src tree.
+- ac_file_inputs=`IFS=:
+- for f in $ac_file_in; do
+- case $f in
+- -) echo $tmp/stdin ;;
+- [\\/$]*)
+- # Absolute (can't be DOS-style, as IFS=:)
+- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-echo "$as_me: error: cannot find input file: $f" >&2;}
+- { (exit 1); exit 1; }; }
+- # Do quote $f, to prevent DOS paths from being IFS'd.
+- echo "$f";;
+- *) # Relative
+- if test -f "$f"; then
+- # Build tree
+- echo "$f"
+- elif test -f "$srcdir/$f"; then
+- # Source tree
+- echo "$srcdir/$f"
+- else
+- # /dev/null tree
+- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-echo "$as_me: error: cannot find input file: $f" >&2;}
+- { (exit 1); exit 1; }; }
+- fi;;
+- esac
+- done` || { (exit 1); exit 1; }
+- # Remove the trailing spaces.
+- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
+-
+-_ACEOF
+-
+-# Transform confdefs.h into two sed scripts, `conftest.defines' and
+-# `conftest.undefs', that substitutes the proper values into
+-# config.h.in to produce config.h. The first handles `#define'
+-# templates, and the second `#undef' templates.
+-# And first: Protect against being on the right side of a sed subst in
+-# config.status. Protect against being in an unquoted here document
+-# in config.status.
+-rm -f conftest.defines conftest.undefs
+-# Using a here document instead of a string reduces the quoting nightmare.
+-# Putting comments in sed scripts is not portable.
+-#
+-# `end' is used to avoid that the second main sed command (meant for
+-# 0-ary CPP macros) applies to n-ary macro definitions.
+-# See the Autoconf documentation for `clear'.
+-cat >confdef2sed.sed <<\_ACEOF
+-s/[\\&,]/\\&/g
+-s,[\\$`],\\&,g
+-t clear
+-: clear
+-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+-t end
+-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+-: end
+-_ACEOF
+-# If some macros were called several times there might be several times
+-# the same #defines, which is useless. Nevertheless, we may not want to
+-# sort them, since we want the *last* AC-DEFINE to be honored.
+-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+-rm -f confdef2sed.sed
+-
+-# This sed command replaces #undef with comments. This is necessary, for
+-# example, in the case of _POSIX_SOURCE, which is predefined and required
+-# on some systems where configure will not decide to define it.
+-cat >>conftest.undefs <<\_ACEOF
+-s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+-_ACEOF
+-
+-# Break up conftest.defines because some shells have a limit on the size
+-# of here documents, and old seds have small limits too (100 cmds).
+-echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+-echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+-echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+-echo ' :' >>$CONFIG_STATUS
+-rm -f conftest.tail
+-while grep . conftest.defines >/dev/null
+-do
+- # Write a limited-size here document to $tmp/defines.sed.
+- echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+- # Speed up: don't consider the non `#define' lines.
+- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
+- # Work around the forget-to-reset-the-flag bug.
+- echo 't clr' >>$CONFIG_STATUS
+- echo ': clr' >>$CONFIG_STATUS
+- sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+- echo 'CEOF
+- sed -f $tmp/defines.sed $tmp/in >$tmp/out
+- rm -f $tmp/in
+- mv $tmp/out $tmp/in
+-' >>$CONFIG_STATUS
+- sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+- rm -f conftest.defines
+- mv conftest.tail conftest.defines
+-done
+-rm -f conftest.defines
+-echo ' fi # grep' >>$CONFIG_STATUS
+-echo >>$CONFIG_STATUS
+-
+-# Break up conftest.undefs because some shells have a limit on the size
+-# of here documents, and old seds have small limits too (100 cmds).
+-echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
+-rm -f conftest.tail
+-while grep . conftest.undefs >/dev/null
+-do
+- # Write a limited-size here document to $tmp/undefs.sed.
+- echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+- # Speed up: don't consider the non `#undef'
+- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
+- # Work around the forget-to-reset-the-flag bug.
+- echo 't clr' >>$CONFIG_STATUS
+- echo ': clr' >>$CONFIG_STATUS
+- sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+- echo 'CEOF
+- sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+- rm -f $tmp/in
+- mv $tmp/out $tmp/in
+-' >>$CONFIG_STATUS
+- sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+- rm -f conftest.undefs
+- mv conftest.tail conftest.undefs
+-done
+-rm -f conftest.undefs
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+- # Let's still pretend it is `configure' which instantiates (i.e., don't
+- # use $as_me), people would be surprised to read:
+- # /* config.h. Generated by config.status. */
+- if test x"$ac_file" = x-; then
+- echo "/* Generated by configure. */" >$tmp/config.h
+- else
+- echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
+- fi
+- cat $tmp/in >>$tmp/config.h
+- rm -f $tmp/in
+- if test x"$ac_file" != x-; then
+- if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+- { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+-echo "$as_me: $ac_file is unchanged" >&6;}
+- else
+- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+- X"$ac_file" : 'X\(//\)[^/]' \| \
+- X"$ac_file" : 'X\(//\)$' \| \
+- X"$ac_file" : 'X\(/\)' \| \
+- . : '\(.\)' 2>/dev/null ||
+-echo X"$ac_file" |
+- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+- /^X\(\/\/\)$/{ s//\1/; q; }
+- /^X\(\/\).*/{ s//\1/; q; }
+- s/.*/./; q'`
+- { if $as_mkdir_p; then
+- mkdir -p "$ac_dir"
+- else
+- as_dir="$ac_dir"
+- as_dirs=
+- while test ! -d "$as_dir"; do
+- as_dirs="$as_dir $as_dirs"
+- as_dir=`(dirname "$as_dir") 2>/dev/null ||
+-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+- X"$as_dir" : 'X\(//\)[^/]' \| \
+- X"$as_dir" : 'X\(//\)$' \| \
+- X"$as_dir" : 'X\(/\)' \| \
+- . : '\(.\)' 2>/dev/null ||
+-echo X"$as_dir" |
+- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+- /^X\(\/\/\)$/{ s//\1/; q; }
+- /^X\(\/\).*/{ s//\1/; q; }
+- s/.*/./; q'`
+- done
+- test ! -n "$as_dirs" || mkdir $as_dirs
+- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+- { (exit 1); exit 1; }; }; }
+-
+- rm -f $ac_file
+- mv $tmp/config.h $ac_file
+- fi
+- else
+- cat $tmp/config.h
+- rm -f $tmp/config.h
+- fi
+-done
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-
+-{ (exit 0); exit 0; }
+-_ACEOF
+-chmod +x $CONFIG_STATUS
+-ac_clean_files=$ac_clean_files_save
+-
+-
+-# configure is writing to config.log, and then calls config.status.
+-# config.status does its own redirection, appending to config.log.
+-# Unfortunately, on DOS this fails, as config.log is still kept open
+-# by configure, so config.status won't be able to write to it; its
+-# output is simply discarded. So we exec the FD to /dev/null,
+-# effectively closing config.log, so it can be properly (re)opened and
+-# appended to by config.status. When coming back to configure, we
+-# need to make the FD available again.
+-if test "$no_create" != yes; then
+- ac_cs_success=:
+- ac_config_status_args=
+- test "$silent" = yes &&
+- ac_config_status_args="$ac_config_status_args --quiet"
+- exec 5>/dev/null
+- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+- exec 5>>config.log
+- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+- # would make configure fail if this is the last instruction.
+- $ac_cs_success || { (exit 1); exit 1; }
+-fi
+-
+-chmod +x installit
diff --git a/debian/fireflies/fireflies-2.08/debian/patches/fix-dso.diff b/debian/fireflies/fireflies-2.08/debian/patches/fix-dso.diff
new file mode 100644
index 00000000..6dc0c32a
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/patches/fix-dso.diff
@@ -0,0 +1,13 @@
+Index: b/Make.include.in
+===================================================================
+--- a/Make.include.in
++++ b/Make.include.in
+@@ -6,7 +6,7 @@
+ OPT_LIBS = @OPT_LIBS@
+
+ CFLAGS = -Wall -I../libgfx/include/ $(SDL_CFLAGS) @CFLAGS@
+-LIBS = ../libgfx/src/libgfx.a $(GL_LIBS) $(SDL_LIBS) $(OPT_LIBS) @LIBS@
++LIBS = ../libgfx/src/libgfx.a -lX11 $(GL_LIBS) $(SDL_LIBS) $(OPT_LIBS) @LIBS@
+
+ OBJECTS = arrow.o bait.o firefly.o scene.o tail.o utils.o modes.o @OPT_OBJS@
+ PROGRAM = @PROGRAM@
diff --git a/debian/fireflies/fireflies-2.08/debian/patches/fix-gcc-4.7.diff b/debian/fireflies/fireflies-2.08/debian/patches/fix-gcc-4.7.diff
new file mode 100644
index 00000000..20596091
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/patches/fix-gcc-4.7.diff
@@ -0,0 +1,13 @@
+Index: b/src/vroot.h
+===================================================================
+--- a/src/vroot.h
++++ b/src/vroot.h
+@@ -72,6 +72,8 @@
+ #define _VROOT_H_
+ #define _XSCREENSAVER_VROOT_H_
+
++#include <cstdio>
++
+ #if !defined(lint) && !defined(SABER)
+ static const char vroot_rcsid[] =
+ "#Id: vroot.h,v 1.8 2004/12/16 05:33:54 jwz Exp #" "\n"
diff --git a/debian/fireflies/fireflies-2.08/debian/patches/libgfx-1.1.0.diff b/debian/fireflies/fireflies-2.08/debian/patches/libgfx-1.1.0.diff
new file mode 100644
index 00000000..96b92f74
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/patches/libgfx-1.1.0.diff
@@ -0,0 +1,13 @@
+Index: b/Makefile
+===================================================================
+--- a/Makefile
++++ b/Makefile
+@@ -24,7 +24,7 @@
+ cd src && make
+
+ libgfx/src/libgfx.a:
+- gunzip -c libgfx-1.0.1.tar.gz | tar x
++ #gunzip -c libgfx-1.0.1.tar.gz | tar x
+ cd libgfx && ./configure && cd src && make
+
+ install: all
diff --git a/debian/fireflies/fireflies-2.08/debian/patches/libgfx-png1.5.diff b/debian/fireflies/fireflies-2.08/debian/patches/libgfx-png1.5.diff
new file mode 100644
index 00000000..d0025046
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/patches/libgfx-png1.5.diff
@@ -0,0 +1,30 @@
+Index: fireflies-2.08/libgfx/src/raster-png.cxx
+===================================================================
+--- fireflies-2.08.orig/libgfx/src/raster-png.cxx
++++ fireflies-2.08/libgfx/src/raster-png.cxx
+@@ -16,6 +16,7 @@
+ #ifdef HAVE_LIBPNG
+
+ #include <png.h>
++#include <string.h>
+
+ namespace gfx
+ {
+@@ -42,7 +43,7 @@ ByteRaster *read_png_image(const char *f
+ // Because we didn't set up any error handlers, we need to be
+ // prepared to handle longjmps out of the library on error
+ // conditions.
+- if( setjmp(png_ptr->jmpbuf) )
++ if( setjmp(png_jmpbuf(png_ptr)) )
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ fclose(fp);
+@@ -132,7 +133,7 @@ bool write_png_image(const char *file_na
+ return false;
+ }
+
+- if( setjmp(png_ptr->jmpbuf) )
++ if( setjmp(png_jmpbuf(png_ptr)) )
+ {
+ fclose(fp);
+ png_destroy_write_struct(&png_ptr, (png_infopp)NULL);
diff --git a/debian/fireflies/fireflies-2.08/debian/patches/series b/debian/fireflies/fireflies-2.08/debian/patches/series
new file mode 100644
index 00000000..07746401
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/patches/series
@@ -0,0 +1,5 @@
+libgfx-1.1.0.diff
+fix-configure.diff
+fix-gcc-4.7.diff
+fix-dso.diff
+libgfx-png1.5.diff
diff --git a/debian/fireflies/fireflies-2.08/debian/rules b/debian/fireflies/fireflies-2.08/debian/rules
new file mode 100755
index 00000000..814c3eb3
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/rules
@@ -0,0 +1,28 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 to 1999 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+DEB_DH_BUILDDEB_ARGS += -- -Z$(shell dpkg-deb --help | grep -q ":.* xz[,.]" \
+ && echo xz || echo bzip2)
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/autotools.mk
+
+post-patches:: debian/stamp-bootstrap
+
+debian/stamp-bootstrap:
+ dh_testdir
+ autoconf -f && \
+ touch debian/stamp-bootstrap
+
+clean::
+ dh_testdir
+ rm -f config.h config.log config.status configure fireflies.spec installit Make.include
+ rm -f src/fireflies src/*.o libgfx/src/*.o libgfx/src/*.a
+ rm -f libgfx/config.log libgfx/config.status libgfx/gfx-config libgfx/include/gfx/config.h
+ rm -f libgfx-1.0.1.tar.gz.cdbs-config_list
+ rm -f debian/stamp-bootstrap
diff --git a/debian/fireflies/fireflies-2.08/debian/source/format b/debian/fireflies/fireflies-2.08/debian/source/format
new file mode 100644
index 00000000..163aaf8d
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/fireflies/fireflies-2.08/debian/source/options b/debian/fireflies/fireflies-2.08/debian/source/options
new file mode 100644
index 00000000..d71748bb
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/debian/source/options
@@ -0,0 +1,3 @@
+# Use xz instead of gzip
+compression = "xz"
+compression-level = 9
diff --git a/debian/fireflies/fireflies-2.08/fireflies.spec.in b/debian/fireflies/fireflies-2.08/fireflies.spec.in
new file mode 100644
index 00000000..864dd539
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/fireflies.spec.in
@@ -0,0 +1,58 @@
+%define name fireflies
+%define version @PACKAGE_VERSION@
+
+Summary: Fireflies Screensaver
+Name: %{name}
+Version: %{version}
+Release: 1
+License: GPL
+Group: Amusements/Graphics
+URL: http://somewhere.fscked.org/fireflies
+Source0: fireflies-%{version}.tar.gz
+Patch0: fireflies-configure.patch
+BuildRoot: %{_tmppath}/%{name}-root
+
+%description
+An OpenGL 3D screensaver for xscreensaver. A bunch of fireflies chase a few
+baits around the screen, leaving colorful tails which get blown around by the
+wind.
+
+%prep
+%setup
+%patch0 -p1
+
+%build
+./configure --with-bindir=/usr/libexec/xscreensaver
+make
+
+%install
+make DESTDIR=$RPM_BUILD_ROOT install
+
+%clean
+rm -r $RPM_BUILD_ROOT
+
+%post
+# add fireflies to the XScreenSaver file
+tmpfile=`mktemp /tmp/xrc.XXXXXX`
+for file in /usr/lib/X11/app-defaults/XScreenSaver /etc/X11/app-defaults/XScreenSaver; do
+ [ -f $file ] || continue
+ grep -q 'fireflies' $file && continue
+ cp $file $tmpfile
+ cat $tmpfile | sed '
+/programs:/ a\
+ GL: "Fireflies 3D" fireflies -root \\n\\
+' > $file
+done
+rm $tmpfile
+
+%files
+%defattr(-,root,root)
+@BINDIR@/@PROGRAM@
+@CONFDIR@/fireflies.xml
+
+%changelog
+* Sat Oct 1 2005 Simon Roberts <[email protected]>
+- Update for 2.06 and FC4
+
+* Wed Apr 18 2003 Matt Perry <[email protected]>
+- Initial packaging
diff --git a/debian/fireflies/fireflies-2.08/fireflies.xml b/debian/fireflies/fireflies-2.08/fireflies.xml
new file mode 100644
index 00000000..8ed12c89
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/fireflies.xml
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<screensaver name="fireflies" _label="Fireflies">
+<command arg="-root" />
+
+<hgroup>
+<vgroup>
+<hgroup>
+ <number id="minbaits"
+ arg="-minbaits %"
+ type="spinbutton"
+ _label="Minimum baits"
+ low="1"
+ high="50"
+ default="2"
+ />
+ <number id="minflies"
+ arg="-minflies %"
+ type="spinbutton"
+ _label="Minimum flies"
+ low="1"
+ high="10000"
+ default="100"
+ />
+</hgroup>
+<hgroup>
+ <number id="maxbaits"
+ arg="-maxbaits %"
+ type="spinbutton"
+ _label="Maximum baits"
+ low="1"
+ high="50"
+ default="5"
+ />
+ <number id="maxflies"
+ arg="-maxflies %"
+ type="spinbutton"
+ _label="Maximum flies"
+ low="1"
+ high="10000"
+ default="175"
+ />
+</hgroup>
+
+<boolean id="draw"
+ _label="Draw baits"
+ arg-set="-drawbait"
+/>
+<hgroup>
+ <number id="bspeed"
+ arg="-bspeed %"
+ type="spinbutton"
+ _label="Bait speed"
+ low="0"
+ high="10000"
+ default="50"
+ />
+ <number id="baccel"
+ arg="-baccel %"
+ type="spinbutton"
+ _label="Bait accel"
+ low="0"
+ high="10000"
+ default="600"
+ />
+</hgroup>
+<hgroup>
+ <number id="fspeed"
+ arg="-fspeed %"
+ type="spinbutton"
+ _label="Firefly speed"
+ low="0"
+ high="10000"
+ default="100"
+ />
+ <number id="faccel"
+ arg="-faccel %"
+ type="spinbutton"
+ _label="Firefly accel"
+ low="0"
+ high="10000"
+ default="300"
+ />
+</hgroup>
+<number id="taillength"
+ arg="-taillength %"
+ type="slider"
+ _label="Tails"
+ _low-label="Short"
+ _high-label="Long"
+ low="0"
+ high="100"
+ default="22"
+/>
+<number id="tailwidth"
+ arg="-tailwidth %"
+ type="slider"
+ _low-label="Narrow"
+ _high-label="Wide"
+ low="0"
+ high="100"
+ default="25"
+/>
+<number id="tailopacity"
+ arg="-tailopacity %"
+ type="slider"
+ _low-label="Invisible"
+ _high-label="Opaque"
+ low="0"
+ high="100"
+ default="60"
+/>
+</vgroup>
+<vgroup>
+<hgroup>
+<number id="colorspeed"
+ arg="-colorspeed %"
+ type="spinbutton"
+ _label="Color cycle speed"
+ low="1"
+ high="100"
+ default="15"
+/>
+</hgroup>
+<number id="fps"
+ arg="-fps %"
+ type="spinbutton"
+ _label="Frames per sec"
+ low="1"
+ high="100"
+ default="20"
+/>
+<number id="fastforward"
+ arg="-fastforward %"
+ type="spinbutton"
+ _label="Fast Forward speed"
+ low="1"
+ high="100"
+ default="1"
+/>
+<number id="size"
+ arg="-size %"
+ type="slider"
+ _label="Firefly size"
+ _low-label="Tiny"
+ _high-label="Huge"
+ low="5"
+ high="100"
+ default="15"
+/>
+<number id="glowfactor"
+ arg="-glowfactor %"
+ type="slider"
+ _label="Glow factor"
+ _low-label="Half"
+ _high-label="10 times"
+ low="5"
+ high="100"
+ default="20"
+/>
+<number id="wind"
+ arg="-wind %"
+ type="slider"
+ _label="Wind"
+ _low-label="Still"
+ _high-label="Hurricane"
+ low="0"
+ high="100"
+ default="30"
+/>
+</vgroup>
+</hgroup>
+<hgroup>
+ <vgroup>
+ <number id="m1"
+ arg="-m1 %"
+ type="slider"
+ _label="Normal swarm motion"
+ _low-label="Never"
+ _high-label="Often"
+ low="0"
+ high="100"
+ default="30"
+ />
+ <number id="m2"
+ arg="-m2 %"
+ type="slider"
+ _label="Swarm comes to a halt"
+ _low-label="Never"
+ _high-label="Often"
+ low="0"
+ high="100"
+ default="10"
+ />
+ <number id="m3"
+ arg="-m3 %"
+ type="slider"
+ _label="Swarm does loops"
+ _low-label="Never"
+ _high-label="Often"
+ low="0"
+ high="100"
+ default="10"
+ />
+ <number id="m4"
+ arg="-m4 %"
+ type="slider"
+ _label="Swarm bursts into rainbow "
+ _low-label="Never"
+ _high-label="Often"
+ low="00"
+ high="100"
+ default="10"
+ />
+ <number id="m5"
+ arg="-m5 %"
+ type="slider"
+ _label="Swarm tails glow"
+ _low-label="Never"
+ _high-label="Often"
+ low="0"
+ high="100"
+ default="15"
+ />
+ <number id="m6"
+ arg="-m6 %"
+ type="slider"
+ _label="Swarm hyperspeed"
+ _low-label="Never"
+ _high-label="Often"
+ low="0"
+ high="100"
+ default="10"
+ />
+ <number id="m7"
+ arg="-m7 %"
+ type="slider"
+ _label="Faded colors"
+ _low-label="Never"
+ _high-label="Often"
+ low="0"
+ high="100"
+ default="10"
+ />
+ </vgroup>
+ <vgroup>
+ <number id="M1"
+ arg="-M1 %"
+ type="slider"
+ _label="Make all swarms do something"
+ _low-label="Never"
+ _high-label="Often"
+ low="0"
+ high="100"
+ default="5"
+ />
+ <number id="M2"
+ arg="-M2 %"
+ type="slider"
+ _label="Kill some fireflies"
+ _low-label="Never"
+ _high-label="Often"
+ low="0"
+ high="100"
+ default="10"
+ />
+ <number id="M3"
+ arg="-M3 %"
+ type="slider"
+ _label="Add some fireflies"
+ _low-label="Never"
+ _high-label="Often"
+ low="00"
+ high="100"
+ default="10"
+ />
+ <number id="M4"
+ arg="-M4 %"
+ type="slider"
+ _label="Wind picks up"
+ _low-label="Never"
+ _high-label="Often"
+ low="0"
+ high="100"
+ default="20"
+ />
+ <number id="M5"
+ arg="-M5 %"
+ type="slider"
+ _label="Matrix (pause and rotate)"
+ _low-label="Never"
+ _high-label="Often"
+ low="0"
+ high="100"
+ default="20"
+ />
+ <number id="M6"
+ arg="-M6 %"
+ type="slider"
+ _label="Split a swarm"
+ _low-label="Never"
+ _high-label="Often"
+ low="0"
+ high="100"
+ default="10"
+ />
+ <number id="M7"
+ arg="-M7 %"
+ type="slider"
+ _label="Merge two swarms"
+ _low-label="Never"
+ _high-label="Often"
+ low="0"
+ high="100"
+ default="10"
+ />
+ </vgroup>
+</hgroup>
+
+<_description>
+A bunch of fireflies chase a few baits around the screen, leaving colorful
+tails which get blown around by the wind.
+Written by Matt Perry ([email protected])
+Website: http://somewhere.fscked.org/fireflies
+</_description>
+
+</screensaver>
diff --git a/debian/fireflies/fireflies-2.08/install-sh b/debian/fireflies/fireflies-2.08/install-sh
new file mode 100755
index 00000000..11870f1b
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/install-sh
@@ -0,0 +1,251 @@
+#!/bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission. M.I.T. makes no representations about the
+# suitability of this software for any purpose. It is provided "as is"
+# without express or implied warranty.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch. It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+ case $1 in
+ -c) instcmd="$cpprog"
+ shift
+ continue;;
+
+ -d) dir_arg=true
+ shift
+ continue;;
+
+ -m) chmodcmd="$chmodprog $2"
+ shift
+ shift
+ continue;;
+
+ -o) chowncmd="$chownprog $2"
+ shift
+ shift
+ continue;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift
+ shift
+ continue;;
+
+ -s) stripcmd="$stripprog"
+ shift
+ continue;;
+
+ -t=*) transformarg=`echo $1 | sed 's/-t=//'`
+ shift
+ continue;;
+
+ -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+ shift
+ continue;;
+
+ *) if [ x"$src" = x ]
+ then
+ src=$1
+ else
+ # this colon is to work around a 386BSD /bin/sh bug
+ :
+ dst=$1
+ fi
+ shift
+ continue;;
+ esac
+done
+
+if [ x"$src" = x ]
+then
+ echo "install: no input file specified"
+ exit 1
+else
+ :
+fi
+
+if [ x"$dir_arg" != x ]; then
+ dst=$src
+ src=""
+
+ if [ -d $dst ]; then
+ instcmd=:
+ chmodcmd=""
+ else
+ instcmd=$mkdirprog
+ fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad
+# if $src (and thus $dsttmp) contains '*'.
+
+ if [ -f "$src" ] || [ -d "$src" ]
+ then
+ :
+ else
+ echo "install: $src does not exist"
+ exit 1
+ fi
+
+ if [ x"$dst" = x ]
+ then
+ echo "install: no destination specified"
+ exit 1
+ else
+ :
+ fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+ if [ -d $dst ]
+ then
+ dst="$dst"/`basename $src`
+ else
+ :
+ fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+# this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='
+ '
+IFS="${IFS-${defaultIFS}}"
+
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+ pathcomp="${pathcomp}${1}"
+ shift
+
+ if [ ! -d "${pathcomp}" ] ;
+ then
+ $mkdirprog "${pathcomp}"
+ else
+ :
+ fi
+
+ pathcomp="${pathcomp}/"
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+ $doit $instcmd $dst &&
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+ if [ x"$transformarg" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ dstfile=`basename $dst $transformbasename |
+ sed $transformarg`$transformbasename
+ fi
+
+# don't allow the sed command to completely eliminate the filename
+
+ if [ x"$dstfile" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ :
+ fi
+
+# Make a temp file name in the proper directory.
+
+ dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+ $doit $instcmd $src $dsttmp &&
+
+ trap "rm -f ${dsttmp}" 0 &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing. If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
+
+# Now rename the file to the real destination.
+
+ $doit $rmcmd -f $dstdir/$dstfile &&
+ $doit $mvcmd $dsttmp $dstdir/$dstfile
+
+fi &&
+
+
+exit 0
diff --git a/debian/fireflies/fireflies-2.08/installit.in b/debian/fireflies/fireflies-2.08/installit.in
new file mode 100755
index 00000000..9be46f1b
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/installit.in
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+prefix=$1
+
+install="@INSTALL@"
+prog='@PROGRAM@'
+bindir='@BINDIR@'
+confdir='@CONFDIR@'
+rcfile='@RCFILE@'
+
+case `uname` in
+CYGWIN*|cygwin*|MINGW*|mingw*)
+ $install src/$prog $prefix$bindir || exit 1
+ echo "Installed $prog in $bindir/"
+ ;;
+*)
+ mkdir -p "$prefix$bindir"
+ $install -m 755 src/$prog "$prefix$bindir" || exit 1
+ echo "Installed $prog in $prefix$bindir/"
+ mkdir -p "$prefix$confdir"
+ $install -m 644 fireflies.xml "$prefix$confdir" || exit 1
+ echo "Installed fireflies.xml in $prefix$confdir/"
+ if [ "$rcfile" != "" ]; then
+ sh ./add-xscreensaver "$prefix$rcfile"
+ echo "Added 'fireflies' entry to $prefix$rcfile"
+ else
+ echo "Could not find global XScreensaver file."
+ echo "You can add fireflies to your xscreensaver file by typing:"
+ echo " ./add-xscreensaver <filename>"
+ echo "from the build directory. <filename> would usually look like"
+ echo "/home/user/.xscreensaver"
+ fi
+ ;;
+esac
diff --git a/debian/fireflies/fireflies-2.08/libgfx-1.0.1.tar.gz b/debian/fireflies/fireflies-2.08/libgfx-1.0.1.tar.gz
new file mode 100644
index 00000000..0747db5c
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx-1.0.1.tar.gz
Binary files differ
diff --git a/debian/fireflies/fireflies-2.08/libgfx/CHANGES.txt b/debian/fireflies/fireflies-2.08/libgfx/CHANGES.txt
new file mode 100644
index 00000000..8f15b370
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/CHANGES.txt
@@ -0,0 +1,284 @@
+in Version 1.1
+--------------
+
+ o Got rid of the n-vector and n*n-matrix code as it was quite broken.
+
+ o All MxGUI menu commands are visible to external code now.
+
+ o Got rid of the command-line compilation stuff for VC.
+
+ o Moved all the Windows-specific headers -- which have never moved
+ beyond experimental -- into a Windows specific <gfx/win/...> location.
+
+ o Placed all libgfx code in the 'gfx' namespace. To improve
+ compatibility with old code, the <gfx/gfx.h> header will
+ automatically import this namespace into the default global one.
+ This behavior can be turned off by defining the GFX_NAMESPACE
+ preprocessor symbol.
+
+ o The scripting framework now allows for encapsulation of one syntax
+ inside another. However, this is experimental, and is likely to
+ change considerably in a future release.
+
+ o Extended the script interface to support void parsers that throw
+ exceptions on errors rather than passing return codes. In future,
+ this will become the default way of writing parser functions.
+
+ o The script_do_xxx() functions formerly defined in <gfx/script.h>
+ have been removed. They were long ago superseded by the
+ CmdEnv::do_xxx() methods.
+
+ o Fixed the unitize() method for quaternions, which did not in fact
+ result in a unit quaternion.
+
+ o Added a small collection of useful color manipulation routines in
+ <gfx/color.h>.
+
+ o Added an ortho_camera_lookat() function to complement the
+ longstanding camera_lookat() perspective function.
+
+in Version 1.0.3
+----------------
+
+ o When compiling with GCC, warnings are turned on by default. To
+ compile without warnings, you must use --disable-warnings when
+ running the 'configure' script.
+
+ o The tests used by the 'configure' script to detect OpenGL headers
+ were a bit broken. These tests are now much more reliable.
+
+ o The quaternion SLERPing code in previous revisions was incorrect
+ due to a typo in the code. This problem has been fixed.
+
+ o The file parser provided by <gfx/script.h> now supports the use of
+ libgzstream. When using the library, the scripting code will
+ automatically decompress files ending with {.gz, .z, .Z} suffixes.
+ You must use the --enable-gzstream option when running ./configure.
+
+ o New experimental build files for use with Apple's XCode
+ development environment are available in the 'xcode' directory.
+
+ o Added functions to <gfx/geom3d.h> for computing the volume
+ of tetrahedra.
+
+ o The MIN/MAX macros were broken under Cygwin.
+
+ o Fixed up a few miscellaneous compiler warnings.
+
+ o Added an experimental MxBinder class to <gfx/gui.h>. This makes
+ it fairly painless to bind MxGUI member functions to FLTK callbacks.
+
+ o Moved management of libgfx source code from CVS to Subversion.
+
+
+in Version 1.0.2
+----------------
+
+ o The MxGUI::snapshot_to_file() method now takes an optional
+ filename argument. When provided, the code will simply write a
+ snapshot to this file, rather than presenting the user with a file
+ selector.
+
+ o The MxGUI::snapshot_to_file() method will now save the alpha
+ channel of the window, assuming the file format supports that.
+ (Currently, only PNG and TIFF support alpha channels.)
+
+ o MxGUI OpenGL windows allocate alpha channels (when available).
+
+ o New vector/matrix modules:
+
+ - <gfx/symmat4.h> Symmetric 4x4 matrices; after <gfx/symmat3.h>
+ - <gfx/vecn.h> Preliminary support for n-D vectors
+ - <gfx/matn.h> Preliminary support for nxn matrices
+ - <gfx/symmatn.h> Preliminary support for nxn symmetric matrices
+
+ o Project files for Apple's ProjectBuilder (OS X) are located in the
+ macos subdirectory.
+
+ o Added checks in the autoconf script for <ext/hash_map> and
+ <ext/hash_set>, which is where GCC3 chooses to place these
+ non-standard STL components.
+
+ o The scripting framework now supports a CmdEnv::ignore_command()
+ method that lets client code specify command names that should be
+ ignored. This is also available from the input file itself by
+ using the 'ignore' command.
+
+ o The Baseball-derived classes now have read()/write() methods for
+ exchanging view information in a textual form.
+
+
+in Version 1.0.1
+----------------
+
+ o The library should now compile correctly under Visual Studio .NET
+ (a.k.a Visual C++ 7).
+
+ o The array<> and varray<> templates in <gfx/array.h> have been
+ removed. Their original purpose was to support legacy code
+ written in prior to the widespread adoption of STL. The array2<>
+ and array3<> templates remain, but they are now subclasses of
+ std::vector<>.
+
+ o Many of the functions in <gfx/geom3d.h> were re-written to by
+ templatized by vector class rather than by element type. Thus,
+ they may now be used with any suitable vector type, not just the
+ TVec3<> template defined in <gfx/vec3.h>.
+
+ o The CmdLine::collect_as_xxx() methods used by the file format
+ scripting interface now accept an optional 'offset' argument.
+ This parameter controls at which token the methods start reading.
+ Their previous behavior was to always begin reading at the first
+ token on the command line.
+
+ o The script_do_xxx() functions have been replaced with
+ CmdEnv::do_xxx() methods. The old global functions remain in
+ place for compatibility, but the new CmdEnv methods should be used
+ in preference to them.
+
+ o The autoconf process now sets up a symbolic FLTKCONFIG program
+ name. This is primarily of interest under MacOS X, where the
+ fltk-config program is used to finalize the build of a GUI
+ application so that it will launch correctly from the Finder.
+ The Makefile in the 'test' directory demonstrates the correct use
+ of this program as a post-build step.
+
+ o Bug fixes:
+
+ - The Raster destructor is now correctly declared as virtual.
+
+ - Certain type declarations have been made more rigorously
+ correct for proper compilation under GCC 3.
+
+ o A geom4d package has been added that provides functionality
+ analogous to the geom3d package.
+
+ o A couple of new experimental packages have been added for building
+ Win32 interfaces with MFC: mfc, wintools, gui-mfc. They are
+ unfinished, undocumented, and may be unstable. Most users of this
+ library will want to avoid them.
+
+
+in Version 1.0
+----------------
+
+ o The documentation is now (mostly) complete and (mostly)
+ synchronized with the actual code.
+
+ o Trackball & Arcball now share a common Baseball base class.
+
+ o Extensions to the autoconf script to allow for:
+
+ - Automatic configuration under Mac OS X
+
+ - Selection of whether to compile with Cygwin libraries or not
+
+ - Handle differences between FLTK 1.0.x and 1.1.x in the way
+ that OpenGL code is handled
+
+ o Some minor changes to make the library compile under Mac OS X.
+
+ o Bug fixes:
+
+ - ByteRaster copy constructer faulted due to incorrect size
+ computation for memcpy().
+
+in Version 0.9.3
+----------------
+
+ o Even more significant changes in the file format scripting package. The
+ old approach was getting increasingly unmanageable, and the reliance on
+ magic global constructors for handler registration was proving to be
+ problematic.
+
+ o Added descriptive interface to vector/matrix types to make
+ templates easier to write.
+
+ o Vector templates now handle assignment between vectors of
+ different types (e.g., Vec3 and Vec3f) much more cleanly.
+
+ o New packages to efficiently support symmetric matrix types
+ (e.g., <gfx/symmat3.h>).
+
+ o Added is_inside_bbox() and clamp_to_bbox() to geom3d package.
+
+ o More complete documentation.
+
+ o Bug fixes in various packages:
+
+ - fixed autoconf script to correctly detect headers
+
+ - Raster class now uses delete[] to match its use of new[].
+
+ - Scalar multiplication of vectors under VC++ must now use
+ constants of the same type as the vector elements. This
+ prevents a tricky bug related to the VC++ template
+ instantiation.
+
+
+in Version 0.9.2
+----------------
+
+ o Significant changes to the file format scripting package. All previous
+ global functions are still available for backwards compatibility, but
+ you may need to change the definitions of your command handlers.
+
+ o The interface of the <geom3d> package has changed considerably
+
+ - Changed the triangle_* functions to be inlined templated functions.
+ Before they only worked with Vec3's. Now, they'll work with any
+ TVec3<T> type.
+
+ - Added a templated compute_bbox() function.
+
+ o Camera and object control has changed a bit
+
+ - The camera_lookat() function in the <gltools> package was putting
+ both the perspective and lookAt transformations on the Projection
+ stack. It now correctly puts the perspective on the Projection
+ stack and the lookAt transformation on the ModelView stack.
+
+ - The Arcball and Trackball manipulators now apply all transformations
+ to the object, rather than applying rotation to the object and
+ translation to the camera.
+
+ o Added eigenvalue/eigenvector functions for all matrix types.
+
+ - Because of licensing restrictions, only the 2x2 implementation is
+ actually present, although prototypes exist for all dimensions.
+
+ o Added a restricted STL-like interface to <array> package.
+
+ o Bug fixes in various packages
+
+ - The 2x2 matrix inversion method was incorrect.
+
+ - read_tiff_image() always returned a 3-channel image. It will now
+ return an image with the same number of channels as in the file
+ read.
+
+
+in Version 0.9.1
+---------------
+
+ o Added a new quaternion package <gfx/quat.h>. [currently undocumented]
+
+ o Added Trackball & Arcball interactive rotation control packages. This
+ makes it much easier to write applications where the user interactively
+ spins a model in the window. [currently undocumented]
+
+ o Bug fixes in various packages.
+
+ - Vec3, Vec4 operators for Visual C++ were broken.
+ - Fixed improper deallocation of array2<> and array3<> objects.
+ - camera_lookat() incorrectly computed camera location.
+
+ o Applications built on the MxGUI framework can now receive key
+ press events in the OpenGL canvas area by overriding the key_press()
+ method.
+
+
+in Version 0.9
+-----------
+
+ This was the initial preliminary release for Fall 2000.
diff --git a/debian/fireflies/fireflies-2.08/libgfx/README.txt b/debian/fireflies/fireflies-2.08/libgfx/README.txt
new file mode 100644
index 00000000..cffdc13a
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/README.txt
@@ -0,0 +1,71 @@
+------------------------------------------------------------------------
+
+ libgfx: A Graphics Library
+ Version 1.1.0
+
+ Michael Garland <[email protected]>
+ http://graphics.cs.uiuc.edu/~garland/software/libgfx.html
+
+ Copyright (C) 1999-2005 Michael Garland.
+
+------------------------------------------------------------------------
+
+OVERVIEW
+--------
+
+The purpose of this library is to simplify the creation of computer graphics
+software. Specifically, it is targeted towards cross-platform development
+using the OpenGL rendering API and the FLTK interface toolkit. It attempts to
+provide facilities which are useful in the majority of graphics programs. It
+is derived from the MixKit library I wrote for doing polygonal surface
+simplification (see http://graphics.cs.uiuc.edu/~garland/software/qslim.html).
+
+Instructions on building and using the library can be found in the 'doc'
+subdirectory.
+
+
+
+CURRENT STATUS
+--------------
+
+After having gone through multiple pre-release versions, the first
+official version (1.0) was released in March 2002. The changes made in
+successive 1.0.x series releases were meant primarily to fix bugs and
+add new functionality. The current 1.1.x series of releases makes
+certain incompatible changes to the code, such as moving headers and
+removing support for out-dated mechanisms.
+
+While the license for this library does not require it, I'd like to
+encourage you to contribute bug reports, patches, and whatever
+improvements you might come up with to this library. In that way,
+others can benefit from your efforts, and you can benefit from the
+efforts of others.
+
+
+USAGE TERMS & CONDITIONS
+------------------------
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, and/or sell copies of the Software, and to permit persons
+to whom the Software is furnished to do so, provided that the above
+copyright notice(s) and this permission notice appear in all copies of
+the Software and that both the above copyright notice(s) and this
+permission notice appear in supporting documentation.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+of the copyright holder.
diff --git a/debian/fireflies/fireflies-2.08/libgfx/configure b/debian/fireflies/fireflies-2.08/libgfx/configure
new file mode 100755
index 00000000..0f37a1d9
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/configure
@@ -0,0 +1,9653 @@
+#! /bin/sh
+# From configure.in Revision: 1.19 .
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.59.
+#
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+ LC_TELEPHONE LC_TIME
+do
+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ eval $as_var=C; export $as_var
+ else
+ $as_unset $as_var
+ fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$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" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.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
+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+ 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
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ # We could just check for DJGPP; but this test a) works b) is more generic
+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+ if test -f conf$$.exe; then
+ # Don't use ln at all; we don't have any links
+ as_ln_s='cp -p'
+ else
+ as_ln_s='ln -s'
+ fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval 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="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" $as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_config_libobj_dir=.
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete. It should probably be removed, and
+# 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="include/gfx/gfx.h"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#if STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# if HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#if HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#if HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#else
+# if HAVE_STDINT_H
+# include <stdint.h>
+# endif
+#endif
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP CXX CXXFLAGS ac_ct_CXX CXXCPP RANLIB ac_ct_RANLIB RM FLTKCONFIG CC_DEPEND CXX_DEPEND IMG_LIBS EGREP X_CFLAGS X_LIBS X_PRE_LIBS X_EXTRA_LIBS X_CORE X_DCORE GL_LIBS FLTK_LIBS ALLOCA LIBOBJS LTLIBOBJS'
+ac_subst_files=''
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+ac_prev=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_option in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ eval "enable_$ac_feature=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_$ac_feature='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_$ac_package='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package | sed 's/-/_/g'`
+ eval "with_$ac_package=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+ { (exit 1); exit 1; }; }
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+ { (exit 1); exit 1; }; }
+ ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+ eval "$ac_envvar='$ac_optarg'"
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ { echo "$as_me: error: missing argument to $ac_option" >&2
+ { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+ localstatedir libdir includedir oldincludedir infodir mandir
+do
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) ;;
+ *) { 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: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+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_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=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+ { (exit 1); exit 1; }; }
+ else
+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+ { (exit 1); exit 1; }; }
+ fi
+fi
+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+ { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+ { (exit 1); exit 1; }; }
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CC_set=${CC+set}
+ac_env_CC_value=$CC
+ac_cv_env_CC_set=${CC+set}
+ac_cv_env_CC_value=$CC
+ac_env_CFLAGS_set=${CFLAGS+set}
+ac_env_CFLAGS_value=$CFLAGS
+ac_cv_env_CFLAGS_set=${CFLAGS+set}
+ac_cv_env_CFLAGS_value=$CFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+ac_env_CPP_set=${CPP+set}
+ac_env_CPP_value=$CPP
+ac_cv_env_CPP_set=${CPP+set}
+ac_cv_env_CPP_value=$CPP
+ac_env_CXX_set=${CXX+set}
+ac_env_CXX_value=$CXX
+ac_cv_env_CXX_set=${CXX+set}
+ac_cv_env_CXX_value=$CXX
+ac_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_env_CXXFLAGS_value=$CXXFLAGS
+ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_cv_env_CXXFLAGS_value=$CXXFLAGS
+ac_env_CXXCPP_set=${CXXCPP+set}
+ac_env_CXXCPP_value=$CXXCPP
+ac_cv_env_CXXCPP_set=${CXXCPP+set}
+ac_cv_env_CXXCPP_value=$CXXCPP
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+_ACEOF
+
+ cat <<_ACEOF
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --infodir=DIR info documentation [PREFIX/info]
+ --mandir=DIR man documentation [PREFIX/man]
+_ACEOF
+
+ cat <<\_ACEOF
+
+X features:
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-gzstream Allow for automatic (de)compression
+ --disable-warnings Disable GCC warning (default to on)
+ --enable-cygwin Use the Cygwin libraries (default=yes)
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-libtiff-lzw Use the libtiff LZW compression kit
+ --with-local=DIR Use libraries in DIR (default /usr/local)
+ --with-x use the X Window System
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
+ headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+ CXX C++ compiler command
+ CXXFLAGS C++ compiler flags
+ CXXCPP C++ preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+_ACEOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ ac_popdir=`pwd`
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d $ac_dir || continue
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
+
+ cd $ac_dir
+ # Check for guested configure; otherwise get Cygnus style configure.
+ if test -f $ac_srcdir/configure.gnu; then
+ echo
+ $SHELL $ac_srcdir/configure.gnu --help=recursive
+ elif test -f $ac_srcdir/configure; then
+ echo
+ $SHELL $ac_srcdir/configure --help=recursive
+ elif test -f $ac_srcdir/configure.ac ||
+ test -f $ac_srcdir/configure.in; then
+ echo
+ $ac_configure --help
+ else
+ echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi
+ cd $ac_popdir
+ done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+ cat <<\_ACEOF
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit 0
+fi
+exec 5>config.log
+cat >&5 <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.59. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ echo "PATH: $as_dir"
+done
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_sep=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+ 2)
+ ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+ # Get rid of the leading space.
+ ac_sep=" "
+ ;;
+ esac
+ done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+{
+ (set) 2>&1 |
+ case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ sed -n \
+ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+ ;;
+ *)
+ sed -n \
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ ;;
+ esac;
+}
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=$`echo $ac_var`
+ echo "$ac_var='"'"'$ac_val'"'"'"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------- ##
+## Output files. ##
+## ------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=$`echo $ac_var`
+ echo "$ac_var='"'"'$ac_val'"'"'"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ sed "/^$/d" confdefs.h | sort
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ echo "$as_me: caught signal $ac_signal"
+ echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core &&
+ rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+ ' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special
+ # files actually), so we avoid doing that.
+ if test -f "$cache_file"; then
+ { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . $cache_file;;
+ *) . ./$cache_file;;
+ esac
+ fi
+else
+ { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+ eval ac_new_val="\$ac_env_${ac_var}_value"
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
+echo "$as_me: former value: $ac_old_val" >&2;}
+ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
+echo "$as_me: current value: $ac_new_val" >&2;}
+ ac_cache_corrupted=:
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+ ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_headers="$ac_config_headers include/gfx/config.h"
+
+
+sys=`uname`
+
+
+
+# Check whether --with-libtiff-lzw or --without-libtiff-lzw was given.
+if test "${with_libtiff_lzw+set}" = set; then
+ withval="$with_libtiff_lzw"
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBTIFF_LZW 1
+_ACEOF
+
+fi;
+
+
+# Check whether --with-local or --without-local was given.
+if test "${with_local+set}" = set; then
+ withval="$with_local"
+ if test $withval = "yes"; then withval="/usr/local"; fi
+ CPPFLAGS="-I${withval}/include"
+ LDFLAGS="-L${withval}/lib"
+fi;
+
+# Check whether --enable-gzstream or --disable-gzstream was given.
+if test "${enable_gzstream+set}" = set; then
+ enableval="$enable_gzstream"
+
+fi;
+
+if test "$enable_gzstream" = "yes"; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_GZSTREAM 1
+_ACEOF
+
+fi
+
+# Check whether --enable-warnings or --disable-warnings was given.
+if test "${enable_warnings+set}" = set; then
+ enableval="$enable_warnings"
+
+else
+ enable_warnings="yes"
+fi;
+
+case $sys in
+ CYGWIN*|cygwin*)
+ # Check whether --enable-cygwin or --disable-cygwin was given.
+if test "${enable_cygwin+set}" = set; then
+ enableval="$enable_cygwin"
+
+fi;
+
+ if test "$enable_cygwin" = "no"; then
+ CFLAGS="$CFLAGS -mno-cygwin"
+ CPPFLAGS="$CPPFLAGS -mno-cygwin"
+ CXXFLAGS="$CXXFLAGS -mno-cygwin"
+ fi
+ ;;
+esac
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ CC=$ac_ct_CC
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ CC=$ac_ct_CC
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$ac_ct_CC" && break
+done
+
+ CC=$ac_ct_CC
+fi
+
+fi
+
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+ "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+ (eval $ac_link_default) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Find the output, starting from the most likely. This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+
+# Be careful to initialize this variable, since it used to be cached.
+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+ac_cv_exeext=
+# b.out is created by i960 compilers.
+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+ ;;
+ conftest.$ac_ext )
+ # This is the source file.
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ # FIXME: I believe we export ac_cv_exeext for Libtool,
+ # but it would be cool to find out if it's true. Does anybody
+ # maintain Libtool? --akim.
+ export ac_cv_exeext
+ break;;
+ * )
+ break;;
+ esac
+done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+ { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
+
+# Check the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ export ac_cv_exeext
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_g=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cc_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std1 is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std1. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX -qlanglvl=ansi
+# Ultrix and OSF/1 -std1
+# HP-UX 10.20 and later -Ae
+# HP-UX older versions -Aa -D_HPUX_SOURCE
+# SVR4 -Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+ x|xno)
+ echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+ *)
+ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+ CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
+# Some people use a C++ compiler to compile C. Since we use `exit',
+# in C++ we need to declare it. In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+ choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ for ac_declaration in \
+ '' \
+ 'extern "C" void std::exit (int) throw (); using std::exit;' \
+ 'extern "C" void std::exit (int); using std::exit;' \
+ 'extern "C" void exit (int) throw ();' \
+ 'extern "C" void exit (int);' \
+ 'void exit (int);'
+do
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+ echo '#ifdef __cplusplus' >>confdefs.h
+ echo $ac_declaration >>confdefs.h
+ echo '#endif' >>confdefs.h
+fi
+
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ :
+else
+ { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ echo "$as_me:$LINENO: result: $CXX" >&5
+echo "${ECHO_T}$CXX" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+echo "${ECHO_T}$ac_ct_CXX" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$ac_ct_CXX" && break
+done
+test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
+
+ CXX=$ac_ct_CXX
+fi
+
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+ "checking for C++ compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
+GXX=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+CXXFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cxx_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cxx_g=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cxx_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+for ac_declaration in \
+ '' \
+ 'extern "C" void std::exit (int) throw (); using std::exit;' \
+ 'extern "C" void std::exit (int); using std::exit;' \
+ 'extern "C" void exit (int) throw ();' \
+ 'extern "C" void exit (int);' \
+ 'void exit (int);'
+do
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+ echo '#ifdef __cplusplus' >>confdefs.h
+ echo $ac_declaration >>confdefs.h
+ echo '#endif' >>confdefs.h
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
+echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
+if test -z "$CXXCPP"; then
+ if test "${ac_cv_prog_CXXCPP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # Double quotes because CXXCPP needs to be expanded
+ for CXXCPP in "$CXX -E" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ break
+fi
+
+ done
+ ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+ CXXCPP=$ac_cv_prog_CXXCPP
+else
+ ac_cv_prog_CXXCPP=$CXXCPP
+fi
+echo "$as_me:$LINENO: result: $CXXCPP" >&5
+echo "${ECHO_T}$CXXCPP" >&6
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ :
+else
+ { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ echo "$as_me:$LINENO: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ RANLIB=$ac_ct_RANLIB
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+# Extract the first word of "rm", so it can be a program name with args.
+set dummy rm; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_RM+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $RM in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_RM="$RM" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+RM=$ac_cv_path_RM
+
+if test -n "$RM"; then
+ echo "$as_me:$LINENO: result: $RM" >&5
+echo "${ECHO_T}$RM" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+# Extract the first word of "fltk-config", so it can be a program name with args.
+set dummy fltk-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_FLTKCONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$FLTKCONFIG"; then
+ ac_cv_prog_FLTKCONFIG="$FLTKCONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_FLTKCONFIG="fltk-config"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_prog_FLTKCONFIG" && ac_cv_prog_FLTKCONFIG=":"
+fi
+fi
+FLTKCONFIG=$ac_cv_prog_FLTKCONFIG
+if test -n "$FLTKCONFIG"; then
+ echo "$as_me:$LINENO: result: $FLTKCONFIG" >&5
+echo "${ECHO_T}$FLTKCONFIG" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+if test $GCC = "yes"; then
+ CC_DEPEND="\$(CC) -M"
+ CXX_DEPEND="\$(CXX) -M"
+else
+ CC_DEPEND="makedepend"
+ CXX_DEPEND="makedepend"
+fi
+
+
+
+
+if test $GCC = "yes" -a "$enable_warnings" = "yes"; then
+ warning="-Wall -Wno-sign-compare"
+ CPPFLAGS="$CPPFLAGS $warning"
+fi
+
+
+
+
+echo "$as_me:$LINENO: checking for sqrt in -lm" >&5
+echo $ECHO_N "checking for sqrt in -lm... $ECHO_C" >&6
+if test "${ac_cv_lib_m_sqrt+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char sqrt ();
+int
+main ()
+{
+sqrt ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_m_sqrt=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_m_sqrt=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_m_sqrt" >&5
+echo "${ECHO_T}$ac_cv_lib_m_sqrt" >&6
+if test $ac_cv_lib_m_sqrt = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBM 1
+_ACEOF
+
+ LIBS="-lm $LIBS"
+
+fi
+
+
+BASE_LIBS=${LIBS}
+BASE_CFLAGS=${CFLAGS}
+BASE_CXXFLAGS=${CXXFLAGS}
+BASE_LDFLAGS=${LDFLAGS}
+
+IMG_LIBS=""
+
+
+
+
+echo "$as_me:$LINENO: checking for zlibVersion in -lz" >&5
+echo $ECHO_N "checking for zlibVersion in -lz... $ECHO_C" >&6
+if test "${ac_cv_lib_z_zlibVersion+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lz $IMG_LIBS $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char zlibVersion ();
+int
+main ()
+{
+zlibVersion ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_z_zlibVersion=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_z_zlibVersion=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_z_zlibVersion" >&5
+echo "${ECHO_T}$ac_cv_lib_z_zlibVersion" >&6
+if test $ac_cv_lib_z_zlibVersion = yes; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBZ 1
+_ACEOF
+ \
+ IMG_LIBS="$IMG_LIBS -lz"
+fi
+
+
+echo "$as_me:$LINENO: checking for jpeg_start_compress in -ljpeg" >&5
+echo $ECHO_N "checking for jpeg_start_compress in -ljpeg... $ECHO_C" >&6
+if test "${ac_cv_lib_jpeg_jpeg_start_compress+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ljpeg $IMG_LIBS $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char jpeg_start_compress ();
+int
+main ()
+{
+jpeg_start_compress ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_jpeg_jpeg_start_compress=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_jpeg_jpeg_start_compress=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_jpeg_jpeg_start_compress" >&5
+echo "${ECHO_T}$ac_cv_lib_jpeg_jpeg_start_compress" >&6
+if test $ac_cv_lib_jpeg_jpeg_start_compress = yes; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBJPEG 1
+_ACEOF
+ \
+ IMG_LIBS="$IMG_LIBS -ljpeg"
+fi
+
+
+echo "$as_me:$LINENO: checking for TIFFOpen in -ltiff" >&5
+echo $ECHO_N "checking for TIFFOpen in -ltiff... $ECHO_C" >&6
+if test "${ac_cv_lib_tiff_TIFFOpen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ltiff $IMG_LIBS $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char TIFFOpen ();
+int
+main ()
+{
+TIFFOpen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_tiff_TIFFOpen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_tiff_TIFFOpen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_tiff_TIFFOpen" >&5
+echo "${ECHO_T}$ac_cv_lib_tiff_TIFFOpen" >&6
+if test $ac_cv_lib_tiff_TIFFOpen = yes; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBTIFF 1
+_ACEOF
+ \
+ IMG_LIBS="$IMG_LIBS -ltiff"
+fi
+
+
+echo "$as_me:$LINENO: checking for png_read_image in -lpng" >&5
+echo $ECHO_N "checking for png_read_image in -lpng... $ECHO_C" >&6
+if test "${ac_cv_lib_png_png_read_image+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpng $IMG_LIBS $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char png_read_image ();
+int
+main ()
+{
+png_read_image ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_png_png_read_image=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_png_png_read_image=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_png_png_read_image" >&5
+echo "${ECHO_T}$ac_cv_lib_png_png_read_image" >&6
+if test $ac_cv_lib_png_png_read_image = yes; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBPNG 1
+_ACEOF
+ \
+ IMG_LIBS="$IMG_LIBS -lpng"
+fi
+
+
+
+
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+ then ac_cv_prog_egrep='grep -E'
+ else ac_cv_prog_egrep='egrep'
+ fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_header_stdc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdc=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then
+ :
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ exit(2);
+ exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+for ac_header in GL/gl.h OpenGL/gl.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ break
+fi
+
+done
+
+
+
+for ac_header in GL/glu.h OpenGL/glu.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ break
+fi
+
+done
+
+
+
+
+
+
+for ac_header in GL/glext.h GL/glxext.h GL/wglext.h OpenGL/glext.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#if HAVE_GL_GL_H
+ #include <GL/gl.h>
+ #elif HAVE_OPENGL_GL_H
+ #include <OpenGL/gl.h>
+ #endif
+
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+case $sys in
+
+Darwin*)
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_OPENGL "OpenGL"
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_POLYOFFSET 1
+_ACEOF
+
+ GL_LIBS="-framework AGL -framework OpenGL"
+ X_CORE="-framework Carbon -framework ApplicationServices"
+ X_DCORE="$X_CORE"
+ X_PRE_LIBS=""
+ X_EXTRA_LIBS=""
+
+
+
+
+
+ ;;
+
+CYGWIN*|cygwin*)
+ CPPFLAGS="${CPPFLAGS} -DWIN32"
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_OPENGL "OpenGL"
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_POLYOFFSET 1
+_ACEOF
+
+ GL_LIBS="-lopengl32 -lglu32"
+ X_DCORE="-lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32 -lwsock32"
+ X_CORE="-mwindows -lole32 -luuid -lcomctl32 -lwsock32"
+
+ X_PRE_LIBS=""
+ X_EXTRA_LIBS=""
+
+
+
+
+
+ ;;
+
+*)
+ echo "$as_me:$LINENO: checking for X" >&5
+echo $ECHO_N "checking for X... $ECHO_C" >&6
+
+
+# Check whether --with-x or --without-x was given.
+if test "${with_x+set}" = set; then
+ withval="$with_x"
+
+fi;
+# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
+if test "x$with_x" = xno; then
+ # The user explicitly disabled X.
+ have_x=disabled
+else
+ if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then
+ # Both variables are already set.
+ have_x=yes
+ else
+ if test "${ac_cv_have_x+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # One or both of the vars are not set, and there is no cached value.
+ac_x_includes=no ac_x_libraries=no
+rm -fr conftest.dir
+if mkdir conftest.dir; then
+ cd conftest.dir
+ # Make sure to not put "make" in the Imakefile rules, since we grep it out.
+ cat >Imakefile <<'_ACEOF'
+acfindx:
+ @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
+_ACEOF
+ if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
+ # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+ eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
+ # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
+ for ac_extension in a so sl; do
+ if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
+ test -f $ac_im_libdir/libX11.$ac_extension; then
+ ac_im_usrlibdir=$ac_im_libdir; break
+ fi
+ done
+ # Screen out bogus values from the imake configuration. They are
+ # bogus both because they are the default anyway, and because
+ # using them would break gcc on systems where it needs fixed includes.
+ case $ac_im_incroot in
+ /usr/include) ;;
+ *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
+ esac
+ case $ac_im_usrlibdir in
+ /usr/lib | /lib) ;;
+ *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
+ esac
+ fi
+ cd ..
+ rm -fr conftest.dir
+fi
+
+# Standard set of common directories for X headers.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+ac_x_header_dirs='
+/usr/X11/include
+/usr/X11R6/include
+/usr/X11R5/include
+/usr/X11R4/include
+
+/usr/include/X11
+/usr/include/X11R6
+/usr/include/X11R5
+/usr/include/X11R4
+
+/usr/local/X11/include
+/usr/local/X11R6/include
+/usr/local/X11R5/include
+/usr/local/X11R4/include
+
+/usr/local/include/X11
+/usr/local/include/X11R6
+/usr/local/include/X11R5
+/usr/local/include/X11R4
+
+/usr/X386/include
+/usr/x386/include
+/usr/XFree86/include/X11
+
+/usr/include
+/usr/local/include
+/usr/unsupported/include
+/usr/athena/include
+/usr/local/x11r5/include
+/usr/lpp/Xamples/include
+
+/usr/openwin/include
+/usr/openwin/share/include'
+
+if test "$ac_x_includes" = no; then
+ # Guess where to find include files, by looking for Intrinsic.h.
+ # First, try using that file with no special directory specified.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <X11/Intrinsic.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # We can compile using X headers with no special include directory.
+ac_x_includes=
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ for ac_dir in $ac_x_header_dirs; do
+ if test -r "$ac_dir/X11/Intrinsic.h"; then
+ ac_x_includes=$ac_dir
+ break
+ fi
+done
+fi
+rm -f conftest.err conftest.$ac_ext
+fi # $ac_x_includes = no
+
+if test "$ac_x_libraries" = no; then
+ # Check for the libraries.
+ # See if we find them without any special options.
+ # Don't add to $LIBS permanently.
+ ac_save_LIBS=$LIBS
+ LIBS="-lXt $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <X11/Intrinsic.h>
+int
+main ()
+{
+XtMalloc (0)
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ LIBS=$ac_save_LIBS
+# We can link X programs with no special library path.
+ac_x_libraries=
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+LIBS=$ac_save_LIBS
+for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
+do
+ # Don't even attempt the hair of trying to link an X program!
+ for ac_extension in a so sl; do
+ if test -r $ac_dir/libXt.$ac_extension; then
+ ac_x_libraries=$ac_dir
+ break 2
+ fi
+ done
+done
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi # $ac_x_libraries = no
+
+if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then
+ # Didn't find X anywhere. Cache the known absence of X.
+ ac_cv_have_x="have_x=no"
+else
+ # Record where we found X for the cache.
+ ac_cv_have_x="have_x=yes \
+ ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
+fi
+fi
+
+ fi
+ eval "$ac_cv_have_x"
+fi # $with_x != no
+
+if test "$have_x" != yes; then
+ echo "$as_me:$LINENO: result: $have_x" >&5
+echo "${ECHO_T}$have_x" >&6
+ no_x=yes
+else
+ # If each of the values was on the command line, it overrides each guess.
+ test "x$x_includes" = xNONE && x_includes=$ac_x_includes
+ test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
+ # Update the cache value to reflect the command line values.
+ ac_cv_have_x="have_x=yes \
+ ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
+ echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5
+echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
+fi
+
+if test "$no_x" = yes; then
+ # Not all programs may use this symbol, but it does not hurt to define it.
+
+cat >>confdefs.h <<\_ACEOF
+#define X_DISPLAY_MISSING 1
+_ACEOF
+
+ X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
+else
+ if test -n "$x_includes"; then
+ X_CFLAGS="$X_CFLAGS -I$x_includes"
+ fi
+
+ # It would also be nice to do this for all -L options, not just this one.
+ if test -n "$x_libraries"; then
+ X_LIBS="$X_LIBS -L$x_libraries"
+ # For Solaris; some versions of Sun CC require a space after -R and
+ # others require no space. Words are not sufficient . . . .
+ case `(uname -sr) 2>/dev/null` in
+ "SunOS 5"*)
+ echo "$as_me:$LINENO: checking whether -R must be followed by a space" >&5
+echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6
+ ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_R_nospace=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_R_nospace=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test $ac_R_nospace = yes; then
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ X_LIBS="$X_LIBS -R$x_libraries"
+ else
+ LIBS="$ac_xsave_LIBS -R $x_libraries"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_R_space=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_R_space=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test $ac_R_space = yes; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ X_LIBS="$X_LIBS -R $x_libraries"
+ else
+ echo "$as_me:$LINENO: result: neither works" >&5
+echo "${ECHO_T}neither works" >&6
+ fi
+ fi
+ LIBS=$ac_xsave_LIBS
+ esac
+ fi
+
+ # Check for system-dependent libraries X programs must link with.
+ # Do this before checking for the system-independent R6 libraries
+ # (-lICE), since we may need -lsocket or whatever for X linking.
+
+ if test "$ISC" = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
+ else
+ # Martyn Johnson says this is needed for Ultrix, if the X
+ # libraries were built with DECnet support. And Karl Berry says
+ # the Alpha needs dnet_stub (dnet does not exist).
+ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char XOpenDisplay ();
+int
+main ()
+{
+XOpenDisplay ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5
+echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6
+if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dnet_ntoa ();
+int
+main ()
+{
+dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dnet_dnet_ntoa=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dnet_dnet_ntoa=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6
+if test $ac_cv_lib_dnet_dnet_ntoa = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+fi
+
+ if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+ echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5
+echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6
+if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet_stub $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dnet_ntoa ();
+int
+main ()
+{
+dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dnet_stub_dnet_ntoa=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dnet_stub_dnet_ntoa=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6
+if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
+fi
+
+ fi
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$ac_xsave_LIBS"
+
+ # [email protected] says -lnsl (and -lsocket) are needed for his 386/AT,
+ # to get the SysV transport functions.
+ # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
+ # needs -lnsl.
+ # The nsl library prevents programs from opening the X display
+ # on Irix 5.2, according to T.E. Dickey.
+ # The functions gethostbyname, getservbyname, and inet_addr are
+ # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
+ echo "$as_me:$LINENO: checking for gethostbyname" >&5
+echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6
+if test "${ac_cv_func_gethostbyname+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define gethostbyname to an innocuous variant, in case <limits.h> declares gethostbyname.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define gethostbyname innocuous_gethostbyname
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char gethostbyname (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef gethostbyname
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gethostbyname ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
+choke me
+#else
+char (*f) () = gethostbyname;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != gethostbyname;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_gethostbyname=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_gethostbyname=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
+
+ if test $ac_cv_func_gethostbyname = no; then
+ echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5
+echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gethostbyname ();
+int
+main ()
+{
+gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_nsl_gethostbyname=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_nsl_gethostbyname=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
+if test $ac_cv_lib_nsl_gethostbyname = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+fi
+
+ if test $ac_cv_lib_nsl_gethostbyname = no; then
+ echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5
+echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6
+if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbsd $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gethostbyname ();
+int
+main ()
+{
+gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_bsd_gethostbyname=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_bsd_gethostbyname=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6
+if test $ac_cv_lib_bsd_gethostbyname = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
+fi
+
+ fi
+ fi
+
+ # [email protected] says without -lsocket,
+ # socket/setsockopt and other routines are undefined under SCO ODT
+ # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
+ # on later versions), says Simon Leinen: it contains gethostby*
+ # variants that don't use the name server (or something). -lsocket
+ # must be given before -lnsl if both are needed. We assume that
+ # if connect needs -lnsl, so does gethostbyname.
+ echo "$as_me:$LINENO: checking for connect" >&5
+echo $ECHO_N "checking for connect... $ECHO_C" >&6
+if test "${ac_cv_func_connect+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define connect to an innocuous variant, in case <limits.h> declares connect.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define connect innocuous_connect
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char connect (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef connect
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char connect ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_connect) || defined (__stub___connect)
+choke me
+#else
+char (*f) () = connect;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != connect;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_connect=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_connect=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5
+echo "${ECHO_T}$ac_cv_func_connect" >&6
+
+ if test $ac_cv_func_connect = no; then
+ echo "$as_me:$LINENO: checking for connect in -lsocket" >&5
+echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6
+if test "${ac_cv_lib_socket_connect+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char connect ();
+int
+main ()
+{
+connect ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_socket_connect=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_socket_connect=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5
+echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6
+if test $ac_cv_lib_socket_connect = yes; then
+ X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+fi
+
+ fi
+
+ # Guillermo Gomez says -lposix is necessary on A/UX.
+ echo "$as_me:$LINENO: checking for remove" >&5
+echo $ECHO_N "checking for remove... $ECHO_C" >&6
+if test "${ac_cv_func_remove+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define remove to an innocuous variant, in case <limits.h> declares remove.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define remove innocuous_remove
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char remove (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef remove
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char remove ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_remove) || defined (__stub___remove)
+choke me
+#else
+char (*f) () = remove;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != remove;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_remove=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_remove=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5
+echo "${ECHO_T}$ac_cv_func_remove" >&6
+
+ if test $ac_cv_func_remove = no; then
+ echo "$as_me:$LINENO: checking for remove in -lposix" >&5
+echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6
+if test "${ac_cv_lib_posix_remove+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lposix $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char remove ();
+int
+main ()
+{
+remove ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_posix_remove=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_posix_remove=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5
+echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6
+if test $ac_cv_lib_posix_remove = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+fi
+
+ fi
+
+ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+ echo "$as_me:$LINENO: checking for shmat" >&5
+echo $ECHO_N "checking for shmat... $ECHO_C" >&6
+if test "${ac_cv_func_shmat+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define shmat to an innocuous variant, in case <limits.h> declares shmat.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define shmat innocuous_shmat
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shmat (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shmat
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shmat ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_shmat) || defined (__stub___shmat)
+choke me
+#else
+char (*f) () = shmat;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shmat;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_shmat=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_shmat=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5
+echo "${ECHO_T}$ac_cv_func_shmat" >&6
+
+ if test $ac_cv_func_shmat = no; then
+ echo "$as_me:$LINENO: checking for shmat in -lipc" >&5
+echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6
+if test "${ac_cv_lib_ipc_shmat+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lipc $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shmat ();
+int
+main ()
+{
+shmat ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_ipc_shmat=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_ipc_shmat=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5
+echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6
+if test $ac_cv_lib_ipc_shmat = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+fi
+
+ fi
+ fi
+
+ # Check for libraries that X11R6 Xt/Xaw programs need.
+ ac_save_LDFLAGS=$LDFLAGS
+ test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
+ # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+ # check for ICE first), but we must link in the order -lSM -lICE or
+ # we get undefined symbols. So assume we have SM if we have ICE.
+ # These have to be linked with before -lX11, unlike the other
+ # libraries we check for below, so use a different variable.
+ # John Interrante, Karl Berry
+ echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5
+echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6
+if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char IceConnectionNumber ();
+int
+main ()
+{
+IceConnectionNumber ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_ICE_IceConnectionNumber=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_ICE_IceConnectionNumber=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6
+if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then
+ X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
+fi
+
+ LDFLAGS=$ac_save_LDFLAGS
+
+fi
+
+ CFLAGS="${CFLAGS} ${X_CFLAGS}"
+ CXXFLAGS="${CXXFLAGS} ${X_CFLAGS}"
+ LIBS="${X_PRE_LIBS} -lX11 ${X_EXTRA_LIBS} ${LIBS}"
+ LDFLAGS="${LDFLAGS} ${X_LIBS}"
+
+ X_CORE="-lX11 -lXext"
+ X_DCORE="$X_CORE"
+
+ glneeds="$X_CORE $X_EXTRA_LIBS"
+
+ echo "$as_me:$LINENO: checking for glBegin in -lGL" >&5
+echo $ECHO_N "checking for glBegin in -lGL... $ECHO_C" >&6
+if test "${ac_cv_lib_GL_glBegin+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lGL $glneeds $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char glBegin ();
+int
+main ()
+{
+glBegin ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_GL_glBegin=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_GL_glBegin=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_GL_glBegin" >&5
+echo "${ECHO_T}$ac_cv_lib_GL_glBegin" >&6
+if test $ac_cv_lib_GL_glBegin = yes; then
+ \
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_OPENGL "OpenGL"
+_ACEOF
+ GL_LIBS="-lGL -lGLU"
+else
+ \
+ echo "$as_me:$LINENO: checking for glBegin in -lMesaGL" >&5
+echo $ECHO_N "checking for glBegin in -lMesaGL... $ECHO_C" >&6
+if test "${ac_cv_lib_MesaGL_glBegin+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lMesaGL $glneeds $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char glBegin ();
+int
+main ()
+{
+glBegin ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_MesaGL_glBegin=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_MesaGL_glBegin=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_MesaGL_glBegin" >&5
+echo "${ECHO_T}$ac_cv_lib_MesaGL_glBegin" >&6
+if test $ac_cv_lib_MesaGL_glBegin = yes; then
+ \
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_OPENGL "Mesa"
+_ACEOF
+
+ GL_LIBS="-lMesaGL -lMesaGLU"
+fi
+
+fi
+
+
+ LIBS="${GL_LIBS} $glneeds"
+
+ echo "$as_me:$LINENO: checking for glPolygonOffset" >&5
+echo $ECHO_N "checking for glPolygonOffset... $ECHO_C" >&6
+if test "${ac_cv_func_glPolygonOffset+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define glPolygonOffset to an innocuous variant, in case <limits.h> declares glPolygonOffset.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define glPolygonOffset innocuous_glPolygonOffset
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char glPolygonOffset (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef glPolygonOffset
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char glPolygonOffset ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_glPolygonOffset) || defined (__stub___glPolygonOffset)
+choke me
+#else
+char (*f) () = glPolygonOffset;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != glPolygonOffset;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_glPolygonOffset=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_glPolygonOffset=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_glPolygonOffset" >&5
+echo "${ECHO_T}$ac_cv_func_glPolygonOffset" >&6
+if test $ac_cv_func_glPolygonOffset = yes; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_POLYOFFSET 1
+_ACEOF
+
+fi
+
+ echo "$as_me:$LINENO: checking for glPolygonOffsetEXT" >&5
+echo $ECHO_N "checking for glPolygonOffsetEXT... $ECHO_C" >&6
+if test "${ac_cv_func_glPolygonOffsetEXT+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define glPolygonOffsetEXT to an innocuous variant, in case <limits.h> declares glPolygonOffsetEXT.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define glPolygonOffsetEXT innocuous_glPolygonOffsetEXT
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char glPolygonOffsetEXT (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef glPolygonOffsetEXT
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char glPolygonOffsetEXT ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_glPolygonOffsetEXT) || defined (__stub___glPolygonOffsetEXT)
+choke me
+#else
+char (*f) () = glPolygonOffsetEXT;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != glPolygonOffsetEXT;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_glPolygonOffsetEXT=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_glPolygonOffsetEXT=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_glPolygonOffsetEXT" >&5
+echo "${ECHO_T}$ac_cv_func_glPolygonOffsetEXT" >&6
+if test $ac_cv_func_glPolygonOffsetEXT = yes; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_POLYOFFSET_EXT 1
+_ACEOF
+
+fi
+
+ ;;
+esac
+
+
+
+
+
+
+FLTK_LIBS="-lfltk"
+
+echo "$as_me:$LINENO: checking for FLTK library" >&5
+echo $ECHO_N "checking for FLTK library... $ECHO_C" >&6
+save_libs=$LIBS
+LIBS="$FLTK_LIBS $X_CORE $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <FL/Fl.H>
+int
+main ()
+{
+Fl::run();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_FLTK 1
+_ACEOF
+
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ FLTK_LIBS=""
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$save_libs
+
+echo "$as_me:$LINENO: checking for FLTK GL support" >&5
+echo $ECHO_N "checking for FLTK GL support... $ECHO_C" >&6
+save_libs=$LIBS
+LIBS="$FLTK_LIBS $GL_LIBS $X_CORE $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <FL/Fl.H>
+ #include <FL/Fl_Gl_Window.H>
+int
+main ()
+{
+Fl_Gl_Window win(640,480);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_FLTK_GL 1
+_ACEOF
+
+ echo "$as_me:$LINENO: result: in libfltk" >&5
+echo "${ECHO_T}in libfltk" >&6
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+FLTK_LIBS="-lfltk_gl $FLTK_LIBS"
+ LIBS="$FLTK_LIBS $GL_LIBS $X_CORE $save_libs"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <FL/Fl.H>
+ #include <FL/Fl_Gl_Window.H>
+int
+main ()
+{
+Fl_Gl_Window win(640,480);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_FLTK_GL 1
+_ACEOF
+
+ echo "$as_me:$LINENO: result: in libfltk_gl" >&5
+echo "${ECHO_T}in libfltk_gl" >&6
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+FLTK_LIBS="-lfltk"
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+LIBS=$save_libs
+
+
+LIBS=${BASE_LIBS}
+CFLAGS=${BASE_CFLAGS}
+CXXFLAGS=${BASE_CXXFLAGS}
+LDFLAGS=${BASE_LDFLAGS}
+
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_header_stdc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdc=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then
+ :
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ exit(2);
+ exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+
+for ac_header in limits.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+for ac_header in hash_map
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in hash_set
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in ext/hash_map
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in ext/hash_set
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in valarray
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in sstream
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in strstream
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
+echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+if test "${ac_cv_c_const+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this. */
+ typedef int charset[2];
+ const charset x;
+ /* SunOS 4.1.1 cc rejects this. */
+ char const *const *ccp;
+ char **p;
+ /* NEC SVR4.0.2 mips cc rejects this. */
+ struct point {int x, y;};
+ static struct point const zero = {0,0};
+ /* AIX XL C 1.02.0.0 rejects this.
+ It does not let you subtract one const X* pointer from another in
+ an arm of an if-expression whose if-part is not a constant
+ expression */
+ const char *g = "string";
+ ccp = &g + (g ? g-g : 0);
+ /* HPUX 7.0 cc rejects these. */
+ ++ccp;
+ p = (char**) ccp;
+ ccp = (char const *const *) p;
+ { /* SCO 3.2v4 cc rejects this. */
+ char *t;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+ }
+ { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
+ int x[] = {25, 17};
+ const int *foo = &x[0];
+ ++foo;
+ }
+ { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+ typedef const int *iptr;
+ iptr p = 0;
+ ++p;
+ }
+ { /* AIX XL C 1.02.0.0 rejects this saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; b->j = 5;
+ }
+ { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+ }
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_c_const=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_c_const=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
+echo "${ECHO_T}$ac_cv_c_const" >&6
+if test $ac_cv_c_const = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define const
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for inline" >&5
+echo $ECHO_N "checking for inline... $ECHO_C" >&6
+if test "${ac_cv_c_inline+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
+#endif
+
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_c_inline=$ac_kw; break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
+echo "${ECHO_T}$ac_cv_c_inline" >&6
+
+
+case $ac_cv_c_inline in
+ inline | yes) ;;
+ *)
+ case $ac_cv_c_inline in
+ no) ac_val=;;
+ *) ac_val=$ac_cv_c_inline;;
+ esac
+ cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+ ;;
+esac
+
+
+echo "$as_me:$LINENO: checking for type bool" >&5
+echo $ECHO_N "checking for type bool... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+bool x; x;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_BOOL 1
+_ACEOF
+
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments. Useless!
+echo "$as_me:$LINENO: checking for working alloca.h" >&5
+echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6
+if test "${ac_cv_working_alloca_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <alloca.h>
+int
+main ()
+{
+char *p = (char *) alloca (2 * sizeof (int));
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_working_alloca_h=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_working_alloca_h=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
+echo "${ECHO_T}$ac_cv_working_alloca_h" >&6
+if test $ac_cv_working_alloca_h = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ALLOCA_H 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for alloca" >&5
+echo $ECHO_N "checking for alloca... $ECHO_C" >&6
+if test "${ac_cv_func_alloca_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# else
+# if HAVE_ALLOCA_H
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+# endif
+# endif
+# endif
+# endif
+#endif
+
+int
+main ()
+{
+char *p = (char *) alloca (1);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_alloca_works=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_alloca_works=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
+echo "${ECHO_T}$ac_cv_func_alloca_works" >&6
+
+if test $ac_cv_func_alloca_works = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ALLOCA 1
+_ACEOF
+
+else
+ # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+# that cause trouble. Some versions do not even contain alloca or
+# contain a buggy version. If you still want to use their alloca,
+# use ar to extract alloca.o from them instead of compiling alloca.c.
+
+ALLOCA=alloca.$ac_objext
+
+cat >>confdefs.h <<\_ACEOF
+#define C_ALLOCA 1
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
+echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6
+if test "${ac_cv_os_cray+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#if defined(CRAY) && ! defined(CRAY2)
+webecray
+#else
+wenotbecray
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "webecray" >/dev/null 2>&1; then
+ ac_cv_os_cray=yes
+else
+ ac_cv_os_cray=no
+fi
+rm -f conftest*
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
+echo "${ECHO_T}$ac_cv_os_cray" >&6
+if test $ac_cv_os_cray = yes; then
+ for ac_func in _getb67 GETB67 getb67; do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define CRAY_STACKSEG_END $ac_func
+_ACEOF
+
+ break
+fi
+
+ done
+fi
+
+echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
+echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6
+if test "${ac_cv_c_stack_direction+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then
+ ac_cv_c_stack_direction=0
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+int
+find_stack_direction ()
+{
+ static char *addr = 0;
+ auto char dummy;
+ if (addr == 0)
+ {
+ addr = &dummy;
+ return find_stack_direction ();
+ }
+ else
+ return (&dummy > addr) ? 1 : -1;
+}
+
+int
+main ()
+{
+ exit (find_stack_direction () < 0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_c_stack_direction=1
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_c_stack_direction=-1
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
+echo "${ECHO_T}$ac_cv_c_stack_direction" >&6
+
+cat >>confdefs.h <<_ACEOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
+_ACEOF
+
+
+fi
+
+
+
+
+
+
+
+for ac_func in rint getrusage times random getopt getopt_long
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+ROOT=`pwd`
+
+CPPFLAGS="$CPPFLAGS -I${ROOT}/include -DHAVE_CONFIG_H"
+CFLAGS="$BASE_CFLAGS $CPPFLAGS"
+CXXFLAGS="$BASE_CXXFLAGS $CPPFLAGS"
+LDFLAGS="$BASE_LDFLAGS -L${ROOT}/src"
+
+ ac_config_files="$ac_config_files gfx-config"
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+ (set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n \
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ ;;
+ esac;
+} |
+ sed '
+ t clear
+ : clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ : end' >>confcache
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
+ if test -w $cache_file; then
+ test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+ cat confcache >$cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[ ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[ ]*$//;
+}'
+fi
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_i=`echo "$ac_i" |
+ sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+ # 2. Add them.
+ ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+ ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+ LC_TELEPHONE LC_TIME
+do
+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ eval $as_var=C; export $as_var
+ else
+ $as_unset $as_var
+ fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$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" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.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:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+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
+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+ 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:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+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
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ # We could just check for DJGPP; but this test a) works b) is more generic
+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+ if test -f conf$$.exe; then
+ # Don't use ln at all; we don't have any links
+ as_ln_s='cp -p'
+ else
+ as_ln_s='ln -s'
+ fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval 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="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" $as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling. Logging --version etc. is OK.
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.59. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+ echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+ echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+ echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+ echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Report bugs to <[email protected]>."
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.59,
+ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value. By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "x$1" : 'x\([^=]*\)='`
+ ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ -*)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ *) # This is not an option, so the user has probably given explicit
+ # arguments.
+ ac_option=$1
+ ac_need_defaults=false;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --vers* | -V )
+ echo "$ac_cs_version"; exit 0 ;;
+ --he | --h)
+ # Conflict between --help and --header
+ { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; };;
+ --help | --hel | -h )
+ echo "$ac_cs_usage"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+ ac_need_defaults=false;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; } ;;
+
+ *) ac_config_targets="$ac_config_targets $1" ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+ echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+ exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
+_ACEOF
+
+
+
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+ case "$ac_config_target" in
+ # Handling of arguments.
+ "gfx-config" ) CONFIG_FILES="$CONFIG_FILES gfx-config" ;;
+ "include/gfx/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/gfx/config.h" ;;
+ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+ trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./confstat$$-$RANDOM
+ (umask 077 && mkdir $tmp)
+} ||
+{
+ echo "$me: cannot create a temporary directory in ." >&2
+ { (exit 1); exit 1; }
+}
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+ # Protect against being on the right side of a sed subst in config.status.
+ sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+ s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s,@SHELL@,$SHELL,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@exec_prefix@,$exec_prefix,;t t
+s,@prefix@,$prefix,;t t
+s,@program_transform_name@,$program_transform_name,;t t
+s,@bindir@,$bindir,;t t
+s,@sbindir@,$sbindir,;t t
+s,@libexecdir@,$libexecdir,;t t
+s,@datadir@,$datadir,;t t
+s,@sysconfdir@,$sysconfdir,;t t
+s,@sharedstatedir@,$sharedstatedir,;t t
+s,@localstatedir@,$localstatedir,;t t
+s,@libdir@,$libdir,;t t
+s,@includedir@,$includedir,;t t
+s,@oldincludedir@,$oldincludedir,;t t
+s,@infodir@,$infodir,;t t
+s,@mandir@,$mandir,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@DEFS@,$DEFS,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@LIBS@,$LIBS,;t t
+s,@CC@,$CC,;t t
+s,@CFLAGS@,$CFLAGS,;t t
+s,@LDFLAGS@,$LDFLAGS,;t t
+s,@CPPFLAGS@,$CPPFLAGS,;t t
+s,@ac_ct_CC@,$ac_ct_CC,;t t
+s,@EXEEXT@,$EXEEXT,;t t
+s,@OBJEXT@,$OBJEXT,;t t
+s,@CPP@,$CPP,;t t
+s,@CXX@,$CXX,;t t
+s,@CXXFLAGS@,$CXXFLAGS,;t t
+s,@ac_ct_CXX@,$ac_ct_CXX,;t t
+s,@CXXCPP@,$CXXCPP,;t t
+s,@RANLIB@,$RANLIB,;t t
+s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+s,@RM@,$RM,;t t
+s,@FLTKCONFIG@,$FLTKCONFIG,;t t
+s,@CC_DEPEND@,$CC_DEPEND,;t t
+s,@CXX_DEPEND@,$CXX_DEPEND,;t t
+s,@IMG_LIBS@,$IMG_LIBS,;t t
+s,@EGREP@,$EGREP,;t t
+s,@X_CFLAGS@,$X_CFLAGS,;t t
+s,@X_LIBS@,$X_LIBS,;t t
+s,@X_PRE_LIBS@,$X_PRE_LIBS,;t t
+s,@X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t
+s,@X_CORE@,$X_CORE,;t t
+s,@X_DCORE@,$X_DCORE,;t t
+s,@GL_LIBS@,$GL_LIBS,;t t
+s,@FLTK_LIBS@,$FLTK_LIBS,;t t
+s,@ALLOCA@,$ALLOCA,;t t
+s,@LIBOBJS@,$LIBOBJS,;t t
+s,@LTLIBOBJS@,$LTLIBOBJS,;t t
+CEOF
+
+_ACEOF
+
+ cat >>$CONFIG_STATUS <<\_ACEOF
+ # Split the substitutions into bite-sized pieces for seds with
+ # small command number limits, like on Digital OSF/1 and HP-UX.
+ ac_max_sed_lines=48
+ ac_sed_frag=1 # Number of current file.
+ ac_beg=1 # First line for current file.
+ ac_end=$ac_max_sed_lines # Line after last line for current file.
+ ac_more_lines=:
+ ac_sed_cmds=
+ while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ else
+ sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ fi
+ if test ! -s $tmp/subs.frag; then
+ ac_more_lines=false
+ else
+ # The purpose of the label and of the branching condition is to
+ # speed up the sed processing (if there are no `@' at all, there
+ # is no need to browse any of the substitutions).
+ # These are the two extra sed commands mentioned above.
+ (echo ':t
+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+ fi
+ ac_sed_frag=`expr $ac_sed_frag + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_lines`
+ fi
+ done
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+ fi
+fi # test -n "$CONFIG_FILES"
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case $ac_file in
+ - | *:- | *:-:* ) # input from stdin
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+ # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
+
+
+
+ if test x"$ac_file" != x-; then
+ { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ if test x"$ac_file" = x-; then
+ configure_input=
+ else
+ configure_input="$ac_file. "
+ fi
+ configure_input=$configure_input"Generated from `echo $ac_file_in |
+ sed 's,.*/,,'` by configure."
+
+ # First look for the input files in the build tree, otherwise in the
+ # src tree.
+ ac_file_inputs=`IFS=:
+ for f in $ac_file_in; do
+ case $f in
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo "$f";;
+ *) # Relative
+ if test -f "$f"; then
+ # Build tree
+ echo "$f"
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo "$srcdir/$f"
+ else
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+ sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+ rm -f $tmp/stdin
+ if test x"$ac_file" != x-; then
+ mv $tmp/out $ac_file
+ else
+ cat $tmp/out
+ rm -f $tmp/out
+ fi
+
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_HEADER section.
+#
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+ac_dB='[ ].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_uB='$,\1#\2define\3'
+ac_uC=' '
+ac_uD=',;t'
+
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case $ac_file in
+ - | *:- | *:-:* ) # input from stdin
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+ test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+ # First look for the input files in the build tree, otherwise in the
+ # src tree.
+ ac_file_inputs=`IFS=:
+ for f in $ac_file_in; do
+ case $f in
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ # Do quote $f, to prevent DOS paths from being IFS'd.
+ echo "$f";;
+ *) # Relative
+ if test -f "$f"; then
+ # Build tree
+ echo "$f"
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo "$srcdir/$f"
+ else
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+ # Remove the trailing spaces.
+ sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
+
+_ACEOF
+
+# Transform confdefs.h into two sed scripts, `conftest.defines' and
+# `conftest.undefs', that substitutes the proper values into
+# config.h.in to produce config.h. The first handles `#define'
+# templates, and the second `#undef' templates.
+# And first: Protect against being on the right side of a sed subst in
+# config.status. Protect against being in an unquoted here document
+# in config.status.
+rm -f conftest.defines conftest.undefs
+# Using a here document instead of a string reduces the quoting nightmare.
+# Putting comments in sed scripts is not portable.
+#
+# `end' is used to avoid that the second main sed command (meant for
+# 0-ary CPP macros) applies to n-ary macro definitions.
+# See the Autoconf documentation for `clear'.
+cat >confdef2sed.sed <<\_ACEOF
+s/[\\&,]/\\&/g
+s,[\\$`],\\&,g
+t clear
+: clear
+s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+t end
+s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+: end
+_ACEOF
+# If some macros were called several times there might be several times
+# the same #defines, which is useless. Nevertheless, we may not want to
+# sort them, since we want the *last* AC-DEFINE to be honored.
+uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+rm -f confdef2sed.sed
+
+# This sed command replaces #undef with comments. This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >>conftest.undefs <<\_ACEOF
+s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+_ACEOF
+
+# Break up conftest.defines because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+echo ' :' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.defines >/dev/null
+do
+ # Write a limited-size here document to $tmp/defines.sed.
+ echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+ # Speed up: don't consider the non `#define' lines.
+ echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
+ # Work around the forget-to-reset-the-flag bug.
+ echo 't clr' >>$CONFIG_STATUS
+ echo ': clr' >>$CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+ echo 'CEOF
+ sed -f $tmp/defines.sed $tmp/in >$tmp/out
+ rm -f $tmp/in
+ mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+ rm -f conftest.defines
+ mv conftest.tail conftest.defines
+done
+rm -f conftest.defines
+echo ' fi # grep' >>$CONFIG_STATUS
+echo >>$CONFIG_STATUS
+
+# Break up conftest.undefs because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.undefs >/dev/null
+do
+ # Write a limited-size here document to $tmp/undefs.sed.
+ echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+ # Speed up: don't consider the non `#undef'
+ echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
+ # Work around the forget-to-reset-the-flag bug.
+ echo 't clr' >>$CONFIG_STATUS
+ echo ': clr' >>$CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+ echo 'CEOF
+ sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+ rm -f $tmp/in
+ mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+ rm -f conftest.undefs
+ mv conftest.tail conftest.undefs
+done
+rm -f conftest.undefs
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ if test x"$ac_file" = x-; then
+ echo "/* Generated by configure. */" >$tmp/config.h
+ else
+ echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
+ fi
+ cat $tmp/in >>$tmp/config.h
+ rm -f $tmp/in
+ if test x"$ac_file" != x-; then
+ if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+ { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ rm -f $ac_file
+ mv $tmp/config.h $ac_file
+ fi
+ else
+ cat $tmp/config.h
+ rm -f $tmp/config.h
+ fi
+done
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || { (exit 1); exit 1; }
+fi
+
diff --git a/debian/fireflies/fireflies-2.08/libgfx/configure.in b/debian/fireflies/fireflies-2.08/libgfx/configure.in
new file mode 100644
index 00000000..f0c0a630
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/configure.in
@@ -0,0 +1,290 @@
+dnl Process this file with 'autoconf' to produce a 'configure' script
+dnl $Id: configure.in 409 2004-07-06 19:22:39Z garland $
+
+AC_REVISION($Revision: 1.19 $)
+AC_INIT(include/gfx/gfx.h)
+AC_CONFIG_HEADER(include/gfx/config.h)
+
+sys=`uname`
+
+dnl ----------------------------------------------------------------------
+dnl --
+dnl -- Handle command line options
+dnl --
+
+AC_ARG_WITH(libtiff-lzw,
+ [ --with-libtiff-lzw Use the libtiff LZW compression kit],
+ AC_DEFINE(HAVE_LIBTIFF_LZW))
+
+AC_ARG_WITH(local,
+ [ --with-local[=DIR] Use libraries in DIR (default /usr/local)],
+ [if test $withval = "yes"; then withval="/usr/local"; fi
+ CPPFLAGS="-I${withval}/include"
+ LDFLAGS="-L${withval}/lib"])
+
+AC_ARG_ENABLE(gzstream,
+ [ --enable-gzstream Allow for automatic (de)compression])
+
+if test "$enable_gzstream" = "yes"; then
+ AC_DEFINE(HAVE_GZSTREAM)
+fi
+
+AC_ARG_ENABLE(warnings,
+ [ --disable-warnings Disable GCC warning (default to on)],
+ [],
+ [enable_warnings="yes"])
+
+case $sys in
+ CYGWIN*|cygwin*)
+ AC_ARG_ENABLE(cygwin,
+ [ --enable-cygwin Use the Cygwin libraries (default=yes)])
+
+ if test "$enable_cygwin" = "no"; then
+ CFLAGS="$CFLAGS -mno-cygwin"
+ CPPFLAGS="$CPPFLAGS -mno-cygwin"
+ CXXFLAGS="$CXXFLAGS -mno-cygwin"
+ fi
+ ;;
+esac
+
+dnl ----------------------------------------------------------------------
+dnl --
+dnl -- Check for programs that the build process needs
+dnl --
+
+AC_PROG_CC
+AC_PROG_CPP
+AC_PROG_CXX
+AC_PROG_CXXCPP
+AC_PROG_RANLIB
+AC_LANG_CPLUSPLUS
+AC_PATH_PROG(RM, rm)
+AC_CHECK_PROG(FLTKCONFIG, fltk-config, fltk-config, :)
+
+dnl -- It might be good to write a more thorough test here
+if test $GCC = "yes"; then
+ CC_DEPEND="\$(CC) -M"
+ CXX_DEPEND="\$(CXX) -M"
+else
+ CC_DEPEND="makedepend"
+ CXX_DEPEND="makedepend"
+fi
+
+AC_SUBST(CC_DEPEND)
+AC_SUBST(CXX_DEPEND)
+
+dnl -- If we're using GCC, turn on warnings unless disabled
+if test $GCC = "yes" -a "$enable_warnings" = "yes"; then
+ warning="-Wall -Wno-sign-compare"
+ CPPFLAGS="$CPPFLAGS $warning"
+fi
+
+dnl ----------------------------------------------------------------------
+dnl --
+dnl -- Check for libraries
+dnl --
+
+AC_CHECK_LIB(m, sqrt)
+
+dnl -- Save the basic (non-GUI) compilation configuration
+BASE_LIBS=${LIBS}
+BASE_CFLAGS=${CFLAGS}
+BASE_CXXFLAGS=${CXXFLAGS}
+BASE_LDFLAGS=${LDFLAGS}
+
+IMG_LIBS=""
+AC_SUBST(IMG_LIBS)
+
+
+dnl -- We pass IMG_LIBS as need libraries to these check because libtiff
+dnl -- can be compiled to use both libz and libjpeg.
+
+AC_CHECK_LIB(z, zlibVersion, AC_DEFINE(HAVE_LIBZ) \
+ IMG_LIBS="$IMG_LIBS -lz", , $IMG_LIBS)
+
+AC_CHECK_LIB(jpeg, jpeg_start_compress, AC_DEFINE(HAVE_LIBJPEG) \
+ IMG_LIBS="$IMG_LIBS -ljpeg", , $IMG_LIBS)
+
+AC_CHECK_LIB(tiff, TIFFOpen, AC_DEFINE(HAVE_LIBTIFF) \
+ IMG_LIBS="$IMG_LIBS -ltiff", , $IMG_LIBS)
+
+AC_CHECK_LIB(png, png_read_image, AC_DEFINE(HAVE_LIBPNG) \
+ IMG_LIBS="$IMG_LIBS -lpng", , $IMG_LIBS)
+
+dnl -- Check for OpenGL headers and libraries
+
+AC_CHECK_HEADERS([GL/gl.h OpenGL/gl.h], [break])
+AC_CHECK_HEADERS([GL/glu.h OpenGL/glu.h], [break])
+
+dnl -- OpenGL Extension headers
+AC_CHECK_HEADERS(GL/glext.h GL/glxext.h GL/wglext.h OpenGL/glext.h,
+ [], [],
+ [#if HAVE_GL_GL_H
+ #include <GL/gl.h>
+ #elif HAVE_OPENGL_GL_H
+ #include <OpenGL/gl.h>
+ #endif
+ ])
+
+case $sys in
+
+Darwin*)
+ AC_DEFINE(HAVE_OPENGL, "OpenGL")
+ AC_DEFINE(HAVE_POLYOFFSET)
+ GL_LIBS="-framework AGL -framework OpenGL"
+ X_CORE="-framework Carbon -framework ApplicationServices"
+ X_DCORE="$X_CORE"
+ X_PRE_LIBS=""
+ X_EXTRA_LIBS=""
+
+ AC_SUBST(X_CFLAGS)
+ AC_SUBST(X_LIBS)
+ AC_SUBST(X_PRE_LIBS)
+ AC_SUBST(X_EXTRA_LIBS)
+ ;;
+
+CYGWIN*|cygwin*)
+ CPPFLAGS="${CPPFLAGS} -DWIN32"
+ AC_DEFINE(HAVE_OPENGL, "OpenGL")
+ AC_DEFINE(HAVE_POLYOFFSET)
+ GL_LIBS="-lopengl32 -lglu32"
+ X_DCORE="-lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32 -lwsock32"
+ X_CORE="-mwindows -lole32 -luuid -lcomctl32 -lwsock32"
+
+ X_PRE_LIBS=""
+ X_EXTRA_LIBS=""
+
+ AC_SUBST(X_CFLAGS)
+ AC_SUBST(X_LIBS)
+ AC_SUBST(X_PRE_LIBS)
+ AC_SUBST(X_EXTRA_LIBS)
+ ;;
+
+*)
+ AC_PATH_XTRA
+ CFLAGS="${CFLAGS} ${X_CFLAGS}"
+ CXXFLAGS="${CXXFLAGS} ${X_CFLAGS}"
+ LIBS="${X_PRE_LIBS} -lX11 ${X_EXTRA_LIBS} ${LIBS}"
+ LDFLAGS="${LDFLAGS} ${X_LIBS}"
+
+ X_CORE="-lX11 -lXext"
+ X_DCORE="$X_CORE"
+
+ glneeds="$X_CORE $X_EXTRA_LIBS"
+
+ AC_CHECK_LIB(GL, glBegin, \
+ AC_DEFINE(HAVE_OPENGL, "OpenGL") GL_LIBS="-lGL -lGLU", \
+ AC_CHECK_LIB(MesaGL, glBegin, \
+ [AC_DEFINE(HAVE_OPENGL, "Mesa")
+ GL_LIBS="-lMesaGL -lMesaGLU"], ,$glneeds),$glneeds)
+
+ LIBS="${GL_LIBS} $glneeds"
+
+ dnl -- Check for OpenGL extensions
+ AC_CHECK_FUNC(glPolygonOffset, AC_DEFINE(HAVE_POLYOFFSET))
+ AC_CHECK_FUNC(glPolygonOffsetEXT, AC_DEFINE(HAVE_POLYOFFSET_EXT))
+ ;;
+esac
+
+AC_SUBST(X_CORE)
+AC_SUBST(X_DCORE)
+AC_SUBST(GL_LIBS)
+
+dnl -- Check for FLTK
+dnl We use custom AC_TRY_LINK tests because AC_CHECK_LIB can't really
+dnl properly handle C++ name mangling.
+
+FLTK_LIBS="-lfltk"
+
+AC_MSG_CHECKING(for FLTK library)
+save_libs=$LIBS
+LIBS="$FLTK_LIBS $X_CORE $LIBS"
+AC_TRY_LINK(
+ [#include <FL/Fl.H>],
+ [Fl::run();],
+ [AC_DEFINE(HAVE_FLTK)
+ AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)
+ FLTK_LIBS=""])
+LIBS=$save_libs
+
+AC_MSG_CHECKING(for FLTK GL support)
+save_libs=$LIBS
+LIBS="$FLTK_LIBS $GL_LIBS $X_CORE $LIBS"
+AC_TRY_LINK(
+ [#include <FL/Fl.H>
+ #include <FL/Fl_Gl_Window.H>],
+ [Fl_Gl_Window win(640,480);],
+ [AC_DEFINE(HAVE_FLTK_GL)
+ AC_MSG_RESULT(in libfltk)],
+ [FLTK_LIBS="-lfltk_gl $FLTK_LIBS"
+ LIBS="$FLTK_LIBS $GL_LIBS $X_CORE $save_libs"
+ AC_TRY_LINK(
+ [#include <FL/Fl.H>
+ #include <FL/Fl_Gl_Window.H>],
+ [Fl_Gl_Window win(640,480);],
+ [AC_DEFINE(HAVE_FLTK_GL)
+ AC_MSG_RESULT(in libfltk_gl)],
+ [FLTK_LIBS="-lfltk"
+ AC_MSG_RESULT(no)])])
+
+LIBS=$save_libs
+AC_SUBST(FLTK_LIBS)
+
+dnl -- Restore non-GUI compilation settings
+LIBS=${BASE_LIBS}
+CFLAGS=${BASE_CFLAGS}
+CXXFLAGS=${BASE_CXXFLAGS}
+LDFLAGS=${BASE_LDFLAGS}
+
+dnl ----------------------------------------------------------------------
+dnl --
+dnl -- Check for header files that we'll need
+dnl --
+
+AC_HEADER_STDC
+AC_CHECK_HEADERS(limits.h)
+AC_CHECK_HEADERS(unistd.h)
+
+
+dnl -- STL headers that aren't always available
+AC_CHECK_HEADERS(hash_map)
+AC_CHECK_HEADERS(hash_set)
+AC_CHECK_HEADERS(ext/hash_map)
+AC_CHECK_HEADERS(ext/hash_set)
+AC_CHECK_HEADERS(valarray)
+AC_CHECK_HEADERS(sstream)
+AC_CHECK_HEADERS(strstream)
+
+dnl ----------------------------------------------------------------------
+dnl --
+dnl -- Check for typedefs, declarations, and compiler characteristics
+dnl --
+
+AC_C_CONST
+AC_C_INLINE
+
+AC_MSG_CHECKING(for type bool)
+AC_TRY_COMPILE([],
+ [bool x; x;],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_BOOL)],
+ AC_MSG_RESULT(no))
+
+
+AC_FUNC_ALLOCA
+AC_CHECK_FUNCS(rint getrusage times random getopt getopt_long)
+
+dnl ----------------------------------------------------------------------
+dnl --
+dnl -- Wrap up and write the results
+dnl --
+
+ROOT=`pwd`
+
+CPPFLAGS="$CPPFLAGS -I${ROOT}/include -DHAVE_CONFIG_H"
+CFLAGS="$BASE_CFLAGS $CPPFLAGS"
+CXXFLAGS="$BASE_CXXFLAGS $CPPFLAGS"
+LDFLAGS="$BASE_LDFLAGS -L${ROOT}/src"
+
+AC_OUTPUT(gfx-config)
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/build.html b/debian/fireflies/fireflies-2.08/libgfx/doc/build.html
new file mode 100644
index 00000000..e373c81e
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/build.html
@@ -0,0 +1,135 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: build.html 334 2002-04-02 17:01:32Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Building the Library</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Building the Library</h2>
+
+<p><tt>libgfx</tt> is a C++ library which is meant to be fairly easy
+to compile on a wide range of systems. It was developed under Windows
+NT 4.0, Windows 2000, and RedHat Linux 6.
+
+<p>This library does make use of the ANSI C++ Standard Library. For
+instance, it uses the new <tt>&lt;iostream&gt;</tt> rather than the
+old <tt>&lt;iostream.h&gt;</tt> package. And it does make some
+minimal use of the Standard Template Library (STL). Therefore, it may
+not work on older C++ compilers. It is known to work on Microsoft
+Visual C++ version 5.0 and above and GNU GCC version 2.9 and above.
+
+<p><strong>Required</strong> external libraries:
+<ul>
+<li>The <a href="http://www.fltk.org">FLTK</a> graphical interface toolkit.
+<li>An <a href="http://www.opengl.org">OpenGL</a> library
+or the <a href="http://www.mesa3d.org">Mesa</a> library.
+</ul>
+
+
+<p><strong>Optional</strong> external libraries:
+<ul>
+<li>The <a href="http://www.libtiff.org">libtiff</a> library for TIFF image
+file support
+
+<li>The JPEG support library from the
+<a href="http://www.ijg.org">Independent JPEG Group</a>
+
+<li>The <a href="http://www.libpng.org/pub/png/">libpng</a> library
+for PNG image file support.
+
+</ul>
+
+
+<h3>For Windows Systems</h3>
+
+
+
+
+<h4>Visual C++</h4>
+
+<p>A Visual C++ 6.0 workspace and accompanying project files are
+provided in the <tt>vc6</tt> directory.
+An older VC++ 5.0 workspace is available in the <tt>vc5</tt> directory.
+However, this is no longer in regular use and may be out of date.
+
+<h5>Manual Build</h5>
+
+<p>The library can also be built manually using the <tt>nmake</tt>
+command line tool. A <tt>configure.bat</tt> batch file is provided
+which will set up the necessary configuration files.
+
+<p>To build the library manually, use the following process:
+<ol>
+<li><tt>configure.bat</tt>
+<li><tt>cd src</tt>
+<li><tt>nmake /f Makefile.vc</tt>
+</ol>
+
+
+<h4>Cygwin</h4>
+
+<p>The <tt>libgfx</tt> library will build properly under Windows with
+ the <a href="http://sourceware.cygnus.com/cygwin/">Cygwin</a>
+ toolset. Simply follow the directions for <a href="#unix">Unix
+ systems</a>.
+
+
+
+
+<h3><a name="unix">For Unix Systems</a></h3>
+
+<p>The Unix build process relies on the GNU
+<a href="http://www.gnu.org/software/autoconf/autoconf.html">Autoconf</a>
+system to properly configure the software.
+
+<p>Once the required libraries are installed, you should be able to
+build the library using the following process:
+<ol>
+<li><tt>./configure</tt>
+<li><tt>cd src</tt>
+<li><tt>make</tt>
+</ol>
+If the support libraries are installed in a directory outside the default
+search path, you can invoke the <tt>configure</tt> script with the option
+<tt>--with-local[=dir]</tt> which will add "dir" to the search path. The
+default local directory is <tt>/usr/local</tt>, but you can specify any
+directory of your choice.
+
+<h3><a name="macosx">For Mac OS X Systems</a></h3>
+
+<p>The current version of <tt>libgfx</tt> can be successfully compiled
+under Mac OS X, but it requires a bit of manual intervention.
+
+<p>First, you should install the FLTK library. To build under Mac OS X,
+you must use version 1.1.0 or later.
+Next, you should follow the instructions for using the Autoconf
+script outlined in the <a href="#unix">directions for Unix systems</a>
+above.
+
+<p>This is sufficient to compile command-line programs. However, GUI
+programs require a little extra work. The typical GUI <tt>make</tt> rule looks
+like this:
+<pre>
+ gui-program: gui-program.cxx
+ $(CXX) -o $@ $^ $(CXXFLAGS) $(LDFLAGS) -lgfx $(GUI_LIBS) -lm
+</pre>
+To work correctly with the Mac OS, you must add an additional step to
+this <tt>make</tt> rule:
+<pre>
+ gui-program: gui-program.cxx
+ $(CXX) -o $@ $^ $(CXXFLAGS) $(LDFLAGS) -lgfx $(GUI_LIBS) -lm
+ $(FLTKCONFIG) --post $@
+</pre>
+This uses the <tt>fltk-config</tt> script to add a standard resource
+fork to the compiled application.
+
+</body>
+
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/cdoc.css b/debian/fireflies/fireflies-2.08/libgfx/doc/cdoc.css
new file mode 100644
index 00000000..289832b6
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/cdoc.css
@@ -0,0 +1,86 @@
+/*
+ * Stylesheet for code documentation
+ *
+ * $Id: cdoc.css 268 2001-10-02 16:09:20Z garland $
+ */
+
+BODY {
+ font-family: "Times New Roman", "Times", serif;
+ background-color: white;
+ color: black;
+}
+
+@media screen {
+ BODY {
+ margin-left: 11.11%;
+ margin-right: 11.11%;
+ }
+
+ /* To be used for floating navbars */
+ DIV.navbar {
+ font-family: Arial Narrow;
+ display: block;
+ text-align: left;
+ float: right;
+ padding-bottom: 2pt;
+ padding-left: 2pt;
+ border-left: thin dashed black;
+ border-bottom: thin dashed black;
+ }
+}
+
+@media print {
+ /* IE often prints Web pages in excessively large fonts */
+ BODY { font-size: 10pt; }
+
+ /* Navbars should not be printed */
+ DIV.navbar { display: none }
+
+ /* H2 headers are used as the top-level elements for separate sections */
+ H2 { page-break-before: always }
+}
+
+H1, H2, H3, H4, H5, H6 { clear: both; font-family: Arial, sans-serif; }
+H1 { font-size: 249% }
+H2 { font-size: 172%; }
+H3 { font-size: 144%; }
+H4 { font-size: 120%; margin-bottom: 0.5em; }
+H5,H6 { font-size: 100%; margin-bottom: 0.2em; }
+
+H1, H2, H3, H4 {
+ color: #4444aa;
+ background-color: #cccccc;
+ padding-top: 4px;
+ padding-left: 4px;
+ padding-right: 4px;
+ padding-bottom: 4px;
+}
+
+H1,H2 { margin-left: -1.5em; }
+H3 { margin-left: -0.75em; }
+
+P { text-indent: 0pt; }
+P.indent { text-indent: 1em; }
+P.justify { text-align: justify; }
+
+PRE.code { margin-left: 2em }
+
+/* The standard size scale */
+.min5 { font-size: 40%; }
+.min4 { font-size: 48%; }
+.min3 { font-size: 58%; }
+.min2 { font-size: 69%; }
+.min1 { font-size: 83%; }
+.min0 { font-size: 100%; }
+.mag0 { font-size: 100%; }
+.mag1 { font-size: 120%; }
+.mag2 { font-size: 144%; }
+.mag3 { font-size: 172%; }
+.mag4 { font-size: 207%; }
+.mag5 { font-size: 249%; }
+
+/* Link styles */
+A { text-decoration: none }
+A:active {color: red}
+A:hover {color: red}
+A:visited {color: purple}
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/ex-gui.html b/debian/fireflies/fireflies-2.08/libgfx/doc/ex-gui.html
new file mode 100644
index 00000000..d1e0a1be
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/ex-gui.html
@@ -0,0 +1,238 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: ex-gui.html 173 2000-09-07 02:57:34Z garland $ -->
+
+<!-- Based on ../tests/t-gui.cxx revision 1.3 -->
+
+<html>
+
+<head>
+<title>libgfx: Simple GUI Example Program</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+
+<style type="text/css">
+<!--
+pre { margin-left: 2em }
+-->
+</style>
+
+</head>
+
+<body>
+
+<h2>Simple GUI Example Program</h2>
+
+<p>This is a very simple program which uses the minimalist <a
+href="gui.html">GUI</a> facility provided by <tt>libgfx</tt>
+to create a window a draw a red square in it. When first started, it
+presents the user with a window which looks like the one shown below.
+The full source code for this example application can be found in
+the file <tt>tests/t-gui.cxx</tt> in the <tt>libgfx</tt> source
+distribution.
+
+<p>
+<div align=center>
+<img src="gui-redbox.gif">
+</div>
+
+<h3>Setup</h3>
+
+<p>The program begins by including some of the standard
+<tt>libgfx</tt> headers.
+
+<pre>
+#include &lt;gfx/gfx.h&gt;
+#include &lt;gfx/gui.h&gt;
+#include &lt;gfx/gltools.h&gt;
+</pre>
+
+<p>The first step in using the <tt>libgfx</tt> GUI framework is to
+subclass the <tt>MxGUI</tt> class and override whatever handlers you
+want to write code for. After defining the subclass, you must then
+create a <em>single</em> instance. In this application, we override
+the handlers involved with drawing and mouse events.
+We also follow the recommended idiom of naming our derived subclass
+<tt>GUI</tt> and its lone instance <tt>gui</tt>.
+
+<pre>
+class GUI : public MxGUI
+{
+public:
+ float angle, opt_theta, center[2];
+ bool dragging;
+
+public:
+ <i>// Drawing-related handler methods</i>
+ virtual void setup_for_drawing();
+ virtual void draw_contents();
+ virtual void update_animation();
+
+ <i>// Mouse-related handler methods</i>
+ virtual bool mouse_down(int *where, int which);
+ virtual bool mouse_up(int *where, int which);
+ virtual bool mouse_drag(int *where, int *last, int which);
+};
+
+GUI gui;
+</pre>
+
+
+<h3>Application Entry Point</h3>
+
+<p><tt>MxGUI</tt> programs always use the <tt>main()</tt> procedure as
+their entry point, even on Windows systems. This application follows
+the recommended sequence of actions
+<ol>
+<li>Initialize member variables defined by the <tt>GUI</tt> derived class.
+<li>Call <tt>gui.initialize()</tt> to parse the command line and
+create the application.
+<li>Customize the default application by changing labels, adding
+menus, etc.
+<li>And finally, call <tt>gui.run()</tt> to open the application
+window and begin the event loop.
+</ol>
+These four distinct phases are indicated in the program source by
+whitespace-separated blocks.
+
+<pre>
+main(int argc, char **argv)
+{
+ gui.opt_theta = 10.0f;
+ gui.angle = 0.0f;
+ gui.dragging = false;
+ gui.center[0] = gui.center[1] = 0.0f;
+
+ gui.initialize(argc, argv);
+
+ gui.toplevel->label("Simple GUI Example");
+
+ return gui.run();
+}
+</pre>
+
+<h3>Drawing-Related Handler Methods</h3>
+
+<p>Whenever our OpenGL drawing canvas is created, resized, or
+otherwise reconfigured, the <tt>setup_for_drawing()</tt> handler is
+invoked. This is where you want to set up any graphics state that is
+the same for every frame.
+
+<pre>
+void GUI::setup_for_drawing()
+{
+ glClearColor(0.65f, 0.65f, 0.65f, 0.0f);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glMatrixMode(GL_PROJECTION);
+ gluOrtho2D(-1.0, 1.0, -1.0, 1.0);
+}
+</pre>
+
+
+<p>If the contents of the OpenGL canvas need to be redrawn, the
+<tt>draw_contents()</tt> handler is invoked.
+
+<pre>
+void GUI::draw_contents()
+{
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glLoadIdentity();
+
+ <i>// Draw the black axes</i>
+ glColor3f(0.0, 0.0, 0.0);
+ glBegin(GL_LINES);
+ glVertex2f(-1.0, 0.0);
+ glVertex2f(1.0, 0.0);
+ glVertex2f(0.0, -1.0);
+ glVertex2f(0.0, 1.0);
+ glEnd();
+
+ glTranslatef(center[0], center[1], 0);
+ glRotatef(angle, 0, 0, 1);
+
+ <i>// Draw the red rectangle</i>
+ glEnable(GL_BLEND);
+ glColor4d(0.8, 0.15, 0.15, 0.85);
+ glBegin(dragging?GL_LINE_LOOP:GL_POLYGON);
+ glBegin(GL_POLYGON);
+ glVertex2f(-0.5, -0.5);
+ glVertex2f(-0.5, 0.5);
+ glVertex2f(0.5, 0.5);
+ glVertex2f(0.5, -0.5);
+ glEnd();
+ glDisable(GL_BLEND);
+
+ glPopMatrix();
+}
+</pre>
+
+<p>The <tt>MxGUI</tt> framework provides a simplistic animation
+mechanism. Whenever animation is activated --- the user controls this
+via a menu entry --- the event loop will periodically call the
+<tt>update_animation()</tt> handler.
+<pre>
+void GUI::update_animation()
+{
+ angle += opt_theta;
+}
+</pre>
+
+<h3>Mouse-Related Handler Methods</h3>
+
+<p>When the user clicks the left mouse button, we want to re-center
+the square around that position. We use a call to the
+<tt>unproject_pixel()</tt> <a href="gl.html">utility function</a>
+to map the pixel location into a world-space coordinate.
+
+<pre>
+static bool center_on_click(float *ctr, int *where)
+{
+ double world[3];
+
+ unproject_pixel(where, world);
+ ctr[0] = (float)world[0];
+ ctr[1] = (float)world[1];
+
+ return true;
+}
+</pre>
+
+<p>Given the above code to center the rectangle on a click location,
+it is a simple matter to write our mouse handlers. Whenever the
+left button is pressed or dragged, we recenter the rectangle. We also
+maintain the value of <tt>gui.dragging</tt> to indicate whether the
+mouse is being dragged. If it is, the <tt>draw_contents()</tt>
+handler will draw the rectangle as an outline rather than a filled box.
+
+<pre>
+bool GUI::mouse_down(int *where, int which)
+{
+ if( which==1 )
+ {
+ dragging = true;
+ return center_on_click(center, where);
+ }
+ else return false;
+}
+
+bool GUI::mouse_up(int *where, int which)
+{
+ dragging = false;
+ return (which==1);
+}
+
+bool GUI::mouse_drag(int *where, int *last, int which)
+{
+ if( which==1 )
+ return center_on_click(center, where);
+ else
+ return false;
+}
+</pre>
+
+</body>
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/ex-script.html b/debian/fireflies/fireflies-2.08/libgfx/doc/ex-script.html
new file mode 100644
index 00000000..56124fb4
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/ex-script.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: ex-script.html 269 2001-10-10 00:38:28Z garland $ -->
+
+<!-- Based on ../tests/t-script.cxx revision 1.6 -->
+
+<html>
+
+<head>
+<title>libgfx: Simple Scripted Program</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+
+<style type="text/css">
+<!--
+pre { margin-left: 2em }
+-->
+</style>
+
+</head>
+
+<body>
+
+<h2>Simple Scripted Program</h2>
+
+<p>This program demonstrates some of the basic features provided by the
+<tt>libgfx</tt> <a href="script.html">scripting package</a>. Given a list of
+file names on the command line, it reads each of them in turn and executes the
+scripting commands contained within them.
+
+<h3>Setup and Initialization</h3>
+
+<p>The program begins by including the headers for the <tt>libgfx</tt> modules
+which it uses:
+<pre>
+#include &lt;gfx/gfx.h&gt;
+#include &lt;gfx/script.h&gt;
+#include &lt;gfx/vec3.h&gt;
+</pre>
+
+<p>The <tt>main()</tt> application entry point performs a very simple task.
+It creates a scripting environment (<tt>class CmdEnv</tt> and registers a set
+of scripting commands. Once these handlers have been installed,
+it loops over every file name specified on the command line and executes it as
+a script.
+<pre>
+main(int argc, char *argv[])
+{
+ CmdEnv env;
+
+ env.register_command("add", proc_add);
+ env.register_command("avg", proc_add);
+ env.register_command("echo", proc_echo);
+ env.register_command("vec3", proc_vec3);
+
+ for(int i=1; i&amp;argc; i++)
+ script_do_file(argv[i], env);
+
+ return 0;
+}
+</pre>
+
+<h3>Command Procedures</h3>
+
+<p>Every scripting command is handled by some command procedure. The
+registration code above binds the actual procedures to the names of their
+scripting commands. Then, whenever a given command occurs in a script being
+processed, the corresponding handler is invoked.
+
+<p>The first command procedure actually implements two scripting commands:
+<tt>add</tt> and <tt>avg</tt>. It determines which command has been invoked
+by examining its <tt>name</tt> argument.
+It treats its command line as a whitespace-separated sequence of numbers,
+either adds or averages all of them, and then prints the result.
+<pre>
+int proc_add(const CmdLine &amp;cmd)
+{
+ double sum = 0.0;
+ int count;
+
+ std::vector&lt;double&gt; values;
+ cmd.collect_as_numbers(values);
+ for(count=0; count&lt;values.size(); count++)
+ sum += values[count];
+
+ if( cmd.opname() == "avg" &amp;&amp; count&gt;0 )
+ sum /= (double)count;
+
+ cout &lt;&lt; sum &lt;&lt; endl;
+ return SCRIPT_OK;
+}
+</pre>
+
+<p>This next procedure requires precisely 3 numeric arguments, from which it
+constructs a 3-D vector using the <tt>Vec3</tt> class. If the number of
+arguments is not 3, it returns a value indicating a syntax error occurred.
+<pre>
+int proc_vec3(const CmdLine &amp;cmd)
+{
+ if( cmd.argcount() != 3 ) return SCRIPT_ERR_SYNTAX;
+
+ Vec3 v;
+ cmd.collect_as_numbers(v, 3);
+
+ cout &lt;&lt; v &lt;&lt; endl;
+ return SCRIPT_OK;
+}
+</pre>
+
+<p>Finally, the <tt>echo</tt> procedure does not interpret its arguments at
+all. Instead, it simply prints the entire argument line as is.
+<pre>
+int proc_echo(const CmdLine &amp;cmd)
+{
+ cout &lt;&lt; cmd.argline() &lt;&lt; endl;
+ return SCRIPT_OK;
+}
+</pre>
+
+<h3>Sample Execution</h3>
+
+<p>To demonstrate the action of this sample program, here is a particularly
+simple script.
+<pre>
+# This is a test script meant to be fed to t-script. It is not meant as an
+# exhaustive test, but mainly as a demonstration.
+
+echo The following sum should be 15
+add 1 2 3 4 5
+
+echo
+echo The following average should be 3.5
+avg 3 8 2 1
+
+echo
+echo The following is the vector [1 0 0]
+vec3 1 0 0
+</pre>
+
+<p>When given to the sample program, it produces the following output
+<pre>
+The following sum should be 15
+15
+
+The following average should be 3.5
+3.5
+
+The following is the vector [1 0 0]
+1 0 0
+</pre>
+
+</body>
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/geom3d.html b/debian/fireflies/fireflies-2.08/libgfx/doc/geom3d.html
new file mode 100644
index 00000000..549aa7a7
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/geom3d.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: geom3d.html 160 2000-09-05 19:44:15Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: 3-D Geometric Procedures</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>3-D Geometric Procedures</h2>
+
+<p>Triangles are a very common modeling primitive in many graphics
+applications. The <tt>libgfx</tt> library provides a package of routines for
+computing various geometric properties of triangles.
+To use this package you must include the standard header file
+<pre>
+ #include &lt;gfx/geom3d.h&gt;
+</pre>
+Note that all of these functions assume that the corners of the triangle are
+listed in <em>counter-clockwise order</em> around the outward pointing normal.
+
+<p>You can compute the (signed) area of a triangle using the following
+function. Note that the area will be negative if the vertices are listed in
+clockwise order.
+<pre>
+ double triangle_area(const Vec3&amp;, const Vec3&amp;, const Vec3&amp;);
+</pre>
+
+<p>The following functions compute the plane defined by a triangle, and the
+corresponding normal vector. The standard versions always use unit normal
+vectors while the "raw" versions will use unscaled normals.
+<pre>
+ Vec3 triangle_normal(const Vec3&amp;, const Vec3&amp;, const Vec3&amp;);
+ Vec4 triangle_plane(const Vec3&amp;, const Vec3&amp;, const Vec3&amp;);
+
+ Vec3 triangle_raw_normal(const Vec3&amp;, const Vec3&amp;, const Vec3&amp;);
+ Vec4 triangle_raw_plane(const Vec3&amp;, const Vec3&amp;, const Vec3&amp;);
+</pre>
+
+
+<p>For some meshing applications, it may on occasion be necessary to assess
+the aspect ratio of a triangle.
+<pre>
+ double triangle_compactness(const Vec3&amp;, const Vec3&amp;, const Vec3&amp;);
+</pre>
+This function computes the "compactness" of a triangle. The returned value
+will be between 0 and 1, with 0 meaning a degenerate (area=0) triangle and 1
+meaning an equilateral triangle. The formula used, originally suggested by
+Andre Gueziec, is 4*sqrt(3) * Area / (L1 + L2 + L3) where Li is the squared
+length of side <i>i</i> of the triangle.
+
+</body>
+
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/gl.html b/debian/fireflies/fireflies-2.08/libgfx/doc/gl.html
new file mode 100644
index 00000000..a00ba9ab
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/gl.html
@@ -0,0 +1,112 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: gl.html 156 2000-09-05 16:33:04Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: OpenGL Support</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>OpenGL Support</h2>
+
+<p>
+
+
+<p><strong>Important:</strong>
+The standard way to include the OpenGL headers is to include the
+headers
+
+<pre>
+ #include &lt;GL/gl.h&gt;
+ #include &lt;GL/glu.h&gt;
+</pre>
+
+However, to ensure portability you <em>should not</em> do this; use
+the following inclusion instead:
+
+<pre>
+ #include &lt;gfx/gl.h&gt;
+</pre>
+
+The primary reason for this is that the Microsoft OpenGL headers do
+not work properly unless you have included <tt>&lt;windows.h&gt;</tt>
+first. This <tt>libgfx</tt> header takes care of the necessary
+<tt>#ifdefs</tt> and keeps your code looking cleaner.
+
+
+<h3>Utility Functions</h3>
+
+
+To gain access to these utility functions, include the header
+
+<pre>
+ #include &lt;gfx/gltools.h&gt;
+</pre>
+
+<p>Given a pixel coordinate in the OpenGL viewport, it is often
+necessary to project this to a 3-D point in the world being displayed.
+You can use the function
+<pre>
+ int unproject_pixel(int *pixel, double *world, double z=0.0);
+</pre>
+to accomplish this.
+
+
+
+<p>To simplify the display of 3-D scenes, the function
+<pre>
+ void camera_lookat(const Vec3& min, const Vec3& max, double aspect);
+</pre>
+will set up a standard viewing geometry for displaying an object
+bounded by the axis-aligned box [<tt>min</tt>, <tt>max</tt>] in a
+window whose aspect ratio is <tt>aspect</tt>.
+The camera will be looking at the center of the box, from a position
+further along the <i>z</i> axis, with a 60&deg; field of view.
+The viewing transform will be multiplied into the current matrix,
+using calls to <tt>gluPerspective()</tt> and <tt>gluLookAt()</tt>.
+
+<p>Errors during OpenGL processing are not reported to the user, they are
+merely flagged in the current OpenGL state. To check for and report any
+OpenGL errors, you can call the function:
+<pre>
+ void check_opengl_errors(const char *msg=NULL);
+</pre>
+An optional message can be provided which will be prepended to the error
+reported (if any).
+
+<h4>Picking</h4>
+
+<p>Interactive programs frequently need to allow the user to select
+individual components of the scene being displayed by clicking on the
+rendered image. Given a pixel location in the window, the application
+must determine which entity the user clicked on.
+The standard technique for doing this with OpenGL is with the selection
+buffer. The <tt>libgfx</tt> library provides some utility functions to make
+using the selection buffer somewhat easier.
+Details on using the selection buffer can be found in the OpenGL Programming
+Guide.
+
+<p>Before drawing your primitives, call the function
+<pre>
+ void begin_opengl_pick(int *ctr, double radius, GLuint *buf, int size);
+</pre>
+with the location of the user's pointer (<tt>ctr</tt>) and
+the <tt>radius</tt> of the region to consider. You will also need to allocate
+and pass a buffer of object identifiers to hold the candidate objects.
+Having set things up, you can draw your primitives as usual, assigning an
+integer identifier to each using the <tt>glLoadName()</tt> function.
+After all primitives have been drawn, call the function
+<pre>
+ GLuint complete_opengl_pick(GLuint *buffer);
+</pre>
+The returned value will be the identifier of the object clicked on, or
+<tt>opengl_pick_nil</tt> if the user clicked on the background.
+
+</body>
+
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/gui-layout.gif b/debian/fireflies/fireflies-2.08/libgfx/doc/gui-layout.gif
new file mode 100644
index 00000000..767daa05
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/gui-layout.gif
Binary files differ
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/gui-redbox.gif b/debian/fireflies/fireflies-2.08/libgfx/doc/gui-redbox.gif
new file mode 100644
index 00000000..d53d89fd
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/gui-redbox.gif
Binary files differ
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/gui.html b/debian/fireflies/fireflies-2.08/libgfx/doc/gui.html
new file mode 100644
index 00000000..01031805
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/gui.html
@@ -0,0 +1,257 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: gui.html 307 2002-03-11 21:15:37Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Minimalist GUI Framework</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Minimalist GUI Framework</h2>
+
+<p>All interactive graphics applications need to create some sort of graphical
+user interface. While many applications may require a fairly sophisticated
+interface, there is a large class of applications which can be built with a
+very simple interface. The <tt>libgfx</tt> library provides a framework to
+ease the construction of such simple interfaces.
+
+<p>The kind of application interface supported by the GUI framework is
+pictured in the following figure:
+<blockquote>
+<center><img src="gui-layout.gif"></center>
+</blockquote>
+
+The application window consists of three primary components:
+<ol>
+<li>A menu bar, which is managed by the GUI framework,
+<li>An OpenGL canvas window where the application is free to draw its content
+and receive user events such as mouse clicks, and
+<li>A status bar where the application can print text messages.
+</ol>
+
+<p>The <a href="ex-gui.html">code for the application pictured
+above</a> provides a concrete example of using this GUI framework.
+
+<h3>Creating a GUI Application</h3>
+
+<p>To begin building your GUI application, you'll need to include the GUI
+framework header:
+<pre>
+ #include &lt;gfx/gui.h&gt;
+</pre>
+The framework itself is packaged as a C++ class named <tt>MxGUI</tt>.
+You create your application by subclassing it and overriding various virtual
+methods. You can then create a single instance of this class, which will
+represent your application.
+For consistency, it is recommended that you name
+the derived subclass <tt>GUI</tt> and its instance <tt>gui</tt> as in the
+following:
+<pre>
+ class GUI : public MxGUI
+ {
+ public:
+ <i>// Application variables and methods</i>
+
+ public:
+ <i>// Override virtual methods to handle events</i>
+ };
+
+ GUI gui; <i>// Create application instance</i>
+</pre>
+
+<p>Programs based using this framework always use the <tt>main()</tt>
+procedure as their entry point, <em>even on Windows systems</em>.
+Inside this main procedure, you should perform this general sequence of
+operations:
+<ol>
+<li>Initialize global variables and member variables defined in the
+<tt>GUI</tt> class.
+<li>Call the <tt>gui.initialize()</tt> procedure to parse the command line and
+create the application.
+<li>Customize the default application by changing labels, adding menus, etc.
+<li>Call <tt>gui.run()</tt> to open the application window and begin the event
+loop.
+</ol>
+
+<p>The <tt>MxGUI::initialize</tt> method must be called to initialize the GUI
+framework.
+<pre>
+ virtual void initialize(int argc, char **argv,
+ Fl_Menu_Item *layout=NULL, int xw=640, int yw=480);
+</pre>
+You should pass to it the <tt>argc</tt> and <tt>argv</tt> command-line
+variables as passed into <tt>main()</tt>. The framework will take care of
+parsing the command-line and calling the appropriate handlers.
+The optional <tt>layout</tt> argument can be used to specify an initial menu
+structure; the default value of <tt>NULL</tt> directs the framework to use the
+default menu layout.
+The optional <tt>xw</tt> and <tt>yw</tt> arguments specify the desired width
+and height (in pixels) of the OpenGL canvas.
+
+<h4>Command-Line Processing</h4>
+
+<p>
+The <tt>MxGUI</tt> framework uses the FLTK
+<a href="http://www.fltk.org/doc-1.0/functions.html#args"><tt>Fl::args</tt></a>
+facility to parse the command line passed to <tt>MxGUI::initialize()</tt>.
+For each option on the command line, it invokes the following handler:
+<pre>
+ virtual int cmdline_option(int argc, char **argv, int& index);
+</pre>
+The <tt>argc</tt> and <tt>argv</tt> values are the complete array originally
+passed to <tt>initialize()</tt>. The <tt>index</tt> argument indicates which
+element of <tt>argv</tt> contains the current switch being processed.
+This <tt>index</tt> variable is passed by reference to allow the handler to
+consume additional elements of <tt>argv</tt> by incrementing <tt>index</tt>.
+The handler should return <tt>1</tt> if it handled the switch and <tt>0</tt>
+otherwise.
+
+<p>Once all options have been processed, the initialization code invokes the
+following handler for each file listed on the command line.
+<pre>
+ virtual void cmdline_file(const char *file);
+</pre>
+If no files are specified this handler will be invoked with a <tt>NULL</tt>
+value.
+
+<h4>Drawing</h4>
+
+<p>The <tt>MxGUI</tt> framework uses two virtual methods to control drawing in
+the OpenGL canvas. The first of these is:
+<pre>
+ virtual void setup_for_drawing();
+</pre>
+This method is called whenever the canvas has been reconfigured. Primarily,
+this occurs when the canvas has either just been shown on the screen (e.g.,
+after creation) or when it has been resized.
+
+<p>Whenever the canvas needs to be repainted, the framework will invoke the
+handler:
+<pre>
+ virtual void draw_contents();
+</pre>
+You should override this method and place all your drawing code in it.
+
+
+<h4>Handling Mouse Events</h4>
+
+<p>Interactive applications will typically want to receive mouse events taking
+place on the OpenGL canvas. The framework classifies mouse events into three
+types:
+<ol>
+<li><strong>Button down:</strong>
+ the user has depressed a mouse button
+<li><strong>Button up:</strong>
+ the user has released a previously depressed button
+<li><strong>Drag:</strong>
+ the user is moving the mouse with a button depressed
+</ol>
+When one of these events occur, the corresponding event handler will be
+invoked:
+<pre>
+ virtual bool mouse_down(int *where, int which);
+ virtual bool mouse_up(int *where, int which);
+ virtual bool mouse_drag(int *where, int *last, int which);
+</pre>
+The <tt>where</tt> argument is a 2-D array containing the pixel location in
+the OpenGL canvas at which the mouse was pointing when the event occurred.
+The number of the button involved (either 1, 2, or 3) is passed in the
+<tt>which</tt> argument.
+To simplify drag operations, that event handler is also passed the location of
+the <tt>last</tt> received drag event.
+
+<p>All of these mouse handlers should return <tt>true</tt> if the canvas
+should be redrawn in response to the event just handled. If the canvas does
+not need to be updated, they should return <tt>false</tt>.
+
+<h4>Handling Key Presses</h4>
+
+<p>Key press events can be received through the virtual function:
+<pre>
+ virtual bool key_press(int key);
+</pre>
+The return value of this function indicates whether the key press event
+was consumed by the handler. You should make sure to return
+<tt>false</tt> if you do not use the given key, otherwise keyboard
+accelerators for the menu bar will no longer function correctly.
+
+<p>Note that FLTK defines
+<a
+ href="http://www.fltk.org/doc-1.0/enumerations.html#key_values">symbolic
+ names</a> for non-ASCII keys. You can also query the state of the
+modifier keys using the <tt><a href="http://www.fltk.org/doc-1.0/enumerations.html#13_6">Fl::event_state()</a></tt> function.
+
+<h4>Animation</h4>
+
+<p>A very simple mechanism for supporting animation is also provided by the
+framework. To take advantage of this, first set the <tt>MxGUI</tt> instance
+variable
+<pre>
+ float default_fps;
+</pre>
+to the desired number of frames per second (defaults to 24). The method
+<pre>
+ void animate(bool will);
+</pre>
+can then be used to start and stop animation.
+The system works by setting a system timer to go off every 1/fps of a second.
+When that timer goes off, the framework will call the handler
+<pre>
+ virtual void update_animation();
+</pre>
+so that the application can update its state appropriately, after which the
+framework will invoke the <tt>draw_contents()</tt> handler to repaint the
+canvas. Note that this system makes no effort to guarantee a consistent
+update rate.
+
+<p>The default menu bar contains items to toggle animation on and off and to
+set the desired <tt>default_fps</tt> value.
+
+
+<h3>The Menu Bar</h3>
+
+<p>Many GUI applications use menu systems to provide the user control over the
+application. By default, the <tt>MxGUI</tt> framework creates a very simple
+menu layout for its applications. This standard menu provides basic features
+such as saving a snapshot of the OpenGL canvas to an image file, toggling
+animation, and setting the size of the display canvas.
+However, the application also has complete freedom to customize the menu
+system.
+
+<h4>Static Menu Layouts</h4>
+
+<p>The <tt>initialize()</tt> method accepts an optional argument which
+specifies the layout of the menu system. This layout is an array of <a
+href="http://www.fltk.org/doc-1.0/Fl_Menu_Item.html">Fl_Menu_Item</a> elements,
+whose format is described in the <a
+href="http://www.fltk.org/doc-1.0/Fl_Menu_Item.html">FLTK documentation</a>.
+Passing a menu layout to <tt>initialize()</tt> will completely replace the
+default menu structure.
+
+<h4>Adding Menus at Run Time</h4>
+
+<p>Once an initial menu system has been created, either the default or an
+application-specific one, additional items can be added at run time. To do
+this, you can invoke the <a
+href="http://www.fltk.org/doc-1.0/Fl_Menu_.html#Fl_Menu_.add"><tt>add()</tt></a>
+method of the <tt>MxGUI::menu_bar</tt> object.
+
+
+<h3>The Status Bar</h3>
+
+<p>The status bar at the bottom of the GUI application can be used to display
+short textual messages to the user.
+You can use the following method to print text in the status bar:
+<pre>
+ int status(const char *fmt, ...);
+</pre>
+It accepts argument lists of exactly the same form as the <tt>printf</tt>
+function of the C standard library.
+
+</body>
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/index.html b/debian/fireflies/fireflies-2.08/libgfx/doc/index.html
new file mode 100644
index 00000000..5844b4ed
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/index.html
@@ -0,0 +1,81 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: index.html 372 2003-06-26 10:46:43Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: A Library for Writing Graphics Programs</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h1>libgfx: A Graphics Library</h1>
+
+<p>This software and associated documentation files are
+Copyright &copy; 1999&ndash;2001 Michael Garland.
+Please see the accompanying <a href="license.html">License</a>
+for details.
+
+
+<h2>Contents</h2>
+
+<ul>
+ <li><a href="#intro">Introduction</a>
+ <li><a href="build.html">Building the Library</a>
+ <li><a href="start.html">Getting Started</a>
+
+ <li><a href="vec.html">Vector Math</a>
+ <ul>
+ <li><a href="vec2.html">2-D vectors</a>
+ <li><a href="vec3.html">3-D vectors</a>
+ <li><a href="vec4.html">4-D vectors</a>
+ </ul>
+
+ <li><a href="mat.html">Matrix Math</a>
+ <ul>
+ <li><a href="mat2.html">2-D matrices</a>
+ <li><a href="mat3.html">3-D matrices</a>
+ <li><a href="mat4.html">4-D matrices</a>
+ </ul>
+
+ <li><a href="intvec.html">Packed Integer Vectors</a>
+ <li><a href="quat.html">Quaternions</a>
+ <li><a href="geom3d.html">3-D Geometric Procedures</a>
+ <li><a href="gl.html">OpenGL Support</a>
+ <li><a href="raster.html">Raster Images</a>
+ <li><a href="gui.html">Minimalist GUI framework</a>
+ <li><a href="rotate.html">Interactive Rotation Control</a>
+ <li><a href="script.html">Simple File Format Scripting</a>
+
+ <li>Example Programs
+ <ul>
+ <li><a href="ex-gui.html">Simple GUI Program</a>
+ <li><a href="ex-script.html">Simple Scripted Program</a>
+ </ul>
+
+ <li><a href="license.html">Copyright Notice and License</a>
+</ul>
+
+
+<h2><a name="intro">Introduction</a></h2>
+
+<p>The purpose of this library is to simplify the creation of computer
+graphics software. Specifically, it is targeted towards
+cross-platform development using the
+<a href="http://www.opengl.org">OpenGL</a> rendering API and the
+<a href="http://www.fltk.org">FLTK</a> interface toolkit.
+It is derived from the <a
+href="http://www.uiuc.edu/~garland/software/qslim20.html">MixKit</a> library I
+developed for supporting polygonal
+<a href="http://www.uiuc.edu/~garland/research.html">surface
+simplification</a>.
+This is <em>not</em> a full-fledged graphics engine. Rather it
+provides facilities which are useful in the majority of graphics
+programs.
+
+</body>
+
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/intvec.html b/debian/fireflies/fireflies-2.08/libgfx/doc/intvec.html
new file mode 100644
index 00000000..9c13957d
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/intvec.html
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: intvec.html 161 2000-09-05 20:29:15Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Packed Integer Vectors</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Packed Integer Vectors</h2>
+
+<p>The <a href="vec.html">vector package</a> provides the standard way to
+represent and manipulate vector quantities.
+These vectors are primarily designed to represent real-valued vectors using
+floating point numbers.
+However, there are times when it is more convenient to use a packed integer
+vector format. That is the purpose of this package, which you can use by
+including the header file
+<pre>
+ #include &lt;intvec.h&gt;
+</pre>
+
+<p>A <em>packed integer vector</em> is an <i>n</i> element vector, each of whose
+elements are <i>k</i>-bit integers. These <i>k</i>-bit integers are
+interpreted as representing the range [0, 1] for unsigned types and [-1, 1]
+for signed types. For example, suppose we have a vector whose elements are
+unsigned 8-bit quantities (e.g., of type <tt>unsigned char</tt>).
+Each value would have an integral value in the range [0, 255], but these
+values would always be interpreted as real values ranging between [0, 1].
+
+<h3>class IntVec</h3>
+<p>Packed integer vectors are declared using the following template class
+<pre>
+ template&lt;class T, int T_MAX, int N&gt; class IntVec;
+</pre>
+The type <tt>T</tt> is the type of the constituent elements (e.g.,
+<tt>unsigned char</tt>) and <tt>T_MAX</tt> is the maxium representable value
+for this type (e.g., <tt>UCHAR_MAX</tt>). The number of elements in the
+vector is determined by <tt>N</tt>. Note that ANSI C defines appropriate
+maximum values of integer types in &lt;limits.h&gt;.
+
+<p>Classes created from the <tt>IntVec</tt> template provide a small set of
+fundamental public methods:
+<ul>
+<li>A default constructor that initializes all elements of the vector to 0.
+
+<li>A C-style [] bracket accessor which returns, as a
+<tt>double</tt> the appropriate element of the vector.
+
+<li>A vector assignment operator (<tt>v = w</tt>).
+
+<li>A scalar assignment operator (<tt>v = 3.14</tt>).
+</ul>
+
+<h3>class IntVec3</h3>
+
+<p>Because 3-D vectors are particularly common in graphics applications, this
+package provides explicit support for them.
+<pre>
+ template &lt;class T, int T_MAX&gt; class IntVec3;
+</pre>
+
+<p>In addition to the standard <tt>IntVec</tt> methods, <tt>IntVec3</tt>
+provides the following additional constructors, all of which allow the values
+of the vector to be explicitly initialized.
+<pre>
+ IntVec3(double x, double y, double z);
+ IntVec3(const Vec3&amp; v);
+ IntVec3(const float v[3]);
+ IntVec3(const double v[3]);
+</pre>
+
+<p>It also provides the following methods for manipulating the elements of the
+vector:
+<pre>
+ Vec3 unpack() const; <i>// Return vector as Vec3</i>
+ void pack(const Vec3&amp; v); <i>// Set vector from v</i>
+ void pack(double x, double y, double z); <i>// Set vector from x,y,z</i>
+</pre>
+
+<p>A typical use of this class would be in defining a type for RGB colors
+represented with 8 bits per channel. Such a type could be declared as
+follows:
+<pre>
+ typedef IntVec3<unsigned char, UCHAR_MAX> byteColor;
+</pre>
+
+</body>
+
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/license.html b/debian/fireflies/fireflies-2.08/libgfx/doc/license.html
new file mode 100644
index 00000000..2e96b7d8
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/license.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: license.html 257 2001-07-26 19:20:44Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: License</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>License</h2>
+
+
+<p><strong>Copyright Notice</strong>
+<blockquote>
+Copyright &copy; 1999&ndash;2001 Michael Garland. All rights reserved.
+</blockquote>
+
+<p><strong>Terms and Conditions</strong>
+
+<p>Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, and/or sell copies of the Software, and to permit persons
+to whom the Software is furnished to do so, provided that the above
+copyright notice(s) and this permission notice appear in all copies of
+the Software and that both the above copyright notice(s) and this
+permission notice appear in supporting documentation.
+
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+<p>Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+of the copyright holder.
+
+
+
+</body>
+
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/mat.html b/debian/fireflies/fireflies-2.08/libgfx/doc/mat.html
new file mode 100644
index 00000000..4f43c019
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/mat.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: mat.html 159 2000-09-05 19:43:19Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Matrix Math</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Matrix Math</h2>
+
+<p>The <tt>libgfx</tt> matrix math package is the companion to the
+<a href="vec.html">vector package</a> and are intended to provide a convenient
+way of writing vector/matrix equations.
+Currently, only square matrices
+of dimension 2x2 [<a href="mat2.html"><tt>Mat2</tt></a>],
+3x3 [<a href="mat3.html"><tt>Mat3</tt></a>],
+and 4x4 [<a href="mat4.html"><tt>Mat4</tt></a>].
+
+<p>A matrix consists of <i>n*n</i> double precision floating point values.
+Unlike the vector package, the matrix package is not yet template-based.
+Matrix elements are accessed using 0-indexed (row, column) pairs. Thus, a 2x2
+identity matrix can be constructed as follows:
+<pre>
+ Mat2 A;
+
+ A(0, 0) = 1.0;
+ A(0, 1) = 0.0;
+ A(1, 0) = 0.0;
+ A(1, 1) = 1.0;
+</pre>
+The default constructors (as used above) initialize all elements to 0. All
+matrix classes also provide constructors which accept a list of row vectors to
+initialize their elements. Thus, the following example is equivalent to the
+code above:
+<pre>
+ Mat2 A(Vec2(1.0, 0.0), Vec2(1.0, 0.0));
+</pre>
+Matrices can also be automatically case to <tt>double</tt> pointers. Since
+matrices are stored in row-major order, the follow code would change element
+(0, 1) of the matrix above:
+<pre>
+ double *B = A;
+ B[1] = -1.0;
+</pre>
+
+<p><strong>Warning:</strong>
+For efficiency reasons, <em>accessors are not range checked</em>.
+Thus you can legally write
+<pre>
+ Mat2 v;
+ v(-10, 37) = 1.0;
+</pre>
+and generate an invalid memory access.
+
+<h3>Arithmetic Operators</h3>
+
+<p>Like the vector package, one of the primary goals of the matrix package is
+to simplify the writing of vector/matrix equations.
+To accomplish this, it makes use of C++ operator overloading.
+
+<p><strong>Assignment</strong>&nbsp;&nbsp;
+Matrices can be assigned the values of other matrices or scalars.
+A matrix assignment <tt>A = B</tt> copies the elements of <tt>B</tt>
+into the corresponding elements of <tt>A</tt>. A scalar assignment
+<tt>A = 1.0</tt> copies the given scalar, in this case <tt>1.0</tt>,
+into each of the elements of <tt>A</tt>.
+
+<p><strong>Addition/Subtraction</strong>&nbsp;&nbsp;
+Matrices can be added together either with the binary addition operator (<tt>C
+= A + B</tt>) or the additive assignment operator (<tt>A += B</tt>).
+Subtraction operates similarly, using subtraction rather than addition
+operators.
+
+<p><strong>Scalar Multiplication/Division</strong>&nbsp;&nbsp;
+Matrices can be multiplied by scalar values using either the binary
+operator (<tt>A * 2.0</tt>) or the accumulation operator (<tt>A *=
+2.0</tt>). Scalar division operates similarly.
+
+<p><strong>Matrix/Vector Multiplication</strong>&nbsp;&nbsp;
+Matrices can be multiplied together with a binary operator (<tt>A *
+B</tt>). Matrices can also multiply vectors (<tt>A * v</tt>) which returns a
+new vector.
+
+<h3>Standard Matrix Functions</h3>
+
+<p>All matrix classes support a standard set of functions for performing
+common operations on matrices. The functions are:
+<pre>
+<i>// Constructs the outer product of the two vectors</i>
+Mat_ outer_product(const Vec_ &amp;u, const Vec_ &amp;v);
+
+<i>// Returns the determinant of the matrix</i>
+double det(const Mat_ &amp;A);
+
+<i>// Returns the trace of the matrix (the sum of the diagonals)</i>
+double trace(const Mat_ &amp;A);
+
+<i>// Returns the transpose of A</i>
+Mat_ transpose(const Mat_ &amp;A);
+
+<i>// Returns the adjoint of A</i>
+Mat_ adjoint(const Mat_ &amp;A);
+
+<i>// Places the inverse of A in A_inv and returns det(A)
+// The contents of A_inv are undefined if the inverse doesn't exist.</i>
+double invert(Mat_ &amp;A_inv, const Mat_ &amp;A);
+</pre>
+
+<p>Matrices can also be read from and written to C++ iostreams using the
+standard <tt>&lt;&lt;</tt> and <tt>&gt;&gt;</tt> operators.
+
+</body>
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/mat2.html b/debian/fireflies/fireflies-2.08/libgfx/doc/mat2.html
new file mode 100644
index 00000000..a41a0cb7
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/mat2.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: mat2.html 159 2000-09-05 19:43:19Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Matrix Math</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Matrix Math</h2>
+
+<h3>class Mat2</h3>
+
+<p>This class implements a 2x2 real-valued matrix.
+Individual elements are represented with <code>double</code> precision
+floating point numbers. To use the <tt>Mat2</tt> class you must include the
+header
+<pre>
+ #include &lt;gfx/mat2.h&gt;
+</pre>
+
+<h4>Constructor Methods</h4>
+
+<p>The <tt>Mat2</tt> class defines the following set of constructors:
+
+<pre>
+ <i>// Initialize all elements to 0</i>
+ Mat2();
+
+ <i>// Initialize row 0 to [a b] and row 1 to [c d]</i>
+ Mat2(double a, double b, double c, double d);
+
+ <i>// Initialize rows with given vectors</i>
+ Mat2(const Vec2 &amp;r0,const Vec2 &amp;r1);
+
+ <i>// Copy values from A</i>
+ Mat2(const Mat2 &amp;A);
+</pre>
+
+</body>
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/mat3.html b/debian/fireflies/fireflies-2.08/libgfx/doc/mat3.html
new file mode 100644
index 00000000..d2c7a778
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/mat3.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: mat3.html 159 2000-09-05 19:43:19Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Matrix Math</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Matrix Math</h2>
+
+<h3>class Mat3</h3>
+
+<p>This class implements a 3x3 real-valued matrix.
+Individual elements are represented with <code>double</code> precision
+floating point numbers. To use the <tt>Mat3</tt> class you must include the
+header
+<pre>
+ #include &lt;gfx/mat3.h&gt;
+</pre>
+
+<h4>Constructor Methods</h4>
+
+<p>The <tt>Mat3</tt> class defines the following set of constructors:
+
+<pre>
+ <i>// Initialize all elements to 0</i>
+ Mat3();
+
+ <i>// Initialize rows with given vectors</i>
+ Mat3(const Vec3&amp; r0,const Vec3&amp; r1,const Vec3&amp; r2);
+
+ <i>// Copy values from A</i>
+ Mat3(const Mat3&amp; A);
+</pre>
+
+
+</body>
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/mat4.html b/debian/fireflies/fireflies-2.08/libgfx/doc/mat4.html
new file mode 100644
index 00000000..d180d210
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/mat4.html
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: mat4.html 220 2001-01-16 21:21:46Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Matrix Math</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Matrix Math</h2>
+
+<h3>class Mat4</h3>
+
+
+<p>This class implements a 4x4 real-valued matrix.
+Individual elements are represented with <code>double</code> precision
+floating point numbers. To use the <tt>Mat4</tt> class you must include the
+header
+<pre>
+ #include &lt;gfx/mat4.h&gt;
+</pre>
+
+<h4>Constructor Methods</h4>
+
+<p>The <tt>Mat4</tt> class defines the following set of constructors:
+
+<pre>
+ <i>// Initialize all elements to 0</i>
+ Mat4();
+
+ <i>// Initialize rows with given vectors</i>
+ Mat4(const Vec4&amp; r0,const Vec4&amp; r1,const Vec4&amp; r2,const Vec4&amp; r3);
+
+ <i>// Copy values from A</i>
+ Mat4(const Mat4&amp; A);
+</pre>
+
+
+<h4>Transformation Functions</h4>
+
+<p>Because 4x4 matrices are commonly used to represent linear homogeneous
+transformations in computer graphics, the matrix package provides several
+functions to construct transformation matrices. The operation of these
+functions is based directly on the definition of the corresponding
+transformations as used in OpenGL. The resulting matrices should be
+equivalent to those produced by OpenGL, to the extent allowed by limited
+floating point accuracy.
+
+<pre>
+ <i>// Construct translation, scaling, and rotation matrices.</i>
+ Mat4 translation_matrix(const Vec3&amp; delta);
+ Mat4 scaling_matrix(const Vec3&amp; scale);
+ Mat4 rotation_matrix_deg(double theta, const Vec3&amp; axis);
+ Mat4 rotation_matrix_rad(double theta, const Vec3&amp; axis);
+
+ <i>// Construct a perspective projection matrix.
+ // Direct analog of gluPerspective()</i>
+ Mat4 perspective_matrix(double fovy, double aspect,
+ double zmin=0.0, double zmax=0.0);
+
+ <i>// Construct a viewing transformation.
+ // Direct analog of gluLookAt()</i>
+ Mat4 lookat_matrix(const Vec3&amp; from, const Vec3&amp; at, const Vec3&amp; up);
+
+ <i>// Construct a viewport mapping.
+ // Direct analog of glViewport().</i>
+ Mat4 viewport_matrix(double w, double h);
+</pre>
+
+Note that the <tt>rotation_matrix()</tt> function comes in two forms, once
+which expects an angle in <em>radians</em> and one which expects an angle in
+<em>degrees</em>. The type of angle expected is made explicit in the function
+name (i.e., <tt>_rad</tt> and <tt>_deg</tt> suffixes) in an attempt to avoid
+confusion.
+
+
+</body>
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/quat.html b/debian/fireflies/fireflies-2.08/libgfx/doc/quat.html
new file mode 100644
index 00000000..781ed2ad
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/quat.html
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: quat.html 308 2002-03-11 21:16:57Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Quaternions</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Quaternions</h2>
+
+<p>This package provides the basic mathematical tools necessary for
+manipulating quaternions. To begin using it, you must first include the
+header file:
+<pre>
+ #include &lt;gfx/quat.h&gt;
+</pre>
+
+<p>For more information on the definition of quaternions and their
+associated mathematics, you might try the informative Web pages provided
+by
+<a href="http://mathworld.wolfram.com/Quaternion.html">MathWorld</a>,
+<a href="http://www.magic-software.com/Documentation/quat.pdf">David
+ Eberly</a>, or
+<a
+ href="http://graphics.cs.ucdavis.edu/GraphicsNotes/Quaternions.pdf">UC
+ Davis</a>.
+
+<h3>class Quat</h3>
+
+<p>The interface presented by the <tt>Quat</tt> class treats quaternions
+as consisting of a real scalar part and a complex 3-vector part.
+
+<h4>Constructor Methods</h4>
+
+<p>The <tt>Quat</tt> class defines the following set of constructors:
+
+<pre>
+ Quat(); <i>// Initializes to identity quaternion</i>
+ Quat(double x, double y, double z, double w); <i>// Specify vector &amp; scalar part.</i>
+ Quat(const Vec3&amp; a, double b); <i>// Specify vector &amp; scalar part.</i>
+ Quat(const Quat&amp; q); <i>// Copy values from q</i>
+</pre>
+
+<pre>
+ Quat::ident(); <i>// Return the identity quaternion</i>
+</pre>
+
+<h4>Arithmetic Methods</h4>
+
+<p>The quaternion class supports all the usual arithmetic methods, both
+as in-place assignment operators:
+
+<pre>
+ Quat&amp; operator=(const Quat&amp; q);
+ Quat&amp; operator+=(const Quat&amp; q);
+ Quat&amp; operator-=(const Quat&amp; q);
+ Quat&amp; operator=(double d);
+ Quat&amp; operator*=(double d);
+ Quat&amp; operator/=(double d);
+</pre>
+
+and as normal binary operations:
+
+<pre>
+ Quat operator+(const Quat&amp; q, const Quat&amp; r);
+ Quat operator*(const Quat&amp; q, const Quat&amp; r);
+ Quat operator*(const Quat&amp; q, double s);
+ Quat operator*(double s, const Quat&amp; q);
+ Quat operator/(const Quat&amp; q, double s);
+</pre>
+
+<h4>Quaternion Operations</h4>
+
+<p>Using the fundamental arithmetic operations defined above, this
+package also provides the following operations on quaternions:
+<pre>
+ double norm(const Quat&amp; q); <i>// Return the length of q</i>
+ Quat conjugate(const Quat&amp; q); <i>// Return conjugate of q</i>
+ Quat inverse(const Quat&amp; q); <i>// Return multiplicative inverse of q</i>
+ void unitize(Quat&amp; q); <i>// Convert to unit quaternion</i>
+ Quat exp(const Quat&amp; q); <i>// Exponential of a <b>unit</b> quaternion </i>
+ Quat log(const Quat&amp; q); <i>// Natural logarithm of a <b>unit</b> quaternion </i>
+</pre>
+
+<p>Quaternions can be constructed from an axis/angle rotation
+specification using the function:
+<pre>
+ Quat axis_to_quat(const Vec3&amp; a, double phi);
+</pre>
+At is also generally useful to be able to convert a quaternion into a
+rotation matrix:
+<pre>
+ Mat4 quat_to_matrix(const Quat&amp; q);
+ Mat4 unit_quat_to_matrix(const Quat&amp; q);
+</pre>
+
+<p>
+<pre>
+ Quat slerp(const Quat&amp; from, const Quat&amp; to, double t);
+</pre>
+
+<p>Quaternions can also be read from and written to C++ iostreams using the
+standard <tt>&lt;&lt;</tt> and <tt>&gt;&gt;</tt> operators.
+
+</body>
+
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/raster.html b/debian/fireflies/fireflies-2.08/libgfx/doc/raster.html
new file mode 100644
index 00000000..544a30b6
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/raster.html
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: raster.html 157 2000-09-05 17:28:52Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Raster Images</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Raster Images</h2>
+
+<p>The <tt>libgfx</tt> library provides very basic support for storing raster
+image data. This is not really intended to provide the kind of support
+necessary for advanced image processing, but rather the basic functionality
+needed for saving screen snapshots, loading texture files, etc. To use this
+package you will first need to include the header file
+<pre>
+ #include &lt;gfx/raster.h&gt;
+</pre>
+
+<h3>Image Representation</h3>
+
+<p>Images are implemented using the <tt>Raster&lt;T&gt;</tt> template class.
+The templated type <tt>T</tt> determines how individual pixel values are
+stored. There are two standard image types:
+<ul>
+<li><tt>ByteRaster</tt>:
+pixel components are represented with values of type <tt>unsigned
+char</tt>
+
+<li><tt>FloatRaster</tt>:
+pixel components are represented with values of type <tt>float</tt>
+</ul>
+
+<h4>Allocating an Image</h4>
+
+<p>When allocating an image, you must specify its three dimensions: (1) width
+in pixels, (2) height in pixels, and (3) number of channels.
+<pre>
+ Raster&lt;T&gt;(int width, int height, int nchannels);
+</pre>
+Typically, the number of channels should by either 1 for grayscale images, 3
+for RGB color images, or 4 for RGB images with an alpha channel.
+
+<h4>Accessors</h4>
+
+<p>The dimensions of an image can be determined through a standard set of
+accessor functions:
+<pre>
+ int width(); <i>// Width of image (in pixels)</i>
+ int height(); <i>// Height of image (in pixels)</i>
+ int channels(); <i>// Number of channels in image</i>
+ int length(); <i>// Total number of pixel values</i>
+</pre>
+The width, height, and channel count values are merely those specified when
+the image is allocated. The length of the image is the total number of pixel
+elements (i.e., width*height*channels).
+
+<p>Pixel elements can be accessed in two different ways. First of all, you
+can get a pointer to the single pixel at the image location (i,j) by calling
+the method
+<pre>
+ T *pixel(int i, int j);
+</pre>
+This is the standard way to access pixels. Alternatively, you can access
+pixel elements using the standard C [] bracket notation. This method is
+generally discouraged since it exposes the underlying layout of the image.
+However, it can be useful if you want to visit every pixel element without
+regard to its location.
+
+
+<h4>Pixel Manipulation</h4>
+
+<p>The <tt>Raster</tt> template class provides some very simple methods for
+manipulating the image which it stores. They are:
+<pre>
+ void hflip(); <i>// Flip the image from left to right</i>
+ void vflip(); <i>// Flip the image from top to bottom</i>
+</pre>
+
+
+<h3>Input/Output of Image Files</h3>
+
+<p>In addition to internal image representation, this package provides a
+simple set of functions for reading and writing external image files.
+The library supports the following image types:
+<ul>
+<li>PNM (supported internally)
+<li>TIFF (requires <a href="http://www.libtiff.org">libtiff</a>)
+<li>JPEG (requires <a href="http://www.ijg.org">jpeglib</a>)
+<li>PNG (requires <a href="http://www.libpng.org/pub/png/">libpng</a>)
+</ul>
+
+<p>Images can be read from files using the following functions:
+<pre>
+ ByteRaster *read_pnm_image(const char *filename);
+ ByteRaster *read_tiff_image(const char *filename);
+ ByteRaster *read_png_image(const char *filename);
+ ByteRaster *read_jpeg_image(const char *filename);
+</pre>
+These functions return <tt>NULL</tt> if the file could not be read. This
+includes the case when the required external libraries are not available.
+Similar functions can be used to write images to files:
+<pre>
+ bool write_pnm_image(const char *filename, const ByteRaster&);
+ bool write_tiff_image(const char *filename, const ByteRaster&);
+ bool write_png_image(const char *filename, const ByteRaster&);
+ bool write_jpeg_image(const char *filename, const ByteRaster&);
+</pre>
+They return <tt>true</tt> or <tt>false</tt> indicating whether the output
+operation succeeded or not.
+
+<p>The PNM output routines can output both raw (i.e., binary) and ASCII image
+files. Which type of file they write is controlled by the global variable
+<pre>
+ bool will_write_raw_pnm;
+</pre>
+Since JPEG is a lossy compression format, the behavior of the JPEG output
+routines is dependent upon the global variable controlling image quality
+<pre>
+ int jpeg_output_quality;
+</pre>
+These quality factors are integers ranging from 0-100 (with 100 being the
+highest quality). See the <tt>jpeglib</tt> documentation for further details.
+
+<p>For convenience, you can read/write image files with the functions
+<pre>
+ bool write_image(const char *filename, const ByteRaster&, int type=-1);
+ ByteRaster *read_image(const char *filename, int type=-1);
+</pre>
+The file format will be inferred from the filename, unless the optional
+<tt>type</tt> argument is given. The image type should be one of
+<tt>IMG_PNM</tt>, <tt>IMG_PNG</tt>, <tt>IMG_TIFF</tt>, or <tt>IMG_JPEG</tt>.
+
+
+</body>
+
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/rotate.html b/debian/fireflies/fireflies-2.08/libgfx/doc/rotate.html
new file mode 100644
index 00000000..dc444409
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/rotate.html
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: rotate.html 309 2002-03-11 21:17:15Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Interactive Rotation Control</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Interactive Rotation Control</h2>
+
+<p>The <tt>libgfx</tt> library provides a fairly simple facility for
+interactive inspection of 3-D objects. The interface is designed
+for applications where a user is inspecting an object by spinning it and
+by translating the camera to provide a better view. All of the user
+interaction is implemented through mouse motion:
+<ul>
+ <li>Left mouse drag &mdash; rotate object about its centroid
+ <li>Right mouse drag &mdash; translate camera forward/backward
+ <li>Middle mouse drag &mdash; translate camera parallel to image plane
+</ul>
+
+<p>The classes used to implement this functionality are based on a
+fairly standard paradigm. Two subsequent mouse positions are projected
+onto a notional surface "below" the window. The cross product of these
+projected vectors defines an axis of rotation and the angle between them
+defines the rotation angle.
+
+<h3>Ball Types</h3>
+
+<p>The library currently supports two control classes:
+
+<blockquote>
+
+<p><b>Arcball</b>&nbsp;&nbsp;The Arcball controller is based on the
+article <i>Arcball Rotation Control</i> written by Ken Shoemake in
+<i>Graphics Gems IV</i> published by Academic Press.
+The underlying surface of projection is a hemisphere.
+
+<p><b>Trackball</b>&nbsp;&nbsp;Implements the mechanism used in the SGI
+3-D demo programs. This approach was originally developed by Gavin
+Bell. The underlying surface of projection is a hybrid of a hemisphere
+and a hyperbolic sheet.
+</blockquote>
+
+<h3>Public Interface</h3>
+
+<p>The two controller types both implement the same public interface,
+and can be freely interchanged in the application program. The
+interfaces for these controllers are defined in the following header
+files:
+<ul>
+ <li><tt>class Arcball</tt> &mdash; <tt>&lt;gfx/arcball.h&gt;</tt>
+ <li><tt>class Trackball</tt> &mdash; <tt>&lt;gfx/trackball.h&gt;</tt>
+</ul>
+To use one of the controllers, you need to include the appropriate
+header and create an instance of the appropriate class.
+
+<h4>Initialization</h4>
+
+<p>Before using a rotation controller, you must initialize it by
+providing the bounding sphere of the object to be controlled. This is
+done using the templated method:
+<pre>
+ template&lt;class T&gt;
+ void bounding_sphere(const TVec3&lt;T&gt;&amp; center, T radius);
+</pre>
+The specified sphere <tt>center</tt> will be the point about which the
+object will rotate.
+
+<h4>Interaction</h4>
+
+<p>Once initialized, the controller is meant to be interfaced directly
+with the event handlers of an application built using the
+<tt>libgfx</tt> <a href="gui.html">GUI framework</a>.
+Each of the following controller methods should be called from the event
+handlers of your application.
+<pre>
+ virtual void update_animation();
+ virtual bool mouse_down(int *where, int which);
+ virtual bool mouse_up(int *where, int which);
+ virtual bool mouse_drag(int *where, int *last, int which);
+</pre>
+
+<h4>Applying Results</h4>
+
+<p>For the rotation to take effect, you must apply it in the rendering
+loop of the application. Before drawing your scene, you should call the
+method:
+<pre>
+ virtual void apply_transform();
+</pre>
+This will set up the appropriate transform on the <tt>ModelView</tt>
+matrix stack. Similarly, when done drawing, you should call the method:
+<pre>
+ virtual void unapply_transform();
+</pre>
+which will clean up the <tt>ModelView</tt> matrix stack.
+
+</body>
+
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/script.html b/debian/fireflies/fireflies-2.08/libgfx/doc/script.html
new file mode 100644
index 00000000..1a457b2d
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/script.html
@@ -0,0 +1,192 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: script.html 269 2001-10-10 00:38:28Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Simple File Format Scripting</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Simple File Format Scripting</h2>
+
+<p>The <tt>libgfx</tt> library provides a very simple scripting facility which
+is primarily intended to support parsing of input files and control scripts.
+To use this package, you must include the header file:
+<pre>
+ #include &lt;gfx/script.h&gt;
+</pre>
+
+<p>For more information about this package, you may want to examine the
+sample <a href="ex-script.html">scripted application</a>.
+
+<h3>File Structure</h3>
+
+<p>Scripts processed by this package are assumed to be composed of a sequence
+of lines. Each line is processed separately, in sequence, and falls into one
+of the following categories:
+<ol>
+<li>Lines containing only whitespace are ignored
+<li>Lines whose first non-whitespace character is a '#' (hash mark) are
+treated as comments and are ignored
+<li>All other lines are assumed to be a sequence of whitespace-separated
+tokens where the first token is a command name and subsequent tokens are
+arguments to this command.
+</ol>
+
+<h3>Processing Scripts</h3>
+
+<p>In order to process scripts, you must (at minimum) perform the following
+steps:
+<ol>
+<li>Instantiate a <i>scripting environment</i> of type <tt>CmdEnv</tt>.
+<li>Register your command(s) with <tt>CmdEnv::register_command()</tt>
+or <tt>CmdEnv::register_method()</tt>.
+<li>Feed the text of the script to the parsing system.
+</ol>
+The specifics of these steps are detailed in the following sections.
+
+<h4>The Scripting Environment</h4>
+
+<p>The primary task of the scripting system is to map command name tokens into
+command procedures. These procedures, also referred to as "handlers", are
+responsible for actually performing the computation associated with a
+particular command.
+Handlers should conform to the following type definition:
+<pre>
+ typedef int (*CmdHandler)(const CmdLine &amp;cmd);
+</pre>
+The <tt>CmdLine</tt> type manages the text of a particular command line, and
+provides various methods for parsing that information (see details below).
+
+<p>The <tt>CmdEnv</tt> class manages the mapping of command names to
+handlers. In particular, handler names are mapped to pointers to
+objects derived from the base class <tt>CmdObject</tt>. All derived
+classes of <tt>CmdObject</tt> are required to override the
+<tt>operator()</tt> invocation virtual method. By using this virtual
+function, handler objects are allowed to encapsulate arbitrary data in
+their definition (i.e., to create closures). The standard scripting
+framework defines two kinds of <tt>CmdObject</tt> handlers: (1) the
+<tt>CmdFunction</tt> class to encapsulate normal functions and static
+methods and (2) and the <tt>CmdMethod</tt> template class to
+encapsulate member functions.
+
+
+<p>New handler procedures (non-member functions)
+can be associated with names using
+the method:
+<pre>
+ void register_command(const std::string&amp; name, CmdHandler proc);
+</pre>
+Member functions can be bound to names uses the templated member
+function:
+<pre>
+ template&lt;class T&gt;
+ void register_method(const std::string& name,
+ T *obj,
+ int (T::*fn)(const CmdLine&));
+</pre>
+Note that in both cases, prior bindings of <tt>name</tt> associated
+with another handler will be overwritten.
+Existing handlers can be located by name
+using the method:
+<pre>
+ CmdObject *lookup_command(const std::string&amp; name);
+</pre>
+which returns <tt>NULL</tt> if no handler is bound to the given name.
+
+<h4>Submitting Text for Execution</h4>
+
+<p>Several procedures are available for submitting script text to the parsing
+system. All of them require a <tt>CmdEnv</tt> argument that will determine
+the mapping of command names to handlers.
+
+<p>The underlying method for parsing text is:
+<pre>
+ int script_do_line(std::string &amp;line, CmdEnv &amp;env);
+ int script_do_line(const char *line, CmdEnv &amp;env);
+</pre>
+It assumes that its input is a string consisting of a single line &mdash; any
+embedded newlines will be treated like any other whitespace.
+It will
+split this line it a series of whitespace-separated tokens, interpreting the
+first such token as a command name. If <tt>env</tt> provides a binding for
+this name, the appropriate handler will be called.
+
+<p>For convenience, the scripting package also provides the following methods:
+<pre>
+ int script_do_stream(std::istream &amp;in, CmdEnv &amp;env);
+ int script_do_file(const char *name, CmdEnv &amp;env);
+ int script_do_string(const char *str, CmdEnv &amp;env);
+</pre>
+They operate by extracting a single line from the input source and processing
+that line with <tt>script_do_line()</tt>. They repeat this line-by-line
+process until the file/stream/string has been exhausted.
+The first time the processing of a line fails with an error code, these
+procedures return this error code immediately without completing the
+processing of the rest of the input.
+
+
+<h3>Writing Command Handlers</h3>
+
+<p>A command procedure is declared as follows:
+<pre>
+ int proc(const CmdLine&amp; cmd);
+</pre>
+The <tt>CmdLine</tt> structure contains all the necessary data about the line
+being processed. It provides the following fundamental accessors:
+<pre>
+ class CmdLine
+ {
+ public:
+ const std::string &amp;line; // Raw text of the (complete) line
+ std::string opname() const; // Name of the command being invoked
+ std::string argline() const; // Argument string
+ int argcount() const; // Number of argument tokens
+ };
+</pre>
+The argument string returned by <tt>argline()</tt> is unparsed except that
+whitespace following the command name and trailing whitespace at the end of
+the line have been removed.
+
+
+<p>It is up to the handler to parse the command line in whatever way it likes.
+However, the scripting system assumes that command will be given
+whitespace-separated token lists. Therefore, it pre-computes the indices of
+these tokens in the command line text before invoking the handler. To access
+an individual token, you can use the <tt>CmdLine</tt> methods:
+<pre>
+ std::string token_to_string(int i) const;
+ double token_to_double(int i) const;
+ float token_to_float(int i) const;
+ int token_to_int(int i) const;
+</pre>
+Tokens are numbered from <tt>[0 .. argcount()-1]</tt>. Note that, for
+efficiency, these methods <em>do not perform range checking.</em> It is up to
+the caller to verify that the given indices are valid.
+
+<p>In addition to accessing single argument tokens, you can collect all
+argument tokens into lists with the following <tt>CmdLine</tt> methods:
+<pre>
+ int collect_as_strings(std::vector&lt;std::string&gt; &amp;v) const;
+ int collect_as_numbers(std::vector&lt;double&gt; &amp;v) const;
+ int collect_as_numbers(std::vector&lt;int&gt; &amp;v) const;
+
+ int collect_as_numbers(double *v, int size) const;
+ int collect_as_numbers(float *v, int size) const;
+ int collect_as_numbers(int *v, int size) const;
+</pre>
+These methods always return the number of tokens collected.
+The <tt>vector</tt>-based methods will always collect all available tokens.
+In contrast, those which accept raw arrays will either collect <tt>size</tt>
+or <tt>argcount()</tt> tokens, whichever is smaller.
+
+<p>See the accompanying <a href="ex-script.html">scripting example</a> for more
+details on how to write command handlers.
+
+</body>
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/start.html b/debian/fireflies/fireflies-2.08/libgfx/doc/start.html
new file mode 100644
index 00000000..75da67d6
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/start.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: start.html 111 2000-07-31 21:40:02Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Getting Started</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Getting Started </h2>
+
+<p>The <tt>libgfx</tt> library can be used for writing both
+console-oriented and GUI programs. All programs, whether console or
+GUI, should begin by including the standard header:
+<pre>
+ #include &lt;gfx/gfx.h&gt;
+</pre>
+
+<h3>The Standard Header: gfx.h</h3>
+
+<p>The first task of the standard header file is to provide a consist
+code environment. It begins by including a set of standard C++
+headers <tt>&lt;cstdlib&gt;</tt>, <tt>&lt;cmath&gt;</tt>,
+<tt>&lt;climits&gt;</tt>, and <tt>&lt;iostream&gt;</tt>.
+It then makes sure that various common symbols, such as <tt>bool</tt>,
+<tt>M_PI</tt>, and <tt>HUGE</tt> are defined.
+
+<h4>Numerical Procedures</h4>
+
+<p>Graphics programs typically involve a substantial amount of
+mathematical calculation. Indeed, much the the <tt>libgfx</tt>
+library is devoted to supporting things such as matrix/vector
+computations. Certain mathematical procedures are common enough, and
+simple enough, that they are included in the standard header.
+
+<p>First, there are the procedures for generating random numbers:
+<pre>
+ inline double random1(); <i>// Random number between 0 and 1</i>
+ inline char random_byte(); <i>// Random byte between 0 and 255</i>
+</pre>
+These functions use the internal <tt>random()</tt> procedure if it's
+available, or <tt>rand()</tt> if not.
+
+<p>Next, are procedures for comparing floating point numbers:
+<pre>
+ const double FEQ_EPS = 1e-6;
+ const double FEQ_EPS2 = 1e-12;
+
+ inline bool FEQ(double a, double b, double eps=FEQ_EPS);
+ inline bool FEQ2(double a, double b, double eps=FEQ_EPS2);
+</pre>
+The <tt>FEQ()</tt> procedures return <tt>true</tt> if <tt>a</tt> and
+<tt>b</tt> are within <tt>eps</tt> of each other.
+
+<h4>Timing Procedures</h4>
+
+<p>To characterize the performance of a program, it is often useful to
+measure it's running time. For this reason, <tt>libgfx</tt> provides
+some basic facilities for measuring time.
+
+<pre>
+ extern double get_cpu_time();
+</pre>
+
+The function returns the number of seconds on the CPU clock. Based on
+the platform you're using, this function may use various system
+services to compute this clock. Therefore, it does not use a
+consistent measure across all systems; however, the returned quantity
+will usually be the number of seconds since the system was turned on.
+
+<p>A more convenient way to measure running time is to use the
+following macro:
+<pre>
+ #define TIMING(t, cmd) { t=get_cpu_time(); cmd; t=get_cpu_time() - t; }
+</pre>
+Given a procedure <tt>test_proc()</tt> whose performance we want to
+measure, we can use the following code:
+<pre>
+ double running_time;
+
+ TIME(running_time, test_proc());
+
+ cout << "The running time was: " << running_time << " seconds." << endl;
+</pre>
+This will print the running time of <tt>test_proc()</tt> on the console.
+
+
+<h4>Configuration Definitions</h4>
+
+<p>The final task of the standard header is to include the
+<tt>libgfx</tt> configuration header. This header is generated when
+the library is compiled. On Unix-like platforms, the header is named
+<tt>&lt;gfx/config.h&gt;</tt> and is generated automatically by the
+configuration script. For Microsoft Visual Studio platforms, a
+hand-coded header such as <tt>&lt;gfx/config-vc5.h&gt;</tt> is used
+instead. The symbols defined in this header can be used to detect the
+presence of various language features and external libraries.
+The symbols of interest to external programs are summarized below:
+
+<br><br>
+<table align=center width=85% border=0 cellpadding=5>
+<tr valign=top><th align=left>Symbol</th><th align=left>Defined when ...</th></tr>
+
+<tr valign=top><td><tt>HAVE_LIBTIFF</tt></td>
+<td>library supporting TIFF image I/O is available.</td></tr>
+
+<tr valign=top><td><tt>HAVE_LIBTIFF_LZW</tt></td>
+<td><tt>libtiff</tt> supports patented LZW compression.</td></tr>
+
+<tr valign=top><td><tt>HAVE_LIBPNG</tt></td>
+<td>library supporting PNG image I/O is available.</td></tr>
+
+<tr valign=top><td><tt>HAVE_LIBJPEG</tt></td>
+<td>library supporting JPEG image I/O is available.</td></tr>
+
+<tr valign=top><td><tt>HAVE_OPENGL</tt></td>
+<td>OpenGL is available. Value is name of implementation
+(e.g., "OpenGL" or "Mesa").</td></tr>
+</table>
+
+<p>These configuration symbols should be tested with <tt>#ifdef</tt>
+directives, as in the following example:
+<pre>
+ #ifdef HAVE_LIBTIFF
+ generate_tiff_output();
+ #endif
+</pre>
+
+</body>
+
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/vec.html b/debian/fireflies/fireflies-2.08/libgfx/doc/vec.html
new file mode 100644
index 00000000..f62aa29d
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/vec.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: vec.html 289 2002-01-14 18:21:43Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Vector Math</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Vector Math</h2>
+
+<p>The <tt>libgfx</tt> vector math package provides classes that
+make it much more convenient to write vector equations.
+Two dimensional [<a href="vec2.html">Vec2</a>],
+three dimensional [<a href="vec3.html">Vec3</a>],
+and four dimensional [<a href="vec4.html">Vec4</a>]
+vector classes are provided.
+
+<p>A vector consists of <i>n</i> numeric values. These vector types are
+actually implemented using template classes such as <tt>TVec3&lt;class
+T&gt;</tt> that allow the application to specify the type of value used to
+represent the vector elements. The standard classes described in this
+documentation (<tt>Vec2</tt>, <tt>Vec3</tt>, and <tt>Vec4</tt>) use double
+precision floating point values. Corresponding classes using single precision
+floating point values (<tt>Vec2f</tt>, <tt>Vec3f</tt>, and <tt>Vec4f</tt>) are
+also provided.
+
+<p>The elements of a vector are accessed with the standard bracket notation
+used for arrays. And like C++ arrays, vectors are indexed starting from 0.
+Thus the elements of a 3-vector can be assigned as follows:
+
+<pre>
+ Vec3 v;
+
+ v[0] = 1.0;
+ v[1] = 0.0;
+ v[2] = 2.0;
+</pre>
+
+The default constructors (as used in the previous example) always
+initialize the vector elements to 0. All vector classes also provide
+constructors which accept the initial element values as arguments.
+Thus the previous example could be more succinctly written as:
+
+<pre>
+ Vec3 v(1.0, 0.0, 2.0);
+</pre>
+
+Vectors can also be automatically cast to <code>double</code> pointer
+types. Continuing the preceding example, the following is perfectly legal:
+<pre>
+ double *w = v; <i>// w points to the first element of v</i>
+ w[1] = 3.14; <i>// Exactly equivalent to v[1] = 3.14</i>
+</pre>
+
+<p><strong>Warning:</strong>
+For efficiency reasons, <em>accessors are not range checked</em>.
+Thus you can legally write
+
+<pre>
+ Vec3 v;
+ v[42] = 3.14159;
+</pre>
+
+and this will cause an invalid memory access beyond the bounds of the
+vector. This may cause a memory fault or it may just silently
+over-write other data. Therefore you must make sure that you only
+access valid elements of arrays.
+
+
+<h3>Arithmetic Operators</h3>
+
+<p>One of the primary goals of the vector package is to simplify the
+coding of vector equations. To accomplish this, it makes use of
+<em>operator overloading</em>.
+
+
+<p><strong>Assignment</strong>&nbsp;&nbsp;
+Vectors can be assigned the values of other vectors or scalars.
+A vector assignment <tt>v = w</tt> copies the elements of <tt>w</tt>
+into the corresponding elements of <tt>v</tt>. A scalar assignment
+<tt>v = 1.0</tt> copies the given scalar, in this case <tt>1.0</tt>,
+into each of the elements of <tt>v</tt>.
+
+<p><strong>Addition/Subtraction</strong>&nbsp;&nbsp; Vectors can be
+added together either with the binary addition operator (<tt>u = v +
+w</tt>) or the additive assignment operator (<tt>u += v</tt>).
+Subtraction operates similarly, using subtraction rather than addition
+operators.
+
+<p><strong>Scalar Multiplication/Division</strong>&nbsp;&nbsp;
+Vectors can be multiplied by scalar values using either the binary
+operator (<tt>v * 2.0</tt>) or the accumulation operator (<tt>v *=
+2.0</tt>). Scalar division operates similarly.
+
+<p><strong>Inner Product</strong>&nbsp;&nbsp;
+The inner product (or dot product) of two vectors is written with the
+standard multiplication operator: <tt>v * w</tt>.
+
+<h3>Standard Vector Functions</h3>
+
+<p>All vector classes support a standard set of functions for
+performing common operations on vectors. These functions are:
+<pre>
+ <i>// Returns the squared length of the vector v</i>
+ inline double norm2(const Vec_& v);
+
+ <i>// Returns the length of the vector v</i>
+ inline double norm(const Vec_& v);
+
+ <i>// Adjusts v to have unit length. Mostly equivalent to v/=norm(v)</i>
+ inline void unitize(Vec_& v);
+</pre>
+
+<p>Vector can also be read from and written to C++ iostreams using the
+standard <tt>&lt;&lt;</tt> and <tt>&gt;&gt;</tt> operators.
+
+</body>
+
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/vec2.html b/debian/fireflies/fireflies-2.08/libgfx/doc/vec2.html
new file mode 100644
index 00000000..5faa016a
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/vec2.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: vec2.html 153 2000-09-05 16:11:26Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Vector Math</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Vector Math</h2>
+
+<h3>class Vec2</h3>
+
+<p> This class implements a 2-dimensional real-valued vector.
+Individual elements are represent with <code>double</code> precision
+floating point numbers. To use the <tt>Vec2</tt> class you must
+include the header
+<pre>
+ #include &lt;gfx/vec2.h&gt;
+</pre>
+
+<h4>Constructor Methods</h4>
+
+<p>The <tt>Vec2</tt> class defines the following set of constructors:
+
+<pre>
+ Vec2(); <i>// Initializes vector to (0 0).</i>
+ Vec2(double x, double y); <i>// Initializes vector to (x y).</i>
+ Vec2(double s); <i>// Initializes vector to (s s)</i>
+
+ Vec2(const Vec2& v); <i>// </i>
+ Vec2(const float v[2]); <i>// These copy values from v</i>
+ Vec2(const double v[2]); <i>// </i>
+</pre>
+
+<h4>Specialized Functions</h4>
+
+<p>Beyond the standard functions supported by all vector classes, the
+<tt>Vec2</tt> class provides the following additional function:
+<pre>
+ Vec2 perp(const Vec2 &v);
+</pre>
+that returns a new vector which is perpendicular to the given vector.
+
+</body>
+
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/vec3.html b/debian/fireflies/fireflies-2.08/libgfx/doc/vec3.html
new file mode 100644
index 00000000..83e27c60
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/vec3.html
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: vec3.html 86 2000-06-13 18:59:13Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Vector Math</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Vector Math</h2>
+
+<h3>class Vec3</h3>
+
+<p> This class implements a 3-dimensional real-valued vector.
+Individual elements are represent with <code>double</code> precision
+floating point numbers. To use the <tt>Vec3</tt> class you must
+include the header
+<pre>
+ #include &lt;gfx/vec3.h&gt;
+</pre>
+
+<h4>Constructor Methods</h4>
+
+<p>The <tt>Vec3</tt> class defines the following set of constructors:
+
+<pre>
+ Vec3(); <i>// Initializes vector to (0 0 0).</i>
+ Vec3(double x, double y, double z); <i>// Initializes vector to (x y z).</i>
+ Vec3(double s); <i>// Initializes vector to (s s s)</i>
+
+ Vec3(const Vec3& v); <i>// </i>
+ Vec3(const float v[3]); <i>// These copy values from v</i>
+ Vec3(const double v[3]); <i>// </i>
+
+ Vec3(const Vec2& v, double z); <i>// Initializes vector to (v[0] v[1] z)</i>
+</pre>
+
+<h4>Specialized Functions</h4>
+
+<p>In addition to the standard functions provided by all vector classes,
+the <tt>Vec3</tt> class defines certain specialized functions which
+operate only on 3-D vectors.
+
+<p>The <em>cross product</em> of two vectors <tt>v, w</tt> is a third
+vector which is perpendicular to both <tt>v</tt> and <tt>w</tt>.
+It can be computed with either a function call or an overloaded
+operator
+
+<pre>
+ u = cross(v, w); <i>// Equivalent ways of computing</i>
+ u = v ^ w; <i>// the cross product of v and w.</i>
+</pre>
+
+<p>Since 3-D vectors may be used to represent 2-D homogeneous
+coordinates, a projection function is provided.
+<pre>
+ Vec2 proj(const Vec3& v);
+</pre>
+This routine takes a homogeneous vector <i>(x y w)</i> and returns the
+corresponding 2-D vector <i>(x/w y/w)</i>. If <i>w</i> is 0 then
+the vector <i>(x y)</i> is returned.
+
+</body>
+
+</html>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/vec4.html b/debian/fireflies/fireflies-2.08/libgfx/doc/vec4.html
new file mode 100644
index 00000000..77e3e467
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/doc/vec4.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- $Id: vec4.html 86 2000-06-13 18:59:13Z garland $ -->
+
+<html>
+
+<head>
+<title>libgfx: Vector Math</title>
+<link rel=stylesheet href="cdoc.css" type="text/css">
+<meta name="Author" content="Michael Garland">
+</head>
+
+<body>
+
+<h2>Vector Math</h2>
+
+<h3>class Vec4</h3>
+
+<p> This class implements a 4-dimensional real-valued vector.
+Individual elements are represent with <code>double</code> precision
+floating point numbers. To use the <tt>Vec4</tt> class you must
+include the header
+<pre>
+ #include &lt;gfx/vec4.h&gt;
+</pre>
+
+<h4>Constructor Methods</h4>
+
+<p>The <tt>Vec4</tt> class defines the following set of constructors:
+
+<pre>
+ Vec4(); <i>// Initializes vector to (0 0 0 0).</i>
+ Vec4(double x, double y, double z, double w); <i>// Initializes vector to (x y z w).</i>
+ Vec3(double s); <i>// Initializes vector to (s s s s)</i>
+
+ Vec4(const Vec4& v); <i>// </i>
+ Vec4(const float v[4]); <i>// These copy values from v</i>
+ Vec4(const double v[4]); <i>// </i>
+
+ Vec4(const Vec3& v, double w); <i>// Initializes vector to (v[0] v[1] v[2] w)</i>
+</pre>
+
+<h4>Specialized Functions</h4>
+
+<p>In addition to the standard functions provided by all vector classes,
+the <tt>Vec4</tt> class defines certain specialized functions which
+operate only on 4-D vectors.
+
+<p>The <em>cross product</em> of three 4-vectors <tt>u, v, w</tt> is a
+fourth vector which is perpendicular to all of <tt>u, v, w</tt>.
+It can be computed with the function call
+
+<pre>
+ t = cross(u, v, w);
+</pre>
+
+<p>Since 4-D vectors are frequently
+used to represent 3-D homogeneous
+coordinates, a projection function is provided.
+<pre>
+ Vec3 proj(const Vec4& v);
+</pre>
+This routine takes a homogeneous vector <i>(x y z w)</i> and returns the
+corresponding 3-vector <i>(x/w y/w z/w)</i>. If <i>w</i> is 0 then
+the vector <i>(x y z)</i> is returned.
diff --git a/debian/fireflies/fireflies-2.08/libgfx/gfx-config.in b/debian/fireflies/fireflies-2.08/libgfx/gfx-config.in
new file mode 100644
index 00000000..47ac58f0
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/gfx-config.in
@@ -0,0 +1,38 @@
+# $Id: gfx-config.in 343 2002-06-13 18:34:59Z garland $
+
+CC = @CC@
+CXX = @CXX@
+RANLIB = @RANLIB@
+RM = @RM@
+FLTKCONFIG = @FLTKCONFIG@
+
+WIN_FLAGS = @X_CFLAGS@
+WIN_LFLAGS = @X_LIBS@
+CFLAGS = @CFLAGS@ $(WIN_FLAGS)
+CXXFLAGS = @CXXFLAGS@ $(WIN_FLAGS)
+LDFLAGS = @LDFLAGS@ $(WIN_LFLAGS)
+
+WIN_LIBS = @X_PRE_LIBS@ @X_CORE@ @X_EXTRA_LIBS@
+WIN_DLIBS = @X_PRE_LIBS@ @X_DCORE@ @X_EXTRA_LIBS@
+IMG_LIBS = @IMG_LIBS@
+GL_LIBS = @GL_LIBS@
+FLTK_LIBS = @FLTK_LIBS@
+GUI_LIBS = $(FLTK_LIBS) $(IMG_LIBS) $(GL_LIBS) $(WIN_LIBS)
+
+CC_DEPEND = @CC_DEPEND@ $(CFLAGS)
+CXX_DEPEND = @CXX_DEPEND@ $(CXXFLAGS)
+
+.SUFFIXES:
+.SUFFIXES: .fl .c .cc .cxx .o
+
+.c.o:
+ $(CC) -c $(CFLAGS) $<
+
+.cxx.o:
+ $(CXX) -c $(CXXFLAGS) $<
+
+.fl.cxx:
+ fluid -c $<
+
+.fl.h:
+ fluid -c $<
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/arcball.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/arcball.h
new file mode 100644
index 00000000..3b1ff00e
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/arcball.h
@@ -0,0 +1,55 @@
+#ifndef GFXARCBALL_INCLUDED // -*- C++ -*-
+#define GFXARCBALL_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Arcball rotation control.
+
+ $Id: arcball.h 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include "baseball.h"
+
+namespace gfx
+{
+
+class Arcball : public Baseball
+{
+private:
+ Vec2 ball_ctr;
+ double ball_radius;
+
+ Quat q_now, q_down, q_drag; // Quaternions describing rotation
+ Vec3 v_from, v_to; //
+
+ bool is_dragging;
+
+protected:
+ Vec3 proj_to_sphere(const Vec2&);
+ void update();
+
+
+public:
+ Arcball();
+
+ virtual void update_animation();
+ virtual bool mouse_down(int *where, int which);
+ virtual bool mouse_up(int *where, int which);
+ virtual bool mouse_drag(int *where, int *last, int which);
+
+ virtual void apply_transform();
+ virtual void get_transform(Vec3 & c, Vec3 &t, Quat & q);
+ virtual void set_transform(const Vec3 & c, const Vec3 & t, const Quat & q);
+
+ virtual void write(std::ostream&);
+ virtual void read(std::istream&);
+};
+
+} // namespace gfx
+
+// GFXARCBALL_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/array.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/array.h
new file mode 100644
index 00000000..66189e4b
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/array.h
@@ -0,0 +1,70 @@
+#ifndef GFXARRAY_INCLUDED // -*- C++ -*-
+#define GFXARRAY_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ These array classes extend the STL vector<> template to provide
+ convenient 2-D and 3-D arrays.
+
+ NOTE: This package used to provide array<T> and varray<T> templates
+ that were alternatives to the STL vector<T> template. Its purpose was
+ to support some legacy code written in the days when few compilers
+ understood STL. Now that STL support is common, that code has been
+ removed.
+
+ $Id: array.h 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include "gfx.h"
+#include <vector>
+
+namespace gfx
+{
+
+template<class T>
+class array2 : public std::vector<T>
+{
+private:
+ int W, H;
+
+protected:
+ array2() { }
+
+public:
+ array2(int w, int h) : std::vector<T>(w*h), W(w), H(h) { }
+
+ T& operator()(int i, int j) { return (*this)[j*W+i]; }
+ const T& operator()(int i, int j) const { return (*this)[j*W+i]; }
+
+ int width() const { return W; }
+ int height() const { return H; }
+};
+
+template<class T>
+class array3 : public std::vector<T>
+{
+private:
+ int W, H, D;
+
+protected:
+ array3() { }
+
+public:
+ array3(int w, int h, int d) : std::vector<T>(w*h*d), W(w), H(h), D(d) { }
+
+ T& operator()(int i, int j, int k) { return (*this)[k*W*H + j*W+i]; }
+ const T& operator()(int i,int j,int k) const {return (*this)[k*W*H+j*W+i];}
+
+ int width() const { return W; }
+ int height() const { return H; }
+ int depth() const { return D; }
+};
+
+} // namespace gfx
+
+// GFXARRAY_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/baseball.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/baseball.h
new file mode 100644
index 00000000..6e10d647
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/baseball.h
@@ -0,0 +1,55 @@
+#ifndef GFXBASEBALL_INCLUDED // -*- C++ -*-
+#define GFXBASEBALL_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Common base class for ball-based rotators (e.g., Trackball & Arcball).
+
+ $Id: baseball.h 443 2005-06-14 00:53:40Z garland $
+
+ ************************************************************************/
+
+#include "quat.h"
+
+namespace gfx
+{
+
+class Baseball
+{
+public:
+ Vec3 ctr; // Describes bounding sphere of object
+ double radius; //
+
+ Quat curquat; // Current rotation of object
+ Vec3 trans; // Current translation of object
+
+public:
+ Baseball();
+ virtual ~Baseball() {}
+
+ // Required initialization method
+ template<class T>
+ void bounding_sphere(const TVec3<T>& v, T r) { ctr=v; radius=r; }
+
+ // Standard event interface provide by all Ball controllers
+ virtual void update_animation() = 0;
+ virtual bool mouse_down(int *where, int which) = 0;
+ virtual bool mouse_up(int *where, int which) = 0;
+ virtual bool mouse_drag(int *where, int *last, int which) = 0;
+
+ // Interface for use during drawing to apply appropriate transformation
+ virtual void apply_transform();
+ virtual void unapply_transform();
+
+ // Interface for reading/writing transform
+ virtual void write(std::ostream&);
+ virtual void read(std::istream&);
+};
+
+} // namespace gfx
+
+// GFXBASEBALL_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/color.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/color.h
new file mode 100644
index 00000000..6b86e6e6
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/color.h
@@ -0,0 +1,48 @@
+#ifndef GFXCOLOR_INCLUDED // -*- C++ -*-
+#define GFXCOLOR_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Simple color manipulations
+
+ $Id$
+
+ ************************************************************************/
+
+#include "vec3.h"
+
+namespace gfx
+{
+
+ // RGB colors have components R,G,B in [0,1]
+ typedef Vec3f rgbColor;
+
+ // HSV colors should have components:
+ // H in [0,360]
+ // S in [0,1]
+ // V in [0,1]
+ typedef Vec3f hsvColor;
+
+ typedef Vec3f yiqColor;
+
+ typedef Vec3f xyzColor;
+ typedef Vec2f xyChromaticity;
+
+ extern hsvColor RGBtoHSV(const rgbColor& rgb);
+ extern rgbColor HSVtoRGB(const hsvColor& hsv);
+
+ extern float rgb_luminance_ntsc(const rgbColor& rgb);
+ extern float rgb_luminance_alt(const rgbColor& rgb);
+
+ extern yiqColor RGBtoYIQ(const rgbColor& rgb);
+
+ extern xyzColor RGBtoXYZ(const rgbColor& rgb);
+ extern rgbColor XYZtoRGB(const xyzColor& xyz);
+ extern xyChromaticity xyz_chromaticity(const xyzColor& xyz);
+}
+
+// GFXCOLOR_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/config-osx.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/config-osx.h
new file mode 100644
index 00000000..b8081979
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/config-osx.h
@@ -0,0 +1,86 @@
+/************************************************************************
+
+ Configuration header for Mac OS X. Manually derived from config.h
+ generated by autoconf on OS X Tiger (10.4).
+
+ ************************************************************************/
+
+/* Define this if your compiler doesn't support the new C++ 'bool' type */
+#define HAVE_BOOL 1
+
+/* Define if your system supports rint() */
+#define HAVE_RINT 1
+
+/* Define if your system supports getrusage() */
+#define HAVE_GETRUSAGE 1
+
+/* Define if your system does not support getrusage() but supports times() */
+#define HAVE_TIMES 1
+
+/* Define if your system supports random() as opposed to just rand() */
+/* #undef HAVE_RANDOM */
+
+/* Define if the STL hash_map template is available */
+/* #undef HAVE_HASH_MAP */
+
+/* Define if the STL hash_set template is available */
+/* #undef HAVE_HASH_SET */
+
+/* GCC v3 puts hash_map and hash_set in an 'ext' directory */
+#define HAVE_EXT_HASH_MAP 1
+#define HAVE_EXT_HASH_SET 1
+
+/* Define if the STL valarray template is available */
+#define HAVE_VALARRAY 1
+
+/* Define if the ANSI standard <sstream> is available */
+#define HAVE_SSTREAM 1
+
+/* Define if the pre-ANSI <strstream> is available */
+#define HAVE_STRSTREAM 1
+
+/* Define if the gzstream library (a zlib wrapper) is available */
+/* #undef HAVE_GZSTREAM */
+
+/* ***** GUI & Image configuration section ***** */
+
+/* Define if the FLTK GUI toolkit is available */
+#define HAVE_FLTK 1
+
+/* Define if FLTK OpenGL support is available */
+#define HAVE_FLTK_GL 1
+
+/* Define if Sam Leffler's libtiff is available */
+#define HAVE_LIBTIFF 1
+
+/* Define the libtiff LZW is available */
+/* #undef HAVE_LIBTIFF_LZW */
+
+/* Define if libpng is available */
+#define HAVE_LIBPNG 1
+
+/* Define if the Independent JPEG Group's libjpeg is available */
+#define HAVE_LIBJPEG 1
+
+/* ***** OpenGL configuration section ***** */
+
+/* Define to the name of OpenGL implementation (e.g., "OpenGL" or "Mesa") */
+#define HAVE_OPENGL "OpenGL"
+
+/* Define if glPolygonOffsetEXT is available */
+/* #undef HAVE_POLYOFFSET_EXT */
+
+/* Define if glPolygonOffset is available */
+#define HAVE_POLYOFFSET 1
+
+/* Define if <GL/glext.h> header is available */
+/* #undef HAVE_GL_GLEXT_H */
+
+/* Define if <GL/glxext.h> header is available */
+/* #undef HAVE_GL_GLXEXT_H */
+
+/* Define if <GL/wglext.h> header is available */
+/* #undef HAVE_GL_WGLEXT_H */
+
+/* Define if <OpenGL/glext.h> header is available (for Apple) */
+#define HAVE_OPENGL_GLEXT_H 1
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/config-vc.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/config-vc.h
new file mode 100644
index 00000000..ed327937
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/config-vc.h
@@ -0,0 +1,85 @@
+/************************************************************************
+
+ Visual C++ 5/6 configuration header.
+ Manually generated from config.h.in.
+
+ ************************************************************************/
+
+/* Define this if your compiler doesn't support the new C++ 'bool' type */
+#define HAVE_BOOL 1
+
+/* Define if your system supports rint() */
+/* #define HAVE_RINT 1 */
+
+/* Define if your system supports getrusage() */
+/* #undef HAVE_GETRUSAGE */
+
+/* Define if your system does not support getrusage() but supports times() */
+/* #undef HAVE_TIMES */
+
+/* Define if your system supports random() as opposed to just rand() */
+/* #undef HAVE_RANDOM */
+
+/* Define if the STL hash_map template is available */
+/* #undef HAVE_HASH_MAP */
+
+/* Define if the STL hash_set template is available */
+/*#undef HAVE_HASH_SET */
+
+/* GCC v3 puts hash_map and hash_set in an 'ext' directory */
+/* #undef HAVE_EXT_HASH_MAP */
+/* #undef HAVE_EXT_HASH_SET */
+
+/* Define if the STL valarray template is available */
+#define HAVE_VALARRAY 1
+
+/* Define if the ANSI standard <sstream> is available */
+#define HAVE_SSTREAM 1
+
+/* Define if the pre-ANSI <strstream> is available */
+/* #undef HAVE_STRSTREAM */
+
+/* Define if the FLTK GUI toolkit is available */
+#define HAVE_FLTK 1
+
+/* Define if FLTK OpenGL support is available */
+#define HAVE_FLTK_GL 1
+
+/* Define if Sam Leffler's libtiff is available */
+#define HAVE_LIBTIFF 1
+
+/* Define if libpng is available */
+#define HAVE_LIBPNG 1
+
+/* Define if the Independent JPEG Group's libjpeg is available */
+#define HAVE_LIBJPEG 1
+
+/* ***** OpenGL configuration section ***** */
+
+/* Define to the name of OpenGL implementation (e.g., "OpenGL" or "Mesa") */
+#define HAVE_OPENGL "OpenGL"
+
+/* Define if glPolygonOffsetEXT is available */
+/* #undef HAVE_POLYOFFSET_EXT */
+
+/* Define if glPolygonOffset is available */
+#define HAVE_POLYOFFSET 1
+
+/* Define if <GL/glext.h> header is available */
+#define HAVE_GL_GLEXT_H 1
+
+/* Define if <GL/glxext.h> header is available */
+/* #undef HAVE_GL_GLXEXT_H */
+
+/* Define if <GL/wglext.h> header is available */
+#define HAVE_GL_WGLEXT_H 1
+
+/* Visual C++ gets confused by too many casting and [] operators */
+#define HAVE_CASTING_LIMITS 1
+
+#if defined(_DEBUG) && defined(_MSC_VER)
+// STL makes Visual C++ complain about identifiers longer than 255
+// characters. Unfortunately, this may limit the debugability of
+// code that uses STL.
+#pragma warning (disable : 4786)
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/config.h.in b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/config.h.in
new file mode 100644
index 00000000..0adb4ea7
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/config.h.in
@@ -0,0 +1,81 @@
+/* This -*- C -*- file is meant to be processed by the configure script */
+
+/* Define this if your compiler doesn't support the new C++ 'bool' type */
+#undef HAVE_BOOL
+
+/* Define if your system supports rint() */
+#undef HAVE_RINT
+
+/* Define if your system supports getrusage() */
+#undef HAVE_GETRUSAGE
+
+/* Define if your system does not support getrusage() but supports times() */
+#undef HAVE_TIMES
+
+/* Define if your system supports random() as opposed to just rand() */
+#undef HAVE_RANDOM
+
+/* Define if the STL hash_map template is available */
+#undef HAVE_HASH_MAP
+
+/* Define if the STL hash_set template is available */
+#undef HAVE_HASH_SET
+
+/* GCC v3 puts hash_map and hash_set in an 'ext' directory */
+#undef HAVE_EXT_HASH_MAP
+#undef HAVE_EXT_HASH_SET
+
+/* Define if the STL valarray template is available */
+#undef HAVE_VALARRAY
+
+/* Define if the ANSI standard <sstream> is available */
+#undef HAVE_SSTREAM
+
+/* Define if the pre-ANSI <strstream> is available */
+#undef HAVE_STRSTREAM
+
+/* Define if the gzstream library (a zlib wrapper) is available */
+#undef HAVE_GZSTREAM
+
+/* ***** GUI & Image configuration section ***** */
+
+/* Define if the FLTK GUI toolkit is available */
+#undef HAVE_FLTK
+
+/* Define if FLTK OpenGL support is available */
+#undef HAVE_FLTK_GL
+
+/* Define if Sam Leffler's libtiff is available */
+#undef HAVE_LIBTIFF
+
+/* Define the libtiff LZW is available */
+#undef HAVE_LIBTIFF_LZW
+
+/* Define if libpng is available */
+#undef HAVE_LIBPNG
+
+/* Define if the Independent JPEG Group's libjpeg is available */
+#undef HAVE_LIBJPEG
+
+/* ***** OpenGL configuration section ***** */
+
+/* Define to the name of OpenGL implementation (e.g., "OpenGL" or "Mesa") */
+#undef HAVE_OPENGL
+
+/* Define if glPolygonOffsetEXT is available */
+#undef HAVE_POLYOFFSET_EXT
+
+/* Define if glPolygonOffset is available */
+#undef HAVE_POLYOFFSET
+
+/* Define if <GL/glext.h> header is available */
+#undef HAVE_GL_GLEXT_H
+
+/* Define if <GL/glxext.h> header is available */
+#undef HAVE_GL_GLXEXT_H
+
+/* Define if <GL/wglext.h> header is available */
+#undef HAVE_GL_WGLEXT_H
+
+/* Define if <OpenGL/glext.h> header is available (for Apple) */
+#undef HAVE_OPENGL_GLEXT_H
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/geom3d.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/geom3d.h
new file mode 100644
index 00000000..817bb6f2
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/geom3d.h
@@ -0,0 +1,133 @@
+#ifndef GFXGEOM3D_INCLUDED
+#define GFXGEOM3D_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Handy 3D geometrical primitives
+
+ $Id: geom3d.h 432 2004-11-02 22:55:41Z garland $
+
+ ************************************************************************/
+
+#include "vec3.h"
+
+namespace gfx
+{
+
+//
+// Computing properties of triangles
+//
+
+template<class Vec>
+inline Vec triangle_raw_normal(const Vec& v1, const Vec& v2, const Vec& v3)
+{
+ return cross(v2-v1, v3-v1);
+}
+
+template<class Vec>
+inline typename Vec::value_type
+ triangle_area(const Vec& v1,const Vec& v2,const Vec& v3)
+{
+ return 0.5 * norm(triangle_raw_normal(v1, v2, v3));
+}
+
+template<class Vec>
+inline Vec triangle_normal(const Vec& v1, const Vec& v2, const Vec& v3)
+{
+ Vec n = triangle_raw_normal(v1, v2, v3);
+ unitize(n);
+ return n;
+}
+
+template<class Vec, class Plane>
+inline Plane triangle_plane(const Vec& v1, const Vec& v2, const Vec& v3)
+{
+ Vec n = triangle_normal(v1, v2, v3);
+ return Plane(n, -(n*v1));
+}
+
+template<class Vec, class Plane>
+inline Plane triangle_raw_plane(const Vec& v1, const Vec& v2, const Vec& v3)
+{
+ Vec n = triangle_raw_normal(v1, v2, v3);
+ return Plane(n, -(n*v1));
+}
+
+template< class Vec>
+inline typename Vec::value_type
+ triangle_compactness(const Vec& v1, const Vec& v2, const Vec& v3)
+{
+ const double FOUR_ROOT3 = 6.928203230275509;
+
+ return FOUR_ROOT3 * triangle_area(v1, v2, v3) /
+ ( norm2(v2 - v1) + norm2(v3 - v2) + norm2(v1 - v3) );
+}
+
+//
+// Operations with axis-aligned bounding boxes
+//
+
+template<class Vec, class List>
+void update_bbox(Vec& min, Vec& max, const List& items)
+{
+ typedef typename List::const_iterator iterator;
+
+ for(iterator i=items.begin(); i!=items.end(); i++)
+ {
+ const Vec& v = *i;
+ for(int j=0; j<Vec::dim(); j++)
+ {
+ if( v[j] < min[j] ) min[j] = v[j];
+ if( v[j] > max[j] ) max[j] = v[j];
+ }
+ }
+}
+
+template<class Vec, class List>
+void compute_bbox(Vec& min, Vec& max, const List& items)
+{
+ if( items.size()==0 ) min = max = 0;
+ else min = max = items[0];
+
+ update_bbox(min, max, items);
+}
+
+template<class Vec>
+bool is_inside_bbox(const Vec& p, const Vec& min, Vec& max)
+{
+ for(int i=0; i<Vec::dim(); i++)
+ if( p[i]<min[i] || p[i]>max[i] )
+ return false;
+
+ return true;
+}
+
+template<class Vec>
+Vec clamp_to_bbox(Vec p, const Vec& min, const Vec& max)
+{
+ for(int i=0; i<Vec::dim(); i++)
+ {
+ if (p[i]<min[i]) p[i]=min[i];
+ else if (p[i]>max[i]) p[i]=max[i];
+ }
+
+ return p;
+}
+
+//
+// Computing properties of tetrahedra
+//
+
+extern double tetrahedron_determinant(const Vec3& v0, const Vec3& v1,
+ const Vec3& v2, const Vec3& v3);
+
+extern double tetrahedron_volume(const Vec3& v0, const Vec3& v1,
+ const Vec3& v2, const Vec3& v3);
+
+} // namespace gfx
+
+// GFXGEOM3D_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/geom4d.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/geom4d.h
new file mode 100644
index 00000000..47007c02
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/geom4d.h
@@ -0,0 +1,36 @@
+#ifndef GFXGEOM4D_INCLUDED
+#define GFXGEOM4D_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Handy 4D geometrical primitives
+
+ $Id: geom4d.h 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+namespace gfx
+{
+
+template<class Vec>
+inline Vec tet_raw_normal(const Vec& v1, const Vec& v2, const Vec& v3, const Vec& v4)
+{
+ return cross(v2-v1, v3-v1, v4-v1);
+}
+
+
+template<class Vec>
+inline Vec tet_normal(const Vec& v1, const Vec& v2, const Vec& v3, const Vec& v4)
+{
+ Vec n = tet_raw_normal(v1, v2, v3, v4);
+ unitize(n);
+ return n;
+}
+
+}
+
+// GFXGEOM4D_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/gfx.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/gfx.h
new file mode 100644
index 00000000..69d5a0bd
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/gfx.h
@@ -0,0 +1,105 @@
+#ifndef GFX_INCLUDED // -*- C++ -*-
+#define GFX_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Main header file for the libgfx graphics library.
+
+ $Id: gfx.h 455 2005-08-17 18:10:25Z garland $
+
+ ************************************************************************/
+
+#if defined(HAVE_CONFIG_H)
+# include "config.h"
+#elif defined(_MSC_VER)
+# include "config-vc.h"
+#elif defined(__APPLE__)
+# include "config-osx.h"
+#endif
+
+#include <cstdlib>
+#include <cmath>
+#include <climits>
+#include <iostream>
+
+////////////////////////////////////////////////////////////////////////
+//
+// Standards notwithstanding, not all platforms define exactly the
+// same things in their header files. We try to compensate here.
+//
+
+#if !defined(HAVE_BOOL)
+typedef int bool;
+const bool false = 0;
+const bool true = 1;
+#endif
+
+// Microsoft doesn't define std::min() & std::max() because it conflicts with
+// <windef.h>, and their _MIN/_MAX macro workarounds don't add the std::
+// namespace qualification. These macros provide a uniform way of getting
+// around this problem.
+//
+#if defined(_MSC_VER)
+# define MIN(a,b) std::_cpp_min(a,b)
+# define MAX(a,b) std::_cpp_max(a,b)
+#else
+# if defined(__CYGWIN__)
+# define NOMINMAX
+# endif
+# define MIN(a,b) std::min(a,b)
+# define MAX(a,b) std::max(a,b)
+#endif
+
+#ifndef M_PI
+# define M_PI 3.14159265358979323846264338327950288419716939937510582097494459
+#endif
+
+#if !defined(HUGE) && defined(HUGE_VAL)
+# define HUGE HUGE_VAL
+#endif
+
+#if !defined(HAVE_RINT)
+inline double rint(double x) { return floor(x + 0.5); }
+#endif
+
+////////////////////////////////////////////////////////////////////////
+//
+//
+//
+namespace gfx
+{
+
+#if defined(HAVE_RANDOM)
+ inline double random1() { return (double)random() / (double)LONG_MAX; }
+ inline char random_byte() { return (char)(random() & 0xff); }
+#else
+ inline double random1() { return (double)rand() / (double)RAND_MAX; }
+ inline char random_byte() { return (char)(rand() & 0xff); }
+#endif
+
+const double FEQ_EPS = 1e-6;
+const double FEQ_EPS2 = 1e-12;
+
+inline bool FEQ(double a, double b, double e=FEQ_EPS) {return fabs(a-b)<e;}
+inline bool FEQ2(double a, double b, double e=FEQ_EPS2) {return fabs(a-b)<e;}
+
+
+////////////////////////////////////////////////////////////////////////
+//
+//
+//
+
+#define TIMING(t, cmd) { t=get_cpu_time(); cmd; t=get_cpu_time() - t; }
+extern double get_cpu_time();
+
+} // namespace gfx
+
+#ifndef GFX_NAMESPACE
+using namespace gfx;
+#endif
+
+// GFX_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/gl.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/gl.h
new file mode 100644
index 00000000..c8fe3bcb
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/gl.h
@@ -0,0 +1,32 @@
+#ifndef GFXGL_INCLUDED // -*- C++ -*-
+#define GFXGL_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Include standard OpenGL headers. This process is complicated by the
+ fact that the Win32 OpenGL headers require that <windows.h> be
+ included before they are.
+
+ $Id: gl.h 292 2002-01-24 17:43:59Z garland $
+
+ ************************************************************************/
+
+#include "gfx.h"
+
+#if defined(WIN32)
+# include <windows.h>
+#endif
+
+#if defined(__APPLE__)
+# include <OpenGL/gl.h>
+# include <OpenGL/glu.h>
+#else
+# include <GL/gl.h>
+# include <GL/glu.h>
+#endif
+
+// GFXGL_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/glext.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/glext.h
new file mode 100644
index 00000000..c5c99ca1
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/glext.h
@@ -0,0 +1,30 @@
+#ifndef GFXGLEXT_INCLUDED // -*- C++ -*-
+#define GFXGLEXT_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Include the standard OpenGL Extension headers, if available.
+
+ $Id: glext.h 273 2001-10-15 16:57:23Z garland $
+
+ ************************************************************************/
+
+#include "gl.h"
+
+#if defined(HAVE_GL_GLEXT_H)
+# include <GL/glext.h>
+#endif
+
+#if defined(HAVE_GL_GLXEXT_H)
+# include <GL/glxext.h>
+#endif
+
+#if defined(HAVE_GL_WGLEXT_H)
+# include <GL/wglext.h>
+#endif
+
+// GFXGLEXT_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/gltools.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/gltools.h
new file mode 100644
index 00000000..a5422f9e
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/gltools.h
@@ -0,0 +1,37 @@
+#ifndef GFXGLTOOLS_INCLUDED // -*- C++ -*-
+#define GFXGLTOOLS_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Handy functions for common OpenGL tasks
+
+ $Id: gltools.h 445 2005-06-18 02:40:45Z garland $
+
+ ************************************************************************/
+
+#include "gl.h"
+#include "vec3.h"
+
+namespace gfx
+{
+
+extern GLuint opengl_pick_nil;
+extern GLuint opengl_pick_zmax;
+
+extern void begin_opengl_pick(int *ctr, double radius, GLuint *buf, int size);
+extern GLuint complete_opengl_pick(GLuint *buffer);
+
+extern void check_opengl_errors(const char *msg=NULL);
+
+extern void camera_lookat(const Vec3& min, const Vec3& max, double aspect);
+extern void ortho_camera_lookat(const Vec3& min, const Vec3& max,double aspect);
+
+extern int unproject_pixel(int *pixel, double *world, double z=0.0);
+
+}
+
+// GFXGLTOOLS_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/gui.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/gui.h
new file mode 100644
index 00000000..da8285ac
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/gui.h
@@ -0,0 +1,186 @@
+#ifndef GFXGUI_INCLUDED // -*- C++ -*-
+#define GFXGUI_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Minimalist GUI framework.
+
+ This package implements a baseline GUI framework for use in
+ GFX-based applications. Only a very specific kind of interface is
+ supported: one where the application window consists primarily of an
+ OpenGL drawing canvas.
+
+ $Id: gui.h 443 2005-06-14 00:53:40Z garland $
+
+ ************************************************************************/
+
+#include "gl.h"
+
+#include <FL/Fl.H>
+#include <FL/Fl_Window.H>
+#include <FL/Fl_Menu_Bar.H>
+#include <FL/Fl_Gl_Window.H>
+#include <FL/Fl_Output.H>
+
+namespace gfx
+{
+
+class MxGUI;
+
+class MxGLCanvas : public Fl_Gl_Window
+{
+private:
+ int last_click[2];
+ MxGUI *app;
+
+public:
+ // Override selected FLTK window methods
+ //
+ virtual void draw();
+ virtual int handle(int event);
+ virtual void resize(int x, int y, int w, int h);
+
+public:
+ MxGLCanvas(int x, int y, int w, int h, const char *label=NULL);
+ void attach_app(MxGUI *a);
+};
+
+class MxGUI
+{
+private:
+ int w_offset, h_offset;
+ Fl_Window *create_window(int xw=640, int yw=480, int pad=5);
+
+public:
+ // This is the public interface of MxGUI available to the application.
+ //
+ Fl_Window *toplevel;
+ MxGLCanvas *canvas;
+ Fl_Output *status_line;
+ Fl_Menu_Bar *menu_bar;
+ Fl_Menu_Item *menu_layout;
+ float default_fps, target_fps;
+
+ static MxGUI *current; // There should only be one.
+
+ MxGUI();
+ virtual ~MxGUI() {}
+
+ virtual void initialize(int argc, char **argv,
+ Fl_Menu_Item *layout=NULL,
+ int xw=640, int yw=480);
+ virtual int run();
+
+ int status(const char *fmt, ...);
+ void animate(bool will);
+ bool snapshot_to_file(int format, const char *filenamep=NULL);
+ void resize_canvas(int width, int height);
+ void lock_size();
+ void unlock_size();
+
+ void title(const char *l) { toplevel->label(l); }
+
+ // Menu construction and standard callbacks
+ int add_menu(const std::string&, int key, Fl_Callback *cb, int flags=0);
+ int add_toggle_menu(const std::string&, int key, bool& val, int flags=0);
+ static void cb_toggle(Fl_Menu_ *m, bool *flag);
+
+public:
+ //
+ // Callback functions that get executed in response to menu commands.
+ virtual void cb_new();
+ virtual void cb_exit();
+ virtual void cb_snapshot(int);
+ virtual void cb_animate(Fl_Menu_ *m);
+ virtual void cb_fps();
+ virtual void cb_vga_size(int width); // uses 4:3 aspect ratio
+ virtual void cb_hdtv_size(int width); // uses 16:9 aspect ratio
+ virtual void cb_dv_size(int width); // uses 3:2 aspect ratio
+
+ virtual void cb_save_view_to_file();
+ virtual void cb_load_view_from_file();
+ virtual bool save_view_to_file();
+ virtual bool load_view_from_file();
+
+public:
+ //
+ // Applications are customized by overriding the following methods.
+
+ // Override these methods to control the contents of the GL canvas
+ virtual void setup_for_drawing();
+ virtual void draw_contents();
+ virtual void update_animation();
+
+ // Override these methods to receive events from the GL canvas
+ virtual bool mouse_down(int *where, int which);
+ virtual bool mouse_up(int *where, int which);
+ virtual bool mouse_drag(int *where, int *last, int which);
+ virtual bool key_press(int key);
+
+ // Override these methods to get command line arguments
+ virtual int cmdline_option(int argc, char **argv, int& index);
+ virtual void cmdline_file(const char *file);
+
+ // Override these methods to add custom interface elements
+ virtual void add_upper_controls(int& yfill, const int pad) {}
+ virtual void add_lower_controls(int& yfill, const int pad) {}
+
+ // Override this method to free memory, close files, etc.
+ virtual void cleanup_for_exit() {}
+};
+
+////////////////////////////////////////////////////////////////////////
+//
+// This template makes it easier to create FLTK-compliant callbacks.
+// In particular, its purpose is to construct static thunks for
+// calling member functions of MxGUI-derived classes.
+//
+
+template<class Gui>
+struct MxBinder
+{
+ typedef void (Gui::*GuiCommand)();
+ typedef void (Gui::*GuiCommand1)(int);
+ typedef void (Gui::*GuiCommand2)(Fl_Menu_ *);
+
+ template<GuiCommand cmd>
+ static void to(Fl_Widget *, void *data)
+ {
+ Gui *gui = static_cast<Gui*>(data);
+ (gui->*cmd)();
+ gui->canvas->redraw();
+ }
+
+ template<GuiCommand2 cmd>
+ static void to_menu(Fl_Widget *w, void *data)
+ {
+ Gui *gui = static_cast<Gui*>(data);
+ (gui->*cmd)(static_cast<Fl_Menu_ *>(w));
+ gui->canvas->redraw();
+ }
+
+ template<GuiCommand1 cmd, int i>
+ static void to_arg(Fl_Widget *, void *data)
+ {
+ Gui *gui = static_cast<Gui*>(data);
+ (gui->*cmd)(i);
+ gui->canvas->redraw();
+ }
+};
+
+////////////////////////////////////////////////////////////////////////
+//
+// These macros make static FLTK menu definitions look a little nicer.
+//
+
+#define MXGUI_BEGIN_MENU(name) {name, 0, 0, 0, FL_SUBMENU},
+#define MXGUI_END_MENU {0},
+#define MXGUI_FINISH_MENUBAR {0}
+
+} // namespace gfx
+
+// GFXGUI_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/intvec.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/intvec.h
new file mode 100644
index 00000000..f6cf4d05
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/intvec.h
@@ -0,0 +1,97 @@
+#ifndef GFXINTVEC_INCLUDED // -*- C++ -*-
+#define GFXINTVEC_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Generic class for representing packed integer vectors.
+
+ For signed types (e.g., short) the elements of the vector are
+ assumed to fall in the range [-1, 1]. For unsigned types the
+ elements of the vector are assumed to fall in the range [0, 1].
+
+ Note that ANSI C defines the maximum values of integer types in
+ <limits.h>.
+
+ $Id: intvec.h 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include "gfx.h"
+
+namespace gfx
+{
+
+template<class T, int T_MAX, int N>
+class IntVec
+{
+private:
+ T data[N];
+
+ // These are the routines used by all other methods to convert
+ // between the internal integral representation and the external
+ // floating point representation.
+ //
+ static inline T _fromflt(double x)
+ { return (T)rint((x>1.0f?1.0f:x)*(double)T_MAX); }
+ static inline double _toflt(T s) { return (double)s/(double)T_MAX; }
+
+protected:
+ operator T*() { return data; }
+ operator const T*() const { return data; }
+
+public:
+ IntVec() { *this = 0.0; }
+
+ double operator[](int i) const { return _toflt(data[i]); }
+ void set(int i, double x) { data[i] = _fromflt(x); }
+
+ IntVec<T, T_MAX, N>& operator=(const IntVec<T, T_MAX, N>& v)
+ { for(int i=0; i<N; i++) data[i]=v.data[i]; return *this; }
+
+ double operator=(double x)
+ { T y = _fromflt(x); for(int i=0; i<N; i++) data[i] = y; return x; }
+
+ const T *raw_data() const { return data; }
+};
+
+
+////////////////////////////////////////////////////////////////////////
+//
+// 3-D vectors are particularly common in graphics applications.
+// RGB colors and normals are common examples of data types for which
+// we might want to use packed integer representation. Therefore we
+// make a special derived class to make it easy to define such types.
+//
+// Example: To define an RGB 3-vector represented as 3 components
+// whose values range from [0 .. 255], we could use the
+// declaration:
+//
+// typedef IntVec3<unsigned char, UCHAR_MAX> byteColor;
+//
+
+#include "vec3.h"
+
+template<class T, int T_MAX>
+class IntVec3 : public IntVec<T, T_MAX, 3>
+{
+public:
+ IntVec3() { *this = 0.0; }
+ IntVec3(double x, double y, double z) { pack(Vec3(x, y, z)); }
+ template<class U> IntVec3(const TVec3<U>& v) { pack(v[0], v[1], v[2]); }
+
+ Vec3 unpack() const { return Vec3((*this)[0],(*this)[1],(*this)[2]); }
+ void pack(const Vec3& v)
+ { this->set(0, v[0]); this->set(1, v[1]); this->set(2, v[2]); }
+ void pack(double x, double y, double z)
+ { this->set(0,x); this->set(1,y); this->set(2,z); }
+
+ IntVec3<T,T_MAX>& operator=(const Vec3& v) { pack(v); return *this; }
+};
+
+} // namespace gfx
+
+// GFXINTVEC_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/mat2.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/mat2.h
new file mode 100644
index 00000000..d4331e89
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/mat2.h
@@ -0,0 +1,158 @@
+#ifndef GFXMAT2_INCLUDED // -*- C++ -*-
+#define GFXMAT2_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ 2x2 Matrix class
+
+ $Id: mat2.h 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include "vec2.h"
+
+namespace gfx
+{
+
+class Mat2
+{
+private:
+ Vec2 row[2];
+
+public:
+ // Standard constructors
+ //
+ Mat2() { *this = 0.0; }
+ Mat2(double a, double b, double c, double d)
+ { row[0][0]=a; row[0][1]=b; row[1][0]=c; row[1][1]=d; }
+ Mat2(const Vec2 &r0,const Vec2 &r1) { row[0]=r0; row[1]=r1; }
+ Mat2(const Mat2 &m) { *this = m; }
+
+ // Descriptive interface
+ //
+ typedef double value_type;
+ typedef Vec2 vector_type;
+ typedef Mat2 inverse_type;
+ static int dim() { return 2; }
+
+ // Access methods note: A(i, j) == row i, col j
+ //
+ double& operator()(int i, int j) { return row[i][j]; }
+ double operator()(int i, int j) const { return row[i][j]; }
+ Vec2& operator[](int i) { return row[i]; }
+ const Vec2& operator[](int i) const { return row[i]; }
+ inline Vec2 col(int i) const {return Vec2(row[0][i],row[1][i]);}
+
+ operator double*() { return row[0]; }
+ operator const double*() { return row[0]; }
+ operator const double*() const { return row[0]; }
+
+
+ // Assignment methods
+ //
+ inline Mat2& operator=(const Mat2& m);
+ inline Mat2& operator=(double s);
+
+ inline Mat2& operator+=(const Mat2& m);
+ inline Mat2& operator-=(const Mat2& m);
+ inline Mat2& operator*=(double s);
+ inline Mat2& operator/=(double s);
+
+
+ // Construction of standard matrices
+ //
+ static Mat2 I();
+ static Mat2 outer_product(const Vec2 &u, const Vec2 &v)
+ { return Mat2(u[0]*v[0], u[0]*v[1], u[1]*v[0], u[1]*v[1]); }
+ static Mat2 outer_product(const Vec2 &u) { return outer_product(u,u); }
+
+ Mat2 &diag(double d);
+ Mat2 &ident() { return diag(1.0); }
+};
+
+////////////////////////////////////////////////////////////////////////
+//
+// Method definitions
+//
+
+inline Mat2& Mat2::operator=(const Mat2& m)
+ { row[0]=m[0]; row[1]=m[1]; return *this; }
+
+inline Mat2& Mat2::operator=(double s)
+ { row[0]=s; row[1]=s; return *this; }
+
+inline Mat2& Mat2::operator+=(const Mat2& m)
+ { row[0] += m.row[0]; row[1] += m.row[1]; return *this;}
+
+inline Mat2& Mat2::operator-=(const Mat2& m)
+ { row[0] -= m.row[0]; row[1] -= m.row[1]; return *this; }
+
+inline Mat2& Mat2::operator*=(double s)
+ { row[0] *= s; row[1] *= s; return *this; }
+
+inline Mat2& Mat2::operator/=(double s)
+ { row[0] /= s; row[1] /= s; return *this; }
+
+////////////////////////////////////////////////////////////////////////
+//
+// Operator definitions
+//
+
+inline Mat2 operator+(const Mat2 &n, const Mat2 &m)
+ { return Mat2(n[0]+m[0], n[1]+m[1]); }
+
+inline Mat2 operator-(const Mat2 &n, const Mat2 &m)
+ { return Mat2(n[0]-m[0], n[1]-m[1]); }
+
+inline Mat2 operator-(const Mat2 &m)
+ { return Mat2(-m[0], -m[1]); }
+
+inline Mat2 operator*(double s, const Mat2 &m)
+ { return Mat2(m[0]*s, m[1]*s); }
+inline Mat2 operator*(const Mat2 &m, double s)
+ { return s*m; }
+
+inline Mat2 operator/(const Mat2 &m, double s)
+ { return Mat2(m[0]/s, m[1]/s); }
+
+inline Vec2 operator*(const Mat2 &m, const Vec2 &v)
+ { return Vec2(m[0]*v, m[1]*v); }
+
+extern Mat2 operator*(const Mat2 &n, const Mat2 &m);
+
+inline std::ostream &operator<<(std::ostream &out, const Mat2& M)
+ { return out << M[0] << std::endl << M[1]; }
+
+inline std::istream &operator>>(std::istream &in, Mat2& M)
+ { return in >> M[0] >> M[1]; }
+
+////////////////////////////////////////////////////////////////////////
+//
+// Misc. function definitions
+//
+
+inline double det(const Mat2 &m)
+ { return m(0,0)*m(1,1) - m(0,1)*m(1,0); }
+
+inline double trace(const Mat2 &m)
+ { return m(0,0) + m(1,1); }
+
+inline Mat2 transpose(const Mat2 &m)
+ { return Mat2(m.col(0), m.col(1)); }
+
+inline Mat2 adjoint(const Mat2 &m)
+ { return Mat2(perp(m[1]), -perp(m[0])); }
+
+extern double invert(Mat2 &m_inv, const Mat2 &m);
+
+extern bool eigenvalues(const Mat2&, Vec2& evals);
+extern bool eigenvectors(const Mat2&, const Vec2& evals, Vec2 evecs[2]);
+extern bool eigen(const Mat2&, Vec2& evals, Vec2 evecs[2]);
+
+} // namespace gfx
+
+// GFXMAT2_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/mat3.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/mat3.h
new file mode 100644
index 00000000..d898a964
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/mat3.h
@@ -0,0 +1,157 @@
+#ifndef GFXMAT3_INCLUDED // -*- C++ -*-
+#define GFXMAT3_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ 3x3 Matrix class
+
+ $Id: mat3.h 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include "vec3.h"
+
+namespace gfx
+{
+
+class Mat3
+{
+private:
+ Vec3 row[3];
+
+public:
+ // Standard constructors
+ //
+ Mat3() { *this = 0.0; }
+ Mat3(const Vec3& r0,const Vec3& r1,const Vec3& r2)
+ { row[0]=r0; row[1]=r1; row[2]=r2; }
+ Mat3(const Mat3& m) { *this = m; }
+
+ // Descriptive interface
+ //
+ typedef double value_type;
+ typedef Vec3 vector_type;
+ typedef Mat3 inverse_type;
+ static int dim() { return 3; }
+
+ // Access methods
+ //
+ double& operator()(int i, int j) { return row[i][j]; }
+ double operator()(int i, int j) const { return row[i][j]; }
+ Vec3& operator[](int i) { return row[i]; }
+ const Vec3& operator[](int i) const { return row[i]; }
+ inline Vec3 col(int i) const {return Vec3(row[0][i],row[1][i],row[2][i]);}
+
+ operator double*() { return row[0]; }
+ operator const double*() { return row[0]; }
+ operator const double*() const { return row[0]; }
+
+
+ // Assignment methods
+ //
+ inline Mat3& operator=(const Mat3& m);
+ inline Mat3& operator=(double s);
+
+ inline Mat3& operator+=(const Mat3& m);
+ inline Mat3& operator-=(const Mat3& m);
+ inline Mat3& operator*=(double s);
+ inline Mat3& operator/=(double s);
+
+
+ // Construction of standard matrices
+ //
+ static Mat3 I();
+ static Mat3 outer_product(const Vec3& u, const Vec3& v);
+ static Mat3 outer_product(const Vec3& v);
+
+ Mat3 &diag(double d);
+ Mat3 &ident() { return diag(1.0); }
+
+
+};
+
+////////////////////////////////////////////////////////////////////////
+//
+// Methods definitions
+//
+
+inline Mat3& Mat3::operator=(const Mat3& m)
+ { row[0] = m[0]; row[1] = m[1]; row[2] = m[2]; return *this; }
+
+inline Mat3& Mat3::operator=(double s)
+ { row[0]=s; row[1]=s; row[2]=s; return *this; }
+
+inline Mat3& Mat3::operator+=(const Mat3& m)
+ { row[0] += m[0]; row[1] += m[1]; row[2] += m[2]; return *this; }
+
+inline Mat3& Mat3::operator-=(const Mat3& m)
+ { row[0] -= m[0]; row[1] -= m[1]; row[2] -= m[2]; return *this; }
+
+inline Mat3& Mat3::operator*=(double s)
+ { row[0] *= s; row[1] *= s; row[2] *= s; return *this; }
+
+inline Mat3& Mat3::operator/=(double s)
+ { row[0] /= s; row[1] /= s; row[2] /= s; return *this; }
+
+////////////////////////////////////////////////////////////////////////
+//
+// Operator definitions
+//
+
+inline Mat3 operator+(const Mat3& n, const Mat3& m)
+ { return Mat3(n[0]+m[0], n[1]+m[1], n[2]+m[2]); }
+
+inline Mat3 operator-(const Mat3& n, const Mat3& m)
+ { return Mat3(n[0]-m[0], n[1]-m[1], n[2]-m[2]); }
+
+inline Mat3 operator-(const Mat3& m)
+ { return Mat3(-m[0], -m[1], -m[2]); }
+
+inline Mat3 operator*(double s, const Mat3& m)
+ { return Mat3(m[0]*s, m[1]*s, m[2]*s); }
+inline Mat3 operator*(const Mat3& m, double s)
+ { return s*m; }
+
+inline Mat3 operator/(const Mat3& m, double s)
+ { return Mat3(m[0]/s, m[1]/s, m[2]/s); }
+
+inline Vec3 operator*(const Mat3& m, const Vec3& v)
+ { return Vec3(m[0]*v, m[1]*v, m[2]*v); }
+
+extern Mat3 operator*(const Mat3& n, const Mat3& m);
+
+inline std::ostream &operator<<(std::ostream &out, const Mat3& M)
+ { return out << M[0] << std::endl << M[1] << std::endl << M[2]; }
+
+inline std::istream &operator>>(std::istream &in, Mat3& M)
+ { return in >> M[0] >> M[1] >> M[2]; }
+
+////////////////////////////////////////////////////////////////////////
+//
+// Misc. function definitions
+//
+
+inline double det(const Mat3& m) { return m[0] * (m[1] ^ m[2]); }
+
+inline double trace(const Mat3& m) { return m(0,0) + m(1,1) + m(2,2); }
+
+inline Mat3 transpose(const Mat3& m)
+ { return Mat3(m.col(0), m.col(1), m.col(2)); }
+
+extern Mat3 adjoint(const Mat3& m);
+
+extern double invert(Mat3& m_inv, const Mat3& m);
+
+inline Mat3 row_extend(const Vec3& v) { return Mat3(v, v, v); }
+
+extern Mat3 diag(const Vec3& v);
+
+extern bool eigen(const Mat3& m, Vec3& eig_vals, Vec3 eig_vecs[3]);
+
+} // namespace gfx
+
+// GFXMAT3_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/mat4.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/mat4.h
new file mode 100644
index 00000000..dfb36da4
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/mat4.h
@@ -0,0 +1,194 @@
+#ifndef GFXMAT4_INCLUDED // -*- C++ -*-
+#define GFXMAT4_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ 4x4 Matrix class
+
+ $Id: mat4.h 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include "vec4.h"
+
+namespace gfx
+{
+
+class Mat4
+{
+private:
+ Vec4 row[4];
+
+public:
+ // Standard constructors
+ //
+ Mat4() { *this = 0.0; }
+ Mat4(const Vec4& r0,const Vec4& r1,const Vec4& r2,const Vec4& r3)
+ { row[0]=r0; row[1]=r1; row[2]=r2; row[3]=r3; }
+ Mat4(const Mat4& m) { *this = m; }
+
+ // Descriptive interface
+ //
+ typedef double value_type;
+ typedef Vec4 vector_type;
+ typedef Mat4 inverse_type;
+ static int dim() { return 4; }
+
+ // Access methods
+ //
+ double& operator()(int i, int j) { return row[i][j]; }
+ double operator()(int i, int j) const { return row[i][j]; }
+ Vec4& operator[](int i) { return row[i]; }
+ const Vec4& operator[](int i) const { return row[i]; }
+ inline Vec4 col(int i) const
+ { return Vec4(row[0][i],row[1][i],row[2][i],row[3][i]); }
+
+ operator double*() { return row[0]; }
+ operator const double*() { return row[0]; }
+ operator const double*() const { return row[0]; }
+
+ // Assignment methods
+ //
+ inline Mat4& operator=(const Mat4& m);
+ inline Mat4& operator=(double s);
+
+ inline Mat4& operator+=(const Mat4& m);
+ inline Mat4& operator-=(const Mat4& m);
+ inline Mat4& operator*=(double s);
+ inline Mat4& operator/=(double s);
+
+ static Mat4 I();
+};
+
+////////////////////////////////////////////////////////////////////////
+//
+// Method definitions
+//
+
+inline Mat4& Mat4::operator=(const Mat4& m)
+{
+ row[0] = m[0]; row[1] = m[1]; row[2] = m[2]; row[3] = m[3];
+ return *this;
+}
+
+inline Mat4& Mat4::operator=(double s)
+{
+ row[0]=s; row[1]=s; row[2]=s; row[3]=s;
+ return *this;
+}
+
+inline Mat4& Mat4::operator+=(const Mat4& m)
+{
+ row[0] += m[0]; row[1] += m[1]; row[2] += m[2]; row[3] += m[3];
+ return *this;
+}
+
+inline Mat4& Mat4::operator-=(const Mat4& m)
+{
+ row[0] -= m[0]; row[1] -= m[1]; row[2] -= m[2]; row[3] -= m[3];
+ return *this;
+}
+
+inline Mat4& Mat4::operator*=(double s)
+{
+ row[0] *= s; row[1] *= s; row[2] *= s; row[3] *= s;
+ return *this;
+}
+
+inline Mat4& Mat4::operator/=(double s)
+{
+ row[0] /= s; row[1] /= s; row[2] /= s; row[3] /= s;
+ return *this;
+}
+
+////////////////////////////////////////////////////////////////////////
+//
+// Operator definitions
+//
+
+inline Mat4 operator+(const Mat4& n, const Mat4& m)
+ { return Mat4(n[0]+m[0], n[1]+m[1], n[2]+m[2], n[3]+m[3]); }
+
+inline Mat4 operator-(const Mat4& n, const Mat4& m)
+ { return Mat4(n[0]-m[0], n[1]-m[1], n[2]-m[2], n[3]-m[3]); }
+
+inline Mat4 operator-(const Mat4& n)
+ { return Mat4(-n[0], -n[1], -n[2], -n[3]); }
+
+inline Mat4 operator*(double s, const Mat4& m)
+ { return Mat4(m[0]*s, m[1]*s, m[2]*s, m[3]*s); }
+inline Mat4 operator*(const Mat4& m, double s)
+ { return s*m; }
+
+inline Mat4 operator/(const Mat4& m, double s)
+ { return Mat4(m[0]/s, m[1]/s, m[2]/s, m[3]/s); }
+
+inline Vec4 operator*(const Mat4& m, const Vec4& v)
+ { return Vec4(m[0]*v, m[1]*v, m[2]*v, m[3]*v); }
+
+extern Mat4 operator*(const Mat4& n, const Mat4& m);
+
+//
+// Transform a homogeneous 3-vector and reproject into normal 3-space
+//
+inline Vec3 operator*(const Mat4& m, const Vec3& v)
+{
+ Vec4 u=Vec4(v,1);
+ double w=m[3]*u;
+
+ if(w==0.0) return Vec3(m[0]*u, m[1]*u, m[2]*u);
+ else return Vec3(m[0]*u/w, m[1]*u/w, m[2]*u/w);
+}
+
+inline std::ostream &operator<<(std::ostream &out, const Mat4& M)
+ { return out<<M[0]<<std::endl<<M[1]<<std::endl<<M[2]<<std::endl<<M[3]; }
+
+inline std::istream &operator>>(std::istream &in, Mat4& M)
+ { return in >> M[0] >> M[1] >> M[2] >> M[3]; }
+
+////////////////////////////////////////////////////////////////////////
+//
+// Transformations
+//
+
+extern Mat4 translation_matrix(const Vec3& delta);
+
+extern Mat4 scaling_matrix(const Vec3& scale);
+
+extern Mat4 rotation_matrix_rad(double theta, const Vec3& axis);
+
+inline Mat4 rotation_matrix_deg(double theta, const Vec3& axis)
+ { return rotation_matrix_rad(theta*M_PI/180.0, axis); }
+
+extern Mat4 perspective_matrix(double fovy, double aspect,
+ double zmin=0.0, double zmax=0.0);
+
+extern Mat4 lookat_matrix(const Vec3& from, const Vec3& at, const Vec3& up);
+
+extern Mat4 viewport_matrix(double w, double h);
+
+////////////////////////////////////////////////////////////////////////
+//
+// Misc. function definitions
+//
+
+inline double det(const Mat4& m) { return m[0] * cross(m[1], m[2], m[3]); }
+
+inline double trace(const Mat4& m) { return m(0,0)+m(1,1)+m(2,2)+m(3,3); }
+
+inline Mat4 transpose(const Mat4& m)
+ { return Mat4(m.col(0), m.col(1), m.col(2), m.col(3)); }
+
+extern Mat4 adjoint(const Mat4& m);
+extern double invert(Mat4& m_inv, const Mat4& m);
+extern double invert_cramer(Mat4& m_inv, const Mat4& m);
+
+extern bool eigen(const Mat4& m, Vec4& eig_vals, Vec4 eig_vecs[4]);
+
+} // namespace gfx
+
+// GFXMAT4_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/quat.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/quat.h
new file mode 100644
index 00000000..172a8b30
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/quat.h
@@ -0,0 +1,118 @@
+#ifndef GFXQUAT_INCLUDED // -*- C++ -*-
+#define GFXQUAT_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Quaternion class
+
+ $Id: quat.h 440 2005-02-23 05:14:13Z garland $
+
+ ************************************************************************/
+
+#include "mat4.h"
+
+namespace gfx
+{
+
+class Quat
+{
+private:
+ Vec3 v; // Vector component
+ double s; // Scalar component
+
+public:
+ Quat() { v=0.0; s=1.0; }
+ Quat(double x, double y, double z, double w) { v[0]=x;v[1]=y;v[2]=z; s=w; }
+ Quat(const Vec3& a, double b) { v=a; s=b; }
+ Quat(const Quat& q) { *this=q; }
+
+ // Access methods
+ const Vec3& vector() const { return v; }
+ Vec3& vector() { return v; }
+ double scalar() const { return s; }
+ double& scalar() { return s; }
+
+ // Assignment and in-place arithmetic methods
+ Quat& operator=(const Quat& q);
+ Quat& operator+=(const Quat& q);
+ Quat& operator-=(const Quat& q);
+ Quat& operator=(double d);
+ Quat& operator*=(double d);
+ Quat& operator/=(double d);
+
+ // Construction of standard quaternions
+ static Quat ident();
+};
+
+////////////////////////////////////////////////////////////////////////
+//
+// Implementation of Quat methods
+//
+
+inline Quat& Quat::operator=(const Quat& q) { v=q.v; s=q.s; return *this; }
+inline Quat& Quat::operator+=(const Quat& q) { v+=q.v; s+=q.s; return *this; }
+inline Quat& Quat::operator-=(const Quat& q) { v-=q.v; s-=q.s; return *this; }
+
+inline Quat& Quat::operator=(double d) { v=d; s=d; return *this; }
+inline Quat& Quat::operator*=(double d) { v*=d; s*=d; return *this; }
+inline Quat& Quat::operator/=(double d) { v/=d; s/=d; return *this; }
+
+inline Quat Quat::ident() { return Quat(0, 0, 0, 1); }
+
+////////////////////////////////////////////////////////////////////////
+//
+// Standard arithmetic operators on quaternions
+//
+
+inline Quat operator+(const Quat& q, const Quat& r)
+ { return Quat(q.vector()+r.vector(), q.scalar()+r.scalar()); }
+
+inline Quat operator*(const Quat& q, const Quat& r)
+{
+ return Quat(cross(q.vector(),r.vector()) +
+ r.scalar()*q.vector() +
+ q.scalar()*r.vector(),
+ q.scalar()*r.scalar() - q.vector()*r.vector());
+}
+
+inline Quat operator*(const Quat& q, double s)
+ { return Quat(q.vector()*s, q.scalar()*s); }
+inline Quat operator*(double s, const Quat& q)
+ { return Quat(q.vector()*s, q.scalar()*s); }
+
+inline Quat operator/(const Quat& q, double s)
+ { return Quat(q.vector()/s, q.scalar()/s); }
+
+inline std::ostream &operator<<(std::ostream &out, const Quat& q)
+ { return out << q.vector() << " " << q.scalar(); }
+
+inline std::istream &operator>>(std::istream &in, Quat& q)
+ { return in >> q.vector() >> q.scalar(); }
+
+
+////////////////////////////////////////////////////////////////////////
+//
+// Standard functions on quaternions
+//
+
+inline double norm(const Quat& q)
+ { return q.scalar()*q.scalar() + q.vector()*q.vector(); }
+
+inline Quat conjugate(const Quat& q) { return Quat(-q.vector(), q.scalar()); }
+inline Quat inverse(const Quat& q) { return conjugate(q)/norm(q); }
+inline Quat& unitize(Quat& q) { q /= sqrt(norm(q)); return q; }
+
+extern Quat exp(const Quat& q);
+extern Quat log(const Quat& q);
+extern Quat axis_to_quat(const Vec3& a, double phi);
+extern Mat4 quat_to_matrix(const Quat& q);
+extern Mat4 unit_quat_to_matrix(const Quat& q);
+extern Quat slerp(const Quat& from, const Quat& to, double t);
+
+} // namespace gfx
+
+// GFXQUAT_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/raster.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/raster.h
new file mode 100644
index 00000000..4d4b2336
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/raster.h
@@ -0,0 +1,171 @@
+#ifndef GFXRASTER_INCLUDED // -*- C++ -*-
+#define GFXRASTER_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Raster image support.
+
+ $Id: raster.h 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include "gfx.h"
+#include "vec2.h"
+
+namespace gfx
+{
+
+typedef TVec2<short> PixelAddress;
+
+template<class T>
+class Raster
+{
+private:
+ T *data;
+ int W, H, nchan;
+
+public:
+ Raster(int w, int h, int c)
+ {
+ W=w; H=h; nchan=c;
+ data = new T[length()];
+ }
+ virtual ~Raster() { delete[] data; }
+
+ int width() const { return W; }
+ int height() const { return H; }
+ int channels() const { return nchan; }
+ int length() const { return W*H*nchan; }
+
+ T& operator[](int i) { return data[i]; }
+ T operator[](int i) const { return data[i]; }
+
+ virtual T *pixel(int i, int j) { return data + (j*W+i)*nchan; }
+ virtual const T *pixel(int i, int j) const { return data + (j*W+i)*nchan; }
+ T *pixel(const PixelAddress &a) { return pixel(a[0], a[1]); }
+ const T *pixel(const PixelAddress &a) const { return pixel(a[0], a[1]); }
+
+ T *head() { return data; }
+ const T *head() const { return data; }
+
+ void reverse(int start=0, int end=-1);
+ void hflip();
+ void vflip();
+
+ bool is_valid_address(const PixelAddress& a) const
+ {
+ return is_valid_address(a[0], a[1]);
+ }
+
+ virtual bool is_valid_address(int x, int y) const
+ {
+ return ( (x >= 0) && (x < W) && (y >= 0) && (y < H) );
+ }
+};
+
+
+class FloatRaster;
+class ByteRaster : public Raster<unsigned char>
+{
+public:
+ ByteRaster(int w, int h, int c) : Raster<unsigned char>(w,h,c) {}
+ ByteRaster(const ByteRaster& img);
+ ByteRaster(const FloatRaster& img);
+};
+
+
+class FloatRaster : public Raster<float>
+{
+public:
+ FloatRaster(int w, int h, int c) : Raster<float>(w,h,c) {}
+ FloatRaster(const FloatRaster &img);
+ FloatRaster(const ByteRaster &img);
+};
+
+
+////////////////////////////////////////////////////////////////////////
+//
+// Templated raster methods
+//
+
+template<class T>
+inline void Raster<T>::reverse(int start, int end)
+{
+ if(end<0 || end>=length()) end = length() - channels();
+
+ int i=start, j=end;
+
+ while(i<j)
+ {
+ for(int k=0; k<channels(); k++)
+ {
+ T tmp = (*this)[i+k];
+ (*this)[i+k] = (*this)[j+k];
+ (*this)[j+k] = tmp;
+ }
+ i += channels();
+ j -= channels();
+ }
+}
+
+template<class T>
+inline void Raster<T>::hflip()
+{
+ int i = 0;
+ int j = channels()*(width()-1);
+
+ while( i<length() )
+ {
+ reverse(i, i+j);
+ i += j + channels();
+ }
+}
+
+template<class T>
+inline void Raster<T>::vflip()
+{
+ reverse();
+ hflip();
+}
+
+
+////////////////////////////////////////////////////////////////////////
+//
+// Supported external image file formats.
+//
+
+enum { IMG_PNM=0, IMG_PNG=1, IMG_TIFF=2, IMG_JPEG=3, IMG_LIMIT=4 };
+
+extern const char *image_type_name(int type);
+extern const char *image_type_ext(int type);
+extern int infer_image_type(const char *filename);
+
+// Image I/O based on filename extensions
+extern bool write_image(const char *filename, const ByteRaster&, int type=-1);
+extern ByteRaster *read_image(const char *filename, int type=-1);
+
+// PNM support provided by libgfx (always available)
+extern bool will_write_raw_pnm;
+extern bool write_pnm_image(const char *filename, const ByteRaster&);
+extern ByteRaster *read_pnm_image(const char *filename);
+
+// TIFF support provided through libtiff (if available).
+extern bool write_tiff_image(const char *filename, const ByteRaster&);
+extern ByteRaster *read_tiff_image(const char *filename);
+
+// PNG support provided through libpng (if available).
+extern bool write_png_image(const char *filename, const ByteRaster&);
+extern ByteRaster *read_png_image(const char *filename);
+
+// JPEG support provided through libjpeg (if available)
+extern int jpeg_output_quality;
+extern bool write_jpeg_image(const char *filename, const ByteRaster&);
+extern ByteRaster *read_jpeg_image(const char *filename);
+
+} // namespace gfx
+
+// GFXRASTER_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/script.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/script.h
new file mode 100644
index 00000000..c38cba1a
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/script.h
@@ -0,0 +1,182 @@
+#ifndef GFXSCRIPT_INCLUDED // -*- C++ -*-
+#define GFXSCRIPT_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Simple low-level file format scripting support.
+
+ This is the THIRD major revision of this code. It represents a
+ significant departure from the previous scripting structure.
+
+ $Id: script.h 443 2005-06-14 00:53:40Z garland $
+
+ ************************************************************************/
+
+#include "gfx.h"
+#include <vector>
+#include <string>
+#include <map>
+//#include <hash_map>
+
+namespace gfx
+{
+
+// Define a set of exceptions that can occur during script parsing
+//
+ namespace script
+ {
+ struct Error
+ {
+ std::string msg;
+ Error(const std::string& m) : msg(m) {}
+ };
+
+ struct SyntaxError : public Error
+ { SyntaxError(const std::string& m) : Error(m) {} };
+
+ struct NameError : public Error
+ { NameError(const std::string& m) : Error(m) {} };
+
+ struct IOError : public Error
+ { IOError(const std::string& m) : Error(m) {} };
+ }
+
+
+// These return codes are deprecated and will be going away in the near
+// future. Start using the exceptions defined above instead.
+enum {
+ SCRIPT_OK = 0,
+ SCRIPT_ERR_UNDEF,
+ SCRIPT_ERR_SYNTAX,
+ SCRIPT_ERR_UNSUPPORTED,
+ SCRIPT_ERR_NOFILE,
+ SCRIPT_END
+};
+
+class CmdLine
+{
+public:
+ typedef std::string::size_type index_type;
+ typedef std::pair<index_type, index_type> range_type;
+
+ const std::string &line;
+ range_type op;
+ std::vector<range_type> tokens;
+
+ std::string substr(const range_type& r) const
+ { return line.substr(r.first, r.second-r.first);}
+
+ std::string token_to_string(int i) const;
+ double token_to_double(int i) const;
+ float token_to_float(int i) const;
+ int token_to_int(int i) const;
+ std::string rest_to_string(int i) const;
+
+
+ CmdLine(const std::string &l) : line(l) { }
+
+ std::string opname() const { return substr(op); }
+ int argcount() const { return tokens.size(); }
+ std::string argline() const;
+
+ int collect_as_strings(std::vector<std::string> &v, int offset=0) const;
+ int collect_as_numbers(std::vector<double> &v, int offset=0) const;
+ int collect_as_numbers(std::vector<int> &v, int offset=0) const;
+
+ int collect_as_numbers(double *v, int size, int offset=0) const;
+ int collect_as_numbers(float *v, int size, int offset=0) const;
+ int collect_as_numbers(int *v, int size, int offset=0) const;
+};
+
+typedef int (*CmdHandler)(const CmdLine&);
+
+struct CmdObject
+{
+ virtual ~CmdObject() {}
+ virtual int operator()(const CmdLine& cmd) = 0;
+};
+
+struct CmdFunction : public CmdObject
+{
+ CmdHandler fn;
+ CmdFunction(CmdHandler f) { fn=f; }
+ virtual int operator()(const CmdLine& cmd) { return (*fn)(cmd); }
+};
+
+template<class T> struct CmdMethod : public CmdObject
+{
+ typedef int (T::*member_handler)(const CmdLine&);
+ T *self;
+ member_handler fn;
+
+ CmdMethod(T &obj, member_handler p) { self=&obj; fn=p; }
+ virtual int operator()(const CmdLine& cmd) { return (self->*fn)(cmd); }
+};
+
+template<class T> struct CmdMethod2 : public CmdObject
+{
+ typedef void (T::*member_handler)(const CmdLine&);
+ T *self;
+ member_handler fn;
+
+ CmdMethod2(T &obj, member_handler p) { self=&obj; fn=p; }
+ virtual int operator()(const CmdLine& cmd)
+ {
+ (self->*fn)(cmd);
+ return SCRIPT_OK;
+ }
+};
+
+//typedef std::hash_map< std::string, CmdHandler > CmdTable;
+typedef std::map< std::string, CmdObject* > CmdTable;
+
+class CmdEnv
+{
+private:
+ CmdTable script_commands;
+
+ int script_include(const CmdLine&);
+ int script_ignore(const CmdLine&);
+ int script_end(const CmdLine&);
+ int script_eval(const CmdLine&);
+
+ std::vector<CmdEnv*> scopes;
+
+public:
+ CmdEnv();
+ virtual ~CmdEnv();
+
+ void register_command(const std::string& name, CmdObject *fn);
+ CmdObject *lookup_command(const std::string& name);
+
+ void register_command(const std::string& name, CmdHandler proc);
+
+ template<class T> inline void register_method(const std::string& name,
+ T *obj,
+ int (T::*fn)(const CmdLine&))
+ { register_command(name, new CmdMethod<T>(*obj, fn)); }
+
+ template<class T> inline void register_method(const std::string& name,
+ T *obj,
+ void (T::*fn)(const CmdLine&))
+ { register_command(name, new CmdMethod2<T>(*obj, fn)); }
+
+ void ignore_command(const std::string& name);
+
+ void register_vocabulary(const std::string& name, CmdEnv *env);
+ void begin_scope(CmdEnv *subenv);
+ void end_scope();
+
+ int do_line(const std::string& line);
+ int do_stream(std::istream& in);
+ int do_file(const std::string& filename);
+ int do_string(const std::string& line);
+};
+
+} // namespace gfx
+
+// GFXSCRIPT_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/symmat2.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/symmat2.h
new file mode 100644
index 00000000..db58c19c
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/symmat2.h
@@ -0,0 +1,134 @@
+#ifndef GFXSYMMAT2_INCLUDED // -*- C++ -*-
+#define GFXSYMMAT2_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Symmetric 2x2 Matrix class
+
+ ************************************************************************/
+
+#include "mat2.h"
+
+namespace gfx
+{
+
+class SymMat2
+{
+private:
+ double elt[3];
+
+ inline int index(int i, int j) const
+ {
+ // if n=dim(), and if i<=j:
+ // index = ( n*(n+1)/2 - (n-i)*(n-i+1)/2 ) + (j-i)
+ //
+ if( i<=j ) return 3 - (2-i)*(3-i)/2 + (j-i);
+ else return 3 - (2-j)*(3-j)/2 + (i-j);
+ }
+
+public:
+ // Standard constructors
+ //
+ SymMat2(double s=0.0) { *this = s; }
+ SymMat2(const SymMat2& m) { *this = m; }
+
+ double& operator()(int i, int j) { return elt[index(i,j)]; }
+ double operator()(int i, int j) const { return elt[index(i,j)]; }
+
+ static int size() { return 3; }
+ static int dim() { return 2; }
+ typedef Vec2 vector_type;
+ typedef Mat2 inverse_type;
+ typedef double value_type;
+
+ operator double*() { return elt; }
+ operator const double*() { return elt; }
+ operator const double*() const { return elt; }
+
+ inline Vec2 row(int i) const;
+ inline Vec2 col(int j) const;
+ Mat2 fullmatrix() const;
+
+ inline SymMat2& operator=(const SymMat2& m);
+ inline SymMat2& operator=(double s);
+
+ inline SymMat2& operator+=(const SymMat2& m);
+ inline SymMat2& operator-=(const SymMat2& m);
+ inline SymMat2& operator*=(double s);
+ inline SymMat2& operator/=(double s);
+
+ static SymMat2 I();
+ static SymMat2 outer_product(const Vec2& v);
+};
+
+////////////////////////////////////////////////////////////////////////
+//
+// Methods definitions
+//
+
+inline Vec2 SymMat2::row(int i) const
+ { return Vec2((*this)(i, 0), (*this)(i, 1)); }
+
+inline Vec2 SymMat2::col(int j) const
+ { return Vec2((*this)(0, j), (*this)(1, j)); }
+
+inline SymMat2& SymMat2::operator=(const SymMat2& m)
+ { for(int i=0; i<size(); i++) elt[i]=m.elt[i]; return *this; }
+
+inline SymMat2& SymMat2::operator=(double s)
+ { for(int i=0; i<size(); i++) elt[i]=s; return *this; }
+
+inline SymMat2& SymMat2::operator+=(const SymMat2& m)
+ { for(int i=0; i<size(); i++) elt[i]+=m.elt[i]; return *this; }
+
+inline SymMat2& SymMat2::operator-=(const SymMat2& m)
+ { for(int i=0; i<size(); i++) elt[i]-=m.elt[i]; return *this; }
+
+inline SymMat2& SymMat2::operator*=(double s)
+ { for(int i=0; i<size(); i++) elt[i]*=s; return *this; }
+
+inline SymMat2& SymMat2::operator/=(double s)
+ { for(int i=0; i<size(); i++) elt[i]/=s; return *this; }
+
+////////////////////////////////////////////////////////////////////////
+//
+// Operator definitions
+//
+
+inline SymMat2 operator+(SymMat2 n, const SymMat2& m) { n += m; return n; }
+inline SymMat2 operator-(SymMat2 n, const SymMat2& m) { n -= m; return n; }
+
+inline SymMat2 operator*(double s, SymMat2 m) { m*=s; return m; }
+inline SymMat2 operator*(SymMat2 m, double s) { m*=s; return m; }
+inline SymMat2 operator/(SymMat2 m, double s) { m/=s; return m; }
+
+inline Vec2 operator*(const SymMat2& m, const Vec2& v)
+ { return Vec2(m.row(0)*v, m.row(1)*v); }
+
+extern SymMat2 operator*(const SymMat2& n, const SymMat2& m);
+
+extern std::ostream &operator<<(std::ostream &out, const SymMat2& M);
+
+
+////////////////////////////////////////////////////////////////////////
+//
+// Misc. function definitions
+//
+
+inline double det(const SymMat2& m) { return m(0,0)*m(1,1) - 2*m(0,1); }
+
+inline double trace(const SymMat2& m) { return m(0,0) + m(1,1); }
+
+inline SymMat2 transpose(const SymMat2& m) { return m; }
+
+extern double invert(Mat2& m_inv, const SymMat2& m);
+
+extern bool eigen(const SymMat2& m, Vec2& eig_vals, Vec2 eig_vecs[2]);
+
+} // namespace gfx
+
+// GFXSYMMAT2_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/symmat3.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/symmat3.h
new file mode 100644
index 00000000..ec5e181f
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/symmat3.h
@@ -0,0 +1,136 @@
+#ifndef GFXSYMMAT3_INCLUDED // -*- C++ -*-
+#define GFXSYMMAT3_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Symmetric 3x3 Matrix class
+
+ $Id: symmat3.h 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include "mat3.h"
+
+namespace gfx
+{
+
+class SymMat3
+{
+private:
+ double elt[6];
+
+ inline int index(int i, int j) const
+ {
+ // if n=dim(), and if i<=j:
+ // index = ( n*(n+1)/2 - (n-i)*(n-i+1)/2 ) + (j-i)
+ //
+ if( i<=j ) return 6 - (3-i)*(4-i)/2 + (j-i);
+ else return 6 - (3-j)*(4-j)/2 + (i-j);
+ }
+
+public:
+ // Standard constructors
+ //
+ SymMat3(double s=0.0) { *this = s; }
+ SymMat3(const SymMat3& m) { *this = m; }
+
+ double& operator()(int i, int j) { return elt[index(i,j)]; }
+ double operator()(int i, int j) const { return elt[index(i,j)]; }
+
+ static int size() { return 6; }
+ static int dim() { return 3; }
+ typedef Vec3 vector_type;
+ typedef Mat3 inverse_type;
+ typedef double value_type;
+
+ operator double*() { return elt; }
+ operator const double*() { return elt; }
+ operator const double*() const { return elt; }
+
+ inline Vec3 row(int i) const;
+ inline Vec3 col(int j) const;
+ Mat3 fullmatrix() const;
+
+ inline SymMat3& operator=(const SymMat3& m);
+ inline SymMat3& operator=(double s);
+
+ inline SymMat3& operator+=(const SymMat3& m);
+ inline SymMat3& operator-=(const SymMat3& m);
+ inline SymMat3& operator*=(double s);
+ inline SymMat3& operator/=(double s);
+
+ static SymMat3 I();
+ static SymMat3 outer_product(const Vec3& v);
+};
+
+////////////////////////////////////////////////////////////////////////
+//
+// Methods definitions
+//
+
+inline Vec3 SymMat3::row(int i) const
+ { return Vec3((*this)(i, 0), (*this)(i, 1), (*this)(i, 2)); }
+
+inline Vec3 SymMat3::col(int j) const
+ { return Vec3((*this)(0, j), (*this)(1, j), (*this)(2, j)); }
+
+inline SymMat3& SymMat3::operator=(const SymMat3& m)
+ { for(int i=0; i<size(); i++) elt[i]=m.elt[i]; return *this; }
+
+inline SymMat3& SymMat3::operator=(double s)
+ { for(int i=0; i<size(); i++) elt[i]=s; return *this; }
+
+inline SymMat3& SymMat3::operator+=(const SymMat3& m)
+ { for(int i=0; i<size(); i++) elt[i]+=m.elt[i]; return *this; }
+
+inline SymMat3& SymMat3::operator-=(const SymMat3& m)
+ { for(int i=0; i<size(); i++) elt[i]-=m.elt[i]; return *this; }
+
+inline SymMat3& SymMat3::operator*=(double s)
+ { for(int i=0; i<size(); i++) elt[i]*=s; return *this; }
+
+inline SymMat3& SymMat3::operator/=(double s)
+ { for(int i=0; i<size(); i++) elt[i]/=s; return *this; }
+
+////////////////////////////////////////////////////////////////////////
+//
+// Operator definitions
+//
+
+inline SymMat3 operator+(SymMat3 n, const SymMat3& m) { n += m; return n; }
+inline SymMat3 operator-(SymMat3 n, const SymMat3& m) { n -= m; return n; }
+
+inline SymMat3 operator*(double s, SymMat3 m) { m*=s; return m; }
+inline SymMat3 operator*(SymMat3 m, double s) { m*=s; return m; }
+inline SymMat3 operator/(SymMat3 m, double s) { m/=s; return m; }
+
+inline Vec3 operator*(const SymMat3& m, const Vec3& v)
+ { return Vec3(m.row(0)*v, m.row(1)*v, m.row(2)*v); }
+
+extern SymMat3 operator*(const SymMat3& n, const SymMat3& m);
+
+extern std::ostream &operator<<(std::ostream &out, const SymMat3& M);
+
+
+////////////////////////////////////////////////////////////////////////
+//
+// Misc. function definitions
+//
+
+inline double det(const SymMat3& m) { return m.row(0) * (m.row(1)^m.row(2)); }
+
+inline double trace(const SymMat3& m) { return m(0,0) + m(1,1) + m(2,2); }
+
+inline SymMat3 transpose(const SymMat3& m) { return m; }
+
+extern double invert(Mat3& m_inv, const SymMat3& m);
+
+extern bool eigen(const SymMat3& m, Vec3& eig_vals, Vec3 eig_vecs[3]);
+
+} // namespace gfx
+
+// GFXSYMMAT3_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/symmat4.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/symmat4.h
new file mode 100644
index 00000000..e33ac14d
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/symmat4.h
@@ -0,0 +1,145 @@
+#ifndef GFXSYMMAT4_INCLUDED // C++
+#define GFXSYMMAT4_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+/************************************************************************
+
+ 4X4 Symmetric Matrix class
+
+ $Id: symmat4.h 441 2005-05-03 18:05:36Z garland $
+
+ ************************************************************************/
+
+#include "mat4.h"
+
+namespace gfx
+{
+
+class SymMat4
+{
+public:
+ double elt[10];
+
+ inline int index(int i, int j) const
+ {
+ // if n=dim(), and if i<=j:
+ // index = ( n*(n+1)/2 - (n-i)*(n-i+1)/2 ) + (j-i)
+ //
+ if (i<=j) return (10 - (4-i)*(5-i)/2 + (j-i));
+ else return (10 - (4-j)*(5-j)/2 + (i-j));
+ }
+
+public:
+ // Standard constructors
+ //
+ SymMat4(double s=0.0) { *this = 0.0; }
+ SymMat4(const SymMat4 &m) {*this=m;}
+
+
+ // Descriptive interface
+ //
+ typedef double value_type;
+ typedef Vec4 vector_type;
+ typedef Mat4 inverse_type;
+ static int dim() { return 4; }
+ static int size() {return 10;}
+
+
+ // Access methods
+ //
+ double& operator()(int i, int j) { return elt[index(i,j)]; }
+ double operator()(int i, int j) const { return elt[index(i,j)]; }
+
+ inline Vec4 row(int i) const;
+ inline Vec4 col(int i) const;
+ Mat4 fullmatrix() const;
+
+ operator double*() { return elt; }
+ operator const double*() { return elt; }
+ operator const double*() const { return elt; }
+
+ // Assignment methods
+ //
+ inline SymMat4& operator=(const SymMat4& m);
+ inline SymMat4& operator=(double s);
+
+ inline SymMat4& operator+=(const SymMat4& m);
+ inline SymMat4& operator-=(const SymMat4& m);
+ inline SymMat4& operator*=(double s);
+ inline SymMat4& operator/=(double s);
+
+ static SymMat4 I();
+ static SymMat4 outer_product(const Vec4& v);
+};
+
+////////////////////////////////////////////////////////////////////////
+//
+// Method definitions
+//
+inline Vec4 SymMat4::row(int i) const
+ { return Vec4((*this)(i,0), (*this)(i,1), (*this)(i,2), (*this)(i,3)); }
+
+inline Vec4 SymMat4::col(int j) const
+ { return Vec4((*this)(0,j), (*this)(1,j), (*this)(2,j), (*this)(3,j)); }
+
+inline SymMat4& SymMat4::operator=(const SymMat4& m)
+ { for(int i=0; i<size(); i++) elt[i] = m.elt[i]; return *this; }
+
+inline SymMat4& SymMat4::operator=(double s)
+ { for(int i=0; i<size(); i++) elt[i] = s; return *this; }
+
+inline SymMat4& SymMat4::operator+=(const SymMat4& m)
+ { for(int i=0; i<size(); i++) elt[i]+=m.elt[i]; return *this; }
+
+inline SymMat4& SymMat4::operator-=(const SymMat4& m)
+ { for(int i=0; i<size(); i++) elt[i]-=m.elt[i]; return *this; }
+
+inline SymMat4& SymMat4::operator*=(double s)
+ { for(int i=0; i<size(); i++) elt[i] *= s; return *this; }
+
+inline SymMat4& SymMat4::operator/=(double s)
+ { for(int i=0; i<size(); i++) elt[i] /= s; return *this; }
+
+////////////////////////////////////////////////////////////////////////
+//
+// Operator definitions
+//
+
+inline SymMat4 operator+(SymMat4 n, const SymMat4& m) { n += m; return n; }
+inline SymMat4 operator-(SymMat4 n, const SymMat4& m) { n -= m; return n; }
+
+inline SymMat4 operator*(double s, SymMat4 m) { m*=s; return m; }
+inline SymMat4 operator*(SymMat4 m, double s) { m*=s; return m; }
+inline SymMat4 operator/(SymMat4 m, double s) { m/=s; return m; }
+
+inline SymMat4 operator-(const SymMat4& m)
+{
+ SymMat4 temp;
+ for(int i=0; i<m.size(); i++) temp.elt[i]= -m.elt[i];
+ return temp;
+}
+
+inline Vec4 operator*(const SymMat4& m, const Vec4& v)
+ { return Vec4(m.row(0)*v, m.row(1)*v, m.row(2)*v, m.row(3)*v); }
+
+extern SymMat4 operator*(const SymMat4& n, const SymMat4& m);
+
+
+////////////////////////////////////////////////////////////////////////
+//
+// Misc. function definitions
+//
+
+inline double trace(const SymMat4& m) { return m(0,0)+m(1,1)+m(2,2)+m(3,3); }
+
+inline SymMat4 transpose(const SymMat4& m) { return m; }
+
+extern double invert(Mat4& m_inv, const SymMat4& m);
+
+extern bool eigen(const SymMat4& m, Vec4& eig_vals, Vec4 eig_vecs[4]);
+
+} // namespace gfx
+
+// GFXSYMMAT4_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/trackball.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/trackball.h
new file mode 100644
index 00000000..1432ed71
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/trackball.h
@@ -0,0 +1,39 @@
+#ifndef GFXTRACKBALL_INCLUDED // -*- C++ -*-
+#define GFXTRACKBALL_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Virtual trackball rotation control.
+
+ $Id: trackball.h 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include "baseball.h"
+
+namespace gfx
+{
+
+extern void trackball(Quat& q, float p1x, float p1y, float p2x, float p2y);
+
+class Trackball : public Baseball
+{
+public:
+ Quat lastquat;
+
+public:
+ Trackball();
+
+ virtual void update_animation();
+ virtual bool mouse_down(int *where, int which);
+ virtual bool mouse_up(int *where, int which);
+ virtual bool mouse_drag(int *where, int *last, int which);
+};
+
+} // namespace gfx
+
+// GFXTRACKBALL_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/vec2.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/vec2.h
new file mode 100644
index 00000000..11b7ac7f
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/vec2.h
@@ -0,0 +1,158 @@
+#ifndef GFXVEC2_INCLUDED // -*- C++ -*-
+#define GFXVEC2_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ 2D Vector class
+
+ $Id: vec2.h 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include "gfx.h"
+
+namespace gfx
+{
+
+template<class T>
+class TVec2 {
+private:
+ T elt[2];
+
+public:
+ // Standard constructors
+ //
+ TVec2(T s=0) { *this = s; }
+ TVec2(T x, T y) { elt[0]=x; elt[1]=y; }
+
+ // Copy constructors & assignment operators
+ template<class U> TVec2(const TVec2<U>& v) { *this = v; }
+ template<class U> TVec2(const U v[2]) { elt[0]=v[0]; elt[1]=v[1]; }
+ template<class U> TVec2& operator=(const TVec2<U>& v)
+ { elt[0]=v[0]; elt[1]=v[1]; return *this; }
+ TVec2& operator=(T s) { elt[0]=elt[1]=s; return *this; }
+
+
+ // Descriptive interface
+ //
+ typedef T value_type;
+ static int dim() { return 2; }
+
+
+ // Access methods
+ //
+ operator T*() { return elt; }
+ operator const T*() const { return elt; }
+
+#ifndef HAVE_CASTING_LIMITS
+ T& operator[](int i) { return elt[i]; }
+ T operator[](int i) const { return elt[i]; }
+ operator const T*() { return elt; }
+#endif
+
+ // In-place arithmetic methods
+ //
+ inline TVec2& operator+=(const TVec2& v);
+ inline TVec2& operator-=(const TVec2& v);
+ inline TVec2& operator*=(T s);
+ inline TVec2& operator/=(T s);
+};
+
+////////////////////////////////////////////////////////////////////////
+//
+// Method definitions
+//
+template<class T> inline TVec2<T>& TVec2<T>::operator+=(const TVec2<T>& v)
+ { elt[0] += v[0]; elt[1] += v[1]; return *this; }
+
+template<class T> inline TVec2<T>& TVec2<T>::operator-=(const TVec2<T>& v)
+ { elt[0] -= v[0]; elt[1] -= v[1]; return *this; }
+
+template<class T> inline TVec2<T>& TVec2<T>::operator*=(T s)
+ { elt[0] *= s; elt[1] *= s; return *this; }
+
+template<class T> inline TVec2<T>& TVec2<T>::operator/=(T s)
+ { elt[0] /= s; elt[1] /= s; return *this; }
+
+////////////////////////////////////////////////////////////////////////
+//
+// Operator defintions
+//
+
+template<class T>
+inline TVec2<T> operator+(const TVec2<T> &u, const TVec2<T> &v)
+ { return TVec2<T>(u[0]+v[0], u[1]+v[1]); }
+
+template<class T>
+inline TVec2<T> operator-(const TVec2<T> &u, const TVec2<T> &v)
+ { return TVec2<T>(u[0]-v[0], u[1]-v[1]); }
+
+template<class T> inline TVec2<T> operator-(const TVec2<T> &v)
+ { return TVec2<T>(-v[0], -v[1]); }
+
+#if _MSC_VER>=1200
+// Normally, we use the <class T, class N> construct below to allow the scalar
+// argument to be different than the template type. This, for example, allows
+// the user to write things like v/2. Unfortunately, Microsoft VC6.0 (aka
+// v1200) gets confused by this. We used to include explicit versions for the
+// case of int's, but this was causing silent (and incorrect) coercion of
+// floats to ints.
+//
+
+ template<class T> inline TVec2<T> operator*(T s, const TVec2<T> &v)
+ { return TVec2<T>(v[0]*s, v[1]*s); }
+ template<class T> inline TVec2<T> operator*(const TVec2<T> &v, T s)
+ { return s*v; }
+
+ template<class T> inline TVec2<T> operator/(const TVec2<T> &v, T s)
+ { return TVec2<T>(v[0]/s, v[1]/s); }
+
+#else
+ template<class T, class N> inline TVec2<T> operator*(N s, const TVec2<T> &v)
+ { return TVec2<T>(v[0]*s, v[1]*s); }
+ template<class T, class N> inline TVec2<T> operator*(const TVec2<T> &v, N s)
+ { return s*v; }
+
+ template<class T, class N> inline TVec2<T> operator/(const TVec2<T> &v, N s)
+ { return TVec2<T>(v[0]/s, v[1]/s); }
+#endif
+
+template<class T> inline T operator*(const TVec2<T> &u, const TVec2<T>& v)
+ { return u[0]*v[0] + u[1]*v[1]; }
+
+template<class T> inline TVec2<T> perp(const TVec2<T> &v)
+ { return TVec2<T>(v[1], -v[0]); }
+
+template<class T>
+inline std::ostream &operator<<(std::ostream &out, const TVec2<T> &v)
+ { return out << v[0] << " " << v[1]; }
+
+template<class T>
+inline std::istream &operator>>(std::istream &in, TVec2<T>& v)
+ { return in >> v[0] >> v[1]; }
+
+
+////////////////////////////////////////////////////////////////////////
+//
+// Misc. function definitions
+//
+
+template<class T> inline T norm2(const TVec2<T>& v) { return v*v; }
+template<class T> inline T norm(const TVec2<T>& v) { return sqrt(norm2(v)); }
+
+template<class T> inline void unitize(TVec2<T>& v)
+{
+ T l = norm2(v);
+ if( l!=1.0 && l!=0.0 ) v /= sqrt(l);
+}
+
+typedef TVec2<double> Vec2;
+typedef TVec2<float> Vec2f;
+
+} // namespace gfx
+
+// GFXVEC2_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/vec3.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/vec3.h
new file mode 100644
index 00000000..22d37394
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/vec3.h
@@ -0,0 +1,184 @@
+#ifndef GFXVEC3_INCLUDED // -*- C++ -*-
+#define GFXVEC3_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ 3D Vector class
+
+ $Id: vec3.h 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include "vec2.h"
+
+namespace gfx
+{
+
+template<class T>
+class TVec3 {
+private:
+ T elt[3];
+
+public:
+ // Standard constructors
+ //
+ TVec3(T s=0) { *this = s; }
+ TVec3(T x, T y, T z) { elt[0]=x; elt[1]=y; elt[2]=z; }
+
+ // Copy constructors & assignment operators
+ template<class U> TVec3(const TVec3<U>& v) { *this = v; }
+#ifndef STDMIX_INCLUDED
+ // This is now a standard constructor, except when compiling legacy MixKit
+ // code.
+ template<class U> TVec3(const U v[3])
+ { elt[0]=v[0]; elt[1]=v[1]; elt[2]=v[2]; }
+#else
+ // For MixKit code, we need these constructors instead.
+ // They SHOULD NOT be used in new code.
+ TVec3(const float *v) { elt[0]=v[0]; elt[1]=v[1]; elt[2]=v[2]; }
+ TVec3(const double *v) { elt[0]=v[0]; elt[1]=v[1]; elt[2]=v[2]; }
+#endif
+ template<class U> TVec3& operator=(const TVec3<U>& v)
+ { elt[0]=v[0]; elt[1]=v[1]; elt[2]=v[2]; return *this; }
+ TVec3& operator=(T s) { elt[0]=elt[1]=elt[2]=s; return *this; }
+
+ // Descriptive interface
+ //
+ typedef T value_type;
+ static int dim() { return 3; }
+
+
+ // Access methods
+ //
+ operator T*() { return elt; }
+ operator const T*() const { return elt; }
+
+#ifndef HAVE_CASTING_LIMITS
+ T& operator[](int i) { return elt[i]; }
+ T operator[](int i) const { return elt[i]; }
+ operator const T*() { return elt; }
+#endif
+
+
+ // Assignment and in-place arithmetic methods
+ //
+ inline TVec3& operator+=(const TVec3& v);
+ inline TVec3& operator-=(const TVec3& v);
+ inline TVec3& operator*=(T s);
+ inline TVec3& operator/=(T s);
+};
+
+////////////////////////////////////////////////////////////////////////
+//
+// Method definitions
+//
+
+template<class T> inline TVec3<T>& TVec3<T>::operator+=(const TVec3<T>& v)
+ { elt[0] += v[0]; elt[1] += v[1]; elt[2] += v[2]; return *this; }
+
+template<class T> inline TVec3<T>& TVec3<T>::operator-=(const TVec3<T>& v)
+ { elt[0] -= v[0]; elt[1] -= v[1]; elt[2] -= v[2]; return *this; }
+
+template<class T> inline TVec3<T>& TVec3<T>::operator*=(T s)
+ { elt[0] *= s; elt[1] *= s; elt[2] *= s; return *this; }
+
+template<class T> inline TVec3<T>& TVec3<T>::operator/=(T s)
+ { elt[0] /= s; elt[1] /= s; elt[2] /= s; return *this; }
+
+
+////////////////////////////////////////////////////////////////////////
+//
+// Operator definitions
+//
+
+template<class T>
+inline TVec3<T> operator+(const TVec3<T> &u, const TVec3<T>& v)
+ { return TVec3<T>(u[0]+v[0], u[1]+v[1], u[2]+v[2]); }
+
+template<class T>
+inline TVec3<T> operator-(const TVec3<T> &u, const TVec3<T>& v)
+ { return TVec3<T>(u[0]-v[0], u[1]-v[1], u[2]-v[2]); }
+
+template<class T> inline TVec3<T> operator-(const TVec3<T> &v)
+ { return TVec3<T>(-v[0], -v[1], -v[2]); }
+
+#if _MSC_VER>=1200
+// Normally, we use the <class T, class N> construct below to allow the scalar
+// argument to be different than the template type. This, for example, allows
+// the user to write things like v/2. Unfortunately, Microsoft VC6.0 (aka
+// v1200) gets confused by this. We used to include explicit versions for the
+// case of int's, but this was causing silent (and incorrect) coercion of
+// floats to ints.
+//
+ template<class T> inline TVec3<T> operator*(T s, const TVec3<T> &v)
+ { return TVec3<T>(v[0]*s, v[1]*s, v[2]*s); }
+ template<class T> inline TVec3<T> operator*(const TVec3<T> &v, T s)
+ { return s*v; }
+
+ template<class T> inline TVec3<T> operator/(const TVec3<T> &v, T s)
+ { return TVec3<T>(v[0]/s, v[1]/s, v[2]/s); }
+#else
+ template<class T, class N> inline TVec3<T> operator*(N s, const TVec3<T> &v)
+ { return TVec3<T>(v[0]*s, v[1]*s, v[2]*s); }
+ template<class T, class N> inline TVec3<T> operator*(const TVec3<T> &v, N s)
+ { return s*v; }
+
+ template<class T, class N> inline TVec3<T> operator/(const TVec3<T> &v, N s)
+ { return TVec3<T>(v[0]/s, v[1]/s, v[2]/s); }
+#endif
+
+template<class T> inline T operator*(const TVec3<T> &u, const TVec3<T>& v)
+ { return u[0]*v[0] + u[1]*v[1] + u[2]*v[2]; }
+
+template<class T> inline TVec3<T> cross(const TVec3<T>& u, const TVec3<T>& v)
+{
+ return TVec3<T>( u[1]*v[2] - v[1]*u[2],
+ -u[0]*v[2] + v[0]*u[2],
+ u[0]*v[1] - v[0]*u[1] );
+}
+
+template<class T>
+inline TVec3<T> operator^(const TVec3<T>& u, const TVec3<T>& v)
+ { return cross(u, v); }
+
+
+template<class T>
+inline std::ostream &operator<<(std::ostream &out, const TVec3<T>& v)
+ { return out << v[0] << " " << v[1] << " " << v[2]; }
+
+template<class T>
+inline std::istream &operator>>(std::istream &in, TVec3<T>& v)
+ { return in >> v[0] >> v[1] >> v[2]; }
+
+////////////////////////////////////////////////////////////////////////
+//
+// Misc. function definitions
+//
+
+template<class T> inline T norm2(const TVec3<T>& v) { return v*v; }
+template<class T> inline T norm(const TVec3<T>& v) { return sqrt(norm2(v)); }
+
+template<class T> inline void unitize(TVec3<T>& v)
+{
+ T l = norm2(v);
+ if( l!=1.0 && l!=0.0 ) v /= sqrt(l);
+}
+
+template<class T> inline TVec2<T> proj(const TVec3<T>& v)
+{
+ TVec2<T> u(v[0], v[1]);
+ if( v[2]!=1.0 && v[2]!=0.0 )
+ u /= v[2];
+ return u;
+}
+
+typedef TVec3<double> Vec3;
+typedef TVec3<float> Vec3f;
+
+} // namespace gfx
+
+// GFXVEC3_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/vec4.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/vec4.h
new file mode 100644
index 00000000..8875074e
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/vec4.h
@@ -0,0 +1,183 @@
+#ifndef GFXVEC4_INCLUDED // -*- C++ -*-
+#define GFXVEC4_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ 4D Vector class
+
+ $Id: vec4.h 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include "vec3.h"
+
+namespace gfx
+{
+
+template<class T>
+class TVec4 {
+private:
+ T elt[4];
+
+public:
+ // Standard constructors
+ //
+ TVec4(T s=0) { *this = s; }
+ TVec4(T x, T y, T z, T w) { elt[0]=x; elt[1]=y; elt[2]=z; elt[3]=w; }
+
+ // Copy constructors & assignment operators
+ template<class U> TVec4(const TVec4<U>& v) { *this = v; }
+ template<class U> TVec4(const TVec3<U>& v,T w)
+ { elt[0]=v[0]; elt[1]=v[1]; elt[2]=v[2]; elt[3]=w; }
+ template<class U> TVec4(const U v[4])
+ { elt[0]=v[0]; elt[1]=v[1]; elt[2]=v[2]; elt[3]=v[3]; }
+ template<class U> TVec4& operator=(const TVec4<U>& v)
+ { elt[0]=v[0]; elt[1]=v[1]; elt[2]=v[2]; elt[3]=v[3]; return *this; }
+ TVec4& operator=(T s) { elt[0]=elt[1]=elt[2]=elt[3]=s; return *this; }
+
+
+ // Descriptive interface
+ //
+ typedef T value_type;
+ static int dim() { return 4; }
+
+
+ // Access methods
+ //
+ operator T*() { return elt; }
+ operator const T*() const { return elt; }
+
+#ifndef HAVE_CASTING_LIMITS
+ T& operator[](int i) { return elt[i]; }
+ T operator[](int i) const { return elt[i]; }
+ operator const T*() { return elt; }
+#endif
+
+ // Assignment and in-place arithmetic methods
+ //
+ inline TVec4& operator+=(const TVec4& v);
+ inline TVec4& operator-=(const TVec4& v);
+ inline TVec4& operator*=(T s);
+ inline TVec4& operator/=(T s);
+};
+
+////////////////////////////////////////////////////////////////////////
+//
+// Method definitions
+//
+
+template<class T> inline TVec4<T>& TVec4<T>::operator+=(const TVec4<T>& v)
+ { elt[0]+=v[0]; elt[1]+=v[1]; elt[2]+=v[2]; elt[3]+=v[3]; return *this;}
+
+template<class T> inline TVec4<T>& TVec4<T>::operator-=(const TVec4<T>& v)
+ { elt[0]-=v[0]; elt[1]-=v[1]; elt[2]-=v[2]; elt[3]-=v[3]; return *this;}
+
+template<class T> inline TVec4<T>& TVec4<T>::operator*=(T s)
+ { elt[0] *= s; elt[1] *= s; elt[2] *= s; elt[3] *= s; return *this; }
+
+template<class T> inline TVec4<T>& TVec4<T>::operator/=(T s)
+ { elt[0] /= s; elt[1] /= s; elt[2] /= s; elt[3] /= s; return *this; }
+
+
+////////////////////////////////////////////////////////////////////////
+//
+// Operator definitions
+//
+
+template<class T>
+inline TVec4<T> operator+(const TVec4<T> &u, const TVec4<T> &v)
+ { return TVec4<T>(u[0]+v[0], u[1]+v[1], u[2]+v[2], u[3]+v[3]); }
+
+template<class T>
+inline TVec4<T> operator-(const TVec4<T> &u, const TVec4<T>& v)
+ { return TVec4<T>(u[0]-v[0], u[1]-v[1], u[2]-v[2], u[3]-v[3]); }
+
+template<class T> inline TVec4<T> operator-(const TVec4<T> &u)
+ { return TVec4<T>(-u[0], -u[1], -u[2], -u[3]); }
+
+#if _MSC_VER>=1200
+// Normally, we use the <class T, class N> construct below to allow the scalar
+// argument to be different than the template type. This, for example, allows
+// the user to write things like v/2. Unfortunately, Microsoft VC6.0 (aka
+// v1200) gets confused by this. We used to include explicit versions for the
+// case of int's, but this was causing silent (and incorrect) coercion of
+// floats to ints.
+//
+ template<class T> inline TVec4<T> operator*(T s, const TVec4<T> &v)
+ { return TVec4<T>(v[0]*s, v[1]*s, v[2]*s, v[3]*s); }
+ template<class T> inline TVec4<T> operator*(const TVec4<T> &v, T s)
+ { return s*v; }
+
+ template<class T> inline TVec4<T> operator/(const TVec4<T> &v, T s)
+ { return TVec4<T>(v[0]/s, v[1]/s, v[2]/s, v[3]/s); }
+#else
+ template<class T, class N> inline TVec4<T> operator*(N s, const TVec4<T> &v)
+ { return TVec4<T>(v[0]*s, v[1]*s, v[2]*s, v[3]*s); }
+ template<class T, class N> inline TVec4<T> operator*(const TVec4<T> &v, N s)
+ { return s*v; }
+
+ template<class T, class N> inline TVec4<T> operator/(const TVec4<T> &v, N s)
+ { return TVec4<T>(v[0]/s, v[1]/s, v[2]/s, v[3]/s); }
+#endif
+
+template<class T> inline T operator*(const TVec4<T> &u, const TVec4<T> &v)
+ { return u[0]*v[0] + u[1]*v[1] + u[2]*v[2] + u[3]*v[3]; }
+
+template<class T>
+inline std::ostream &operator<<(std::ostream &out, const TVec4<T>& v)
+ { return out <<v[0] <<" " <<v[1] <<" " <<v[2] <<" " <<v[3]; }
+
+template<class T>
+inline std::istream &operator>>(std::istream &in, TVec4<T>& v)
+ { return in >> v[0] >> v[1] >> v[2] >> v[3]; }
+
+////////////////////////////////////////////////////////////////////////
+//
+// Misc. function definitions
+//
+
+template<class T>
+inline TVec4<T> cross(const TVec4<T>& a, const TVec4<T>& b, const TVec4<T>& c)
+{
+ // Code adapted from VecLib4d.c in Graphics Gems V
+
+ T d1 = (b[2] * c[3]) - (b[3] * c[2]);
+ T d2 = (b[1] * c[3]) - (b[3] * c[1]);
+ T d3 = (b[1] * c[2]) - (b[2] * c[1]);
+ T d4 = (b[0] * c[3]) - (b[3] * c[0]);
+ T d5 = (b[0] * c[2]) - (b[2] * c[0]);
+ T d6 = (b[0] * c[1]) - (b[1] * c[0]);
+
+ return TVec4<T>(- a[1] * d1 + a[2] * d2 - a[3] * d3,
+ a[0] * d1 - a[2] * d4 + a[3] * d5,
+ - a[0] * d2 + a[1] * d4 - a[3] * d6,
+ a[0] * d3 - a[1] * d5 + a[2] * d6);
+}
+
+template<class T> inline T norm2(const TVec4<T>& v) { return v*v; }
+template<class T> inline T norm(const TVec4<T>& v) { return sqrt(norm2(v)); }
+
+template<class T> inline void unitize(TVec4<T>& v)
+{
+ T l = norm2(v);
+ if( l!=1.0 && l!=0.0 ) v /= sqrt(l);
+}
+
+template<class T> inline TVec3<T> proj(const TVec4<T>& v)
+{
+ TVec3<T> u(v[0], v[1], v[2]);
+ if( v[3]!=1.0 && v[3]!=0.0 )
+ u /= v[3];
+ return u;
+}
+
+typedef TVec4<double> Vec4;
+typedef TVec4<float> Vec4f;
+
+} // namespace gfx
+
+// GFXVEC4_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/win/gui-mfc.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/win/gui-mfc.h
new file mode 100644
index 00000000..134916bd
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/win/gui-mfc.h
@@ -0,0 +1,120 @@
+#ifndef GFXGUIMFC_INCLUDED // -*- C++ -*-
+#define GFXGUIMFC_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Minimalist GUI framework built using MFC.
+
+ This package mimics the baseline GUI framework originally implemented
+ on top of FLTK in <gui.h>. It remains incomplete, and does not
+ support all the features provided by the FLTK-based version.
+
+ At this point, the two GUI implementations are close to
+ source-compatible, but not quite. The main difference is in the
+ startup issues -- main() vs. InitInstance().
+
+ $Id: gui-mfc.h 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include "mfc.h"
+#include "../gl.h"
+
+namespace gfx
+{
+
+
+class Canvas : public CFrameWnd
+{
+private:
+ int last_click[2];
+
+public:
+ Canvas();
+
+ CStatusBar *status_line;
+
+private:
+ int pixfmt;
+ HGLRC glcontext;
+
+protected:
+ inline void make_current(HDC dc) { wglMakeCurrent(dc, glcontext); }
+ inline void finish(HDC dc) { SwapBuffers(dc); }
+
+ void immediate_redraw();
+
+ int decode_mouse_button(UINT flags, int which=0);
+ void do_mouse_down(int which, UINT flags, CPoint where);
+ void do_mouse_up(int which, UINT flags, CPoint where);
+ void do_mouse_move(UINT flags, CPoint where);
+
+public:
+ void post_redraw();
+
+protected:
+ //
+ // Override selected MFC virtual functions
+ //
+ BOOL PreCreateWindow(CREATESTRUCT &cs);
+
+protected:
+ //
+ // Define MFC event handlers
+ //
+ afx_msg int OnCreate(LPCREATESTRUCT lpcs);
+ afx_msg void OnDestroy();
+ afx_msg void OnSize(UINT type, int width, int height);
+
+ afx_msg void OnActivate(UINT state, CWnd *other, BOOL is_minimized);
+ afx_msg void OnPaint();
+ afx_msg BOOL OnEraseBkgnd(CDC *dc);
+
+ afx_msg void OnLButtonDown(UINT flags, CPoint point);
+ afx_msg void OnLButtonUp(UINT flags, CPoint point);
+ afx_msg void OnRButtonDown(UINT flags, CPoint point);
+ afx_msg void OnRButtonUp(UINT flags, CPoint point);
+ afx_msg void OnMButtonDown(UINT flags, CPoint point);
+ afx_msg void OnMButtonUp(UINT flags, CPoint point);
+ afx_msg void OnMouseMove(UINT flags, CPoint point);
+ afx_msg void OnChar(UINT ch, UINT repcount, UINT flags);
+
+ DECLARE_MESSAGE_MAP()
+};
+
+
+class MfcGUI : public CWinApp
+{
+private:
+ UINT timer_id;
+
+public:
+ MfcGUI();
+
+ virtual BOOL InitInstance();
+
+ Canvas *canvas;
+ float default_fps, target_fps;
+
+ void status(const char *format, ...);
+
+ void animate(bool will=true);
+
+public:
+
+ virtual void update_animation();
+ virtual void setup_for_drawing();
+ virtual void draw_contents();
+ virtual bool mouse_down(int *where, int which);
+ virtual bool mouse_up(int *where, int which);
+ virtual bool mouse_drag(int *where, int *last, int which);
+ virtual bool key_press(int key);
+};
+
+} // namespace gfx
+
+// GFXGUIMFC_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/win/mfc.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/win/mfc.h
new file mode 100644
index 00000000..9feb045f
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/win/mfc.h
@@ -0,0 +1,30 @@
+#ifndef GFXMFC_INCLUDED // -*- C++ -*-
+#define GFXMFC_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Support code for using MFC. At the moment, this just makes sure that
+ we include the right headers.
+
+ $Id: mfc.h 425 2004-09-27 03:40:06Z garland $
+
+ ************************************************************************/
+
+#ifndef _MBCS
+#define _MBCS
+#endif
+
+#ifndef _AFXDLL
+#define _AFXDLL
+#endif
+
+#include <afxwin.h>
+#include <afxext.h>
+
+#include "wintools.h"
+
+// GFXMFC_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/include/gfx/win/wintools.h b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/win/wintools.h
new file mode 100644
index 00000000..2fd683ed
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/include/gfx/win/wintools.h
@@ -0,0 +1,26 @@
+#ifndef GFXWINTOOLS_INCLUDED // -*- C++ -*-
+#define GFXWINTOOLS_INCLUDED
+#if !defined(__GNUC__)
+# pragma once
+#endif
+
+/************************************************************************
+
+ Support code for handling various tasks under Win32
+
+ $Id: wintools.h 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <windows.h>
+
+namespace gfx
+{
+
+extern HGLRC create_glcontext(HDC dc);
+extern int set_pixel_format(HDC dc);
+
+} // namespace gfx
+
+// GFXWINTOOLS_INCLUDED
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/macos/libgfx.xcodeproj/project.pbxproj b/debian/fireflies/fireflies-2.08/libgfx/macos/libgfx.xcodeproj/project.pbxproj
new file mode 100644
index 00000000..f5dd6d5d
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/macos/libgfx.xcodeproj/project.pbxproj
@@ -0,0 +1,799 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 42;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 1D5D8DBB08B3A109009C84F9 /* t-gui.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5D8DBA08B3A109009C84F9 /* t-gui.cxx */; };
+ 1D5D8DD508B3A20A009C84F9 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D5D8DC208B3A20A009C84F9 /* OpenGL.framework */; };
+ 1D5D8E5808B3A251009C84F9 /* libgfx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D2AAC046055464E500DB518D /* libgfx.a */; };
+ 1D5D8E6608B3A6CF009C84F9 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D5D8E5908B3A6CF009C84F9 /* AGL.framework */; };
+ 1D5D8E8F08B3A831009C84F9 /* libgfx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D2AAC046055464E500DB518D /* libgfx.a */; };
+ 1D5D8E9708B3A849009C84F9 /* t-vec.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5D8E9608B3A849009C84F9 /* t-vec.cxx */; };
+ 1D5F0B9708B399390048C9A2 /* trackball.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B8108B399390048C9A2 /* trackball.cxx */; };
+ 1D5F0B9808B399390048C9A2 /* time.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B8208B399390048C9A2 /* time.cxx */; };
+ 1D5F0B9908B399390048C9A2 /* symmat4.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B8308B399390048C9A2 /* symmat4.cxx */; };
+ 1D5F0B9A08B399390048C9A2 /* symmat3.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B8408B399390048C9A2 /* symmat3.cxx */; };
+ 1D5F0B9B08B399390048C9A2 /* symmat2.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B8508B399390048C9A2 /* symmat2.cxx */; };
+ 1D5F0B9C08B399390048C9A2 /* script.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B8608B399390048C9A2 /* script.cxx */; };
+ 1D5F0B9D08B399390048C9A2 /* raster.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B8708B399390048C9A2 /* raster.cxx */; };
+ 1D5F0B9E08B399390048C9A2 /* raster-tiff.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B8808B399390048C9A2 /* raster-tiff.cxx */; };
+ 1D5F0B9F08B399390048C9A2 /* raster-pnm.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B8908B399390048C9A2 /* raster-pnm.cxx */; };
+ 1D5F0BA008B399390048C9A2 /* raster-png.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B8A08B399390048C9A2 /* raster-png.cxx */; };
+ 1D5F0BA108B399390048C9A2 /* raster-jpeg.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B8B08B399390048C9A2 /* raster-jpeg.cxx */; };
+ 1D5F0BA208B399390048C9A2 /* quat.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B8C08B399390048C9A2 /* quat.cxx */; };
+ 1D5F0BA308B399390048C9A2 /* mat4.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B8D08B399390048C9A2 /* mat4.cxx */; };
+ 1D5F0BA408B399390048C9A2 /* mat3.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B8E08B399390048C9A2 /* mat3.cxx */; };
+ 1D5F0BA508B399390048C9A2 /* mat2.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B8F08B399390048C9A2 /* mat2.cxx */; };
+ 1D5F0BA608B399390048C9A2 /* gui.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B9008B399390048C9A2 /* gui.cxx */; };
+ 1D5F0BA708B399390048C9A2 /* gltools.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B9108B399390048C9A2 /* gltools.cxx */; };
+ 1D5F0BA808B399390048C9A2 /* geom4d.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B9208B399390048C9A2 /* geom4d.cxx */; };
+ 1D5F0BA908B399390048C9A2 /* geom3d.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B9308B399390048C9A2 /* geom3d.cxx */; };
+ 1D5F0BAA08B399390048C9A2 /* color.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B9408B399390048C9A2 /* color.cxx */; };
+ 1D5F0BAB08B399390048C9A2 /* baseball.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B9508B399390048C9A2 /* baseball.cxx */; };
+ 1D5F0BAC08B399390048C9A2 /* arcball.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F0B9608B399390048C9A2 /* arcball.cxx */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXBuildStyle section */
+ 014CEA520018CE5811CA2923 /* Debug */ = {
+ isa = PBXBuildStyle;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ ZERO_LINK = YES;
+ };
+ name = Debug;
+ };
+ 014CEA530018CE5811CA2923 /* Release */ = {
+ isa = PBXBuildStyle;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+/* End PBXBuildStyle section */
+
+/* Begin PBXContainerItemProxy section */
+ 1D5D8DB408B3A0D9009C84F9 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D2AAC045055464E500DB518D /* libgfx */;
+ remoteInfo = libgfx;
+ };
+ 1D5D8E8B08B3A81A009C84F9 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D2AAC045055464E500DB518D /* libgfx */;
+ remoteInfo = libgfx;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 1D5D8DAD08B3A0CF009C84F9 /* t-gui.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "t-gui.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 1D5D8DAF08B3A0CF009C84F9 /* t-gui-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "t-gui-Info.plist"; sourceTree = "<group>"; };
+ 1D5D8DBA08B3A109009C84F9 /* t-gui.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = "t-gui.cxx"; path = "../tests/t-gui.cxx"; sourceTree = SOURCE_ROOT; };
+ 1D5D8DC208B3A20A009C84F9 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
+ 1D5D8E5908B3A6CF009C84F9 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
+ 1D5D8E8908B3A813009C84F9 /* t-vec */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "t-vec"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 1D5D8E9608B3A849009C84F9 /* t-vec.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = "t-vec.cxx"; path = "../tests/t-vec.cxx"; sourceTree = SOURCE_ROOT; };
+ 1D5F0B8108B399390048C9A2 /* trackball.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = trackball.cxx; path = ../src/trackball.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B8208B399390048C9A2 /* time.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = time.cxx; path = ../src/time.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B8308B399390048C9A2 /* symmat4.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = symmat4.cxx; path = ../src/symmat4.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B8408B399390048C9A2 /* symmat3.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = symmat3.cxx; path = ../src/symmat3.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B8508B399390048C9A2 /* symmat2.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = symmat2.cxx; path = ../src/symmat2.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B8608B399390048C9A2 /* script.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = script.cxx; path = ../src/script.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B8708B399390048C9A2 /* raster.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = raster.cxx; path = ../src/raster.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B8808B399390048C9A2 /* raster-tiff.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = "raster-tiff.cxx"; path = "../src/raster-tiff.cxx"; sourceTree = SOURCE_ROOT; };
+ 1D5F0B8908B399390048C9A2 /* raster-pnm.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = "raster-pnm.cxx"; path = "../src/raster-pnm.cxx"; sourceTree = SOURCE_ROOT; };
+ 1D5F0B8A08B399390048C9A2 /* raster-png.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = "raster-png.cxx"; path = "../src/raster-png.cxx"; sourceTree = SOURCE_ROOT; };
+ 1D5F0B8B08B399390048C9A2 /* raster-jpeg.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = "raster-jpeg.cxx"; path = "../src/raster-jpeg.cxx"; sourceTree = SOURCE_ROOT; };
+ 1D5F0B8C08B399390048C9A2 /* quat.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = quat.cxx; path = ../src/quat.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B8D08B399390048C9A2 /* mat4.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = mat4.cxx; path = ../src/mat4.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B8E08B399390048C9A2 /* mat3.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = mat3.cxx; path = ../src/mat3.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B8F08B399390048C9A2 /* mat2.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = mat2.cxx; path = ../src/mat2.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B9008B399390048C9A2 /* gui.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = gui.cxx; path = ../src/gui.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B9108B399390048C9A2 /* gltools.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = gltools.cxx; path = ../src/gltools.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B9208B399390048C9A2 /* geom4d.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = geom4d.cxx; path = ../src/geom4d.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B9308B399390048C9A2 /* geom3d.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = geom3d.cxx; path = ../src/geom3d.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B9408B399390048C9A2 /* color.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = color.cxx; path = ../src/color.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B9508B399390048C9A2 /* baseball.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = baseball.cxx; path = ../src/baseball.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0B9608B399390048C9A2 /* arcball.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = arcball.cxx; path = ../src/arcball.cxx; sourceTree = SOURCE_ROOT; };
+ 1D5F0BBE08B39AD90048C9A2 /* vec4.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = vec4.html; path = ../doc/vec4.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BBF08B39AD90048C9A2 /* vec3.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = vec3.html; path = ../doc/vec3.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BC008B39AD90048C9A2 /* vec2.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = vec2.html; path = ../doc/vec2.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BC108B39AD90048C9A2 /* vec.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = vec.html; path = ../doc/vec.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BC208B39AD90048C9A2 /* start.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = start.html; path = ../doc/start.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BC308B39AD90048C9A2 /* script.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = script.html; path = ../doc/script.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BC408B39AD90048C9A2 /* rotate.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = rotate.html; path = ../doc/rotate.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BC508B39AD90048C9A2 /* raster.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = raster.html; path = ../doc/raster.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BC608B39AD90048C9A2 /* quat.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = quat.html; path = ../doc/quat.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BC708B39AD90048C9A2 /* mat4.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = mat4.html; path = ../doc/mat4.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BC808B39AD90048C9A2 /* mat3.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = mat3.html; path = ../doc/mat3.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BC908B39AD90048C9A2 /* mat2.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = mat2.html; path = ../doc/mat2.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BCA08B39AD90048C9A2 /* mat.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = mat.html; path = ../doc/mat.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BCB08B39AD90048C9A2 /* license.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = license.html; path = ../doc/license.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BCC08B39AD90048C9A2 /* intvec.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = intvec.html; path = ../doc/intvec.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BCD08B39AD90048C9A2 /* index.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = index.html; path = ../doc/index.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BCE08B39AD90048C9A2 /* gui.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = gui.html; path = ../doc/gui.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BCF08B39AD90048C9A2 /* gl.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = gl.html; path = ../doc/gl.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BD008B39AD90048C9A2 /* geom3d.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = geom3d.html; path = ../doc/geom3d.html; sourceTree = SOURCE_ROOT; };
+ 1D5F0BD108B39AD90048C9A2 /* ex-script.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = "ex-script.html"; path = "../doc/ex-script.html"; sourceTree = SOURCE_ROOT; };
+ 1D5F0BD208B39AD90048C9A2 /* ex-gui.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = "ex-gui.html"; path = "../doc/ex-gui.html"; sourceTree = SOURCE_ROOT; };
+ 1D5F0BD308B39AD90048C9A2 /* cdoc.css */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = cdoc.css; path = ../doc/cdoc.css; sourceTree = SOURCE_ROOT; };
+ 1D5F0BD408B39AD90048C9A2 /* build.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = build.html; path = ../doc/build.html; sourceTree = SOURCE_ROOT; };
+ D2AAC046055464E500DB518D /* libgfx.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libgfx.a; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 1D5D8DAB08B3A0CF009C84F9 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1D5D8E5808B3A251009C84F9 /* libgfx.a in Frameworks */,
+ 1D5D8DD508B3A20A009C84F9 /* OpenGL.framework in Frameworks */,
+ 1D5D8E6608B3A6CF009C84F9 /* AGL.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 1D5D8E8708B3A813009C84F9 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1D5D8E8F08B3A831009C84F9 /* libgfx.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D289987405E68DCB004EDB86 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 08FB7794FE84155DC02AAC07 /* libgfx */ = {
+ isa = PBXGroup;
+ children = (
+ 08FB7795FE84155DC02AAC07 /* Library Source */,
+ C6A0FF2B0290797F04C91782 /* Library Documentation */,
+ 1D5D8E7408B3A743009C84F9 /* Test Applications */,
+ 1AB674ADFE9D54B511CA2CBB /* Products */,
+ 1D5D8E6D08B3A728009C84F9 /* External Frameworks */,
+ );
+ name = libgfx;
+ sourceTree = "<group>";
+ };
+ 08FB7795FE84155DC02AAC07 /* Library Source */ = {
+ isa = PBXGroup;
+ children = (
+ 1D5F0B8108B399390048C9A2 /* trackball.cxx */,
+ 1D5F0B8208B399390048C9A2 /* time.cxx */,
+ 1D5F0B8308B399390048C9A2 /* symmat4.cxx */,
+ 1D5F0B8408B399390048C9A2 /* symmat3.cxx */,
+ 1D5F0B8508B399390048C9A2 /* symmat2.cxx */,
+ 1D5F0B8608B399390048C9A2 /* script.cxx */,
+ 1D5F0B8708B399390048C9A2 /* raster.cxx */,
+ 1D5F0B8808B399390048C9A2 /* raster-tiff.cxx */,
+ 1D5F0B8908B399390048C9A2 /* raster-pnm.cxx */,
+ 1D5F0B8A08B399390048C9A2 /* raster-png.cxx */,
+ 1D5F0B8B08B399390048C9A2 /* raster-jpeg.cxx */,
+ 1D5F0B8C08B399390048C9A2 /* quat.cxx */,
+ 1D5F0B8D08B399390048C9A2 /* mat4.cxx */,
+ 1D5F0B8E08B399390048C9A2 /* mat3.cxx */,
+ 1D5F0B8F08B399390048C9A2 /* mat2.cxx */,
+ 1D5F0B9008B399390048C9A2 /* gui.cxx */,
+ 1D5F0B9108B399390048C9A2 /* gltools.cxx */,
+ 1D5F0B9208B399390048C9A2 /* geom4d.cxx */,
+ 1D5F0B9308B399390048C9A2 /* geom3d.cxx */,
+ 1D5F0B9408B399390048C9A2 /* color.cxx */,
+ 1D5F0B9508B399390048C9A2 /* baseball.cxx */,
+ 1D5F0B9608B399390048C9A2 /* arcball.cxx */,
+ );
+ name = "Library Source";
+ sourceTree = "<group>";
+ };
+ 1AB674ADFE9D54B511CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D2AAC046055464E500DB518D /* libgfx.a */,
+ 1D5D8DAD08B3A0CF009C84F9 /* t-gui.app */,
+ 1D5D8E8908B3A813009C84F9 /* t-vec */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 1D5D8E6D08B3A728009C84F9 /* External Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 1D5D8E5908B3A6CF009C84F9 /* AGL.framework */,
+ 1D5D8DC208B3A20A009C84F9 /* OpenGL.framework */,
+ );
+ name = "External Frameworks";
+ sourceTree = "<group>";
+ };
+ 1D5D8E7408B3A743009C84F9 /* Test Applications */ = {
+ isa = PBXGroup;
+ children = (
+ 1D5D8DAF08B3A0CF009C84F9 /* t-gui-Info.plist */,
+ 1D5D8DBA08B3A109009C84F9 /* t-gui.cxx */,
+ 1D5D8E9608B3A849009C84F9 /* t-vec.cxx */,
+ );
+ name = "Test Applications";
+ sourceTree = "<group>";
+ };
+ C6A0FF2B0290797F04C91782 /* Library Documentation */ = {
+ isa = PBXGroup;
+ children = (
+ 1D5F0BBE08B39AD90048C9A2 /* vec4.html */,
+ 1D5F0BBF08B39AD90048C9A2 /* vec3.html */,
+ 1D5F0BC008B39AD90048C9A2 /* vec2.html */,
+ 1D5F0BC108B39AD90048C9A2 /* vec.html */,
+ 1D5F0BC208B39AD90048C9A2 /* start.html */,
+ 1D5F0BC308B39AD90048C9A2 /* script.html */,
+ 1D5F0BC408B39AD90048C9A2 /* rotate.html */,
+ 1D5F0BC508B39AD90048C9A2 /* raster.html */,
+ 1D5F0BC608B39AD90048C9A2 /* quat.html */,
+ 1D5F0BC708B39AD90048C9A2 /* mat4.html */,
+ 1D5F0BC808B39AD90048C9A2 /* mat3.html */,
+ 1D5F0BC908B39AD90048C9A2 /* mat2.html */,
+ 1D5F0BCA08B39AD90048C9A2 /* mat.html */,
+ 1D5F0BCB08B39AD90048C9A2 /* license.html */,
+ 1D5F0BCC08B39AD90048C9A2 /* intvec.html */,
+ 1D5F0BCD08B39AD90048C9A2 /* index.html */,
+ 1D5F0BCE08B39AD90048C9A2 /* gui.html */,
+ 1D5F0BCF08B39AD90048C9A2 /* gl.html */,
+ 1D5F0BD008B39AD90048C9A2 /* geom3d.html */,
+ 1D5F0BD108B39AD90048C9A2 /* ex-script.html */,
+ 1D5F0BD208B39AD90048C9A2 /* ex-gui.html */,
+ 1D5F0BD308B39AD90048C9A2 /* cdoc.css */,
+ 1D5F0BD408B39AD90048C9A2 /* build.html */,
+ );
+ name = "Library Documentation";
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D2AAC043055464E500DB518D /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ 1D5D8DAC08B3A0CF009C84F9 /* t-gui */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1D5D8DB008B3A0D0009C84F9 /* Build configuration list for PBXNativeTarget "t-gui" */;
+ buildPhases = (
+ 1D5D8DA908B3A0CF009C84F9 /* Resources */,
+ 1D5D8DAA08B3A0CF009C84F9 /* Sources */,
+ 1D5D8DAB08B3A0CF009C84F9 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ buildSettings = {
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
+ INFOPLIST_FILE = "t-gui-Info.plist";
+ INSTALL_PATH = "$(USER_APPS_DIR)";
+ OPTIMIZATION_CFLAGS = "";
+ OTHER_CFLAGS = "";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Carbon,
+ );
+ OTHER_REZFLAGS = "";
+ PREBINDING = NO;
+ PRODUCT_NAME = "t-gui";
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = (
+ "-Wmost",
+ "-Wno-four-char-constants",
+ "-Wno-unknown-pragmas",
+ );
+ };
+ dependencies = (
+ 1D5D8DB508B3A0D9009C84F9 /* PBXTargetDependency */,
+ );
+ name = "t-gui";
+ productName = "t-gui";
+ productReference = 1D5D8DAD08B3A0CF009C84F9 /* t-gui.app */;
+ productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
+<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
+<plist version=\"1.0\">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>t-gui</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.yourcompany.t_gui</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+</dict>
+</plist>
+";
+ productType = "com.apple.product-type.application";
+ };
+ 1D5D8E8808B3A813009C84F9 /* t-vec */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1D5D8E9208B3A839009C84F9 /* Build configuration list for PBXNativeTarget "t-vec" */;
+ buildPhases = (
+ 1D5D8E8608B3A813009C84F9 /* Sources */,
+ 1D5D8E8708B3A813009C84F9 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ buildSettings = {
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ INSTALL_PATH = "$(HOME)/bin";
+ OPTIMIZATION_CFLAGS = "";
+ OTHER_CFLAGS = "";
+ OTHER_LDFLAGS = "";
+ OTHER_REZFLAGS = "";
+ PREBINDING = NO;
+ PRODUCT_NAME = "t-vec";
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = (
+ "-Wmost",
+ "-Wno-four-char-constants",
+ "-Wno-unknown-pragmas",
+ );
+ };
+ dependencies = (
+ 1D5D8E8C08B3A81A009C84F9 /* PBXTargetDependency */,
+ );
+ name = "t-vec";
+ productName = "t-vec";
+ productReference = 1D5D8E8908B3A813009C84F9 /* t-vec */;
+ productType = "com.apple.product-type.tool";
+ };
+ D2AAC045055464E500DB518D /* libgfx */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1D5F0B7208B398A90048C9A2 /* Build configuration list for PBXNativeTarget "libgfx" */;
+ buildPhases = (
+ D2AAC043055464E500DB518D /* Headers */,
+ D2AAC044055464E500DB518D /* Sources */,
+ D289987405E68DCB004EDB86 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ buildSettings = {
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INSTALL_PATH = /usr/local/lib;
+ LIBRARY_STYLE = STATIC;
+ PREBINDING = NO;
+ PRODUCT_NAME = libgfx;
+ };
+ dependencies = (
+ );
+ name = libgfx;
+ productName = libgfx;
+ productReference = D2AAC046055464E500DB518D /* libgfx.a */;
+ productType = "com.apple.product-type.library.static";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 08FB7793FE84155DC02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 1D5F0B7608B398A90048C9A2 /* Build configuration list for PBXProject "libgfx" */;
+ buildSettings = {
+ };
+ buildStyles = (
+ 014CEA520018CE5811CA2923 /* Debug */,
+ 014CEA530018CE5811CA2923 /* Release */,
+ );
+ hasScannedForEncodings = 1;
+ mainGroup = 08FB7794FE84155DC02AAC07 /* libgfx */;
+ projectDirPath = "";
+ targets = (
+ D2AAC045055464E500DB518D /* libgfx */,
+ 1D5D8DAC08B3A0CF009C84F9 /* t-gui */,
+ 1D5D8E8808B3A813009C84F9 /* t-vec */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 1D5D8DA908B3A0CF009C84F9 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 1D5D8DAA08B3A0CF009C84F9 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1D5D8DBB08B3A109009C84F9 /* t-gui.cxx in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 1D5D8E8608B3A813009C84F9 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1D5D8E9708B3A849009C84F9 /* t-vec.cxx in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D2AAC044055464E500DB518D /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1D5F0B9708B399390048C9A2 /* trackball.cxx in Sources */,
+ 1D5F0B9808B399390048C9A2 /* time.cxx in Sources */,
+ 1D5F0B9908B399390048C9A2 /* symmat4.cxx in Sources */,
+ 1D5F0B9A08B399390048C9A2 /* symmat3.cxx in Sources */,
+ 1D5F0B9B08B399390048C9A2 /* symmat2.cxx in Sources */,
+ 1D5F0B9C08B399390048C9A2 /* script.cxx in Sources */,
+ 1D5F0B9D08B399390048C9A2 /* raster.cxx in Sources */,
+ 1D5F0B9E08B399390048C9A2 /* raster-tiff.cxx in Sources */,
+ 1D5F0B9F08B399390048C9A2 /* raster-pnm.cxx in Sources */,
+ 1D5F0BA008B399390048C9A2 /* raster-png.cxx in Sources */,
+ 1D5F0BA108B399390048C9A2 /* raster-jpeg.cxx in Sources */,
+ 1D5F0BA208B399390048C9A2 /* quat.cxx in Sources */,
+ 1D5F0BA308B399390048C9A2 /* mat4.cxx in Sources */,
+ 1D5F0BA408B399390048C9A2 /* mat3.cxx in Sources */,
+ 1D5F0BA508B399390048C9A2 /* mat2.cxx in Sources */,
+ 1D5F0BA608B399390048C9A2 /* gui.cxx in Sources */,
+ 1D5F0BA708B399390048C9A2 /* gltools.cxx in Sources */,
+ 1D5F0BA808B399390048C9A2 /* geom4d.cxx in Sources */,
+ 1D5F0BA908B399390048C9A2 /* geom3d.cxx in Sources */,
+ 1D5F0BAA08B399390048C9A2 /* color.cxx in Sources */,
+ 1D5F0BAB08B399390048C9A2 /* baseball.cxx in Sources */,
+ 1D5F0BAC08B399390048C9A2 /* arcball.cxx in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 1D5D8DB508B3A0D9009C84F9 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = D2AAC045055464E500DB518D /* libgfx */;
+ targetProxy = 1D5D8DB408B3A0D9009C84F9 /* PBXContainerItemProxy */;
+ };
+ 1D5D8E8C08B3A81A009C84F9 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = D2AAC045055464E500DB518D /* libgfx */;
+ targetProxy = 1D5D8E8B08B3A81A009C84F9 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ 1D5D8DB108B3A0D0009C84F9 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
+ INFOPLIST_FILE = "t-gui-Info.plist";
+ INSTALL_PATH = "$(USER_APPS_DIR)";
+ OPTIMIZATION_CFLAGS = "";
+ OTHER_CFLAGS = "";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Carbon,
+ "-framework",
+ ApplicationServices,
+ "-lfltk_gl",
+ "-lfltk",
+ "-ljpeg",
+ "-lpng",
+ "-ltiff",
+ "-lz",
+ );
+ OTHER_REZFLAGS = "";
+ PREBINDING = NO;
+ PRODUCT_NAME = "t-gui";
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = (
+ "-Wmost",
+ "-Wno-four-char-constants",
+ "-Wno-unknown-pragmas",
+ );
+ };
+ name = Debug;
+ };
+ 1D5D8DB208B3A0D0009C84F9 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
+ INFOPLIST_FILE = "t-gui-Info.plist";
+ INSTALL_PATH = "$(USER_APPS_DIR)";
+ OPTIMIZATION_CFLAGS = "";
+ OTHER_CFLAGS = "";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Carbon,
+ "-framework",
+ ApplicationServices,
+ "-lfltk_gl",
+ "-lfltk",
+ "-ljpeg",
+ "-lpng",
+ "-ltiff",
+ "-lz",
+ );
+ OTHER_REZFLAGS = "";
+ PREBINDING = NO;
+ PRODUCT_NAME = "t-gui";
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = (
+ "-Wmost",
+ "-Wno-four-char-constants",
+ "-Wno-unknown-pragmas",
+ );
+ };
+ name = Release;
+ };
+ 1D5D8DB308B3A0D0009C84F9 /* Default */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
+ INFOPLIST_FILE = "t-gui-Info.plist";
+ INSTALL_PATH = "$(USER_APPS_DIR)";
+ OPTIMIZATION_CFLAGS = "";
+ OTHER_CFLAGS = "";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Carbon,
+ "-framework",
+ ApplicationServices,
+ "-lfltk_gl",
+ "-lfltk",
+ "-ljpeg",
+ "-lpng",
+ "-ltiff",
+ "-lz",
+ );
+ OTHER_REZFLAGS = "";
+ PREBINDING = NO;
+ PRODUCT_NAME = "t-gui";
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = (
+ "-Wmost",
+ "-Wno-four-char-constants",
+ "-Wno-unknown-pragmas",
+ );
+ };
+ name = Default;
+ };
+ 1D5D8E9308B3A839009C84F9 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_MODEL_TUNING = G5;
+ INSTALL_PATH = "$(HOME)/bin";
+ OPTIMIZATION_CFLAGS = "";
+ OTHER_CFLAGS = "";
+ OTHER_LDFLAGS = "";
+ OTHER_REZFLAGS = "";
+ PREBINDING = NO;
+ PRODUCT_NAME = "t-vec";
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = (
+ "-Wmost",
+ "-Wno-four-char-constants",
+ "-Wno-unknown-pragmas",
+ );
+ };
+ name = Debug;
+ };
+ 1D5D8E9408B3A839009C84F9 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ INSTALL_PATH = "$(HOME)/bin";
+ OPTIMIZATION_CFLAGS = "";
+ OTHER_CFLAGS = "";
+ OTHER_LDFLAGS = "";
+ OTHER_REZFLAGS = "";
+ PREBINDING = NO;
+ PRODUCT_NAME = "t-vec";
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = (
+ "-Wmost",
+ "-Wno-four-char-constants",
+ "-Wno-unknown-pragmas",
+ );
+ };
+ name = Release;
+ };
+ 1D5D8E9508B3A839009C84F9 /* Default */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ INSTALL_PATH = "$(HOME)/bin";
+ OPTIMIZATION_CFLAGS = "";
+ OTHER_CFLAGS = "";
+ OTHER_LDFLAGS = "";
+ OTHER_REZFLAGS = "";
+ PREBINDING = NO;
+ PRODUCT_NAME = "t-vec";
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = (
+ "-Wmost",
+ "-Wno-four-char-constants",
+ "-Wno-unknown-pragmas",
+ );
+ };
+ name = Default;
+ };
+ 1D5F0B7308B398A90048C9A2 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ EXECUTABLE_PREFIX = "";
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INSTALL_PATH = /usr/local/lib;
+ LIBRARY_STYLE = STATIC;
+ PREBINDING = NO;
+ PRODUCT_NAME = libgfx;
+ ZERO_LINK = YES;
+ };
+ name = Debug;
+ };
+ 1D5F0B7408B398A90048C9A2 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ EXECUTABLE_PREFIX = "";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INSTALL_PATH = /usr/local/lib;
+ LIBRARY_STYLE = STATIC;
+ PREBINDING = NO;
+ PRODUCT_NAME = libgfx;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+ 1D5F0B7508B398A90048C9A2 /* Default */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ EXECUTABLE_PREFIX = "";
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INSTALL_PATH = /usr/local/lib;
+ LIBRARY_STYLE = STATIC;
+ PREBINDING = NO;
+ PRODUCT_NAME = libgfx;
+ };
+ name = Default;
+ };
+ 1D5F0B7708B398A90048C9A2 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ HAVE_CONFIG_H,
+ GFX_NAMESPACE,
+ );
+ HEADER_SEARCH_PATHS = ../include/;
+ };
+ name = Debug;
+ };
+ 1D5F0B7808B398A90048C9A2 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ HAVE_CONFIG_H,
+ GFX_NAMESPACE,
+ );
+ HEADER_SEARCH_PATHS = ../include/;
+ };
+ name = Release;
+ };
+ 1D5F0B7908B398A90048C9A2 /* Default */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ HAVE_CONFIG_H,
+ GFX_NAMESPACE,
+ );
+ HEADER_SEARCH_PATHS = ../include/;
+ };
+ name = Default;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1D5D8DB008B3A0D0009C84F9 /* Build configuration list for PBXNativeTarget "t-gui" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1D5D8DB108B3A0D0009C84F9 /* Debug */,
+ 1D5D8DB208B3A0D0009C84F9 /* Release */,
+ 1D5D8DB308B3A0D0009C84F9 /* Default */,
+ );
+ defaultConfigurationIsVisible = 0;
+ };
+ 1D5D8E9208B3A839009C84F9 /* Build configuration list for PBXNativeTarget "t-vec" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1D5D8E9308B3A839009C84F9 /* Debug */,
+ 1D5D8E9408B3A839009C84F9 /* Release */,
+ 1D5D8E9508B3A839009C84F9 /* Default */,
+ );
+ defaultConfigurationIsVisible = 0;
+ };
+ 1D5F0B7208B398A90048C9A2 /* Build configuration list for PBXNativeTarget "libgfx" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1D5F0B7308B398A90048C9A2 /* Debug */,
+ 1D5F0B7408B398A90048C9A2 /* Release */,
+ 1D5F0B7508B398A90048C9A2 /* Default */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Default;
+ };
+ 1D5F0B7608B398A90048C9A2 /* Build configuration list for PBXProject "libgfx" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1D5F0B7708B398A90048C9A2 /* Debug */,
+ 1D5F0B7808B398A90048C9A2 /* Release */,
+ 1D5F0B7908B398A90048C9A2 /* Default */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Default;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/debian/fireflies/fireflies-2.08/libgfx/macos/t-gui-Info.plist b/debian/fireflies/fireflies-2.08/libgfx/macos/t-gui-Info.plist
new file mode 100644
index 00000000..9e05eeda
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/macos/t-gui-Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>t-gui</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.yourcompany.t_gui</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+</dict>
+</plist>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/Makefile b/debian/fireflies/fireflies-2.08/libgfx/src/Makefile
new file mode 100644
index 00000000..7993f971
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/Makefile
@@ -0,0 +1,29 @@
+include ../gfx-config
+
+CXXFLAGS += -DGFX_NAMESPACE
+
+VEC_SRCS = mat2.cxx mat3.cxx mat4.cxx quat.cxx \
+ symmat2.cxx symmat3.cxx symmat4.cxx
+GEO_SRCS = geom3d.cxx
+IMG_SRCS = raster.cxx raster-pnm.cxx raster-tiff.cxx raster-jpeg.cxx \
+ raster-png.cxx
+MISC_SRCS = time.cxx script.cxx color.cxx
+GUI_SRCS = gui.cxx gltools.cxx baseball.cxx trackball.cxx arcball.cxx
+
+SRCS = $(VEC_SRCS) $(GEO_SRCS) $(IMG_SRCS) $(MISC_SRCS) $(GUI_SRCS)
+OBJS = $(SRCS:.cxx=.o)
+
+libgfx.a: $(OBJS)
+ $(AR) cru libgfx.a $(OBJS)
+ $(RANLIB) libgfx.a
+
+tags: $(SRCS) ../include/gfx/*.h
+ ctags $(SRCS) ../include/gfx/*.h
+
+clean:
+ -$(RM) $(OBJS) libgfx.a
+
+depend:
+ $(CXX_DEPEND) $(SRCS) > Makefile.dep
+
+-include Makefile.dep
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/arcball.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/arcball.cxx
new file mode 100644
index 00000000..3eab9a29
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/arcball.cxx
@@ -0,0 +1,192 @@
+/************************************************************************
+
+ Arcball rotation control. See the original article
+
+ "Arcball Rotation Control"
+ by Ken Shoemake <[email protected]>
+ in "Graphics Gems IV", Academic Press, 1994.
+
+ for more details.
+
+ $Id: arcball.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/arcball.h>
+#include <gfx/gl.h>
+#include <sstream>
+
+namespace gfx
+{
+
+// Converts a unit quaternion to two points on the unit sphere
+static void quat_to_sphere(const Quat& q, Vec3& from, Vec3& to)
+{
+ const Vec3& v = q.vector();
+
+ double s = sqrt(v[0]*v[0] + v[1]*v[1]);
+ if( s==0.0 )
+ from = Vec3(0.0, 1.0, 0.0);
+ else
+ from = Vec3(-v[1]/s, v[0]/s, 0.0);
+
+ to[0] = q.scalar()*from[0] - v[2]*from[1];
+ to[1] = q.scalar()*from[1] + v[2]*from[2];
+ to[2] = v[0]*from[1] - v[1]*from[0];
+
+ if(q.scalar() < 0.0) from = -from;
+}
+
+// Converts to points on unit sphere into a unit quaternion
+static Quat quat_from_sphere(const Vec3& from, const Vec3& to)
+{
+ Vec3 v;
+ v[0] = from[1]*to[2] - from[2]*to[1];
+ v[1] = from[2]*to[0] - from[0]*to[2];
+ v[2] = from[0]*to[1] - from[1]*to[0];
+
+ double s = from*to;
+
+ return Quat(v, s);
+}
+
+
+Vec3 Arcball::proj_to_sphere(const Vec2& mouse)
+{
+ Vec2 p = (mouse - ball_ctr) / ball_radius;
+ double mag = p*p;
+
+ if( mag > 1.0 )
+ {
+ double s = sqrt(mag);
+ return Vec3(p[0]/s, p[1]/s, 0.0);
+ }
+ else
+ {
+ return Vec3(p[0], p[1], sqrt(1-mag));
+ }
+}
+
+void Arcball::update()
+{
+ // constrain v_from & v_to to axes here, if necessary
+
+ if( is_dragging )
+ {
+ q_drag = quat_from_sphere(v_from, v_to);
+ q_now = q_drag * q_down;
+ }
+}
+
+Arcball::Arcball()
+{
+ ball_ctr = Vec2(0, 0);
+ ball_radius = 1.0;
+
+ q_now = Quat::ident();
+ q_down = Quat::ident();
+ q_drag = Quat::ident();
+
+ is_dragging = false;
+}
+
+bool Arcball::mouse_down(int *where, int which)
+{
+ float vp[4];
+ glGetFloatv(GL_VIEWPORT, vp);
+ float W=vp[2], H=vp[3];
+
+ if( which==1 )
+ {
+ is_dragging = true;
+ Vec2 v( (2.0 * where[0] - W)/W, (H - 2.0 * where[1])/H );
+ v_from = proj_to_sphere(v);
+ v_to = v_from;
+ }
+
+ return true;
+}
+
+bool Arcball::mouse_up(int *where, int which)
+{
+ is_dragging = false;
+ q_down = q_now;
+ q_drag = Quat::ident();
+
+ return false;
+}
+
+bool Arcball::mouse_drag(int *where, int *last, int which)
+{
+ float vp[4];
+ glGetFloatv(GL_VIEWPORT, vp);
+ float W=vp[2], H=vp[3];
+
+ float diam = 2*radius;
+
+ if( which==1 )
+ {
+ Vec2 v( (2.0 * where[0] - W)/W, (H - 2.0 * where[1])/H );
+ v_to = proj_to_sphere(v);
+ }
+ else if( which==2 )
+ {
+ trans[0] += diam * (where[0] - last[0]) / W;
+ trans[1] += diam * (last[1] - where[1]) / H;
+ }
+ else if( which==3 )
+ {
+ trans[2] += 0.02*diam*(where[1] - last[1]);
+ }
+ else
+ return false;
+
+ return true;
+}
+
+void Arcball::apply_transform()
+{
+ update();
+ curquat = conjugate(q_now);
+ Baseball::apply_transform();
+}
+
+
+void Arcball::update_animation()
+{
+}
+
+void Arcball::get_transform(Vec3 & c, Vec3 &t, Quat & q)
+{
+ c = ctr;
+ t = trans;
+ q = q_now;
+}
+
+void Arcball::set_transform(const Vec3 & c, const Vec3 &t, const Quat & q)
+{
+ ctr = c;
+ trans = t;
+ q_now = q;
+ q_down = q;
+ q_drag = q;
+}
+
+void Arcball::write(std::ostream& out)
+{
+ out << "arcball ";
+ out << ball_ctr << " " << ball_radius << " ";
+ out << q_now << " " << q_down << " " << q_drag << std::endl;
+ Baseball::write(out);
+}
+
+void Arcball::read(std::istream& in)
+{
+ std::string name;
+ in >> name;
+ in >> ball_ctr >> ball_radius;
+ in >> q_now >> q_down >> q_drag;
+ Baseball::read(in);
+}
+
+} // namespace gfx
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/baseball.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/baseball.cxx
new file mode 100644
index 00000000..8a94cd3c
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/baseball.cxx
@@ -0,0 +1,59 @@
+/************************************************************************
+
+ Common code for ball-based rotation controllers.
+
+ $Id: baseball.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+#include <gfx/gl.h>
+#include <gfx/baseball.h>
+#include <sstream>
+
+namespace gfx
+{
+
+Baseball::Baseball()
+{
+ curquat = Quat::ident();
+
+ trans=0.0;
+ ctr=0.0;
+ radius=1;
+}
+
+void Baseball::apply_transform()
+{
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glTranslated(trans[0], trans[1], trans[2]);
+ glTranslated(ctr[0], ctr[1], ctr[2]);
+
+ const Mat4 M=unit_quat_to_matrix(curquat);
+ glMultMatrixd(M);
+
+ glTranslated(-ctr[0], -ctr[1], -ctr[2]);
+}
+
+void Baseball::unapply_transform()
+{
+ glMatrixMode(GL_MODELVIEW);
+ glPopMatrix();
+}
+
+void Baseball::write(std::ostream& out)
+{
+ out << "baseball ";
+ out << curquat << " " << trans << " " << ctr << " " << radius << std::endl;
+}
+
+void Baseball::read(std::istream& in)
+{
+ std::string name;
+
+ in >> name;
+ in >> curquat >> trans >> ctr >> radius;
+}
+
+} // namespace gfx
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/color.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/color.cxx
new file mode 100644
index 00000000..96fdba72
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/color.cxx
@@ -0,0 +1,128 @@
+#include <gfx/color.h>
+#include <gfx/mat3.h>
+
+namespace gfx
+{
+ //
+ // HSV conversion code based on Foley et al (2nd ed. in C, pp. 592-593)
+ //
+
+ static double max3(double x, double y, double z)
+ {
+ if( x>=y && x>=z ) return x;
+ else if( y>=x && y>=z ) return y;
+ else return z;
+ }
+
+ static double min3(double x, double y, double z)
+ {
+ if( x<=y && x<=z ) return x;
+ else if( y<=x && y<=z ) return y;
+ else return z;
+ }
+
+ hsvColor RGBtoHSV(const rgbColor& rgb)
+ {
+ double r=rgb[0], g=rgb[1], b=rgb[2];
+
+ double max = max3(r,g,b);
+ double min = min3(r,g,b);
+ double delta = max - min;
+
+ double h = -1; // undefined value for case where v outside [0,360]
+ double v = max;
+ double s = (max!=0) ? (delta/max) : 0;
+
+ if( s != 0 )
+ {
+ if( r==max ) h = (g-b)/delta;
+ else if( g==max ) h = 2 + (b-r)/delta;
+ else if( b==max ) h = 4 + (r-g)/delta;
+
+ h *= 60;
+ if( h<0 ) h+=360;
+ }
+
+ return hsvColor(h, s, v);
+ }
+
+ rgbColor HSVtoRGB(const hsvColor& hsv)
+ {
+ double h = hsv[0], s=hsv[1], v=hsv[2];
+
+ // Unsaturated means pure gray
+ if(s == 0) return rgbColor(v, v, v);
+
+ if( h==360.0 ) h=0.0; // these are equivalent hues
+ h /= 60.0; // convert to sector [0, 6)
+ int i = (int)floor( h ); // integral part of h
+ float f = h - i; // fractional part of h
+
+ // Compute RGB components
+ float p = v * ( 1 - s );
+ float q = v * ( 1 - s * f );
+ float t = v * ( 1 - s * ( 1 - f ) );
+
+ // Map PQT to RGB based on sector of the color cone
+ switch( i )
+ {
+ case 0: return rgbColor(v, t, p); break;
+ case 1: return rgbColor(q, v, p); break;
+ case 2: return rgbColor(p, v, t); break;
+ case 3: return rgbColor(p, q, v); break;
+ case 4: return rgbColor(t, p, v); break;
+ default: return rgbColor(v, p, q); break;
+ }
+ }
+
+ // Paul Haeberli's comments on luminance coefficients:
+ //
+ // Where rwgt is 0.3086, gwgt is 0.6094, and bwgt is 0.0820. This
+ // is the luminance vector. Notice here that we do not use the
+ // standard NTSC weights of 0.299, 0.587, and 0.114. The NTSC
+ // weights are only applicable to RGB colors in a gamma 2.2 color
+ // space. For linear RGB colors the values above are better.
+ //
+ // Grafica Obscura -- Matrix Operations for Image Processing
+ // http://www.sgi.com/misc/grafica/matrix/index.html
+ //
+ const rgbColor haeberli_factor(0.3086, 0.6094, 0.0820);
+ const rgbColor ntsc_factor(0.299, 0.587, 0.114);
+
+ float rgb_luminance_ntsc(const rgbColor& rgb) { return rgb*ntsc_factor; }
+ float rgb_luminance_alt(const rgbColor& rgb) { return rgb*haeberli_factor; }
+
+
+ const Mat3 M_yiq(ntsc_factor,
+ Vec3(0.596, -0.275, -0.321),
+ Vec3(0.212, -0.523, 0.311));
+
+ yiqColor RGBtoYIQ(const rgbColor& rgb)
+ {
+ return yiqColor(M_yiq * Vec3(rgb));
+ }
+
+ // Matrix conversions taken from the ColorFAQ by Charles Poynton
+ const Mat3 M_rgb(Vec3( 3.240479, -1.537150, -0.498535),
+ Vec3(-0.969256, 1.875992, 0.041556),
+ Vec3( 0.055648, -0.204043, 1.057311));
+
+ const Mat3 M_xyz(Vec3(0.412453, 0.357580, 0.180423),
+ Vec3(0.212671, 0.715160, 0.072169),
+ Vec3(0.019334, 0.119193, 0.950227));
+
+ // Derived from equations provided by EasyRGB:
+ // http://www.easyrgb.com/math.php
+ //
+ xyzColor RGBtoXYZ(const rgbColor& rgb)
+ { return xyzColor(M_xyz * Vec3(rgb)); }
+
+ rgbColor XYZtoRGB(const xyzColor& xyz)
+ { return rgbColor(M_rgb * Vec3(xyz)); }
+
+ xyChromaticity xyz_chromaticity(const xyzColor& xyz)
+ {
+ float w = xyz[0] + xyz[1] + xyz[2];
+ return xyChromaticity(xyz[0]/w, xyz[1]/w);
+ }
+}
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/geom3d.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/geom3d.cxx
new file mode 100644
index 00000000..ff9e8e44
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/geom3d.cxx
@@ -0,0 +1,33 @@
+/************************************************************************
+
+ Handy 3D geometrical primitives
+
+ $Id: geom3d.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+#include <gfx/geom3d.h>
+#include <gfx/mat4.h>
+
+namespace gfx
+{
+
+double tetrahedron_determinant(const Vec3& v0, const Vec3& v1,
+ const Vec3& v2, const Vec3& v3)
+{
+ Mat4 A( Vec4(v0, 1),
+ Vec4(v1, 1),
+ Vec4(v2, 1),
+ Vec4(v3, 1));
+
+ return det(A);
+}
+
+double tetrahedron_volume(const Vec3& v0, const Vec3& v1,
+ const Vec3& v2, const Vec3& v3)
+{
+ return fabs(tetrahedron_determinant(v0,v1,v2,v3)/6);
+}
+
+}
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/geom4d.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/geom4d.cxx
new file mode 100644
index 00000000..2973f966
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/geom4d.cxx
@@ -0,0 +1,14 @@
+/************************************************************************
+
+ Handy 4D geometrical primitives
+
+ $Id: geom4d.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+#include <gfx/geom4d.h>
+
+namespace gfx
+{
+}
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/gltools.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/gltools.cxx
new file mode 100644
index 00000000..565a382e
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/gltools.cxx
@@ -0,0 +1,192 @@
+/************************************************************************
+
+ Handy functions for common OpenGL tasks
+
+ $Id: gltools.cxx 446 2005-06-18 13:58:15Z garland $
+
+ ************************************************************************/
+
+
+#include <gfx/gfx.h>
+
+#ifdef HAVE_OPENGL
+
+#include <gfx/gltools.h>
+
+#include <cassert>
+
+namespace gfx
+{
+
+using std::cerr;
+using std::endl;
+
+GLuint opengl_pick_nil = (~0);
+GLuint opengl_pick_zmax = (~0);
+
+void begin_opengl_pick(int *where, double radius, GLuint *buffer, int size)
+{
+ GLint vp[4];
+ glGetIntegerv(GL_VIEWPORT, vp);
+
+ glSelectBuffer(size, buffer);
+ glRenderMode(GL_SELECT);
+ glInitNames();
+ glPushName(opengl_pick_nil);
+
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix(); // Save the current transformation
+ glLoadIdentity();
+ gluPickMatrix(where[0], vp[3] - where[1], radius, radius, vp);
+}
+
+GLuint complete_opengl_pick(GLuint *buffer)
+{
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix(); // get rid of the pick matrix
+ glFlush();
+
+ GLint nhits = glRenderMode(GL_RENDER);
+ GLuint *hit = NULL;
+ GLuint hit_nnames = 0;
+ GLuint zmin = opengl_pick_zmax;
+ GLuint *ptr = buffer;
+
+ for(int i=0; i<nhits; i++)
+ {
+ GLuint nnames = *ptr++;
+ GLuint cur_zmin = *ptr++;
+ /* GLuint cur_zmax = */ *ptr++;
+
+ if( cur_zmin < zmin )
+ {
+ zmin = cur_zmin;
+ hit = ptr;
+ hit_nnames = nnames;
+ }
+ ptr+=nnames;
+ }
+
+
+ buffer[0] = hit_nnames;
+ if( hit )
+ {
+ for(int k=0; k<hit_nnames; k++)
+ buffer[k+1] = hit[k];
+
+ return *hit;
+ }
+ else
+ return opengl_pick_nil;
+}
+
+void report_opengl_stacks()
+{
+ GLint depth;
+
+ glGetIntegerv(GL_PROJECTION_STACK_DEPTH, &depth);
+ cerr << " Projection stack depth = " << depth;
+ glGetIntegerv(GL_MAX_PROJECTION_STACK_DEPTH, &depth);
+ cerr << " (" << depth << " max)" << endl;
+
+ glGetIntegerv(GL_MODELVIEW_STACK_DEPTH, &depth);
+ cerr << " ModelView stack depth = " << depth;
+ glGetIntegerv(GL_MAX_MODELVIEW_STACK_DEPTH, &depth);
+ cerr << " (" << depth << " max)" << endl;
+
+ glGetIntegerv(GL_TEXTURE_STACK_DEPTH, &depth);
+ cerr << " Texture stack depth = " << depth;
+ glGetIntegerv(GL_MAX_TEXTURE_STACK_DEPTH, &depth);
+ cerr << " (" << depth << " max)" << endl;
+}
+
+void check_opengl_errors(const char *msg)
+{
+ bool stack_error = false;
+
+ for(GLenum err=glGetError(); err!=GL_NO_ERROR; err=glGetError())
+ {
+ cerr << "GL ERROR ";
+ if( msg ) cerr << msg;
+ cerr << ": " << (const char *)gluErrorString(err) << endl;
+
+ if( err==GL_STACK_OVERFLOW || err==GL_STACK_UNDERFLOW )
+ stack_error = true;
+ }
+
+ if( stack_error ) report_opengl_stacks();
+}
+
+void camera_lookat(const Vec3& min, const Vec3& max, double aspect)
+{
+ Vec3 up(0, 1, 0);
+ double fovy = 60.0;
+
+ Vec3 at = (max + min)/2.0; // look at the center of the bbox
+ double radius = norm(max - at); // radius of a bounding sphere
+ double d = 3*radius / tan(fovy * M_PI/180.0);
+
+ Vec3 from = at;
+ from[2] += d;
+
+ double znear = d/20;
+ double zfar = 10*d;
+
+ glMatrixMode(GL_PROJECTION);
+ gluPerspective(fovy, aspect, znear, zfar);
+
+
+ glMatrixMode(GL_MODELVIEW);
+ gluLookAt(from[0], from[1], from[2],
+ at[0], at[1], at[2],
+ up[0], up[1], up[2]);
+}
+
+void ortho_camera_lookat(const Vec3& min, const Vec3& max, double aspect)
+{
+ Vec3 up(0, 1, 0);
+ double fovy = 60.0;
+
+ Vec3 at = (max + min)/2.0; // look at the center of the bbox
+ double radius = norm(max - at); // radius of a bounding sphere
+ double d = 3*radius / tan(fovy * M_PI/180.0);
+
+ Vec3 from = at;
+ from[2] += d;
+
+ Vec3 diag = max-min;
+ double width = MAX(diag[0], diag[1]); width=MAX(width, diag[2]);
+ width *= 1.1;
+
+ double znear = d/20;
+ double zfar = 10*d;
+ glMatrixMode(GL_PROJECTION);
+ glOrtho(-aspect/2*width, aspect/2*width, -0.5*width, 0.5*width, znear, zfar);
+
+ glMatrixMode(GL_MODELVIEW);
+ gluLookAt(from[0], from[1], from[2],
+ at[0], at[1], at[2],
+ up[0], up[1], up[2]);
+}
+
+int unproject_pixel(int *pixel, double *world, double z)
+{
+ GLdouble modelMatrix[16];
+ GLdouble projMatrix[16];
+ GLint viewport[4];
+
+ glGetDoublev(GL_PROJECTION_MATRIX, projMatrix);
+ glGetDoublev(GL_MODELVIEW_MATRIX, modelMatrix);
+ glGetIntegerv(GL_VIEWPORT, viewport);
+
+ // Notice that we have to correct the y pixel coordinate. GL
+ // assigns the origin to the lower left corner, while FLTK assigns
+ // the origin to the upper left corner.
+ return gluUnProject(pixel[0], viewport[3]-pixel[1], z,
+ modelMatrix, projMatrix, viewport,
+ world, world+1, world+2);
+}
+
+} // namespace gfx
+
+#endif /* HAVE_OPENGL */
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/gui-mfc.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/gui-mfc.cxx
new file mode 100644
index 00000000..a9ab22e5
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/gui-mfc.cxx
@@ -0,0 +1,297 @@
+/************************************************************************
+
+ MxGUI-like emulation in MFC.
+
+ $Id: gui-mfc.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/win/gui-mfc.h>
+
+namespace gfx
+{
+
+static inline MfcGUI *GuiGetApp() { return (MfcGUI *)AfxGetApp(); }
+
+MfcGUI::MfcGUI()
+{
+ canvas = NULL;
+ timer_id = 0;
+ default_fps = 24.0f;
+ target_fps = 0.0f;
+}
+
+void MfcGUI::status(const char *fmt, ...)
+{
+ va_list args;
+
+ va_start(args, fmt);
+ CString str;
+ str.FormatV(fmt, args);
+ va_end(args);
+
+ if( canvas && canvas->status_line )
+ canvas->status_line->SetPaneText(0, str);
+}
+
+static VOID CALLBACK cb_timeout(HWND w, UINT msg, UINT id, DWORD system_time)
+{
+ GuiGetApp()->update_animation();
+ GuiGetApp()->canvas->post_redraw();
+}
+
+void MfcGUI::animate(bool will)
+{
+ if( will )
+ {
+ target_fps = default_fps;
+
+ float millisecs = 1000 / target_fps;
+ timer_id = ::SetTimer(NULL, 0, (UINT)millisecs, cb_timeout);
+ }
+ else
+ {
+ target_fps = 0;
+ if( timer_id ) ::KillTimer(NULL, timer_id);
+ timer_id = 0;
+ }
+}
+
+BOOL MfcGUI::InitInstance()
+{
+ m_pMainWnd = canvas = new Canvas;
+ m_pMainWnd->ShowWindow(m_nCmdShow);
+ m_pMainWnd->UpdateWindow();
+ return TRUE;
+}
+
+
+
+BEGIN_MESSAGE_MAP(Canvas, CFrameWnd)
+ ON_WM_CREATE()
+ ON_WM_DESTROY()
+ ON_WM_SIZE()
+
+ //ON_WM_ACTIVATE()
+ ON_WM_PAINT()
+ ON_WM_ERASEBKGND()
+
+ ON_WM_LBUTTONDOWN()
+ ON_WM_LBUTTONUP()
+ ON_WM_RBUTTONDOWN()
+ ON_WM_RBUTTONUP()
+ ON_WM_MBUTTONDOWN()
+ ON_WM_MBUTTONUP()
+ ON_WM_MOUSEMOVE()
+ ON_WM_CHAR()
+END_MESSAGE_MAP()
+
+Canvas::Canvas()
+{
+ last_click[0] = last_click[1] = -1;
+ glcontext = NULL;
+ pixfmt = 0;
+
+
+ Create(NULL, "Sample Application");
+
+ CMenu menu;
+ menu.CreateMenu();
+
+ CMenu popup;
+ popup.CreatePopupMenu();
+ popup.AppendMenu(MF_STRING, 0, "&New\tCtrl+N");
+ menu.AppendMenu(MF_POPUP, (UINT)popup.Detach(), "&File");
+
+ SetMenu(&menu);
+ menu.Detach();
+
+ status_line = new CStatusBar();
+ status_line->Create(this);
+ UINT indicator = ID_SEPARATOR;
+ status_line->SetIndicators(&indicator, 1);
+}
+
+BOOL Canvas::PreCreateWindow(CREATESTRUCT &cs)
+{
+ // Need to set special style requirements for OpenGL windows
+ cs.style |= WS_CLIPSIBLINGS | WS_CLIPCHILDREN;
+ return CFrameWnd::PreCreateWindow(cs);
+}
+
+
+int Canvas::OnCreate(LPCREATESTRUCT lpcs)
+{
+ if( CFrameWnd::OnCreate(lpcs) == -1 ) return -1;
+
+ HWND wnd = GetSafeHwnd();
+ HDC dc = ::GetDC(wnd);
+
+ pixfmt = set_pixel_format(dc);
+ if( !pixfmt )
+ MessageBox("Failed to set up proper pixel format.");
+
+ glcontext = create_glcontext(dc);
+ if( !glcontext )
+ MessageBox("Failed to create GL context.");
+
+ return 0;
+}
+
+void Canvas::OnPaint()
+{
+ CPaintDC dc(this);
+
+ HDC hdc = dc.GetSafeHdc();
+ make_current(hdc);
+
+ GuiGetApp()->draw_contents();
+
+ finish(hdc);
+}
+
+void Canvas::OnDestroy()
+{
+ if( wglGetCurrentContext() )
+ wglMakeCurrent(NULL, NULL);
+
+ if( glcontext )
+ {
+ wglDeleteContext(glcontext);
+ glcontext = NULL;
+ }
+
+ CFrameWnd::OnDestroy();
+}
+
+void Canvas::OnSize(UINT type, int width, int height)
+{
+ CFrameWnd::OnSize(type, width, height);
+ glViewport(0, 0, width, height);
+ GuiGetApp()->setup_for_drawing();
+}
+
+BOOL Canvas::OnEraseBkgnd(CDC *dc)
+{
+ return FALSE; // Don't want background to be erased thank you
+}
+
+void Canvas::immediate_redraw()
+{
+ SendMessage(WM_PAINT);
+}
+
+void Canvas::post_redraw()
+{
+ InvalidateRect(NULL, FALSE);
+}
+
+int Canvas::decode_mouse_button(UINT flags, int which)
+{
+ if( which==0 )
+ {
+ if( flags&MK_MBUTTON ) which = 2;
+ else if( flags&MK_LBUTTON ) which = 1;
+ else if( flags&MK_RBUTTON ) which = 3;
+ }
+
+ // Emulate middle button by double click
+ if( flags&MK_LBUTTON && flags&MK_RBUTTON ) which = 2;
+
+ return which;
+}
+
+void Canvas::do_mouse_down(int which, UINT flags, CPoint point)
+{
+ which = decode_mouse_button(flags, which);
+
+ int where[2]; where[0]=point.x; where[1]=point.y;
+ last_click[0]=point.x; last_click[1]=point.y;
+
+ SetCapture();
+ if( GuiGetApp()->mouse_down(where, which) )
+ post_redraw();
+}
+
+void Canvas::do_mouse_up(int which, UINT flags, CPoint point)
+{
+ which = decode_mouse_button(flags, which);
+
+ int where[2]; where[0]=point.x; where[1]=point.y;
+
+ ReleaseCapture();
+ if( GuiGetApp()->mouse_up(where, which) )
+ post_redraw();
+}
+
+void Canvas::do_mouse_move(UINT flags, CPoint point)
+{
+ int which = decode_mouse_button(flags);
+
+ int where[2]; where[0]=point.x; where[1]=point.y;
+
+ if( GuiGetApp()->mouse_drag(where, last_click, which) )
+ post_redraw();
+
+ last_click[0]=point.x; last_click[1]=point.y;
+}
+
+// Each mouse handler is given a set of flags 'f' and a position 'p'
+void Canvas::OnLButtonDown(UINT f, CPoint p) { do_mouse_down(1, f, p); }
+void Canvas::OnRButtonDown(UINT f, CPoint p) { do_mouse_down(3, f, p); }
+void Canvas::OnMButtonDown(UINT f, CPoint p) { do_mouse_down(2, f, p); }
+void Canvas::OnLButtonUp(UINT f, CPoint p) { do_mouse_up(1, f, p); }
+void Canvas::OnRButtonUp(UINT f, CPoint p) { do_mouse_up(3, f, p); }
+void Canvas::OnMButtonUp(UINT f, CPoint p) { do_mouse_up(2, f, p); }
+void Canvas::OnMouseMove(UINT f, CPoint p) { do_mouse_move(f, p); }
+
+void Canvas::OnChar(UINT ch, UINT repcount, UINT flags)
+{
+ GuiGetApp()->key_press(ch);
+}
+
+#if 0
+void Canvas::OnActivate(UINT state, CWnd *other, BOOL is_minimized)
+{
+ if( state==WA_ACTIVE || state==WA_CLICKACTIVE )
+ {
+ wglMakeCurrent(dc, glcontext);
+ }
+}
+#endif
+
+
+
+/*****************************************
+
+NOTES:
+
+ AfxGetApp() returns a CWinApp* to the current application
+ AfxGetAppName() returns a const char* to application name
+
+
+ ****************************************/
+
+void MfcGUI::setup_for_drawing()
+{
+ status("Hello There");
+}
+
+void MfcGUI::draw_contents()
+{
+ glClearColor(0.8f, 0.2f, 0.2f, 0.0f);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+}
+
+bool MfcGUI::mouse_down(int *where, int which) { return false; }
+
+bool MfcGUI::mouse_up(int *where, int which) { return false; }
+
+bool MfcGUI::mouse_drag(int *where, int *last, int which) { return false; }
+
+bool MfcGUI::key_press(int key) { return false; }
+
+void MfcGUI::update_animation() { }
+
+
+} // namespace gfx
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/gui.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/gui.cxx
new file mode 100644
index 00000000..7102aed2
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/gui.cxx
@@ -0,0 +1,509 @@
+/************************************************************************
+
+ MxGUI
+
+ $Id: gui.cxx 447 2005-06-18 14:01:16Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+
+#ifdef HAVE_FLTK
+
+#include <gfx/gui.h>
+#include <gfx/raster.h>
+
+#include <FL/Fl_File_Chooser.H>
+#include <FL/fl_ask.H>
+
+#include <cstdio>
+#include <cstdarg>
+#include <fstream>
+
+namespace gfx
+{
+
+MxGUI *MxGUI::current = NULL;
+
+MxGLCanvas::MxGLCanvas(int x, int y, int w, int h, const char *l)
+ : Fl_Gl_Window(x, y, w, h, l)
+{
+ last_click[0] = last_click[1] = -1;
+ app = NULL;
+}
+
+void MxGLCanvas::attach_app(MxGUI *a)
+{
+ if( !app )
+ app = a;
+}
+
+void MxGLCanvas::resize(int x, int y, int w, int h)
+{
+ Fl_Gl_Window::resize(x, y, w, h);
+
+ if( shown() )
+ {
+ make_current();
+ glViewport(0, 0, w, h);
+ invalidate();
+ }
+}
+
+void MxGLCanvas::draw()
+{
+ if( !valid() )
+ {
+ valid(1);
+ if(app) app->setup_for_drawing();
+ }
+
+ if(app) app->draw_contents();
+}
+
+int MxGLCanvas::handle(int event)
+{
+ bool need_redraw = false;
+
+ int where[2]; where[0] = Fl::event_x(); where[1] = Fl::event_y();
+
+ // NOTE: Normally, we examine event_state() rather than
+ // event_button() because it is valid no matter what the generating
+ // event whereas event_button() is only valid for PUSH and RELEASE
+ // events. However, since event_state() only tells us what buttons
+ // are *pressed*, we need to revert to event_button() on RELEASE
+ // events.
+ //
+ int which = Fl::event_button();
+
+ if( event != FL_RELEASE )
+ {
+ if( Fl::event_state(FL_BUTTON1) )
+ {
+ // emulate middle button by combination of left & right buttons
+ if( Fl::event_state(FL_BUTTON3) ) which = 2;
+ else which = 1;
+ }
+ else if( Fl::event_state(FL_BUTTON2) ) which = 2;
+ else if( Fl::event_state(FL_BUTTON3) ) which = 3;
+ }
+
+ switch( event )
+ {
+ case FL_PUSH:
+ need_redraw = app && app->mouse_down(where, which);
+ last_click[0]=where[0]; last_click[1]=where[1];
+ break;
+
+ case FL_RELEASE:
+ need_redraw = app && app->mouse_up(where, which);
+ break;
+
+ case FL_DRAG:
+ need_redraw = app && app->mouse_drag(where, last_click, which);
+ last_click[0]=where[0]; last_click[1]=where[1];
+ break;
+
+ case FL_FOCUS:
+ case FL_UNFOCUS:
+ // Do nothing special
+ break;
+
+ case FL_KEYBOARD:
+ if( !app || !app->key_press(Fl::event_key()) )
+ return 0;
+ break;
+
+ default:
+ return Fl_Gl_Window::handle(event);
+ }
+
+ if( need_redraw )
+ redraw();
+
+ return 1;
+}
+
+////////////////////////////////////////////////////////////////////////
+//
+// Default menu system. Although the application can completely
+// override this, it's expected that most programs will just add their
+// own additional entries.
+//
+
+void MxGUI::cb_new() { }
+
+void MxGUI::cb_exit() { cleanup_for_exit(); exit(0); }
+
+void MxGUI::cb_animate(Fl_Menu_ *m)
+ { animate(m->mvalue()->value()!=0); }
+
+void MxGUI::cb_fps()
+{
+ // Convert default_fps to a string
+ static char fps[64]; sprintf(fps, "%.1f", default_fps);
+
+ const char *result = fl_input("Number of frames per second to draw", fps);
+ if( result )
+ {
+ default_fps = atof(result);
+ if( target_fps>0 ) target_fps=default_fps;
+ }
+}
+
+void MxGUI::cb_snapshot(int format)
+{
+ canvas->redraw(); // don't want to snap menu
+ snapshot_to_file(format); // snapshot what's drawn
+}
+
+void MxGUI::cb_vga_size(int xw)
+{
+ if( toplevel->resizable() )
+ resize_canvas(xw, (3*xw)/4);
+}
+
+void MxGUI::cb_hdtv_size(int xw)
+{
+ if( toplevel->resizable() )
+ MxGUI::current->resize_canvas(xw, (9*xw)/16);
+}
+
+void MxGUI::cb_dv_size(int xw)
+{
+ if( toplevel->resizable() )
+ MxGUI::current->resize_canvas(xw, (2*xw)/3);
+}
+
+void MxGUI::cb_toggle(Fl_Menu_ *m, bool *flag)
+{
+ *flag = m->mvalue()->value()!=0;
+ current->canvas->redraw();
+}
+
+void MxGUI::cb_save_view_to_file() { save_view_to_file(); }
+void MxGUI::cb_load_view_from_file() { load_view_from_file(); }
+
+bool MxGUI::save_view_to_file()
+{
+ fl_alert("This application has not defined a scheme for saving the view.");
+ return false;
+}
+
+bool MxGUI::load_view_from_file()
+{
+ fl_alert("This application has not defined a scheme for loading the view.");
+ return false;
+}
+
+int MxGUI::add_menu(const std::string& s, int key, Fl_Callback *cb, int flags)
+{
+ return menu_bar->add(s.c_str(), key, cb, this, flags);
+}
+
+int MxGUI::add_toggle_menu(const std::string& s, int key, bool& val, int flags)
+{
+ return menu_bar->add(s.c_str(), key, (Fl_Callback *)cb_toggle, &val,
+ FL_MENU_TOGGLE|(val?FL_MENU_VALUE:0)|flags);
+}
+
+////////////////////////////////////////////////////////////////////////
+
+#ifdef __CYGWIN__
+extern "C"{
+ extern int mainCRTStartup();
+ int WinMainCRTStartup() { mainCRTStartup(); return 1; }
+}
+#endif
+
+MxGUI::MxGUI()
+{
+ canvas = NULL;
+ status_line = NULL;
+ default_fps = 24.0f;
+ target_fps = 0.0f;
+ MxGUI::current = this;
+}
+
+Fl_Window *MxGUI::create_window(int xw, int yw, int pad)
+{
+ int yfill = 0;
+
+ Fl_Window *w = new Fl_Window(xw+2*pad, 0);
+ toplevel = w;
+ w->box(FL_UP_BOX);
+
+ menu_bar = new Fl_Menu_Bar(0, yfill, w->w(), 30);
+ menu_bar->menu(menu_layout);
+ yfill += menu_bar->h();
+
+ add_upper_controls(yfill, pad);
+
+ yfill += pad;
+ canvas = new MxGLCanvas(pad, yfill, xw, yw);
+ canvas->box(FL_DOWN_FRAME);
+ canvas->attach_app(this);
+
+ int glmode = 0;
+ if(canvas->can_do(FL_RGB8)) glmode|=FL_RGB8;
+ if(canvas->can_do(FL_DOUBLE)) glmode|=FL_DOUBLE;
+ if(canvas->can_do(FL_DEPTH)) glmode|=FL_DEPTH;
+ if(canvas->can_do(FL_ALPHA)) glmode|=FL_ALPHA;
+ if(glmode) canvas->mode(glmode);
+
+ yfill += canvas->h();
+
+ add_lower_controls(yfill, pad);
+
+ yfill += pad;
+ status_line = new Fl_Output(pad, yfill, xw, 25);
+ status_line->color(48);
+ status_line->labeltype(FL_NO_LABEL);
+ yfill += status_line->h();
+
+ w->end();
+
+ w->size(w->w(), yfill+pad); // adjust window height
+ w->resizable(*canvas); // resize canvas with window
+
+ // These are used by resize_canvas() to resize the window based on
+ // the target size of the canvas.
+ w_offset = w->w() - xw;
+ h_offset = w->h() - yw;
+
+ return w;
+}
+
+static
+int arg_redirect(int argc, char **argv, int& index)
+{
+ MxGUI *app = MxGUI::current;
+ return app?app->cmdline_option(argc, argv, index):0;
+}
+
+void MxGUI::initialize(int argc, char **argv, Fl_Menu_Item *m, int xw, int yw)
+{
+ Fl::visual(FL_RGB8);
+ menu_layout = m?m:NULL;
+
+ int index = 0;
+ if( argv )
+ Fl::args(argc, argv, index, arg_redirect);
+
+ create_window(xw, yw);
+ toplevel->label("Graphics Program");
+
+ // Add dynamic entries
+ typedef MxBinder<MxGUI> CB;
+ std::string snap = "&File/Snapshot to/";
+ std::string view = "&View/";
+ std::string size = "&View/Display &size/";
+
+ add_menu("&File/&New", FL_CTRL+'n', CB::to<&MxGUI::cb_new>);
+
+#if defined(HAVE_LIBPNG)
+ add_menu(snap+"&PNG",
+ FL_CTRL+'p', CB::to_arg<&MxGUI::cb_snapshot, IMG_PNG>);
+#endif
+#if defined(HAVE_LIBTIFF)
+ add_menu("&File/Snapshot to/&TIFF",
+ FL_CTRL+'P', CB::to_arg<&MxGUI::cb_snapshot, IMG_TIFF>);
+#endif
+#if defined(HAVE_LIBJPEG)
+ add_menu("&File/Snapshot to/&JPEG", 0, CB::to_arg<&MxGUI::cb_snapshot, IMG_JPEG>);
+#endif
+ add_menu("&File/Snapshot to/PP&M", 0, CB::to_arg<&MxGUI::cb_snapshot, IMG_PNM>);
+
+ add_menu("&File/E&xit", FL_CTRL+'q', CB::to<&MxGUI::cb_exit>);
+
+ add_menu(view+"Animation speed ...", FL_CTRL+'r', CB::to<&MxGUI::cb_fps>);
+ add_menu(view+"&Animate", FL_CTRL+'a', CB::to_menu<&MxGUI::cb_animate>, FL_MENU_TOGGLE);
+
+ add_menu(view+"Save view ...", 0, CB::to<&MxGUI::cb_save_view_to_file>);
+ add_menu(view+"Load view ...", 0, CB::to<&MxGUI::cb_load_view_from_file>);
+
+ add_menu(size+"320x240",0, CB::to_arg<&MxGUI::cb_vga_size, 320>);
+ add_menu(size+"640x480",0, CB::to_arg<&MxGUI::cb_vga_size, 640>);
+ add_menu(size+"800x600",0, CB::to_arg<&MxGUI::cb_vga_size, 800>);
+ add_menu(size+"1024x768",0,CB::to_arg<&MxGUI::cb_vga_size, 1024>,FL_MENU_DIVIDER);
+ add_menu(size+"720x480",0, CB::to_arg<&MxGUI::cb_dv_size, 720>,FL_MENU_DIVIDER);
+
+ add_menu(size+"480x270",0, CB::to_arg<&MxGUI::cb_hdtv_size, 480>);
+ add_menu(size+"960x540",0, CB::to_arg<&MxGUI::cb_hdtv_size, 960>);
+ add_menu(size+"1920x1080",0, CB::to_arg<&MxGUI::cb_hdtv_size, 1920>);
+
+ if( argv )
+ {
+ if( index==argc )
+ cmdline_file(NULL);
+ else
+ for(; index<argc; index++)
+ cmdline_file(argv[index]);
+ }
+}
+
+int MxGUI::run()
+{
+ toplevel->show();
+ return Fl::run();
+}
+
+static
+void cb_timeout(void *)
+{
+ MxGUI *app = MxGUI::current;
+
+ if(!app || app->target_fps==0.0f) return;
+
+ app->update_animation();
+ app->canvas->redraw();
+ Fl::repeat_timeout(1/app->target_fps, cb_timeout);
+}
+
+void MxGUI::animate(bool will)
+{
+ if( will )
+ {
+ target_fps = default_fps;
+ Fl::add_timeout(1/target_fps, cb_timeout);
+ }
+ else
+ target_fps = 0;
+}
+
+int MxGUI::status(const char *fmt, ...)
+{
+ static char strbuf[1000];
+
+ va_list args;
+ va_start(args, fmt);
+ int n = vsprintf(strbuf, fmt, args);
+
+ status_line->value(strbuf);
+ return n;
+}
+
+bool MxGUI::snapshot_to_file(int format, const char *filenamep)
+{
+ canvas->make_current();
+ Fl::flush();
+
+ GLint vp[4]; glGetIntegerv(GL_VIEWPORT, vp);
+
+ glPushAttrib(GL_PIXEL_MODE_BIT);
+ glReadBuffer(GL_FRONT);
+ glPixelStorei(GL_PACK_ALIGNMENT, 1);
+
+ int nchan = 3;
+ if( format==IMG_PNG || format==IMG_TIFF )
+ // Currently, only TIFF and PNG writers support the alpha channel
+ nchan = 4;
+
+ ByteRaster img(vp[2]-vp[0], vp[3]-vp[1], nchan);
+ glReadPixels(vp[0],vp[1],vp[2],vp[3],
+ nchan==4 ? GL_RGBA : GL_RGB,
+ GL_UNSIGNED_BYTE,img.head());
+
+ glPopAttrib();
+ img.vflip();
+
+ if ( filenamep == NULL )
+ {
+ char msg[80], pat[8], name[16];
+ sprintf(msg, "Save %s Snapshot", image_type_name(format));
+ sprintf(pat, "*.%s", image_type_ext(format));
+ sprintf(name, "snap.%s", image_type_ext(format));
+
+ filenamep = fl_file_chooser(msg, pat, name);
+ }
+
+ if( filenamep )
+ return write_image(filenamep, img, format);
+ else
+ return false;
+}
+
+void MxGUI::lock_size()
+{
+ toplevel->size_range(toplevel->w(), toplevel->h(),
+ toplevel->w(), toplevel->h());
+ toplevel->resizable(NULL);
+}
+
+void MxGUI::unlock_size()
+{
+ toplevel->resizable(*canvas);
+ toplevel->size_range(100, 100, 0, 0);
+}
+
+
+void MxGUI::resize_canvas(int width, int height)
+{
+ toplevel->size(width+w_offset, height+h_offset);
+ toplevel->redraw();
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void MxGUI::setup_for_drawing()
+{
+ glClearColor(0.65f, 0.65f, 0.65f, 0.0f);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluOrtho2D(-1.0, 1.0, -1.0, 1.0);
+}
+
+void MxGUI::draw_contents()
+{
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glLoadIdentity();
+
+ glColor3f(0.0, 0.0, 0.0);
+ glBegin(GL_LINES);
+ glVertex2f(-1.0, 0.0); glVertex2f(1.0, 0.0);
+ glVertex2f(0.0, -1.0); glVertex2f(0.0, 1.0);
+ glEnd();
+
+ glPopMatrix();
+}
+
+void MxGUI::update_animation()
+{
+}
+
+bool MxGUI::mouse_down(int *where, int which)
+{
+ return false;
+}
+
+bool MxGUI::mouse_up(int *where, int which)
+{
+ return false;
+}
+
+bool MxGUI::mouse_drag(int *where, int *last, int which)
+{
+ return false;
+}
+
+bool MxGUI::key_press(int key)
+{
+ return false;
+}
+
+int MxGUI::cmdline_option(int argc, char **argv, int& index)
+{
+ return 0;
+}
+
+void MxGUI::cmdline_file(const char *file)
+{
+}
+
+} // namespace gfx
+
+#endif /* HAVE_FLTK */
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/mat2.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/mat2.cxx
new file mode 100644
index 00000000..42ed3e1a
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/mat2.cxx
@@ -0,0 +1,89 @@
+/************************************************************************
+
+ 2x2 Matrix class
+
+ $Id: mat2.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+#include <gfx/mat2.h>
+
+namespace gfx
+{
+
+Mat2 Mat2::I() { return Mat2(1,0, 0,1); }
+
+Mat2 &Mat2::diag(double d)
+{
+ row[0][0] = d; row[0][1] = 0;
+ row[1][0] = 0; row[1][1] = d;
+
+ return *this;
+}
+
+Mat2 operator*(const Mat2 &n, const Mat2& m)
+{
+ Mat2 A;
+ int i,j;
+
+ for(i=0;i<2;i++)
+ for(j=0;j<2;j++)
+ A(i,j) = n[i]*m.col(j);
+
+ return A;
+}
+
+double invert(Mat2 &inv, const Mat2 &m)
+{
+ double d = det(m);
+
+ if( d==0.0 )
+ return 0.0;
+
+ inv(0, 0) = m(1,1)/d;
+ inv(0, 1) = -m(0,1)/d;
+ inv(1, 0) = -m(1,0)/d;
+ inv(1, 1) = m(0,0)/d;
+
+ return d;
+}
+
+bool eigenvalues(const Mat2& M, Vec2& evals)
+{
+ double B = -M(0,0)-M(1,1);
+ double C = det(M);
+
+ double dis = B*B - 4.0*C;
+ if( dis<FEQ_EPS )
+ return false;
+ else
+ {
+ double s = sqrt(dis);
+
+ evals[0] = 0.5*(-B + s);
+ evals[1] = 0.5*(-B - s);
+ return true;
+ }
+}
+
+bool eigenvectors(const Mat2& M, const Vec2& evals, Vec2 evecs[2])
+{
+ evecs[0] = Vec2(-M(0,1), M(0,0)-evals[0]);
+ evecs[1] = Vec2(-M(0,1), M(0,0)-evals[1]);
+
+ unitize(evecs[0]);
+ unitize(evecs[1]);
+
+ return true;
+}
+
+bool eigen(const Mat2& M, Vec2& evals, Vec2 evecs[2])
+{
+ bool result = eigenvalues(M, evals);
+ if( result )
+ eigenvectors(M, evals, evecs);
+ return result;
+}
+
+} // namespace gfx
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/mat3.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/mat3.cxx
new file mode 100644
index 00000000..eda9fe3c
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/mat3.cxx
@@ -0,0 +1,82 @@
+/************************************************************************
+
+ 3x3 Matrix class
+
+ $Id: mat3.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+#include <gfx/mat3.h>
+
+namespace gfx
+{
+
+Mat3 Mat3::I() { return Mat3(Vec3(1,0,0), Vec3(0,1,0), Vec3(0,0,1)); }
+
+Mat3 &Mat3::diag(double d)
+{
+ *this = 0.0;
+ row[0][0] = row[1][1] = row[2][2] = d;
+ return *this;
+}
+
+Mat3 diag(const Vec3& v)
+{
+ return Mat3(Vec3(v[0],0,0), Vec3(0,v[1],0), Vec3(0,0,v[2]));
+}
+
+Mat3 Mat3::outer_product(const Vec3& v)
+{
+ Mat3 A;
+ double x=v[0], y=v[1], z=v[2];
+
+ A(0,0) = x*x; A(0,1) = x*y; A(0,2) = x*z;
+ A(1,0)=A(0,1); A(1,1) = y*y; A(1,2) = y*z;
+ A(2,0)=A(0,2); A(2,1)=A(1,2); A(2,2) = z*z;
+
+ return A;
+}
+
+Mat3 Mat3::outer_product(const Vec3& u, const Vec3& v)
+{
+ Mat3 A;
+
+ for(int i=0; i<3; i++)
+ for(int j=0; j<3; j++)
+ A(i, j) = u[i]*v[j];
+
+ return A;
+}
+
+Mat3 operator*(const Mat3& n, const Mat3& m)
+{
+ Mat3 A;
+
+ for(int i=0;i<3;i++)
+ for(int j=0;j<3;j++)
+ A(i,j) = n[i]*m.col(j);
+
+ return A;
+}
+
+Mat3 adjoint(const Mat3& m)
+{
+ return Mat3(m[1]^m[2],
+ m[2]^m[0],
+ m[0]^m[1]);
+}
+
+double invert(Mat3& inv, const Mat3& m)
+{
+ Mat3 A = adjoint(m);
+ double d = A[0] * m[0];
+
+ if( d==0.0 )
+ return 0.0;
+
+ inv = transpose(A) / d;
+ return d;
+}
+
+} // namespace gfx
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/mat4.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/mat4.cxx
new file mode 100644
index 00000000..0ad2a271
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/mat4.cxx
@@ -0,0 +1,206 @@
+/************************************************************************
+
+ 4x4 Matrix class
+
+ $Id: mat4.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+#include <gfx/mat4.h>
+
+namespace gfx
+{
+
+Mat4 Mat4::I()
+{
+ return Mat4(Vec4(1,0,0,0),Vec4(0,1,0,0),Vec4(0,0,1,0),Vec4(0,0,0,1));
+}
+
+Mat4 translation_matrix(const Vec3& d)
+{
+ return Mat4(Vec4(1, 0, 0, d[0]),
+ Vec4(0, 1, 0, d[1]),
+ Vec4(0, 0, 1, d[2]),
+ Vec4(0, 0, 0, 1));
+}
+
+Mat4 scaling_matrix(const Vec3& s)
+{
+ return Mat4(Vec4(s[0], 0, 0, 0),
+ Vec4(0, s[1], 0, 0),
+ Vec4(0, 0, s[2], 0),
+ Vec4(0, 0, 0, 1));
+}
+
+Mat4 rotation_matrix_rad(double theta, const Vec3& axis)
+{
+ double c=cos(theta), s=sin(theta),
+ xx=axis[0]*axis[0], yy=axis[1]*axis[1], zz=axis[2]*axis[2],
+ xy=axis[0]*axis[1], yz=axis[1]*axis[2], xz=axis[0]*axis[2];
+
+ double xs=axis[0]*s, ys=axis[1]*s, zs=axis[2]*s;
+
+ Mat4 M;
+ M(0,0)=xx*(1-c)+c; M(0,1)=xy*(1-c)-zs; M(0,2)=xz*(1-c)+ys; M(0,3) = 0;
+ M(1,0)=xy*(1-c)+zs; M(1,1)=yy*(1-c)+c; M(1,2)=yz*(1-c)-xs; M(1,3)=0;
+ M(2,0)=xz*(1-c)-ys; M(2,1)=yz*(1-c)+xs; M(2,2)=zz*(1-c)+c; M(2,3)=0;
+ M(3,0)=0; M(3,1)=0; M(3,2)=0; M(3,3)=1;
+
+ return M;
+}
+
+Mat4 perspective_matrix(double fovy, double aspect, double zmin, double zmax)
+{
+ double A, B;
+ Mat4 M;
+
+ if( zmax==0.0 )
+ {
+ A = B = 1.0;
+ }
+ else
+ {
+ A = (zmax+zmin)/(zmin-zmax);
+ B = (2*zmax*zmin)/(zmin-zmax);
+ }
+
+ double f = 1.0/tan(fovy*M_PI/180.0/2.0);
+ M(0,0) = f/aspect;
+ M(1,1) = f;
+ M(2,2) = A;
+ M(2,3) = B;
+ M(3,2) = -1;
+ M(3,3) = 0;
+
+ return M;
+}
+
+Mat4 lookat_matrix(const Vec3& from, const Vec3& at, const Vec3& v_up)
+{
+ Vec3 up = v_up; unitize(up);
+ Vec3 f = at - from; unitize(f);
+
+ Vec3 s=f^up;
+ Vec3 u=s^f;
+
+ // NOTE: These steps are left out of the GL man page!!
+ unitize(s);
+ unitize(u);
+
+ Mat4 M(Vec4(s, 0), Vec4(u, 0), Vec4(-f, 0), Vec4(0, 0, 0, 1));
+
+ return M * translation_matrix(-from);
+}
+
+Mat4 viewport_matrix(double w, double h)
+{
+ return scaling_matrix(Vec3(w/2.0, -h/2.0, 1)) *
+ translation_matrix(Vec3(1, -1, 0));
+}
+
+Mat4 operator*(const Mat4& n, const Mat4& m)
+{
+ Mat4 A;
+ int i,j;
+
+ for(i=0;i<4;i++)
+ for(j=0;j<4;j++)
+ A(i,j) = n[i]*m.col(j);
+
+ return A;
+}
+
+Mat4 adjoint(const Mat4& m)
+{
+ Mat4 A;
+
+ A[0] = cross( m[1], m[2], m[3]);
+ A[1] = cross(-m[0], m[2], m[3]);
+ A[2] = cross( m[0], m[1], m[3]);
+ A[3] = cross(-m[0], m[1], m[2]);
+
+ return A;
+}
+
+double invert_cramer(Mat4& inv, const Mat4& m)
+{
+ Mat4 A = adjoint(m);
+ double d = A[0] * m[0];
+
+ if( d==0.0 )
+ return 0.0;
+
+ inv = transpose(A) / d;
+ return d;
+}
+
+
+
+// Matrix inversion code for 4x4 matrices using Gaussian elimination
+// with partial pivoting. This is a specialized version of a
+// procedure originally due to Paul Heckbert <[email protected]>.
+//
+// Returns determinant of A, and B=inverse(A)
+// If matrix A is singular, returns 0 and leaves trash in B.
+//
+#define SWAP(a, b, t) {t = a; a = b; b = t;}
+double invert(Mat4& B, const Mat4& m)
+{
+ Mat4 A = m;
+ int i, j, k;
+ double max, t, det, pivot;
+
+ /*---------- forward elimination ----------*/
+
+ for (i=0; i<4; i++) /* put identity matrix in B */
+ for (j=0; j<4; j++)
+ B(i, j) = (double)(i==j);
+
+ det = 1.0;
+ for (i=0; i<4; i++) { /* eliminate in column i, below diag */
+ max = -1.;
+ for (k=i; k<4; k++) /* find pivot for column i */
+ if (fabs(A(k, i)) > max) {
+ max = fabs(A(k, i));
+ j = k;
+ }
+ if (max<=0.) return 0.; /* if no nonzero pivot, PUNT */
+ if (j!=i) { /* swap rows i and j */
+ for (k=i; k<4; k++)
+ SWAP(A(i, k), A(j, k), t);
+ for (k=0; k<4; k++)
+ SWAP(B(i, k), B(j, k), t);
+ det = -det;
+ }
+ pivot = A(i, i);
+ det *= pivot;
+ for (k=i+1; k<4; k++) /* only do elems to right of pivot */
+ A(i, k) /= pivot;
+ for (k=0; k<4; k++)
+ B(i, k) /= pivot;
+ /* we know that A(i, i) will be set to 1, so don't bother to do it */
+
+ for (j=i+1; j<4; j++) { /* eliminate in rows below i */
+ t = A(j, i); /* we're gonna zero this guy */
+ for (k=i+1; k<4; k++) /* subtract scaled row i from row j */
+ A(j, k) -= A(i, k)*t; /* (ignore k<=i, we know they're 0) */
+ for (k=0; k<4; k++)
+ B(j, k) -= B(i, k)*t;
+ }
+ }
+
+ /*---------- backward elimination ----------*/
+
+ for (i=4-1; i>0; i--) { /* eliminate in column i, above diag */
+ for (j=0; j<i; j++) { /* eliminate in rows above i */
+ t = A(j, i); /* we're gonna zero this guy */
+ for (k=0; k<4; k++) /* subtract scaled row i from row j */
+ B(j, k) -= B(i, k)*t;
+ }
+ }
+
+ return det;
+}
+
+} // namespace gfx
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/quat.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/quat.cxx
new file mode 100644
index 00000000..a3db2a68
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/quat.cxx
@@ -0,0 +1,136 @@
+/************************************************************************
+
+ Quaternion class
+
+ $Id: quat.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/quat.h>
+
+namespace gfx
+{
+
+// Based on code from the Appendix of
+// Quaternion Calculus for Computer Graphics, by Ken Shoemake
+// Computes the exponential of a quaternion, assuming scalar part w=0
+Quat exp(const Quat& q)
+{
+ double theta = norm(q.vector());
+ double c = cos(theta);
+
+ if( theta > FEQ_EPS )
+ {
+ double s = sin(theta) / theta;
+ return Quat( s*q.vector(), c);
+ }
+ else
+ return Quat(q.vector(), c);
+}
+
+// Based on code from the Appendix of
+// Quaternion Calculus for Computer Graphics, by Ken Shoemake
+// Computes the natural logarithm of a UNIT quaternion
+Quat log(const Quat& q)
+{
+ double scale = norm(q.vector());
+ double theta = atan2(scale, q.scalar());
+
+ if( scale > 0.0 ) scale=theta/scale;
+
+ return Quat(scale*q.vector(), 0.0);
+}
+
+Quat axis_to_quat(const Vec3& a, double phi)
+{
+ Vec3 u = a;
+ unitize(u);
+
+ double s = sin(phi/2.0);
+ return Quat(u[0]*s, u[1]*s, u[2]*s, cos(phi/2.0));
+}
+
+Mat4 quat_to_matrix(const Quat& q)
+{
+ Mat4 M;
+
+ const double x = q.vector()[0];
+ const double y = q.vector()[1];
+ const double z = q.vector()[2];
+ const double w = q.scalar();
+ const double s = 2/norm(q);
+
+ M(0,0)=1-s*(y*y+z*z); M(0,1)=s*(x*y-w*z); M(0,2)=s*(x*z+w*y); M(0,3)=0;
+ M(1,0)=s*(x*y+w*z); M(1,1)=1-s*(x*x+z*z); M(1,2)=s*(y*z-w*x); M(1,3)=0;
+ M(2,0)=s*(x*z-w*y); M(2,1)=s*(y*z+w*x); M(2,2)=1-s*(x*x+y*y); M(2,3)=0;
+ M(3,0)=0; M(3,1)=0; M(3,2)=0; M(3,3)=1;
+
+ return M;
+}
+
+Mat4 unit_quat_to_matrix(const Quat& q)
+{
+ Mat4 M;
+
+ const double x = q.vector()[0];
+ const double y = q.vector()[1];
+ const double z = q.vector()[2];
+ const double w = q.scalar();
+
+ M(0,0)=1-2*(y*y+z*z); M(0,1)=2*(x*y-w*z); M(0,2)=2*(x*z+w*y); M(0,3)=0;
+ M(1,0)=2*(x*y+w*z); M(1,1)=1-2*(x*x+z*z); M(1,2)=2*(y*z-w*x); M(1,3)=0;
+ M(2,0)=2*(x*z-w*y); M(2,1)=2*(y*z+w*x); M(2,2)=1-2*(x*x+y*y); M(2,3)=0;
+ M(3,0)=0; M(3,1)=0; M(3,2)=0; M(3,3)=1;
+
+ return M;
+}
+
+Quat slerp(const Quat& from, const Quat& to, double t)
+{
+ const Vec3& v_from = from.vector();
+ const Vec3& v_to = to.vector();
+ const double s_from = from.scalar();
+ const double s_to = to.scalar();
+
+ double cosine = v_from*v_to + s_from*s_to;
+
+ if( (1+cosine) < FEQ_EPS )
+ {
+ // The quaternions are (nearly) diametrically opposed. We
+ // treat this specially (based on suggestion in Watt & Watt).
+ //
+ double A = sin( (1-t)*M_PI/2.0 );
+ double B = sin( t*M_PI/2.0 );
+
+ return Quat( A*v_from[0] + B*(-v_from[1]),
+ A*v_from[1] + B*(v_from[0]),
+ A*v_from[2] + B*(-s_from),
+ A*s_from + B*(v_from[2]) );
+ }
+
+ double A, B;
+ if( (1-cosine) < FEQ_EPS )
+ {
+ // The quaternions are very close. Approximate with normal
+ // linear interpolation. This is cheaper and avoids division
+ // by very small numbers.
+ //
+ A = 1.0 - t;
+ B = t;
+ }
+ else
+ {
+ // This is the normal case. Perform SLERP.
+ //
+ double theta = acos(cosine);
+ double sine = sqrt(1 - cosine*cosine);
+
+ A = sin( (1-t)*theta ) / sine;
+ B = sin( t*theta ) / sine;
+
+ }
+
+ return Quat( A*v_from + B*v_to, A*s_from + B*s_to);
+}
+
+} // namespace gfx
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/raster-jpeg.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/raster-jpeg.cxx
new file mode 100644
index 00000000..d6612ed4
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/raster-jpeg.cxx
@@ -0,0 +1,113 @@
+/************************************************************************
+
+ JPEG image file format support.
+
+ The I/O code in this file was originally based on the example.c
+ skeleton code distributed with the JPEG library (release 6b).
+
+ $Id: raster-jpeg.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+#include <gfx/raster.h>
+
+namespace gfx {
+// Quality factors are expressed on a 0--100 scale
+int jpeg_output_quality = 100;
+}
+
+#ifdef HAVE_LIBJPEG
+
+#include <stdio.h>
+extern "C" {
+#include <jpeglib.h>
+}
+
+namespace gfx
+{
+
+bool write_jpeg_image(const char *filename, const ByteRaster& img)
+{
+ FILE *outfile = fopen(filename, "wb");
+ if( !outfile ) return false;
+
+ struct jpeg_compress_struct cinfo;
+ struct jpeg_error_mgr jerr;
+
+ cinfo.err = jpeg_std_error(&jerr);
+ jpeg_create_compress(&cinfo);
+ jpeg_stdio_dest(&cinfo, outfile);
+
+ cinfo.image_width = img.width();
+ cinfo.image_height = img.height();
+ cinfo.input_components = img.channels();
+
+ if(img.channels()==1) cinfo.in_color_space = JCS_GRAYSCALE;
+ else if(img.channels()==3) cinfo.in_color_space = JCS_RGB;
+ else cinfo.in_color_space = JCS_UNKNOWN;
+
+ jpeg_set_defaults(&cinfo);
+ jpeg_set_quality(&cinfo, jpeg_output_quality, TRUE);
+
+ jpeg_start_compress(&cinfo, TRUE);
+
+ int row_stride = img.width() * img.channels();
+ const unsigned char *scanline = img.head();
+ while( cinfo.next_scanline < cinfo.image_height )
+ {
+ (void) jpeg_write_scanlines(&cinfo, (JSAMPLE **)&scanline, 1);
+ scanline += row_stride;
+ }
+
+ jpeg_finish_compress(&cinfo);
+ jpeg_destroy_compress(&cinfo);
+ fclose(outfile);
+
+ return true;
+}
+
+ByteRaster *read_jpeg_image(const char *filename)
+{
+ FILE *infile = fopen(filename, "rb");
+ if( !infile ) return NULL;
+
+ struct jpeg_decompress_struct cinfo;
+ struct jpeg_error_mgr jerr;
+ cinfo.err = jpeg_std_error(&jerr);
+
+ jpeg_create_decompress(&cinfo);
+ jpeg_stdio_src(&cinfo, infile);
+
+ (void) jpeg_read_header(&cinfo, TRUE);
+ (void) jpeg_start_decompress(&cinfo);
+
+ ByteRaster *img = new ByteRaster(cinfo.output_width,
+ cinfo.output_height,
+ cinfo.output_components);
+
+ int row_stride = cinfo.output_width * cinfo.output_components;
+ unsigned char *scanline = img->head();
+ while( cinfo.output_scanline < cinfo.output_height)
+ {
+ (void) jpeg_read_scanlines(&cinfo, (JSAMPLE **)&scanline, 1);
+ scanline += row_stride;
+ }
+
+ (void) jpeg_finish_decompress(&cinfo);
+ jpeg_destroy_decompress(&cinfo);
+ fclose(infile);
+ return img;
+}
+
+} // namespace gfx
+
+#else
+
+namespace gfx
+{
+bool write_jpeg_image(const char *, const ByteRaster&) { return false; }
+ByteRaster *read_jpeg_image(const char *) { return NULL; }
+}
+
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/raster-png.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/raster-png.cxx
new file mode 100644
index 00000000..c98da9b1
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/raster-png.cxx
@@ -0,0 +1,180 @@
+/************************************************************************
+
+ PNG image file format support.
+
+ The I/O code in this file was originally based on the example.c
+ skeleton code distributed with the PNG library.
+
+ $Id: raster-png.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <vector>
+#include <gfx/gfx.h>
+#include <gfx/raster.h>
+
+#ifdef HAVE_LIBPNG
+
+#include <png.h>
+
+namespace gfx
+{
+
+ByteRaster *read_png_image(const char *file_name)
+{
+ FILE *fp = fopen(file_name, "rb");
+ if( !fp ) return NULL;
+
+ // The last three arguments can be used to set up error handling callbacks.
+ png_structp png_ptr =
+ png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+ if( !png_ptr ) { fclose(fp); return NULL; }
+
+ // Allocate required structure to hold memory information.
+ png_infop info_ptr = png_create_info_struct(png_ptr);
+ if( !info_ptr )
+ {
+ fclose(fp);
+ png_destroy_read_struct(&png_ptr, NULL, NULL);
+ return NULL;
+ }
+
+ // Because we didn't set up any error handlers, we need to be
+ // prepared to handle longjmps out of the library on error
+ // conditions.
+ if( setjmp(png_ptr->jmpbuf) )
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ fclose(fp);
+ return NULL;
+ }
+
+ png_init_io(png_ptr, fp);
+
+ // Read in all the image information
+ png_read_info(png_ptr, info_ptr);
+
+ // Get the header for the first image chunk
+ png_uint_32 width, height;
+ int bit_depth, color_type, interlace_type;
+
+ png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type,
+ &interlace_type, NULL, NULL);
+
+
+ ////////////////////////////////////////////////////////////////
+ // the following tell the PNG library how to transform the image
+ // during input
+
+ if( bit_depth == 16 )
+ // truncate 16 bits/pixel to 8 bits/pixel
+ png_set_strip_16(png_ptr);
+
+ if( color_type == PNG_COLOR_TYPE_PALETTE )
+ // expand paletted colors into RGB color values
+ png_set_expand(png_ptr);
+ else if( color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8 )
+ // expand grayscale images to full 8 bits/pixel
+ png_set_expand(png_ptr);
+
+ // Expand paletted or RGB images with transparency to full alpha
+ // channels so the data will be available as RGBA quartets.
+ if( png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) )
+ png_set_expand(png_ptr);
+
+ // update the palette and info structure
+ png_read_update_info(png_ptr, info_ptr);
+
+
+ // read the image data
+ std::vector<png_bytep> row_pointers(height);
+ int row;
+ int nchan = png_get_channels(png_ptr, info_ptr);
+ int nbytes = png_get_rowbytes(png_ptr, info_ptr);
+
+ for (row = 0; row < height; row++)
+ row_pointers[row] = (png_bytep)malloc(nbytes);
+
+ png_read_image(png_ptr, &row_pointers.front());
+ png_read_end(png_ptr, info_ptr);
+
+ // Read it into a ByteRaster structure
+ ByteRaster *img = new ByteRaster(width, height, nchan);
+
+ unsigned char *pixel = img->pixel(0,0);
+ for(row=0; row<height; row++)
+ {
+ memcpy(pixel, row_pointers[row], nbytes);
+ pixel += nbytes;
+ }
+
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ for(row=0; row<height; row++) free(row_pointers[row]);
+
+ fclose(fp);
+ return img;
+}
+
+bool write_png_image(const char *file_name, const ByteRaster& img)
+{
+ FILE *fp = fopen(file_name, "wb");
+ if( !fp ) return false;
+
+ png_structp png_ptr =
+ png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+ if( !png_ptr ) { fclose(fp); return false; }
+
+ png_infop info_ptr = png_create_info_struct(png_ptr);
+ if( !info_ptr )
+ {
+ fclose(fp);
+ png_destroy_write_struct(&png_ptr, (png_infopp)NULL);
+ return false;
+ }
+
+ if( setjmp(png_ptr->jmpbuf) )
+ {
+ fclose(fp);
+ png_destroy_write_struct(&png_ptr, (png_infopp)NULL);
+ return false;
+ }
+
+ png_init_io(png_ptr, fp);
+
+ int img_type = PNG_COLOR_TYPE_RGB;
+ switch( img.channels() )
+ {
+ case 1: img_type=PNG_COLOR_TYPE_GRAY; break;
+ case 2: img_type=PNG_COLOR_TYPE_GRAY_ALPHA; break;
+ case 4: img_type=PNG_COLOR_TYPE_RGB_ALPHA; break;
+ }
+
+ png_set_IHDR(png_ptr, info_ptr,
+ img.width(), img.height(), 8, img_type, PNG_INTERLACE_NONE,
+ PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
+
+ png_write_info(png_ptr, info_ptr);
+
+ std::vector<png_bytep> row_pointers(img.height());
+ for(int k=0; k<img.height(); k++)
+ row_pointers[k] = (png_bytep)img.head() +k*img.width()*img.channels();
+
+ png_write_image(png_ptr, &row_pointers.front());
+ png_write_end(png_ptr, info_ptr);
+
+ png_destroy_write_struct(&png_ptr, (png_infopp)NULL);
+ fclose(fp);
+ return true;
+}
+
+} // namespace gfx
+
+#else
+
+namespace gfx
+{
+bool write_png_image(const char *, const ByteRaster&) { return false; }
+ByteRaster *read_png_image(const char *) { return NULL; }
+} // namespace gfx
+
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/raster-pnm.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/raster-pnm.cxx
new file mode 100644
index 00000000..75a88990
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/raster-pnm.cxx
@@ -0,0 +1,174 @@
+/************************************************************************
+
+ PNM image file format support
+
+ $Id: raster-pnm.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+#include <gfx/raster.h>
+
+#include <fstream>
+
+namespace gfx
+{
+
+using namespace std;
+
+bool will_write_raw_pnm = true;
+
+////////////////////////////////////////////////////////////////////////
+//
+// PNM output routine
+//
+
+bool write_pnm_image(const char *filename, const ByteRaster& img)
+{
+ ofstream out(filename, ios::out|ios::binary);
+ if( !out.good() ) return false;
+
+ bool is_raw = will_write_raw_pnm;
+
+ //
+ // First, write the PNM header.
+ //
+ char magic;
+ if(img.channels() == 1) magic = is_raw ? '5':'2'; // PGM
+ else if(img.channels() < 3) return false; // unsupported
+ else magic = is_raw ? '6':'3'; // truncate to PPM
+
+ out << "P" << magic << " "
+ << img.width() << " " << img.height() << " 255" << endl;
+
+ //
+ // Now, write the PNM data. If there are more than 3 channels,
+ // we'll just write out the first 3 as RGB and ignore the rest.
+ //
+ if( is_raw )
+ {
+ if( img.channels() > 3 )
+ for(int i=0; i<img.length(); i+=img.channels())
+ out.write((const char *)img.pixel(0,0)+i, 3);
+ else
+ out.write((const char *)img.pixel(0,0), img.length());
+ }
+ else
+ {
+ for(int i=0; i<img.length(); i+=img.channels())
+ {
+ out << (int)(img[i]) << " "
+ << (int)(img[i+1]) << " "
+ << (int)(img[i+2]) << endl;
+ }
+ }
+
+ return true;
+}
+
+////////////////////////////////////////////////////////////////////////
+//
+// PNM input routines
+//
+
+static
+istream& pnm_skip(istream& in)
+{
+ for(;;)
+ {
+ in >> ws;
+ if( in.peek() == '#' )
+ in.ignore(65535, '\n');
+ else
+ return in;
+ }
+}
+
+static
+void pnm_read_ascii(istream& in, ByteRaster& img)
+{
+ unsigned char *current = img.head();
+ int val;
+
+ for(int j=0; j<img.height(); j++) for(int i=0; i<img.width(); i++)
+ for(int k=0; k<img.channels(); k++)
+ {
+ pnm_skip(in) >> val;
+ *current++ = (unsigned char)val;
+ }
+}
+
+static
+void pnm_read_ascii(istream& in, ByteRaster& img, float scale)
+{
+ unsigned char *current = img.head();
+ float val;
+
+ for(int j=0; j<img.height(); j++) for(int i=0; i<img.width(); i++)
+ for(int k=0; k<img.channels(); k++)
+ {
+ pnm_skip(in) >> val;
+ *current++ = (unsigned char)(val*scale);
+ }
+}
+
+static
+void pnm_read_raw(istream& in, ByteRaster& img)
+{
+ char c; in.get(c); // extract 1 whitespace character
+
+ //
+ // Is this guaranteed to read all the requested bytes?
+ //
+ in.read((char *)img.head(), img.length());
+}
+
+ByteRaster *read_pnm_image(const char *filename)
+{
+ ifstream in(filename, ios::in|ios::binary);
+ if( !in.good() ) return NULL;
+
+ //
+ // Read the PNM header and allocate and appropriate raster.
+ //
+
+ unsigned char P, N;
+ in >> P >> N;
+
+ if( P!='P' ) return NULL;
+
+ int width, height, maxval;
+ pnm_skip(in) >> width;
+ pnm_skip(in) >> height;
+ pnm_skip(in) >> maxval;
+
+ int magic = N - '0';
+ bool is_raw = magic > 3;
+
+ int channels = 1;
+ if( magic==3 || magic==6 )
+ channels = 3;
+
+ ByteRaster *img = new ByteRaster(width, height, channels);
+
+ //
+ // Read the image data into the raster
+ //
+
+ if( is_raw )
+ {
+ if( maxval>255 ) return NULL;
+
+ // BUG: We ignore the scaling implied by maxval<255
+
+ pnm_read_raw(in, *img);
+ }
+ else if( maxval==255 )
+ pnm_read_ascii(in, *img);
+ else
+ pnm_read_ascii(in, *img, 255.0f/(float)maxval);
+
+ return img;
+}
+
+} // namespace gfx
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/raster-tiff.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/raster-tiff.cxx
new file mode 100644
index 00000000..a0005849
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/raster-tiff.cxx
@@ -0,0 +1,158 @@
+/************************************************************************
+
+ TIFF image file format support.
+
+ $Id: raster-tiff.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+#include <gfx/raster.h>
+#include <cstring>
+
+#ifdef HAVE_LIBTIFF
+#include <tiffio.h>
+
+namespace gfx
+{
+
+////////////////////////////////////////////////////////////////////////
+//
+// TIFF output
+//
+static
+bool __tiff_write(TIFF *tif, const ByteRaster& img)
+{
+ TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, img.width());
+ TIFFSetField(tif, TIFFTAG_IMAGELENGTH, img.height());
+
+ TIFFSetField(tif, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT);
+ TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, img.channels());
+ TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8);
+ TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
+ TIFFSetField(tif, TIFFTAG_PHOTOMETRIC,
+ img.channels()==1 ? PHOTOMETRIC_MINISBLACK : PHOTOMETRIC_RGB);
+
+#ifdef HAVE_LIBTIFF_LZW
+ //
+ // LZW compression is problematic because it is patented by Unisys.
+ TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_LZW);
+ //
+ // Predictors:
+ // 1 (default) -- No predictor
+ // 2 -- Horizontal differencing
+ TIFFSetField(tif, TIFFTAG_PREDICTOR, 2);
+#endif
+
+ uint32 scanline_size = img.channels() * img.width();
+ if( TIFFScanlineSize(tif) != scanline_size )
+ // ??BUG: Can this mismatch of scanline sizes every occur?
+ return false;
+
+
+ TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, TIFFDefaultStripSize(tif, 0));
+
+ char *scanline_buf = new char[scanline_size];
+
+ const unsigned char *scanline = img.head();
+ for(int y=0; y<img.height(); y++)
+ {
+ memcpy(scanline_buf, scanline, scanline_size);
+ // NOTE: TIFFWriteScanline modifies the buffer you pass it.
+ // Thus, we need to copy stuff out of the raster first.
+ TIFFWriteScanline(tif, scanline_buf, y, 0);
+ scanline += scanline_size;
+ }
+ delete[] scanline_buf;
+
+ return true;
+}
+
+bool write_tiff_image(const char *filename, const ByteRaster& img)
+{
+ TIFF *tif = TIFFOpen(filename, "w");
+ if( !tif ) return false;
+
+ bool result = __tiff_write(tif, img);
+
+ TIFFClose(tif);
+
+ return result;
+}
+
+////////////////////////////////////////////////////////////////////////
+//
+// TIFF input
+//
+static
+void unpack_tiff_raster(uint32 *raster, ByteRaster *img, int npixels)
+{
+ unsigned char *pix = img->head();
+
+ for(int i=0; i<npixels; i++)
+ {
+ *pix++ = TIFFGetR(raster[i]);
+ if( img->channels() >= 3 )
+ {
+ *pix++ = TIFFGetG(raster[i]);
+ *pix++ = TIFFGetB(raster[i]);
+ if( img->channels() == 4 )
+ *pix++ = TIFFGetA(raster[i]);
+ }
+ }
+}
+
+static
+ByteRaster *__tiff_read(TIFF *tif)
+{
+ uint32 w, h;
+ uint16 nchan;
+ TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &w);
+ TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &h);
+ TIFFGetField(tif, TIFFTAG_SAMPLESPERPIXEL, &nchan);
+
+ int npixels = w*h;
+
+ uint32 *raster = (uint32 *)_TIFFmalloc(npixels * sizeof(uint32));
+ if( !raster ) return NULL;
+
+ TIFFReadRGBAImage(tif, w, h, raster, true);
+
+ ByteRaster *img = new ByteRaster(w, h, nchan);
+ unpack_tiff_raster(raster, img, npixels);
+ //
+ // libtiff returned the pixels with the origin in the lower left
+ // rather than the upper left corner. We fix that by flipping the
+ // pixels.
+ //
+ img->vflip();
+
+
+ _TIFFfree(raster);
+
+ return img;
+}
+
+ByteRaster *read_tiff_image(const char *filename)
+{
+ TIFF *tif = TIFFOpen(filename, "r");
+ if( !tif ) return NULL;
+
+ ByteRaster *img = __tiff_read(tif);
+
+ TIFFClose(tif);
+
+ return img;
+}
+
+} // namespace gfx
+
+#else
+
+namespace gfx
+{
+bool write_tiff_image(const char *, const ByteRaster&) { return false; }
+ByteRaster *read_tiff_image(const char *) { return NULL; }
+}
+
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/raster.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/raster.cxx
new file mode 100644
index 00000000..e5a15228
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/raster.cxx
@@ -0,0 +1,113 @@
+/************************************************************************
+
+ Raster image support.
+
+ $Id: raster.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+#include <gfx/raster.h>
+
+#include <string>
+#include <cctype>
+#include <cstring>
+
+namespace gfx
+{
+
+ByteRaster::ByteRaster(const ByteRaster &img)
+ : Raster<unsigned char>(img.width(), img.height(), img.channels())
+{
+ memcpy(head(), img.head(), img.length()*sizeof(unsigned char));
+}
+
+ByteRaster::ByteRaster(const FloatRaster &img)
+ : Raster<unsigned char>(img.width(), img.height(), img.channels())
+{
+ for(int i=0; i<length(); i++ )
+ (*this)[i] = (unsigned char) (255.0f * img[i]);
+}
+
+FloatRaster::FloatRaster(const ByteRaster &img)
+ : Raster<float>(img.width(), img.height(), img.channels())
+{
+ for(int i=0; i<length(); i++)
+ (*this)[i] = (float)img[i] / 255.0f;
+}
+
+FloatRaster::FloatRaster(const FloatRaster &img)
+ : Raster<float>(img.width(), img.height(), img.channels())
+{
+ memcpy(head(), img.head(), img.length()*sizeof(float));
+}
+
+////////////////////////////////////////////////////////////////////////
+//
+// Table of supported formats
+//
+
+
+
+static char *img_names[] = {"PPM", "PNG", "TIFF", "JPEG"};
+static char *img_ext[] = {"ppm", "png", "tif", "jpg"};
+
+const char *image_type_name(int type)
+ { return type>=IMG_LIMIT ? NULL : img_names[type]; }
+
+const char *image_type_ext(int type)
+ { return type>=IMG_LIMIT ? NULL : img_ext[type]; }
+
+
+int infer_image_type(const char *filename)
+{
+ const char *ext = strrchr(filename, '.');
+ if( !ext ) return -1;
+
+ // Make sure extension is lower case
+ std::string lo(ext+1);
+ for(int i=0; i<lo.length(); i++) lo[i] = tolower(lo[i]);
+
+ // Search for extension in the table
+ for(int typ=0; typ<IMG_LIMIT; typ++)
+ if(lo == img_ext[typ]) return typ;
+
+ // Test for alternatives
+ if(lo=="tiff") return IMG_TIFF;
+
+ // Unknown type
+ return -1;
+}
+
+
+bool write_image(const char *filename, const ByteRaster& img, int type)
+{
+ if( type<0 )
+ type = infer_image_type(filename);
+
+ switch( type )
+ {
+ case IMG_PNM: return write_pnm_image(filename, img);
+ case IMG_PNG: return write_png_image(filename, img);
+ case IMG_TIFF: return write_tiff_image(filename, img);
+ case IMG_JPEG: return write_jpeg_image(filename, img);
+ default: return false;
+ }
+}
+
+ByteRaster *read_image(const char *filename, int type)
+{
+ if( type<0 )
+ type = infer_image_type(filename);
+
+ switch( type )
+ {
+ case IMG_PNM: return read_pnm_image(filename);
+ case IMG_PNG: return read_png_image(filename);
+ case IMG_TIFF: return read_tiff_image(filename);
+ case IMG_JPEG: return read_jpeg_image(filename);
+ default: return NULL;
+ }
+}
+
+} // namespace gfx
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/script.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/script.cxx
new file mode 100644
index 00000000..5f1bdff2
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/script.cxx
@@ -0,0 +1,295 @@
+#include <gfx/script.h>
+#include <fstream>
+
+#if !defined(HAVE_SSTREAM) && defined(HAVE_STRSTREAM)
+# include <strstream>
+typedef istrstream istringstream;
+#else
+# include <sstream>
+#endif
+
+#ifdef HAVE_GZSTREAM
+# include <gzstream.h>
+#endif
+
+namespace gfx
+{
+
+using namespace std;
+
+
+////////////////////////////////////////////////////////////////////////
+//
+// CmdLine methods -- These implement all the basic line manipulations
+//
+
+string CmdLine::token_to_string(int i) const { return substr(tokens[i]); }
+
+string CmdLine::rest_to_string(int i) const
+{
+ return line.substr(tokens[i].first);
+}
+
+double CmdLine::token_to_double(int i) const
+ { string str = substr(tokens[i]); return atof(str.c_str()); }
+
+float CmdLine::token_to_float(int i) const
+ { string str = substr(tokens[i]); return atof(str.c_str()); }
+
+int CmdLine::token_to_int(int i) const
+ { string str = substr(tokens[i]); return atoi(str.c_str()); }
+
+string CmdLine::argline() const
+{
+ if( argcount() == 0 ) return "";
+
+ index_type start = tokens.front().first;
+ index_type end = tokens.back().second;
+ return substr(range_type(start, end));
+}
+
+int CmdLine::collect_as_strings(vector<string> &v, int offset) const
+{
+ for(int i=offset; i<tokens.size(); i++)
+ v.push_back( substr(tokens[i]) );
+ return tokens.size();
+}
+
+int CmdLine::collect_as_numbers(vector<double> &v, int offset) const
+{
+ for(int i=offset; i<tokens.size(); i++)
+ v.push_back(token_to_double(i));
+ return tokens.size();
+}
+
+int CmdLine::collect_as_numbers(vector<int> &v, int offset) const
+{
+ for(int i=offset; i<tokens.size(); i++)
+ v.push_back(token_to_int(i));
+ return tokens.size();
+}
+
+int CmdLine::collect_as_numbers(double *v, int size, int offset) const
+{
+ int i;
+ for(i=0; (i+offset)<tokens.size() && i<size; i++)
+ v[i] = token_to_double(i+offset);
+ return i;
+}
+
+int CmdLine::collect_as_numbers(float *v, int size, int offset) const
+{
+ int i;
+ for(i=0; (i+offset)<tokens.size() && i<size; i++)
+ v[i] = token_to_float(i+offset);
+ return i;
+}
+
+int CmdLine::collect_as_numbers(int *v, int size, int offset) const
+{
+ int i;
+ for(i=0; (i+offset)<tokens.size() && i<size; i++)
+ v[i] = token_to_int(i+offset);
+ return i;
+}
+
+////////////////////////////////////////////////////////////////////////
+//
+// CmdEnv methods -- Minimal interface supported by all environments
+//
+
+void CmdEnv::register_command(const std::string& name, CmdObject *fn)
+{
+ script_commands[name] = fn;
+}
+
+void CmdEnv::register_command(const std::string& name, CmdHandler proc)
+{
+ register_command(name, new CmdFunction(proc));
+}
+
+CmdObject *CmdEnv::lookup_command(const std::string& name)
+{
+ CmdTable::const_iterator iter = script_commands.find(name);
+
+ return iter!=script_commands.end() ? iter->second : NULL;
+}
+
+static int ignored(const CmdLine& line) { return SCRIPT_OK; }
+
+void CmdEnv::ignore_command(const std::string& name)
+{
+ register_command(name, ignored);
+}
+
+void CmdEnv::register_vocabulary(const std::string& name, CmdEnv *env)
+{
+ register_method(name, env, &CmdEnv::script_eval);
+}
+
+CmdEnv::CmdEnv()
+{
+ register_method("include", this, &CmdEnv::script_include);
+ register_method("ignore", this, &CmdEnv::script_ignore);
+ register_method("end", this, &CmdEnv::script_end);
+}
+
+CmdEnv::~CmdEnv()
+{
+ // Free all the CmdObject's held by script_commands
+ //
+ for(CmdTable::iterator i = script_commands.begin();
+ i != script_commands.end(); ++i)
+ {
+ CmdObject *obj = i->second;
+ delete obj;
+ }
+}
+
+int CmdEnv::script_include(const CmdLine& cmd)
+{
+ if( cmd.argcount() != 1 ) return SCRIPT_ERR_SYNTAX;
+
+ string filename = cmd.token_to_string(0);
+ return do_file(cmd.token_to_string(0));
+}
+
+int CmdEnv::script_ignore(const CmdLine& cmd)
+{
+ for(int i=0; i<cmd.argcount(); ++i)
+ {
+ string name = cmd.token_to_string(i);
+ ignore_command(name);
+ }
+
+ return SCRIPT_OK;
+}
+
+int CmdEnv::script_end(const CmdLine& cmd)
+{
+ return SCRIPT_END;
+}
+
+int CmdEnv::script_eval(const CmdLine& cmd)
+{
+ return do_line(cmd.argline());
+}
+
+void CmdEnv::begin_scope(CmdEnv *sub) { scopes.push_back(sub); }
+
+void CmdEnv::end_scope()
+{
+ if( scopes.size() > 0 )
+ {
+ CmdEnv *sub = scopes.back();
+ scopes.pop_back();
+ delete sub;
+ }
+}
+
+////////////////////////////////////////////////////////////////////////
+//
+// Toplevel functions -- extract and execute scripting commands
+//
+
+int CmdEnv::do_line(const string &line)
+{
+ CmdEnv& env = *this;
+
+ // Pass this line off to the sub-scope (if any)
+ if( scopes.size() > 0 && scopes.back() )
+ {
+ int rc = scopes.back()->do_line(line);
+ if( rc==SCRIPT_END )
+ {
+ end_scope();
+ rc = SCRIPT_OK;
+ }
+ return rc;
+ }
+
+ const char *ws = " \t\n\r";
+ string::size_type start, end;
+
+ // First, process the initial (command) token
+ start = line.find_first_not_of(ws);
+
+ // Only continue processing if line is a non-empty, non-comment line
+ if( start!=string::npos && line[start]!='#' )
+ {
+ end = line.find_first_of(ws, start);
+ string op = line.substr(start, end-start);
+
+ CmdObject *fn = env.lookup_command(op);
+ if( !fn ) return SCRIPT_ERR_UNDEF;
+
+ CmdLine argv(line);
+ argv.op = CmdLine::range_type(start, end);
+
+ while(1)
+ {
+ start = line.find_first_not_of(ws, end);
+ if( start==string::npos ) break;
+ end = line.find_first_of(ws, start);
+
+ argv.tokens.push_back( CmdLine::range_type(start, end) );
+ }
+
+ return (*fn)(argv);
+ }
+
+ return SCRIPT_OK;
+}
+
+int CmdEnv::do_stream(istream &in)
+{
+ string line;
+
+ while( !in.eof() )
+ {
+ getline(in, line);
+ if( in.fail() ) break;
+
+ int rc = do_line(line);
+ if( rc != SCRIPT_OK )
+ {
+ cerr << "Script Error: " << line << endl;
+ return rc;
+ }
+ }
+
+ return SCRIPT_OK;
+}
+
+int CmdEnv::do_file(const std::string& filename)
+{
+#ifdef HAVE_GZSTREAM
+ if( !filename.compare(filename.size()-3, 3, ".gz") ||
+ !filename.compare(filename.size()-2, 2, ".z") ||
+ !filename.compare(filename.size()-2, 2, ".Z") )
+ {
+ igzstream in(filename.c_str());
+ if( in.good() ) return do_stream(in);
+ else return SCRIPT_ERR_NOFILE;
+ }
+ else
+ {
+ ifstream in(filename.c_str());
+ if( in.good() ) return do_stream(in);
+ else return SCRIPT_ERR_NOFILE;
+ }
+#else
+ ifstream in(filename.c_str());
+ if( in.good() ) return do_stream(in);
+ else return SCRIPT_ERR_NOFILE;
+#endif
+}
+
+int CmdEnv::do_string(const std::string& str)
+{
+ istringstream in(str.c_str());
+ if( in.good() ) return CmdEnv::do_stream(in);
+ else return SCRIPT_ERR_NOFILE;
+}
+
+} // namespace gfx
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/symmat2.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/symmat2.cxx
new file mode 100644
index 00000000..df923f33
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/symmat2.cxx
@@ -0,0 +1,61 @@
+#include <gfx/gfx.h>
+#include <gfx/symmat2.h>
+
+namespace gfx
+{
+
+SymMat2 SymMat2::I()
+{
+ SymMat2 A;
+ A(0,0) = A(1,1) = 1;
+ return A;
+}
+
+Mat2 SymMat2::fullmatrix() const
+{
+ Mat2 A;
+
+ for(int i=0; i<A.dim(); i++)
+ for(int j=0; j<A.dim(); j++)
+ A(i, j) = (*this)(i,j);
+
+ return A;
+}
+
+SymMat2 operator*(const SymMat2& n, const SymMat2& m)
+{
+ SymMat2 A;
+ for(int i=0; i<2; i++) for(int j=i; j<2; j++)
+ A(i,j) = n.row(i)*m.col(j);
+ return A;
+}
+
+std::ostream &operator<<(std::ostream &out, const SymMat2& M)
+{
+ for(int i=0; i<M.dim(); i++)
+ {
+ for(int j=0; j<M.dim(); j++)
+ out << M(i, j) << " ";
+ out << std::endl;
+ }
+
+ return out;
+}
+
+SymMat2 SymMat2::outer_product(const Vec2& v)
+{
+ SymMat2 A;
+
+ for(int i=0; i<A.dim(); i++)
+ for(int j=i; j<A.dim(); j++)
+ A(i, j) = v[i]*v[j];
+
+ return A;
+}
+
+double invert(Mat2& m_inv, const SymMat2& m)
+{
+ return invert(m_inv, m.fullmatrix());
+}
+
+} // namespace gfx
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/symmat3.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/symmat3.cxx
new file mode 100644
index 00000000..36c684e3
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/symmat3.cxx
@@ -0,0 +1,61 @@
+#include <gfx/gfx.h>
+#include <gfx/symmat3.h>
+
+namespace gfx
+{
+
+SymMat3 SymMat3::I()
+{
+ SymMat3 A;
+ A(0,0) = A(1,1) = A(2,2) = 1;
+ return A;
+}
+
+Mat3 SymMat3::fullmatrix() const
+{
+ Mat3 A;
+
+ for(int i=0; i<A.dim(); i++)
+ for(int j=0; j<A.dim(); j++)
+ A(i, j) = (*this)(i,j);
+
+ return A;
+}
+
+SymMat3 operator*(const SymMat3& n, const SymMat3& m)
+{
+ SymMat3 A;
+ for(int i=0; i<3; i++) for(int j=i; j<3; j++)
+ A(i,j) = n.row(i)*m.col(j);
+ return A;
+}
+
+std::ostream &operator<<(std::ostream &out, const SymMat3& M)
+{
+ for(int i=0; i<M.dim(); i++)
+ {
+ for(int j=0; j<M.dim(); j++)
+ out << M(i, j) << " ";
+ out << std::endl;
+ }
+
+ return out;
+}
+
+SymMat3 SymMat3::outer_product(const Vec3& v)
+{
+ SymMat3 A;
+
+ for(int i=0; i<A.dim(); i++)
+ for(int j=i; j<A.dim(); j++)
+ A(i, j) = v[i]*v[j];
+
+ return A;
+}
+
+double invert(Mat3& m_inv, const SymMat3& m)
+{
+ return invert(m_inv, m.fullmatrix());
+}
+
+} // namespace gfx
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/symmat4.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/symmat4.cxx
new file mode 100644
index 00000000..d8483017
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/symmat4.cxx
@@ -0,0 +1,52 @@
+/************************************************************************
+
+ 4X4 Symmetric Matrix class
+
+ $Id: symmat4.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+#include <gfx/symmat4.h>
+
+namespace gfx
+{
+
+SymMat4 SymMat4::I()
+{
+ SymMat4 A;
+ A(0,0) = A(1,1) = A(2,2) = A(3,3) = 1;
+ return A;
+}
+
+Mat4 SymMat4::fullmatrix() const
+{
+ Mat4 temp;
+ for (int i=0; i<4; i++)
+ for (int j=0; j<4; j++)
+ temp(i,j) = (*this) (i,j);
+ return temp;
+}
+
+SymMat4 SymMat4::outer_product(const Vec4& v)
+{
+ SymMat4 tmp;
+ for(int i=0; i<4; i++)
+ for(int j=0; j<4; j++)
+ tmp(i,j)=v[i]*v[j];
+ return tmp;
+}
+
+SymMat4 operator* (const SymMat4& n, const SymMat4& m)
+{
+ SymMat4 temp;
+ for (int i=0; i<4; i++)
+ for(int j=0; j<4; j++)
+ temp(i,j)=n.row(i) * m.col(j);
+ return temp;
+}
+
+double invert(Mat4& m_inv, const SymMat4& m)
+{
+ return invert(m_inv, m.fullmatrix());
+}
+
+} // namespace gfx
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/time.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/time.cxx
new file mode 100644
index 00000000..cbbea1c5
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/time.cxx
@@ -0,0 +1,86 @@
+/************************************************************************
+
+ Routines for measuring time.
+
+ $Id: time.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+
+#if defined(WIN32)
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+namespace gfx
+{
+// Only Windows NT supports getting proper time usage information.
+// In Windows 95, we have to settle for measuring real time.
+double get_cpu_time()
+{
+ FILETIME start, end, kernel, user;
+
+ if( !GetThreadTimes(GetCurrentThread(), &start, &end, &kernel, &user) )
+ {
+ // We're running under Windows 95 instead of NT.
+ // Just get the current time and be done with it.
+ SYSTEMTIME now;
+ GetSystemTime(&now);
+ SystemTimeToFileTime(&now, &user);
+ }
+
+ // Convert into something we can do math on
+ LARGE_INTEGER i;
+ i.LowPart = user.dwLowDateTime;
+ i.HighPart = user.dwHighDateTime;
+
+#ifdef __GNUC__
+
+ // The Win32 headers shipped with GCC don't define the QuadPart
+ // accessor for the LARGE_INTEGER type. So we have to build it
+ // directly.
+ long long quad = i.HighPart;
+ quad = (quad << 32) + i.LowPart;
+ return (double)quad / 1e7;
+#else
+ // Convert to seconds and return
+ return (double)(i.QuadPart) / 1e7;
+#endif
+}
+}
+
+#elif defined(HAVE_GETRUSAGE)
+#include <sys/time.h>
+#include <sys/resource.h>
+
+namespace gfx
+{
+double get_cpu_time()
+{
+ struct rusage t;
+
+ getrusage(RUSAGE_SELF, &t);
+
+ return (double)t.ru_utime.tv_sec + (double)t.ru_utime.tv_usec/1000000;
+}
+}
+
+#elif defined(HAVE_TIMES)
+
+namespace gfx
+{
+double get_cpu_time()
+{
+ struct tms t;
+
+ times(&t);
+
+ return (double)(t.tms_utime) / (double)CLK_TCK;
+}
+}
+
+#else
+
+#error "No supported timing mechanism available."
+
+#endif
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/trackball.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/trackball.cxx
new file mode 100644
index 00000000..40615660
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/trackball.cxx
@@ -0,0 +1,153 @@
+/************************************************************************
+
+ Virtual Trackball for manipulating objects on the screen.
+
+ This code is based on the virtual trackball mechanism developed by
+ Gavin Bell of Silicon Graphics.
+
+ $Id: trackball.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+#include <gfx/gl.h>
+#include <gfx/trackball.h>
+
+namespace gfx
+{
+
+static
+float proj_to_sphere(float r, float x, float y)
+{
+ // This is a magic number taken from the SGI trackball.
+ //
+ const float MAGIC_RLIMIT = 0.70710678118654752440f;
+
+ // Project (x,y) onto a sphere of radius r or a hyperbolic sheet
+ // if the point is far enough away from the origin.
+ //
+ float d = sqrt(x*x + y*y);
+ if (d < r * MAGIC_RLIMIT )
+ {
+ // Inside sphere
+ return sqrt(r*r - d*d);
+ }
+ else
+ {
+ // On hyperbola
+ float t = r * MAGIC_RLIMIT;
+ return t*t / d;
+ }
+}
+
+//
+// This is the core routine that actually simulates the action of the
+// trackball. It projects the given coordinates onto the trackball
+// surface, and computes an appropriate rotation.
+//
+// NOTE: This uses the combined spherical/hyperbolic trackball surface
+// used in the SGI trackball.
+//
+void trackball(Quat& q, float p1x, float p1y, float p2x, float p2y)
+{
+ if (p1x == p2x && p1y == p2y)
+ {
+ q = Quat::ident();
+ return;
+ }
+
+ // This is a magic number taken from the SGI trackball source.
+ // Here is the original explanation of this constant:
+ //
+ // This size should really be based on the distance from the
+ // center of rotation to the point on the object underneath
+ // the mouse. That point would then track the mouse as
+ // closely as possible. This is a simple example, though, so
+ // that is left as an Exercise for the Programmer.
+ //
+ const float TRACKBALLSIZE = 0.8f;
+
+ // Project the window coordinates onto the trackball surface.
+ //
+ Vec3 p1(p1x,p1y,proj_to_sphere(TRACKBALLSIZE,p1x,p1y));
+ Vec3 p2(p2x,p2y,proj_to_sphere(TRACKBALLSIZE,p2x,p2y));
+
+ // And how much do we rotate?
+ //
+ float t = norm(p1-p2) / (2.0*TRACKBALLSIZE);
+ if (t > 1.0) t = 1.0;
+ if (t < -1.0) t = -1.0;
+
+ // Convert this axis/angle rotation to a quaternion.
+ //
+ q = axis_to_quat(p2^p1, 2.0*asin(t));
+}
+
+static
+void add_quats(const Quat& q1, const Quat& q2, Quat& dest)
+{
+ dest = q2*q1;
+ unitize(dest);
+}
+
+////////////////////////////////////////////////////////////////////////
+//
+// Encapsulate the standard interface of the trackball to simplify
+// its use in most applications.
+//
+
+Trackball::Trackball()
+{
+}
+
+void Trackball::update_animation()
+{
+ add_quats(lastquat, curquat, curquat);
+}
+
+bool Trackball::mouse_up(int *where, int which)
+{
+ return false;
+}
+
+bool Trackball::mouse_down(int *where, int which)
+{
+ if( which==1 )
+ lastquat = Quat::ident();
+
+ return false;
+}
+
+bool Trackball::mouse_drag(int *where, int *last, int which)
+{
+ float vp[4];
+ glGetFloatv(GL_VIEWPORT, vp);
+ float W=vp[2], H=vp[3];
+
+ float diam = 2*radius;
+
+ if( which==1 )
+ {
+ trackball(lastquat,
+ (2.0 * last[0] - W)/W,
+ (H - 2.0 * last[1])/H,
+ (2.0 * where[0] - W)/W,
+ (H - 2.0 * where[1])/H);
+ add_quats(lastquat, curquat, curquat);
+ }
+ else if( which==2 )
+ {
+ trans[0] += diam * (where[0] - last[0]) / W;
+ trans[1] += diam * (last[1] - where[1]) / H;
+ }
+ else if( which==3 )
+ {
+ trans[2] += 0.02*diam*(where[1] - last[1]);
+ }
+ else
+ return false;
+
+ return true;
+}
+
+} // namespace gfx
diff --git a/debian/fireflies/fireflies-2.08/libgfx/src/wintools.cxx b/debian/fireflies/fireflies-2.08/libgfx/src/wintools.cxx
new file mode 100644
index 00000000..dc4fae15
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/src/wintools.cxx
@@ -0,0 +1,88 @@
+/************************************************************************
+
+ Support code for handling various tasks under Win32
+
+ $Id: wintools.cxx 427 2004-09-27 04:45:31Z garland $
+
+ ************************************************************************/
+
+#include <gfx/win/wintools.h>
+
+namespace gfx
+{
+
+HGLRC create_glcontext(HDC dc)
+{
+ HGLRC context = wglCreateContext(dc);
+ if( context )
+ {
+ if( !wglMakeCurrent(dc, context) )
+ {
+ // Destroy context if it fails to bind
+ wglDeleteContext(context);
+ context = NULL;
+ }
+ }
+
+ return context;
+}
+
+int set_pixel_format(HDC dc)
+{
+ PIXELFORMATDESCRIPTOR pixelDesc;
+
+ //
+ // These are the important fields of the PFD
+ //
+ pixelDesc.nSize = sizeof(PIXELFORMATDESCRIPTOR);
+ pixelDesc.nVersion = 1;
+
+ pixelDesc.dwFlags =
+ PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL |
+ PFD_DOUBLEBUFFER | PFD_STEREO_DONTCARE;
+ pixelDesc.iPixelType = PFD_TYPE_RGBA;
+ pixelDesc.cColorBits = 24;
+ pixelDesc.iLayerType = PFD_MAIN_PLANE;
+
+ //
+ // According to the docs, these can be/are ignored.
+ //
+ pixelDesc.cRedBits = 8;
+ pixelDesc.cRedShift = 16;
+ pixelDesc.cGreenBits = 8;
+ pixelDesc.cGreenShift = 8;
+ pixelDesc.cBlueBits = 8;
+ pixelDesc.cBlueShift = 0;
+ pixelDesc.cAlphaBits = 0;
+ pixelDesc.cAlphaShift = 0;
+ pixelDesc.cAccumBits = 0;
+ pixelDesc.cAccumRedBits = 0;
+ pixelDesc.cAccumGreenBits = 0;
+ pixelDesc.cAccumBlueBits = 0;
+ pixelDesc.cAccumAlphaBits = 0;
+ pixelDesc.cDepthBits = 32;
+ pixelDesc.cStencilBits = 0;
+ pixelDesc.cAuxBuffers = 0;
+ pixelDesc.bReserved = 0;
+ pixelDesc.dwLayerMask = 0;
+ pixelDesc.dwVisibleMask = 0;
+ pixelDesc.dwDamageMask = 0;
+
+
+ int pixel_format = ChoosePixelFormat(dc, &pixelDesc);
+ if( !pixel_format )
+ {
+ // Try and guess a decent default pixel format
+ pixel_format = 1;
+ if( !DescribePixelFormat(dc, pixel_format,
+ sizeof(PIXELFORMATDESCRIPTOR), &pixelDesc) )
+ return NULL;
+ }
+
+ if( !SetPixelFormat(dc, pixel_format, &pixelDesc) )
+ return NULL;
+
+ return pixel_format;
+}
+
+} // namespace gfx
diff --git a/debian/fireflies/fireflies-2.08/libgfx/tests/Makefile b/debian/fireflies/fireflies-2.08/libgfx/tests/Makefile
new file mode 100644
index 00000000..f3386fab
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/tests/Makefile
@@ -0,0 +1,42 @@
+# Include the 'gfx-config' file to get all the correct build settings
+include ../gfx-config
+
+SRCS = t-vec.cxx t-img.cxx t-gui.cxx t-glimg.cxx t-script.cxx t-glext.cxx
+ALL = $(SRCS:.cxx=)
+
+all: $(ALL)
+
+t-vec: t-vec.cxx
+ $(CXX) -o $@ $^ $(CXXFLAGS) $(LDFLAGS) -lgfx -lm
+
+t-script: t-script.cxx
+ $(CXX) -o $@ $^ $(CXXFLAGS) $(LDFLAGS) -lgfx -lm
+
+t-img: t-img.cxx
+ $(CXX) -o $@ $^ $(CXXFLAGS) $(LDFLAGS) -lgfx $(IMG_LIBS) -lm
+
+#
+# GUI programs should make the appropriate post-build call to
+# $(FLTKCONFIG). On most platforms, this does nothing, but under
+# Mac OS X, it is essential to make GUI programs launch correctly.
+#
+
+t-gui: t-gui.cxx
+ $(CXX) -o $@ $^ $(CXXFLAGS) $(LDFLAGS) -lgfx $(GUI_LIBS) -lm
+ $(FLTKCONFIG) --post $@
+
+t-glext: t-glext.cxx
+ $(CXX) -o $@ $^ $(CXXFLAGS) $(LDFLAGS) -lgfx $(GUI_LIBS) -lm
+ $(FLTKCONFIG) --post $@
+
+t-glimg: t-glimg.cxx
+ $(CXX) -o $@ $^ $(CXXFLAGS) $(LDFLAGS) -lgfx $(GUI_LIBS) -lm
+ $(FLTKCONFIG) --post $@
+
+# This is just a standard mechanism to correctly track the dependencies
+# of the source files.
+#
+depend:
+ $(CXX_DEPEND) $(SRCS) > Makefile.dep
+
+-include Makefile.dep
diff --git a/debian/fireflies/fireflies-2.08/libgfx/tests/t-glext.cxx b/debian/fireflies/fireflies-2.08/libgfx/tests/t-glext.cxx
new file mode 100644
index 00000000..82b40000
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/tests/t-glext.cxx
@@ -0,0 +1,82 @@
+/************************************************************************
+
+ Test the availability of various OpenGL extensions
+
+ by Michael Garland, 2001.
+
+ $Id: t-glext.cxx 426 2004-09-27 04:34:55Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gui.h>
+#include <gfx/glext.h>
+#include <string>
+#include <fstream>
+
+using namespace std;
+
+class GUI : public MxGUI
+{
+public:
+
+ virtual void setup_for_drawing();
+};
+
+GUI gui;
+
+static void dump_string(ostream &out, const string& str)
+{
+ const char *ws = " \t\n\r";
+ string::size_type start, end;
+
+ start = 0;
+ end = str.find_first_of(ws, start);
+
+ while( end!=string::npos )
+ {
+ out << " " << str.substr(start, end-start) << endl;
+ start = str.find_first_not_of(ws, end);
+ end = str.find_first_of(ws, start);
+ }
+}
+
+void GUI::setup_for_drawing()
+{
+ ofstream log("glext.txt");
+
+ string gl_extensions = (char *)glGetString(GL_EXTENSIONS);
+
+ log << "OpenGL extensions" << endl
+ << "-----------------" << endl;
+ dump_string(log, gl_extensions);
+ log << endl << endl;
+
+
+#ifdef HAVE_GL_WGLEXT_H
+ PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB =
+ (PFNWGLGETEXTENSIONSSTRINGARBPROC)
+ wglGetProcAddress("wglGetExtensionsStringARB");
+
+ if( !wglGetExtensionsStringARB )
+ {
+ log << "Couldn't find wglGetExtensionsStringARB." << endl;
+ exit(-1);
+ }
+ else
+ {
+ string wgl_extensions = wglGetExtensionsStringARB(wglGetCurrentDC());
+
+ log << "WGL extensions" << endl
+ << "--------------" << endl;
+ dump_string(log, wgl_extensions);
+ }
+#endif
+
+ exit(0);
+}
+
+int main(int argc, char **argv)
+{
+ gui.initialize(argc, argv);
+ return gui.run();
+}
diff --git a/debian/fireflies/fireflies-2.08/libgfx/tests/t-glimg.cxx b/debian/fireflies/fireflies-2.08/libgfx/tests/t-glimg.cxx
new file mode 100644
index 00000000..706441c2
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/tests/t-glimg.cxx
@@ -0,0 +1,149 @@
+/************************************************************************
+
+ This is a very simplistic image viewer. It uses libgfx routines to
+ read a set of image files specified on the command line. These images
+ are then displayed in a window using OpenGL image operations.
+
+ by Michael Garland, 2000.
+
+ $Id: t-glimg.cxx 426 2004-09-27 04:34:55Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+#include <gfx/gui.h>
+#include <gfx/raster.h>
+
+#include <string>
+#include <vector>
+#include <FL/filename.H>
+
+class GUI : public MxGUI
+{
+public:
+ std::vector<ByteRaster *> images;
+ std::vector<std::string> image_names;
+ int current_image;
+
+ virtual ~GUI();
+
+ virtual void update_animation();
+ virtual void cmdline_file(const char *file);
+ virtual void setup_for_drawing();
+ virtual void draw_contents();
+
+ void set_image(int i);
+};
+
+GUI gui;
+
+GUI::~GUI()
+{
+ for(int i=0; i<images.size(); i++)
+ if( images[i] )
+ delete images[i];
+}
+
+static void cb_image(Fl_Widget *, long i)
+ { gui.set_image(i); gui.canvas->redraw(); }
+
+void GUI::set_image(int i)
+{
+ current_image = i;
+
+ if(current_image<0 || current_image>=images.size()) return;
+ ByteRaster *img = images[current_image];
+
+ int width = img->width();
+ int height = img->height();
+
+ gui.status(image_names[current_image].c_str());
+
+ if( width!=canvas->w() || height!=canvas->h() )
+ {
+ unlock_size();
+ resize_canvas(width, height);
+ lock_size();
+ }
+}
+
+void GUI::cmdline_file(const char *namestring)
+{
+ if(!namestring) return; // Don't support reading from stdin
+
+ static std::string img_menu("&Images/");
+ std::string filename(fl_filename_name(namestring)); // Strip directories
+
+ ByteRaster *img = read_image(namestring);
+ if( img )
+ {
+ int id = images.size();
+ images.push_back(img);
+ image_names.push_back(namestring);
+
+ int key = id<9 ? FL_CTRL+'1'+id : 0;
+
+
+ gui.menu_bar->add((img_menu+filename).c_str(), key,
+ (Fl_Callback *)cb_image, (void *)id, FL_MENU_RADIO);
+ }
+}
+
+void GUI::update_animation()
+{
+ set_image((current_image+1) % images.size());
+}
+
+void GUI::setup_for_drawing()
+{
+ glClearColor(0.9f, 0.0f, 0.0f, 0.0f);
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_LIGHTING);
+ glPixelZoom(1.0f, -1.0f);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+}
+
+static void draw_image(const ByteRaster *img)
+{
+ GLenum format;
+ if(img->channels()==1) format = GL_LUMINANCE;
+ else if(img->channels()==3) format = GL_RGB;
+ else if(img->channels()==4) format = GL_RGBA;
+ else return; // Don't draw unsupported formats
+
+ glPushAttrib(GL_PIXEL_MODE_BIT);
+ glRasterPos2f(0, img->height());
+ glDrawPixels(img->width(), img->height(),
+ format, GL_UNSIGNED_BYTE, img->head());
+ glPopAttrib();
+
+}
+
+void GUI::draw_contents()
+{
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ if(current_image<0 || current_image>=images.size()) return;
+ ByteRaster *img = images[current_image];
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluOrtho2D(0, img->width(), 0, img->height());
+
+ draw_image(img);
+}
+
+int main(int argc, char **argv)
+{
+ gui.initialize(argc, argv);
+ if(gui.images.size() == 0) return 0; // Exit if no images read
+
+ gui.title("OpenGL Image Viewer");
+
+ gui.default_fps = 1.0f;
+ gui.set_image(0);
+
+ return gui.run();
+}
diff --git a/debian/fireflies/fireflies-2.08/libgfx/tests/t-gui.cxx b/debian/fireflies/fireflies-2.08/libgfx/tests/t-gui.cxx
new file mode 100644
index 00000000..296fe3b2
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/tests/t-gui.cxx
@@ -0,0 +1,130 @@
+/************************************************************************
+
+ This is a simple program which demonstrates the use of the MxGUI
+ minimalist GUI framework. The application presents a window with a
+ rotating square that can be moved around with the mouse.
+
+ by Michael Garland, 1999.
+
+ $Id: t-gui.cxx 400 2004-02-16 16:31:35Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+#include <gfx/gui.h>
+#include <gfx/gltools.h>
+
+class GUI : public MxGUI
+{
+public:
+ float angle, opt_theta, center[2];
+ bool dragging;
+
+public:
+ virtual void setup_for_drawing();
+ virtual void draw_contents();
+ virtual void update_animation();
+
+ virtual bool mouse_down(int *where, int which);
+ virtual bool mouse_up(int *where, int which);
+ virtual bool mouse_drag(int *where, int *last, int which);
+};
+
+GUI gui;
+
+void GUI::setup_for_drawing()
+{
+ glClearColor(0.65f, 0.65f, 0.65f, 0.0f);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glMatrixMode(GL_PROJECTION);
+ gluOrtho2D(-1.0, 1.0, -1.0, 1.0);
+}
+
+void GUI::draw_contents()
+{
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glLoadIdentity();
+
+ glColor3f(0.0, 0.0, 0.0);
+ glBegin(GL_LINES);
+ glVertex2f(-1.0, 0.0);
+ glVertex2f(1.0, 0.0);
+ glVertex2f(0.0, -1.0);
+ glVertex2f(0.0, 1.0);
+ glEnd();
+
+ glTranslatef(center[0], center[1], 0);
+ glRotatef(angle, 0, 0, 1);
+
+ glEnable(GL_BLEND);
+ glColor4d(0.8, 0.15, 0.15, 0.85);
+ glBegin(dragging?GL_LINE_LOOP:GL_POLYGON);
+ glBegin(GL_POLYGON);
+ glVertex2f(-0.5, -0.5);
+ glVertex2f(-0.5, 0.5);
+ glVertex2f(0.5, 0.5);
+ glVertex2f(0.5, -0.5);
+ glEnd();
+ glDisable(GL_BLEND);
+
+ glPopMatrix();
+}
+
+void GUI::update_animation()
+{
+ angle += opt_theta;
+}
+
+static
+bool center_on_click(float *ctr, int *where)
+{
+ double world[3];
+
+ unproject_pixel(where, world);
+ ctr[0] = (float)world[0];
+ ctr[1] = (float)world[1];
+
+ return true;
+}
+
+bool GUI::mouse_down(int *where, int which)
+{
+ status("Clicked mouse %d at %d,%d", which, where[0], where[1]);
+ if( which==1 )
+ {
+ dragging = true;
+ return center_on_click(center, where);
+ }
+ else return false;
+}
+
+bool GUI::mouse_up(int *where, int which)
+{
+ status("Released mouse %d at %d,%d", which, where[0], where[1]);
+ dragging = false;
+ return (which==1);
+}
+
+bool GUI::mouse_drag(int *where, int *last, int which)
+{
+ if( which==1 )
+ return center_on_click(center, where);
+ else
+ return false;
+}
+
+int main(int argc, char **argv)
+{
+ gui.opt_theta = 10.0f;
+ gui.angle = 0.0f;
+ gui.dragging = false;
+ gui.center[0] = gui.center[1] = 0.0f;
+
+ gui.initialize(argc, argv);
+ gui.toplevel->label("Simple GUI Example");
+ return gui.run();
+}
diff --git a/debian/fireflies/fireflies-2.08/libgfx/tests/t-img.cxx b/debian/fireflies/fireflies-2.08/libgfx/tests/t-img.cxx
new file mode 100644
index 00000000..113cea8c
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/tests/t-img.cxx
@@ -0,0 +1,82 @@
+/************************************************************************
+
+ The images produced by this test are checkboard gradients. They
+ ramp from black in the upper left corner to full color in the lower
+ right corner.
+
+ by Michael Garland, 1999.
+
+ $Id: t-img.cxx 426 2004-09-27 04:34:55Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+#include <gfx/raster.h>
+
+static
+void grayscale_test()
+{
+ ByteRaster img(256, 256, 1);
+
+ int i, j, c;
+
+ for(i=0; i<img.height(); i++) for(j=0; j<img.width(); j++)
+ {
+ c = ((((i&0x8)==0)^((j&0x8))==0))*(i+j)/2;
+ img.pixel(j,i)[0] = c;
+ }
+
+ write_pnm_image("chex1.pgm", img);
+ write_tiff_image("chex1.tif", img);
+ write_png_image("chex1.png", img);
+ write_jpeg_image("chex1.jpg", img);
+
+ ByteRaster *pgm = read_pnm_image("chex1.pgm");
+ ByteRaster *tif = read_tiff_image("chex1.tif");
+ ByteRaster *png = read_png_image("chex1.png");
+ ByteRaster *jpg = read_jpeg_image("chex1.jpg");
+
+ if( pgm ) write_pnm_image("chex1-dup.pgm", *pgm);
+ if( tif ) write_tiff_image("chex1-dup.tif", *tif);
+ if( png ) write_png_image("chex1-dup.png", *png);
+ if( jpg ) write_jpeg_image("chex1-dup.jpg", *jpg);
+}
+
+static
+void rgb_test()
+{
+ ByteRaster img(256, 256, 3);
+
+ int i, j, c;
+
+ for(i=0; i<img.height(); i++) for(j=0; j<img.width(); j++)
+ {
+ c = ((((i&0x8)==0)^((j&0x8))==0))*(i+j)/2;
+ img.pixel(j,i)[0] = c;
+ img.pixel(j,i)[1] = c/2;
+ img.pixel(j,i)[2] = c/4;
+ }
+
+ write_pnm_image("chex3.ppm", img);
+ write_tiff_image("chex3.tif", img);
+ write_png_image("chex3.png", img);
+ write_jpeg_image("chex3.jpg", img);
+
+ ByteRaster *ppm = read_pnm_image("chex3.ppm");
+ ByteRaster *tif = read_tiff_image("chex3.tif");
+ ByteRaster *png = read_png_image("chex3.png");
+ ByteRaster *jpg = read_jpeg_image("chex3.jpg");
+
+ if( ppm ) write_pnm_image("chex3-dup.ppm", *ppm);
+ if( tif ) write_tiff_image("chex3-dup.tif", *tif);
+ if( png ) write_png_image("chex3-dup.png", *png);
+ if( jpg ) write_jpeg_image("chex3-dup.jpg", *jpg);
+}
+
+int main()
+{
+ grayscale_test();
+ rgb_test();
+
+ return 0;
+}
diff --git a/debian/fireflies/fireflies-2.08/libgfx/tests/t-script.cxx b/debian/fireflies/fireflies-2.08/libgfx/tests/t-script.cxx
new file mode 100644
index 00000000..42b9ad83
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/tests/t-script.cxx
@@ -0,0 +1,74 @@
+/************************************************************************
+
+ Test the libgfx scripting facility.
+
+ by Michael Garland, 2000.
+
+ $Id: t-script.cxx 426 2004-09-27 04:34:55Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+#include <gfx/script.h>
+#include <gfx/vec3.h>
+
+using namespace std;
+
+// usage: add <x>*
+// Adds all numbers listed on the line and prints the result
+//
+// usage: avg <x>*
+// Averages all numbers listed on the line and prints the result
+//
+int proc_add(const CmdLine &cmd)
+{
+ std::vector<double> values;
+ double sum = 0.0;
+
+ cmd.collect_as_numbers(values);
+ std::vector<double>::size_type count;
+ for(count=0; count<values.size(); count++)
+ sum += values[count];
+
+ if( cmd.opname() == "avg" && count>0 )
+ sum /= (double)count;
+
+ cout << sum << endl;
+ return SCRIPT_OK;
+}
+
+// usage: vec3 <x> <y> <z>
+// Constructs a 3-vector and prints the result
+int proc_vec3(const CmdLine &cmd)
+{
+ if( cmd.argcount() != 3 ) return SCRIPT_ERR_SYNTAX;
+
+ Vec3 v;
+ cmd.collect_as_numbers(v, 3);
+
+ cout << v << endl;
+ return SCRIPT_OK;
+}
+
+// usage: echo <msg>
+// Prints all the text following the command name verbatim
+int proc_echo(const CmdLine &cmd)
+{
+ cout << cmd.argline() << endl;
+ return SCRIPT_OK;
+}
+
+int main(int argc, char *argv[])
+{
+ CmdEnv env;
+
+ env.register_command("add", proc_add);
+ env.register_command("avg", proc_add);
+ env.register_command("echo", proc_echo);
+ env.register_command("vec3", proc_vec3);
+
+ for(int i=1; i<argc; i++)
+ env.do_file(argv[i]);
+
+ return 0;
+}
diff --git a/debian/fireflies/fireflies-2.08/libgfx/tests/t-vec.cxx b/debian/fireflies/fireflies-2.08/libgfx/tests/t-vec.cxx
new file mode 100644
index 00000000..434c97d3
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/tests/t-vec.cxx
@@ -0,0 +1,78 @@
+/************************************************************************
+
+ Test various vector math facilities provided by libgfx.
+
+ by Michael Garland, 2000.
+
+ $Id: t-vec.cxx 426 2004-09-27 04:34:55Z garland $
+
+ ************************************************************************/
+
+#include <gfx/gfx.h>
+
+#include <gfx/vec2.h>
+#include <gfx/vec3.h>
+#include <gfx/vec4.h>
+#include <gfx/intvec.h>
+
+using namespace std;
+
+void test_intvec()
+{
+ cout << "Testing IntVec types" << endl;
+
+ class Normal : public IntVec<short, SHRT_MAX, 3>
+ {
+ public:
+ Normal(const Vec3& v) { (*this) = v; }
+
+ Vec3 unpack() const { return Vec3((*this)[0],(*this)[1],(*this)[2]); }
+ void pack(const Vec3& v)
+ { set(0, v[0]); set(1, v[1]); set(2, v[2]); }
+
+ Normal& operator=(const Vec3& v) { pack(v); return *this; }
+ };
+
+ Normal n = Vec3(1.0, 0.4, -1.0);
+ cout << " n = " << n.unpack() << endl;
+
+ n.set(0, -1.0); n.set(1, 0.4); n.set(2, 1);
+ cout << " n = " << n[0] << " " << n[1] << " " << n[2] << endl;
+
+
+ typedef IntVec3<unsigned char, UCHAR_MAX> byteColor;
+ byteColor rgb(0.8, 0.2, 0.2);
+ cout << " rgb = " << rgb.unpack() << endl;
+}
+
+template<class Vec>
+void test_vector()
+{
+ Vec u = 0;
+ Vec v = 0;
+
+ u[0] = 1;
+ v[1] = 1;
+
+ Vec x = u * 2.0;
+ Vec y = v / 2.0;
+
+ cout << " x = " << x << endl;
+ cout << " y = " << y << endl;
+}
+
+int main()
+{
+ cout << "+ Testing class Vec2" << endl;
+ test_vector<Vec2>();
+
+ cout << "+ Testing class Vec3" << endl;
+ test_vector<Vec3>();
+
+ cout << "+ Testing class Vec4" << endl;
+ test_vector<Vec4>();
+
+ test_intvec();
+
+ return 0;
+}
diff --git a/debian/fireflies/fireflies-2.08/libgfx/tests/test1.sc b/debian/fireflies/fireflies-2.08/libgfx/tests/test1.sc
new file mode 100644
index 00000000..489f8cb5
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/tests/test1.sc
@@ -0,0 +1,17 @@
+# This is a test script meant to be fed to t-script. It is not meant as an
+# exhaustive test, but mainly as a demonstration.
+#
+# $Id: test1.sc 170 2000-09-06 21:43:25Z garland $
+#
+
+echo The following sum should be 15
+add 1 2 3 4 5
+
+echo
+echo The following average should be 3.5
+avg 3 8 2 1
+
+echo
+echo The following is the vector [1 0 0]
+vec3 1 0 0
+
diff --git a/debian/fireflies/fireflies-2.08/libgfx/vc6/libgfx.dsw b/debian/fireflies/fireflies-2.08/libgfx/vc6/libgfx.dsw
new file mode 100644
index 00000000..3e8d4588
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/vc6/libgfx.dsw
@@ -0,0 +1,89 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "libgfx"=.\libgfx\libgfx.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "tglimg"=.\tglimg\tglimg.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libgfx
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "tgui"=.\tgui\tgui.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libgfx
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "tscript"=.\tscript\tscript.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libgfx
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "tvec"=.\tvec\tvec.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libgfx
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/debian/fireflies/fireflies-2.08/libgfx/vc6/libgfx/libgfx.dsp b/debian/fireflies/fireflies-2.08/libgfx/vc6/libgfx/libgfx.dsp
new file mode 100644
index 00000000..d2200d55
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/vc6/libgfx/libgfx.dsp
@@ -0,0 +1,236 @@
+# Microsoft Developer Studio Project File - Name="libgfx" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+CFG=libgfx - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "libgfx.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "libgfx.mak" CFG="libgfx - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "libgfx - Win32 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "libgfx - Win32 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "libgfx - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ELSEIF "$(CFG)" == "libgfx - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /Z7 /Od /I "../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ENDIF
+
+# Begin Target
+
+# Name "libgfx - Win32 Release"
+# Name "libgfx - Win32 Debug"
+# Begin Group "Header Files"
+
+# PROP Default_Filter "*.h"
+# Begin Source File
+
+SOURCE=..\..\include\gfx\arcball.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\array.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\baseball.h
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\gfx\config-vc.h"
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\geom3d.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\gfx.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\gl.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\gltools.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\gui.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\intvec.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\mat2.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\mat3.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\mat4.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\quat.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\raster.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\script.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\trackball.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\vec2.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\vec3.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\vec4.h
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=..\..\src\arcball.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\baseball.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\geom3d.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\gltools.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\gui.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\mat2.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\mat3.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\mat4.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\quat.cxx
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\src\raster-jpeg.cxx"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\src\raster-png.cxx"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\src\raster-pnm.cxx"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\src\raster-tiff.cxx"
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\raster.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\script.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\time.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\trackball.cxx
+# End Source File
+# End Target
+# End Project
diff --git a/debian/fireflies/fireflies-2.08/libgfx/vc6/libgfxmfc/libgfx.dsp b/debian/fireflies/fireflies-2.08/libgfx/vc6/libgfxmfc/libgfx.dsp
new file mode 100644
index 00000000..ac91f0c3
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/vc6/libgfxmfc/libgfx.dsp
@@ -0,0 +1,252 @@
+# Microsoft Developer Studio Project File - Name="libgfxmfc" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+CFG=libgfxmfc - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "libgfx.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "libgfx.mak" CFG="libgfxmfc - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "libgfxmfc - Win32 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "libgfxmfc - Win32 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "libgfxmfc - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ELSEIF "$(CFG)" == "libgfxmfc - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /I "../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ENDIF
+
+# Begin Target
+
+# Name "libgfxmfc - Win32 Release"
+# Name "libgfxmfc - Win32 Debug"
+# Begin Group "Header Files"
+
+# PROP Default_Filter "*.h"
+# Begin Source File
+
+SOURCE=..\..\include\gfx\arcball.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\array.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\baseball.h
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\gfx\config-vc.h"
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\geom3d.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\gfx.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\gl.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\gltools.h
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\gfx\gui-mfc.h"
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\gui.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\intvec.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\mat2.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\mat3.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\mat4.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\mfc.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\quat.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\raster.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\script.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\trackball.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\vec2.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\vec3.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\vec4.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\gfx\wintools.h
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=..\..\src\arcball.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\baseball.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\geom3d.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\gltools.cxx
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\src\gui-mfc.cxx"
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\mat2.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\mat3.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\mat4.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\quat.cxx
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\src\raster-jpeg.cxx"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\src\raster-png.cxx"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\src\raster-pnm.cxx"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\src\raster-tiff.cxx"
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\raster.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\script.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\time.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\trackball.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\wintools.cxx
+# End Source File
+# End Target
+# End Project
diff --git a/debian/fireflies/fireflies-2.08/libgfx/vc6/tglimg/tglimg.dsp b/debian/fireflies/fireflies-2.08/libgfx/vc6/tglimg/tglimg.dsp
new file mode 100644
index 00000000..e656e067
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/vc6/tglimg/tglimg.dsp
@@ -0,0 +1,95 @@
+# Microsoft Developer Studio Project File - Name="tglimg" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=tglimg - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "tglimg.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "tglimg.mak" CFG="tglimg - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "tglimg - Win32 Release" (based on "Win32 (x86) Application")
+!MESSAGE "tglimg - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "tglimg - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 fltk.lib fltkgl.lib libtiff.lib libjpeg.lib libpng.lib zlib.lib opengl32.lib glu32.lib wsock32.lib comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
+
+!ELSEIF "$(CFG)" == "tglimg - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 fltk_d.lib fltkgl_d.lib libtiff_d.lib libjpeg_d.lib libpng_d.lib zlib_d.lib opengl32.lib glu32.lib wsock32.lib comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "tglimg - Win32 Release"
+# Name "tglimg - Win32 Debug"
+# Begin Source File
+
+SOURCE="..\..\tests\t-glimg.cxx"
+# End Source File
+# End Target
+# End Project
diff --git a/debian/fireflies/fireflies-2.08/libgfx/vc6/tgui/tgui.dsp b/debian/fireflies/fireflies-2.08/libgfx/vc6/tgui/tgui.dsp
new file mode 100644
index 00000000..9998e23d
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/vc6/tgui/tgui.dsp
@@ -0,0 +1,95 @@
+# Microsoft Developer Studio Project File - Name="tgui" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=tgui - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "tgui.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "tgui.mak" CFG="tgui - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "tgui - Win32 Release" (based on "Win32 (x86) Application")
+!MESSAGE "tgui - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "tgui - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 fltk.lib fltkgl.lib libtiff.lib libjpeg.lib libpng.lib zlib.lib opengl32.lib glu32.lib wsock32.lib comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
+
+!ELSEIF "$(CFG)" == "tgui - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 fltk_d.lib fltkgl_d.lib libtiff_d.lib libjpeg_d.lib libpng_d.lib zlib_d.lib opengl32.lib glu32.lib wsock32.lib comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "tgui - Win32 Release"
+# Name "tgui - Win32 Debug"
+# Begin Source File
+
+SOURCE="..\..\tests\t-gui.cxx"
+# End Source File
+# End Target
+# End Project
diff --git a/debian/fireflies/fireflies-2.08/libgfx/vc6/tmfc/tmfc.dsp b/debian/fireflies/fireflies-2.08/libgfx/vc6/tmfc/tmfc.dsp
new file mode 100644
index 00000000..5be064ef
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/vc6/tmfc/tmfc.dsp
@@ -0,0 +1,116 @@
+# Microsoft Developer Studio Project File - Name="tmfc" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=tmfc - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "tmfc.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "tmfc.mak" CFG="tmfc - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "tmfc - Win32 Release" (based on "Win32 (x86) Application")
+!MESSAGE "tmfc - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "tmfc - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 2
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_AFXDLL" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 opengl32.lib glu32.lib /nologo /subsystem:windows /machine:I386
+
+!ELSEIF "$(CFG)" == "tmfc - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 2
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_AFXDLL" /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 opengl32.lib glu32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "tmfc - Win32 Release"
+# Name "tmfc - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cxx;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE="..\..\tests\t-mfc.cxx"
+
+!IF "$(CFG)" == "tmfc - Win32 Release"
+
+!ELSEIF "$(CFG)" == "tmfc - Win32 Debug"
+
+# ADD CPP /MLd
+
+!ENDIF
+
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/debian/fireflies/fireflies-2.08/libgfx/vc6/tscript/tscript.dsp b/debian/fireflies/fireflies-2.08/libgfx/vc6/tscript/tscript.dsp
new file mode 100644
index 00000000..7cd3d363
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/vc6/tscript/tscript.dsp
@@ -0,0 +1,88 @@
+# Microsoft Developer Studio Project File - Name="tscript" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=tscript - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "tscript.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "tscript.mak" CFG="tscript - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "tscript - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "tscript - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "tscript - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "../../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+
+!ELSEIF "$(CFG)" == "tscript - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "tscript - Win32 Release"
+# Name "tscript - Win32 Debug"
+# Begin Source File
+
+SOURCE="..\..\tests\t-script.cxx"
+# End Source File
+# End Target
+# End Project
diff --git a/debian/fireflies/fireflies-2.08/libgfx/vc6/tvec/tvec.dsp b/debian/fireflies/fireflies-2.08/libgfx/vc6/tvec/tvec.dsp
new file mode 100644
index 00000000..81c3cd1c
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/vc6/tvec/tvec.dsp
@@ -0,0 +1,88 @@
+# Microsoft Developer Studio Project File - Name="tvec" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=tvec - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "tvec.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "tvec.mak" CFG="tvec - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "tvec - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "tvec - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "tvec - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "../../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+
+!ELSEIF "$(CFG)" == "tvec - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "tvec - Win32 Release"
+# Name "tvec - Win32 Debug"
+# Begin Source File
+
+SOURCE="..\..\tests\t-vec.cxx"
+# End Source File
+# End Target
+# End Project
diff --git a/debian/fireflies/fireflies-2.08/libgfx/vc7/libgfx.sln b/debian/fireflies/fireflies-2.08/libgfx/vc7/libgfx.sln
new file mode 100644
index 00000000..e9c0bf09
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/vc7/libgfx.sln
@@ -0,0 +1,57 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgfx", "libgfx\libgfx.vcproj", "{81A1BD6D-E2F6-4CCB-90C6-B4DCED78E38B}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tglimg", "tglimg\tglimg.vcproj", "{EC337A90-E000-4154-A535-43E385E3332E}"
+ ProjectSection(ProjectDependencies) = postProject
+ {81A1BD6D-E2F6-4CCB-90C6-B4DCED78E38B} = {81A1BD6D-E2F6-4CCB-90C6-B4DCED78E38B}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tgui", "tgui\tgui.vcproj", "{213DD15E-5BC0-401D-B213-9EDBBD632EE0}"
+ ProjectSection(ProjectDependencies) = postProject
+ {81A1BD6D-E2F6-4CCB-90C6-B4DCED78E38B} = {81A1BD6D-E2F6-4CCB-90C6-B4DCED78E38B}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tscript", "tscript\tscript.vcproj", "{16EBB0D5-45C6-4E81-AFD1-29F73C5CB877}"
+ ProjectSection(ProjectDependencies) = postProject
+ {81A1BD6D-E2F6-4CCB-90C6-B4DCED78E38B} = {81A1BD6D-E2F6-4CCB-90C6-B4DCED78E38B}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tvec", "tvec\tvec.vcproj", "{8AC9018F-D751-490B-84E0-118E30F50058}"
+ ProjectSection(ProjectDependencies) = postProject
+ {81A1BD6D-E2F6-4CCB-90C6-B4DCED78E38B} = {81A1BD6D-E2F6-4CCB-90C6-B4DCED78E38B}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ Debug = Debug
+ Release = Release
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {81A1BD6D-E2F6-4CCB-90C6-B4DCED78E38B}.Debug.ActiveCfg = Debug|Win32
+ {81A1BD6D-E2F6-4CCB-90C6-B4DCED78E38B}.Debug.Build.0 = Debug|Win32
+ {81A1BD6D-E2F6-4CCB-90C6-B4DCED78E38B}.Release.ActiveCfg = Release|Win32
+ {81A1BD6D-E2F6-4CCB-90C6-B4DCED78E38B}.Release.Build.0 = Release|Win32
+ {EC337A90-E000-4154-A535-43E385E3332E}.Debug.ActiveCfg = Debug|Win32
+ {EC337A90-E000-4154-A535-43E385E3332E}.Debug.Build.0 = Debug|Win32
+ {EC337A90-E000-4154-A535-43E385E3332E}.Release.ActiveCfg = Release|Win32
+ {EC337A90-E000-4154-A535-43E385E3332E}.Release.Build.0 = Release|Win32
+ {213DD15E-5BC0-401D-B213-9EDBBD632EE0}.Debug.ActiveCfg = Debug|Win32
+ {213DD15E-5BC0-401D-B213-9EDBBD632EE0}.Debug.Build.0 = Debug|Win32
+ {213DD15E-5BC0-401D-B213-9EDBBD632EE0}.Release.ActiveCfg = Release|Win32
+ {213DD15E-5BC0-401D-B213-9EDBBD632EE0}.Release.Build.0 = Release|Win32
+ {16EBB0D5-45C6-4E81-AFD1-29F73C5CB877}.Debug.ActiveCfg = Debug|Win32
+ {16EBB0D5-45C6-4E81-AFD1-29F73C5CB877}.Debug.Build.0 = Debug|Win32
+ {16EBB0D5-45C6-4E81-AFD1-29F73C5CB877}.Release.ActiveCfg = Release|Win32
+ {16EBB0D5-45C6-4E81-AFD1-29F73C5CB877}.Release.Build.0 = Release|Win32
+ {8AC9018F-D751-490B-84E0-118E30F50058}.Debug.ActiveCfg = Debug|Win32
+ {8AC9018F-D751-490B-84E0-118E30F50058}.Debug.Build.0 = Debug|Win32
+ {8AC9018F-D751-490B-84E0-118E30F50058}.Release.ActiveCfg = Release|Win32
+ {8AC9018F-D751-490B-84E0-118E30F50058}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/debian/fireflies/fireflies-2.08/libgfx/vc7/libgfx/libgfx.vcproj b/debian/fireflies/fireflies-2.08/libgfx/vc7/libgfx/libgfx.vcproj
new file mode 100644
index 00000000..54e73131
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/vc7/libgfx/libgfx.vcproj
@@ -0,0 +1,505 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="libgfx"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="4"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Debug/libgfx.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="1"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile=".\Debug\libgfx.lib"
+ SuppressStartupBanner="TRUE"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="4"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="../../include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+ StringPooling="TRUE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Release/libgfx.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile=".\Release\libgfx.lib"
+ SuppressStartupBanner="TRUE"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Header Files"
+ Filter="*.h">
+ <File
+ RelativePath="..\..\include\gfx\arcball.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\array.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\baseball.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\config-vc.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\geom3d.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\gfx.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\gl.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\gltools.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\gui.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\intvec.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\mat2.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\mat3.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\mat4.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\quat.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\raster.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\script.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\trackball.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\vec2.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\vec3.h">
+ </File>
+ <File
+ RelativePath="..\..\include\gfx\vec4.h">
+ </File>
+ </Filter>
+ <File
+ RelativePath="..\..\src\arcball.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\baseball.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\geom3d.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\gltools.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\gui.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\mat2.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\mat3.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\mat4.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\quat.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\raster-jpeg.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\raster-png.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\raster-pnm.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\raster-tiff.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\raster.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\script.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\time.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\src\trackball.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/vc7/tglimg/tglimg.vcproj b/debian/fireflies/fireflies-2.08/libgfx/vc7/tglimg/tglimg.vcproj
new file mode 100644
index 00000000..d826f12d
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/vc7/tglimg/tglimg.vcproj
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="tglimg"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Debug/tglimg.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="fltk_d.lib fltkgl_d.lib libtiff_d.lib libjpeg_d.lib libpng_d.lib zlib_d.lib opengl32.lib glu32.lib wsock32.lib comctl32.lib odbc32.lib odbccp32.lib"
+ OutputFile=".\Debug/tglimg.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile=".\Debug/tglimg.pdb"
+ SubSystem="2"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/tglimg.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="../../include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+ StringPooling="TRUE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Release/tglimg.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="fltk.lib fltkgl.lib libtiff.lib libjpeg.lib libpng.lib zlib.lib opengl32.lib glu32.lib wsock32.lib comctl32.lib odbc32.lib odbccp32.lib"
+ OutputFile=".\Release/tglimg.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ ProgramDatabaseFile=".\Release/tglimg.pdb"
+ SubSystem="2"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/tglimg.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath="..\..\tests\t-glimg.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/vc7/tgui/tgui.vcproj b/debian/fireflies/fireflies-2.08/libgfx/vc7/tgui/tgui.vcproj
new file mode 100644
index 00000000..9fe715b4
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/vc7/tgui/tgui.vcproj
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="tgui"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="../../include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+ StringPooling="TRUE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Release/tgui.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="fltk.lib fltkgl.lib libtiff.lib libjpeg.lib libpng.lib zlib.lib opengl32.lib glu32.lib wsock32.lib comctl32.lib odbc32.lib odbccp32.lib"
+ OutputFile=".\Release/tgui.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ ProgramDatabaseFile=".\Release/tgui.pdb"
+ SubSystem="2"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/tgui.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Debug/tgui.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="fltk_d.lib fltkgl_d.lib libtiff_d.lib libjpeg_d.lib libpng_d.lib zlib_d.lib opengl32.lib glu32.lib wsock32.lib comctl32.lib odbc32.lib odbccp32.lib"
+ OutputFile=".\Debug/tgui.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile=".\Debug/tgui.pdb"
+ SubSystem="2"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/tgui.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath="..\..\tests\t-gui.cxx">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/vc7/tscript/tscript.vcproj b/debian/fireflies/fireflies-2.08/libgfx/vc7/tscript/tscript.vcproj
new file mode 100644
index 00000000..2b918e7d
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/vc7/tscript/tscript.vcproj
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="tscript"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Debug/tscript.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile=".\Debug/tscript.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile=".\Debug/tscript.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Debug/tscript.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="../../include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="TRUE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Release/tscript.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile=".\Release/tscript.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ ProgramDatabaseFile=".\Release/tscript.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Release/tscript.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath="..\..\tests\t-script.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/debian/fireflies/fireflies-2.08/libgfx/vc7/tvec/tvec.vcproj b/debian/fireflies/fireflies-2.08/libgfx/vc7/tvec/tvec.vcproj
new file mode 100644
index 00000000..26818d2f
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/libgfx/vc7/tvec/tvec.vcproj
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="tvec"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Debug/tvec.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile=".\Debug/tvec.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile=".\Debug/tvec.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Debug/tvec.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="../../include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="TRUE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Release/tvec.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile=".\Release/tvec.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ ProgramDatabaseFile=".\Release/tvec.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Release/tvec.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath="..\..\tests\t-vec.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/debian/fireflies/fireflies-2.08/src/Makefile b/debian/fireflies/fireflies-2.08/src/Makefile
new file mode 100644
index 00000000..bbcf658d
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/Makefile
@@ -0,0 +1,29 @@
+include ../Make.include
+
+#CFLAGS += -DDEBUG
+
+HEADERS=$(wildcard *.h)
+HEADERS_GCH=$(HEADERS:.h=.h.gch)
+
+all: $(PROGRAM)
+
+$(PROGRAM): $(OBJECTS)
+ $(CXX) -o $(PROGRAM) $(OBJECTS) $(LIBS)
+ strip $(PROGRAM)
+
+$(OBJECTS): $(HEADERS)
+
+.SUFFIXES:
+.SUFFIXES: .cc .rc .o
+
+.cc.o:
+ $(CXX) -c $(CFLAGS) -o $@ $<
+
+#$(HEADERS_GCH): %.h.gch: %.h
+# $(CXX) -c -x c++-header $(CFLAGS) -o $@ $<
+
+.rc.o:
+ windres -o $@ $<
+
+clean:
+ rm -f *.o $(PROGRAM)
diff --git a/debian/fireflies/fireflies-2.08/src/arrow.cc b/debian/fireflies/fireflies-2.08/src/arrow.cc
new file mode 100644
index 00000000..12d03d5a
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/arrow.cc
@@ -0,0 +1,53 @@
+#include "arrow.h"
+#include "scene.h"
+
+// Draw a wireframe axis-aligned box whose opposite corners are given by the
+// points 'min' and 'max'.
+void draw_box(const Vec3f& min, const Vec3f& max)
+{
+ glBegin(GL_LINE_LOOP);
+ glVertex3d(min[0],min[1],min[2]); glVertex3d(min[0],max[1],min[2]);
+ glVertex3d(max[0],max[1],min[2]); glVertex3d(max[0],min[1],min[2]);
+ glEnd();
+
+ glBegin(GL_LINE_LOOP);
+ glVertex3d(min[0],min[1],max[2]); glVertex3d(min[0],max[1],max[2]);
+ glVertex3d(max[0],max[1],max[2]); glVertex3d(max[0],min[1],max[2]);
+ glEnd();
+
+ glBegin(GL_LINES);
+ glVertex3d(min[0],min[1],min[2]); glVertex3d(min[0],min[1],max[2]);
+ glVertex3d(min[0],max[1],min[2]); glVertex3d(min[0],max[1],max[2]);
+ glVertex3d(max[0],max[1],min[2]); glVertex3d(max[0],max[1],max[2]);
+ glVertex3d(max[0],min[1],min[2]); glVertex3d(max[0],min[1],max[2]);
+ glEnd();
+}
+
+void Arrow::draw()
+{
+ glColor4fv(color);
+ apply_transform();
+
+ glBegin(GL_TRIANGLE_FAN); // the front pyramid
+ glVertex3d(0., 0., scene.fsize*3); // height
+ glVertex3d(scene.fsize, 0., 0.);
+ glVertex3d(0., -scene.fsize, 0.);
+ glVertex3d(-scene.fsize, 0., 0.);
+ glVertex3d(0., scene.fsize, 0.);
+ glEnd();
+
+ glBegin(GL_TRIANGLE_FAN); // the butt pyramid
+ glVertex3d(0., 0., -scene.fsize*2); // height
+ glVertex3d(scene.fsize, 0., 0.);
+ glVertex3d(0., -scene.fsize, 0.);
+ glVertex3d(-scene.fsize, 0., 0.);
+ glVertex3d(0., scene.fsize, 0.);
+ glEnd();
+}
+
+void Arrow::point(Vec3f dir)
+{
+ double angle = acos(Vec3f(0, 0, 1)*unit_vec(dir));
+ rot_axis = unit_vec(cross(Vec3f(0, 0, 1), dir));
+ rot_angle = RAD_TO_DEG(angle);
+}
diff --git a/debian/fireflies/fireflies-2.08/src/arrow.h b/debian/fireflies/fireflies-2.08/src/arrow.h
new file mode 100644
index 00000000..d6aeeeca
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/arrow.h
@@ -0,0 +1,31 @@
+#ifndef _Arrow_H
+#define _Arrow_H
+
+#define DEG_TO_RAD(angle) (angle*M_PI/180.0)
+#define RAD_TO_DEG(angle) (angle*180.0/M_PI)
+
+#include "control.h"
+#include "utils.h"
+
+class Arrow : public Control
+{
+public:
+ hsvColor hsv;
+ rgbColor color;
+ Vec3f velocity; // current velocity
+ Vec3f accel; // current acceleration
+
+ Arrow() : hsv(0.0f, 0.8f, 0.8f, 1.0f) {}
+ virtual ~Arrow() {}
+
+ // draw the Arrow
+ virtual void draw();
+ // let t seconds elapse
+ virtual void elapse(double t) = 0;
+ // point me in direction of 'dir'.
+ void point(Vec3f dir);
+};
+
+void draw_box(const Vec3f& min, const Vec3f& max);
+
+#endif // Arrow.h
diff --git a/debian/fireflies/fireflies-2.08/src/bait.cc b/debian/fireflies/fireflies-2.08/src/bait.cc
new file mode 100644
index 00000000..417b9b72
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/bait.cc
@@ -0,0 +1,98 @@
+#include "bait.h"
+#include "modes.h"
+#include "scene.h"
+
+Bait::Bait()
+ : Arrow()
+{
+ age = rand_real(0., 10.);
+ fuzz = rand_real(0.7, 1.4);
+ glow = false;
+ attractor = 0;
+ bait_start_mode(this, BMODE_NORMAL);
+
+ hsv[0] = 30.0*rand_int(0, 12); // initial hue
+ turn_delay = rand_real(1., 4.);
+ turn_when = age + rand_real(0.5, turn_delay);
+ pos = Vec3f(
+ rand_real(-world[0], world[0]),
+ rand_real(-world[1], world[1]),
+ rand_real(-world[2], world[2]));
+ velocity = bspeed*unit_vec(-pos);
+
+ for (int i = 0; i < 3; i++) {
+ if (rand_int(0, 1)==0) accel[i] = -baccel;
+ else accel[i] = baccel;
+ }
+
+ set_color();
+
+#ifdef DEBUG
+ cerr << "bait: " << bspeed << " and " << baccel
+ << "\tflies: " << fspeed << " and " << faccel << endl;
+#endif
+}
+
+void Bait::draw()
+{
+ if (!scene.draw_bait)
+ return;
+
+ glPushMatrix();
+ Arrow::draw();
+ glPopMatrix();
+}
+
+void Bait::elapse(double t)
+{
+ hsv[0] += hue_rate*t;
+ age += t;
+
+ if (age >= mode_when)
+ bait_start_mode(this, mode_next);
+ while (stop_timer.is_ready(age))
+ bait_stop_mode(this, stop_timer.pop());
+
+ calc_accel();
+ velocity += accel*t;
+ clamp_vec(velocity, bspeed);
+ pos += velocity*t;
+
+ point(velocity);
+ set_color();
+}
+
+void Bait::calc_accel()
+{
+ if (attractor) {
+ accel = baccel*unit_vec((*attractor) - pos);
+ return;
+ }
+
+ // time to turn
+ if (age >= turn_when) {
+ for (int i = 0; i < 3; i++) {
+ if (rand_int(0, 1) == 0)
+ accel[i] = -SIGN(accel[i])*baccel;
+ }
+ turn_when = age + rand_real(0.5, turn_delay);
+ }
+
+ for (int i = 0; i < 3; i++) {
+ if (pos[i] < -world[i]) accel[i] = baccel;
+ else if (pos[i] > world[i]) accel[i] = -baccel;
+ }
+}
+
+void Bait::set_color()
+{
+ // keep everything as before
+
+ // clamp to my range
+ while (hsv[0] > 360.f)
+ hsv[0] -= 360.f;
+ while (hsv[0] < 0.f)
+ hsv[0] += 360.f;
+
+ color = hsv_to_rgb(hsv);
+}
diff --git a/debian/fireflies/fireflies-2.08/src/bait.h b/debian/fireflies/fireflies-2.08/src/bait.h
new file mode 100644
index 00000000..8ffdd6c5
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/bait.h
@@ -0,0 +1,40 @@
+#ifndef _Bait_H
+#define _Bait_H
+
+#include "utils.h"
+#include "arrow.h"
+
+class Bait : public Arrow
+{
+public:
+ double age; // timer with random initial value
+ double fuzz; // my little bit of randomness
+ double turn_delay; // max delay before turning (higher = slower changing)
+ double turn_when; // when to change acceleration (referenced from timer)
+ int mode_next; // the next mode to activate
+ double mode_when; // next time to activate a mode (ref timer)
+ Timer stop_timer; // timer for stopping events
+
+ // options
+ double bspeed; // my speed
+ double baccel; // my accel
+ double fspeed; // speed of the fireflies chasing me
+ double faccel; // acceleration of the fireflies chasing me
+ double hue_rate; // my color-cycling rate
+ bool glow; // should tails glow
+
+ Vec3f *attractor;
+
+ Bait();
+
+ // draw me
+ virtual void draw();
+ // let t seconds elapse
+ virtual void elapse(double t);
+ // calculate acceleration
+ virtual void calc_accel();
+ // change colors based on parameters
+ void set_color();
+};
+
+#endif // Bait.h
diff --git a/debian/fireflies/fireflies-2.08/src/canvas_base.cc b/debian/fireflies/fireflies-2.08/src/canvas_base.cc
new file mode 100644
index 00000000..008aada9
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/canvas_base.cc
@@ -0,0 +1,106 @@
+#include "canvas_base.h"
+
+#ifdef WIN32
+#include <time.h>
+#else
+#include <sys/time.h>
+#include <unistd.h>
+#endif
+
+CanvasBase::CanvasBase(Scene *s, bool fs, int m)
+ : scene(s), full_screen(fs), mspf(m)
+{
+ animate = true;
+ need_refresh = true;
+ width = height = 0;
+}
+
+int CanvasBase::create_window()
+{
+ // it would be nice if this were pure virtual, but that makes my
+ // version of g++ fucks up for some reason.
+ return -1;
+}
+
+int CanvasBase::init()
+{
+#ifdef WIN32
+ srand(time(0));
+#else
+ struct timeval tv;
+ gettimeofday(&tv, 0);
+ srand(1000*tv.tv_sec + tv.tv_usec/1000);
+#endif
+
+ int ret;
+ if ((ret = create_window()) < 0)
+ return ret;
+
+ resize();
+
+ return 0;
+}
+
+void CanvasBase::resize()
+{
+ glViewport(0, 0, width, height);
+ scene->resize(width, height);
+}
+
+void CanvasBase::draw()
+{
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+
+ scene->apply_camera();
+ scene->draw();
+}
+
+int CanvasBase::loop()
+{
+ int remain, ret;
+ last_tick = get_ms();
+
+ while (true) {
+ if ((remain = tick()) > 0) // time left till tick: sleep
+ delay(remain);
+ if ((ret = handle_events()) > 0) // wants us to quit
+ return ret;
+ }
+}
+
+int CanvasBase::tick()
+{
+ if (need_refresh) {
+ draw();
+ need_refresh = false;
+ }
+
+ int now = get_ms();
+ int ms = now - last_tick;
+
+ // Animate the scene
+ if (ms >= mspf) {
+ last_tick = now;
+ if (animate) {
+ scene->elapse(ms/1000.0);
+ need_refresh = true;
+ }
+ return 0;
+ }
+ return (mspf - ms);
+}
+
+// these are dumb. See create_window()
+int CanvasBase::handle_events()
+{
+ return 1;
+}
+
+int CanvasBase::get_ms()
+{
+ return 0;
+}
+
+void CanvasBase::delay(int ms)
+{
+}
diff --git a/debian/fireflies/fireflies-2.08/src/canvas_base.h b/debian/fireflies/fireflies-2.08/src/canvas_base.h
new file mode 100644
index 00000000..b1adb333
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/canvas_base.h
@@ -0,0 +1,46 @@
+#ifndef _CANVASBASE_H
+#define _CANVASBASE_H
+
+#include "scene.h"
+
+// base class for a GL/DirectX Canvas
+class CanvasBase {
+//protected:
+public:
+ Scene *scene; // the thing that handles drawing and such
+ bool need_refresh; // do we need to redraw the canvas?
+ int last_tick;
+
+ // create the window
+ virtual int create_window();
+public:
+ bool full_screen; // use full screen?
+ int mspf; // ms per frame (ie, 1000/30 mspf instead of 30 fps)
+ bool animate;
+ int width;
+ int height;
+
+ CanvasBase(Scene *s, bool full_screen, int mspf);
+ virtual ~CanvasBase() {}
+
+ // initialize the window and GL stuff
+ virtual int init();
+ // resize the viewport and apply frustum transformation
+ virtual void resize();
+ // repaint what's on the canvas
+ virtual void draw();
+ // the event loop. handles events and animates the game
+ virtual int loop();
+ // tick if it spf seconds have elapsed since last tick
+ // returns 0 if ticked, else time remaining till tick.
+ virtual int tick();
+ // handle all events, and call proper handlers.
+ // returns 0 normally, else >0 on QUIT
+ virtual int handle_events();
+ // get current millisecond (arbitrary reference: used for change in millis)
+ virtual int get_ms();
+ // delay for specified number of milliseconds
+ virtual void delay(int ms);
+};
+
+#endif // canvas_base.h
diff --git a/debian/fireflies/fireflies-2.08/src/canvas_glx.cc b/debian/fireflies/fireflies-2.08/src/canvas_glx.cc
new file mode 100644
index 00000000..6b6809ab
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/canvas_glx.cc
@@ -0,0 +1,92 @@
+#include "canvas_glx.h"
+
+#include <sys/time.h>
+#include <unistd.h>
+
+#include "vroot.h"
+
+CanvasGLX::CanvasGLX(Scene *s, bool fs, int m, Window wid)
+ : CanvasBase(s, fs, m), window_id(wid)
+{
+ window = 0;
+ display = 0;
+}
+
+int CanvasGLX::create_window()
+{
+ if ((display = XOpenDisplay(0)) == 0)
+ return -1;
+ screen = DefaultScreen(display);
+
+ window = window_id ? window_id : RootWindow(display, screen);
+ XWindowAttributes wa;
+ XGetWindowAttributes(display, window, &wa);
+ Visual *visual = wa.visual;
+
+ XVisualInfo templ;
+ templ.screen = screen;
+ templ.visualid = XVisualIDFromVisual(visual);
+ int out_count;
+ XVisualInfo *vinfo = XGetVisualInfo(display,
+ VisualScreenMask | VisualIDMask, &templ, &out_count);
+ if (!vinfo)
+ return -1;
+
+ GLXContext context = glXCreateContext(display, vinfo, 0, GL_TRUE);
+ XFree(vinfo);
+ if (!context)
+ return -1;
+
+ if (!glXMakeCurrent(display, window, context))
+ return -1;
+
+ XMapRaised(display, window);
+
+ return 0;
+}
+
+void CanvasGLX::resize()
+{
+ XWindowAttributes attrib;
+ XGetWindowAttributes(display, window, &attrib);
+ width = attrib.width;
+ height = attrib.height;
+
+ CanvasBase::resize();
+}
+
+void CanvasGLX::draw()
+{
+ CanvasBase::draw();
+
+ glXSwapBuffers(display, window);
+}
+
+int CanvasGLX::handle_events()
+{
+ XEvent event;
+ while (XPending(display)) {
+ XNextEvent(display, &event);
+ switch (event.type) {
+ case ConfigureNotify:
+ resize();
+ break;
+ }
+ }
+ return 0;
+}
+
+int CanvasGLX::get_ms()
+{
+ struct timeval tv;
+ gettimeofday(&tv, 0);
+ return (1000*tv.tv_sec + tv.tv_usec/1000);
+}
+
+void CanvasGLX::delay(int ms)
+{
+ struct timeval tv;
+ tv.tv_sec = ms/1000;
+ tv.tv_usec = (ms%1000)*1000;
+ select(0, 0, 0, 0, &tv);
+}
diff --git a/debian/fireflies/fireflies-2.08/src/canvas_glx.h b/debian/fireflies/fireflies-2.08/src/canvas_glx.h
new file mode 100644
index 00000000..330f5deb
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/canvas_glx.h
@@ -0,0 +1,37 @@
+#ifndef _CANVASGLX_H
+#define _CANVASGLX_H
+
+#include "canvas_base.h"
+
+#include <GL/glx.h>
+
+// A Canvas for drawing to a GL window via GLX
+// (currently only works on root window)
+class CanvasGLX : public CanvasBase {
+protected:
+ Window window;
+ Display *display;
+ int screen;
+
+ // create the window (either SDL or GLX)
+ virtual int create_window();
+public:
+ Window window_id;
+
+ CanvasGLX(Scene *s, bool full_screen, int mspf, Window wid);
+ virtual ~CanvasGLX() {}
+
+ // resize the viewport and apply frustum transformation
+ virtual void resize();
+ // repaint what's on the canvas
+ virtual void draw();
+ // handle all events, and call proper handlers.
+ // returns 0 normally, else >0 on QUIT
+ virtual int handle_events();
+ // get current millisecond (arbitrary reference: used for change in millis)
+ virtual int get_ms();
+ // delay for specified number of milliseconds
+ virtual void delay(int ms);
+};
+
+#endif // canvas_glx.h
diff --git a/debian/fireflies/fireflies-2.08/src/canvas_sdl.cc b/debian/fireflies/fireflies-2.08/src/canvas_sdl.cc
new file mode 100644
index 00000000..97b7bf81
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/canvas_sdl.cc
@@ -0,0 +1,218 @@
+#include "main.h"
+#include "canvas_sdl.h"
+#include "modes.h"
+
+#include <iostream>
+
+#include <gfx/quat.h>
+#include <gfx/mat4.h>
+
+using namespace std;
+
+CanvasSDL::CanvasSDL(Scene *s, bool fs, int m, char *t, char *c)
+ : CanvasBase(s, fs, m), wm_title(t), wm_class(c)
+{
+ surface = 0;
+}
+
+int CanvasSDL::create_window()
+{
+ int ret, flags = SDL_HWSURFACE | SDL_GL_DOUBLEBUFFER
+ | SDL_HWPALETTE | SDL_HWACCEL | SDL_RESIZABLE | SDL_OPENGL;
+
+ if ((ret=SDL_Init(SDL_INIT_VIDEO)) < 0)
+ return ret;
+
+ if (full_screen)
+ flags |= SDL_FULLSCREEN;
+
+ SDL_Rect **modes;
+ modes = SDL_ListModes(0, flags);
+ if (modes == (SDL_Rect**)0) {
+ cerr << "CanvasSDL ERROR: no modes available" << endl;
+ return -1;
+ }
+ if (modes == (SDL_Rect**)-1) {
+ width = 1024;
+ height = 768;
+ }
+ else {
+ width = modes[0]->w;
+ height = modes[0]->h;
+ }
+
+ surface = SDL_SetVideoMode(width, height, 16, flags|SDL_RESIZABLE);
+ if (!surface)
+ return -1;
+
+ SDL_WM_SetCaption(wm_title, wm_class);
+
+ return 0;
+}
+
+void CanvasSDL::resize()
+{
+ width = surface->w;
+ height = surface->h;
+
+ CanvasBase::resize();
+}
+
+void CanvasSDL::draw()
+{
+ CanvasBase::draw();
+
+#if 0
+#define BORDER_COLOR 150
+ SDL_Rect rect;
+ rect.x = 500;
+ rect.y = 500;
+ rect.w = rect.h = 100;
+ SDL_FillRect(surface, &rect,
+ SDL_MapRGB(surface->format, BORDER_COLOR,
+ BORDER_COLOR, BORDER_COLOR));
+#endif
+
+ SDL_GL_SwapBuffers();
+}
+
+int CanvasSDL::handle_events()
+{
+ SDL_Event event;
+ while (SDL_PollEvent(&event)) {
+ switch (event.type) {
+ case SDL_VIDEOEXPOSE:
+ need_refresh = true;
+ break;
+ case SDL_VIDEORESIZE:
+ need_refresh = true;
+ surface = SDL_SetVideoMode(event.resize.w, event.resize.h, 16, SDL_OPENGL|SDL_RESIZABLE);
+ if (!surface) {
+ cerr << "CanvasSDL ERROR: cannot set video mode after resize" << endl;
+ SDL_Quit();
+ return 2;
+ }
+ resize();
+ break;
+ case SDL_MOUSEMOTION:
+ if (on_mouse_drag(event.motion) < 0)
+ return 1;
+ break;
+ case SDL_KEYDOWN:
+ if (on_keydown(event.key) < 0)
+ return 1;
+ break;
+ case SDL_QUIT:
+ SDL_Quit();
+ return 1;
+ break;
+ }
+ }
+ return 0;
+}
+
+int CanvasSDL::get_ms()
+{
+ return SDL_GetTicks();
+}
+
+void CanvasSDL::delay(int ms)
+{
+ SDL_Delay(ms);
+}
+
+int CanvasSDL::on_mouse_drag(SDL_MouseMotionEvent& event)
+{
+ Mat4 inv_camera = rotation_matrix_deg(-scene->camera.rot_angle, Vec3(scene->camera.rot_axis));
+ Vec3 horiz = inv_camera*Vec3(1, 0, 0);
+ Vec3 vert = inv_camera*Vec3(0, 1, 0);
+
+ if (SDL_GetModState() & KMOD_CTRL) {
+ Quat q = axis_to_quat(scene->camera.rot_axis, DEG_TO_RAD(scene->camera.rot_angle));
+ if (event.state & SDL_BUTTON(1)) { // rotate
+ Quat qx = axis_to_quat(vert, event.xrel*0.05);
+ Quat qy = axis_to_quat(horiz, event.yrel*0.05);
+
+ q = q * qy;
+ q = q * qx;
+ unitize(q);
+
+ scene->camera.rot_axis = q.vector();
+ scene->camera.rot_angle = RAD_TO_DEG(2.0*acos(q.scalar()));
+ need_refresh = true;
+ }
+ }
+ else {
+ if (event.state & SDL_BUTTON(1)) { // move camera
+ scene->camera.pos += 0.5*Vec3f(event.xrel, -event.yrel, 0.);
+ need_refresh = true;
+ }
+ else if (event.state & SDL_BUTTON(3)) { // zoom in/out
+ scene->camera.pos += 0.5*Vec3f(0., 0., event.yrel);
+ need_refresh = true;
+ }
+ }
+
+ return 0;
+}
+
+int CanvasSDL::on_keydown(SDL_KeyboardEvent& event)
+{
+ switch (event.keysym.sym) {
+ case SDLK_q:
+ SDL_Quit();
+ return -1;
+ break;
+ case SDLK_p: // pause or unpause
+ animate = !animate;
+ break;
+ case SDLK_t: // show the time
+ cout << "Elapsed time: " << scene->curtime << "s" << endl;
+ break;
+ case SDLK_UP:
+ scene->fast_forward *= 2;
+ cout << "fast forward: " << scene->fast_forward << "x" << endl;
+ break;
+ case SDLK_DOWN:
+ if (scene->fast_forward > 1)
+ scene->fast_forward /= 2;
+ cout << "fast forward: " << scene->fast_forward << "x" << endl;
+ break;
+ case SDLK_RIGHT:
+ scene->fast_forward += 1;
+ cout << "fast forward: " << scene->fast_forward << "x" << endl;
+ break;
+ case SDLK_LEFT:
+ if (scene->fast_forward > 1)
+ scene->fast_forward -= 1;
+ cout << "fast forward: " << scene->fast_forward << "x" << endl;
+ break;
+ default: {
+ int c = event.keysym.sym - '0';
+ if (event.keysym.mod & KMOD_SHIFT) {
+ if (c >= 0 && c < NUM_BMODES) {
+ vector<Bait*>::iterator it = scene->baits.begin();
+ for (; it != scene->baits.end(); it++)
+ bait_start_mode(*it, c);
+ cout << "started bait mode " << c << endl;
+ }
+ }
+ else if (event.keysym.mod & KMOD_CTRL) {
+ if (c >= 0 && c < NUM_BMODES) {
+ vector<Bait*>::iterator it = scene->baits.begin();
+ for (; it != scene->baits.end(); it++)
+ bait_stop_mode(*it, c);
+ cout << "stopped bait mode " << c << endl;
+ }
+ }
+ else {
+ if (c >= 0 && c < NUM_SMODES) {
+ scene_start_mode(c);
+ cout << "started scene mode " << c << endl;
+ }
+ }
+ break;
+ }
+ }
+ return 0;
+}
diff --git a/debian/fireflies/fireflies-2.08/src/canvas_sdl.h b/debian/fireflies/fireflies-2.08/src/canvas_sdl.h
new file mode 100644
index 00000000..4b51fe45
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/canvas_sdl.h
@@ -0,0 +1,38 @@
+#ifndef _CANVASSDL_H
+#define _CANVASSDL_H
+
+#include "canvas_base.h"
+
+#include "SDL.h"
+
+// A Canvas for drawing to a GL window via SDL
+class CanvasSDL : public CanvasBase {
+protected:
+ SDL_Surface *surface;
+ char *wm_title;
+ char *wm_class;
+
+ // create the window (either SDL or GLX)
+ virtual int create_window();
+public:
+ CanvasSDL(Scene *s, bool full_screen, int mspf, char *wm_title, char *wm_class);
+ virtual ~CanvasSDL() {}
+
+ // resize the viewport and apply frustum transformation
+ virtual void resize();
+ // repaint what's on the canvas
+ virtual void draw();
+ // handle all events, and call proper handlers.
+ // returns 0 normally, else >0 on QUIT
+ virtual int handle_events();
+ // get current millisecond (arbitrary reference: used for change in millis)
+ virtual int get_ms();
+ // delay for specified number of milliseconds
+ virtual void delay(int ms);
+
+ // handle a mouse drag event
+ int on_mouse_drag(SDL_MouseMotionEvent& event);
+ int on_keydown(SDL_KeyboardEvent& event);
+};
+
+#endif // canvas_sdl.h
diff --git a/debian/fireflies/fireflies-2.08/src/control.h b/debian/fireflies/fireflies-2.08/src/control.h
new file mode 100644
index 00000000..653b91ec
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/control.h
@@ -0,0 +1,31 @@
+#ifndef _CONTROL_H
+#define _CONTROL_H
+
+#include "main.h"
+#include <gfx/vec3.h>
+
+#define DEG_TO_RAD(angle) (angle*M_PI/180.0)
+#define RAD_TO_DEG(angle) (angle*180.0/M_PI)
+
+// a set of controls for objects and the camera. directly corresponds to
+// OpenGL calls.
+class Control {
+public:
+ Vec3f pos;
+ double rot_angle; // in degrees
+ Vec3f rot_axis;
+
+ Control() : rot_angle(0)
+ {}
+ void apply_transform()
+ {
+ glTranslated(pos[0], pos[1], pos[2]);
+ glRotated(rot_angle, rot_axis[0], rot_axis[1], rot_axis[2]);
+#if 0
+ // we don't use this
+ glScaled(scale[0], scale[1], scale[2]);
+#endif
+ }
+};
+
+#endif // _CONTROL_H
diff --git a/debian/fireflies/fireflies-2.08/src/firefly.cc b/debian/fireflies/fireflies-2.08/src/firefly.cc
new file mode 100644
index 00000000..b4f50d68
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/firefly.cc
@@ -0,0 +1,84 @@
+#include "firefly.h"
+#include "scene.h"
+#include "modes.h"
+
+Firefly::Firefly(Bait *_bait, Vec3f ctr, double spread)
+ : Arrow(), bait(_bait), age(0.)
+{
+ pos = ctr;
+ pos += rand_vec3(-spread, spread);
+
+ velocity = bait->fspeed*unit_vec(bait->pos - pos);
+ tail = new Tail(this);
+}
+
+Firefly::~Firefly()
+{
+ tail->owner = 0;
+ scene.dead_tails.push_back(tail);
+}
+
+void Firefly::draw()
+{
+ glPushMatrix();
+ Arrow::draw();
+ glPopMatrix();
+
+ tail->draw();
+}
+
+void Firefly::elapse(double t)
+{
+ age += t;
+
+ calc_accel();
+ velocity += accel*t;
+ clamp_vec(velocity, bait->fspeed);
+ pos += velocity*t;
+
+ point(velocity);
+ set_color();
+
+ // elapse, my children
+ tail->elapse(t);
+}
+
+void Firefly::calc_accel()
+{
+ if (age > 2.0 && rand_int(0, 60)==0) {
+ GLuint i, closest_i = 0;
+ double dist, closest_dist = 1e10;
+ for (i = 0; i < scene.baits.size(); i++) {
+ if ((dist=norm(scene.baits[i]->pos - pos)) < closest_dist) {
+ closest_dist = dist;
+ closest_i = i;
+ }
+ }
+ dist = norm(bait->pos - pos);
+ if (closest_dist < dist-1.0) {
+ bait = scene.baits[closest_i];
+ age = 0.;
+ }
+ }
+ else if (age > 5.0) {
+ if (norm(bait->pos - pos) >= 200 && !(bait->bspeed == 0 || bait->attractor)) {
+ bait->mode_next = BMODE_STOP;
+ }
+ }
+
+ accel = bait->faccel*unit_vec(bait->pos - pos);
+}
+
+void Firefly::set_color()
+{
+ hsv = bait->hsv;
+ hsv[0] += 40*norm2(velocity)/(bait->fspeed*bait->fspeed) - 20;
+
+ // clamp to my range
+ while (hsv[0] > 360.f)
+ hsv[0] -= 360.f;
+ while (hsv[0] < 0.f)
+ hsv[0] += 360.f;
+
+ color = hsv_to_rgb(hsv);
+}
diff --git a/debian/fireflies/fireflies-2.08/src/firefly.h b/debian/fireflies/fireflies-2.08/src/firefly.h
new file mode 100644
index 00000000..784b4ccb
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/firefly.h
@@ -0,0 +1,32 @@
+#ifndef _PARTICLE_H
+#define _PARTICLE_H
+
+#include "arrow.h"
+#include "tail.h"
+#include "bait.h"
+
+class Firefly : public Arrow
+{
+public:
+ Bait *bait; // the bait I'm after
+ Tail *tail; // my pretty tail
+ double age; // how long I've been alive
+
+ // Firefly(
+ // the bait I'm after,
+ // where to put me,
+ // plus/minus this amount)
+ Firefly(Bait *_bait, Vec3f ctr, double spread);
+ virtual ~Firefly();
+
+ // draw me and my tail
+ virtual void draw();
+ // let t seconds elapse
+ virtual void elapse(double t);
+ // calculate acceleration
+ void calc_accel();
+ // change colors based on parameters
+ void set_color();
+};
+
+#endif // Firefly.h
diff --git a/debian/fireflies/fireflies-2.08/src/main.cc b/debian/fireflies/fireflies-2.08/src/main.cc
new file mode 100644
index 00000000..be440235
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/main.cc
@@ -0,0 +1,396 @@
+#include "main.h"
+#include "scene.h"
+
+#include "canvas_base.h"
+#ifdef HAVE_SDL
+#include "canvas_sdl.h"
+#endif
+#ifdef HAVE_GLX
+#include "canvas_glx.h"
+#endif
+
+#include <iostream>
+#include <stdlib.h>
+
+#ifdef WIN32
+#include <windows.h>
+#else
+#include <argp.h>
+#endif
+
+CanvasBase *canvas;
+Scene scene;
+
+enum {CANVAS_SDL, CANVAS_GLX} canvas_type = CANVAS_SDL;
+int window_id = 0;
+int mspf = 1000/30;
+bool full_screen = false;
+
+#ifdef WIN32
+// mingw doesn't have argp. implement half-assed version
+
+#define OPTION_HIDDEN 1
+#define OPTION_DOC 2
+
+#define ARGP_KEY_ARG 0
+#define ARGP_ERR_UNKNOWN 0
+
+#define ARGP_LONG_ONLY 1
+
+typedef int (*argp_parser_t)(int, char*, struct argp_state*);
+
+struct argp_option {
+ const char *name;
+ int key;
+ const char *arg;
+ int flags;
+ const char *doc;
+ int group;
+};
+
+struct argp {
+ const struct argp_option *options;
+ argp_parser_t parser;
+ const char *args_doc;
+ const char *doc;
+ // there are more members, but this is all I need
+};
+
+struct argp_state {
+ int argc;
+ char **argv;
+ int next;
+ char *name;
+ // there are more members, but this is all I need
+};
+
+void argp_help(struct argp *argp_s)
+{
+ cerr << argp_s->doc << endl;
+
+ for (int i = 0; argp_s->options[i].name; i++) {
+ if (argp_s->options[i].flags & OPTION_HIDDEN)
+ continue;
+ if (argp_s->options[i].flags & OPTION_DOC)
+ cerr << argp_s->options[i].name << endl;
+ else {
+ if (isprint(argp_s->options[i].key))
+ cerr << " -" << (char)argp_s->options[i].key << ",";
+ else
+ cerr << " ";
+ cerr << " --" << argp_s->options[i].name << "\t";
+ cerr << argp_s->options[i].doc << endl;
+ }
+ }
+}
+
+// doesn't work exactly as real argp, but suits this program
+int argp_parse(struct argp *argp_s, int argc, char *argv[], int, int *, void *)
+{
+ char *opt, *arg=0;
+ int optind = 0;
+
+ struct argp_state state;
+ state.argc = argc;
+ state.argv = argv;
+ state.name = argv[0];
+
+ for (int i = 1; i < state.argc; i = state.next) {
+ opt = state.argv[i];
+ arg = 0;
+ optind = -1;
+ state.next = i+1;
+
+ if (opt[0] != '-') {
+ if ((*argp_s->parser)(ARGP_KEY_ARG, 0, &state) < 0)
+ return -1;
+ continue;
+ }
+ opt++;
+ if (*opt == '-')
+ opt++;
+
+ if ((arg = strchr(opt, '=')))
+ *arg++ = 0;
+
+ if (opt[1] == 0) { // short option
+ for (int j = 0; argp_s->options[j].name; j++) {
+ if (opt[0] == argp_s->options[j].key) {
+ optind = j;
+ break;
+ }
+ }
+ if (optind >= 0)
+ ;
+ else if (opt[0] == 'h') {
+ argp_help(argp_s);
+ return -1;
+ }
+ else if (opt[0] == 'u') {
+ argp_help(argp_s);
+ return -1;
+ }
+ else if (opt[0] == 'V') {
+ extern char *argp_program_version;
+ cerr << argp_program_version << endl;
+ return -1;
+ }
+ }
+ else { // long option
+ for (int j = 0; argp_s->options[j].name; j++) {
+ if (strcmp(opt, argp_s->options[j].name)==0) {
+ optind = j;
+ break;
+ }
+ }
+ if (optind >= 0)
+ ;
+ else if (strcmp(opt, "help") == 0) {
+ argp_help(argp_s);
+ return -1;
+ }
+ else if (strcmp(opt, "usage") == 0) {
+ argp_help(argp_s);
+ return -1;
+ }
+ else if (strcmp(opt, "version") == 0) {
+ extern char *argp_program_version;
+ cerr << argp_program_version << endl;
+ return -1;
+ }
+ }
+ if (optind < 0) { // doesn't exist
+ cerr << state.name << ": unrecognized option `"
+ << state.argv[i] << "'" << endl;
+ cerr << "Try `" << state.name << " --help' or `"
+ << state.name << " --usage' for more information" << endl;
+ return -1;
+ }
+ if (argp_s->options[optind].arg != 0 && arg == 0) {
+ state.next = i+2;
+ if (i+1 >= state.argc) {
+ cerr << state.name << ": option requires an argument -- "
+ << opt << endl;
+ return -1;
+ }
+ arg = state.argv[i+1];
+ }
+ if ((*argp_s->parser)(argp_s->options[optind].key, arg, &state) < 0)
+ return -1;
+ }
+ return 0;
+}
+
+#endif
+
+#define OPT_FULLSCREEN 1
+#define OPT_FPS 2
+#define OPT_FASTFORWARD 3
+
+char *mode_help =
+"\n"
+"Per-swarm modes and their default probabilities:\n"
+" 1: normal p=20\n"
+" 2: stop (bait stays still for a brief period) p=10\n"
+" 3: circle (bait loops in a circle briefly) p=10\n"
+" 4: rainbow (color cycle speeds up) p=10\n"
+" 5: glow (tails glow as their width increases) p=15\n"
+" 6: hyperspeed (swarm speeds up) p=10\n"
+" 7: faded (colors fade) p=10\n"
+"Major modes and their default probabilities:\n"
+" 1: all swarms pick a random per-swarm mode p=5\n"
+" 2: kill some flies p=10\n"
+" 3: make some new flies p=10\n"
+" 4: wind speed picks up p=10\n"
+" 5: matrix-style pause and rotate of the scene p=10\n"
+" 6: split a random swarm into two swarms p=10\n"
+" 7: merge two random swarms into one p=10\n"
+"Note: mode probabilities are relative. For example, if A has p=5, and B has\n"
+"p=1, that simply means A is 5 times more likely to occur than B.";
+
+const char *argp_program_version =
+"Fireflies " PACKAGE_VERSION " by Mattperry <[email protected]>";
+
+static char doc[] =
+"Moving swarms of delicious eye candy.";
+
+static struct argp_option options[] = {
+{"window-id", 'W', "WinID", OPTION_HIDDEN},
+{"root", 'r', 0, 0, "Draw on the root window"},
+
+{"fullscreen", OPT_FULLSCREEN, 0, 0, "Full screen mode"},
+{"fps", OPT_FPS, "NUM", 0, "Frames per second (default = 30 fps)"},
+{"fastforward", OPT_FASTFORWARD, "NUM", 0, "Fast forward factor (default = 1)"},
+{"minbaits", 'b', "NUM", 0, "Minimum baits (default = 2)"},
+{"maxbaits", 'B', "NUM", 0, "Maximum baits (default = 5)"},
+{"minflies", 'f', "NUM", 0, "Minimum total fireflies (default = 100)"},
+{"maxflies", 'F', "NUM", 0, "Maximum total fireflies (default = 175)"},
+{"size", 's', "NUM", 0, "Firefly size (default = 15)"},
+{"bspeed", 'V', "NUM", 0, "Bait speed (default = 50)"},
+{"baccel", 'A', "NUM", 0, "Bait acceleration (default = 600)"},
+{"fspeed", 'v', "NUM", 0, "Firefly speed (default = 100)"},
+{"faccel", 'a', "NUM", 0, "Firefly acceleration (default = 300)"},
+{"colorspeed", 'c', "NUM", 0, "Swarm's color cycling speed (default = 15)"},
+{"taillength", 't', "NUM", 0, "Firefly's tail length (default = 23)"},
+{"tailwidth", 'T', "NUM", 0, "Firefly's tail width (default = 25)"},
+{"tailopacity", 'o', "NUM", 0,
+ "Firefly's tail opacity/brightness ([0-100] default = 60)"},
+{"glowfactor", 'g', "NUM", 0,
+ "Factor by which tailwidth increases during glow (default = 20)"},
+{"wind", 'w', "NUM", 0, "Wind speed (default = 30)"},
+{"drawbait", 'd', 0, 0, "Draw the baits that the fireflies chase"},
+{"modeswarm", 'm', "MODENUM VAL", 0,
+ "Change the frequency of per-swarm mode MODENUM to VAL"},
+{"modemajor", 'M', "MODENUM VAL", 0,
+ "Change the frequency of major mode MODENUM to VAL"},
+{mode_help, 0, 0, OPTION_DOC, 0, -1},
+{0, 0, 0, 0}
+};
+
+int parse_opt(int key, char *arg, struct argp_state *state)
+{
+ switch (key) {
+ case 'W':
+ canvas_type = CANVAS_GLX;
+ window_id = strtol(arg, 0, 0);
+ break;
+ case 'r':
+ canvas_type = CANVAS_GLX;
+ break;
+ case OPT_FULLSCREEN:
+ full_screen = true;
+ break;
+ case OPT_FPS:
+ mspf = 1000/atoi(arg);
+ break;
+ case OPT_FASTFORWARD:
+ scene.fast_forward = atoi(arg);
+ if (scene.fast_forward == 0) {
+ cerr << state->name
+ << ": -fastforward must be > 0" << endl;
+ return -1;
+ }
+ break;
+ case 'b':
+ scene.minbaits = (unsigned)atoi(arg);
+ break;
+ case 'B':
+ scene.maxbaits = (unsigned)atoi(arg);
+ break;
+ case 'f':
+ scene.minflies = (unsigned)atoi(arg);
+ break;
+ case 'F':
+ scene.maxflies = (unsigned)atoi(arg);
+ break;
+ case 's':
+ scene.fsize = atoi(arg)/10.0;
+ break;
+ case 'V':
+ scene.bspeed = atoi(arg);
+ break;
+ case 'A':
+ scene.baccel = atoi(arg);
+ break;
+ case 'v':
+ scene.fspeed = atoi(arg);
+ break;
+ case 'a':
+ scene.faccel = atoi(arg);
+ break;
+ case 'c':
+ scene.hue_rate = atoi(arg);
+ break;
+ case 't':
+ scene.tail_length = atoi(arg)/10.0;
+ break;
+ case 'T':
+ scene.tail_width = atoi(arg)/10.0;
+ break;
+ case 'o':
+ scene.tail_opaq = atoi(arg)/100.0;
+ if (scene.tail_opaq < 0 || scene.tail_opaq > 1) {
+ cerr << state->name
+ << ": -tailopacity must be in the range [0,100]" << endl;
+ return -1;
+ }
+ break;
+ case 'g':
+ scene.glow_factor = atoi(arg)/10.0;
+ break;
+ case 'w':
+ scene.wind_speed = atoi(arg)/10.0;
+ break;
+ case 'd':
+ scene.draw_bait = true;
+ break;
+ case 'm': {
+ int which = atoi(arg);
+ unsigned val;
+ if (state->next < state->argc) {
+ val = (unsigned)atoi(state->argv[state->next]);
+ state->next++;
+ }
+ else {
+ cerr << state->name << ": option -modebait requires 2 arguments" << endl;
+ return -1;
+ }
+ scene.bmodes.change(which, (double)val);
+ break;
+ }
+ case 'M': {
+ int which = atoi(arg);
+ unsigned val;
+ if (state->next < state->argc) {
+ val = (unsigned)atoi(state->argv[state->next]);
+ state->next++;
+ }
+ else {
+ cerr << state->name << ": option -modebait requires 2 arguments" << endl;
+ return -1;
+ }
+ scene.smodes.change(which, (double)val);
+ break;
+ }
+ default:
+ return ARGP_ERR_UNKNOWN;
+ break;
+ }
+ return 0;
+}
+
+static struct argp argp_s = { options, parse_opt, 0, doc };
+
+int main(int argc, char **argv)
+{
+ if (argp_parse (&argp_s, argc, argv, ARGP_LONG_ONLY, 0, 0) != 0)
+ return 0;
+
+ switch (canvas_type) {
+ case CANVAS_GLX:
+#ifdef HAVE_GLX
+ canvas = new CanvasGLX(&scene, full_screen, mspf, window_id);
+#else
+ cerr << argv[0] << ": cannot make GLX window (you must have GLX support enabled)" << endl;
+ return 1;
+#endif
+ break;
+ case CANVAS_SDL:
+#ifdef HAVE_SDL
+ canvas = new CanvasSDL(&scene, full_screen, mspf, "Fireflies", "fireflies");
+#else
+ cerr << argv[0] << ": cannot make SDL window (you must have SDL support enabled)" << endl;
+ return 1;
+#endif
+ break;
+ }
+
+ if (canvas->init() < 0) {
+ cerr << "Can't init display." << endl;
+ return 0;
+ }
+
+ scene.create();
+
+ return canvas->loop();
+}
diff --git a/debian/fireflies/fireflies-2.08/src/main.h b/debian/fireflies/fireflies-2.08/src/main.h
new file mode 100644
index 00000000..3663ebc6
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/main.h
@@ -0,0 +1,11 @@
+#ifndef _MAIN_H
+#define _MAIN_H
+
+#include "../config.h"
+
+#include <gfx/config.h> // libgfx is retarded
+#include <GL/gl.h>
+
+using namespace std;
+
+#endif // _MAIN_H
diff --git a/debian/fireflies/fireflies-2.08/src/modes.cc b/debian/fireflies/fireflies-2.08/src/modes.cc
new file mode 100644
index 00000000..780c7488
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/modes.cc
@@ -0,0 +1,211 @@
+#include "modes.h"
+#include "bait.h"
+#include "scene.h"
+
+#define BMODE_WAIT rand_real(10., 15.)
+#define SMODE_WAIT rand_real(10., 20.)
+
+void bait_start_mode(Bait *b, int mode)
+{
+ b->mode_next = scene.bmodes.rand();
+ b->mode_when = b->age + BMODE_WAIT;
+
+ switch (mode) {
+ case BMODE_NORMAL: // normal mode
+ if (b->attractor) {
+ delete b->attractor;
+ b->attractor = 0;
+ }
+ b->bspeed = b->fuzz*scene.bspeed;
+ b->baccel = b->fuzz*scene.baccel;
+ b->fspeed = b->fuzz*scene.fspeed;
+ b->faccel = b->fuzz*scene.faccel;
+
+ b->hue_rate = b->fuzz*scene.hue_rate;
+ break;
+ case BMODE_STOP: // stop mode
+ if (b->attractor || b->bspeed==0) // don't do it if we're already doing it
+ break;
+ b->bspeed = 0;
+ b->stop_timer.add(mode, b->age + rand_real(2., 3.));
+ break;
+ case BMODE_ATTRACTOR: // attractor
+ if (b->attractor || b->bspeed==0) // don't do it if we're already doing it
+ break;
+ b->attractor = new Vec3f(b->pos + rand_vec3(-10, 10));
+ b->baccel = (b->bspeed*b->bspeed/20.0);
+ b->stop_timer.add(mode, b->age + rand_real(5., 10.));
+ break;
+ case BMODE_RAINBOW: // rainbow mode
+ b->hue_rate = rand_int(10, 15)*scene.hue_rate;
+ b->stop_timer.add(mode, b->age + rand_real(10., 15.));
+ break;
+ case BMODE_GLOW: // glow mode
+ b->glow = true;
+ b->stop_timer.add(mode, b->age + rand_real(10., 20.));
+ break;
+ case BMODE_HYPERSPEED: // hyperspeed mode
+ b->bspeed = 1.5*scene.bspeed;
+ b->baccel = 1.5*scene.baccel;
+ b->fspeed = 2*scene.fspeed;
+ b->faccel = 3*scene.faccel;
+ b->stop_timer.add(mode, b->age + rand_real(10., 20.));
+ break;
+ case BMODE_FADED: // faded color mode
+ b->hsv[1] = rand_real(0.4, 0.6);
+ b->stop_timer.add(mode, b->age + rand_real(10., 20.));
+ break;
+ }
+
+#ifdef DEBUG
+ cerr << "baitmode=" << mode << " for "
+ << (b->stop_timer.events.empty() ? 0 : b->stop_timer.events[0].second-b->age)
+ << "s\tnext=" << b->mode_next << " in " << b->mode_when-b->age << "s" << endl;
+#endif
+}
+
+void bait_stop_mode(Bait* b, int mode)
+{
+ switch (mode) {
+ case BMODE_NOTHING:
+ case BMODE_NORMAL:
+ return;
+ break;
+ case BMODE_STOP: // anti stop mode
+ b->bspeed = b->fuzz*scene.bspeed;
+ break;
+ case BMODE_ATTRACTOR: // anti attractor
+ delete b->attractor;
+ b->attractor = 0;
+ b->baccel = b->fuzz*scene.baccel;
+ break;
+ case BMODE_RAINBOW: // anti rainbow mode
+ b->hue_rate = b->fuzz*scene.hue_rate;
+ break;
+ case BMODE_GLOW: // anti glow mode
+ b->glow = false;
+ break;
+ case BMODE_HYPERSPEED: // anti hyperspeed mode
+ b->bspeed = b->fuzz*scene.bspeed;
+ b->baccel = b->fuzz*scene.baccel;
+ b->fspeed = b->fuzz*scene.fspeed;
+ b->faccel = b->fuzz*scene.faccel;
+ break;
+ case BMODE_FADED:
+ b->hsv[1] = 0.8;
+ break;
+ }
+
+#ifdef DEBUG
+ cerr << "\tstopped=" << mode << endl;
+#endif
+}
+
+void scene_start_mode(int mode)
+{
+ scene.mode_next = scene.smodes.rand();
+ scene.mode_when = scene.curtime + SMODE_WAIT;
+
+ // negatives keep them off the modelist
+ switch (mode) {
+ case SMODE_SWARMS: { // all-swarm mode
+ int bmode = scene.bmodes.rand();
+ if (bmode < 0)
+ break;
+ for (GLuint i = 0; i < scene.baits.size(); i++) {
+ scene.baits[i]->stop_timer.clear(); // clear out any stops
+ bait_start_mode(scene.baits[i], BMODE_NORMAL); // set default.
+ bait_start_mode(scene.baits[i], bmode);
+ }
+ break;
+ }
+ case SMODE_FLYKILL: { // firefly go byebye
+ if (scene.flies.size() <= scene.minflies) // not too few
+ break;
+ int max = (scene.flies.size() - scene.minflies);
+ int n = rand_int(max/3, max);
+ scene.rem_flies(n);
+#ifdef DEBUG
+ cerr << "deleted " << n << " flies" << endl;
+#endif
+ break;
+ }
+ case SMODE_FLYBIRTH: { // hello firefly
+ if (scene.flies.size() >= scene.maxflies) // not too many
+ break;
+ int max = (scene.maxflies - scene.flies.size());
+ int n = rand_int(max/3, max);
+ scene.add_flies(n);
+#ifdef DEBUG
+ cerr << "created " << n << " flies" << endl;
+#endif
+ break;
+ }
+ case SMODE_WINDY: // it's getting windy in here!
+ scene.wind_speed *= 3;
+ scene.mode_next = -SMODE_WINDY;
+ break;
+ case -SMODE_WINDY: // calm the wind down
+ scene.wind_speed /= 3;
+ break;
+ case SMODE_MATRIX: {// matrix mode
+ scene.matrix = scene.curtime;
+ scene.matrix_axis = Vec3f(rand_int(-1, 1), rand_int(-1, 1), rand_int(-1, 1));
+ if (norm2(scene.matrix_axis) == 0)
+ scene.matrix_axis = Vec3f(0, 1, 0);
+ unitize(scene.matrix_axis);
+ scene.mode_next = -SMODE_MATRIX;
+ scene.mode_when = scene.curtime + rand_real(4.0, 5.0);
+ break;
+ }
+ case -SMODE_MATRIX: // anti matrix
+ scene.matrix = -1.0;
+ break;
+ case SMODE_SWARMSPLIT: { // split mode
+ if (scene.baits.size() >= scene.maxbaits) // not too many
+ break;
+ Bait *b1 = scene.baits[rand_int(0, scene.baits.size()-1)];
+ Bait *b2 = new Bait();
+ b2->pos = b1->pos;
+ scene.baits.push_back(b2);
+ double fpb = (double)scene.flies.size()/scene.baits.size();
+ int n = rand_int((int)(fpb/4), (int)(fpb/2));
+ for (GLuint i = 0; i < scene.flies.size() && n > 0; i++) {
+ if (scene.flies[i]->bait == b1) {
+ scene.flies[i]->bait = b2;
+ scene.flies[i]->age = 0.0;
+ n--;
+ }
+ }
+ break;
+ }
+ case SMODE_SWARMMERGE: { // merge mode
+ if (scene.baits.size() <= scene.minbaits)
+ break;
+ int i1 = rand_int(0, scene.baits.size()-1);
+ int i2 = rand_other(0, scene.baits.size()-1, i1);
+ Bait *b1 = scene.baits[i1];
+ Bait *b2 = scene.baits[i2];
+
+ for (GLuint i = 0; i < scene.flies.size(); i++) {
+ if (scene.flies[i]->bait == b2) {
+ scene.flies[i]->bait = b1;
+ scene.flies[i]->age = 0.0;
+ }
+ }
+ vector<Bait*>::iterator it = scene.baits.begin();
+ for (; it != scene.baits.end(); it++) {
+ if ((*it) == b2) {
+ scene.baits.erase(it);
+ break;
+ }
+ }
+ delete b2;
+ break;
+ }
+ }
+#ifdef DEBUG
+ cerr << "scenemode=" << mode << ", next=" << scene.mode_next << " in "
+ << scene.mode_when-scene.curtime << endl;
+#endif
+}
diff --git a/debian/fireflies/fireflies-2.08/src/modes.h b/debian/fireflies/fireflies-2.08/src/modes.h
new file mode 100644
index 00000000..8884c37d
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/modes.h
@@ -0,0 +1,34 @@
+#ifndef _MODES_H
+#define _MODES_H
+
+#define SMODE_NOTHING 0
+#define SMODE_SWARMS 1
+#define SMODE_FLYKILL 2
+#define SMODE_FLYBIRTH 3
+#define SMODE_WINDY 4
+#define SMODE_MATRIX 5
+#define SMODE_SWARMSPLIT 6
+#define SMODE_SWARMMERGE 7
+#define NUM_SMODES 8
+
+#define BMODE_NOTHING 0
+#define BMODE_NORMAL 1
+#define BMODE_STOP 2
+#define BMODE_ATTRACTOR 3
+#define BMODE_RAINBOW 4
+#define BMODE_GLOW 5
+#define BMODE_HYPERSPEED 6
+#define BMODE_FADED 7
+#define NUM_BMODES 8
+
+class Bait;
+
+// force b to start behaving in manner described by "mode"
+void bait_start_mode(Bait *b, int mode);
+// cancel effects of mode "mode" - may cancel other modes too
+void bait_stop_mode(Bait *b, int mode);
+
+// activate the scene mode "mode"
+void scene_start_mode(int mode);
+
+#endif // _MODES_H
diff --git a/debian/fireflies/fireflies-2.08/src/resource.h b/debian/fireflies/fireflies-2.08/src/resource.h
new file mode 100644
index 00000000..54d69491
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/resource.h
@@ -0,0 +1,25 @@
+//{{NO_DEPENDENCIES}}
+#define IDC_CONF_MINBAITS 1000
+#define IDC_CONF_MAXBAITS 1001
+#define IDC_CONF_MINFLIES 1002
+#define IDC_CONF_MAXFLIES 1003
+#define IDC_CONF_FSIZE 1004
+#define IDC_CONF_BSPEED 1005
+#define IDC_CONF_BACCEL 1006
+#define IDC_CONF_FSPEED 1007
+#define IDC_CONF_FACCEL 1008
+#define IDC_CONF_HUERATE 1009
+#define IDC_CONF_TAILLENGTH 1010
+#define IDC_CONF_TAILWIDTH 1011
+#define IDC_CONF_TAILOPAQ 1012
+#define IDC_CONF_GLOWFACTOR 1013
+#define IDC_CONF_WIND 1014
+#define IDC_CONF_DRAWBAIT 1015
+#define IDC_CONF_FASTFORWARD 1016
+#define IDC_CONF_FPS 1017
+#define IDC_CONF_BMODE(n) 1020+n
+#define IDC_CONF_SMODE(n) 1040+n
+
+#define IDC_DEFAULTS 1100
+
+#define IDC_STATIC -1
diff --git a/debian/fireflies/fireflies-2.08/src/resource.rc b/debian/fireflies/fireflies-2.08/src/resource.rc
new file mode 100644
index 00000000..f68ef468
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/resource.rc
@@ -0,0 +1,88 @@
+#include <windows.h>
+#include <winbase.h>
+#include <scrnsave.h>
+#include <string.h>
+#include <time.h>
+#include "resource.h"
+#include "../config.h"
+
+#define X1 10
+#define W1 70
+#define X2 90
+#define W2 25
+#define X3 125
+#define W3 70
+#define X4 190
+#define W4 25
+
+#define Y1(n) 2+15*n
+#define Y2(n) 15*n
+
+#define H1 12
+
+#define WIDTH 235
+
+#define BOX_COL1(row, text, id)\
+ LTEXT text,IDC_STATIC,X1,Y1(row),W1,H1\
+ EDITTEXT id, X2,Y2(row),W2,H1,ES_AUTOHSCROLL|ES_NUMBER
+#define BOX_COL2(row, text, id)\
+ LTEXT text,IDC_STATIC,X3,Y1(row),W3,H1\
+ EDITTEXT id, X4,Y2(row),W4,H1,ES_AUTOHSCROLL|ES_NUMBER
+
+// Dialog
+DLG_SCRNSAVECONFIGURE DIALOG DISCARDABLE 34, 32, WIDTH, Y1(22)
+STYLE DS_MODALFRAME|WS_POPUP|WS_VISIBLE|WS_CAPTION|WS_SYSMENU
+CAPTION "Fireflies Screen Saver"
+FONT 8, "Helv"
+BEGIN
+ CTEXT "Fireflies " PACKAGE_VERSION,IDC_STATIC,0,5,WIDTH,8
+ CTEXT "by Matt Perry",IDC_STATIC,0,15,WIDTH,8
+ CTEXT "http://somewhere.fscked.org",IDC_STATIC,0,25,WIDTH,8
+ BOX_COL1(3, "Frames per sec:", IDC_CONF_FPS)
+ BOX_COL2(3, "Fast forward speed:", IDC_CONF_FASTFORWARD)
+ BOX_COL1(4, "Minimum baits:", IDC_CONF_MINBAITS)
+ BOX_COL2(4, "Minimum fireflies:", IDC_CONF_MINFLIES)
+ BOX_COL1(5, "Maximum baits:", IDC_CONF_MAXBAITS)
+ BOX_COL2(5, "Maximum fireflies:", IDC_CONF_MAXFLIES)
+ CONTROL "Draw baits",IDC_CONF_DRAWBAIT,"Button",
+ BS_AUTOCHECKBOX|WS_TABSTOP, X1,Y1(6),W1,10
+ BOX_COL2(6, "Firefly size:", IDC_CONF_FSIZE)
+ BOX_COL1(7, "Firefly speed:", IDC_CONF_FSPEED)
+ BOX_COL2(7, "Firefly acceleration:", IDC_CONF_FACCEL)
+ BOX_COL1(8, "Bait speed:", IDC_CONF_BSPEED)
+ BOX_COL2(8, "Bait acceleration:", IDC_CONF_BACCEL)
+ BOX_COL1(9, "Color cycle speed:", IDC_CONF_HUERATE)
+ BOX_COL2(9, "Glow factor:", IDC_CONF_GLOWFACTOR)
+ BOX_COL1(10, "Tail length:", IDC_CONF_TAILLENGTH)
+ BOX_COL2(10, "Tail width:", IDC_CONF_TAILWIDTH)
+ BOX_COL1(11, "Tail opacity (0-100):", IDC_CONF_TAILOPAQ)
+ BOX_COL2(11, "Wind speed:", IDC_CONF_WIND)
+
+ CTEXT "Per-swarm mode frequency:",IDC_STATIC, X1,Y1(12),X3-10 - X1,H1
+ CTEXT "Major mode frequency:",IDC_STATIC, X3,Y1(12),WIDTH-10 - X3,H1
+
+ BOX_COL1(13, "Normal mode:", IDC_CONF_BMODE(1))
+ BOX_COL1(14, "Bait takes a breather:", IDC_CONF_BMODE(2))
+ BOX_COL1(15, "Bait goes in a loop:", IDC_CONF_BMODE(3))
+ BOX_COL1(16, "Psychadelic tails:", IDC_CONF_BMODE(4))
+ BOX_COL1(17, "Glowing tails:", IDC_CONF_BMODE(5))
+ BOX_COL1(18, "Swarms get hyper:", IDC_CONF_BMODE(6))
+ BOX_COL1(19, "Faded colors:", IDC_CONF_BMODE(7))
+
+ BOX_COL2(13, "All-Swarm mode:", IDC_CONF_SMODE(1))
+ BOX_COL2(14, "Kill some flies:", IDC_CONF_SMODE(2))
+ BOX_COL2(15, "Create some flies:", IDC_CONF_SMODE(3))
+ BOX_COL2(16, "Wind picks up:", IDC_CONF_SMODE(4))
+ BOX_COL2(17, "Matrix mode:", IDC_CONF_SMODE(5))
+ BOX_COL2(18, "A swarm splits in 2:", IDC_CONF_SMODE(6))
+ BOX_COL2(19, "Two swarms merge:", IDC_CONF_SMODE(7))
+
+ DEFPUSHBUTTON "OK",IDOK, X1+10,Y1(21),50,14,WS_GROUP
+ PUSHBUTTON "Restore Defaults",IDC_DEFAULTS,X1+75,Y1(21),70,14
+ PUSHBUTTON "Cancel",IDCANCEL, X3+40,Y1(21),50,14
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_DESCRIPTION "Fireflies"
+END
diff --git a/debian/fireflies/fireflies-2.08/src/resource.rc.french b/debian/fireflies/fireflies-2.08/src/resource.rc.french
new file mode 100644
index 00000000..b0729f65
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/resource.rc.french
@@ -0,0 +1,88 @@
+#include <windows.h>
+#include <winbase.h>
+#include <scrnsave.h>
+#include <string.h>
+#include <time.h>
+#include "resource.h"
+#include "../config.h"
+
+#define X1 10
+#define W1 70
+#define X2 90
+#define W2 25
+#define X3 125
+#define W3 70
+#define X4 190
+#define W4 25
+
+#define Y1(n) 2+15*n
+#define Y2(n) 15*n
+
+#define H1 12
+
+#define WIDTH 235
+
+#define BOX_COL1(row, text, id)\
+ LTEXT text,IDC_STATIC,X1,Y1(row),W1,H1\
+ EDITTEXT id, X2,Y2(row),W2,H1,ES_AUTOHSCROLL|ES_NUMBER
+#define BOX_COL2(row, text, id)\
+ LTEXT text,IDC_STATIC,X3,Y1(row),W3,H1\
+ EDITTEXT id, X4,Y2(row),W4,H1,ES_AUTOHSCROLL|ES_NUMBER
+
+// Dialog
+DLG_SCRNSAVECONFIGURE DIALOG DISCARDABLE 34, 32, WIDTH, Y1(22)
+STYLE DS_MODALFRAME|WS_POPUP|WS_VISIBLE|WS_CAPTION|WS_SYSMENU
+CAPTION "Fireflies Screen Saver"
+FONT 8, "Helv"
+BEGIN
+ CTEXT "Fireflies " PACKAGE_VERSION,IDC_STATIC,0,5,WIDTH,8
+ CTEXT "par Matt Perry",IDC_STATIC,0,15,WIDTH,8
+ CTEXT "http://somewhere.fscked.org",IDC_STATIC,0,25,WIDTH,8
+ BOX_COL1(3, "Images par sec:", IDC_CONF_FPS)
+ BOX_COL2(3, "Vitesse d'avance rapide:", IDC_CONF_FASTFORWARD)
+ BOX_COL1(4, "Nombre min. d'app�ts :", IDC_CONF_MINBAITS)
+ BOX_COL2(4, "Nombre min. de lucioles :", IDC_CONF_MINFLIES)
+ BOX_COL1(5, "Nombre max. d'app�ts :", IDC_CONF_MAXBAITS)
+ BOX_COL2(5, "Nombres maxi. de lucioles :", IDC_CONF_MAXFLIES)
+ CONTROL "Dessiner les app�ts",IDC_CONF_DRAWBAIT,"Button",
+ BS_AUTOCHECKBOX|WS_TABSTOP, X1,Y1(6),W1,10
+ BOX_COL2(6, "Taille des lucioles :", IDC_CONF_FSIZE)
+ BOX_COL1(7, "Vitesse des lucioles :", IDC_CONF_FSPEED)
+ BOX_COL2(7, "Acc�l�ration des lucioles :", IDC_CONF_FACCEL)
+ BOX_COL1(8, "Vitesse des app�ts :", IDC_CONF_BSPEED)
+ BOX_COL2(8, "Acc�l�ration des app�ts :", IDC_CONF_BACCEL)
+ BOX_COL1(9, "Vitesse du cycle de couleurs :", IDC_CONF_HUERATE)
+ BOX_COL2(9, "Luminescence :", IDC_CONF_GLOWFACTOR)
+ BOX_COL1(10, "Longueur de la queue :", IDC_CONF_TAILLENGTH)
+ BOX_COL2(10, "Largeur de la queue :", IDC_CONF_TAILWIDTH)
+ BOX_COL1(11, "Opacit� de la queue : (0-100):", IDC_CONF_TAILOPAQ)
+ BOX_COL2(11, "Vitesse du vent :", IDC_CONF_WIND)
+
+ CTEXT "Fr�quence du mode par essaim :",IDC_STATIC, X1,Y1(12),X3-10 - X1,H1
+ CTEXT "Fr�quence du mode majeur :",IDC_STATIC, X3,Y1(12),WIDTH-10 - X3,H1
+
+ BOX_COL1(13, "Mode normal :", IDC_CONF_BMODE(1))
+ BOX_COL1(14, "Pause syndicale de l'app�t :", IDC_CONF_BMODE(2))
+ BOX_COL1(15, "App�t parti en boucle :", IDC_CONF_BMODE(3))
+ BOX_COL1(16, "Queues psych�d�liques :", IDC_CONF_BMODE(4))
+ BOX_COL1(17, "Queues luminescentes :", IDC_CONF_BMODE(5))
+ BOX_COL1(18, "Essaim excit� :", IDC_CONF_BMODE(6))
+ BOX_COL1(19, "Fl�trissement des couleurs :", IDC_CONF_BMODE(7))
+
+ BOX_COL2(13, "Mode Tout-Essaim :", IDC_CONF_SMODE(1))
+ BOX_COL2(14, "Extinction de lucioles :", IDC_CONF_SMODE(2))
+ BOX_COL2(15, "Naissance de lucioles :", IDC_CONF_SMODE(3))
+ BOX_COL2(16, "Le vent se l�ve :", IDC_CONF_SMODE(4))
+ BOX_COL2(17, "Mode Matrix :", IDC_CONF_SMODE(5))
+ BOX_COL2(18, "Scission d'un essaim :", IDC_CONF_SMODE(6))
+ BOX_COL2(19, "Fusion de 2 essaims :", IDC_CONF_SMODE(7))
+
+ DEFPUSHBUTTON "OK",IDOK, X1+10,Y1(21),50,14,WS_GROUP
+ PUSHBUTTON "R�tablir les valeurs par d�faut",IDC_DEFAULTS,X1+75,Y1(21),70,14
+ PUSHBUTTON "Annuler",IDCANCEL, X3+40,Y1(21),50,14
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_DESCRIPTION "Fireflies"
+END
diff --git a/debian/fireflies/fireflies-2.08/src/scene.cc b/debian/fireflies/fireflies-2.08/src/scene.cc
new file mode 100644
index 00000000..1f8872dd
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/scene.cc
@@ -0,0 +1,252 @@
+#include "scene.h"
+#include "modes.h"
+
+#include <GL/glu.h>
+
+Vec3f world;
+
+#define WIND_WAIT rand_real(4*tail_length, 8*tail_length)
+#define OFFSCREEN_VEC3() rand_vec3(-2*world[0], 2*world[0])
+
+// max elapse time is 1/10th of a second so we don't get jaggies even if
+// the CPU load is high and everything slows down
+#define MAX_ELAPSE 0.1
+
+Scene::Scene() : matrix(-1.0)
+{
+ set_defaults();
+}
+
+Scene::~Scene()
+{
+ GLuint i;
+ for (i = 0; i < baits.size(); i++)
+ delete baits[i];
+ for (i = 0; i < flies.size(); i++)
+ delete flies[i];
+}
+
+void Scene::set_defaults()
+{
+ bmodes.clear();
+ smodes.clear();
+
+ // all bmodes equally likely
+ for (int i = 0; i < NUM_BMODES; i++)
+ bmodes.add(i, 10);
+
+ // except these
+ bmodes.change(BMODE_NORMAL, 20);
+ bmodes.change(BMODE_GLOW, 15);
+
+ // all smodes equally likely
+ for (int i = 0; i < NUM_SMODES; i++)
+ smodes.add(i, 10);
+
+ // except...
+ smodes.change(SMODE_SWARMS, 5);
+
+ fast_forward = 1;
+ minbaits = 2;
+ maxbaits = 5;
+ minflies = 100;
+ maxflies = 175;
+ fsize = 1.5;
+ bspeed = 50.;
+ baccel = 600.;
+ fspeed = 100.;
+ faccel = 300.;
+ hue_rate = 15.;
+ tail_length = 2.25;
+ tail_width = 2.5;
+ tail_opaq = 0.6;
+ glow_factor = 2.;
+ wind_speed = 3.;
+ draw_bait = false;
+}
+
+void Scene::create()
+{
+ GLuint i, nbaits, nflies;
+
+ curtime = 0.0;
+ wind_when = curtime + WIND_WAIT;
+ scene_start_mode(-1); // non-existent, just to initialize
+
+ nbaits = (minbaits + maxbaits)/2;
+ nflies = (minflies + maxflies)/2;
+
+ baits.reserve(nbaits);
+ for (i = 0; i < nbaits; i++) {
+ baits.push_back(new Bait());
+ }
+
+ add_flies(nflies);
+
+ for (i = 0; i < 3; i++) {
+ switch (rand_int(0, 1)) {
+ case 0: accel[i] = -1; wind[i] = -wind_speed; break;
+ default: accel[i] = 1; wind[i] = wind_speed; break;
+ }
+ }
+}
+
+void Scene::add_flies(unsigned n)
+{
+ if (flies.size() >= maxflies)
+ return;
+ if (flies.size()+n >= maxflies)
+ n = maxflies - flies.size();
+
+ // about 3 groups per bait
+ int groupsize = (flies.size()+n)/(3*baits.size());
+ if (groupsize < 10) // but at least size 10
+ groupsize = 10;
+ Vec3f where;
+ Bait *b = baits[0];
+ flies.reserve(flies.size()+n);
+ for (unsigned i = 0; i < n; i++) {
+ if ((i % groupsize) == 0) {
+ where = OFFSCREEN_VEC3();
+ b = baits[rand_int(0, baits.size()-1)];
+ }
+ flies.push_back(new Firefly(b, where, world[2]/3));
+ }
+}
+
+void Scene::rem_flies(unsigned n)
+{
+ if (flies.size() <= minflies)
+ return;
+ if (flies.size()-n <= minflies)
+ n = flies.size() - minflies;
+
+ Bait *b = baits[rand_int(0, baits.size()-1)];
+ vector<Firefly*>::iterator it = flies.begin();
+ while (it != flies.end() && n > 0) {
+ if ((*it)->bait == b) {
+ delete (*it);
+ it = flies.erase(it);
+ n--;
+ }
+ else
+ it++;
+ }
+}
+
+void Scene::resize(int width, int height)
+{
+ GLfloat aspect = (GLfloat)width / (GLfloat)height;
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(80., aspect, 5, 2000);
+
+ world[2] = 50.;
+ if (width > height) {
+ world[1] = 80.;
+ world[0] = world[1] * (width) / height;
+ }
+ else {
+ world[0] = 80.;
+ world[1] = world[0] * (height) / width;
+ }
+ camera.pos = Vec3f(0., 0., 3*world[2]);
+
+ // For some reason this needs to be done everytime we resize, otherwise
+ // blending is disabled (and I assume other functions)
+ glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
+
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+}
+
+void Scene::apply_camera()
+{
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glTranslated(-camera.pos[0], -camera.pos[1], -camera.pos[2]);
+ glRotated(camera.rot_angle, camera.rot_axis[0], camera.rot_axis[1], camera.rot_axis[2]);
+}
+
+void Scene::draw()
+{
+#if 0
+ glColor4f(0.5f, 0.5f, 0.5f, 1.0f);
+ draw_box(-world, world);
+#endif
+
+ for (GLuint i = 0; i < baits.size(); i++)
+ baits[i]->draw();
+
+ for (GLuint i = 0; i < flies.size(); i++)
+ flies[i]->draw();
+
+ vector<Tail*>::iterator it = dead_tails.begin();
+ for (; it != dead_tails.end(); it++)
+ (*it)->draw();
+
+}
+
+void Scene::elapse(double t)
+{
+ for (unsigned i = 0; i < fast_forward; i++)
+ elapse_once(t);
+}
+
+void Scene::elapse_once(double t)
+{
+ if (t > MAX_ELAPSE)
+ t = MAX_ELAPSE;
+ // matrix mode?
+ if (matrix > 0) {
+ matrix += t;
+ if (matrix >= mode_when)
+ scene_start_mode(-SMODE_MATRIX);
+ else if (matrix-curtime >= 0.5) {
+ Quat q = axis_to_quat(camera.rot_axis, DEG_TO_RAD(camera.rot_angle));
+ Quat dq = axis_to_quat(matrix_axis, 0.7*t);
+
+ q = q * dq;
+ unitize(q);
+
+ camera.rot_axis = q.vector();
+ camera.rot_angle = RAD_TO_DEG(2.0*acos(q.scalar()));
+ }
+ return;
+ }
+
+ curtime += t;
+ if (curtime >= mode_when)
+ scene_start_mode(mode_next);
+
+ // the wind, she's a changin!
+ if (curtime >= wind_when) {
+ for (int i = 0; i < 3; i++) {
+ if (rand_int(0, 1) == 0)
+ accel[i] = -accel[i];
+ }
+ // next change based on tail length (so we can see a whole cycle of
+ // prettiness blow one way before it gets tossed another)
+ wind_when = curtime + WIND_WAIT;
+ }
+
+ wind += accel*t;
+ clamp_vec(wind, wind_speed);
+
+ // elapse, my children
+ for (GLuint i = 0; i < baits.size(); i++)
+ baits[i]->elapse(t);
+
+ for (GLuint i = 0; i < flies.size(); i++)
+ flies[i]->elapse(t);
+
+ vector<Tail*>::iterator it = dead_tails.begin();
+ while (it != dead_tails.end()) {
+ if ((*it)->elapse(t)) { // he's dead!
+ delete (*it);
+ it = dead_tails.erase(it);
+ }
+ else it++;
+ }
+}
diff --git a/debian/fireflies/fireflies-2.08/src/scene.h b/debian/fireflies/fireflies-2.08/src/scene.h
new file mode 100644
index 00000000..10df4710
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/scene.h
@@ -0,0 +1,80 @@
+#ifndef _SCENE_H
+#define _SCENE_H
+
+#include "main.h"
+
+#include "control.h"
+#include "bait.h"
+#include "firefly.h"
+#include "tail.h"
+
+#include <gfx/quat.h>
+#include <vector>
+
+class Scene {
+public:
+ vector<Bait*> baits;
+ vector<Firefly*> flies;
+ vector<Tail*> dead_tails;
+
+ Control camera; // camera orientation
+ double curtime; // total time the program's been running
+ Vec3f wind; // current wind direction
+ Vec3f accel; // wind is changing
+ double wind_when; // time before next wind change
+ int mode_next; // the next mode to activate
+ double mode_when; // next time to activate a mode
+ double matrix; // -1 if not active, else a timer for how long
+ // the "matrix" mode has been active
+ Vec3f matrix_axis; // the axis to rotate around matrix-style
+
+ // options
+ RandVar smodes; // enabled modes for scene
+ RandVar bmodes; // enabled modes for baits
+
+ unsigned fast_forward;
+ unsigned minbaits;
+ unsigned maxbaits;
+ unsigned minflies;
+ unsigned maxflies;
+ double fsize;
+ double bspeed;
+ double baccel;
+ double fspeed;
+ double faccel;
+ double hue_rate;
+ double tail_length;
+ double tail_width;
+ double tail_opaq;
+ double glow_factor;
+ double wind_speed;
+ bool draw_bait;
+
+ Scene();
+ ~Scene();
+
+ // set default options (called from constructor)
+ void set_defaults();
+ // create the scene with the following parameters
+ // NOTE: the scene does not exist until this is called!
+ void create();
+ // add 'n' flies to random baits
+ void add_flies(unsigned n);
+ // remove 'n' flies from random baits
+ void rem_flies(unsigned n);
+ // resize the scene.
+ void resize(int width, int height);
+ // apply the camera transformations (translate+rotate)
+ void apply_camera();
+ // draw the scene (CREATE it first!)
+ void draw();
+ // animation: let t seconds elapse (fast_forward times)
+ void elapse(double t);
+ // animation: let t seconds elapse once
+ void elapse_once(double t);
+};
+
+extern Vec3f world;
+extern Scene scene;
+
+#endif // scene.h
diff --git a/debian/fireflies/fireflies-2.08/src/tail.cc b/debian/fireflies/fireflies-2.08/src/tail.cc
new file mode 100644
index 00000000..18e013b6
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/tail.cc
@@ -0,0 +1,89 @@
+#include "tail.h"
+#include "firefly.h"
+#include "scene.h"
+
+Tail::Tail(Firefly *_owner)
+ : owner(_owner)
+{
+}
+
+#define SET_COLOR(c, a) glColor4f(c[0], c[1], c[2], a)
+#define SET_VERTEX(v, dx) glVertex3d(v[0]+dx, v[1], v[2])
+#define DO_POINT(t, dx, a)\
+ SET_COLOR((t).color, a); SET_VERTEX((t).pos, dx)
+
+void Tail::draw()
+{
+ if (links.size() < 2) // need at least 2 links
+ return;
+
+ deque<Link>::iterator it = links.begin();
+ double glow_width = scene.glow_factor*scene.tail_width;
+ double stretch_factor = 2*scene.fsize*scene.wind[0];
+ double dx1, dx2;
+
+ dx2 = ((*it).glow ? glow_width : scene.tail_width);
+ for (; (it+1) != links.end(); it++) {
+ // half-width of the tail
+ dx1 = dx2;
+ dx2 = ((*(it+1)).glow ? glow_width : scene.tail_width);
+
+ // have the wind stretch the tail (greater effect on ends)
+ double age = (*it).age/scene.tail_length;
+ double stretch = stretch_factor*age*age;
+ double alpha = 0.9 - age;
+ if (alpha > scene.tail_opaq)
+ alpha = scene.tail_opaq;
+
+ // two rectangles: outer vertices have alpha=0, inner two have
+ // alpha based on age. note: alpha goes negative, but opengl
+ // should clamp it to 0.
+ if (stretch > 0) { // stretch to the right
+ glBegin(GL_QUAD_STRIP);
+ DO_POINT(*it, -dx1, 0);
+ DO_POINT(*(it+1), -dx2, 0);
+
+ DO_POINT(*it, 0, alpha);
+ DO_POINT(*(it+1), 0, alpha);
+
+ DO_POINT(*it, dx1 + stretch, 0);
+ DO_POINT(*(it+1), dx2 + stretch, 0);
+ }
+ else { // stretch to the left
+ glBegin(GL_QUAD_STRIP);
+ DO_POINT(*it, -dx1 + stretch, 0);
+ DO_POINT(*(it+1), -dx2 + stretch, 0);
+
+ DO_POINT(*it, 0, alpha);
+ DO_POINT(*(it+1), 0, alpha);
+
+ DO_POINT(*it, dx1, 0);
+ DO_POINT(*(it+1), dx2, 0);
+ }
+ glEnd();
+ }
+}
+
+bool Tail::elapse(double t)
+{
+ // pop off the dead ones.
+ // note we only have to check the end, since that's where they're gonna
+ // be dying from. deque is very nice for this, because it has constant
+ // time insertion/removal from both ends.
+ while (!links.empty() && links.back().age >= scene.tail_length)
+ links.pop_back();
+
+ deque<Link>::iterator it = links.begin();
+ for (; it != links.end(); it++) {
+ (*it).age += t;
+ double age = (*it).age/scene.tail_length;
+ (*it).pos += scene.wind*age*age;
+ }
+
+ if (owner == 0) // my owner died! grow no longer
+ return links.empty(); // if we're empty, tell caller we're dead
+
+ links.push_front(Link(owner->pos, owner->color, owner->bait->glow));
+
+ return false;
+}
diff --git a/debian/fireflies/fireflies-2.08/src/tail.h b/debian/fireflies/fireflies-2.08/src/tail.h
new file mode 100644
index 00000000..727a8479
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/tail.h
@@ -0,0 +1,37 @@
+#ifndef _TAIL_H
+#define _TAIL_H
+
+#include "main.h"
+#include "utils.h"
+#include <gfx/vec3.h>
+#include <deque>
+
+class Firefly;
+
+class Tail
+{
+ struct Link {
+ Vec3f pos; // position of this link
+ rgbColor color; // color
+ double age; // how long this link has existed (in seconds)
+ bool glow; // glow = wider size and higher alpha
+ Link(Vec3f _pos, rgbColor _color, bool _glow)
+ : pos(_pos), color(_color), age(0), glow(_glow) {}
+ };
+ deque<Link> links;
+public:
+ Firefly *owner; // the firefly I'm attached to
+
+ // Tail(
+ // the firefly we're attached to)
+ Tail(Firefly *_owner);
+ virtual ~Tail() {}
+
+ // draw the tail
+ // returns: true if we're a dead tail, false otherwise
+ virtual void draw();
+ // let t seconds elapse
+ virtual bool elapse(double t);
+};
+
+#endif // tail.h
diff --git a/debian/fireflies/fireflies-2.08/src/utils.cc b/debian/fireflies/fireflies-2.08/src/utils.cc
new file mode 100644
index 00000000..c63d75e9
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/utils.cc
@@ -0,0 +1,161 @@
+#include "utils.h"
+
+#ifndef DEBUG
+#define NDEBUG
+#endif
+#include <assert.h>
+
+void clamp_vec(Vec3f& vec, double max)
+{
+ for (int i = 0; i < 3; i++) {
+ if (vec[i] > max) vec[i] = max;
+ else if (vec[i] < -max) vec[i] = -max;
+ }
+}
+
+int rand_other(int lo, int hi, int other)
+{
+ int r;
+ assert(lo != hi);
+ while ((r = rand_int(lo, hi)) == other)
+ ;
+ return r;
+}
+
+// rgb range [0,1]
+// hsv range hue:[0,360], sat and val:[0,1]
+hsvColor rgb_to_hsv(const rgbColor& rgb)
+{
+ hsvColor hsv;
+ float max, min, diff;
+
+ hsv[3] = rgb[3]; // alpha value
+
+ max = MAX3(rgb[0], rgb[1], rgb[2]);
+ min = MIN3(rgb[0], rgb[1], rgb[2]);
+ diff = max - min;
+
+ hsv[2] = max; // value = max
+
+ if (FEQ(max, 0)) {
+ hsv[0] = 0; // hue should be undefined.. oh well
+ hsv[1] = 0; // saturation = 0
+ return hsv;
+ }
+ else
+ hsv[1] = diff/max; // saturation
+
+ if (rgb[0] == max) // red is max
+ hsv[0] = (rgb[1] - rgb[2]) / diff; // hue between yellow and mag
+ else if (rgb[1] == max) // green is max
+ hsv[0] = 2 + (rgb[2] - rgb[1]) / diff; // hue between cyan and yellow
+ else // blue is max
+ hsv[0] = 4 + (rgb[0] - rgb[1]) / diff; // hue between magenta and cyan
+
+ hsv[0] *= 60.; // degrees
+ if (hsv[0] < 0)
+ hsv[0] += 360.;
+
+ return hsv;
+}
+
+rgbColor hsv_to_rgb(const hsvColor& hsv)
+{
+ rgbColor rgb;
+ float h = hsv[0]/60, s = hsv[1], v = hsv[2];
+ float f, p, q, t;
+ int i;
+
+ rgb[3] = hsv[3]; // alpha value
+
+ if (FEQ(s, 0)) {
+ rgb[0] = rgb[1] = rgb[2] = v;
+ return rgb;
+ }
+
+ // don't ask me what this means.. I yoinked it from a website.
+ i = (int)floor(h); // sectors 0 - 5
+ f = h - i;
+ p = v*(1 - s);
+ q = v*(1 - s*f);
+ t = v*(1 - s*(1-f));
+
+ switch (i) { // what sector?
+ case 0: rgb[0] = v; rgb[1] = t; rgb[2] = p; break;
+ case 1: rgb[0] = q; rgb[1] = v; rgb[2] = p; break;
+ case 2: rgb[0] = p; rgb[1] = v; rgb[2] = t; break;
+ case 3: rgb[0] = p; rgb[1] = q; rgb[2] = v; break;
+ case 4: rgb[0] = t; rgb[1] = p; rgb[2] = v; break;
+ default: rgb[0] = v; rgb[1] = p; rgb[2] = q; break;
+ }
+ return rgb;
+}
+
+void Timer::add(int what, double when)
+{
+ deque<Event>::iterator it = events.begin();
+ while (it != events.end()) {
+ if (when < (*it).second)
+ break;
+ it++;
+ }
+ events.insert(it, Event(what, when));
+}
+
+bool Timer::is_ready(double now)
+{
+ return (!events.empty() && (now >= events[0].second));
+}
+
+void Timer::clear()
+{
+ events.clear();
+}
+
+int Timer::pop()
+{
+ int what = events[0].first;
+ events.pop_front();
+ return what;
+}
+
+void RandVar::add(int val, double prob)
+{
+ max_prob += prob;
+ events.push_back(Event(val, prob));
+}
+
+void RandVar::change(int val, double newprob)
+{
+ for (size_t i = 0; i < events.size(); i++) {
+ if (events[i].first == val) {
+ max_prob += (newprob - events[i].second);
+ events[i].second = newprob;
+#ifdef DEBUG
+ cerr << val << " changed to " << newprob << " out of " <<
+ max_prob << endl;
+#endif
+ return;
+ }
+ }
+ // didn't find a match, so add it
+ add(val, newprob);
+}
+
+void RandVar::clear()
+{
+ events.clear();
+ max_prob = 0.0;
+}
+
+int RandVar::rand()
+{
+ double r = rand_real(0., max_prob);
+ double prob = 0.;
+ for (size_t i = 0; i < events.size(); i++) {
+ prob += events[i].second;
+ if (r < prob)
+ return events[i].first;
+ }
+ return -1; // should never happen
+}
diff --git a/debian/fireflies/fireflies-2.08/src/utils.h b/debian/fireflies/fireflies-2.08/src/utils.h
new file mode 100644
index 00000000..819303e8
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/utils.h
@@ -0,0 +1,83 @@
+#ifndef _UTILS_H
+#define _UTILS_H
+
+#include "main.h"
+#include <gfx/mat4.h>
+#include <deque>
+#include <vector>
+#include <utility>
+
+#define SIGN(x) ((x >= 0) ? 1 : -1)
+
+#define MAX3(x, y, z) ( (x>y) ? ((x>z) ? x : z) : y )
+#define MIN3(x, y, z) ( (x<y) ? ((x<z) ? x : z) : y )
+
+typedef Vec4f rgbColor;
+typedef Vec4f hsvColor;
+
+// clamp vector's components each to +/- magnitude
+void clamp_vec(Vec3f& vec, double max);
+
+// return a random number between lo and hi inclusive
+inline int rand_int(int lo, int hi)
+{ return lo + (int)((hi-lo+1)*((double)rand()/(double)(RAND_MAX+1.0))); }
+
+inline double rand_real(double lo, double hi)
+{ return lo + (hi-lo)*((double)rand()/(double)(RAND_MAX+1.0)); }
+
+inline Vec3f rand_vec3(double lo, double hi)
+{ return Vec3f(rand_real(lo, hi), rand_real(lo, hi), rand_real(lo, hi)); }
+
+// return a random int other than 'other'
+int rand_other(int lo, int hi, int other);
+
+// return the unit vector in the direction of v
+inline Vec3f unit_vec(const Vec3f& v)
+{ double n = norm(v); return (n == 0) ? v : v/n; }
+
+// color space conversion
+hsvColor rgb_to_hsv(const rgbColor& rgb);
+rgbColor hsv_to_rgb(const hsvColor& hsv);
+
+// a set of events and the time for them to occur
+class Timer {
+public:
+ typedef pair<int, double> Event;
+ deque<Event> events;
+
+ Timer() {}
+ // add an event that needs to be done at time 'when'
+ void add(int what, double when);
+ // checks if an event is ready, ie the current time (now) is past one
+ // of the times for an event.
+ bool is_ready(double now);
+ // clears all events
+ void clear();
+ // return the earliest-to-occur event. note: this (obviously) does not
+ // check that the current time is past the event's time.
+ int pop();
+};
+
+// a random variable which takes on a given value with a given probability
+class RandVar {
+public:
+ typedef pair<int, double> Event;
+ vector<Event> events;
+ double max_prob; // the sum of probabilities of all events
+
+ RandVar() : max_prob(0.0) {}
+
+ // add a value and it's probability weight to the set
+ void add(int val, double prob);
+ // change a value's probability weight. if val is not in the set,
+ // it is added.
+ void change(int val, double newprob);
+ // clear all events
+ void clear();
+ // return one of the values based on the weighted probability of each
+ // value. for example, if value '0' has probability 0.9, it will be
+ // returned 90% of the time.
+ int rand();
+};
+
+#endif // _UTILS_H
diff --git a/debian/fireflies/fireflies-2.08/src/vroot.h b/debian/fireflies/fireflies-2.08/src/vroot.h
new file mode 100644
index 00000000..65097b83
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/vroot.h
@@ -0,0 +1,156 @@
+/* -*- Mode: C; tab-width: 2 -*- */
+/*****************************************************************************/
+/** Copyright 1991 by Andreas Stolcke **/
+/** Copyright 1990 by Solbourne Computer Inc. **/
+/** Longmont, Colorado **/
+/** **/
+/** All Rights Reserved **/
+/** **/
+/** Permission to use, copy, modify, and distribute this software and **/
+/** its documentation for any purpose and without fee is hereby **/
+/** granted, provided that the above copyright notice appear in all **/
+/** copies and that both that copyright notice and this permis- **/
+/** sion notice appear in supporting documentation, and that the **/
+/** name of Solbourne not be used in advertising **/
+/** in publicity pertaining to distribution of the software without **/
+/** specific, written prior permission. **/
+/** **/
+/** ANDREAS STOLCKE AND SOLBOURNE COMPUTER INC. DISCLAIMS ALL WARRANTIES **/
+/** WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF **/
+/** MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ANDREAS STOLCKE **/
+/** OR SOLBOURNE BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL **/
+/** DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA **/
+/** OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER **/
+/** TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE **/
+/** OR PERFORMANCE OF THIS SOFTWARE. **/
+/*****************************************************************************/
+/*
+ * vroot.h -- Virtual Root Window handling header file
+ *
+ * This header file redefines the X11 macros RootWindow and DefaultRootWindow,
+ * making them look for a virtual root window as provided by certain `virtual'
+ * window managers like swm and tvtwm. If none is found, the ordinary root
+ * window is returned, thus retaining backward compatibility with standard
+ * window managers.
+ * The function implementing the virtual root lookup remembers the result of
+ * its last invocation to avoid overhead in the case of repeated calls
+ * on the same display and screen arguments.
+ * The lookup code itself is taken from Tom LaStrange's ssetroot program.
+ *
+ * Most simple root window changing X programs can be converted to using
+ * virtual roots by just including
+ *
+ * #include <X11/vroot.h>
+ *
+ * after all the X11 header files. It has been tested on such popular
+ * X clients as xphoon, xfroot, xloadimage, and xaqua.
+ * It also works with the core clients xprop, xwininfo, xwd, and editres
+ * (and is necessary to get those clients working under tvtwm).
+ * It does NOT work with xsetroot; get the xsetroot replacement included in
+ * the tvtwm distribution instead.
+ *
+ * Andreas Stolcke <[email protected]>, 9/7/90
+ * - replaced all NULL's with properly cast 0's, 5/6/91
+ * - free children list (suggested by Mark Martin <[email protected]>), 5/16/91
+ * - include X11/Xlib.h and support RootWindowOfScreen, too 9/17/91
+ *
+ * Jamie Zawinski <[email protected]>, 28-Apr-1997
+ * - use ANSI C
+ *
+ * Jamie Zawinski <[email protected]>, 3-Sep-2003
+ * - if the environment variable "XSCREENSAVER_WINDOW" is set, use that
+ * as the root window instead of searching for __SWM_VROOT.
+ *
+ * Jamie Zawinski <[email protected]>, 14-Aug-2004
+ * - changes to get gcc to stop whining about "type punning".
+ *
+ * Jamie Zawinski <[email protected]>, 16-Dec-2004
+ * - fixed that last fix.
+ */
+
+#ifndef _VROOT_H_
+#define _VROOT_H_
+#define _XSCREENSAVER_VROOT_H_
+
+#if !defined(lint) && !defined(SABER)
+static const char vroot_rcsid[] =
+ "#Id: vroot.h,v 1.8 2004/12/16 05:33:54 jwz Exp #" "\n"
+ "#Id: vroot.h,v 1.4 1991/09/30 19:23:16 stolcke Exp stolcke #";
+#endif
+
+#include <X11/X.h>
+#include <X11/Xatom.h>
+#include <X11/Xlib.h>
+
+static Window
+#ifdef __STDC__ /* ANSIfication added by jwz, to avoid superfluous warnings. */
+VirtualRootWindowOfScreen(Screen *screen)
+#else /* !__STDC__ */
+VirtualRootWindowOfScreen(screen) Screen *screen;
+#endif /* !__STDC__ */
+{
+ static Screen *save_screen = (Screen *)0;
+ static Window root = (Window)0;
+
+ if (screen != save_screen) {
+ Display *dpy = DisplayOfScreen(screen);
+ Atom __SWM_VROOT = None;
+ int i;
+ Window rootReturn, parentReturn, *children;
+ unsigned int numChildren;
+
+ /* first check for a hex or decimal window ID in the environment */
+ const char *xss_id = getenv("XSCREENSAVER_WINDOW");
+ if (xss_id && *xss_id) {
+ unsigned long id = 0;
+ char c;
+ if (1 == sscanf (xss_id, " 0x%lx %c", &id, &c) ||
+ 1 == sscanf (xss_id, " %lu %c", &id, &c)) {
+ root = (Window) id;
+ save_screen = screen;
+ return root;
+ }
+ }
+
+ root = RootWindowOfScreen(screen);
+
+ /* go look for a virtual root */
+ __SWM_VROOT = XInternAtom(dpy, "__SWM_VROOT", False);
+ if (XQueryTree(dpy, root, &rootReturn, &parentReturn,
+ &children, &numChildren)) {
+ for (i = 0; i < numChildren; i++) {
+ Atom actual_type;
+ int actual_format;
+ unsigned long nitems, bytesafter;
+ unsigned char *newRoot = 0;
+
+ if (XGetWindowProperty(dpy, children[i],
+ __SWM_VROOT, 0, 1, False, XA_WINDOW,
+ &actual_type, &actual_format,
+ &nitems, &bytesafter,
+ &newRoot) == Success
+ && newRoot) {
+ root = *((Window *) newRoot);
+ break;
+ }
+ }
+ if (children)
+ XFree((char *)children);
+ }
+
+ save_screen = screen;
+ }
+
+ return root;
+}
+
+#undef RootWindowOfScreen
+#define RootWindowOfScreen(s) VirtualRootWindowOfScreen(s)
+
+#undef RootWindow
+#define RootWindow(dpy,screen) VirtualRootWindowOfScreen(ScreenOfDisplay(dpy,screen))
+
+#undef DefaultRootWindow
+#define DefaultRootWindow(dpy) VirtualRootWindowOfScreen(DefaultScreenOfDisplay(dpy))
+
+#endif /* _VROOT_H_ */
diff --git a/debian/fireflies/fireflies-2.08/src/winsaver.cc b/debian/fireflies/fireflies-2.08/src/winsaver.cc
new file mode 100644
index 00000000..8e98396d
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/src/winsaver.cc
@@ -0,0 +1,415 @@
+#include "main.h"
+#include "scene.h"
+#include "modes.h"
+
+#include <GL/gl.h>
+#include <GL/glu.h>
+#include <windows.h>
+#include <scrnsave.h>
+#include <iostream>
+#include <sys/timeb.h>
+
+#include "resource.h"
+
+#define MY_HKEY "Software\\Fireflies\\2.0"
+
+//Define a Windows timer
+#define TIMER 1
+
+// the default fps
+double fps = 20;
+
+Scene scene;
+
+static struct timeb then;
+
+void init_gl(HWND hWnd, HDC & hDC, HGLRC & hRC)
+{
+ PIXELFORMATDESCRIPTOR pfd;
+ ZeroMemory( &pfd, sizeof pfd );
+ pfd.nSize = sizeof pfd;
+ pfd.nVersion = 1;
+ //pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL; //blaine's
+ pfd.dwFlags = PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
+ pfd.iPixelType = PFD_TYPE_RGBA;
+ pfd.cColorBits = 24;
+
+ hDC = GetDC( hWnd );
+
+ int i = ChoosePixelFormat( hDC, &pfd );
+ SetPixelFormat( hDC, i, &pfd );
+
+ hRC = wglCreateContext( hDC );
+ wglMakeCurrent( hDC, hRC );
+}
+
+// Shut down OpenGL
+void close_gl(HWND hWnd, HDC hDC, HGLRC hRC)
+{
+ wglMakeCurrent( NULL, NULL );
+ wglDeleteContext( hRC );
+
+ ReleaseDC( hWnd, hDC );
+}
+
+void start_animate(int width, int height)
+{
+ glViewport(0, 0, width, height);
+
+ scene.resize(width, height);
+ scene.create();
+
+ ftime(&then);
+}
+
+void on_timer(HDC hDC) //increment and display
+{
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ struct timeb now;
+ ftime(&now);
+ double t = double(now.time - then.time)
+ + double((now.millitm - then.millitm)/1000.0);
+ then = now;
+ scene.elapse(t);
+ scene.apply_camera();
+ scene.draw();
+
+ glFinish();
+ SwapBuffers(hDC);
+}
+
+// Registry bullshit
+void reg_get_val(HKEY key, char *str, bool *val)
+{
+ DWORD dsize = sizeof(int);
+ DWORD dwtype = 0;
+ int tmp;
+
+ if (RegQueryValueEx(key, str, 0, &dwtype, (BYTE*)&tmp, &dsize)==0)
+ *val = (tmp==1);
+}
+
+void reg_get_val(HKEY key, char *str, int *val)
+{
+ DWORD dsize = sizeof(int);
+ DWORD dwtype = 0;
+ int tmp;
+
+ if (RegQueryValueEx(key, str, 0, &dwtype, (BYTE*)&tmp, &dsize)==0)
+ *val = tmp;
+}
+
+void reg_get_val(HKEY key, char *str, unsigned *val)
+{
+ DWORD dsize = sizeof(int);
+ DWORD dwtype = 0;
+ int tmp;
+
+ if (RegQueryValueEx(key, str, 0, &dwtype, (BYTE*)&tmp, &dsize)==0)
+ *val = (unsigned)tmp;
+}
+
+void reg_get_val(HKEY key, char *str, double *val)
+{
+ DWORD dsize = sizeof(int);
+ DWORD dwtype = 0;
+ int tmp;
+
+ if (RegQueryValueEx(key, str, 0, &dwtype, (BYTE*)&tmp, &dsize)==0)
+ *val = (double)tmp;
+}
+
+void reg_get_val_div10(HKEY key, char *str, double *val)
+{
+ DWORD dsize = sizeof(int);
+ DWORD dwtype = 0;
+ int tmp;
+
+ if (RegQueryValueEx(key, str, 0, &dwtype, (BYTE*)&tmp, &dsize)==0)
+ *val = (double)tmp/10.0;
+}
+
+void reg_get_val_div100(HKEY key, char *str, double *val)
+{
+ DWORD dsize = sizeof(int);
+ DWORD dwtype = 0;
+ int tmp;
+
+ if (RegQueryValueEx(key, str, 0, &dwtype, (BYTE*)&tmp, &dsize)==0)
+ *val = (double)tmp/100.0;
+}
+
+void reg_set_val(HKEY key, char *str, bool val)
+{
+ int tmp = val ? 1 : 0;
+ RegSetValueEx(key, str, 0, REG_DWORD, (BYTE*)&tmp, sizeof(tmp));
+}
+
+void reg_set_val(HKEY key, char *str, int val)
+{
+ RegSetValueEx(key, str, 0, REG_DWORD, (BYTE*)&val, sizeof(val));
+}
+
+void reg_set_val(HKEY key, char *str, unsigned val)
+{
+ RegSetValueEx(key, str, 0, REG_DWORD, (BYTE*)&val, sizeof(val));
+}
+
+void reg_set_val(HKEY key, char *str, double val)
+{
+ int tmp = (int)val;
+ RegSetValueEx(key, str, 0, REG_DWORD, (BYTE*)&tmp, sizeof(tmp));
+}
+
+void reg_set_val_tim10(HKEY key, char *str, double val)
+{
+ int tmp = (int)(val*10);
+ RegSetValueEx(key, str, 0, REG_DWORD, (BYTE*)&tmp, sizeof(tmp));
+}
+
+void reg_set_val_tim100(HKEY key, char *str, double val)
+{
+ int tmp = (int)(val*100);
+ RegSetValueEx(key, str, 0, REG_DWORD, (BYTE*)&tmp, sizeof(tmp));
+}
+
+void read_config()
+{
+ HKEY key;
+ char buf[256];
+ double tmp;
+
+ scene.set_defaults();
+ if (RegOpenKeyEx( HKEY_CURRENT_USER,
+ MY_HKEY,
+ 0, //reserved
+ KEY_QUERY_VALUE,
+ &key) == ERROR_SUCCESS)
+ {
+ reg_get_val(key, "minbaits", &scene.minbaits);
+ reg_get_val(key, "maxbaits", &scene.maxbaits);
+ reg_get_val(key, "minflies", &scene.minflies);
+ reg_get_val(key, "maxflies", &scene.maxflies);
+ reg_get_val_div10(key, "fsize", &scene.fsize);
+ reg_get_val(key, "bspeed", &scene.bspeed);
+ reg_get_val(key, "baccel", &scene.baccel);
+ reg_get_val(key, "fspeed", &scene.fspeed);
+ reg_get_val(key, "faccel", &scene.faccel);
+ reg_get_val(key, "hue_rate", &scene.hue_rate);
+ reg_get_val_div10(key, "tail_length", &scene.tail_length);
+ reg_get_val_div10(key, "tail_width", &scene.tail_width);
+ reg_get_val_div100(key, "tail_opaq", &scene.tail_opaq);
+ reg_get_val_div10(key, "glow_factor", &scene.glow_factor);
+ reg_get_val_div10(key, "wind_speed", &scene.wind_speed);
+ reg_get_val(key, "draw_bait", &scene.draw_bait);
+ reg_get_val(key, "fast_forward", &scene.fast_forward);
+ reg_get_val(key, "fps", &fps);
+
+ for (GLuint i = 0; i < NUM_BMODES; i++) {
+ snprintf(buf, sizeof(buf), "bmode%d", i);
+ reg_get_val(key, buf, &tmp);
+ scene.bmodes.change(i, tmp);
+ }
+ for (GLuint i = 0; i < NUM_SMODES; i++) {
+ snprintf(buf, sizeof(buf), "smode%d", i);
+ reg_get_val(key, buf, &tmp);
+ scene.smodes.change(i, tmp);
+ }
+
+ RegCloseKey(key);
+ }
+}
+
+void write_config(HWND hDlg)
+{
+ HKEY key;
+ DWORD lpdw;
+
+ scene.minbaits = (int)GetDlgItemInt(hDlg, IDC_CONF_MINBAITS, 0, TRUE);
+ scene.maxbaits = (int)GetDlgItemInt(hDlg, IDC_CONF_MAXBAITS, 0, TRUE);
+ scene.minflies = (int)GetDlgItemInt(hDlg, IDC_CONF_MINFLIES, 0, TRUE);
+ scene.maxflies = (int)GetDlgItemInt(hDlg, IDC_CONF_MAXFLIES, 0, TRUE);
+ scene.fsize = ((int)GetDlgItemInt(hDlg, IDC_CONF_FSIZE, 0, TRUE))/10.0;
+ scene.bspeed = (int)GetDlgItemInt(hDlg, IDC_CONF_BSPEED, 0, TRUE);
+ scene.baccel = (int)GetDlgItemInt(hDlg, IDC_CONF_BACCEL, 0, TRUE);
+ scene.fspeed = (int)GetDlgItemInt(hDlg, IDC_CONF_FSPEED, 0, TRUE);
+ scene.faccel = (int)GetDlgItemInt(hDlg, IDC_CONF_FACCEL, 0, TRUE);
+ scene.hue_rate = (int)GetDlgItemInt(hDlg, IDC_CONF_HUERATE, 0, TRUE);
+ scene.tail_length =
+ ((int)GetDlgItemInt(hDlg, IDC_CONF_TAILLENGTH, 0, TRUE))/10.0;
+ scene.tail_width =
+ ((int)GetDlgItemInt(hDlg, IDC_CONF_TAILWIDTH, 0, TRUE))/10.0;
+ scene.tail_opaq =
+ ((int)GetDlgItemInt(hDlg, IDC_CONF_TAILOPAQ, 0, TRUE))/100.0;
+ scene.glow_factor =
+ ((int)GetDlgItemInt(hDlg, IDC_CONF_GLOWFACTOR, 0, TRUE))/10.0;
+ scene.wind_speed =
+ ((int)GetDlgItemInt(hDlg, IDC_CONF_WIND, 0, TRUE))/10.0;
+ scene.draw_bait = (IsDlgButtonChecked(hDlg, IDC_CONF_DRAWBAIT)==BST_CHECKED);
+ scene.fast_forward = (int)GetDlgItemInt(hDlg, IDC_CONF_FASTFORWARD, 0, TRUE);
+ fps = (int)GetDlgItemInt(hDlg, IDC_CONF_FPS, 0, TRUE);
+ for (GLuint i = 0; i < NUM_BMODES; i++) {
+ scene.bmodes.change(i, (double)
+ (UINT)GetDlgItemInt(hDlg, IDC_CONF_BMODE(i), 0, FALSE));
+ }
+ for (GLuint i = 0; i < NUM_SMODES; i++) {
+ scene.smodes.change(i, (double)
+ (UINT)GetDlgItemInt(hDlg, IDC_CONF_SMODE(i), 0, FALSE));
+ }
+
+ if (RegCreateKeyEx( HKEY_CURRENT_USER,
+ MY_HKEY,
+ 0, //reserved
+ "", //ptr to null-term string specifying the object type of this key
+ REG_OPTION_NON_VOLATILE,
+ KEY_WRITE,
+ NULL,
+ &key,
+ &lpdw) == ERROR_SUCCESS)
+ {
+ reg_set_val(key, "minbaits", scene.minbaits);
+ reg_set_val(key, "maxbaits", scene.maxbaits);
+ reg_set_val(key, "minflies", scene.minflies);
+ reg_set_val(key, "maxflies", scene.maxflies);
+ reg_set_val_tim10(key, "fsize", scene.fsize);
+ reg_set_val(key, "bspeed", scene.bspeed);
+ reg_set_val(key, "baccel", scene.baccel);
+ reg_set_val(key, "fspeed", scene.fspeed);
+ reg_set_val(key, "faccel", scene.faccel);
+ reg_set_val(key, "hue_rate", scene.hue_rate);
+ reg_set_val_tim10(key, "tail_length", scene.tail_length);
+ reg_set_val_tim10(key, "tail_width", scene.tail_width);
+ reg_set_val_tim100(key, "tail_opaq", scene.tail_opaq);
+ reg_set_val_tim10(key, "glow_factor", scene.glow_factor);
+ reg_set_val_tim10(key, "wind_speed", scene.wind_speed);
+ reg_set_val(key, "draw_bait", scene.draw_bait);
+ reg_set_val(key, "fast_forward", scene.fast_forward);
+ reg_set_val(key, "fps", fps);
+
+ char buf[256];
+ for (GLuint i = 0; i < NUM_BMODES; i++) {
+ snprintf(buf, sizeof(buf), "bmode%d", i);
+ reg_set_val(key, buf, scene.bmodes.events[i].second);
+ }
+ for (GLuint i = 0; i < NUM_SMODES; i++) {
+ snprintf(buf, sizeof(buf), "smode%d", i);
+ reg_set_val(key, buf, scene.smodes.events[i].second);
+ }
+
+ RegCloseKey(key);
+ }
+}
+
+// main() function
+LRESULT WINAPI
+ScreenSaverProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ static HDC hDC;
+ static HGLRC hRC;
+ static RECT rect;
+ int width, height;
+
+ srand(time(0));
+ switch ( message ) {
+ case WM_CREATE:
+ GetClientRect(hWnd, &rect);
+ width = rect.right;
+ height = rect.bottom;
+
+ read_config();
+
+ init_gl( hWnd, hDC, hRC );
+ start_animate(width, height);
+
+ // tick every 1000/fps ms
+ SetTimer( hWnd, TIMER, (unsigned)(1000/fps), NULL );
+ return 0;
+
+ case WM_DESTROY:
+ KillTimer( hWnd, TIMER );
+ close_gl(hWnd, hDC, hRC);
+ return 0;
+
+ case WM_TIMER:
+ on_timer(hDC);
+ return 0;
+ }
+
+ return DefScreenSaverProc(hWnd, message, wParam, lParam);
+}
+
+void set_dialog(HWND hDlg)
+{
+ SetDlgItemInt(hDlg, IDC_CONF_MINBAITS, (UINT)scene.minbaits, TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_MAXBAITS, (UINT)scene.maxbaits, TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_MINFLIES, (UINT)scene.minflies, TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_MAXFLIES, (UINT)scene.maxflies, TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_FSIZE, (UINT)(scene.fsize*10), TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_BSPEED, (UINT)scene.bspeed, TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_BACCEL, (UINT)scene.baccel, TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_FSPEED, (UINT)scene.fspeed, TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_FACCEL, (UINT)scene.faccel, TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_HUERATE, (UINT)scene.hue_rate, TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_TAILLENGTH, (UINT)(scene.tail_length*10), TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_TAILWIDTH, (UINT)(scene.tail_width*10), TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_TAILOPAQ, (UINT)(scene.tail_opaq*100), TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_GLOWFACTOR, (UINT)(scene.glow_factor*10), TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_WIND, (UINT)(scene.wind_speed*10), TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_FASTFORWARD, (UINT)(scene.fast_forward), TRUE);
+ SetDlgItemInt(hDlg, IDC_CONF_FPS, (UINT)(fps), TRUE);
+
+ CheckDlgButton(hDlg, IDC_CONF_DRAWBAIT,
+ scene.draw_bait ? BST_CHECKED : BST_UNCHECKED);
+ for (GLuint i = 0; i < NUM_BMODES; i++) {
+ SetDlgItemInt(hDlg, IDC_CONF_BMODE(scene.bmodes.events[i].first),
+ (UINT)scene.bmodes.events[i].second, FALSE);
+ }
+ for (GLuint i = 0; i < NUM_SMODES; i++) {
+ SetDlgItemInt(hDlg, IDC_CONF_SMODE(scene.smodes.events[i].first),
+ (UINT)scene.smodes.events[i].second, FALSE);
+ }
+}
+
+// configure dialog
+BOOL WINAPI
+ScreenSaverConfigureDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ static HWND hIDOK;
+
+ switch (message) {
+ case WM_INITDIALOG:
+ LoadString(hMainInstance, IDS_DESCRIPTION, szAppName, 40);
+ read_config();
+ set_dialog(hDlg);
+
+ hIDOK = GetDlgItem(hDlg, IDOK);
+ return TRUE;
+
+ case WM_COMMAND:
+ switch (wParam) {
+ case IDOK:
+ write_config(hDlg);
+ EndDialog(hDlg, TRUE);
+ return TRUE;
+
+ case IDCANCEL:
+ EndDialog(hDlg, FALSE);
+ return TRUE;
+
+ case IDC_DEFAULTS:
+ scene.set_defaults();
+ fps = 20;
+ set_dialog(hDlg);
+ return TRUE;
+ }
+ break;
+ }
+ return FALSE;
+}
+
+// needed for SCRNSAVE.LIB
+BOOL WINAPI RegisterDialogClasses(HANDLE hInst)
+{
+ return TRUE;
+}
diff --git a/debian/fireflies/fireflies-2.08/win32/Makefile b/debian/fireflies/fireflies-2.08/win32/Makefile
new file mode 100644
index 00000000..8e22e923
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/win32/Makefile
@@ -0,0 +1,7 @@
+NSIS_PATH=/c/Program Files/NSIS
+
+all:
+ PATH="$$PATH:$(NSIS_PATH)" makensis.exe fireflies.nsi
+
+clean:
+ rm -f fireflies*.exe
diff --git a/debian/fireflies/fireflies-2.08/win32/fireflies.nsi b/debian/fireflies/fireflies-2.08/win32/fireflies.nsi
new file mode 100644
index 00000000..6cb8e258
--- /dev/null
+++ b/debian/fireflies/fireflies-2.08/win32/fireflies.nsi
@@ -0,0 +1,41 @@
+; fireflies.nsi -
+
+!define VERSION 2.05
+Name "Fireflies ${VERSION}"
+OutFile "fireflies-scr-${VERSION}.exe"
+
+InstallDir $WINDIR
+
+; The stuff to install
+Section "Example2 (required)"
+ SectionIn RO
+
+ MessageBox MB_YESNO|MB_ICONINFORMATION "This will install the fireflies screensaver. Click Yes to proceed." IDYES yesinstall
+ Quit
+ yesinstall:
+ SetOutPath $INSTDIR
+ File "..\src\fireflies.scr"
+
+ ; Write the installation path into the registry
+ WriteRegStr HKLM SOFTWARE\NSIS_Example2 "Install_Dir" "$INSTDIR"
+
+ ; Write the uninstall keys for Windows
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Fireflies" "DisplayName" "Fireflies Screensaver (remove only)"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Fireflies" "UninstallString" '"$INSTDIR\fire-un.exe"'
+ WriteUninstaller "fire-un.exe"
+SectionEnd
+
+;--------------------------------
+; Uninstaller
+
+UninstallText "This will uninstall Fireflies. Hit next to continue."
+
+Section "Uninstall"
+ ; remove registry keys
+ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Fireflies"
+ DeleteRegKey HKCU "Software\Fireflies"
+
+ ; remove files and uninstaller
+ Delete $INSTDIR\fireflies.scr
+ Delete $INSTDIR\fire-un.exe
+SectionEnd
diff --git a/debian/fireflies/fireflies_2.08.orig-libgfx.tar.xz b/debian/fireflies/fireflies_2.08.orig-libgfx.tar.xz
new file mode 100644
index 00000000..510a0f58
--- /dev/null
+++ b/debian/fireflies/fireflies_2.08.orig-libgfx.tar.xz
Binary files differ
diff --git a/debian/fireflies/fireflies_2.08.orig.tar.xz b/debian/fireflies/fireflies_2.08.orig.tar.xz
new file mode 100644
index 00000000..35aa763f
--- /dev/null
+++ b/debian/fireflies/fireflies_2.08.orig.tar.xz
Binary files differ