Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Jan 2008 02:59:44 +0200
From:      Giorgos Keramidas <keramida@ceid.upatras.gr>
To:        Ivan Rambius Ivanov <rambiusparkisanius@gmail.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Slightly OT: Invoking a shell command from a Makeile
Message-ID:  <20080128005944.GA3072@kobe.laptop>
In-Reply-To: <89ce7f740801271448x27371cf7lfe5255256fb498ec@mail.gmail.com>
References:  <89ce7f740801271448x27371cf7lfe5255256fb498ec@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2008-01-28 00:48, Ivan Rambius Ivanov <rambiusparkisanius@gmail.com> wrote:
> Hello,
> 
> I am developing a FreeBSD port and I would like to invoke a shell
> command from it and assign its output to a variable. The command in
> question is
> 
> # make -f /usr/ports/lang/fpc/Makefile -V PORTVERSION
> 
> and I have verified that it works on the command line.
> 
> I try to use it in my port's Makefile in the following way:
> 
> FPCVERSION=             `make -f /usr/ports/lang/fpc/Makefile -V PORTVERSION`
> 
> but it fails with the following error
> 
> Syntax error: EOF in backquote substitution

Try the BSD-specific syntax which uses bang-equal assignment to grab the
output of a shell command and assign it to a make variable:

	FPCVERSION!= shell cmd here

i.e. something like:

	FPCVERSION!= make -f ${PORTSDIR}/lang/fpc/Makefile -V PORTVERSION

I'm curious though.  Why do you have to find the value of the
{PORTVERSION} from a Ports makefile?

Perhaps there is already a `standard' feature of the Ports which can do
something similar.  Have you asked around in freebsd-ports?

- Giorgos




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