I am planning to reorganise the install layout roughly as follows:

PREFIX = default /usr/local/lib
INSTALL = PREFIX/felix/felix-version
SHARE = INSTALL/.share
PLATDEP = INSTALL/platname

Share gets almost all the Felix code and C++ code
and documentation.

platname gets the platform dependent Felix code,
platform dependent C++ headers, config.fpc files,
object files, shared libraries,  archives, binaries.

The initial platname is "host".
Other platnames can be added and should identify the
host tools and target, for example

        clang_osx_64_x86_64 : 
                standard osx host setup

        linux_gcc_win32_x86_debug: 
                a linux setup generating code for
                win32 using a gcc cross compiler
                and generating debugging code

Etc. The user choses these names, and specifies
the various stuff needed to set up the environment.

The "share" directory can be on a networked server and
shared in an enterprise by everyone.

Each platform (host, toolchain, target, performance mode)
requires a separate directory and can only be shared by
people with the same host architecture (and of course the
same target).

There is an alternative: *completely* separate directories.
That is, distinct PREFIX for shared and platform stuff.

I think I favour this. For example,

        /usr/local/lib/felix/felix-latest/share/

contains the source code and

        $HOME/stuff/felix/felix-latest/myosxsetup/..

The idea here is that to install Felix you just copy the source code
to the shared location (requires admin privilege). but then I can
build the binaries and set up the config in my personal account.
And no need to install anything!

I think there will be two exceptions:

flx and scoop will go in /usr/local/lib/bin for convenience.
Default to "host", override with env var or cmd line switch.
[--test= for flx, not sure what scoop uses but it should be the same,
and --test is a bad name so flx should change...]

Comments appreciated.

BTW: one reason for this is that I want to use the Python built Felix
to bootstrap a Felix built Felix. And also provide binary downloads.

In this case the sources are updated and installed either directly
from GitHub or using scoop. The source installs are shared by everyone.
The build is separated, possibly using scoop, and may not require
any privilege. Ultimately you'll setup the config and just run code
(and flx will build the C++ libraries required as well as compiling
the felix code).



--
john skaller
skal...@users.sourceforge.net
http://felix-lang.org




------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to