Subject: Building subprojects from a source archive
To: None <pkgsrc-users@netbsd.org>
From: Jan Danielsson <jan.m.danielsson@gmail.com>
List: pkgsrc-users
Date: 06/02/2007 09:54:58
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Hello all

   pidgin (http://www.pigdin.im) is split into three parts, though in
one source tarball:

   - libpurple 0.0.1, which is the actual instant messenger (a backend)
   - pidgin 2.0.1, a gtk ui for libpurple
   - finch 2.0.1 (?), a console ui for libpurple

   It makes sense to create three packages, as pointed out by others, so
rather than having one pidgin package, I started splitting it up into
three packages.

   The libpurple part is installable, although it does print the
following when the build process is done:

- ---------------------------------
=> Unwrapping files-to-be-installed.
INFO: [subst.mk:unwrap] Nothing changed in ./finch/libgnt/gnt.pc.
INFO: [subst.mk:unwrap] Nothing changed in
./libpurple/purple-uninstalled.pc.
INFO: [subst.mk:unwrap] Nothing changed in ./libpurple/purple.pc.
INFO: [subst.mk:unwrap] Nothing changed in ./pidgin/pidgin-uninstalled.pc.
INFO: [subst.mk:unwrap] Nothing changed in ./pidgin/pidgin.pc.
- ---------------------------------

   Any ideas on how I get rid of those messages? They seem harmless, but
are annoying.

   Anyway.. My next problem is that libpurple can be built alone by
passing --disable-gtkui and --disable-consoleui to the configure script.
However, in the pidgin and finch packages, it is not possible to only
build the clients. I am not familiar with autoconf (though I am trying
to learn). I noticed that subprojects contain Makefile.in and
Makefile.am files, and the configure stage does seem to generate quite
"standalone" Makefiles in the client directories.

   Looking into FreeBSD ports for the pidgin client (which has split the
pidgin into three packages), they do this:

- -------------------
MASTERDIR=	${.CURDIR}/../libpurple
BUILD_WRKSRC=	${WRKSRC}/pidgin
- -------------------

   I'm not sure I'm reading that correctly, but if it means what I
think, then they are instructing the build system to only build the
pigdin client, without building the rest.

   This looks *very* much like what I want to accomplish. Does pkgsrc
allow me to do something similar? I.e. if I have

   work/pidgin-2.0.1/libpurple
   work/pidgin-2.0.1/pidgin
   work/pidgin-2.0.1/finch

   I want to instruct it to only enter "pidgin" (or "finch", for that
matter) and run "make" there. I assume it can done -- but how?

- --
Kind regards,
Jan Danielsson

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (NetBSD)

iD8DBQFGYSJSuPlHKFfKXTYRCmEvAJ9OzZCeYLVaQZYv7evlt3dy3DsnzACeNzIB
P7XF3WE1yDlfGexqh+6bMPY=
=IR68
-----END PGP SIGNATURE-----