[cairo] Porting of Cairo Graphics to T-Engine - Source Linking Issue

Carl Worth cworth at cworth.org
Thu Sep 6 08:36:58 PDT 2007


On Thu, 6 Sep 2007 16:21:13 +0800, "Mukul Sharma" wrote:
> I believe my previous message was an open ended question in itself. I
> apologize for the same and put an effort to amend my question in this
> message.

No need to apologize. I was only trying to give you suggestions that
would be helpful.

> I wish to know, if any person has tried porting CG between other platforms,
> and if yes, can, I please contact the person regarding my doubts.

This is the point where you are slowing yourself down unnecessarily.
Instead of trying to identify a single person and get permission to
ask that person a question, please just ask the question directly to
the list. That's how our community works. An immediate benefit to you
is that you get more people watching the conversation, (more people to
answer, and people reviewing the answers for correctness), and a
benefit to others is that the entire conversation is archived for
anyone to see later.

So, don't ask if you can ask a question, (or if there's anyone that
might be able to hear a question on a given topic), just ask the
question. Does that make sense?

> I have currently been trying to compile the source of Cairo Graphics using
> existing T-Kernel compiler, but I have not been able to figure out how are
> the object files linking together to form an executable. I analysed the
> existing Makefile and observed the compilation of various *.C files and *.H
> files, but the linking pattern is still not known to me, as I am finding it
> very difficult to comprehend the Makefile structure.

Thanks! That's a more concrete question.

With cairo's build system, (based on automake and libtool), the final
Makefile that is executed is quite complicated and difficult to
read. I'd suggest nobody ever look inside it.

Instead, look only at the Makefile.am files that are the ones we
actually write and maintain by hand. Those should be pretty simple,
(not much more than a list of files to be compiled and linked
together).

Actually, looking at src/Makefile.am now, it is a _bit_ complicated
only because each of the various surface and font backends can be
conditionally compiled.

In your case, I imagine you won't need any of that flexibility so you
can just choose which backends you want, and generate a single
hard-coded list of the files that you need.

Then, as far as how to link the files, it really shouldn't be any
different than linking any other library. So see the documentation for
the linker you use on your platform for how to use it. (Or copy some
existing setup from a working library that you have already.)

> I also wish to know, if the porting was done using the existing Makefile or
> was a new Makefile written from Scratch. If the Makefile was written from
> scratch, then I would request the author to let me have a look over the
> code, so that I may learn from it and write my own.

As was already mentioned, you can see the Makefile.win32 files that
were manually written for that platform, (and that hard-code the
backend files as I suggested).

One thing that would be nice to have, (particularly if we're going to
have any _more_ platform-specific Makefiles), would be to have the
list of source files in common files that could be included from
Makefile.foo. Otherwise, we will continue to maintain the Makefile.am
files and everything else will just break every time we add a new
source file to be compiled.

Have fun with cairo!

-Carl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.cairographics.org/archives/cairo/attachments/20070906/aaf24055/attachment.pgp 


More information about the cairo mailing list