1
0
Fork 0
flightgear/docs-mini/README.MSVC

222 lines
7.3 KiB
Text
Raw Normal View History

2000-09-13 20:57:46 +00:00
HowTo compile FlightGear with Microsoft Visual C++ 6.0
======================================================
This HowTo is written for FlightGear 0.7.4. You might be able to
figure out how to get any other version running by reading it as the
steps are quite simmilar.
First you need FlightGear 0.7.4 or on of the current snapshots from
ftp://ftp.flightgear.org/pub/fgfs/Source
or
ftp://ftp.flightgear.org/pub/fgfs/Source/snapshots
The you need the libraries that it depends on. This is SimGear 0.0.9
and plib 1.1.11. Those libraries can be found at
ftp://ftp.flightgear.org/pub/fgfs/Source
and
http://plib.sourceforge.net/
Then you've got two posibilities. Either use the MSVC workspace that
you can find at
ftp://ftp.flightgear.org/pub/fgfs/Source
or create your own workspace.
The premade workspace will give you a quicker start (it takes some
time to create your own), but it will most probably be outdatet so
that you'd have to fix it.
Any wich way you choose you'll have to create the plib library now
(i.e. before you touch anything from FGFS). You can either use the
workspace that comes with it (most probably outdated) or create your
own ones. The way to do that is very similar to those of the creation
of the SimGear workspaces which is described below.
If you use the premade workspace (one for SimGear and one for
FlightGear) you'll have to open the SimGear one first and compile it,
then the FlightGear one. After that you should be read to run FGFS.
The universal approach is by creating your own workspace.
Make sure that you've compiled PLIB sucessfully and that you've got in
...\plib (I'm using ...\ for the directory where all your projects
are. The name of the directory doesn't matter as all paths will be
relative):
...\plib\plib.lib
...\plib\fnt.h
...\plib\plib\js.h
...\plib\pu.h
...\plib\sg.h
...\plib\sl.h
...\plib\sm.h
...\plib\ssg.h
...\plib\ssgKeyFlier.h
(This also important when you are using the premade workspaces)
Now unzip SimGear-0.0.9 into ...\SimGear (NOTE: There's no -0.0.9 at
the end of the directory) and run MSVC. Create a new and empty
workspace, call it 'SimGear Workspace' and make sure it'S path is
'...\SimGear\SimGear Workspace'
Then you'll have to add lots of new projects. The best way is by right
clicking on the workspace and select 'Add new project'. Select
Win32-Library (static) in the dialog and set the name to the first
subdir in ...\SimGear\simgear. That'll be most probably 'bucket'. The
path will automatically be set to ...\SimGear\bucket. Then press OK as
often as necessary (we don't need any of the checkboxes that'll
apear).
Repeat that with all subdirectories. (If you'll open both, MSVC and
the Explorer it'll be quite fast). With SimGear 0.0.9 you should have
11 projects.
Now do it the last time and create a project with the name 'simgear'
and make it dependant on all other projects (through the projects
menu).
Now it's time to fill the projects. Right click on the first one and
select the item to add new files. In the file selector select the
files of the corresponding directory. That'll be e.g. for the 'bucket'
project:
...\SimGear\simgear\bucket\newbucket.cxx
...\SimGear\simgear\bucket\newbucket.hxx
The files for the MetaKit live in
...\SimGear\simgear\metakit\src\
and
...\SimGear\simgear\metakit\include\
NOTE: borc.h, gnuc.h, mk4dll.h and mwcw.h aren't needed and shouldn't
be included
Then add to all projects the additional search path
'..\..\,..\..\..\,..\..\simgear\'. Do that by pressing Alt-F7,
selecting all projects, selecting 'all configurations', selecting the
'C/C++' tab, selecting 'preprocessor' and then add that path to the
additional include path.
The 'metakit' project needs a special addition to its include path:
'..\..\\simgear\metakit\win,..\..\simgear\metakit\include'
All projects need the additon of a few preprocessor defines. You can
set those in the Alt-F7 dialog on the same tab where you set the
include paths. The necessary defines are:
HAVE_WINDOWS_H and HAVE_RAND
Now we are nearly ready for compiling SimGear. The only thing missing
is the exclusion of all those test programms. These programms are
debug: logtest.cxx
magvar: testmagvar.cxx
metar: Drvmetar.c
serial: testserial.cxx
zlib: example.c
zlib: maketree.obj
zlib: minigzip.c
To exclude them, press Alt-F7, select 'all configurations' and then
select all those files, and then exlclude those files.
Last thing to do before you can compile SimGear is to press Alt-F7
once again, select simgear and all configurations and the general
tab. Add '..\..\' to the directory for the output files.
Finally you can hit compile.
When you've done everything correctly you'll have a 'simgear.lib' at
...\SimGear\.
Congratulations for completing step 1.
To compile FlightGear you'll have to do quite similar steps.
Make sure that FlighGear lives in ...\FlightGear, create a new and
empty workspace named 'FlightGear Workspace' at
'...\FlightGear\FlightGear Workspace'. Now add the projects that are
named after the directories in ...\FlightGear\src.
NOTE: Create a project named 'FDM' as well as projects named
'FDM Balloon', 'FDM JSBsim', ...
NOTE: There'll even be a project named 'FDM JSBsim Filtersjb'
NOTE: The directory 'Include' doesn't get its own project
NOTE: The directory 'Main' is special. It's project name is
'FlightGear' and it's not a win32 libraray. It's a
win32-console application.
Then it's time to add the files in those directories to the
projects. (See description of SimGear for the details).
Next step is to set the dependancies. 'FDM JSBsim' depends on 'FDM
JSBsim Filtersjb', 'FDM' depends on the other 'FDM ...' projects and
'FlightGear' depends on all other projects (but not 'FDM Ballon'
etc. as other projects do already depend on them).
NOTE: No project is allowed to depend on 'NetworkOLK' as it isn'T
compatible with MSVC yet.
Now make sure that the 'FlightGear' project is the active one (that's
the bold one).
Then add those include paths: ..\..\..\SimGear\,..\..\src,..\..\src\Include,..\..\..\,..\..\..\SimGear\simgear\metakit\include\
Exclude the following files:
airports: buildsimple.cxx
Navaids: testnavs.cxx
Joystick: js_demo.cxx
FDM JSBsim: JSBSim.cpp
Wolfram Kuss (w_kuss@rz-online.de) figured out that the following
files also have to be excluded:
LaRCsim/c172_main.c
airports/testair
airports/genrunwas
airports/gensimple
the rest of airports ??
scenery/test
time/win32test
time/test_event
Add those preprocessor defines
HAVE_WINDOWS_H, FGFS, ENABLE_PLIB_JOYSTICK
Add those libraries to the linker
plib.lib simgear.lib ws2_32.lib
and those paths to the library paths
..\..\..\plib,..\..\..\simgear
Now press Alt-F7 again, select 'FlightGear' and 'all
configurations'. Now specify your FG_ROOT/bin directory as the
directory for the output data and FG_ROOT as the working directory.
Now you are ready to compile FGFS! Have fun.
NOTE: Wolfram Kuss (w_kuss@rz-online.de) Figured out that a lot of
files are useing header files from SimGear. This leads to problems
with using precompiled headers as long as you didn't declare all
dependencies. He simply turned off precompiled headers.
NOTE: As most developers aren't using MSVC the source code is probably
broken. If that's the case and you know how to fix it it'll be nice if
you could mail a bug report with it's fix to the FlightGear
development list.