{"action":"created","issue":{"url":"https://api.github.com/repos/effenel/build/issues/3","labels_url":"https://api.github.com/repos/effenel/build/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/effenel/build/issues/3/comments","events_url":"https://api.github.com/repos/effenel/build/issues/3/events","html_url":"https://github.com/effenel/build/issues/3","id":102650330,"number":3,"title":"run_make build module doesn't re-run after doing `make clean` in the third party directory","user":{"login":"shinykitten","id":3980861,"avatar_url":"https://avatars.githubusercontent.com/u/3980861?v=3","gravatar_id":"","url":"https://api.github.com/users/shinykitten","html_url":"https://github.com/shinykitten","followers_url":"https://api.github.com/users/shinykitten/followers","following_url":"https://api.github.com/users/shinykitten/following{/other_user}","gists_url":"https://api.github.com/users/shinykitten/gists{/gist_id}","starred_url":"https://api.github.com/users/shinykitten/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shinykitten/subscriptions","organizations_url":"https://api.github.com/users/shinykitten/orgs","repos_url":"https://api.github.com/users/shinykitten/repos","events_url":"https://api.github.com/users/shinykitten/events{/privacy}","received_events_url":"https://api.github.com/users/shinykitten/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":10,"created_at":"2015-08-23T19:28:21Z","updated_at":"2015-08-24T23:59:59Z","closed_at":null,"body":"If you run `ninja` after doing `make clean` in the subdirectory, it will return the following output, and do basically nothing.\r\n\r\n`[1/1] TOUCH  syslinux/.touch`\r\n\r\nExpected behavior is: the output files are missing, so it should run make again.  The reason it doesn't do this is because we're using `.touch` as a proxy file to ensure make is only run once in the subdirectory.  `make clean` doesn't remove `.touch` so Ninja has no idea make needs to be run again."},"comment":{"url":"https://api.github.com/repos/effenel/build/issues/comments/134419784","html_url":"https://github.com/effenel/build/issues/3#issuecomment-134419784","issue_url":"https://api.github.com/repos/effenel/build/issues/3","id":134419784,"user":{"login":"jynnantonix","id":455457,"avatar_url":"https://avatars.githubusercontent.com/u/455457?v=3","gravatar_id":"","url":"https://api.github.com/users/jynnantonix","html_url":"https://github.com/jynnantonix","followers_url":"https://api.github.com/users/jynnantonix/followers","following_url":"https://api.github.com/users/jynnantonix/following{/other_user}","gists_url":"https://api.github.com/users/jynnantonix/gists{/gist_id}","starred_url":"https://api.github.com/users/jynnantonix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jynnantonix/subscriptions","organizations_url":"https://api.github.com/users/jynnantonix/orgs","repos_url":"https://api.github.com/users/jynnantonix/repos","events_url":"https://api.github.com/users/jynnantonix/events{/privacy}","received_events_url":"https://api.github.com/users/jynnantonix/received_events","type":"User","site_admin":false},"created_at":"2015-08-24T23:59:59Z","updated_at":"2015-08-24T23:59:59Z","body":"@mikevoydanoff : I assume your question was directed at me.  My suggestion is to use a real package manager, preferably one that already exists.  Take pacman, for example.  It's the package manager used by Arch Linux.  Each package (linux, glibc, syslinux) has an associated PKGBUILD file, which is basically a bash script.  This script has functions to prepare (patch files), configure (autotools, cmake), build (make, ninja), and then install the artifacts into a tarball.  It also contains a list of the build-time and run-time dependencies of the package.  Anybody who wants to build one of these packages runs the makepkg tool on the PKGBUILD and out pops a tarball.\r\n\r\nWhere this really shines is that this tarball can now be uploaded to some common location so that people who don't want to work on the kernel (or mojo) can just download the prebuilt kernel (mojo) tarball and use it, without having to build it themselves.  The pacman tool ensures you will end up with all the right dependencies for the package installed in the file system.\r\n\r\nIn response to your other comment, what is your concern with downloading tarballs and applying a small number of patches to the source?"}}