{"action":"created","issue":{"url":"https://api.github.com/repos/XQF/xqf/issues/138","labels_url":"https://api.github.com/repos/XQF/xqf/issues/138/labels{/name}","comments_url":"https://api.github.com/repos/XQF/xqf/issues/138/comments","events_url":"https://api.github.com/repos/XQF/xqf/issues/138/events","html_url":"https://github.com/XQF/xqf/issues/138","id":87154947,"number":138,"title":"Kill Autotools with fire","user":{"login":"skybon","id":240364,"avatar_url":"https://avatars.githubusercontent.com/u/240364?v=3","gravatar_id":"","url":"https://api.github.com/users/skybon","html_url":"https://github.com/skybon","followers_url":"https://api.github.com/users/skybon/followers","following_url":"https://api.github.com/users/skybon/following{/other_user}","gists_url":"https://api.github.com/users/skybon/gists{/gist_id}","starred_url":"https://api.github.com/users/skybon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skybon/subscriptions","organizations_url":"https://api.github.com/users/skybon/orgs","repos_url":"https://api.github.com/users/skybon/repos","events_url":"https://api.github.com/users/skybon/events{/privacy}","received_events_url":"https://api.github.com/users/skybon/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-06-11T00:22:53Z","updated_at":"2015-06-11T00:31:45Z","closed_at":null,"body":"Autotools, current build system, is painful to use.\r\n- Build chain is very complex. [One image that says it all](http://www.shlomifish.org/lecture/Autotools/slides/processing-diagram.png). Right now we have a pile of .am, .in and .ac files in every folder. Seriously?\r\n- Config files have some really horrid syntax. Passages like this:\r\n```\r\ndnl Use -Wall if we have gcc.\r\nchangequote(,)dnl\r\nif test \"x$GCC\" = \"xyes\"; then\r\n  case \" $CFLAGS \" in\r\n  *[\\ \\\t]-Wall[\\ \\\t]*) ;;\r\n  *) CFLAGS=\"$CFLAGS -Wall\" ;;\r\n  esac\r\nfi\r\nchangequote([,])dnl\r\n```\r\nare way too much black woodoo shell magic for a build configuration.\r\n- They are very verbose. [Compare:](https://github.com/skandhurkat/Just-For-Fun/tree/bdde18af6cf5133a8f5812b2743c198db581db33/Library) a crapload of AM/AC/IN and a small, concise CMakeLists.txt\r\n- Autotools is *not* forward-compatible. What compiles today might not compile in a year because autotools tends to break old applications and libraries.\r\n\r\nAutotools has been nicknamed *autohell* for these reasons. It has to go.\r\n\r\nThere are many modern alternatives out there. Let's take CMake for example.\r\n\r\nCMake is an open source build system published under a BSD-style license. It generates native makefiles and workspaces that can be used in the compiler environment of developer's choice. It is currently used by KDE and MySQL among others.\r\n\r\nFrom my experience CMake is very easy to master, works blazing fast and even has very shiny output. I propose it as the next XQF build system."},"comment":{"url":"https://api.github.com/repos/XQF/xqf/issues/comments/110954804","html_url":"https://github.com/XQF/xqf/issues/138#issuecomment-110954804","issue_url":"https://api.github.com/repos/XQF/xqf/issues/138","id":110954804,"user":{"login":"illwieckz","id":2311649,"avatar_url":"https://avatars.githubusercontent.com/u/2311649?v=3","gravatar_id":"","url":"https://api.github.com/users/illwieckz","html_url":"https://github.com/illwieckz","followers_url":"https://api.github.com/users/illwieckz/followers","following_url":"https://api.github.com/users/illwieckz/following{/other_user}","gists_url":"https://api.github.com/users/illwieckz/gists{/gist_id}","starred_url":"https://api.github.com/users/illwieckz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/illwieckz/subscriptions","organizations_url":"https://api.github.com/users/illwieckz/orgs","repos_url":"https://api.github.com/users/illwieckz/repos","events_url":"https://api.github.com/users/illwieckz/events{/privacy}","received_events_url":"https://api.github.com/users/illwieckz/received_events","type":"User","site_admin":false},"created_at":"2015-06-11T00:31:45Z","updated_at":"2015-06-11T00:31:45Z","body":"I'm not against a port to CMake."}}