Resolve the file name conflict for windows. We need someone to update
the README.MSVC file soon.
This commit is contained in:
parent
e97b8841e1
commit
5becd2a1bd
2 changed files with 7 additions and 243 deletions
|
@ -1,221 +1,10 @@
|
||||||
HowTo compile FlightGear with Microsoft Visual C++ 6.0
|
How to compile FlightGear with Microsoft Visual C++ 6.0
|
||||||
======================================================
|
======================================================
|
||||||
|
|
||||||
This HowTo is written for FlightGear 0.7.4. You might be able to
|
FlightGear ships with MSVC project files. That hopefully is a good start,
|
||||||
figure out how to get any other version running by reading it as the
|
but these instructions really need to be filled in and updated by an MSVC
|
||||||
steps are quite simmilar.
|
developer.
|
||||||
|
|
||||||
First you need FlightGear 0.7.4 or on of the current snapshots from
|
For now, there are several MSVC developers on the FlightGear-devel mailing
|
||||||
|
list, so if you do run into problems or issues, please post your questions
|
||||||
ftp://ftp.flightgear.org/pub/fgfs/Source
|
there.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
This document describes how to build FlightGear using the supplied workspace
|
|
||||||
and project files. Before building FlightGear you must unpack and build
|
|
||||||
SimGear and plib. Refer to SimGear/README.msvc for specific build instructios.
|
|
||||||
|
|
||||||
It is required that FlightGear, SimGear and PLIB are unpacked in the same
|
|
||||||
directory. The resultant directory structure should look like this:
|
|
||||||
|
|
||||||
<work_dir>/
|
|
||||||
plib/
|
|
||||||
src/
|
|
||||||
SimGear/
|
|
||||||
simgear/
|
|
||||||
metakit-x.y.z/
|
|
||||||
zlib-x.y.z/
|
|
||||||
FlightGear/
|
|
||||||
src/
|
|
||||||
Aircraft/
|
|
||||||
...
|
|
||||||
WeatherCM/
|
|
||||||
|
|
||||||
|
|
||||||
TODO - FlightGear build instructions
|
|
||||||
|
|
||||||
The workspace and project files in this directory are generated by a perl
|
|
||||||
script with help from the am2dsp.cfg file.
|
|
Loading…
Reference in a new issue