Thanks for the reply Ralf. Let me see if I can explain my reasoning for this request clearly.
I have a utility library I build with libtool called libutil.la. In its base form it has no external dependencies and can be used on any of my machines. I also build, from the same Makefile.am, an "enhanced" version of this library that uses the same codebase but enables some features that are dependent on an external library (I enable these using libutil2_la_CXXFLAGS defines). This external library does NOT exist on all machines, so a 'make install' on those machines will fail as it attempts to build & install ALL targets. With my current setup, I have to hack the Makefile.am prior to doing my 'make install'. With my current setup, you can choose which one to build when doing a make (such as 'make libutil.la'), but you cannot choose which to install, it's all or nothing. Thanks again for the help, I'm open to any alternative suggestions you might have. --- Ralf Wildenhues <[EMAIL PROTECTED]> wrote: > Hi Marc, > > * Marc Rossi wrote on Thu, Sep 15, 2005 at > 05:50:47PM CEST: > > I have a Makefile with multiple libtool targets: > > > > lib_LTLIBRARIES = libx.a liby.a libz.a > > (By the way, LTLIBRARIES are supposed to end with > .la. See the > documentation.) > > > I would like to do a make install for a liby.a > ONLY. > > When I look through the generated Makefile I only > see > > the ability to make install all 3 at once. > > I'm not quite sure what you want to achieve, so I'll > give a couple of > hints: > > If you are developing a package and want to allow > the user to install > only a subset of the libraries built, which she > chooses at configure > time, you could use Automake conditionals, like: > # in configure.ac something like (after making sure > libx_wanted > # is somehow set to something sensible) > AM_CONDITIONAL([WANT_LIBX], [test "$libx_wanted" = > true]) > > # in Makefile.am > lib_LTLIBRARIES = > if WANT_LIBX > lib_LTLIBRARIES += libx.la > endif > > > If instead you insist on `make install' time choice, > you could work > around the limitation somehow like this: > > lib_LTLIBRARIES = libx.la > libydir = $(libdir) > liby_LTLIBRARIES = liby.la > libzdir = $(libdir) > libz_LTLIBRARIES = libz.la > > This approach does not scale very well, and I you > might have to tweak > the order they are given for `make install' to > install them in the > correct order (given they depend upon each other). > Oh, I forgot: you > may install each of them now by using an > undocumented feature of > Automake: it will produce different targets for each > of the directories. > (Can't remember the exact name, so I'm not writing > it here, it's > an implementation detail anyway; Makefile.in will > show you :) > > But I have a much more general question: why do you > want to do this > anyway? The answer might lead to a much better > solution for your actual > problem. > > Cheers, > Ralf > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
