On Thu, 2006-07-20 at 22:23 -0500, Larry Evans wrote:
CC to list so there's a record of the explanation..
> > huh? How can ./ not work??
>
> I suppose because I was in
>
> $(HOME)/prog_dev/felix/dev/felix$(MY_FLX_VERSION)
>
> and the not yet installed flx file was in
>
> $(HOME)/prog_dev/felix/felix$(MY_FLX_VERSION)/bin
>
> so ./ referred to the directory I was in, i.e.:
>
> $(HOME)/prog_dev/felix/dev/felix$(MY_FLX_VERSION)
>
> which had no ./bin subdirectory.
ouch that's confusing :)
The syntax is:
flx --test=dir filename
where 'dir' is the name of the felix root. This is the
directory created by unpacking the tarball, or, by
installing Felix.
flx --test filename
is a synonym for
flx --test=. filename
Now of course if you unpacked the tarball but didn't build
Felix .. there will be no bin directory, so if you use
the --test option, things won't work.
If you leave out the --test option:
flx filename
then it is equivalent to
flx --test=${FLX_INSTALL_DIR} filename
provided the envronment variable FLX_INSTALL_DIR is set.
Otherwise, if there's no such environment variable it is
equivalent to
flx --test=hard_coded_install_dir filename
where 'hard_coded_install_dir' is the install
directory calculated by the configuration script.
This is usually
${prefix}/lib/felix-<version>
So in the usual confusing unix tradition there is a
sequence of defaults and shortcuts which eventually
fall back to hard coded, configuration dependent
value, which itself is set using a cascade of defaults .. :)
I hate all that stuff .. which is why there is only ONE
such installation variable now, and everything else
just lives in the felix root, including shared libraries,
etc.
Note this isn't the case for the Debian package
(which is Felix 1.1.1 and is in Unstable I think).
That version puts executable in /usr/bin, libraries
in /usr/lib and headers in /usr/include as per the usual
Debian rules. The next Debian package won't do that.
> line from your previous post. BTW, instead of using flx
> from rc10, I was using the one from 1.1.1 since that version
> passed the make step OK.
I suspect 'flx' has changed since then to reflect the
new installation model ;)
> OOPS, I misunderstood the purpose of --test. I thought it
> would just use the code in the felix-${VERSION}/bin that was
> created after the make step. That way one needn't have
> root privileges to install in /usr/bin.
It can do that BUT it doesn't know where that directory is.
It assumes the directory is '.'
If that isn't the case you can set it with --test=wherever
however I don't think the 1.1 version does that.
Originally --test also changed subdirectory names: it
used the Felix dev directory layout, which is quite
different to the Debian install layout.
Since then the standard Debian way of doing things
has been dropped, because it just doesn't make
much sense for a major package like Felix.
Like Python and other such systems, we prefer to keep
everything in one place locked together, rather than
distributing files all over the place.
At the same time, the meaning of --test=root has changed
to actually mean "the directory which is the Felix root",
but it defaults to the current directory if you say --test
without =root for compatibility.
for this reason '--test' is a bit of a misnomer.
OTOH it can be used to 'test' different Felix roots,
including a choice of multiple installed versions AND
multiple development versions.
The latter is useful to Felix developers especially
when you have, for example, a Cygwin build and a
MingW build on the same Windows box, but also
for comparing releases etc.
> FLXRUN="env LD_LIBRARY_PATH=.:$FLXRTL:\$LD_LIBRARY_PATH
> $FLXBIN/flx_run"
>
> Note the .: which includes $PWD in the list of sharelib directories
> to search.
Yeah, but normally this is not desirable. The 'right' way to do this
is to expand the filename into an absolute pathname, but I don't
know how to do that with 'shell' script :)
--
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language