-
Notifications
You must be signed in to change notification settings - Fork 885
Made Makefile cross-platform (Linux, Mac) #97
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
Conversation
|
I looked this over with Davey before he submitted the PR. Looks good to me! Only thing I might note in the |
| mkdir -p $(DESTDIR) $(DESTDIR)/$(MANDIR) | ||
| cp -r build/* $(DESTDIR) | ||
| cp -r debian/docs/* $(DESTDIR)/share/man/man3 | ||
| cp debian/docs/* $(DESTDIR)/$(MANDIR) |
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.
@crossroads1112 @daveyproctor is ldconfig needed for Mac?
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.
@kzidane are you asking about the command export LD_LIBRARY_PATH=/usr/local/lib asked for on Linux per line 35 of the updated README.md?
As per Apple Dynamic Libraries documentation, /usr/local is automatically checked for libraries.
A user can install elsewhere as desired, setting LD_LIBRARY_PATH.
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.
Sounds good! Mind running ldconfig if installing on Linux, please?
|
This permissions issue is still occuring for me on macOS. This wouldn't happen if there was a formula added for Homebrew installs, but not sure if you want this working without that or not. |
|
@americanhanko mind showing me |
|
@kzidane ideas on how to pass travis-ci tests? |
|
@daveyproctor don't worry about that! It's complaining because you're PR'ing from a fork, and we have some environment variables set that are not available when building PRs from forks for security reasons. If you have write-access to this repo, you may push a branch and PR from that. Otherwise, I can fix later after merging, instead of having you worry about modifying the |
a8dc460 to
eaecbd7
Compare
|
|
|
@dmalan ready to merge? |
|
@dmalan any takes on this one? |
|
@daveyproctor Apologies for the delay in my response! Given all that, I do think a more elegant solution to installation on macOS would be to create a Homebrew recipe for Either way, thanks! Great work on this. |
|
@americanhanko I did a little research on this, per the below. Unless I'm missing something(?), a problem with Brew seems to be that even upping the version number requires a PR. Rather unergonomic, if so. My full review: Getting libcs50 via BrewGoalSteps and UX
Concerns + workarounds
|
|
@daveyproctor thanks for the quick reply (and the excellent review).
This is one of the main reasons I chose to create Perhaps another option would be to write another target definition in the Makefile (e.g. |
|
Homebrew concerns aside, I think we should merge this PR so we get rudimentary support for OSX and support for locally-installed |
|
@crossroads1112 would you consider pre-building the man pages on our end so the end user doesn't need to worry about asciidoctor? |
|
So every time a change is made to the |
|
That CS50 generates the man pages from |
|
It is absolutely a convenience for us but I don't see why that a bad thing. I don't know about asciidoctor specifically but it is very common for software to have "build dependencies" which are only required to make the project in the first place and are thus inherently conveniences for the developers as they aren't relavent to the actual use of the software. |
|
@crossroads1112
Don't you have to do that anyway since the Debian package is distributed with the compiled |
|
It happens every time you run `make deb` I think. In any case, this is
really outside the scope of this PR
…On Aug 27, 2017 7:46 PM, "Eric Hanko" ***@***.***> wrote:
@crossroads1112 <https://github.com/crossroads1112>
So every time a change is made to the adoc files, we'd have to remember to
regenerate the man pages?
Don't you have to do that anyway since the Debian package is distributed
with the compiled man pages?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#97 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ADfDr8KJK7midSyWhTlUI-3wUoHzq1r-ks5scf_ggaJpZM4OZesQ>
.
|
|
To clarify my previous comment, it feels very unclean to maintain two
different versions of the man pages that, in between releases, are not
necessarily in sync. Avoiding the `asciidoctor` dependency for the `build`
target doesn't feel like a compelling enough reason to do this,
particularly since only more comfy students will be downloading the library
on there own anyway.
I think this issue merits discussion but should be done in a separate
issue/PR. I think this PR should be merged in the meantime while we figure
this (and Homebrew) out.
Thoughts @dmalan?
…On Aug 27, 2017 8:55 PM, "Chad Sharp" ***@***.***> wrote:
It happens every time you run `make deb` I think. In any case, this is
really outside the scope of this PR
On Aug 27, 2017 7:46 PM, "Eric Hanko" ***@***.***> wrote:
> @crossroads1112 <https://github.com/crossroads1112>
>
> So every time a change is made to the adoc files, we'd have to remember
> to regenerate the man pages?
>
> Don't you have to do that anyway since the Debian package is distributed
> with the compiled man pages?
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#97 (comment)>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/ADfDr8KJK7midSyWhTlUI-3wUoHzq1r-ks5scf_ggaJpZM4OZesQ>
> .
>
|
|
Merged as part of #106. Thank you! |
Indeed, thanks to @crossroads1112 for step by step guidance and @americanhanko for his first pass in PR 86