pingus-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pingus-Devel] pingus trunk (2635) on Mac OS X


From: Tim Wilson-Brown
Subject: [Pingus-Devel] pingus trunk (2635) on Mac OS X
Date: Sat, 24 Jun 2006 21:58:33 +1000

Hi,

I have just installed ClanLib and Pingus from svn, using the latest version of svn from fink 10.4-transitional unstable:

I used Xcode 2.3, gcc version 4.0.1 (Apple Computer, Inc. build 5341), and zlib 1.2.3, all on Mac OS X 10.4.6 (8I127) on a PowerBook G4.


*Getting Pingus source:

http://lists.gnu.org/archive/html/pingus-devel/2005-12/msg00060.html
says that ClanLib 0.9 is incompatible with (pingus/Mac OS X)?

So I downloaded ClanLib-0.8 using the instructions at: http:// www.clanlib.org/subversion.html
...
Checked out revision 930.

For Pingus I used the instructions at http://developer.berlios.de/ svn/?group_id=2301

Downloaded pingus trunk:
Charis:~/Projects/Pingus twilsonb$ svn co svn://svn.berlios.de/pingus/ trunk/
...
Checked out revision 2635.


*Building ClanLib 0.8:

I chose to use the universal binary instructions at http:// www.clanlib.org/wiki/XCode_Universal_Binaries and used the binaries from http://www.clanlib.org/download-binaries- osx-gcc40-universal.html

The build worked fine - about 5-10 minutes .


*Building pingus trunk:

Opened the Pingus.xcodeproj in the svn directory. I changed to universal binaries and subversion.

I changed the ClanLib frameworks so they were referenced via a dependency on the ClanLib project. This caused me trouble later on because the new references to the frameworks meant that they didn't get copied to the Frameworks directory properly - but that was easy enough to sort out.

I started to build, and found the following errors:

Info.plist does not exist
config.h does not exist


*Configuring:

Tried running ./autogen.sh
configure.ac:22: `automake requires `AM_CONFIG_HEADER', not `AC_CONFIG_HEADER'
Didn't create configure.

Installed automake1.7 from fink (had automake 1.9). No warnings this time - and a working configure!

Configure needed to be run with:

$ PINGUS_CFLAGS=-F/Users/twilsonb/Projects/Pingus/ClanLib-0.8/MacOSX PINGUS_LIBS="-F/Users/twilsonb/Projects/Pingus/ClanLib-0.8/MacOSX - framework Carbon -framework ClanCore -framework ClanApp -framework ClanDisplay -framework ClanGL -framework ClanSDL -framework ClanGUI - framework ClanGUIStyleSilver -framework ClanSound -framework ClanVorbis -framework ClanMikMod" ./configure --prefix=/Users/ twilsonb/Projects/Pingus/Install

And then I had a config.h.

