Re: [gnome-love] Adding libraries to existing projects





On Tue, Jul 2, 2013 at 5:54 AM, Bogdan Ciobanu <bgdn ciobanu gmail com> wrote:



On Tue, Jul 2, 2013 at 10:35 AM, Germán Póo-Caamaño <gpoo gnome org> wrote:
On Tue, 2013-07-02 at 10:00 +0300, Bogdan Ciobanu wrote:
> Hi everybody!
>
> I am new to GNOME world and I am currently trying to contribute to
> gnome-control-center. The problem is that I need to use some libraries that
> are not included anywhere else in the project and I don't know how where
> and how to include them in configure file and Makefile, as I have never
> worked with such a big program.
>
> Can anyone explain me a little the process I should follow to add those
> libraries or some resources that might help me? Any help is appreciated!

You might want to check:
https://wiki.gnome.org/HowDoI/Jhbuild

I think that I didn't explain very well my situation. It isn't a jhbuild issue. I have already built successfully the module and  it's working, but what I want to create needs 2 more libraries, librest and libgoa and I don't know what should I change in configure or in makefile so I can include those libraries and to be linked correctly.

I am currently getting this error "fatal error: goa/goa.h: No such file or directory" because, the compiler doesn't know where to look for those libraries until I don't specify it in the Makefile, I suppose.

Bogdan,

Like most GNOME programs, gnome-control-center uses GNU Autoconf and Automake to generate its configure script and makefiles.  So you don't want to edit 'configure' or 'makefile' directly.  Instead, you want to edit 'configure.ac' (the input to Autoconf) and/or Makefile.am (the input to Automake).  The diagram on this Wikipedia page shows how these programs and files interact:

http://en.wikipedia.org/wiki/Autoconf

Note that some gnome-control-center panels already use libgoa, as you can see if you search for 'goa' in configure.ac in git master.

Probably you need to do the following:

1. Add a REST_REQUIRED_VERSION definition to configure.ac indicating the minimum version of librest that you require.
2. Update the PKG_CHECK_MODULES line in configure.ac for the panel you're developing so that it mentions both librest and libgoa.

That might be all.  The line PKG_CHECK_MODULES(COLOR_PANEL, ...), for example, defines variables COLOR_PANEL_CFLAGS and COLOR_PANEL_LIBS which are then referenced in panels/color/Makefile.am.  You probably won't need to change the Makefile.am for your panel since it refers to these _CFLAGS and _LIBS variables already.

Hope this helps -

adam


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]