Jump to content


building under Mac OS X?

mac osx

105 replies to this topic

#1 malex984

    Member

  • Member
  • PipPip
  • 99 posts

Posted 17 September 2012 - 09:43 PM

Hi Guys,

thanks for your hard work on TDM!

I'm a SW developer working mainly on Linux and have a lot of experience of building from sources on Linux and Mac OS X (including D3 and the current TDM).

After noticing http://bugs.angua.at/view.php?id=3227 I decided to join in and spend some time on fixing the building and running of TDM natively under Mac OS X.

If there is nobody else willing to do that, please, let me try.

Best Regards,
Alex

#2 malex984

    Member

  • Member
  • PipPip
  • 99 posts

Posted 17 September 2012 - 09:52 PM

Could I ask somebody for a recent working (at least on Linux) SVN checkout please?

Thanks in advance!

Edited by malex984, 17 September 2012 - 09:53 PM.


#3 greebo

    Heroic Coder

  • Root
  • 15,386 posts

Posted 17 September 2012 - 11:44 PM

I can set you up as Contributor and give you access to SVN.

#4 demagogue

    Uber member

  • Active Developer
  • PipPipPipPip
  • 4,086 posts

Posted 18 September 2012 - 03:00 AM

It's good that you saw that. I was pretty sure Mac support was gone for good, but if we can get a dedicated person working on it, there's hope for it yet.
Posted Image

#5 malex984

    Member

  • Member
  • PipPip
  • 99 posts

Posted 18 September 2012 - 07:35 AM

View Postgreebo, on 17 September 2012 - 11:44 PM, said:

I can set you up as Contributor and give you access to SVN.

Thanks, I answered via PM.

View Postdemagogue, on 18 September 2012 - 03:00 AM, said:

It's good that you saw that. I was pretty sure Mac support was gone for good, but if we can get a dedicated person working on it, there's hope for it yet.

It would be motivating to know that there are people our there who would be interested in Mac support and could do a bit of beta testing (playing) once there is a beta to test...

#6 malex984

    Member

  • Member
  • PipPip
  • 99 posts

Posted 20 September 2012 - 10:10 PM

Hi guys,

Looks like i managed to produce 'game' and 'libgame.dylib' by adapting the existing scons scripts to work on my mac os x + doing some hand magic. Naturally i'm very suspicious of these first fruits...

Is there any quick (and maybe dirty) way to check the runtime without the original D3 data files?

Cheers,
Alex



#7 greebo

    Heroic Coder

  • Root
  • 15,386 posts

Posted 21 September 2012 - 01:51 AM

You took the sconscripts? Didn't the Xcode project files work? The Xcode projects do produce universal binaries, in case these are still important nowadays.

#8 malex984

    Member

  • Member
  • PipPip
  • 99 posts

Posted 21 September 2012 - 07:48 AM

View Postgreebo, on 21 September 2012 - 01:51 AM, said:

You took the sconscripts? Didn't the Xcode project files work? The Xcode projects do produce universal binaries, in case these are still important nowadays.

Sorry, I did not look at them properly yet (only for a bit of reference on lists of needed input sources, libraries and frameworks).
It's just that I used a *faster* and newer Mac machine via ssh and worked there from command line...
But I have been planning to try those Xcode project files next. I think one can do that from command line as well, right?

Besides, is there some absolute minimum set of data files just in order to check that the runtime for produced binaries?

#9 greebo

    Heroic Coder

  • Root
  • 15,386 posts

Posted 21 September 2012 - 08:06 AM

View Postmalex984, on 21 September 2012 - 07:48 AM, said:

Besides, is there some absolute minimum set of data files just in order to check that the runtime for produced binaries?
Nope, you need a set of files from darkmod/, basic materials, defs, GUIs, scripts and such. It's probably faster to check out a full 1.08 copy from SVN.

I don't know Xcode well enough to be able to tell whether it's providing a command line interface. Xcode is using g++ in the background, but that's as far as my knowledge gets.

#10 Bikerdude

    FM Manager, Campaign Dev

  • Active Developer
  • PipPipPipPipPip
  • 11,622 posts

