I am looking at implementing a builder in Felix, the prototype of which is in
src/tools/flx_build_rtl_demo.flx My idea is to drive the building off the *.fpc database. So the builder will not make guesses about the configuration, instead it will search the *.fpc database to discover what libraries have to be built, and how to build them. This will involve extending the *.fpc records to contain fields like: source: src/gc which tell that "flx_gc" package is in repository/src/gc. To build a DLL it has to be linked against dependent DLLS, and the switches for that will be provided by the database. Similarly some -DBUILD_GC macro is required on windows for dll_export and that too will go in the config database. Some reorganisation may be required to make all this work. For example the library libflx_dynamic.so contains code from multiple "packages" such as executil, strutil, dynlink. But the primary code is in src/rtl :-) Building demux will be fun, since it supports several different socket event monitoring methods. On Linux select, poll, and epoll would compile although you'd use epoll. To reduce the load on the database assumptions have to be made, for example related to naming of things. Which header files are public and which needed just for building? What library does the code go into? for example Felix makes the rule building a shared library for "fred" on OSX as libfred_dynamic.dylib Typically there's a "flx" as well, eg libflx_fred_dynamic if the library is built by Felix eg: libre2.so <-- Google source libflx_re2_dynamic.so <-- Felix version of the same thing To automate the building fairly rigid rules are needed or the config database will become unmaintainable. Unfortunately its hard to change things like directory names to conform to new rules without breaking something, at least temporarily. The autobuild stuff should fit seamlessly into the pkgtool, so there's some interplay their. Eventually I hope: install felix bootstrap binaries install the library source build a new Felix from the source using the bootstrap tools maintain the system with itself, remove (or at least ignore) the bootstrap tools. We should end up with a packaged based development system which works a bit like Debian except it builds from source transparently, and it works on all platforms (i.e. on Windows too). -- john skaller skal...@users.sourceforge.net http://felix-lang.org ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language