Ralf Wildenhues wrote:
Hello James,
* James Leek wrote on Thu, Nov 06, 2008 at 06:23:25PM CET:
Hi, I'm having a bit of a problem. I would really like to build my
tests as installed-type binaries when I run 'make installcheck' in order
to make it easier to run a debugger on them. However, each tests
requires its own dynamically loadable convenience library.
First off, what you're trying to do fits much better with the 'check'
target than with the 'installcheck' target: the former is meant to test
things before you ever run 'make install', the latter is meant to test
those things you have actually created with 'make install'; also, it is
nice if 'make installcheck' does not change the object files in the
build tree.
So, to summarize, I'd rename your installcheck-local target to
check-local.
I guess I don't quite get your point here. I have a program and its
associated libraries that I do install call Coop. When I run
installcheck I want the tests to link against the installed versions of
Coop's libraries. Hence this weird rule:
installcheck-local : installcheck-not-check
$(MAKE) $(AM_MAKEFLAGS) \
LIBCOOP_INCLDIRS=-I$(includedir) \
LIBCOOP_LIBDIRS=-L$(libdir) \
LIBCOOP_PYPATH=$(bindir) \
$(check_LTLIBRARIES) $(check_PROGRAMS) \
$(check_SCRIPTS) check-TESTS
I'm forcing the tests to find the installed includes and libs by
changing those LIBCOOP variables. In the build directory, those
libraries are all in different directories, but during install they all
end up in libdir. Admittedly, it seems like there should be some more
obvious way to do this, but I haven't figured it out yet. Do you have a
suggestion?
check_PROGRAMS = Master Slave
check_LTLIBRARIES = libslave.la libslave_cxxstub.la
For your actual problem, namely avoiding the shell wrapper for
uninstalled programs, try adding -no-install to Master_LDFLAGS and
Slave_LDFLAGS. You still won't be able to debug easily on w32 systems,
though.
Hey, that worked great. Luckily I don't care about w32 systems. I
wasn't aware of the -no-install flag, but my initial guess would've been
that it would go on the libraries, not the binary. Apparently I would
have been wrong.
check_SCRIPTS = lt-Master
What is this line for?
You know, I have no idea. It was there when I inherited the code, and I
just never touched it. I guess I'll take it out and see if anything bad
happens.
Thanks,
Jim
_______________________________________________
http://lists.gnu.org/mailman/listinfo/libtool