On 01/05/2013, at 10:15 PM, Michael Maul wrote: > So now scoop should work with new install tree except ... > Scoop installs pkgconfig > files to INSTALL_ROOT/share/config while flx_pkg_config expects > files in INSTALL_ROOT_HOST. Should flx_pkgconfig also look in > INSTALL_ROOT/share/config? > I think flx_pkgconfig should also look in INSTALL_ROOT/share/config as > INSTALL_ROOT/host > IMHO should only contain base felix.
The core ======= The way it works **for the core** is: The files in share/src/config are just read only data, they're not an actual platform configuration. flx etc will take an option --target=platform which means (at present) the files in INSTALL_ROOT/platform are processed, in particular INSTALL_ROOT/platform/config # fpc INSTALL_ROOT/platform/lib # felix INSTALL_ROOT/platform/lib/rtl #C++ The default value is --target=host i.e. "host" is the name of the default platform. No actual configuration should ever be in INSTALL_ROOT/share anywhere, that's for universally read-only sharable data. It's basically a copy of the repository reorganised. Note that the config only contains *.fpc files, C++ headers which are configured (generated) go in INSTALL_ROOT/platform/lib/rtl at the moment. (Not sure I like that but anyhow). These files are #included from the shared C++ headers to configure them. I'm not sure I like that either. Maybe it should go the other way. The option --target is not implemented in "flx" at the moment, but it will replace "host" which is hard coded. Perhaps there's also an environment variable. scoop ===== For scoop its confusing. If scoop is installing a core package, it has to put the pure sources in share, and the generated stuff and chosen configuration in platform. However, if we rebuild Felix it deletes everything in INSTALL_ROOT to make sure everything is fresh. We do NOT want to delete non-core installed packages like "gmp", these are maintained independently. In theory upgrades to "core" should not break "gmp". If they would, the core should have a version bump. But then, we have a new install of Felix with a new version, how do we get all the stuff we had installed re-installed? So its possible scoop should also be able to install stuff outside all versions of Felix. Solution ====== I think the solution is like this: initially, I envisage scoop installing not only some convenient extras, but also most of what is now the core. So initially, it should just slavishly follow the way the build system installs things. That way moving parts of Felix out into scoop will not have any layout impacts. So for example a Felix library which implements fancydatastructure.flx would be installed in INSTALL_ROOT/share/lib/std/datatype/ [Note that the _init__.flx file there won't be changed so you'd have to actually include "std/datatype/fancydatastructre" to use it. And we'd have INSTALL_ROOT/host/config/fancydatastructure.fpc if it's a binding. Such packages will be LOST when Felix is reinstalled which is a real pain because I do that on a daily basis. But lets get the core level installs working first, we can fix that later. Probably we should keep track of the packages installed, and then, at the end of a normal install, re-install any packages. -- john skaller skal...@users.sourceforge.net http://felix-lang.org ------------------------------------------------------------------------------ Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with <2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language