diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6380c51
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+dist
+.DS_Store
+install
+3rdParty
+boost_1_44_0
+InstallConfig.iss
+Output
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..dbc0fce
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,6 @@
+[submodule "simgear"]
+ path = simgear
+ url = http://git.gitorious.org/fg/simgear.git
+[submodule "flightgear"]
+ path = flightgear
+ url = http://git.gitorious.org/fg/flightgear.git
diff --git a/FlightGear.iss b/FlightGear.iss
new file mode 100755
index 0000000..5ddd35d
--- /dev/null
+++ b/FlightGear.iss
@@ -0,0 +1,234 @@
+; Script generated by the Inno Setup Script Wizard.
+; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
+;
+; This script creates an installable FlightGear package for Win32 using the
+; "Inno Setup" package builder. Inno Setup is free (but probably not open
+; source?.) The official web site for this package building software is:
+;
+; http://www.jrsoftware.org/isinfo.php
+;
+; Note: the files must appear in the X: drive.
+; You can do this with the command below:
+;
+; subst X: path_to_files
+;
+; For example:
+;
+; C:\> subst X: F:\Path\to\FlightGear\root
+; C:\> subst X: F:\
+;
+
+#include "InstallConfig.iss"
+
+#if GetEnv("VSINSTALLDIR") == ""
+ #define VSInstallDir "C:\Program Files\Microsoft Visual Studio 9.0"
+#else
+ #define VSInstallDir GetEnv("VSINSTALLDIR")
+#endif
+
+#define VCInstallDir VSInstallDir + "\VC"
+#define OSGInstallDir "X:\install\msvc90\OpenSceneGraph"
+#define OSGPluginsDir OSGInstallDir + "\bin\osgPlugins-" + OSGVersion
+
+#define OSG64InstallDir "X:\install\msvc90-64\OpenSceneGraph"
+#define OSG64PluginsDir OSG64InstallDir + "\bin\osgPlugins-" + OSGVersion
+
+[Setup]
+AppId=FlightGear
+AppName=FlightGear
+AppPublisher=The FlightGear Team
+OutputBaseFilename=fgsetup-{#FGVersion}
+AppVerName=FlightGear v{#FGVersion}
+AppPublisherURL=http://www.flightgear.org
+AppSupportURL=http://www.flightgear.org
+AppUpdatesURL=http://www.flightgear.org
+DefaultDirName={pf}\FlightGear
+DefaultGroupName=FlightGear {#FGVersion}
+LicenseFile=X:\flightgear\COPYING
+Uninstallable=yes
+SetupIconFile=X:\flightgear\projects\VC90\flightgear.ico
+VersionInfoVersion={#FGVersion}.0
+WizardImageFile=X:\flightgear\package\Win32-Inno\setupimg.bmp
+WizardImageStretch=No
+WizardSmallImageFile=X:\flightgear\package\Win32-Inno\setupsmall.bmp
+VersionInfoCompany=The FlightGear Team
+UninstallDisplayIcon=X:\flightgear\projects\VC90\flightgear.ico
+
+[Tasks]
+; NOTE: The following entry contains English phrases ("Create a desktop icon" and "Additional icons"). You are free to translate them into another language if required.
+Name: "desktopicon"; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"
+
+[Files]
+; NOTE: run subst X: F:\ (or whatever path the expanded tree resides at)
+;Source: "X:\*.txt"; DestDir: "{app}"; Flags: ignoreversion
+Source: "X:\flightgear\projects\VC90\Win32\Release\*.exe"; DestDir: "{app}\bin\Win32"; Flags: ignoreversion
+Source: "X:\flightgear\projects\VC90\x64\Release\*.exe"; DestDir: "{app}\bin\Win64"; Flags: ignoreversion skipifsourcedoesntexist
+
+Source: "X:\fgrun\msvc\9.0\Win32\Release\fgrun.exe"; DestDir: "{app}\bin\Win32"; Flags: ignoreversion
+Source: "X:\fgrun\msvc\9.0\Win32\Release\locale\*"; DestDir: "{app}\bin\Win32\locale"; Flags: ignoreversion recursesubdirs
+
+Source: "X:\fgrun\msvc\9.0\x64\Release\fgrun.exe"; DestDir: "{app}\bin\Win64"; Flags: ignoreversion
+Source: "X:\fgrun\msvc\9.0\Win32\Release\locale\*"; DestDir: "{app}\bin\Win64\locale"; Flags: ignoreversion recursesubdirs
+
+Source: "X:\3rdParty\bin\*.dll"; DestDir: "{app}\bin\Win32"
+Source: "X:\3rdParty.x64\bin\*.dll"; DestDir: "{app}\bin\Win64"; Flags: skipifsourcedoesntexist; Check: Is64BitInstallMode
+
+Source: "{#VCInstallDir}\redist\x86\Microsoft.VC90.CRT\*.dll"; DestDir: "{app}\bin\Win32"
+Source: "{#VCInstallDir}\redist\x64\Microsoft.VC90.CRT\*.dll"; DestDir: "{app}\bin\Win64"; Flags: skipifsourcedoesntexist; Check: Is64BitInstallMode
+
+Source: "X:\data\*.*"; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs skipifsourcedoesntexist
+
+Source: "{#OSGInstallDir}\bin\osg{#OSGSoNumber}-osg.dll"; DestDir: "{app}\bin\Win32"
+Source: "{#OSGInstallDir}\bin\osg{#OSGSoNumber}-osgDB.dll"; DestDir: "{app}\bin\Win32"
+Source: "{#OSGInstallDir}\bin\osg{#OSGSoNumber}-osgGA.dll"; DestDir: "{app}\bin\Win32"
+Source: "{#OSGInstallDir}\bin\osg{#OSGSoNumber}-osgParticle.dll"; DestDir: "{app}\bin\Win32"
+Source: "{#OSGInstallDir}\bin\osg{#OSGSoNumber}-osgText.dll"; DestDir: "{app}\bin\Win32"
+Source: "{#OSGInstallDir}\bin\osg{#OSGSoNumber}-osgUtil.dll"; DestDir: "{app}\bin\Win32"
+Source: "{#OSGInstallDir}\bin\osg{#OSGSoNumber}-osgViewer.dll"; DestDir: "{app}\bin\Win32"
+Source: "{#OSGInstallDir}\bin\osg{#OSGSoNumber}-osgSim.dll"; DestDir: "{app}\bin\Win32"
+Source: "{#OSGInstallDir}\bin\osg{#OSGSoNumber}-osgFX.dll"; DestDir: "{app}\bin\Win32"
+
+Source: "{#OSGInstallDir}\bin\ot12-OpenThreads.dll"; DestDir: "{app}\bin\Win32"
+
+Source: "{#OSGPluginsDir}\osgdb_ac.dll"; DestDir: "{app}\bin\Win32\osgPlugins-{#OSGVersion}"
+Source: "{#OSGPluginsDir}\osgdb_osg.dll"; DestDir: "{app}\bin\Win32\osgPlugins-{#OSGVersion}"
+Source: "{#OSGPluginsDir}\osgdb_3ds.dll"; DestDir: "{app}\bin\Win32\osgPlugins-{#OSGVersion}"
+Source: "{#OSGPluginsDir}\osgdb_mdl.dll"; DestDir: "{app}\bin\Win32\osgPlugins-{#OSGVersion}"
+Source: "{#OSGPluginsDir}\osgdb_jpeg.dll"; DestDir: "{app}\bin\Win32\osgPlugins-{#OSGVersion}"
+Source: "{#OSGPluginsDir}\osgdb_rgb.dll"; DestDir: "{app}\bin\Win32\osgPlugins-{#OSGVersion}"
+Source: "{#OSGPluginsDir}\osgdb_png.dll"; DestDir: "{app}\bin\Win32\osgPlugins-{#OSGVersion}"
+Source: "{#OSGPluginsDir}\osgdb_txf.dll"; DestDir: "{app}\bin\Win32\osgPlugins-{#OSGVersion}"
+
+Source: "{#OSG64InstallDir}\bin\osg{#OSGSoNumber}-osg.dll"; DestDir: "{app}\bin\Win64"; Flags: skipifsourcedoesntexist
+Source: "{#OSG64InstallDir}\bin\osg{#OSGSoNumber}-osgDB.dll"; DestDir: "{app}\bin\Win64"; Flags: skipifsourcedoesntexist
+Source: "{#OSG64InstallDir}\bin\osg{#OSGSoNumber}-osgGA.dll"; DestDir: "{app}\bin\Win64"; Flags: skipifsourcedoesntexist
+Source: "{#OSG64InstallDir}\bin\osg{#OSGSoNumber}-osgParticle.dll"; DestDir: "{app}\bin\Win64"; Flags: skipifsourcedoesntexist
+Source: "{#OSG64InstallDir}\bin\osg{#OSGSoNumber}-osgText.dll"; DestDir: "{app}\bin\Win64"; Flags: skipifsourcedoesntexist
+Source: "{#OSG64InstallDir}\bin\osg{#OSGSoNumber}-osgUtil.dll"; DestDir: "{app}\bin\Win64"; Flags: skipifsourcedoesntexist
+Source: "{#OSG64InstallDir}\bin\osg{#OSGSoNumber}-osgViewer.dll"; DestDir: "{app}\bin\Win64"; Flags: skipifsourcedoesntexist
+Source: "{#OSG64InstallDir}\bin\osg{#OSGSoNumber}-osgSim.dll"; DestDir: "{app}\bin\Win64"; Flags: skipifsourcedoesntexist
+Source: "{#OSG64InstallDir}\bin\osg{#OSGSoNumber}-osgFX.dll"; DestDir: "{app}\bin\Win64"; Flags: skipifsourcedoesntexist
+
+Source: "{#OSG64InstallDir}\bin\ot12-OpenThreads.dll"; DestDir: "{app}\bin\Win64"; Flags: skipifsourcedoesntexist
+
+Source: "{#OSG64PluginsDir}\osgdb_ac.dll"; DestDir: "{app}\bin\Win64\osgPlugins-{#OSGVersion}"; Flags: skipifsourcedoesntexist
+Source: "{#OSG64PluginsDir}\osgdb_osg.dll"; DestDir: "{app}\bin\Win64\osgPlugins-{#OSGVersion}"; Flags: skipifsourcedoesntexist
+Source: "{#OSG64PluginsDir}\osgdb_3ds.dll"; DestDir: "{app}\bin\Win64\osgPlugins-{#OSGVersion}"; Flags: skipifsourcedoesntexist
+Source: "{#OSG64PluginsDir}\osgdb_mdl.dll"; DestDir: "{app}\bin\Win64\osgPlugins-{#OSGVersion}"; Flags: skipifsourcedoesntexist
+Source: "{#OSG64PluginsDir}\osgdb_jpeg.dll"; DestDir: "{app}\bin\Win64\osgPlugins-{#OSGVersion}"; Flags: skipifsourcedoesntexist
+Source: "{#OSG64PluginsDir}\osgdb_rgb.dll"; DestDir: "{app}\bin\Win64\osgPlugins-{#OSGVersion}"; Flags: skipifsourcedoesntexist
+Source: "{#OSG64PluginsDir}\osgdb_png.dll"; DestDir: "{app}\bin\Win64\osgPlugins-{#OSGVersion}"; Flags: skipifsourcedoesntexist
+Source: "{#OSG64PluginsDir}\osgdb_txf.dll"; DestDir: "{app}\bin\Win64\osgPlugins-{#OSGVersion}"; Flags: skipifsourcedoesntexist
+
+[Dirs]
+; Make the user installable scenery directory
+Name: "{app}\scenery"; Permissions: everyone-modify
+Name: "{code:TerrasyncDir}"; Permissions: everyone-modify
+
+[Icons]
+Name: "{group}\FlightGear Launcher"; Filename: "{app}\bin\Win32\fgrun.exe"; WorkingDir: "{app}";
+; Name: "{group}\FlightGear"; Filename: "{app}\bin\Win32\fgfs.exe"; Parameters: "--fg-root=."; WorkingDir: "{app}";
+Name: "{group}\FlightGear Manual"; Filename: "{app}\data\Docs\getstart.pdf"
+Name: "{group}\FlightGear Documentation"; Filename: "{app}\data\Docs\index.html"
+Name: "{group}\Flightgear Wiki"; Filename: "http://wiki.flightgear.org"
+Name: "{userdesktop}\FlightGear {#FGVersion}"; Filename: "{app}\bin\Win32\fgrun.exe"; WorkingDir: "{app}"; Tasks: desktopicon
+
+Name: "{group}\Tools\Install & Uninstall Scenery"; Filename: "{app}\bin\Win32\fgadmin.exe"; WorkingDir: "{app}";
+Name: "{group}\Tools\TerraSync"; Filename: "{app}\bin\Win32\terrasync.exe"; Parameters: "-S -p 5505 -d ""{app}\terrasync"""; WorkingDir: "{app}";
+Name: "{group}\Tools\Uninstall FlightGear"; Filename: "{uninstallexe}"
+
+Name: "{group}\Tools\js_demo"; Filename: "{app}\bin\Win32\js_demo.exe"
+Name: "{group}\Tools\fgjs"; Filename: "cmd"; Parameters: "/k fgjs.exe ""--fg-root={app}\data"""; WorkingDir: "{app}\bin\Win32";
+Name: "{group}\Tools\GPSsmooth"; Filename: "cmd"; Parameters: "/k ""{app}\bin\Win32\GPSsmooth.exe"" -h"; WorkingDir: "{app}\bin\Win32";
+Name: "{group}\Tools\UGsmooth"; Filename: "cmd"; Parameters: "/k ""{app}\bin\Win32\UGsmooth.exe"" -h"; WorkingDir: "{app}\bin\Win32";
+Name: "{group}\Tools\MIDSsmooth"; Filename: "cmd"; Parameters: "/k ""{app}\bin\Win32\MIDSsmooth.exe"" -h"; WorkingDir: "{app}\bin\Win32";
+Name: "{group}\Tools\metar"; Filename: "cmd"; Parameters: "/k ""{app}\bin\Win32\metar.exe"" -h"; WorkingDir: "{app}\bin\Win32";
+Name: "{group}\Tools\yasim"; Filename: "cmd"; Parameters: "/k ""{app}\bin\Win32\yasim.exe"" -h"; WorkingDir: "{app}\bin\Win32";
+
+Name: "{group}\Tools\Explore Documentation Folder"; Filename: "{app}\data\Docs"
+
+; For running flightgear directly
+; Name: "{userdesktop}\FlightGear v2.0.0"; Filename: "{app}\bin\Win32\fgfs.exe"; Parameters: "--fg-root=."; WorkingDir: "{app}"; Tasks: desktopicon
+
+[Run]
+
+; Put installation directory into the fgrun.prefs
+filename: "{app}\bin\Win32\fgrun.exe"; WorkingDir: "{app}\bin\Win32"; Parameters: "--silent ""--fg-exe={app}\bin\Win32\fgfs.exe"" ""--ts-exe={app}\bin\Win32\terrasync.exe"" ""--fg-root={app}\data"" ""--fg-scenery={app}\data\Scenery;{app}\scenery;{code:TerrasyncDir}"" --ts-dir=3"
+
+; Put installation and source directories into the fgadmin.prefs
+filename: "{app}\bin\Win32\fgadmin.exe"; WorkingDir: "{app}\bin\Win32"; Parameters: "--silent ""--install-source={src}\..\Scenery"" ""--scenery-dest={app}\scenery"""
+
+[Registry]
+Root: HKLM; Subkey: "Software\flightgear.org"; ValueType: string; ValueName: "TerrasyncDir"; ValueData: "{code:TerrasyncDir}"
+
+[Code]
+var
+ TerrasyncDirPage: TInputDirWizardPage;
+
+procedure URLLabelOnClick(Sender: TObject);
+var
+ ErrorCode: Integer;
+begin
+ ShellExec('open', 'http://www.flightgear.org', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
+end;
+
+procedure CreateURLLabel(ParentForm: TSetupForm; CancelButton: TNewButton);
+var
+ URLLabel: TNewStaticText;
+begin
+ URLLabel := TNewStaticText.Create(ParentForm);
+ URLLabel.Caption := 'www.flightgear.org';
+ URLLabel.Cursor := crHand;
+ URLLabel.OnClick := @URLLabelOnClick;
+ URLLabel.Parent := ParentForm;
+ { Alter Font *after* setting Parent so the correct defaults are inherited first }
+ URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
+ URLLabel.Font.Color := clBlue;
+ URLLabel.Top := CancelButton.Top + CancelButton.Height - URLLabel.Height - 2;
+ URLLabel.Left := ScaleX(20);
+end;
+
+procedure InitializeWizard();
+begin
+ TerrasyncDirPage := CreateInputDirPage(wpSelectDir,
+ 'Select Terrasync Directory', 'Where should scenery downloaded by Terrasync be put?',
+ 'Select the folder in which Terrasync would download additional scenery, then click Next.',
+ False, 'Terrasync Folder');
+ TerrasyncDirPage.Add('');
+
+ CreateURLLabel(WizardForm, WizardForm.CancelButton);
+end;
+
+function NextButtonClick(CurPageID: Integer): Boolean;
+begin
+ if CurPageID = wpSelectDir then begin
+ TerrasyncDirPage.Values[0] := GetPreviousData( 'TerrasyncDir', ExpandConstant('{reg:HKLM\Software\flightgear.org,TerrasyncDir|{app}\terrasync}') );
+ end;
+ Result := True;
+end;
+
+function TerrasyncDir(Param: String): String;
+begin
+ Result := TerrasyncDirPage.Values[0];
+end;
+
+procedure RegisterPreviousData(PreviousDataKey: Integer);
+begin
+ { Store the settings so we can restore them next time }
+ SetPreviousData(PreviousDataKey, 'TerrasyncDir', TerrasyncDirPage.Values[0]);
+end;
+
+function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
+var
+ S: String;
+begin
+ S := '';
+ S := S + MemoDirInfo + NewLine + NewLine;
+ S := S + 'Terrasync folder:' + NewLine;
+ S := S + Space + TerrasyncDirPage.Values[0] + NewLine + NewLine;
+ S := S + MemoGroupInfo + NewLine + NewLine;
+ S := S + MemoTasksInfo + NewLine + NewLine;
+
+ Result := S;
+end;
+
diff --git a/Info.plist.in b/Info.plist.in
new file mode 100644
index 0000000..5fdd5d4
--- /dev/null
+++ b/Info.plist.in
@@ -0,0 +1,29 @@
+
+
+
+
+ CFBundleIconFile
+ FlightGear.icns
+ CFBundlePackageType
+ APPL
+ CFBundleGetInfoString
+ FlightGear nightly build
+ CFBundleSignature
+ ????
+ CFBundleExecutable
+ FlightGear
+ CFBundleIdentifier
+ org.flightgear.FlightGear
+ CFBundleVersion
+ <%= fgVersion %>
+ CFBundleShortVersionString
+ <%= fgVersion %>
+ LSMinimumSystemVersion
+ 10.5.0
+ NSMainNibFile
+ MainMenu
+ NSPrincipalClass
+ NSApplication
+
+
+
diff --git a/flightgear b/flightgear
new file mode 160000
index 0000000..118d8fb
--- /dev/null
+++ b/flightgear
@@ -0,0 +1 @@
+Subproject commit 118d8fbca5d98e994d572e4c922f76ba2cab9e52
diff --git a/hudson_build_release.sh b/hudson_build_release.sh
index f50cbf1..a91f480 100755
--- a/hudson_build_release.sh
+++ b/hudson_build_release.sh
@@ -1,2 +1,30 @@
#!/bin/sh
-echo "Write me!"
+
+cd simgear
+./autogen.sh
+./configure --prefix=$WORKSPACE/dist --with-osg=$WORKSPACE/dist
+
+make
+
+if [ $? -ne '0' ]; then
+ echo "make simgear failed"
+ exit 1
+fi
+
+make install
+make dist
+
+echo "Starting on FlightGear"
+
+cd ../flightgear
+./autogen.sh
+./configure --prefix=$WORKSPACE/dist --with-osg=$WORKSPACE/dist
+make
+
+if [ $? -ne '0' ]; then
+ echo "make flightgear failed"
+ exit 1
+fi
+
+make install
+make dist
diff --git a/hudson_mac_build_launcher.sh b/hudson_mac_build_launcher.sh
new file mode 100755
index 0000000..dc3bd24
--- /dev/null
+++ b/hudson_mac_build_launcher.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+SDK_PATH="/Developer/SDKs/MacOSX10.6.sdk"
+OSX_TARGET="10.6"
+
+svn co https://macflightgear.svn.sourceforge.net/svnroot/macflightgear/trunk/FlightGearOSX macflightgear
+
+pushd macflightgear
+
+# compile the stub executable
+gcc -o FlightGear -mmacosx-version-min=$OSX_TARGET -isysroot $SDK_PATH -arch i386 main.m \
+ -framework Cocoa -framework RubyCocoa -framework Foundation -framework AppKit
+
+popd
+
diff --git a/hudson_mac_package_release.rb b/hudson_mac_package_release.rb
new file mode 100755
index 0000000..d1cfb24
--- /dev/null
+++ b/hudson_mac_package_release.rb
@@ -0,0 +1,119 @@
+#!/usr/bin/ruby
+
+require 'ERB'
+
+$osgLibs = ['osgFX', 'osgParticle', 'osg', 'osgGA', 'osgText', 'osgUtil', 'osgSim', 'osgViewer', 'osgDB']
+$osgPlugins = ['ac', 'osg', 'freetype', 'qt', 'imageio', 'rgb', 'txf', 'mdl', '3ds']
+
+def runOsgVersion(option)
+ env = "export DYLD_LIBRARY_PATH=#{Dir.pwd}/dist/lib"
+ bin = Dir.pwd + "/dist/bin/osgversion"
+ return `#{env}; #{bin} --#{option}`.chomp
+end
+
+osgVersion = runOsgVersion('version-number')
+$osgSoVersion=runOsgVersion('so-number')
+$openThreadsSoVersion=runOsgVersion('openthreads-soversion-number')
+
+puts "osgVersion=#{osgVersion}, so-number=#{$osgSoVersion}"
+
+$alutSourcePath='/Library/Frameworks/ALUT.framework'
+
+def fix_install_names(object)
+ #puts "fixing install names for #{object}"
+
+ $osgLibs.each do |l|
+ oldName = "lib#{l}.#{$osgSoVersion}.dylib"
+ newName = "@executable_path/../Frameworks/#{oldName}"
+ `install_name_tool -change #{oldName} #{newName} #{object}`
+ end
+
+ oldName = "libOpenThreads.#{$openThreadsSoVersion}.dylib"
+ newName= "@executable_path/../Frameworks/#{oldName}"
+ `install_name_tool -change #{oldName} #{newName} #{object}`
+
+ alutBundlePath = "@executable_path/../Frameworks/Alut.framework"
+ alutLib = "Versions/A/ALUT"
+ `install_name_tool -change #{$alutSourcePath}/#{alutLib} #{alutBundlePath}/#{alutLib} #{object}`
+end
+
+prefixDir=Dir.pwd + "/dist"
+dmgDir=Dir.pwd + "/image"
+srcDir=Dir.pwd + "/flightgear"
+
+
+puts "Erasing previous image dir"
+`rm -rf #{dmgDir}`
+
+bundle=dmgDir + "/FlightGear.app"
+contents=bundle + "/Contents"
+macosDir=contents + "/MacOS"
+frameworksDir=contents +"/Frameworks"
+resourcesDir=contents+"/Resources"
+osgPluginsDir=contents+"/PlugIns/osgPlugins-#{osgVersion}"
+
+
+fgVersion = File.read("#{srcDir}/version").strip
+volName="\"FlightGear #{fgVersion}\""
+
+dmgPath = Dir.pwd + "/fg_mac_#{fgVersion}.dmg"
+
+puts "Creating directory structure"
+`mkdir -p #{macosDir}`
+`mkdir -p #{frameworksDir}`
+`mkdir -p #{resourcesDir}`
+`mkdir -p #{osgPluginsDir}`
+
+puts "Copying binaries"
+bins = ['fgfs', 'terrasync']
+bins.each do |b|
+ `cp #{prefixDir}/bin/#{b} #{resourcesDir}/#{b}`
+ fix_install_names("#{resourcesDir}/#{b}")
+end
+
+puts "copying libraries"
+$osgLibs.each do |l|
+ libFile = "lib#{l}.#{$osgSoVersion}.dylib"
+ `cp #{prefixDir}/lib/#{libFile} #{frameworksDir}`
+ fix_install_names("#{frameworksDir}/#{libFile}")
+end
+
+# and not forgetting OpenThreads
+libFile = "libOpenThreads.#{$openThreadsSoVersion}.dylib"
+`cp #{prefixDir}/lib/#{libFile} #{frameworksDir}`
+
+$osgPlugins.each do |p|
+ pluginFile = "osgdb_#{p}.so"
+ `cp #{prefixDir}/lib/osgPlugins-#{osgVersion}/#{pluginFile} #{osgPluginsDir}`
+ fix_install_names("#{osgPluginsDir}/#{pluginFile}")
+end
+
+# custom ALUT
+# must copy frameworks using ditto
+`ditto #{$alutSourcePath} #{frameworksDir}/ALUT.framework`
+
+# Macflightgear launcher
+puts "Copying Macflightgear launcher files"
+
+Dir.chdir "macflightgear" do
+ `cp FlightGear #{macosDir}`
+ `rsync -a --exclude=\".svn\" *.rb *.lproj *.sh *.tiff #{resourcesDir}`
+end
+
+# Info.plist
+template = File.read("Info.plist.in")
+output = ERB.new(template).result(binding)
+
+File.open("#{contents}/Info.plist", 'w') { |f|
+ f.write(output)
+}
+
+`cp #{srcDir}/package/mac/FlightGear.icns #{resourcesDir}/FlightGear.icns`
+`cp #{srcDir}/COPYING #{dmgDir}`
+
+puts "Creating DMG"
+
+createArgs = "-format UDBZ -imagekey bzip2-level=9 -quiet -volname #{volName}"
+
+`rm #{dmgPath}`
+`hdiutil create -srcfolder #{dmgDir} #{createArgs} #{dmgPath}`
diff --git a/hudson_win_build32.bat b/hudson_win_build32.bat
new file mode 100644
index 0000000..77669d5
--- /dev/null
+++ b/hudson_win_build32.bat
@@ -0,0 +1,12 @@
+
+IF NOT DEFINED WORKSPACE SET WORKSPACE=%~dp0
+
+ECHO #define SIMGEAR_VERSION "2.2.0" > %WORKSPACE%\simgear\simgear\version.h
+cd %WORKSPACE%\simgear\projects\VC90
+msbuild SimGear.vcproj /p:Configuration=Release /m
+
+cd %WORKSPACE%\flightgear
+call scripts\tools\version.bat
+SET HAVE_VERSION_H=1
+cd %WORKSPACE%\flightgear\projects\VC90
+msbuild FlightGear.sln /p:Configuration=Release /m
diff --git a/hudson_win_build64.bat b/hudson_win_build64.bat
new file mode 100644
index 0000000..4d235de
--- /dev/null
+++ b/hudson_win_build64.bat
@@ -0,0 +1,13 @@
+
+IF NOT DEFINED WORKSPACE SET WORKSPACE=%~dp0
+
+ECHO #define SIMGEAR_VERSION "2.2.0" > %WORKSPACE%\simgear\simgear\version.h
+cd %WORKSPACE%\simgear\projects\VC90
+msbuild SimGear.vcproj /p:Configuration=Release /p:Platform=x64
+
+cd %WORKSPACE%\flightgear
+call scripts\tools\version.bat
+SET HAVE_VERSION_H=1
+cd %WORKSPACE%\flightgear\projects\VC90
+msbuild FlightGear.sln /p:Configuration=Release /p:Platform=x64
+
diff --git a/hudson_win_package_release.bat b/hudson_win_package_release.bat
new file mode 100644
index 0000000..d058849
--- /dev/null
+++ b/hudson_win_package_release.bat
@@ -0,0 +1,30 @@
+ECHO OFF
+
+IF NOT DEFINED WORKSPACE SET WORKSPACE=%~dp0
+ECHO Packaging root is %WORKSPACE%
+
+subst X: /D
+subst X: %WORKSPACE%
+
+REM construct information file to be read by Inno-setup
+
+
+set PATH=%WORKSPACE%\install\msvc90\OpenSceneGraph\bin;%PATH%
+REM indirect way to get command output into an environment variable
+osgversion --so-number > %TEMP%\osg-so-number.txt
+osgversion --version-number > %TEMP%\osg-version.txt
+
+SET /P FLIGHTGEAR_VERSION= InstallConfig.iss
+ECHO #define OSGVersion "%OSG_VERSION%" >> InstallConfig.iss
+ECHO #define OSGSoNumber "%OSG_SO_NUMBER%" >> InstallConfig.iss
+
+REM run Inno-setup!
+
+Compil32 /cc FlightGear.iss
+
+
+
diff --git a/simgear b/simgear
new file mode 160000
index 0000000..e55017b
--- /dev/null
+++ b/simgear
@@ -0,0 +1 @@
+Subproject commit e55017bbfce20a999bc9173260f402b2ec3819d0