Bacula-users

Re: [Bacula-users] after building bat, location of binary varies

2009-11-19 06:18:38
Subject: Re: [Bacula-users] after building bat, location of binary varies
From: Martin Simmons <martin AT lispworks DOT com>
To: bacula-users AT lists.sourceforge DOT net
Date: Thu, 19 Nov 2009 11:15:24 GMT
>>>>> On Wed, 18 Nov 2009 20:12:43 -0500, Dan Langille said:
> 
> Martin Simmons wrote:
> >>>>>> On Tue, 17 Nov 2009 22:45:51 -0500, Dan Langille said:
> >> Martin Simmons wrote:
> >>>>>>>> On Mon, 16 Nov 2009 22:32:56 -0500, Dan Langille said:
> >>>> Martin Simmons wrote:
> >>>>>>>>>> On Sun, 15 Nov 2009 23:45:43 -0500, Dan Langille said:
> >>>>>> Folks,
> >>>>>>
> >>>>>> I am finding that the location of the executable binary varies from 
> >>>>>> one 
> >>>>>> system to another.  I am trying to find out why.  The answer will help 
> >>>>>> to improve the build and install process.
> >>>>>>
> >>>>>> Sometimes the binary is at:
> >>>>>>
> >>>>>>    src/qt-console/bat
> >>>>>>
> >>>>>> If not there, it is at:
> >>>>>>
> >>>>>>    src/qt-console/.libs/bat
> >>>>>>
> >>>>>> Within a given system, the location is always consistent.  It is one 
> >>>>>> of 
> >>>>>> the above.  Why the location varies, I do not know.
>>>>> The .libs directory is the default location when building with libtool 
>>>>> (for
>>>>> Bacula shared libraries).
> >>>> This is interesting.  Please, can you elaborate?
> >>> The libtool utility is a wrapper around compiling/linking/install to deal 
> >>> with
> >>> portability for shared library naming.
> >>>
> >>> In the build tree, it puts all shared libraries and executables into
> >>> subdirectories which are called .libs by default.  It also creates a shell
> >>> script for each executable, which sets LD_LIBRARY_PATH appropriately to 
> >>> make
> >>> it work in the build tree.
> >>>
> >>> Note that this is only in the build tree.  During "make install", it 
> >>> installs
> >>> the real libraries and binaries.
> >>>
> >>> My guess is that that some are not being linked with shared libraries for 
> >>> some
> >>> reason, so Bacula is not using libtool and the real executable is built in
> >>> src/qt-console/bat.
> >>>
> >>> It isn't clear to me why the location of the binaries matters, unless the
> >>> Makefile is broken.
> >> It matters because building the FreeBSD port/packages needs to know 
> >> where the binary is.  Without knowing, you can't install it or build it 
> >> into a package.
> > 
> > OK, but I don't understand why.
> > 
> > Normally, a port's Makefile (or bsd.port.mk) installs the software by 
> > running
> > make install with the software's Makefile.  The installed location should
> > never have a .libs directory (it should only exist in the build tree).  If 
> > the
> > installed location has a .libs directory, then the software's Makefile is
> > broken.
> 
> Yes, that is the normal situation.  However, for sysutils/bacula-bat, 
> the bat file is installed by the port's Makefile.  I do not know why. 
> That's how it's done.

Perhaps the port's Makefile can be changed to use Bacula's make install like
bacula-bat.spec does for the rpms?  That must be better than adding more
hacks...

__Martin

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users