diff options
author | Michele Calgaro <[email protected]> | 2020-09-11 14:38:47 +0900 |
---|---|---|
committer | Michele Calgaro <[email protected]> | 2020-09-11 14:38:47 +0900 |
commit | 884c8093d63402a1ad0b502244b791e3c6782be3 (patch) | |
tree | a600d4ab0d431a2bdfe4c15b70df43c14fbd8dd0 /debian/fireflies | |
parent | 14e1aa2006796f147f3f4811fb908a6b01e79253 (diff) | |
download | extra-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')
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 + <[email protected]>) + * 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 Binary files differnew file mode 100644 index 00000000..0747db5c --- /dev/null +++ b/debian/fireflies/fireflies-2.08/libgfx-1.0.1.tar.gz 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><iostream></tt> rather than the +old <tt><iostream.h></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 <gfx/gfx.h> +#include <gfx/gui.h> +#include <gfx/gltools.h> +</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 <gfx/gfx.h> +#include <gfx/script.h> +#include <gfx/vec3.h> +</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&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 &cmd) +{ + double sum = 0.0; + int count; + + std::vector<double> values; + cmd.collect_as_numbers(values); + 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; +} +</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 &cmd) +{ + if( cmd.argcount() != 3 ) return SCRIPT_ERR_SYNTAX; + + Vec3 v; + cmd.collect_as_numbers(v, 3); + + cout << v << 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 &cmd) +{ + cout << cmd.argline() << 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 <gfx/geom3d.h> +</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&, const Vec3&, const Vec3&); +</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&, const Vec3&, const Vec3&); + Vec4 triangle_plane(const Vec3&, const Vec3&, const Vec3&); + + Vec3 triangle_raw_normal(const Vec3&, const Vec3&, const Vec3&); + Vec4 triangle_raw_plane(const Vec3&, const Vec3&, const Vec3&); +</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&, const Vec3&, const Vec3&); +</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 <GL/gl.h> + #include <GL/glu.h> +</pre> + +However, to ensure portability you <em>should not</em> do this; use +the following inclusion instead: + +<pre> + #include <gfx/gl.h> +</pre> + +The primary reason for this is that the Microsoft OpenGL headers do +not work properly unless you have included <tt><windows.h></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 <gfx/gltools.h> +</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° 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 Binary files differnew file mode 100644 index 00000000..767daa05 --- /dev/null +++ b/debian/fireflies/fireflies-2.08/libgfx/doc/gui-layout.gif diff --git a/debian/fireflies/fireflies-2.08/libgfx/doc/gui-redbox.gif b/debian/fireflies/fireflies-2.08/libgfx/doc/gui-redbox.gif Binary files differnew file mode 100644 index 00000000..d53d89fd --- /dev/null +++ b/debian/fireflies/fireflies-2.08/libgfx/doc/gui-redbox.gif 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 <gfx/gui.h> +</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 © 1999–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 <intvec.h> +</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<class T, int T_MAX, int N> 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 <limits.h>. + +<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 <class T, int T_MAX> 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& 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& 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 © 1999–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> +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> +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> +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> +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_ &u, const Vec_ &v); + +<i>// Returns the determinant of the matrix</i> +double det(const Mat_ &A); + +<i>// Returns the trace of the matrix (the sum of the diagonals)</i> +double trace(const Mat_ &A); + +<i>// Returns the transpose of A</i> +Mat_ transpose(const Mat_ &A); + +<i>// Returns the adjoint of A</i> +Mat_ adjoint(const Mat_ &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_ &A_inv, const Mat_ &A); +</pre> + +<p>Matrices can also be read from and written to C++ iostreams using the +standard <tt><<</tt> and <tt>>></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 <gfx/mat2.h> +</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 &r0,const Vec2 &r1); + + <i>// Copy values from A</i> + Mat2(const Mat2 &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 <gfx/mat3.h> +</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& r0,const Vec3& r1,const Vec3& r2); + + <i>// Copy values from A</i> + Mat3(const Mat3& 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 <gfx/mat4.h> +</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& r0,const Vec4& r1,const Vec4& r2,const Vec4& r3); + + <i>// Copy values from A</i> + Mat4(const Mat4& 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& delta); + Mat4 scaling_matrix(const Vec3& scale); + Mat4 rotation_matrix_deg(double theta, const Vec3& axis); + Mat4 rotation_matrix_rad(double theta, const Vec3& 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& from, const Vec3& at, const Vec3& 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 <gfx/quat.h> +</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 & scalar part.</i> + Quat(const Vec3& a, double b); <i>// Specify vector & scalar part.</i> + Quat(const Quat& 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& 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); +</pre> + +and as normal binary operations: + +<pre> + Quat operator+(const Quat& q, const Quat& r); + Quat operator*(const Quat& q, const Quat& r); + Quat operator*(const Quat& q, double s); + Quat operator*(double s, const Quat& q); + Quat operator/(const Quat& 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& q); <i>// Return the length of q</i> + Quat conjugate(const Quat& q); <i>// Return conjugate of q</i> + Quat inverse(const Quat& q); <i>// Return multiplicative inverse of q</i> + void unitize(Quat& q); <i>// Convert to unit quaternion</i> + Quat exp(const Quat& q); <i>// Exponential of a <b>unit</b> quaternion </i> + Quat log(const Quat& 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& 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& q); + Mat4 unit_quat_to_matrix(const Quat& q); +</pre> + +<p> +<pre> + Quat slerp(const Quat& from, const Quat& to, double t); +</pre> + +<p>Quaternions can also be read from and written to C++ iostreams using the +standard <tt><<</tt> and <tt>>></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 <gfx/raster.h> +</pre> + +<h3>Image Representation</h3> + +<p>Images are implemented using the <tt>Raster<T></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<T>(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 — rotate object about its centroid + <li>Right mouse drag — translate camera forward/backward + <li>Middle mouse drag — 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> 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> 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> — <tt><gfx/arcball.h></tt> + <li><tt>class Trackball</tt> — <tt><gfx/trackball.h></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<class T> + void bounding_sphere(const TVec3<T>& 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 <gfx/script.h> +</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 &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& name, CmdHandler proc); +</pre> +Member functions can be bound to names uses the templated member +function: +<pre> + template<class T> + 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& 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 &line, CmdEnv &env); + int script_do_line(const char *line, CmdEnv &env); +</pre> +It assumes that its input is a string consisting of a single line — 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 &in, CmdEnv &env); + int script_do_file(const char *name, CmdEnv &env); + int script_do_string(const char *str, CmdEnv &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& 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 &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<std::string> &v) const; + int collect_as_numbers(std::vector<double> &v) const; + int collect_as_numbers(std::vector<int> &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 <gfx/gfx.h> +</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><cstdlib></tt>, <tt><cmath></tt>, +<tt><climits></tt>, and <tt><iostream></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><gfx/config.h></tt> and is generated automatically by the +configuration script. For Microsoft Visual Studio platforms, a +hand-coded header such as <tt><gfx/config-vc5.h></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<class +T></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> +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> 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> +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> +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><<</tt> and <tt>>></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 <gfx/vec2.h> +</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 <gfx/vec3.h> +</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 <gfx/vec4.h> +</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 Binary files differnew file mode 100644 index 00000000..510a0f58 --- /dev/null +++ b/debian/fireflies/fireflies_2.08.orig-libgfx.tar.xz diff --git a/debian/fireflies/fireflies_2.08.orig.tar.xz b/debian/fireflies/fireflies_2.08.orig.tar.xz Binary files differnew file mode 100644 index 00000000..35aa763f --- /dev/null +++ b/debian/fireflies/fireflies_2.08.orig.tar.xz |