Quartz-ified GTK[]
I'm trying to compile freeciv against the quartz version of gtk. Although the x11 version works, the quartz version will be faster and simpler to setup than the gtk2 +x11, and more feature complete (at least gui-wise) than SDL.
Unfortunately, the gtk2+quartz doesn't seem to be quite ready for release, and currently throws assert failures.
my current options with OSX 10.4.11, freeciv 2.2.99 / r14419 are:
% export CC="/opt/local/bin/gcc -no-cpp-precomp -I/opt/local/include/ -L/opt/local/lib/" % ./configure --enable-client=gtk2 --prefix=/opt/local/ --export-readline
- As of 2010, GTK is not hard to set up. We have started discussing building a clickable application bundle here [2.2 for the Mac], and GTK is where we begin. The most recent post as of today is about the gtk-osx project, which is still beta but aims to be a quite sophisticated way of bringing GTK to the average user. More here: [1] Dentrassi BBQ 05:37, April 29, 2010 (UTC)
Updating this page[]
This whole procedure seems needlessly complex, possibly because it was done two years ago. Building the 2.2.0-beta on OS X 10.6.2 doesn't seem to require jumping through any of the hoops that this page implies are necessary. Would it be better i tack my walkthrough on at the end, or go for a new page? Dentrassi BBQ 22:49, February 3, 2010 (UTC)
I'm going to pull the 'caveats' from the SDL section. That information is > 3 years old, and certainly didn't apply when i built SDL this January. If i've stepped on any toes, i'll revert it... Dentrassi BBQ 05:44, April 29, 2010 (UTC)
I wonder if "-no-cpp-precomp" is needed anymore. Presumably it was required for older versions of GCC? I haven't ever used it for compiling by hand. Dentrassi BBQ (talk) 17:55, January 25, 2013 (UTC)
- Whatever works for you in 2013 or 2017 should be better than recipes for 2009 or older, just update the page as you see fit. @Dentrassi BBQ and Hima: Please don't sign contributions on Build-MacOSX, signatures are for talk (+ wiki forum) pages like this Talk:Build-MacOSX page, otherwise edit summaries in the edit history are good enough. –Dunnoob 💩 21:42, December 28, 2017 (UTC)
Updating this page (May 2021)[]
I have just finished figuring out how to make all four current branches (master, S3_1, S3_0, S2_6) compile under macOS (macOS 10.13.6 High Sierra, MacPorts). I want to transfer that knowledge into this page. However, this page is again pretty messy and difficult to follow. I think to move forward, we need to clean everything out and start over. Here are some ideas for moving forward.
It will be better in the long run to move the current page contents to some sub-page which is marked as a historical archive, and start with a new page structure.
We have a fundamental decision to make: should this page be a step-by-step list of easy to follow instructions for novices, or should it be a collection of know-how for experienced readers? I think that to attempt the former is a fool's errand: there are too many variations which we would have to write, and the codebase and bugs would cause changes so frequently that we couldn't keep up. Thus I think we should aim to write instructions for the experience reader, and leave explaining to the novices to something else.
We should not include step-by-step instructions for installing the package managers: MacPorts, Homebrew, Fink etc. here. We already have such instructions at Install-MacOSX. We should probably make pages: Install-MacPorts, Install-Fink, Install-Homebrew based on what is in the Install page, then link to them from there and from here.
We should make structure which stands up to a codebase which constantly changing and improving, and to branches which keep coming and going. That is not easy. I think it means, we have a section for things which change slowly, and a section for details specific to each branch.
The prerequisite packages needed for each client and each feature of Freeciv do not change rapidly over time. They are also different for each package manager. Thus I propose a section which contains a table. Each row of the table is a client or a feature. The columns are the package managers (plus direct install as an alternative to using package managers). In each cell, we name the port or feature needed to build that row's Freeciv feature in that column's package manager.
We can also put, in this section, instructions on which environment variables to set, and how they depend on your package manager settings. For instance, LDFLAGS and PATH need to be adjusted to point to MacPorts locations. This won't change much by version branch.
There are not that many bugs affecting the builds. Thus I think we can just have a section "Troubleshooting", and mention bugs there. Each troubleshooting entry should be tagged with a branch and a date, so that we can eliminate obsolete troubleshooting items.
There can be one section where we go over the basic build sequence: autogen, configure, make all, make install.
There should be a section near the end where we link to other pages with useful information. For instance, maybe there is a page which lists the current version branches, and what each one represents. We can link to that instead of re-writing the explanation here.
JDLH (talk) 04:11, 29 May 2021 (UTC)