[tlbuild] Checking if biber binary can run on a given platform?
Karl Berry
karl at freefriends.org
Tue Mar 29 01:06:46 CEST 2011
Resending this msg from Nikola with the technical details to this list
so it'll be in the archives. I've implemented the test in
biber/configure.ac.
Date: Tue, 22 Mar 2011 19:11:47 +0100
From: Nikola Leô iô § <nikola.lecic at anthesphoria.net>
To: karl at freefriends.org (Karl Berry)
[...] The FreeBSD Ports Collection (the official way to compile
sources) uses only param.h-grepping method. All other methods are
discouraged.
IMHO, the best way would be to adapt the following code extracted
from /usr/ports/Mk/bsd.port.mk, the main building infrastructure
Makefile. Biber should be installed with ${OSVERSION}>=701000.
--------------------------------- >8 ----------------------------------
AWK?= /usr/bin/awk
SYSCTL?= /sbin/sysctl
# Get __FreeBSD_version
.if !defined(OSVERSION)
.if exists(/usr/include/sys/param.h)
OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < /usr/include/sys/param.h
.elif exists(/usr/src/sys/sys/param.h)
OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < /usr/src/sys/sys/param.h
.else
OSVERSION!= ${SYSCTL} -n kern.osreldate
.endif
.endif
--------------------------------- >8 ----------------------------------
The above method is used in hundreds of ports, especially when ports
system makes sensitive choices on whether to install binaries or not
(for example closed-source nvidia drivers and other such things), which
is similar to what we are trying to do.
${OSREL}, which is defined as
.if !defined(OSREL)
OSREL!= ${UNAME} -r | ${SED} -e 's/[-(].*//'
.endif
is never used to determine whether to install/compile or not to
install/compile something on FreeBSD.
More information about the tlbuild
mailing list