The flx tool now works as follows:

        flx --test=installdir --target=subdir ....

The defaults are: installdir=/usr/local/lib/felix/felix-1.1.9dev, target=host

It looks in 

        installdir/subdir/config/toolchain.fpc 

for the field toolchain which names a toolchain plugin (file basename). 

Currently this must be toolchain_compiler_platform where 

        compiler=gcc or clang and 
        platform = osx or linux. 

These toochains are built into flx and do not required dynamic loading. 
Dynamic loading isn't supported yet.

The Python build script uses "uname" to guess the platform: clang is required 
for osx and gcc for linux. Windows isn't supported and won't be until a windows
person volunteers to help set up the toolchains.

The tool 

        src/tools/flx_build_rtl.flx

can be used to build a new target for a different platform
configuration, however that config currently has to run on the host. For example
you can switch to using gcc on osx, the Makefile target "gccosxtarget" should 
create
the target subdirectory gccosx. however it uses the initial clang built tools 
to create
this, and a bootstrap is required to use the generated tools to rebuild 
themselves
using gcc generated tools (I haven't tried that just yet).

I have edited scoop so it builds, but I don't know if it works. However scoop 
will
need some new support to distinguish the build target (similar to flx) since now
a single install can support any number of targets. This probably means scoop 
will
also need to separate installation of platform independent sources from 
platform 
dependent generated stuff, since the former needs to be done only once,
but the latter many times. 

initially, one could assume the everything was platform dependent,
however if scoop is to support upgrading and installing "core" stuff it 
probably needs the ability
to not only install sources in "share" directory, but build theses sources for 
multiple
targets (though possibly not all of them), as well as building already 
installed packages
for new targets after these are created.

It's a bit complex because unlike say Debian, the targets can exist 
simultaneously on one
file system. to do this right (and this includes the RTL and flxg builds), the 
installation
on the file system may need to trigger builds on entirely different machines.

For example in an enterprise install, you might install some source and then
need to build for windows, solaris, and linux clients.

Anyhow, have fun!


--
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_may
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to