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
[email protected]
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language