--- /dev/null
+------- Flight Gear FAQ v0.03 14/04/1999 ---------------------\r
+\r
+Welcome to the Flight Gear FAQ. Here you find Questions/URL's/Tips about \r
+Flight Gear mainly asked in the mailing lists. \r
+This Document is divided into 5 sections:\r
+ \r
+ 1. Distribution Questions\r
+ 2. Compiling Questions\r
+ 3. User Questions\r
+ 4. Windoze related Questions\r
+ 5. ???\r
+\r
+\r
+-------- Index -----------\r
+\r
+Section One Distribution :\r
+\r
+1) Where can I get the latest version of this FAQ ?\r
+2) What else is a must read ?\r
+3) Where is the latest distribution of Flight Gear... ?\r
+4) Where can I find the newest snapshots ?\r
+5) Where can I fly ?\r
+\r
+\r
+Section Two Compiling :\r
+\r
+1) Flight Gear doesn't smooth compile though configured succesfully\r
+2) "gpc.c" and "gpc.h" files\r
+3) Compiler could not find gfc/... \r
+4) Red Had 5.1 / 5.2 related probs\r
+\r
+Section Three User :\r
+\r
+1) Upside down after crash?\r
+2) Ailleron vs Rudder\r
+3) FG is sooo slow (1 fps).\r
+\r
+Section Four Windoze :\r
+\r
+Section Five ??? :\r
+\r
+========================================================================\r
+\r
+\r
+\r
+SECTION ONE : Distribution Questions\r
+\r
+1.1) Where can I get the latest version of this FAQ ?\r
+\r
+Ans: The latest version is stored at\r
+ http://www.online-club.de/home/olk/progs/flightgear\r
+ and it's updates are announced at flightgear mailing lists.\r
+\r
+------------------------------------------------------------------------\r
+1.2) What else is a must read ?\r
+\r
+Ans: Please also check out the "Getting started"-document which \r
+ provides much, much detailed information.\r
+\r
+------------------------------------------------------------------------\r
+1.3) Where is the latest distribution of Flight Gear... ?\r
+\r
+Ans: ftp://ftp.flightgear.org/pub/fgfs/Source\r
+\r
+------------------------------------------------------------------------\r
+1.4) Where can I find the newest snapshots ?\r
+\r
+Ans: ftp://ftp.flightgear.org/pub/fgfs/Source/Snapshots\r
+\r
+------------------------------------------------------------------------\r
+1.5) Where can I fly ?\r
+\r
+Ans: In front of your monitor, hehehe...\r
+ \r
+[FG until v0.58]:\r
+ Curt has a nice collection of some flight-scenarios in the U.S.\r
+ have a look at the descriptions and needed files \r
+ http://www.flightgear.org/Places/\r
+ \r
+ There are also scenarios located at:\r
+ ftp://ftp.flightgear.org/pub/fgfs/Scenery/\r
+ There you find currently AZ-central, Equador, Spain, Munich (DE)\r
+ \r
+ Frankfurt (DE) can be found at\r
+ http://people.frankfurt.netsurf.de/teddy/frankfurt.tar.gz\r
+ \r
+ Switzerland scenario at\r
+ http://www.2sic.ch/Hoshy/flightgear.html\r
+ \r
+[FG after v0.59 incl.]:\r
+ Due to changes to the scenery format, which is currently v0.2, \r
+ the old Scenery Files (see above) are not compatible to FlightGear\r
+ v0.59 and later.\r
+\r
+ The folowing Scenery Files are recommended instead:\r
+ \r
+ Alaska (Prince William Sounds) Scenario located at\r
+ ftp://ftp.flightgear.org/pub/fgfs/Scenery/new-format-demo.tar.gz\r
+ \r
+ You also need the fgfs-base-0.59.tar.gz package with new graphics\r
+ ftp://ftp.flightgear.org/pub/fgfs/Shared\r
+ \r
+------------------------------------------------------------------------\r
+\r
+========================================================================\r
+\r
+SECTION TWO : Compiling questions\r
+ For the time beeing more Unix/Linux related.\r
+\r
+\r
+2.1) Flight Gear doesn't smooth compile though configured succesful\r
+\r
+Ans: The fgfs-sources contain some Scenery Tool Kits beeing yet beta,\r
+ they use libraries written by others so there is often some\r
+ code/makefile tweaking needed. But this doesn't matter since\r
+ the Flight Gear executable is then already compiled. \r
+ Just make install from toplevel Makefile directory \r
+ and up you go...\r
+\r
+-----------------------------------------------------------------------\r
+2.2) "gpc.o" and "gpc.h"\r
+ Can anyone advise me on what to do with the gpc.c and gpc.h files. \r
+ I retrieved them OK after "configure"reported that they were needed. \r
+ But, I don't know what I'm supposed to do with them.\r
+\r
+Ans: Flight Gear's Makefile expects libgpc to be on your System.\r
+ Try this: gcc -c gpc.c\r
+ ar cru libgpc.a gpc.o\r
+ Then copy libgpc.a to some place that your compiler knows about such\r
+ as /usr/local/lib, and then try compiling again. A better idea would be\r
+ to set LIBRARY_PATH to point to the location where you installed \r
+ the libgpc.a file instead of dropping it into a system-wide library \r
+ directory.\r
+ \r
+ Caveat Emptor: \r
+ One word of warning to Linux / Unix users. I recently discovered \r
+ that the gnu pascal compiler is also called "gpc" and comes with a \r
+ libgpc.a I know this has caused confusion on the part of at least one\r
+ or two people.\r
+\r
+-------------------------------------------------------------------------\r
+2.3) compiler could not find gfc/...\r
+ \r
+e.g. main.cxx:32: gfc/gshapefile.h: No such file or directory\r
+ main.cxx:30: gfc/gadt_polygon.h: No such file or directory\r
+ main.cxx:31: gfc/gdbf.h: No such file or directory\r
+ main.cxx:32: gfc/gshapefile.h: No such file or directory\r
+ there is no gadt_polygon.h on my system. What library does it belong to ?\r
+\r
+Ans: This is part of the GFC library it is not needed to run FlightGear\r
+ as it is part of the beta Scenery Tool Kit\r
+ GFC -- Geographic Foundation Classes library\r
+ http://www.geog.psu.edu/~qian/gfc/index.html\r
+\r
+--------------------------------------------------------------------------\r
+2.4) Red Had 5.1/5.2 related problems\r
+\r
+I quickly ran into problems with the basic_string library. (see undefined ref.)\r
+\r
+ c++ -g -O2 -L/usr/local/lib -L/usr/X11R6/lib -o testbucket\r
+ testbucket.o../../Lib/Bucket/libBucket.a -lmtestbucket.o: In function\r
+ FGBucket::gen_base_path(void)':/usr/include/g++/std/bastring.h:75: undefined\r
+ reference to Basic_string<char,string_char_traits<char>,\r
+ __default_alloc_template<true, 0>>::Rep::clone(void)'collect2: ld returned 1 \r
+ exit statusmake[2]: *** [testbucket] Error 1\r
+\r
+\r
+Ans: I ran into the same problem on my RedHat 5.2 system (brand new). \r
+ After some searching I found out that it's got to do with a 'bug' in \r
+ the stdlibc++libraries. I picked up libstdc++-2.9.0-2.i386.rpm, \r
+ installed it and FGFS compiled just fine (after some other problems \r
+ with gfc, I had to pick up the one from the fgfs site). However, some \r
+ other packages must have the libstdc++-2.8 libraries....\r
+\r
+Ans: I also solved it with the 2.8 libraries by including \r
+ /usr/include/g++/std/bastring.cc into the example programs. \r
+ I believe this can be done since it's a template. \r
+\r
+==========================================================================\r
+\r
+SECTION THREE : User Questions\r
+\r
+\r
+3.1) Upside down after crash ?\r
+ After beeing crashed on the ground the navion continues to fly\r
+ upside-down and it stucks at almost groundlevel,\r
+ (like cruse missile ;-) flying with a reverse heading as before\r
+ and "balancing" left and right. The only solution seems to be\r
+ to give full throttle and then at +80-90 kts it can move up by\r
+ pressing one of the "elevator arrows" like a rocket doing a loop.\r
+ But hey, that's nerving bc the loop is allways to short and the\r
+ responding time of navion (correcting the "roll") is also to short,\r
+ which results in crash so you have to re-throttle again.\r
+\r
+\r
+Ans: In his infinite wisdom the FlightGear GrandMaster decided \r
+ that planes were to valuable to allow them to be destroyed\r
+ by novice pilots who seemed to crash alot.\r
+\r
+ The result of this as you have noticed is that\r
+ with a little practice an ingenuity you can trim the ship \r
+ to fly inverted along the ground.\r
+\r
+ The trick to learn is to roll back to normal (non inverted)\r
+ do this by nursing the elevator to get to about 500 feet or so\r
+ and use the aierlons to snap roll 180*.\r
+\r
+ This is all good avionics except for the plane not destroying itself. \r
+\r
+ Remember the controls work in reverse when you are inverted\r
+ and keep that airspeed up !!!\r
+\r
+---------------------------------------------------------------------------\r
+3.2) Ailleron vs Rudder\r
+ What's the difference. Both help the plane to turn, that i did understand\r
+\r
+Ans: There is a bit of info on aileron vs. rudder here:\r
+ http://www.arundel.net/xplane/html/crosswind.html\r
+ http://www.monmouth.com/~jsd/how/\r
+\r
+---------------------------------------------------------------------------\r
+3) FG is sooo slow (1 fps), though i got hardware acceleration like\r
+ Voodoo/Voodoo2 etc... What's the reason ?\r
+\r
+Ans: Flight Gear supports hardware acceleration, but it seems not\r
+ to be activated. Even a P-400 goes berzerk using software rendering.\r
+ First check out if you have MESA with glide support.\r
+ Linux Users enter "make linux-glide" to compile Mesa\r
+ \r
+ Check out your environment variables, whether you use soft or hard-ware\r
+ rendering. Here an example that should work :\r
+ \r
+ You have to tell Mesa to use fullscreen\r
+ \r
+ MESA_GLX_FX=fullscreen\r
+ \r
+ You also must set the appropriate Voodoo vars, here is for Voodoo2\r
+ the Voodoo1 vars may slightly differ.\r
+ \r
+ SSTV2_BGAMMA=1.00\r
+ SSTV2_FASTMEM_RAS_READS=1\r
+ SSTV2_FASTPCIRD=1\r
+ SSTV2_GAMMA=1.00\r
+ SSTV2_GGAMMA=1.00\r
+ SSTV2_GRXCLK=95\r
+ SSTV2_RGAMMA=1.00\r
+ SSTV2_SCREENREFRESH=60\r
+ SSTV2_SWAP_EN_WAIT_ON_VSYNC=0\r
+ SSTV2_VGA_PASS=0 \r
+ \r
+ The Voodoo vars can be obtained at:\r
+ http://www.bahnhof.se/~engstrom/e_3dfxvars.htm\r
+ \r
+ Another good tool is glide-control to set the env. vars, go get it at:\r
+ http://www.ling.ed.ac.uk/~oliphant/gc \r
+ \r
+ Check also the help-startup-screen of Flight Gear:\r
+ fgfs --help\r
+\r
+===========================================================================\r
+\r
+Oliver Delise Maintainer of FAQ\r
+Please send any comments/suggestions/flames or beer to delise@rp-plus.de \r
--- /dev/null
+I. GENERAL LINUX INSTRUCTIONS
+==============================
+
+This is a short description of the things that need to be done to get
+FlightGear up and running under Linux.
+
+1. Prerequisites:
+
+You need to understand the concepts of 3D acceleration under Linux and
+the needed libraries. An excellent source of information is the "Linux
+Quake-HOWTO" which can be found at
+
+ http://www.linuxquake.com
+
+If anything seem to be wrong with your 3D setup, check there first!
+
+You need Linux of course (any flavour) and a 3DFX-card (Voodoo1 in my
+case). 3D rendering without hardware support can force even the
+fastest PII to its knees. To make use of the accelerator board you
+need"
+
+- the GLIDE library installed. Grab it at:
+
+ http://www.3dfx.com/software/download_glidel.html
+
+ and install. There is even an install script contained that will do
+ things for you. The canonical place for GLIDE is /usr/local/glide,
+ if you prefer another location, you'll have to edit the Makefile for
+ FlightGear by hand. Be sure to read and understand the file
+ /usr/local/glide/README.
+
+- the MESA library version 3.0 (or greater) installed.
+
+ Grab it at:
+
+ http://www.mesa3d.org/
+
+ unpack it and run "make linux-glide" in the Mesa directory. Follow
+ the instructions in the README file, take a close look at
+ README.3DFX and play with the demo programs. Relax, rejoice :-)
+
+- the GLUT library version 3.7 (or greater, aka GameGLUT) installed.
+
+ Grab it at:
+
+ http://reality.sgi.com/opengl/glut3/glut3.html
+
+ Note: glut-3.7 is included with Mesa 3.0 so if you've already
+ grabbed the latest version of mesa, you should have everything you
+ need.
+
+ Alternatively, you can use the 3D-stuff that came along with your
+ Linux distribution. At least RedHat (5.3 and later) and S.u.S.E. 6.0
+ (or later) contain all the things you need.
+
+ - (optional) the 3DFX kernel module.
+
+ Without this thingy installed, access to your accelerator board
+ needs to be SUID root, which bad practice (and a _huge_ security
+ hole). Get the 3DFX module from
+
+ http://www.xs4all.nl/~carlo17/3dfx/index.html
+
+ and install it:
+
+ mkdir 3dfx
+ cd 3dfx
+ tar xvfz ../Dev3Dfx-2.7.tar.gz
+ make
+ cp 3dfx.o /lib/modules/`uname -r`/misc
+ mknod /dev/3dfx c 107 0
+ insmod 3dfx
+
+ alternatively, you can get the RPM from there ind use rpm for
+ installation.
+
+ - Steve Baker's plib library.
+
+ get it from
+
+ http://www.woodsoup.org/projs/plib/
+
+ and follow the instructions in README.plib.
+
+ - (optional) the gpc libraries.
+
+ Read the README.gpc files to understand what they are good for
+ and decide whether you need to download them. If you don't want to
+ build your own sceneries, you might not need them.
+
+2. Build FlightGear:
+
+You will need the following files:
+
+ FlightGear-x.xx.tar.gz (source code)
+
+which can be found under
+
+ ftp://ftp.flightgear.org/pub/fgfs/Source/
+
+and the support files located at
+
+ ftp://ftp.flightgear.org/pub/fgfs/Binaries/
+
+the file is called
+
+ fgfs-base-x.xx.tar.gz (data files)
+
+Ok, now that you got all the stuff, let's proceed towards installation.
+
+Unpack FlightGear-x.xx.tar.gz using :
+
+ tar xvfz FlightGear-x.xx.tar.gz
+
+and cd info FlightGear-x.xx. Run:
+
+ ./configure
+
+and wait a few minutes. configure knows about a lot of options. Have a
+look at the file INSTALL in the FlightGear source directory to learn
+about them. If run without options, configure assumes that you will
+install the data files under /usr/local/lib/FlightGear. Assuming
+configure finished successfully, simply run
+
+ make
+
+and wait for the make process to finish. Now become root (for example
+by using the su command) and type
+
+ make install
+
+This will install the binaries in /usr/local/bin. Notice that the name
+of the FlightGear binary is "fgfs".
+
+Another problem with Linux/Glide is permission-related. All programs
+accessing the Accelerator board need root permissions (or the kernel
+module mentioned above installed). I _strongly_ recommend the latter.
+
+
+3. Install the data files
+
+Change to /usr/local/lib
+
+ tar xvfz WHERE_YOU_DOWNLOADED_THE_FILES/fgfs-base-x.xx.tar.gz
+
+That's it...
+
+4. Fly!
+
+If everything went ok, simply type
+
+ runfgfs
+
+at the prompt. You should see the FlightGear splash-screen and a few
+seconds later you'll find youself somewhere in the desert, ready for
+take-off.
+
+5. Strange things happen...
+
+A note on the behaviour of Voodoo boards:
+
+Your card comes packaged with a loop-through-cable. If you have only
+one monitor, then the Voodoo will take it over when used. This means
+that all the applications on your desktop will continue running but
+you'll only see the FlightGear screen. If your window manager uses a
+focus-follows-mouse policy, don't move the mouse. If you lose the
+focus, there's no way to shut down FlightGear graciously! Better
+solution: Use two monitors, one for your desktop, connect the other
+one to your accelerator. You'll then get a window on your desktop
+which manages all keyboard events and you're still able to see your
+desktop.
+
+A final note: There are several types of VooDoo cards out there, so be
+sure to get the correct version of Glide!
+
+Enjoy!
+
+6. Conclusion
+
+I hope this document provides some help. If it does, send virtual/real
+beer to me, if not flame me!
+
+Bernhard H. Buckel
+<buckel@wmad95.mathematik.uni-wuerzburg.de>
+
+
+II. RedHat Linux Notes
+=======================
+
+Summary: There are known problems with the versions of libstdc++ that
+ships with both RedHat-5.1 and RedHat-5.2. You need to upgrade your
+libstdc++ before attempting to build flight gear on a RedHat system.
+
+Raymond de Vries <vries@per.nl> writes: I ran into [this] problem on
+my RedHat 5.2 system (brand new). After some searching I found out
+that it's got to do with a 'bug' in the stdlibc++ libraries. I picked
+up libstdc++-2.9.0-2.i386.rpm, installed it and FGFS compiled just
+fine. However, some other packages must have the libstdc++-2.8
+libraries....
+
+BTW I also solved it with the 2.8 libraries by including
+/usr/include/g++/std/bastring.cc into the example programs. I believe
+this can be done since it's a template, correct me if I'm wrong.
+
+
+III. Linux/AXP Notes
+====================
+
+As of 2/19/99 I'm not aware of any glide port to Linux/AXP so it's
+software rendering only for now. :-(
+
+This following information is contributed by "Daniel J. Frasnelli"
+<dfrasnel@csee.wvu.edu>
+
+1) Mesa was not built correctly by default. I had to add the "-mieee"
+flag to the Make-config for Mesa-3.1beta1 to fix the problem. After
+building and installation, all of the problems I had previously with
+GL programs under AlphaLinux disappeared.
+
+2) I also had to set the '-mieee' flag in $CFLAGS before configuring
+and building FGFS. The -mieee switch fixes floating point exception
+handling.
+
+I heavily optimized both Mesa and FGFS, using the libffm "fast math
+library for Alpha" in preference over the default libm, sticking all
+sorts of strange flags in $CFLAGS, etc. These flags should be
+adjusted for your specific architecture:
+
+ export CFLAGS="-mieee -mcpu=ev56 -Wa,-m21164a -pipe -g"
+ export CXXFLAGS="-mieee -mcpu=ev56 -Wa,-m21164a -pipe -g"
+ ./configure
+
+
--- /dev/null
+README.MacOS
+
+Jan 12, 1999.
+
+Here is a quick outline of *one* way you can build FG for MacOS:
+
+
+1. Install Metrowerks CodeWarrior Pro 3
+
+
+2. Install the 'Mesa 3D Graphics Library' *** URL
+
+
+3. Fetch the Flight Gear code. *** URL
+
+
+4. Fetch the 'MWCWP3 Support' *** URL
+
+
+5. Open 'MWCWP3 Support:Simulator:Simulator.mcp' and you are ready to compile.
+
+
+6. I appreciate feedback. Tell me if this works for you ! If it doesn't, tell me
+ what went wrong. My email is *** who want do to the first-level support ?
--- /dev/null
+If you are reading this in hopes that you will find the answer to a
+specific question, please send the question to curt@flightgear.org and
+suggest that I include the answer here.
+
+
+I. Compilers and Portability
+============================
+
+Flight Gear is known to build with egcs-1.1 and higher, as well as
+gcc-2.8 and higher. Your mileage may vary with earlier versions of
+these compilers although support for gcc-2.7.x is mostly there.
+
+For other platforms where you may have access to native compilers,
+again your mileage may vary. We would like to support as many
+different compilers and platforms as possible. Please relay any
+changes you make (or problems you encounter) back to
+curt@flightgear.org, so that in the future we can better support your
+platform and your compiler. I have access to a few different
+platforms, but I must depend on others to make sure their favorite
+platform and compiler is well supported.
+
+
+II. GLUT
+========
+
+Flight Gear requires GLUT version 3.7 or later (aka GameGLUT._ GLUT
+needs to be installed on your system before you can build Flight Gear.
+GLUT can be found at:
+
+ http://reality.sgi.com/opengl/glut3/glut3.html
+
+GLUT (pronounced like the glut in gluttony) is the OpenGL Utility
+Toolkit, a window system independent toolkit for writing OpenGL
+programs. It implements a simple windowing application programming
+interface (API) for OpenGL. GLUT makes it considerably easier to learn
+about and explore OpenGL programming. GLUT provides a portable API so
+you can write a single OpenGL program that works on both Win32 PCs and
+X11 workstations.
+
+
+III. Joystick Support
+=====================
+
+GLUT only has win32 joystick support but even at that, it is not well
+implimented. So we use Steve Backer's joystick library when possible,
+and fall back to GLUT for win32 until Steve's library adds win32
+support.
+
+To make sure joystick support is included when building under Linux:
+
+ - make sure you have the proper joystick module installed.
+ - make sure the proper devices are created in /dev.
+ - /usr/include/linux/joystick.h must exist on your system.
+
+
+IV. Procedure to build FGFS with Native SGI Irix Compilers from CVS Sources
+===========================================================================
+
+(Contributed by Todd Smith <msmith@sikorsky.com> with modifications
+and updates by Curt Olson)
+
+Download the latest version of plib (1.0.18) from:
+
+ http://www.woodsoup.org/~sbaker/plib/
+
+Configure it with the default prefix of /usr/local which places
+everthing in a tree rooted at /usr/local/plib:
+
+ sh$ CC="cc -Xcpluscomm" CXX=CC ./configure
+
+*Before* running make, fix up the plib Makefiles using the script
+provided with the Flight Gear distribution:
+
+ find . -name Makefile -exec .../src/FlightGear-0.7.x/irix-hack.pl {} \;
+
+This applies a fix in all the Makefiles to the lib creation command
+(to use CC -ar rather than ar) as per a tip in the SGI pipeline
+periodical.
+
+Now, make and install plib.
+
+Download the latest fgfs source snapshot from:
+
+ ftp://ftp.flightgear.org/pub/fgfs/Source/Snapshots/
+
+Configure and build fgfs as you did plib:
+
+ sh$ CC="cc -Xcpluscomm" CXX=CC ./configure
+ sh$ find . -name Makefile -exec .../src/FlightGear-0.7.x/irix-hack.pl {} \;
+
+
+V. Additional Notes for Building from CVS Sources
+==================================================
+
+(Contributed by Todd Smith <msmith@sikorsky.com>)
+and updates by Curt Olson)
+
+Download the FlightGear-0.7.x via anonymous cvs as usual, then do:
+
+> aclocal # normal
+> automake -a -i # added '-i' flag to avoid dependency calc
+ # that only sgi cc/CC doesn't support
+> autoconf # normal
+
+Note the change in automake's command argument.
+
+Now set env variables to use native compilers (csh syntax).
+
+> setenv CC cc
+> setenv CXX CC
+> setenv CFLAGS '-Xcpluscomm -DEBUG:suppress=1001,1012,1014,
+ 1116,1172,1174,1401,1460,1551,1552'
+> setenv CXXFLAGS '-DEBUG:suppress=1001,1012,1014,1116,1172,
+ 1174,1401,1460,1551,1552,3303,3322'
+
+The '-DEBUG:suppress=' stuff just suppresses anonying warnings during
+compile. The meaning of each one is shown later in this file.
+You can use all or none of these here.
+
+> setenv CPPFLAGS '-woff 1014'
+
+This is required so that configure will really believe that plib
+is installed. ( Otherwise a compiler warning makes configure
+that plib/pu.h couldn't be found. )
+
+> ./configure
+> find . -name Makefile -exec irix-hack.pl {} \; # normal irix hack
+> gmake
+
+Runs great.
+
+Todd
+msmith@sikorsky.com
+
+-------------------------------------------
+Warnings that I get. Ignore at your lesiure.
+
+C and C++:
+warning(1001): last line of file ends without a newline
+warning(1012): parsing restarts here after previous syntax error
+warning(1014): extra text after expected end of preprocessing directive (breaks configure)
+warning(1116): non-void function "poly_index_init" should return a value
+warning(1172): subscript out of range
+warning(1174): variable "j" was declared but never referenced
+warning(1401): qualified name is not allowed in member declaration
+warning(1460): function "..." redeclared "inline" after being called
+warning(1551): variable "Altitude" is used before its value is set
+warning(1552): variable "last" was set but never used
+
+C++ only:
+warning(3303): type qualifier on return type is meaningless
+warning(3322): omission of explicit type is nonstandard ("int" assumed)
+
+
+VI. Additional Native SGI Irix Compilers Notes
+==============================================
+
+Fixing all the Makefiles' with irix-hack.pl is *VERY* important for
+your success):
+
+ find . -name Makefile -exec irix-hack.pl {} \;
+
+This touches up the Makefiles to build libfoo.a with
+
+ CC -ar -o libfoo.a file1.o file2.o ...
+
+The traditional method is to run:
+
+ ar cru libfoo.a file1.o file2.o
+
+I wonder if this means that the native SGI "ar" is somewhat broke?
+
+Note, you should make sure you have perl installed on your system. The
+"irix-hack.pl" script assumes that perl is located in /usr/bin/perl so
+if this isn't the proper location on your system, change it in the first
+line of "irix-hack.pl" before running the above command. One way to see
+if perl is on your system (and determine where) is to run:
+
+ which perl
+
+Perl can be installed from "eoe.sw.gifts_perl" or can be fetched and
+built from the net.
+
+Finally you should run Gnu make. The native Irix make utility just
+can't handle the makefiles generated by the automake program. Thus
+you will need to use Gnu make. It's called "gmake" on my system so I
+just run:
+
+ gmake
+
+Don't worry about the make failing in the Tools directory. That's all
+under construction stuff right now (10/7/99) and if you get that far,
+rejoice because it means the simulator was successfully built in the
+Simulator/Main subdirectory.
+
+Special note for those Irix users using the native compilers *AND* checking
+out the current source tree via CVS:
+
+You will need to run "aclocal ; automake -a ; autoconf" as per
+README.autoconf, but you need an additional flag for automake to disable
+automatic dependency building (which breaks the native Irix compilers.)
+You should instead run:
+
+ aclocal ; automake -a --include-deps; autoconf
+
+Then, proceed on to the configure step.
+
+Questions? I realize this section is a big heap of random information so
+if something isn't quite working for you, please ask.
--- /dev/null
+May 10, 1999
+=============
+
+Here is a quick outline of *one* way you can build FG for Win32 using
+a completely free development environment.
+
+
+1. Install cygwin (latest is version 20.1)
+
+ http://sourceware.cygnus.com/cygwin/
+
+ Now called "full.exe"
+
+ (I believe "user.exe" is included in full.exe so you don't need to
+ install those separately)
+
+
+2. This step may now be optional. I haven't tried without, but
+ cygwin is now egcs-1.1 (which should work I think.) This step
+ just upgrades to the latest greatest version of egcs.
+
+ Install egcs binary release for cygwin-20.x (latest egcs is version 1.1.2)
+
+ http://www.xraylith.wisc.edu/~khan/software/gnu-win32/egcs.html
+
+ For instance, if you've downloaded egcs to /tmp:
+
+ cd //c/cygnus/cygwin-b20
+ tar xzvf //c/tmp/egcs-1.1.2-cygb20.tar.gz
+
+3. Install the free win32 api library (latest version is 0.1.5) from:
+
+ http://www.acc.umu.se/~anorland/gnu-win32/w32api.html
+
+ (Recommend you install in /usr/local)
+
+ Run "make; make install"
+
+
+4. Also download glut import libraries from extra section at:
+
+ http://www.acc.umu.se/~anorland/gnu-win32/w32api.html
+
+ copy these libs to /usr/local/lib/lib*.a
+
+
+5. Install the Mesa-3.0 includes:
+
+ Feel free to download mesa from www.mesa3d.org and grab them from
+ there. Line #453 of glut.h needs to be edited to look like the
+ following:
+
+ GLUTAPI int APIENTRY glutCreateMenu(void (GLUTCALLBACK * func)(int));
+
+ Or you can grab just these headers from the fgfs ftp site.
+
+ ftp:://ftp.flightgear.org/pub/fgfs/Win32/Mesa-3.0-includes.zip
+
+ Copy these includes to /usr/local/include/gl/*.h
+
+
+6. Install the glut dll's somewhere in your path:
+
+ You can fetch these from the fgfs site:
+
+ ftp:://ftp.flightgear.org/pub/fgfs/Win32/glut-dll-3.7.zip
+
+
+7. Build and install plib (latest version is 1.0.5/6?) from:
+
+ http://www.woodsoup.org/~sjbaker/plib (check url)
+
+ Recommend you run configure as follows:
+
+ CFLAGS="-O2 -Wall" CXXFLAGS="-O2 -Wall" CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure --prefix=/usr/local --includedir=/usr/local/include/plib
+
+ make; make install
+
+
+8. Fetch the Flight Gear code which can be found at:
+
+ ftp://ftp.flightgear.org/pub/fgfs/Downloads/Source/
+
+ Grab the latest "FlightGear-X.XX.zip" or if you want to live on the
+ edge you can try one of the nightly snapshots in:
+
+ ftp://ftp.flightgear.org/pub/fgfs/Downloads/Source/Snapshots
+
+
+9. Unpack the FG source code. Run:
+
+ pkunzip -d FlightGear-X.XX.zip
+
+ Be sure to use the -d option. This will create all the needed
+ subdirectories. Otherwise you will have one big mess! Trust me!
+
+
+Side Note: we need to make a distinction between the "build tree" and
+ the "install tree." The "build tree" is what we've been talking
+ about up until this point. This is where the source code lives
+ and all the compiling takes place. Once the executables are
+ built, they need to be installed someplace. We shall call this
+ install location the "install tree". This is where the
+ executables, the scenery, the textures, and any other run-time
+ files will be located.
+
+ Open the Cygnus bash via its entry in the Start menu.
+ Mount the drive as follows (assuming you unpacked the code on d:):
+
+ mkdir /mnt
+ mount d: /mnt
+
+ You only have to do this once. The drive stays mounted (until you
+ umount it) even through reboots and switching off the machine.
+
+
+10. Configure the make system for your environment and your "install
+ tree". Tell the configure script where you would like to install
+ the exectuables and all the scenery and textures by using the
+ "--prefix" option. In the following example the base of the
+ "install tree" is "\FlightGear". Stay within the bash shell. Run:
+
+ ./configure --prefix=/mnt/FlightGear
+
+Side Note: the make procedure is designed to link against opengl.dll,
+ glu.dll, and glut.dll. However, some accelerated video cards
+ require you to link against opengl32.exe, glu32.exe, and
+ glut32.exe. If this is the case for your video card, you can edit
+ .../Simulator/Main/Makefile and rename these three libraries to
+ their version "32" counterparts. There is only one place in this
+ make file where these files are listed.
+
+
+11. Build the executable. Run:
+
+ make
+
+
+12. Assuming you have installed the updated version of install.exe (see
+ earlier instructions) you can now create and populate the install
+ tree. Run:
+
+ make install
+
+ You can save a significant amount of space by stripping all the
+ debuging symbols off of the executables. To do this run:
+
+ strip file.exe
+
+Important Note: so far you've built and installed the simulator and
+ related tools. Before you can actually try it out, you need to
+ make sure you have the appropriate scenery and texture downloaded
+ and unzip'ed in your "install tree".
+
+
+13. Download and install the (most recent!) scenery and texture files.
+
+
+14. In Windows explorer, change to /FlightGear/bin within your install tree.
+ Call runfg.bat which will set the environment variable FG_ROOT and
+ call the executable.
+
+
+15. Try it out! There are several ways to run flight gear once it has
+ been installed. The simplest is as follows. Run:
+
+ \FlightGear\bin\runfg.bat (command shell)
+
+
+16. I appreciate feedback. Tell me if it works! If it doesn't, tell me
+ what went wrong. My email is curt@me.umn.edu
--- /dev/null
+http://www.cygnus.com/ml/gnu-win32/1998-Nov/0177.html
+
+Building cross cygwin b20 tools [Re: Linux->Win32 cross
+compiler ?]
+
+Mumit Khan (khan@xraylith.wisc.edu)
+Wed, 4 Nov 1998 09:38:23 -0600 (CST)
+
+ Messages sorted by: [ date ][ thread ][ subject ][ author ]
+ Next message: Austin David France: "RE: B20 & bash 2.02.1(2) broken"
+ Previous message: Neil Schemenauer: "Bash exits after background command exits (B20)"
+ In reply to: Felix E. Klee: "Linux->Win32 cross compiler ?"
+ Next in thread: Peter Dalgaard BSA: "Re: Linux->Win32 cross compiler ?"
+
+On Mon, 2 Nov 1998, Felix E. Klee wrote:
+
+> Hi,
+>
+> does anyone know if a cross compiler exists for Linux which
+> creates Win32 executables just like gnuwin32 does?
+>
+
+============ building CROSS
+
+You can always build one yourself. Download the CDK source, and do the
+following:
+
+ $ mkdir /cygwin-b20
+ $ cd /cygwin-b20
+ $ tar zxvf /tmp/dev-src.tar.gz
+ $ cd src
+ $ mkdir CROSS
+ $ cd CROSS
+ $ ../configure --prefix=/usr/local/cygb20 --target=i386-cygwin32 -v
+ $ make > make.log 2>&1
+ [ check for errors . If OK ]
+ $ make install > install.log 2>&1
+
+After you're done, add it to path (if you're using a bourne-shell
+compatible, otherwise use csh syntax).
+
+ $ export PATH=$PATH:/usr/local/cygb20/bin
+ $ i386-cygwin32-gcc -v
+ [ should report egcs-1.1 etc ]
+
+All the binaries for i386-cygwin32 target are prefixed with i386-cygwin32-
+prefix.
+
+============ building NATIVE tools using CROSS tools just built.
+
+Now if you want to build native tools on eg., a i686-pc-linux-gnu box with
+the same pathnames that wCygnus uses:
+
+ $ cd /cygwin-b20/src
+ $ mkdir NATIVE
+ $ cd NATIVE
+ $ ../configure --prefix=/Cygnus/cygwin-b20 \
+ --exec-prefix=/Cygnus/cygwin-b20/H-i586-cygwin32 \
+ --target=i386-cygwin32 --host=i386-cygwin32 \
+ --build=i686-pc-linux-gnu -v
+ $ make > make.log 2>&1
+ [ check for errors . If OK ]
+
+Now of course, you want to install it to a *DIFFERENT* location than
+/Cygnus/cygwin-b20 on your Unix host before creating an archive to
+copy to a Cygwin box. Let's say you first install it to /tmp/cygwin.
+
+ $ make prefix=/tmp/cygwin exec_prefix=/tmp/cygwin/H-i586-cygwin32 \
+ install > install.log 2>&1
+ $ cd /tmp/cygwin
+ $ tar zcvf /tmp/dev-cygwin-b20.tar.gz .
+
+Copy /tmp/dev-cygwin-b20.tar.gz to your Cygwin box and unpack:
+
+ [win32]$ cd /Cygnus/cygwin-b20
+ [win32]$ tar zxvf /tmp/dev-cygwin-b20.tar.gz
+
+Regards,
+Mumit
+
+
+-
+For help on using this list (especially unsubscribing), send a message to
+"gnu-win32-request@cygnus.com" with one line of text: "help".
+
--- /dev/null
+Flight Gear now has an anonymous CVS repository. Currently, it is read
+only, but it will allow you to maintain your own absolutely up to date
+source tree. You will also be able to do diffs, extract older versions
+of files, and all the other fancy CVS stuff.
+
+Instructions for accessing the FG cvs repository can be found by
+following the "CVS Resources" link from the main FG web page:
+
+ http://www.menet.umn.edu/~curt/fgfs/
+
--- /dev/null
+Flight Gear uses the Gnu autoconf and automake tools for managing
+Makefiles. It also uses libtool to manage building shared and static
+libraries. Key input files for this system are:
+
+ configure.in - Top level directory
+ Makefile.am - One in each subdirectory
+ Include/config.in - input file for building config.h
+
+If you need to modify any of these files, you will need to build and
+install the following packages:
+
+ - GNU autoconf 2.12 (available from ftp://prep.ai.mit.edu/pub/gnu)
+ - GNU automake 1.2h (available from ftp://ftp.cygnus.com/pub/tromey)
+
+Libtool is not currently used:
+
+ - GNU libtool 1.2 (available from ftp://prep.ai.mit.edu/pub/gnu)
+ (or maybe ftp://alpha.gnu.org/gnu)
+ - After upgrading libtool, if we were using it, you would want to run:
+
+ libtoolize --force
+
+When making a change to any of these files you will need to run:
+
+ aclocal ; automake -a ; autoconf
+
+Then follow the regular build procedure:
+
+ ./configure; make; make install
+
+For debuging purposes you might want to try something like:
+
+ CFLAGS=-Wall CXXFLAGS=-Wall ./configure; make; make install
+
+For full optimization using the EGCS compiler on an Intel processor you
+could try something like:
+
+ MACH="-mpentium" # -m486 -mpentiumpro etc.
+ export CC=egcc # for Linux
+ export CFLAGS="-Wall -O5 -fomit-frame-pointer -ffast-math -funroll-loops $MACH"
+ export CXXFLAGS="-Wall -O5 -fomit-frame-pointer -ffast-math -funroll-loops $MACH"
+ ./configure
+
--- /dev/null
+You *must* have the plib version 1.1.x or later installed on your
+system to build the FGFS simulator!" Special note: Flight Gear is no
+longer compatible with the 1.0.x versions of plib.
+
+You can get the latest version of plib from:
+
+ http://www.woodsoup.org/projs/plib/
+
+Build notes:
+
+You should be able to just run "./configure" to configure the package
+and use all of plib's defaults. Then run "make" followed by "make
+install". By default, plib installs itself into /usr so if you don't
+like this, be sure to specify an alternate prefix such as --prefix=/usr/local
+
--- /dev/null
+Starting the executable
+=======================
+
+Unix: runfgfs
+Windows: runfgfs.bat
+
+"runfgfs" is a script which runs the Flight Gear executable with
+(hopefully) the correct $FG_ROOT directory specified.
+
+
+First Flight
+============
+
+By default, the plane should be looking more or less straight down a
+runway, and the mouse cursor should be a regular pointer. The
+following steps will help you to get into the air:
+
+- click the right mouse button once, so that a cross cursor
+ appears (now, the mouse will act as a control yoke)
+
+- while holding down the left mouse button, push the mouse cursor up
+ until the engine is at full power (the throttle indicator is on the
+ left side of the HUD), then release the left mouse button
+
+- when the plane is moving fast enough (say, 100 knots for the default
+ Navion), slowly pull the mouse cursor down (with no buttons pressed)
+ to raise the elevators until the plane rolls off the runway and into
+ the air
+
+- while holding down the left mouse button, move the mouse cursor down
+ slightly to ease up on the throttle, then release the left mouse
+ button
+
+- move the mouse up, down, and sideways as necessary to establish
+ level flight -- small movements are best, or you may lose control of
+ the plane
+
+- click the right mouse button once more, so that a double-arrow
+ cursor appears (now, the mouse will allow you to look around)
+
+- move the mouse around to look out of the plane at different angles
+
+- press the left mouse button once to return the view to front and
+ centre
+
+- click the right mouse button *twice*, so that the cross cursor
+ appears again (you're in yoke mode)
+
+- now that you know how to operate the throttle, ailerons, and
+ elevators (as well as how to look around), try to circle around and
+ land back on the runway (best of luck)
+
+
+Mouse controls
+==============
+
+It is possible to manipulate the basic flight controls and the view
+using only the mouse. Clicking the right mouse button toggles the
+mouse among three different modes:
+
+1. Pointer mode (the default: mouse cursor is a pointer)
+2. Yoke mode (mouse cursor is a cross)
+3. Look-around mode (mouse pointer is a double arrow)
+
+In yoke mode and look-around mode, the mouse cursor will remain
+trapped in the Flight Gear window.
+
+
+Yoke mode
+---------
+
+In yoke mode (mouse cursor as cross), mouse movement adjusts the main
+flight controls, depending on which buttons you press.
+
+With no button pressed:
+(like a control yoke on an airplane)
+- horizontal movement controls the ailerons
+- vertical movement controls the elevators
+
+With left button pressed:
+- horizontal movement controls the brakes
+- vertical movement controls the throttle
+
+With middle button pressed:
+- horizontal movement controls the rudder
+- vertical movement controls the trim
+
+
+Look-around mode
+----------------
+
+In look-around mode (mouse cursor as double arrow), mouse movement
+changes the viewing direction: horizontal movement scrolls the view
+horizontally, and vertical movement scrolls the view vertically in the
+direction of mouse movement.
+
+To return the view to front and center, click the left mouse button
+once.
+
+
+Keyboard controls
+=================
+
+It is also possible to fly using the numeric keypad. There is some
+unresolved wierdness with the GLUT libraries and keyboard input, so
+for now, the state of the "Num Lock" key is important.
+
+Num Lock Active
+---------------
+
+ Pg Up/Pg Dn Throttle
+ Left Arrow/Right Arrow Aileron
+ Up Arrow/Down Arrow Elevator
+ Ins/Enter Rudder
+ "5" Center aileron/elevator/rudder
+ Home/End Elevator Trim
+
+Num Lock Inactive
+-----------------
+ Shift + <Numeric Keypad Key> Change view
+
+ where key is one of:
+
+ 8 = forward
+ 7 = left/forward
+ 4 = left
+ 1 = left/back
+ 2 = back
+ 3 = right/back
+ 6 = right
+ 9 = right/forward
+
+Brakes
+------
+ Press the "b" key to toggle
+
+Autopilot
+---------
+ Control + A Toggle autopilot altitude lock.
+ Control + H Toggle autopilot heading lock.
+ Control + S Toggle autopilot autothrottle.
+ Control + T Toggle autopilot terrain follow.
+
+Simulation
+----------
+
+ ESC Quit Flight Gear.
+
+ a Increase speedup.
+ b Toggle brakes.
+ h Dim HUD.
+ i Revert to full HUD.
+ m Increase time warp.
+ p Toggle pause.
+ t Increase time warp delta.
+ v Toggle external view mode.
+ x Zoom out (narrow field of view).
+ z Increase visibility.
+
+ Shift + A Decrease speedup.
+ Shift + H Brighten HUD
+ Shift + I Minimize HUD
+ Shift + M Decrease time warp.
+ Shift + P Toggle 2D panel display.
+ Shift + T Decrease time warp delta.
+ Shift + W Toggle fullscreen/window mode.
+ Shift + X Zoom out (widen field of view).
+ Shift + Z Decrease visibility.
+
+Other
+-----
+ F2 = Reload tile cache.
+ F6 = Toggle autopilot target location.
+ F8 = Toggle fog modes (off, fastest, nicest)
+ F9 = Toggle textures on/off
+ F10 = Toggle menu
+ F11 = Set autopilot altitude
+ F12 = Set autopilot heading
--- /dev/null
+Starting the executable
+=======================
+
+Unix: runfgfs
+Windows: runfgfs.bat
+
+"runfgfs" is a script which runs the Flight Gear executable with
+(hopefully) the correct $FG_ROOT directory specified.
+
+
+First Flight
+============
+
+By default, the plane should be looking more or less straight down a
+runway, and the mouse cursor should be a regular pointer. The
+following steps will help you to get into the air:
+
+- click the right mouse button once, so that a cross cursor
+ appears (now, the mouse will act as a control yoke)
+
+- while holding down the left mouse button, push the mouse cursor up
+ until the engine is at full power (the throttle indicator is on the
+ left side of the HUD), then release the left mouse button
+
+- when the plane is moving fast enough (say, 100 knots for the default
+ Navion), slowly pull the mouse cursor down (with no buttons pressed)
+ to raise the elevators until the plane rolls off the runway and into
+ the air
+
+- while holding down the left mouse button, move the mouse cursor down
+ slightly to ease up on the throttle, then release the left mouse
+ button
+
+- move the mouse up, down, and sideways as necessary to establish
+ level flight -- small movements are best, or you may lose control of
+ the plane
+
+- click the right mouse button once more, so that a double-arrow
+ cursor appears (now, the mouse will allow you to look around)
+
+- move the mouse around to look out of the plane at different angles
+
+- press the left mouse button once to return the view to front and
+ centre
+
+- click the right mouse button *twice*, so that the cross cursor
+ appears again (you're in yoke mode)
+
+- now that you know how to operate the throttle, ailerons, and
+ elevators (as well as how to look around), try to circle around and
+ land back on the runway (best of luck)
+
+
+Mouse controls
+==============
+
+It is possible to manipulate the basic flight controls and the view
+using only the mouse. Clicking the right mouse button toggles the
+mouse among three different modes:
+
+1. Pointer mode (the default: mouse cursor is a pointer)
+2. Yoke mode (mouse cursor is a cross)
+3. Look-around mode (mouse pointer is a double arrow)
+
+In yoke mode and look-around mode, the mouse cursor will remain
+trapped in the Flight Gear window.
+
+
+Yoke mode
+---------
+
+In yoke mode (mouse cursor as cross), mouse movement adjusts the main
+flight controls, depending on which buttons you press.
+
+With no button pressed:
+(like a control yoke on an airplane)
+- horizontal movement controls the ailerons
+- vertical movement controls the elevators
+
+With left button pressed:
+- horizontal movement controls the brakes
+- vertical movement controls the throttle
+
+With middle button pressed:
+- horizontal movement controls the rudder
+- vertical movement controls the trim
+
+
+Look-around mode
+----------------
+
+In look-around mode (mouse cursor as double arrow), mouse movement
+changes the viewing direction: horizontal movement scrolls the view
+horizontally, and vertical movement scrolls the view vertically in the
+direction of mouse movement.
+
+To return the view to front and center, click the left mouse button
+once.
+
+
+Keyboard controls
+=================
+
+It is also possible to fly using the numeric keypad. There is some
+unresolved wierdness with the GLUT libraries and keyboard input, so
+for now, the state of the "Num Lock" key is important.
+
+Num Lock Active
+---------------
+
+ Pg Up/Pg Dn Throttle
+ Left Arrow/Right Arrow Aileron
+ Up Arrow/Down Arrow Elevator
+ Ins/Enter Rudder
+ "5" Center aileron/elevator/rudder
+ Home/End Elevator Trim
+
+Num Lock Inactive
+-----------------
+ Shift + <Numeric Keypad Key> Change view
+
+ where key is one of:
+
+ 8 = forward
+ 7 = left/forward
+ 4 = left
+ 1 = left/back
+ 2 = back
+ 3 = right/back
+ 6 = right
+ 9 = right/forward
+
+Brakes
+------
+ Press the "b" key to toggle
+
+Autopilot
+---------
+ Control + A Toggle autopilot altitude lock.
+ Control + H Toggle autopilot heading lock.
+ Control + S Toggle autopilot autothrottle.
+ Control + T Toggle autopilot terrain follow.
+
+Simulation
+----------
+
+ ESC Quit Flight Gear.
+
+ a Increase speedup.
+ b Toggle brakes.
+ h Dim HUD.
+ i Revert to full HUD.
+ m Increase time warp.
+ p Toggle pause.
+ t Increase time warp delta.
+ v Toggle external view mode.
+ x Zoom out (narrow field of view).
+ z Increase visibility.
+
+ Shift + A Decrease speedup.
+ Shift + H Brighten HUD
+ Shift + I Minimize HUD
+ Shift + M Decrease time warp.
+ Shift + P Toggle 2D panel display.
+ Shift + T Decrease time warp delta.
+ Shift + W Toggle fullscreen/window mode.
+ Shift + X Zoom out (widen field of view).
+ Shift + Z Decrease visibility.
+
+Other
+-----
+ F2 = Reload tile cache.
+ F6 = Toggle autopilot target location.
+ F8 = Toggle fog modes (off, fastest, nicest)
+ F9 = Toggle textures on/off
+ F10 = Toggle menu
+ F11 = Set autopilot altitude
+ F12 = Set autopilot heading
--- /dev/null
+majordomo writes:
+Subdirectories
+==============
+Main/
+-------
+"main()" and GLUT dependent mouse/keyboard/graphics code.
+
+
+Aircraft/
+---------
+Structure and code to tie together all the pieces of an aircraft such
+as flight model, engine model, panel, controls, etc.
+
+
+Controls/
+---------
+Provide a standardized interface to all aircraft controls.
+
+
+FDM/
+-------
+Strucures and code to implement various flight models. Provides a
+standardized interface to all interesting flight model variabls.
+
+
+Math/
+-----
+Contains miscellaneous matrix/vector routines.
+
+
+Scenery/
+--------
+Scenery parsing/generating code.
+
+
+Sound/
+------
+Sound management code
+
+
+Timer/
+------
+Code to handle time and timing of events.
+
+
+Utils/
+------
+Miscellaneous utility routines such as a general random number generator
+
+
+Weather/
+--------
+Weather management and modeling code.
+
+
+Win32/
+------
+Win32 support stuff