{"action":"created","issue":{"url":"https://api.github.com/repos/lammps/lammps/issues/31","repository_url":"https://api.github.com/repos/lammps/lammps","labels_url":"https://api.github.com/repos/lammps/lammps/issues/31/labels{/name}","comments_url":"https://api.github.com/repos/lammps/lammps/issues/31/comments","events_url":"https://api.github.com/repos/lammps/lammps/issues/31/events","html_url":"https://github.com/lammps/lammps/pull/31","id":136783239,"number":31,"title":"Make .d files dependent on source files as well","user":{"login":"twhitehead","id":787843,"avatar_url":"https://avatars.githubusercontent.com/u/787843?v=3","gravatar_id":"","url":"https://api.github.com/users/twhitehead","html_url":"https://github.com/twhitehead","followers_url":"https://api.github.com/users/twhitehead/followers","following_url":"https://api.github.com/users/twhitehead/following{/other_user}","gists_url":"https://api.github.com/users/twhitehead/gists{/gist_id}","starred_url":"https://api.github.com/users/twhitehead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twhitehead/subscriptions","organizations_url":"https://api.github.com/users/twhitehead/orgs","repos_url":"https://api.github.com/users/twhitehead/repos","events_url":"https://api.github.com/users/twhitehead/events{/privacy}","received_events_url":"https://api.github.com/users/twhitehead/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-02-26T19:01:46Z","updated_at":"2016-02-28T02:13:23Z","closed_at":"2016-02-27T07:19:29Z","pull_request":{"url":"https://api.github.com/repos/lammps/lammps/pulls/31","html_url":"https://github.com/lammps/lammps/pull/31","diff_url":"https://github.com/lammps/lammps/pull/31.diff","patch_url":"https://github.com/lammps/lammps/pull/31.patch"},"body":"This way make detects if the dependencies need to be recalculated (the *.d* rebuilt) and does so.  The failure case this closes is building, then editing a source to add a header, then building, then editing the header, and then building.  The last build won't rebuild as dependencies are based on the first build.\r\n\r\nThe code is basically a rip off of what is given in the make info documentation."},"comment":{"url":"https://api.github.com/repos/lammps/lammps/issues/comments/189765330","html_url":"https://github.com/lammps/lammps/pull/31#issuecomment-189765330","issue_url":"https://api.github.com/repos/lammps/lammps/issues/31","id":189765330,"user":{"login":"twhitehead","id":787843,"avatar_url":"https://avatars.githubusercontent.com/u/787843?v=3","gravatar_id":"","url":"https://api.github.com/users/twhitehead","html_url":"https://github.com/twhitehead","followers_url":"https://api.github.com/users/twhitehead/followers","following_url":"https://api.github.com/users/twhitehead/following{/other_user}","gists_url":"https://api.github.com/users/twhitehead/gists{/gist_id}","starred_url":"https://api.github.com/users/twhitehead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twhitehead/subscriptions","organizations_url":"https://api.github.com/users/twhitehead/orgs","repos_url":"https://api.github.com/users/twhitehead/repos","events_url":"https://api.github.com/users/twhitehead/events{/privacy}","received_events_url":"https://api.github.com/users/twhitehead/received_events","type":"User","site_admin":false},"created_at":"2016-02-28T02:13:23Z","updated_at":"2016-02-28T02:13:23Z","body":"No problem.  I've been using these for quite a while on my own (our lustre file-system is a pain to wait on full rebuilds).  Just submit them for consideration in case they would be more widely useful.\r\n\r\nIs there anything in particular on the portability side to be looking out for?\r\n\r\nI would normally be leery of GNU extensions (e.g., this pull required GNU make's [remaking of make files](https://www.gnu.org/software/make/manual/html_node/Remaking-Makefiles.html) functionality), but it looks like LAMMPS is pretty far down the GNU extensions road already.\r\n\r\nFrom what I've already seen so far, for example, it looks like there are already\r\n\r\n* conditionals: `ifeq (...,...) ... endif`\r\n* functions: `$(shell ...)`, `$(wildcard ...)`, `$(filter-out ...)`, etc.\r\n* pattern rules: `%.o : %c`\r\n* vpath directives: `vpath ...`"}}