{"action":"created","issue":{"url":"https://api.github.com/repos/felix-lang/felix/issues/76","labels_url":"https://api.github.com/repos/felix-lang/felix/issues/76/labels{/name}","comments_url":"https://api.github.com/repos/felix-lang/felix/issues/76/comments","events_url":"https://api.github.com/repos/felix-lang/felix/issues/76/events","html_url":"https://github.com/felix-lang/felix/issues/76","id":123958038,"number":76,"title":"Build from source is utterly, TOTALLY broken","user":{"login":"stugol","id":1113153,"avatar_url":"https://avatars.githubusercontent.com/u/1113153?v=3","gravatar_id":"","url":"https://api.github.com/users/stugol","html_url":"https://github.com/stugol","followers_url":"https://api.github.com/users/stugol/followers","following_url":"https://api.github.com/users/stugol/following{/other_user}","gists_url":"https://api.github.com/users/stugol/gists{/gist_id}","starred_url":"https://api.github.com/users/stugol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stugol/subscriptions","organizations_url":"https://api.github.com/users/stugol/orgs","repos_url":"https://api.github.com/users/stugol/repos","events_url":"https://api.github.com/users/stugol/events{/privacy}","received_events_url":"https://api.github.com/users/stugol/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-12-27T03:23:45Z","updated_at":"2015-12-27T23:34:18Z","closed_at":null,"body":"I've been trying for the past hour and a half to build Felix on a 64-bit Debian Jessie system.\r\n\r\nThere are several things wrong with your build process. Allow me to highlight some of them.\r\n\r\n1: Undocumented dependancy on the ```ocaml-native-compilers``` package (for ```ocamldep``` and ```ocamldep.opt```). Spent ten entertaining minutes figuring that one out.\r\n\r\n2: ```flx_build_flxg``` (in GNUmakefile, line 139) is not located in my system path, therefore IT WILL NOT WORK! I've had to edit the makefile and insert ```./build/release/host/bin``` before it.\r\n\r\n3: ```flx_build_rtl``` (in GNUmakefile, line 152) is not located in my system path, therefore IT WILL NOT WORK! I've had to edit the makefile and insert ```./build/release/host/bin``` before it.\r\n\r\n4: ```flx_build_boot``` (in GNUmakefile, line 158) is not located in my system path, therefore IT WILL NOT WORK! I've had to edit the makefile and insert ```./build/release/host/bin``` before it.\r\n\r\n5: ```toolchain_gcc_linux.so``` cannot be found during the compilation process, because it is located in ```./build/release/host/lib/rtl/``` and - oddly! - NOT MY SYSTEM LIBRARIES DIRECTORY! This leads to the following error, which I have been unable to fix:\r\n```\r\nDynamic linkage error\r\nfilename: toolchain_gcc_linux.so\r\noperation: LoadLibrary/dlopen\r\nwhat: Cannot find dll/shared library\r\nGNUmakefile:174: recipe for target 'rtl' failed\r\nmake: *** [rtl] Error 253\r\n```\r\n\r\n6: Btw, the ```tarballs``` link on [your site](http://felix-lang.org/share/src/web/download_tarball.html) is broken as well.\r\n\r\nNow, your project looks really nice, and I was looking forward to coding with it. But after _fifteen years_ of development, such a slipshod build process really doesn't inspire a huge amount of confidence.\r\n\r\nSure, I could use the prebuilt binary - which ```curl```, btw, was unable to download for some reason; I had to use ```wget``` - but who knows when you'll release a new version? I could be months out of date and there'd be nothing I could do about it.\r\n\r\nGuys, please fix your project. It'd be great to be able to use it."},"comment":{"url":"https://api.github.com/repos/felix-lang/felix/issues/comments/167447682","html_url":"https://github.com/felix-lang/felix/issues/76#issuecomment-167447682","issue_url":"https://api.github.com/repos/felix-lang/felix/issues/76","id":167447682,"user":{"login":"skaller","id":431744,"avatar_url":"https://avatars.githubusercontent.com/u/431744?v=3","gravatar_id":"","url":"https://api.github.com/users/skaller","html_url":"https://github.com/skaller","followers_url":"https://api.github.com/users/skaller/followers","following_url":"https://api.github.com/users/skaller/following{/other_user}","gists_url":"https://api.github.com/users/skaller/gists{/gist_id}","starred_url":"https://api.github.com/users/skaller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skaller/subscriptions","organizations_url":"https://api.github.com/users/skaller/orgs","repos_url":"https://api.github.com/users/skaller/repos","events_url":"https://api.github.com/users/skaller/events{/privacy}","received_events_url":"https://api.github.com/users/skaller/received_events","type":"User","site_admin":false},"created_at":"2015-12-27T23:34:18Z","updated_at":"2015-12-27T23:34:18Z","body":"\n> On 28 Dec 2015, at 09:48, stugol <notifications@github.com> wrote:\n> \n> Thank you.\n> \n> I would still like an answer to question #3 though. Anyone?\n\nFor building:\n\n~/felix>cat buildscript/linuxsetup.sh\nexport PATH=build/release/host/bin:$PATH\nexport LD_LIBRARY_PATH=build/release/host/lib/rtl:$LD_LIBRARY_PATH\n\nFor installing (in GNUmakefile):\n\ninstall:\n        rm -rf ${INSTALLDIR}\n        ${BUILDROOT}/host/bin/flx_cp ${BUILDROOT}/host '(.*)' ${INSTALLDIR}'/host/$${1}'\n        ${BUILDROOT}/host/bin/flx_cp ${BUILDROOT}/share '(.*)' ${INSTALLDIR}'/share/$${1}'\n        ${BUILDROOT}/host/bin/flx_cp ${BUILDROOT} '(VERSION)' ${INSTALLDIR}'/$${1}'\n        ${BUILDROOT}/host/bin/flx_cp ${BUILDROOT}/host/bin '(flx)' ${EXECPREFIX}'/$${1}'\n        ${BUILDROOT}/host/bin/flx_cp speed/ '(.*)' ${INSTALLDIR}'/speed/$${1}'\n\n        rm -f ${INSTALLROOT}/felix-latest\n        ln -s felix-${VERSION} ${INSTALLROOT}/felix-latest\n\nThe method of accessing Felix, installed or not, has a lot of complex options.\nIn other words its extremely versatile :-) By default the install puts “flx” in\n/usr/local/bin and everything else in /usr/local/lib/felix/felix-latest (a symlink\nto a specific version).\n\nI myself don’t use this, i just run it from build/release. The default is to look\nin $HOME/.felix/config/felix.fpc for configuration information. I personally\ncopied build.fpc there and just run from the build image (being a dev).\nHowever it is important to actually do an install in case the build image\nscrews up.\n\nThe method of configuring Felix has been changed and is still subject\nto change. It is being set up to support more or less arbitrary locations\nof the components. So it can work for a simple user or a server based\nenterprise install with multiple platforms. Getting all this to work is\nnon trivial when one has a single laptop to play with.\n\nFelix is also able to simultaneously support multiple targets and\nmultiple versions. Seriously, there are not a lot of other systems\nthat can come close to this (the Debian autobuilder springs to mind\nas something with different but comparably complex requirements).\n\nI personally run OSX and Windows 10, but don’t have a Linux box.\nRemote access to the server running Ubuntu for me is restricted\nby poor 3G wiresless reception half way around the world from the server.\n\n—\njohn skaller\nskaller@users.sourceforge.net\nhttp://felix-lang.org\n\n"}}