[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-Devel] pingus trunk (2635) on Mac OS X,
Tim Wilson-Brown <=