Trying to build Synfig in an Intel Mac

Genete and ulrik: If you tell me the steps I have to do, I can try to build it on an Intel based Mac. :smiley:

Hi!

I am about to write how I manage to build Synfig against X11 in OSX at the wiki but I have not had the time yet to do it, but I have made a simple text doc for my self and I am willing to share it here and I hope you can follow it :smiley: , if there will be problems I’m willing to answer your questions if I can, I’m not familiar with data programming I think I’m just plain lucky to have succesfully managed to build Synfig :laughing:
This is the doc:
I wish you good luck and please report here how it goes.

Build environment for building against X11

Since these instructions assume one is using MacPorts, make sure the following environment variables are set accordingly:
export PATH="/opt/local/bin:$PATH"
export ACLOCAL_FLAGS="-I /opt/local/share/aclocal"
export PKG_CONFIG_PATH="/opt/local/lib/pkgconfig"

I shall assume you only have XCode and MacPorts installed. In order to get subversion and git, you should be able to type the following into the terminal:
sudo port install git-core
sudo port install subversion

Assuming MacPorts installed subversion and git correctly, you’ll now need to grab and compile a copy of jhbuild from the gnome repository, which can be done like so:
svn co svn.gnome.org/svn/jhbuild/trunk jhbuild
cd jhbuild && make -f Makefile.plain install

Building GTK+

Download, from here:
downloads.sourceforge.net/source … d-setup.sh
gtk-osx-setup.sh to your home directory and run it:
$ sh gtk-osx-build-setup.sh
It will install jhbuild in ~/Source and create ~/bin/jhbuild. It will also install ~/.jhbuildrc and ~/.jhbuildrc-custom and will copy the current gtk-osx modules into ~/Source/jhbuild/modulesets.
Note: jhbuild requires Python 2.5 to unpack tar files, but Tiger provides Python 2.3. We provide Python 2.5 in meta-gtk-osx-bootstrap, but that doesn’t help for running jhbuild because the non-jhbuild shell doesn’t ordinarily see your gtk installation. You can define an alias to get around this problem:
$ alias jhbuild=“PATH=gtk-prefix/bin:$PATH jhbuild”
Obviously you should substitute the actual path of your gtk installation for gtk-prefix. If you add it to your .bashrc or .bash_profile you won’t need to worry about it.
Now do
$ jhbuild bootstrap

In order to compile synfig for X11, you will need to install gtkmm and libxml++ via MacPorts (or Fink). This can be done as follows:
sudo port install gtkmm libxmlxx2

This will also install all the other dependencies (such as X11), so it make take some time to compile.
You need to set PKG_CONFIG_PATH so that the ETL and synfig-core header files and libraries can be found:
export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig

For some unknown reason compiling ETL, synfig-core and synfig-studio doesn’t work properly when using MacPorts auto* tools. However, it does work with the bootstrap toolset used to compile Imendio’s native GTK port. So it is suggested that you follow the Boot strapping section up to and including the ‘jhbuild bootstrap’ line and make sure “/opt/gtk/bin” is first in your $PATH in order to properly compile etl, synfig-core and synfig-studio.
You should now be able to follow the Build instructions to compile ETL, synfig-core, and synfig-studio. The only thing different you should do is add “–prefix=/opt/local --exec-prefix=/opt/local” to the “./configure” options when building each package.
Assuming you manage to build it correctly, you should now be able to type the following in order for Synfig to pop up on your desktop:
synfigstudio

Follow the instructions to build ETL, Synfig core and Synfig studio here:
synfig.com/wiki/Build_instructions

after installing all dependent libraries that the Synfig package requires build all packages and see to that you have /opt/synfig in your path.

Building all packages:

cd synfig/ETL
export PKG_CONFIG_PATH=/opt/synfig/lib/pkgconfig
export PATH=/opt/synfig/bin:$PATH
autoreconf --install --force
./configure --prefix=/opt/synfig
sudo make install

cd synfig/synfig-core
glibtoolize --ltdl --copy --force
export PKG_CONFIG_PATH=/opt/synfig/lib/pkgconfig
export PATH=/opt/synfig/bin:$PATH
autoreconf --install --force
./configure --prefix=/opt/synfig
make
sudo make install

cd synfig/synfig-studio
export PKG_CONFIG_PATH=/opt/synfig/lib/pkgconfig
export PATH=/opt/synfig/bin:$PATH
autoreconf --install --force
./configure --prefix=/opt/synfig
make
sudo make install

Much of this text is taken from:
synfig.com/wiki/Building_On_Mac_OS_X

However there are some differencies and it is mainly about the jhbuild matter since the old link to the .jhbuildrc file is not valid anymore.

Thank you very much. I tried some months ago following the instructions on the wiki, but I couldn’t build it. I had a lot of problems (native and using X11). I have Macports installed and the last xcode tools, so I’m going to try again with your instructions. I will tell you about.
Thanks again.
Rafael.

The first problem: I had an old version of git-core and subversion. I solved this updating them with Porticus.
Second problem:Imagen 5.png

You write: “Obviously you should substitute the actual path of your gtk installation for gtk-prefix. If you add it to your .bashrc or .bash_profile you won’t need to worry about it”.

Sorry: How can I do that?

Rafael.

you can use a text editor to open the .bashrc file located in your user root, if you dont have that file edit the .profile file instead, enter the path and save it. You have to have a texteditor that can find invisible files, the dot in front of the files name indicates that it’s hidden. A good text editor that is capable of finding hidden files is “Textwrangler” and it’s free.

