On 24/04/2013, at 8:47 AM, john skaller wrote:

> Just a quick note on the new system. to make both C++ and Felix compiles work
> we now need TWO pointers to directories:
> 
> (1) A pointer to the platform independent library interfaces: share
> 
> (2) A pointer to  the platform dependent library interfaces: host
> [The name "host" will vary later if cross compiling]


Phase 1 of the restructure now appears to build.  This does NOT mean all
the tools work! However "flx" works.

There is some hackery in the Python fbuild script that isn't quite right 
but it works well enough to provide a host build.

The new layout is:

        $FLX_INSTALL_DIR/share/
                lib             # felix library
                lib/rtl # C++ headers
                src/            # the sources (yet to be done)

        $FLX_INSTALL_DIR/host/
                config/*.fpc # config files
                lib             # felix platform dependent files
                lib/rtl # C++ config headers, objects, archives, shared libs, 
and plugins
                bin             # executables


I think I will move the library binaries and headers to "rtl" (instead of  
lib/rtl)
or perhaps put them in lib and move the felix to "felix".

The effect of this is that to C++ compile you have to provide TWO -I switches,
one for host, and one for share. Similarly for Felix compilation.

        flx --test=build/release

will do this for you.

Conceptually, we wil add

        flx --target=dirname

The default is --target=-host, which is the name of the configuration/platform
dependent directory. A non-default value could be used with a debugging
build, or cross compilation target.

A new tool will be needed to configure such a target. I already have most
of the tool written to build Felix given such a config:

        src/tools/flx_build_rtl_demo.flx

already builds a new RTL given a config. However it builds from the repository.
Instead it should build from the installed source:

        $FLX_INSTALL_DIR/share/src

and it should also build the plugins and other stuff. An extension would build
the tools as well and in particular it should be capable of building

        --target=host

which effectively means once the Python build is done and installed it
can be used to bootstrap a rebuild using only Felix code (no Python).
In turn this means a tarball can be made for developers and they can
build and upgrade Felix without needing Python. Provided flxg doesn't
change Ocaml won't be needed either.




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




------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to