www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Intrusive Makefile for d-programming-language.org

reply Peter Alexander <peter.alexander.au gmail.com> writes:
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
next sibling parent reply mta`chrono <chrono mta-international.net> writes:
 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
parent Jacob Carlborg <doob me.com> writes:
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
prev sibling parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
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
parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
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