digitalmars.D - Intrusive Makefile for d-programming-language.org
- Peter Alexander <peter.alexander.au gmail.com> Jan 15 2012
- mta`chrono <chrono mta-international.net> Jan 15 2012
- Jacob Carlborg <doob me.com> Jan 15 2012
- Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> Jan 15 2012
I'm not particularly well versed in Makefile ethics, but this caught me by surprise. Suppose I clone d-programming-language.org into my home directory (as I did), do some work, then later on run make clean. git clone https://.../d-programming-language.org.git cd d-programming-language.org ... do stuff ... make -fposix.mak clean Here's what clean does: rm -rf ../web ../dmd.2.056 2.056.ddoc rm -rf ../druntime.2.056 ../phobos.2.056 If I had a web dir in my home directory (not exactly uncommon), it would have been deleted without warning. Luckily, I didn't. I now have it cloned into a separate dir where it can do no harm. Is it normal for Makefiles to be so intrusive? IMO, Makefiles shouldn't be deleting anything outside their own directory.
Jan 15 2012
If I had a web dir in my home directory (not exactly uncommon), it would have been deleted without warning. Luckily, I didn't. I now have it cloned into a separate dir where it can do no harm. Is it normal for Makefiles to be so intrusive? IMO, Makefiles shouldn't be deleting anything outside their own directory.
You're right! Makefiles shouldn't do anything outside their own directory, but building the website is a little bit complicated as d-progamming-language.org relys on the sources of druntime and phobos to generate the documentation. I think it can not be avoided in this particular case. The Makefile has to do some work in the parent folder. BUT, it's probably best to add a "README.md" and give a short explanation of how to build the website. ---- mkdir -p /tmp/workdir cd /tmp/workdir git checkout ... git checkout ... git checkout ... make -f .... move BLA to your /var/www/public_html folder rm -rf /var/workdir ----
Jan 15 2012
On 2012-01-15 14:28, mta`chrono wrote:If I had a web dir in my home directory (not exactly uncommon), it would have been deleted without warning. Luckily, I didn't. I now have it cloned into a separate dir where it can do no harm. Is it normal for Makefiles to be so intrusive? IMO, Makefiles shouldn't be deleting anything outside their own directory.
You're right! Makefiles shouldn't do anything outside their own directory, but building the website is a little bit complicated as d-progamming-language.org relys on the sources of druntime and phobos to generate the documentation. I think it can not be avoided in this particular case. The Makefile has to do some work in the parent folder. BUT, it's probably best to add a "README.md" and give a short explanation of how to build the website. ---- mkdir -p /tmp/workdir cd /tmp/workdir git checkout ... git checkout ... git checkout ... make -f .... move BLA to your /var/www/public_html folder rm -rf /var/workdir ----
Or create a super repository and use git submodules to include all repositories currently at: https://github.com/D-Programming-Language -- /Jacob Carlborg
Jan 15 2012
On 1/15/12 7:09 AM, Peter Alexander wrote:I'm not particularly well versed in Makefile ethics, but this caught me by surprise. Suppose I clone d-programming-language.org into my home directory (as I did), do some work, then later on run make clean. git clone https://.../d-programming-language.org.git cd d-programming-language.org .... do stuff ... make -fposix.mak clean Here's what clean does: rm -rf ../web ../dmd.2.056 2.056.ddoc rm -rf ../druntime.2.056 ../phobos.2.056 If I had a web dir in my home directory (not exactly uncommon), it would have been deleted without warning. Luckily, I didn't. I now have it cloned into a separate dir where it can do no harm. Is it normal for Makefiles to be so intrusive? IMO, Makefiles shouldn't be deleting anything outside their own directory.
I'll fix that. Andrei
Jan 15 2012
On 1/15/12 9:19 AM, Andrei Alexandrescu wrote:On 1/15/12 7:09 AM, Peter Alexander wrote:I'm not particularly well versed in Makefile ethics, but this caught me by surprise. Suppose I clone d-programming-language.org into my home directory (as I did), do some work, then later on run make clean. git clone https://.../d-programming-language.org.git cd d-programming-language.org .... do stuff ... make -fposix.mak clean Here's what clean does: rm -rf ../web ../dmd.2.056 2.056.ddoc rm -rf ../druntime.2.056 ../phobos.2.056 If I had a web dir in my home directory (not exactly uncommon), it would have been deleted without warning. Luckily, I didn't. I now have it cloned into a separate dir where it can do no harm. Is it normal for Makefiles to be so intrusive? IMO, Makefiles shouldn't be deleting anything outside their own directory.
I'll fix that. Andrei
Fixed: https://github.com/D-Programming-Language/d-programming-language.org/commit/30545e3ada4bafbed6e246c0b82b0442912955d1 Andrei
Jan 22 2012









Jacob Carlborg <doob me.com> 