I don’t have the .bashrc file. This is the .profile file:

What must I write and in which line?
Thanks.

I don’t know if it is important: I have installed Porticus.
Rafael.

I don’t have the bashrc file either, this is my .profile:

MacPorts Installer addition on 2009-01-25_at_14:22:05: adding an appropriate PATH variable for use with MacPorts.

export PATH=/opt/local/bin:/Users/ulrik/bin:/opt/synfig/bin:/Users/ulrik/sbin:/opt/local/sbin:$PATH

Finished adapting your PATH environment variable for use with MacPorts.

MacPorts Installer addition on 2009-01-25_at_14:22:05: adding an appropriate MANPATH variable for use with MacPorts.

export MANPATH=/opt/local/share/man:$MANPATH

Finished adapting your MANPATH environment variable for use with MacPorts.

test -r /sw/bin/init.sh && . /sw/bin/init.sh
export PATH=Users/ulrik/bin:$PATH

The “export PATH” line is the one you should edit, this is my line:

export PATH=/opt/local/bin:/Users/ulrik/bin:/opt/synfig/bin:/Users/ulrik/sbin:/opt/local/sbin:$PATH

Your “export PATH” line does not include your user paths, I suggest you to include “/Users/rafaymaria/bin” and also “/opt/synfig/bin” I think that will do it :slight_smile:

Something like that?

I haven’t theese lines. Do I copy that too, or they are another thing?
Imagen 10.png

Bad luck:
Imagen 11.png

Any idea?

As soon as you close the terminal window, all temporary commands, paths etc is lost, I think that is why it can’t find the jhbuild command, if you run the jhbuild bootstrap directly after running the jhbuld script it should work (that is what I usually do when I have to rebuild the gtk via jhbuild) when you have succeed with the jhbuild bootstrap cammand it is not nessecairy to run it again.

btw, do you have /Users/yourname/bin in your path? if you have have , terminal should find the jhbuild script I think, could you please check that you have a file called “jhbuild” here: /Users/yourname/bin?

Yes, I have this file:
Imagen 13.png
How I see if I have Users/rafaymaria/bin in the PATH?
Now, I have this:

your “export PATH” line is a bit strange, it should be:

export PATH=/opt/local/bin:/Users/rafaymaria/bin:/opt/synfig/bin:/Users/rafaymaria/sbin:/opt/local/sbin:$PATH

there are some wrong typing there, don’t forget the sign “:”

Successfull.
Now I have downloaded:
descargados.png
I think I must untar them before continue. But, where can I put them? In rafaymaria directory?

Great :smiley:

I have them like this:
/User/myname/synfig/here I have all folders (ETL, synfig-core and synfig-studio)

make a new folder here /Users/yourname/, name it “synfig”, drop you downloaded files into that folder and unpack them, then you should have at least, “ETL”, “synfig-core” and “synfig-studio”

Ops! another problem: When I try to install gtkmm, I have:
Imagen 15.png
So, I try with Porticus, and I have:


How can I repair that? Perhaps can I continue without this step?

Hmmmm…I remember I had the same problem when I first installed gtkmm, if I rember correctly what I did was to install all the dependencies one by one, you got the message from teminal “The following dependencies failed to build” I build all the libriares followed by that statement, one by one. So the first you should do is to try to install them, I think I had problems along the way, some got installed with success, some failed, but when I had tried to build all libraries, I started all over again and tried to install the ones that failed. I remember I started with ones last in the list because it worked the best, don’t ask me why… :confused:
Keep posted here and I will read your development as soon as I can.

Good luck!!

Thanks.
At this point, I thought that there was a solution, because I read “Please perform ‘port clean libpng’ or specify the force option”. As I can’t specify this option (because I don’t know how to do it), I tried to clean it. I tried with porticus, but I didn’t find how to clean. I wrote “clean libpng” on the terminal, but I had the same error. So, I look for it in Internet. I found it as a Fink package. I tried FinkCommander, but it didn’t install it. After a long time, I tried writing this: sudo port clean libpng, and it worked. Then I wrote sudo port install gtkmm libxmlxx2, and I had another error, so I wrote sudo port clean gtkmm. It worked too. After that, I wrote sudo port install gtkmm libxmlxx2 and it begin to install:
Imagen 17.png
It take a lot of time. After some minutes I had another error. This time I had to write sudo port clean cairomm.
Imagen 18.png
Then, I continued by writing sudo port install libxmlxx2. It worked fine. After that, I wrote sudo port install cairomm.
Imagen 19.png
Now it is 1:43 in Spain and I go to bed. I don’t know if the next days I’ll be able to continue. If I can, I’ll tell you the next steps. If not, I’ll continue next tuesday. Here it is the pdf file of my terminal. Perhaps it is interesting for you.
installing gtk.zip (435 KB)

Hi, ulrik. Here am I.
ETL installed succesfully.
A new problem: when I write “glibtoolize --ltdl --copy --force” I have:
Imagen 1.png
I try to run aclocal, but it doesn’t work. I’m stopped again. I have this version of X11:(I don’t know if it is important)
Imagen 2.png
By the way, you wrote “synfig-core” and the folder I have is “synfig” (downloaded as synfig-0.62.00-RC1). Have I a wrong folder?
Here is the pdf of this night.
installing ETL and synfig.zip (25.1 KB)

How do your folder structure look like?
this is how mine look like: