Re: noinst_bindir
Bob Rossi <[EMAIL PROTECTED]> writes: > noinst_bin_PROGRAMS = gdbmi_driver > noinst_bindir = $(abs_top_builddir)/progs > Unfortunatly, that doesn't work either. > test -z "/progs" || mkdir -p -- "/progs" > mkdir: cannot create directory `/progs': Permission denied Well, that makes it look like abs_top_builddir isn't actually getting set. I'm not sure exactly what would cause that. -- Russ Allbery ([EMAIL PROTECTED]) <http://www.eyrie.org/~eagle/> ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: noinst_bindir
On Sun, Apr 30, 2006 at 08:18:34AM -0400, Bob Rossi wrote: > Is there any difference between using abs_top_builddir vs top_builddir? The former has an absolute path, while the latter may not (in fact for builddir I think it never will; for srcdir, the non-abs_ versions may also in fact be absolute). > Will things stop working for my users that used to work? I don't think it would, but it's always wise to test changes... > Finally, is this a bug that libtool doesn't handle relative paths? I'm not sure my opinion counts for much, but I'd tend to think it's a feature rather than a bug (for installation paths that is). Cheers, Olly ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: noinst_bindir
On Sun, Apr 30, 2006 at 12:05:57PM +, Olly Betts wrote: > On 2006-04-30, Bob Rossi <[EMAIL PROTECTED]> wrote: > > Unfortunatly, that doesn't work either. > > > > test -z "/progs" || mkdir -p -- "/progs" > > mkdir: cannot create directory `/progs': Permission denied > > abs_top_builddir isn't set in the Makefile (with automake 1.8.5, and I > can't see a ChangeLog entry in 1.9.6 saying this has changed), so "make" > replaces $(abs_top_builddir) with the empty string. However > @abs_top_builddir@ is substituted, so you should be able to do: > > abs_top_builddir = @abs_top_builddir@ > > noinst_bin_PROGRAMS = gdbmi_driver > noinst_bindir = $(abs_top_builddir)/progs Hi Olly, That does work. I'm using automake 1.9.5. This does fix the problem I'm seeing. Is there any difference between using abs_top_builddir vs top_builddir? Will things stop working for my users that used to work? Finally, is this a bug that libtool doesn't handle relative paths? Thanks, Bob Rossi ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: noinst_bindir
On 2006-04-30, Bob Rossi <[EMAIL PROTECTED]> wrote: > Unfortunatly, that doesn't work either. > > test -z "/progs" || mkdir -p -- "/progs" > mkdir: cannot create directory `/progs': Permission denied abs_top_builddir isn't set in the Makefile (with automake 1.8.5, and I can't see a ChangeLog entry in 1.9.6 saying this has changed), so "make" replaces $(abs_top_builddir) with the empty string. However @abs_top_builddir@ is substituted, so you should be able to do: abs_top_builddir = @abs_top_builddir@ noinst_bin_PROGRAMS = gdbmi_driver noinst_bindir = $(abs_top_builddir)/progs Cheers, Olly ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: noinst_bindir
On Sat, Apr 29, 2006 at 08:34:53PM -0700, Russ Allbery wrote: > Bob Rossi <[EMAIL PROTECTED]> writes: > > > I have > > > noinst_bin_PROGRAMS = gdbmi_driver > > noinst_bindir = $(top_builddir)/progs > > Try using $(abs_top_builddir) instead. I've always had bad luck with > relative paths and anything that involves libtool. noinst_bin_PROGRAMS = gdbmi_driver noinst_bindir = $(abs_top_builddir)/progs Unfortunatly, that doesn't work either. test -z "/progs" || mkdir -p -- "/progs" mkdir: cannot create directory `/progs': Permission denied make[2]: *** [install-noinst_binPROGRAMS] Error 1 make[2]: Leaving directory `/home/bob/cvs/gdbmi/builddir/src' make[1]: *** [install-am] Error 2 make[1]: Leaving directory `/home/bob/cvs/gdbmi/builddir/src' make: *** [install-recursive] Error 1 Is this a misuse of the autotools on my part? or a bug in libtool? Thanks, Bob Rossi ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: noinst_bindir
Hi Bob, Russ, * Russ Allbery wrote on Sun, Apr 30, 2006 at 05:34:53AM CEST: > Bob Rossi <[EMAIL PROTECTED]> writes: > > > noinst_bin_PROGRAMS = gdbmi_driver > > noinst_bindir = $(top_builddir)/progs > > Try using $(abs_top_builddir) instead. I've always had bad luck with > relative paths and anything that involves libtool. Libtool explicitly forbis relative paths because, portably, you can't put libraries in paths other than the ones specified, and can't move them around. Luckily those systems are less used today. (I know you know this, Russ; in fact, I'm citing (you?) here) Hmm. Maybe libtool should be less anal about relative paths when it comes to installing programs. Actually, I don't know what noinst_bin_PROGRAMS is supposed to mean. noinst means it should not be installed; bin means it should be installed in $(bindir). The fact that Automake outputs an install rule for this and doesn't die complaining looks awfully like an Automake bug to me. Or maybe it's just that the prefix rules have the priority the other way round (match longest prefix first), gotta go and check. Do you actually want 'make install' to copy into the build tree, a binary linked against the installed libraries? Cheers, Ralf ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: noinst_bindir
Bob Rossi <[EMAIL PROTECTED]> writes: > I have > noinst_bin_PROGRAMS = gdbmi_driver > noinst_bindir = $(top_builddir)/progs Try using $(abs_top_builddir) instead. I've always had bad luck with relative paths and anything that involves libtool. -- Russ Allbery ([EMAIL PROTECTED]) <http://www.eyrie.org/~eagle/> ___ http://lists.gnu.org/mailman/listinfo/libtool
noinst_bindir
Hi, I have noinst_bin_PROGRAMS = gdbmi_driver noinst_bindir = $(top_builddir)/progs and I wasn't using AC_PROG_LIBTOOL. I've never had a problem with 'make install' before. However, since I've enabled AM_PROG_LIBTOOL, I'm getting this error, test -z "../progs" || mkdir -p -- "../progs" /bin/sh ../libtool --mode=install /usr/bin/install -c 'gdbmi_driver' '../progs/gdbmi_driver' libtool: install: `../progs' must be an absolute directory name Try `libtool --help --mode=install' for more information. make[2]: *** [install-noinst_binPROGRAMS] Error 1 make[2]: Leaving directory `/home/bob/cvs/gdbmi/builddir/src' make[1]: *** [install-am] Error 2 make[1]: Leaving directory `/home/bob/cvs/gdbmi/builddir/src' make: *** [install-recursive] Error 1 Attached is the configure.in and Makefile.am file. Any ideas? Thanks, Bob Rossi dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.5) AC_INIT(gdbmi, 0.1) AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE dnl Checks for programs. AC_PROG_CC AC_PROG_INSTALL AM_PROG_LIBTOOL #AC_PROG_RANLIB AM_PROG_LEX AC_PROG_YACC dnl Checks for header files. AC_HEADER_STDC dnl determine other headers for tgdb, Error if they do not exist AC_CHECK_HEADERS(stdio.h stdlib.h string.h,,AC_MSG_ERROR) dnl Checks for library functions. AC_PROG_GCC_TRADITIONAL AC_ARG_ENABLE(tcl-extension,[ --enable-tcl-extension Build the TCL extension], [case "${enableval}" in yes) enable_tcl_extension=true ;; no) enable_tcl_extension=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-tcl-extension) ;; esac],[enable_tcl_extension=false]) AM_CONDITIONAL(ENABLE_TCL_EXTENSION, test x$enable_tcl_extension = xtrue) AC_OUTPUT(Makefile src/Makefile) # libgdbmi noinst_LIBRARIES=libgdbmi.a libgdbmi_a_SOURCES= \ gdbmi_grammar.y \ gdbmi_lexer.l \ gdbmi_pt.c \ gdbmi_parser.c EXTRA_DIST = gdbmi_parser.h gdbmi_pt.h gdbmi_grammar.h # gdbmi driver program noinst_bin_PROGRAMS = gdbmi_driver noinst_bindir = $(top_builddir)/progs gdbmi_driver_LDFLAGS = -L. gdbmi_driver_LDADD = -lgdbmi gdbmi_driver_SOURCES = gdbmi_driver.c # If this package was compiled with --enable-tcl-extension, then the gdbmi # tcl extension will also be compiled. if ENABLE_TCL_EXTENSION TCL_EXTENSION = libgdbmi_tclext-1.0.la else TCL_EXTENSION = endif lib_LTLIBRARIES = $(TCL_EXTENSION) libgdbmi_tclext_1_0_la_SOURCES = \ gdbmi_tclext.c \ $libgdbmi_a_SOURCES ___ http://lists.gnu.org/mailman/listinfo/libtool