-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make install cleaning and improvements #8428
Conversation
@staticfloat Any ideas? |
cfc2375
to
d89e760
Compare
@staticfloat I'd also prefer this solution, but currently Makefile:27 makes a mere symlink to the source dir, which saves some space. I guess I could stop doing that if you don't care. Note to myself: this PR will have to adapt #8466 if examples are not under |
@nalimilan as will |
@nalimilan Let's not symlink the |
6c7c7e3
to
1a4c02f
Compare
Perf suite contains many files with dubious licensing and is typically not useful in normal use. Since ed38447 it's no longer needed to run tests.
d89e760
to
3113bfd
Compare
I think this new version should be fine. Now But @tkelman and @staticfloat, please check the new rules for |
@@ -96,6 +99,9 @@ build_libdir = $(build_prefix)/lib | |||
build_private_libdir = $(build_prefix)/lib/julia | |||
build_libexecdir = $(build_prefix)/libexec | |||
build_datarootdir = $(build_prefix)/share | |||
build_docdir = $(build_datarootdir)/doc/julia/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this will cause a problem, but there's a slash at the end of build_docdir
that isn't anywhere else, and that SOMETIMES causes a change in behavior for file copying programs like rsync
, so it's probably best to keep it consistent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed, will fix.
Overall, I really like this change. There's a little bit of mystery surrounding some of the makefile lines, but other than that, looks really good on my end. I'm building it locally just as a sanity check, and will let you know if anything breaks. |
Also change the default path for documentation to something more standard. Copy doc/ and examples/ under $(build_docdir) instead of creating symlinks as before, so that we don't need to remove unwanted files afterwards. Finally, fix code relying on old paths.
I'm guessing that |
3113bfd
to
1c913b2
Compare
@tkelman OK, what's more or less what I suspected. I've updated the branch with the two fixes to issues spotted by @staticfloat above. It should be OK to merge, |
Make install cleaning and improvements
Hey no problem! Confirmed functional after merge on OS/X, Linux, Windows. Now on to #8757; I'll return to that discussion to ask questions. |
Hey! wrong thread. |
I don't think this is urgent enough to backport; it's mostly stuff to make things more "correct", but doesn't fix any big bugs that I can tell. |
i just got bit by this commit on master, since the files never get recopied from examples when they get modified (i jump around a lot on various branches). this either needs to be reverted to a symlink or written with proper makefile dependency update rules. |
Oh! is it a possible “julia-config to the rescue” moment? On Mar 14, 2015, at 5:42 PM, Jameson Nash [email protected] wrote:
|
No, it's a "makefiles should not be written by humans" moment since no one ever seems to be able to write them perfectly. |
Makefiles are also particularly hard to test... As can be seen from the fact that nobody had noticed this bug for months. :-/ Ideally, |
Bump! |
would the directory timestamp be a decent proxy? |
Not AFAICT. Switching between two branches which have differences under |
@staticfloat Do you have any ideas? |
Take a look at this branch and let me know if it fixes it for you. |
@vtjnash I think you're the best person to check whether @staticfloat's fix works. |
Wildcard is preferable to shell find, but you can't use directory timestamps for this, so it wouldn't be entirely reliably. A better option would be to put a dummy file in there and "touch" it at the end of the makefile rule. |
Yes, the nice thing about I'm not sure how the dummy file would work? We want to re-rerun this command every time a file in |
Good point about the recursion. The dummy file would be the target, since the timestamp of a folder target is unreliable. |
What I mean is how does the timestamp of the dummy file get updated? As it stands, because |
touch $@ |
Following on, If you wanted to go down the find-touch route, then something like this might work:
Or some-such. Sorry I have not been paying attention to this thread as much as I should. |
I don't think we're talking about the same thing; we want to re-run these commands whenever an external program modifies the files; we don't want to change the timestamps from within the Makefile. |
The first commit makes the tree resulting from
make install
cleaner.The second one is an attempt at fixing #8367, but it currently doesn't work. I'd appreciate some help from the genius who wrote Makefile:27. It should be adapted so that the symlink to
doc/
is no longer created at$(build_datarootdir)/julia/doc
, but at$(build_docdir)
-- Make.inc:102 should then also be made consistent with Make.inc:89.