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
|
||||
figure out how to get any other version running by reading it as the
|
||||
steps are quite simmilar.
|
||||
FlightGear ships with MSVC project files. That hopefully is a good start,
|
||||
but these instructions really need to be filled in and updated by an MSVC
|
||||
developer.
|
||||
|
||||
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.
|
||||
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
|
||||
there.
|
||||
|
|
|
@ -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