Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Aug 2010 23:10:08 -0500
From:      Scot Hetzel <swhetzel@gmail.com>
To:        bf1783@gmail.com, maho@FreeBSD.org
Cc:        freebsd-ports@freebsd.org
Subject:   Re: math/blas linking to gfortran with LDADD?= -lgfortran
Message-ID:  <AANLkTinVXMOanGiMsBGBgyMtOWpDEUrLzaetZfFXn7p_@mail.gmail.com>
In-Reply-To: <AANLkTi=X6=o6bLy4EcGafiinK0UWjzUUPL6NNM6ad0i8@mail.gmail.com>
References:  <AANLkTinhAPY-PEH_TegMAEx1ejHf_WoEL8KZU%2BoXGhFD@mail.gmail.com> <4C7D76A6.7080401@DataIX.net> <AANLkTi=X6=o6bLy4EcGafiinK0UWjzUUPL6NNM6ad0i8@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Aug 31, 2010 at 10:06 PM, b. f. <bf1783@googlemail.com> wrote:
> On 8/31/10, jhell <jhell@dataix.net> wrote:
>> Looking closer at the math/blas & math/lapack ports:
>>
>> This statement does not make any sense. The logic is backwards for every
>> instance. And WITH_PROFILE would do.
>> .if !(defined(NOPROFILE) || defined(NO_PROFILE) || defined(WITHOUT_PROFI=
LE))
>> PLIST_FILES+=3D =A0 lib/libblas_p.a
>> .endif
>>
>> Which is basically saying:
>> Add that profile lib if NOPROFILE is not defined "_p is a profiled lib
>> why would you want to install this if the admin has NOT defined NOPROFIL=
E?
>>
>
> Er, I'm not sure what you're getting at here. No means no. =A0Really.
> The default, as I explained, is to build and install the profiling
> libraries, unless one or more of three disabling variables has been
> defined. And that's the default because users of these ports often use
> the profiled libraries when analyzing performance of their programs,
> which are usually computationally-intensive. =A0Why the three variables?
> =A0Because they control whether the profiling libraries are actually
> built via bsd.compat.mk and bsd.lib.mk.
>
Actually there are only 2 *_PROFILE variables (WITH_PROFILE and
WITHOUT_PROFILE) that are user visible for the FreeBSD sources. The
NOPROFILE variable is depreceiated, and the NO_PROFILE variable is
only supposed to be used in Makefiles according to bsd.own.mk:

# Define MK_* variables (which are either "yes" or "no") for users
# to set via WITH_*/WITHOUT_* in /etc/src.conf and override in the
# make(1) environment.
# These should be tested with `=3D=3D "no"' or `!=3D "no"' in makefiles.
# The NO_* variables should only be set by makefiles.

So according to bsd.own.mk, this is the correct test for the math/blas
port to determine if profiling libraries should be built:

.if !defined(WITHOUT_PROFILE)
PLIST_FILES+=3D   lib/libblas_p.a
.endif

I also tested how these variables responded:

vbox# cd /usr/src/lib/libcam
vbox# make -V WITH_PROFILE -V MK_PROFILE -V NO_PROFILE -V WITHOUT_PROFILE

yes


vbox# make -V WITH_PROFILE -V MK_PROFILE -V NO_PROFILE -V
WITHOUT_PROFILE WITH_PROFILE=3Dyes
yes
yes


vbox# make -V WITH_PROFILE -V MK_PROFILE -V NO_PROFILE -V
WITHOUT_PROFILE NO_PROFILE=3Dyes

no
yes

vbox# make -V WITH_PROFILE -V MK_PROFILE -V NO_PROFILE -V
WITHOUT_PROFILE WITHOUT_PROFILE=3Dyes

no

yes

vbox# make -V WITH_PROFILE -V MK_PROFILE -V NO_PROFILE -V
WITHOUT_PROFILE NOPROFILE=3Dyes
"/usr/share/mk/bsd.compat.mk", line 35: warning: NOPROFILE is
deprecated in favour of NO_PROFILE

no
yes


As can be seen, NOPROFILE is deprecated.

NOTE: WITHOUT_PROFILE would need to be set in /etc/make.conf (instead
of /etc/src.conf) to disable building profiled libraries in the
FreeBSD sources and the math/blas port.

Scot



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTinVXMOanGiMsBGBgyMtOWpDEUrLzaetZfFXn7p_>