Needed to add /Users/twilsonb/Projects/Pingus/Pingus-trunk/trunk to the header search paths so that Xcode could find config.h. (I didn't notice the macosx directory in the project until later).

*Info.plist:

Copied over the Info.plist and strings file from a standard carbon C+ + project. Made a few modifications such as ID, version, and resources file = no.

After these changes, Pingus built in around 15-20 minutes with 2x 1.5GHz PowerPC G4s.


*Linking:

This is the output I get in the Console when I run Pingus:
Successfully created: /Users/twilsonb/.pingus/
Successfully created: /Users/twilsonb/.pingus/levels/
Successfully created: /Users/twilsonb/.pingus/levels/dist
Successfully created: /Users/twilsonb/.pingus/themes/
Successfully created: /Users/twilsonb/.pingus/savegames/
Successfully created: /Users/twilsonb/.pingus/images/
Successfully created: /Users/twilsonb/.pingus/cache/
Successfully created: /Users/twilsonb/.pingus/demos/
Successfully created: /Users/twilsonb/.pingus/screenshots/
Pingus: Unknown throw caught!

It got much further when I set DISPLAY to :0 in the executable environment tab. But then it failed with missing symbols (it could continue to a certain point because of ZeroLink - so I switched it off).


Got the following error:

/usr/bin/ld: Undefined symbols:
Pingus::WorldMapNS::WorldDot::WorldDot(Pingus::FileReader)
Pingus::WorldMapNS::MetaMap::get_default_worldmap()
Pingus::WorldMapNS::MetaMap::MetaMap(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
Pingus::WorldMapNS::MetaMap::~MetaMap()
Pingus::WorldMapNS::MetaMap::finish_node(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
Pingus::WorldMapNS::MetaMap::get_final_worldmap()
Pingus::GUI::Checkbox::Checkbox(Pingus::Vector, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, Pingus::GUI::CheckboxListener*) Pingus::Editor::LevelHead::LevelHead(Pingus::Editor::EditorPanel*, Pingus::Editor::PanelButtonHead*) Pingus::GUI::InputBox::InputBox(float, Pingus::Vector, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /tmp/build/intermediates/Pingus.build/Debug/Pingus.build/Objects- normal/i386/dot_factory.o reference to undefined Pingus::WorldMapNS::WorldDot::WorldDot(Pingus::FileReader) /tmp/build/intermediates/Pingus.build/Debug/Pingus.build/Objects- normal/i386/manager.o reference to undefined Pingus::WorldMapNS::MetaMap::get_default_worldmap() /tmp/build/intermediates/Pingus.build/Debug/Pingus.build/Objects- normal/i386/manager.o reference to undefined Pingus::WorldMapNS::MetaMap::MetaMap(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /tmp/build/intermediates/Pingus.build/Debug/Pingus.build/Objects- normal/i386/manager.o reference to undefined Pingus::WorldMapNS::MetaMap::~MetaMap() /tmp/build/intermediates/Pingus.build/Debug/Pingus.build/Objects- normal/i386/worldmap.o reference to undefined Pingus::WorldMapNS::MetaMap::finish_node(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /tmp/build/intermediates/Pingus.build/Debug/Pingus.build/Objects- normal/i386/worldmap.o reference to undefined Pingus::WorldMapNS::MetaMap::get_final_worldmap() /tmp/build/intermediates/Pingus.build/Debug/Pingus.build/Objects- normal/i386/editor_panel.o reference to undefined Pingus::GUI::Checkbox::Checkbox(Pingus::Vector, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, Pingus::GUI::CheckboxListener*) /tmp/build/intermediates/Pingus.build/Debug/Pingus.build/Objects- normal/i386/panel_buttons.o reference to undefined Pingus::Editor::LevelHead::LevelHead(Pingus::Editor::EditorPanel*, Pingus::Editor::PanelButtonHead*) /tmp/build/intermediates/Pingus.build/Debug/Pingus.build/Objects- normal/i386/file_dialog.o reference to undefined Pingus::GUI::InputBox::InputBox(float, Pingus::Vector, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
collect2: ld returned 1 exit status

Needed to add the world_dot, metamap, checkbox, and checkbox_listener, input_box, and level_head source and/or header files to the project.


Then I don't get any link errors.


*Running/Debugging:

This is the output I get:

Welcome to Pingus 0.7.0 (unofficial build)!
===========================================
clanVorbis support:           ok
clanMikMod support:           ok
getext support: missing (only support for english will be available)
sound support:           enabled
music support:           enabled
resolution set to:       800x600
fullscreen:              disabled
refresh rate:            60
using OpenGL:            1

SavegameManager: Couldn't find savegame file '/Users/twilsonb/.pingus/ savegames/savegames.xml', starting with a empty one.
Pingus: Unknown throw caught!

after it opens a window.

See my cross-post to clanlib-devel for details of what I think is going on here. The actual error was "Compressed sample is invalid for /tmp/build/products/Development/Pingus.app/Contents/Resources/ data/music/pingus-1.it" from libMikMod.

It didn't play in VLC 0.8.4 the first time I tried, but it worked just now. So it would appear to be a problem with libMikMod 3.2.0 or ClanMikMod 0.8. It also plays fine in fink's MikMod 3.2.2-beta1. Should I just upgrade the mikmod library version?


After that, I ran with no music (-m), which solved the problem so I could play games.



When I tried to exit by blowing them all up (nuke), I got unknown throw again:

[Session started at 2006-06-24 19:26:24 +1000.]
Welcome to Pingus 0.7.0 (unofficial build)!
===========================================
clanVorbis support:           ok
clanMikMod support:           ok
getext support: missing (only support for english will be available)
sound support:           enabled
music support:          disabled
resolution set to:       800x600
fullscreen:              disabled
refresh rate:            60
using OpenGL:            1

SavegameManager: Couldn't find savegame file '/Users/twilsonb/.pingus/ savegames/savegames.xml', starting with a empty one.
Starting level: Learning to dig
DemoRecorder: Writing demo to: /Users/twilsonb/.pingus/demos/ tutorial_digger-tutorial2-grumbel-20060624-192838.xml
Client::process_events (): unhandled event: 4
Client::process_events (): unhandled event: 4
Client::process_events (): unhandled event: 4
Client::process_events (): unhandled event: 4
Client::process_events (): unhandled event: 4
Client::process_events (): unhandled event: 4
Client::process_events (): unhandled event: 4
Starting level: Float or Die
DemoRecorder: Writing demo to: /Users/twilsonb/.pingus/demos/ tutorial_floater-tutorial-grumbel-20060624-192932.xml
Pingus: Unknown throw caught!

Pingus has exited with status 0.

So I just avoided that action - I imagine it's a sound thing again.


Pingus works great fullscreen on a 20-inch cinema display, and also in a window. I was able to play all the way through the tutorial without any instability and great performance. If someone could help me out with the sound (and maybe CL_Error) problems that would be great.

How






reply via email to

[Prev in Thread] Current Thread [Next in Thread]