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
