Re: Adding libraries to existing projects

Adam Dingle <[email protected]>
Newsgroups gmane.comp.gnome.love
Message-ID <[email protected]>

On Tue, Jul 2, 2013 at 5:54 AM, Bogdan Ciobanu <[email protected]> 
wrote:
> 
> 
> 
> On Tue, Jul 2, 2013 at 10:35 AM, Germán Póo-Caamaño 
> <[email protected]> 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

_______________________________________________
gnome-love mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/gnome-love
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.