1. OUTPUT LOCATION ================== Although Felix has a cache ($HOME/.felix/cache) which is used for temporary text (mainly C++ files in text subdir) and binaries (saved automaton, parse trees, object files) the main executable or shared lib were put "next to" the source file.
Next commit, this is changed, the executables go into the cache too. this means you can now do this safely: flx read/only/directory/fred.flx because fred.so (or .dylib) now goes in the cache. Same for static links. So if you want to keep the output executables, you have to specify where to put them: flx --static --ox fred read/only/directory/fred.flx now makes executable fred (or fred.exe on windows) in the current directory. You can also use --bundle_dir=dir for bundles and --output_dir=cache or --cache_dir=cache to specify alternate cache locations (as well as some environment variables). the main reason for the change is to make "executing text" entirely transparent, in particular I got sick of the executables being put directly into my git repository image. 2. OUTPUT DIR ============ There some more options to come (grrr .. flx is supposed to "just work" without options LOL): -od dir This puts the executable into the directory. This is not the same as changing the cache dir, its just to complete this set: -o dir/file.exe //requires platform specific extension -ox dir/file // fills in the extension for you -od dir // fills in the extension AND the basename for you I hate single - options, but -o is conventional. 3. HACKED flx_pkgconfig ==================== Another fix I have to do: at present flx_pkgconfig is HACKED to support stupid crap on OSX using -framework SDL -framework OTHER or whatever on link commands. Previously the option list from the data base was kept unique, but this would lead to -framework SDL OTHER keeping only one "-framework" word. Its not possible to quote it in the database because stupid bash tries to parse things so flx throws in quotartion marks to stop it and we'd end up with "-framework SDL" "-framework OTHER" which is wrong too: the linker needs 4 arguments here. I hacked flx_pkgconfig to just retain everything but now recursion on dependencies produces a LONG list of libraries to link, duplicated many times. To get back the old behaviour I have to make the user do something like: --framework=SDL and then translate that to two words. however that would only work for -framework command. More general something like: -framework@SDL where the @ is dropped at the last minute. I have to think on the best way to do this. Using '\ ' might work but it might confuse the flx_pkgconfig parser into think we have one argument. however using @ prevents actually using @ in an option (and flx_pkgconfig itself uses this). As it is flx uses a HACK to parse flx -o fred.exe fred.flx because its one of those idiot options not using GNU --option=value convention because that's the convention for specifying compiler output. -- john skaller skal...@users.sourceforge.net http://felix-lang.org ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language