Posted 21 September 2012 - 11:40 AM

Hi Malex

As Demagogue said, its good that someone is looking at this. Im sure Greebo and the other coders welcome any extra coding help.

#11 malex984

    Member

  • Member
  • PipPip
  • 99 posts

Posted 21 September 2012 - 09:33 PM

Greebo, thank for pointing out your Xcode projects.

View Postgreebo, on 21 September 2012 - 08:06 AM, said:

I don't know Xcode well enough to be able to tell whether it's providing a command line interface. Xcode is using g++ in the background, but that's as far as my knowledge gets.

Well, actually it tends to use clang nowadays, which also provides frontends linked under the usual names - gcc and g++ :/
The command I was looking for is xcodebuild. Using it I was able to produce 'Doom 3.app' and 'game.dylib' much more quickly than via scons. But my previous experience with the scons scripts helped me to resolve similar building problems.

Now I have two sets of built binaries to choose from =) Curiosly enough the both sets behave the same way.

I Noted that the static boost libraries committed to svn seems to be built with -fvisibility=default which leads to quite a problem on newer OS X and Xcode. I'd recommend rebuilding them with the same settings as used in the project.

View Postgreebo, on 21 September 2012 - 08:06 AM, said:

Nope, you need a set of files from darkmod/, basic materials, defs, GUIs, scripts and such. It's probably faster to check out a full 1.08 copy from SVN.

Thanks. But please do warn about the size of such a checkout!

Besides, does it matter if I place it on fat32?

I checked it out under the name darkmod and put my 'Doom 3.app' alongside it.
Additionally I replaced the game.dylib in one of the pk4 data files with my versions of it.

Finally It runs: the GUI with ambient music and mission downloading seems to work!!!

It would be nice to check the play mode now. Can I force a mission loading and starting from the d3 console or via command line?

