Bacula-users

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

2009-11-18 20:16:23
Subject: Re: [Bacula-users] after building bat, location of binary varies
From: Dan Langille <dan AT langille DOT org>
To: Martin Simmons <martin AT lispworks DOT com>
Date: Wed, 18 Nov 2009 20:12:43 -0500
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.

------------------------------------------------------------------------------
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