I found another way to get simgear to build using GCC 3.3 and bash.

First set two environment variables:
export CFLAGS=-I/usr/X11R6/include
export CXXFLAGS=-I/usr/X11R6/include

and then run configure with the --with-x flag:
./configure --prefix=$BUILDDIR --with-x

I was able to build simgear like that without having to modify any
code. (I got it from looking at a darwinports port file)

I havn't tried building flightgear yet though.


On Wed, 10 Nov 2004 12:43:37 -0800, Adam Dershowitz
<[EMAIL PROTECTED]> wrote:
> I have made a bunch of progress, but have not yet gotten everything to work.
> So I still have some questions.
> I hope by posting this I can help others compile stuff, and also get some
> help to finish up the compile.
> Despite what the users guide says for building under OSX I have been using
> gcc 3.3.
> 
> I am sorry for the length of this email, but I have included some diffs and
> compile errors in detail.
> 
> Here are the steps that I have had to go through:
> 
>   export BUILDDIR=/Users/dersh/Programming/fgdev
> 
>   Download plib 1.8.3
> 
> Made the following changes to the files:
> 
>     diff jsMacOSX.cxx jsMacOSX_org.cxx
> 
>     17,19c17
>     < //int jsJoystick::kNumDevices = 32 ;
>     < int jsJoystick::kNumDevices = JS_MAX_OSX_DEVICES ;
>     <
>     ---
>     > int jsJoystick::kNumDevices = 32 ;
>     21,22c19
>     < //io_object_t jsJoystick::ioDevices[kNumDevices];
>     < io_object_t jsJoystick::ioDevices[JS_MAX_OSX_DEVICES] ;
>     ---
>     > io_object_t jsJoystick::ioDevices[kNumDevices];
>     132,133c129,130
>     <       HRESULT pluginResult = (*plugin)->QueryInterface(plugin,
>     <               CFUUIDGetUUIDBytes(kIOHIDDeviceInterfaceID), &hidDev);
>     ---
>     >       HRESULT pluginResult = (*plugin)->QueryInterface(plugin,
>     >               CFUUIDGetUUIDBytes(kIOHIDDeviceInterfaceID),
>                             &(LPVOID)hidDev);
> 
> The last change above was because I kept getting a compile error:
> jsMacOSX.cxx: In member function `void jsJoystick::open()':
> jsMacOSX.cxx:133: error: non-lvalue in unary `&'
> 
> I don't like removing a cast without understanding the implications, but I
> did it anyway, just get it to compile.  So my first question is really a
> plib question, but it is why there is the LPVOID, and is it OK to just
> remove it?
> 
>     diff js.h js_org.h
>     35,36d34
>     < #define JS_MAX_OSX_DEVICES  32
>     <
>     97c95
>     <   static  int kNumDevices;
>     ---
>     >   static const int kNumDevices;
>     99,100c97
>     < //  static io_object_t ioDevices[kNumDevices];
>     < static io_object_t jsJoystick::ioDevices[JS_MAX_OSX_DEVICES] ;
>     ---
>     >   static io_object_t ioDevices[kNumDevices];
> 
> But then building plib works fine:
> ./autogen.sh
> ./configure -prefix=$BUILDDIR
> make install
> 
> Next to build SimGear I kept getting stream related errors.  I made the
> following change to simgear/compiler.h and then I was able to get it to
> build as well:
> 
>     diff compiler.h "compiler org.h"
>     82c82
>     < #ifdef __GNUC__ || __APPLE__
>     ---
>     > #ifdef __GNUC__
> 
> It seems that even though I am using gcc, the right flag is not being set,
> so each of the test programs, that does require streams, and other standard
> IO kinds of things gave link errors.
> 
> ./autogen.sh
> ./configure -prefix=$BUILDDIR
> make install
> 
> Finally, when I try to build FlightGear I can compile everything, but the
> final like fails.
> 
> I have been doing:
> /autogen.sh
>  ./configure --prefix=$BUILDDIR --with-threads --without-x
> make install
> 
> And here is the final link warnings and errors:
> 
> g++ -DPKGLIBDIR=\"/Users/dersh/Programming/fgdev/share/FlightGear\" -g -O2
> -D_REENTRANT  -L/Users/dersh/Programming/fgdev/lib -o fgfs  bootstrap.o
> ../../src/Main/libMain.a ../../src/Aircraft/libAircraft.a
> ../../src/ATC/libATC.a ../../src/Cockpit/libCockpit.a
> ../../src/Cockpit/built_in/libBuilt_in.a ../../src/Controls/libControls.a
> ../../src/FDM/libFlight.a ../../src/FDM/Balloon/libBalloon.a
> ../../src/FDM/ExternalNet/libExternalNet.a
> ../../src/FDM/ExternalPipe/libExternalPipe.a
> ../../src/FDM/JSBSim/libJSBSim.a ../../src/FDM/YASim/libYASim.a
> ../../src/FDM/JSBSim/filtersjb/libfiltersjb.a
> ../../src/FDM/LaRCsim/libLaRCsim.a ../../src/FDM/UIUCModel/libUIUCModel.a
> ../../src/FDM/SP/libSPFDM.a ../../src/GUI/libGUI.a
> ../../src/Autopilot/libAutopilot.a ../../src/Input/libInput.a
> ../../src/Instrumentation/libInstrumentation.a ../../src/Model/libModel.a
> ../../src/AIModel/libAIModel.a ../../src/Network/libNetwork.a
> ../../src/Navaids/libNavaids.a ../../src/Scenery/libScenery.a
> ../../src/Scripting/libScripting.a ../../src/Sound/libSound.a
> ../../src/Airports/libAirports.a ../../src/MultiPlayer/libMultiPlayer.a
> ../../src/Replay/libReplay.a ../../src/Systems/libSystems.a
> ../../src/Time/libTime.a ../../src/Traffic/libTraffic.a
> ../../src/Environment/libEnvironment.a -lsgclouds3d -lsgroute -lsgsky
> -lsgsound -lsgephem -lsgmaterial -lsgtgdb -lsgmodel -lsgtiming -lsgio
> -lsgscreen -lsgmath -lsgbucket -lsgprops -lsgdebug -lsgmagvar -lsgmisc
> -lsgnasal -lsgxml -lsgsound -lsgserial -lsgstructure -lsgenvironment
> -lsgthreads -lpthread  -lplibpu -lplibfnt -lplibjs -lplibnet -lplibssg
> -lplibsg -lplibul  -lz -framework GLUT -framework OpenGL -framework AGL
> -framework Carbon -lobjc -framework IOKit -framework OpenAL
> ld: warning multiple definitions of symbol _glutWireTorus
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutWireTorus in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutWireTorus
> ld: warning multiple definitions of symbol _glutSolidDodecahedron
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutSolidDodecahedron in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutSolidDodecahedron
> ld: warning multiple definitions of symbol _glutSolidOctahedron
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutSolidOctahedron in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutSolidOctahedron
> ld: warning multiple definitions of symbol _glutSolidSphere
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutSolidSphere in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutSolidSphere
> ld: warning multiple definitions of symbol _glutSolidCube
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutSolidCube in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutSolidCube
> ld: warning multiple definitions of symbol _glutSolidCone
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutSolidCone in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutSolidCone
> ld: warning multiple definitions of symbol _glutWireCube
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutWireCube in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutWireCube
> ld: warning multiple definitions of symbol _glutWireCone
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutWireCone in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutWireCone
> ld: warning multiple definitions of symbol _glutSolidTetrahedron
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutSolidTetrahedron in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutSolidTetrahedron
> ld: warning multiple definitions of symbol _glutSolidTorus
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutSolidTorus in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutSolidTorus
> ld: warning multiple definitions of symbol _glutSolidIcosahedron
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutSolidIcosahedron in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutSolidIcosahedron
> ld: warning multiple definitions of symbol _glutWireTetrahedron
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutWireTetrahedron in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutWireTetrahedron
> ld: warning multiple definitions of symbol _glutWireSphere
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutWireSphere in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutWireSphere
> ld: warning multiple definitions of symbol _glutWireOctahedron
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutWireOctahedron in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutWireOctahedron
> ld: warning multiple definitions of symbol _glutWireIcosahedron
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutWireIcosahedron in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutWireIcosahedron
> ld: warning multiple definitions of symbol _glutWireDodecahedron
> /Users/dersh/Programming/fgdev/lib/libsgclouds3d.a(glut_shapes.o) definition
> of _glutWireDodecahedron in section (__TEXT,__text)
> /System/Library/Frameworks/GLUT.framework/GLUT(single module) definition of
> _glutWireDodecahedron
> ld: Undefined symbols:
> SGMagVar::update(double, double, double, double)
> SGMagVar::SGMagVar()
> CamMinMaxBoxOverlap(Camera const*, float const*, float const*)
> Frustum16fv(float*, float, float, float, float, float, float)
> Viewing16fv(float*, float const*, float const*, float const*, float const*)
> Viewport16fv(float*, int, int)
> invFrustum16fv(float*, float, float, float, float, float, float)
> invViewing16fv(float*, float const*, float const*, float const*, float
> const*)
> invViewport16fv(float*, int, int)
> Screen2WorldXform16fv(float*, float const*, float const*, float const*,
> float const*, float, float, float, float, float, float, int, int)
> World2ScreenXform16fv(float*, float const*, float const*, float const*,
> float const*, float, float, float, float, float, float, int, int)
> Viewing2CoordFrame16fv(float const*, float*, float*, float*, float*)
> VFC(Camera const*, float const*, float const*)
> make[2]: *** [fgfs] Error 1
> make[1]: *** [install-recursive] Error 1
> make: *** [install-recursive] Error 1
> 
> Where should those final symbols be coming from?  Also, is it a problem that
> there are a multiple defined glut things?  Which one is the best of each of
> these to use?  Is there a way to make it use one or the other?
> 
> Finally, I noticed something else.  I am not sure who the maintainer is.
> But in JSBSim/Makefile.solo (not required for FG, but good for other
> things.)  there is a typo. That will not allow for a building of JSBSim
> separately.
> 
> It reads:
> JSBSim : $(JSBSim_objects) JSBSim.o libFCSComponents.a
>     $(CC) $(INCLUDES) $(CCOPTS) $(LINKDIR) $(JSBSim_objects) JSBSim.o
> -oJSBSim -lm -lFCSComponents
> 
> But that will not work.
> 
> It should have a space after the -o.  So it should be:
> 
> JSBSim : $(JSBSim_objects) JSBSim.o libFCSComponents.a
>     $(CC) $(INCLUDES) $(CCOPTS) $(LINKDIR) $(JSBSim_objects) JSBSim.o -o
> JSBSim -lm -lFCSComponents
> 
> How can we get that fixed in the CVS version?
> 
> Thank you for any help.
> 
> -- Adam
> 
> > From: <[EMAIL PROTECTED]>
> > Reply-To: FlightGear developers discussions 
> > <[EMAIL PROTECTED]>
> > Date: Wed, 10 Nov 2004 13:15:45 -0500
> > To: <[EMAIL PROTECTED]>
> > Subject: [Flightgear-devel] Building FlightGear on Mac OSX
> 
> 
> >
> >
> > On Nov 9th, 2004, Adam wrote:
> >>
> >> I have been trying to build FlightGear 0.96 (CVS) on a Mac, and have
> >> been
> >> using fgdev, and have followed the instructions in the FG users guide,
> >> as
> >> well as the instructions included in fgdev, but I have run into a
> >> bunch of
> >> problems.
> >> Any help that anyone can offer would be greatly appreciated.
> >> I have searched the lists and see that some others have had some of
> >> the same
> >> problems, but I have not found postings of solutions.  I guess that the
> >> instructions for building on a Mac in the users guide are somewhat out
> >> of
> >> date.
> >>
> >> I am using OSX 10.3.5 and I have Xcode 1.5 installed (gcc 3.3 and gcc
> >> 2.95.2).  The insructions say to use gcc 2.95, so I have started with
> >> that.
> >> I also am using tcsh as instructed (which is no longer the Mac
> >> default).
> >>
> >> First I found that by default I already had the versions of automake
> >> and
> >> autoconf that the instructions say to build, so I did not do that.
> >> (1.6.3
> >> and 2.53 respectively)
> >>
> >> I had trouble getting plib to build, but, after a few changes, got it
> >> to
> >> compile.
> >
> > What problems did you have please? How did you fix them?
> >
> >>
> >> The instructions next call for building metakit, but I assume that is
> >> now
> >> included in SimGear?
> >>
> >
> > metakit is not needed anymore. it was replaced by something else, I'm
> > afraid that I can't remember what 8-( I think it's built into simgear,
> > however, and not external. Someone please correct me if I'm wrong...
> >
> >> Building SimGear failed with gcc 2.95.  When I switched to 3.3 it got
> >> much
> >> further, but failed on testserial.  I was hoping that this is not
> >> critical.
> >>
> >> So next I tried to build FlightGear itself:
> >> ./configure --prefix=$BUILDDIR --without-threads --without-x
> >> configure: error: cannot run /bin/sh ./config.sub
> >
> > What is your BUILDDIR value set to? It should be the path to the fg
> > build tree (mine is
> > /flightgear/fgdev9.6)
> >
> > I will be happy to try to help, health permitting -- November is
> > shaping up to be a bad month as it's turning colder -- but please give
> > some more info regarding the exact errors that you're hitting. You may
> > or may not have in fact gotten past them. If plib is not built right,
> > then all bets are off as to whether you'll succesfully build the rest.
> >
> >
> >> I found that the reason is that config.sub does not exist.
> >
> > I have config.sub in ./src/FlightGear, ./src/plib and ./src/SimGear
> > I didn't check all of them but config.sub in src/FlightGear is a link
> > to:
> >
> > lrwxrwxrwx  1 ima  staff  34 19 Jun  2003 src/flightgear/config.sub ->
> > /usr/share/automake-1.6/config.sub
> >
> > are you sure you've got automake installed right? This is NOT something
> > that seems to be touched on every build... My src/FlightGear file has
> > the following timestamp inside it:
> >
> > timestamp='2002-07-03'
> >
> > Shouldn't
> >> autogen.sh create this file?  Did I do something wrong?
> >> (I see that someone else had the same problem and posted to the mailing
> >> list, but I could not find a response).
> >>
> >>
> >> So, where I think I stand is:  I have plib, I think that I have
> >> SimGear?  I
> >> have downloaded and installed OpenAL and I can't get FG itself to even
> >> start
> >> to compile.
> >>
> >> Thanks,
> >>
> >>
> >> -- Adam
> >>
> >>
> >>
> > Here are my build scripts (I build from the command line, I think that
> > others on the list have FG building from XCode but I haven't done this:
> >
> >>  cat makeplib.sh makesg.sh makefg.sh
> >>  cd $BUILDDIR/src/plib
> >>  ./autogen.sh
> >>  ./configure --prefix=$BUILDDIR
> >>  make install
> >>
> >>
> >>  cd $BUILDDIR/src/SimGear
> >>  ./autogen.sh
> >>  ./configure --prefix=$BUILDDIR
> >>  make install
> >>
> >>
> >>  cd $BUILDDIR/src/FlightGear
> >>  ./autogen.sh
> >>  ./configure --prefix=$BUILDDIR --with-threads --without-x
> >>  make install
> >> echo "'make install' done"
> >
> > My GCC version is:
> >
> > gcc --version
> > gcc (GCC) 3.3 20030304 (Apple Computer, Inc. build 1495)
> > Copyright (C) 2002 Free Software Foundation, Inc.
> > This is free software; see the source for copying conditions.  There is
> > NO
> > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
> > PURPOSE.
> >
> > I am using mac os x 10.3.6, but did build with 10.5 in the past.
> >
> > I last built plib, simgear and flightgear from CVS on 11/5/04 and had
> > no problems.
> >
> > I am using automake 1.6.3 and autoconf 2.57
> >
> > Hope this helps.
> >
> > Welcome to the project, FlightGear is a great Mac OS X compatible
> > flight sim.  I haven't used X Plane in years even. 8-) This is a great
> > list, with a lot of skilled and helpful people on it...
> >
> > Ima
> >
> > PS -- if you use .sh scripts with tcsh, you'll need to run child
> > scripts via the 'source' command in order to properly pass the
> > environment (including BUILDDIR to the child processes)
> >
> >
> > _______________________________________________
> > Flightgear-devel mailing list
> > [EMAIL PROTECTED]
> > http://mail.flightgear.org/mailman/listinfo/flightgear-devel
> > 2f585eeea02e2c79d7b1d8c4963bae2d
> 
> _______________________________________________
> Flightgear-devel mailing list
> [EMAIL PROTECTED]
> http://mail.flightgear.org/mailman/listinfo/flightgear-devel
> 2f585eeea02e2c79d7b1d8c4963bae2d
> 


-- 
<Arthur/>

_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d

Reply via email to