Ethereal-users: Re: [Ethereal-users] problem with prefix and libdir

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Guy Harris <gharris@xxxxxxxxx>
Date: Tue, 12 Mar 2002 03:02:48 -0800
On Mon, Mar 11, 2002 at 12:08:57PM +0100, Pierre HANSER wrote:
> I've a small problem with configuration options:
> 
> I want to install ethereal in dir1 on which I've write access,
> but some of the libs I need to compile are in dir2. So I use:
> 
> ./configure  --prefix=dir1 --includedir=dir2/include --libdir=dir2/lib
> 
> My intent is to have the full install take place in dir1
> 
> But in this case, everything is OK except the plugins which want to go
> into dir2/lib/ethereal/plugins

Well, "configure --help" says:

  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [same as prefix]
  --bindir=DIR            user executables in DIR [EPREFIX/bin]
  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
  --datadir=DIR           read-only architecture-independent data in DIR
                          [PREFIX/share]
  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
                          [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
  --includedir=DIR        C header files in DIR [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
  --infodir=DIR           info documentation in DIR [PREFIX/info]
  --mandir=DIR            man documentation in DIR [PREFIX/man]

The first two of those explicitly say "install"; the others don't, but
the "info" file for autoconf says:

	...

 - Variable: libdir
     The directory for installing object code libraries.

 - Variable: libexecdir
     The directory for installing executables that other programs run.

	...

so "--libdir" is a directory in which to install stuff.

The question, then, is whether objects linked dynamically at run time
constitute "object code libraries" or not.  They're not shared
libraries, as they're programmatically loaded rather than loaded by the
run-time linker at startup time; however, none of the other variables
mentioned in the info file seem to be a better match.

The right way to specify where the libraries with which Ethereal is to
be compiled is arguably with flags other than "--prefix" and
"--includedir" and "--libdir".  There's a "--with-pcap" flag for
libpcap, and a "--with-ucdsnmp" flag for UCD SNMP; we should probably
add flags for other libraries, e.g.  replace "--enable-zlib" with
"--with-zlib" and have it take an optional directory pathname.  Which
libraries are in dir2?