Re: project structure question

From:

Ralf Wildenhues

Subject:

Re: project structure question

Date:

Mon, 9 Jun 2008 19:19:34 +0200

User-agent:

Mutt/1.5.17+20080114 (2008-01-14)

* John Calcote wrote on Mon, Jun 09, 2008 at 06:44:06PM CEST:
> projects/
> flaim/
> ftk->../ftk
> src/
> util/
> ftk/
> src/
> util/
> xflaim/
> ftk->../ftk
> src/
> util/
> 3. I've considered creating a configure.ac at the "projects" level, and
> making all three components sub-projects.
That's the way to go.
> This would alleviate the
> problem mentioned with point 2 above, but I don't think there's a way to
> specify the order that such sub-projects are built.
Not sure what you mean. You projects directory would contain little
more than
--- configure.ac
AC_INIT([projects], [0.1], [bug-address])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_SUBDIRS([ftk flaim xflaim])
AC_OUTPUT
--- Makefile.am
SUBDIRS = ftk flaim xflaim
and that SUBDIRS ordering determines the order in which things are
built.
> Additionally, the
> flaim and xflaim sub-projects would still have to somehow refer to the
> ftk directory, which is outside of their individual source trees. They'd
> still have to treat is as a dependency.
What do they need from ftk? An include path and a library dependency?
Like this?
FTK_INCLUDE='-I$(top_srcdir)/../ftk -I$(top_builddir)/../ftk'
FTK_LIBS='-L$(top_builddir)/../ftk -lftk'
FTK_LTLIBS='$(top_builddir)/../ftk/libftk.la'
Later, when you want ftk to be installable as an independent package in
its own right, you may want to generalize this and write a macro JC_FTK
to produce suitable values of FTK_{INCLUDE,LIB,LTLIB}, AC_SUBSTED, for a
pre-installed or in-tree ftk package. The macro JC_FTK can live in a
file ftk.m4 which gets used in flaim and xflaim, called in their
configure.ac scripts.
BTW, unless your FTK is already widely known and published, I recommend
using a more descriptive name, and probably at least 4 letters of
abbreviation. Last I heard TLAs are pretty much used up (for whatever),
and you don't want to start this fight over naming your then-hugely
successful tool kit several years down the road.
Cheers,
Ralf