The problem is that I am having trouble installing (and therefore) playing any of downloaded maps.
Also the installation-relaunch hides the mouse pointer but shows again the starting launch dialog.
No matter what I do (I also tried running executables with the usual Doom arguments) - 'New Mission' never shows any mission being currently installed =(
Besides there are no visible items in the list of installed mission but I blindly click there and choose them anyway... Seems to be a missing font...

I also got similar effects while using the data files from my previous d3+tdm setup. But there I sometimes can see some of the currently downloaded missions.


View PostBikerdude, on 21 September 2012 - 11:40 AM, said:

As Demagogue said, its good that someone is looking at this. Im sure Greebo and the other coders welcome any extra coding help.

Well I will do whatever I can do.

Ps: I hope it's ok to post all of this Mac OS X specific stuff here (publicly)...?
The point is that I would like to attract the attention of interested Mac users and later on ask for their assistance in testing.

#12 malex984

    Member

  • Member
  • PipPip
  • 99 posts

Posted 21 September 2012 - 10:22 PM

As a side note: I found a reference to non-existing wiki page http://wiki.thedarkm...DM_Coding_Style on
http://wiki.thedarkm...ding_in_the_SDK
Was "TDM Coding Style" renamed or moved?

#13 Tels

    Mod hero

  • Member
  • PipPipPipPipPip
  • 14,389 posts

Posted 22 September 2012 - 01:30 AM

View Postmalex984, on 21 September 2012 - 10:22 PM, said:

As a side note: I found a reference to non-existing wiki page http://wiki.thedarkm...DM_Coding_Style on
http://wiki.thedarkm...ding_in_the_SDK
Was "TDM Coding Style" renamed or moved?

I don't think we ever got around to writing it :)
"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

"Remember: If the game lets you do it, it's not cheating." -- Xarax

#14 greebo

    Heroic Coder

  • Root
  • 15,386 posts

Posted 22 September 2012 - 02:23 AM

View Postmalex984, on 21 September 2012 - 09:33 PM, said:

I Noted that the static boost libraries committed to svn seems to be built with -fvisibility=default which leads to quite a problem on newer OS X and Xcode. I'd recommend rebuilding them with the same settings as used in the project.
I can look into rebuilding them, but it was a bit of a hassle. What kind of problems do they lead to exactly?

View Postmalex984, on 21 September 2012 - 09:33 PM, said:

Thanks. But please do warn about the size of such a checkout!
Not a problem at all, that's why we have a dedicated server in the first place. Checkout as often as you want.

View Postmalex984, on 21 September 2012 - 09:33 PM, said:

Besides, does it matter if I place it on fat32?
Except for the fact that FAT32 is a bit outdated and fragile, no, the filesystem should not be of importance.

View Postmalex984, on 21 September 2012 - 09:33 PM, said:

Finally It runs: the GUI with ambient music and mission downloading seems to work!!!

It would be nice to check the play mode now. Can I force a mission loading and starting from the d3 console or via command line?
A mission download cannot be triggered through the console, but you can click yourself through the menus, or just run the training mission which needs to be mentioned in currentfm.txt, either by installing it through the menu GUI or by editing the currentfm.txt manually: it should contain training_mission.

View Postmalex984, on 21 September 2012 - 09:33 PM, said:

Ps: I hope it's ok to post all of this Mac OS X specific stuff here (publicly)...?
The point is that I would like to attract the attention of interested Mac users and later on ask for their assistance in testing.
You can also push the binaries to SVN, the ones you have are better than what we have now (== nothing).

#15 Tels

    Mod hero

  • Member
  • PipPipPipPipPip
  • 14,389 posts

Posted 22 September 2012 - 02:36 AM

View Postgreebo, on 22 September 2012 - 02:23 AM, said:

A mission download cannot be triggered through the console, but you can click yourself through the menus, or just run the training mission which needs to be mentioned in currentfm.txt, either by installing it through the menu GUI or by editing the currentfm.txt manually: it should contain training_mission.

Note that you can also load a mission via the consola via:

map MAPNAMEHERE

Replace MAPNAMEHERE with the map name, e.g. "training_mission" (w/o quotes) or "test/window.map".

If you look into quick checks, you can also put the same command into a file called autocommands.cfg in your darkmod folder, everytime you launch TDM, it will execute the commands in there after loading the menu. Adding a "quit" as secone line would load the mission, then immidiately quit.

(If you want to get rid of that later, delete the file)
"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

"Remember: If the game lets you do it, it's not cheating." -- Xarax

#16 malex984

    Member

  • Member
  • PipPip
  • 99 posts

Posted 22 September 2012 - 01:55 PM

View PostTels, on 22 September 2012 - 02:36 AM, said:

Note that you can also load a mission via the consola via:

map MAPNAMEHERE

Replace MAPNAMEHERE with the map name, e.g. "training_mission" (w/o quotes) or "test/window.map".

If you look into quick checks, you can also put the same command into a file called autocommands.cfg in your darkmod folder, everytime you launch TDM, it will execute the commands in there after loading the menu. Adding a "quit" as secone line would load the mission, then immidiately quit.

(If you want to get rid of that later, delete the file)

Thanks a lot! That did the trick. I can start and play any *map* with that!!!

Unfortunately I still cannot install or run any *mission*: even through currentfm.txt contains it (and it is present under fms/ directory) - there is no currently installed mission detected by "New Mission" starting screen...

Moreover even. "map MISSION" did not work - although I can list all the maps (with TAB) - no missions can be seen there.

It seems that some search locations are wrong... Do you have a list of conventions for resource search locations? Can I view them via console?
I would guess that TDM get confused by $HOME/Library/Application Support/Doom 3 even after I emptied it.

Beside that I noticed textures missing on some maps (I only tried test/tree, rain, snow maps for now).
At least once the application crashed due to DecodeOGG (there was a failed assert in sound/snd_decoder.cpp:517).


#17 malex984

    Member

  • Member
  • PipPip
  • 99 posts

Posted 22 September 2012 - 02:09 PM

View Postgreebo, on 22 September 2012 - 02:23 AM, said:

I can look into rebuilding them, but it was a bit of a hassle. What kind of problems do they lead to exactly?

Just as described at http://stackoverflow...in-32-bit-build

View Postgreebo, on 22 September 2012 - 02:23 AM, said:

Except for the fact that FAT32 is a bit outdated and fragile, no, the filesystem should not be of importance.

Well, I got some strange things reported by "svn status" directly after checkout, e.g. In guis/readables/:
? MARBLE~3.GUI
! marble_world.gui

View Postgreebo, on 22 September 2012 - 02:23 AM, said:

A mission download cannot be triggered through the console, but you can click yourself through the menus, or just run the training mission which needs to be mentioned in currentfm.txt, either by installing it through the menu GUI or by editing the currentfm.txt manually: it should contain training_mission.

Oh, I tried that without any luck - see also my previous post.

View Postgreebo, on 22 September 2012 - 02:23 AM, said:

You can also push the binaries to SVN, the ones you have are better than what we have now (== nothing).

Well, I am not quite sure about their correct locations =(
what if send them ('Doom 3.app/*' and game.dylib) to you?


#18 malex984

    Member

  • Member
  • PipPip
  • 99 posts

Posted 22 September 2012 - 04:29 PM

Besides I have built the default configs only and there were some debug builds involved (i guess that is why I could see the failed assertion).

I bet the end users would be more interested in pure release builds while beta testers should better see more debug / assertion output.
How do you usually handle the binary distribution for testing? Do you put different builds into different SVN repositories?

#19 greebo

    Heroic Coder

  • Root
  • 15,386 posts

Posted 23 September 2012 - 12:08 AM

Only release builds should go into SVN, debug builds are of little use for the rest of the team, and they are slow and huge in size.

It's probably best to open a thread in the TDM Development forum to discuss the path issues with taaaki. There have been a few changes to the filesystem handling which should make things simpler.

#20 malex984

    Member

  • Member
  • PipPip
  • 99 posts

Posted 23 September 2012 - 02:21 PM

View Postgreebo, on 23 September 2012 - 12:08 AM, said:

Only release builds should go into SVN, debug builds are of little use for the rest of the team, and they are slow and huge in size.

Well then I am preparing a Release/i386/10.6 build now and will send it to you once I am satisfied with it (I noticed dependencies on global host libraries in what I had).
Do you think I should rather build fat binaries with PPC or support OS X variants earlier to 10.6?

Besides I am curious about where all the stuff under Doom 3.app/Contents/ should go?..

View Postgreebo, on 23 September 2012 - 12:08 AM, said:

It's probably best to open a thread in the TDM Development forum to discuss the path issues with taaaki. There have been a few changes to the filesystem handling which should make things simpler.
Ok

#21 malex984

    Member

  • Member
  • PipPip
  • 99 posts

Posted 23 September 2012 - 05:44 PM

Ok guys, I am happy to say that I have Release binaries and after finding a workaround for my *mission install* problems I managed to load and play a mission (outpost) as well as several usual maps (snow, rain)!

Unfortunately the build seems to be very fragile and often shuts down due to segmentation faults right before the end of mission loading :'(

Ps: curiously enough it seems that the tilde ("~") key does not trigger the console in this build...


#22 New Horizon

    Mod hero

  • Active Developer
  • PipPipPipPipPip
  • 13,204 posts

Posted 23 September 2012 - 05:58 PM

We have it set to CTRL ALT ~

#23 malex984

    Member

  • Member
  • PipPip
  • 99 posts

Posted 23 September 2012 - 08:00 PM

View PostNew Horizon, on 23 September 2012 - 05:58 PM, said:

We have it set to CTRL ALT ~

Oh! Though only SHIFT CTRL ALT ~ does the job for this build...

#24 New Horizon

    Mod hero

  • Active Developer
  • PipPipPipPipPip
  • 13,204 posts

Posted 23 September 2012 - 08:38 PM

Ahh, perhaps it's different on a mac?

#25 malex984

    Member

  • Member
  • PipPip
  • 99 posts

Posted 23 September 2012 - 09:16 PM

View PostNew Horizon, on 23 September 2012 - 08:38 PM, said:

Ahh, perhaps it's different on a mac?
The point is that "~" worked in default (partially debug) build but it changed in release build... which was quite unexpected for me =)

Ps: same sources, build projects, configs and resources.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users