Subject: Re: [PATCH] C implementation of the 'git' program.

From: Andreas Ericsson <[email-masked]>
Date: Fri, 11 Nov 2005 13:04:54 +0100

Junio C Hamano wrote:
> Raja R Harinath <[email-masked]> writes:
> 
> 
>>This is bad, since it does the wrong thing for the correct way:
>>
>>  make prefix=/usr
>>  sudo make prefix=/usr install
>>
>>With your patch 'git' will be compiled as root.
> 
> 
> You are correct.
> 
> We should allow building as user and installing as root, with
> the installation step _not_ touching the build directory at all.

Sane point. This doesn't work without a ./configure script or some such 
though (something external to the Makefile that updates a config-file of 
some sort), as

make
(make finishes, user remembers he/she must use prefix= to install somewhere)
make prefix=/usr

wouldn't rebuild git so binaries produced would still try to use 
$HOME/bin for libdir. Granted, it's easy enough to do 'touch git.c' 
before rebuilding, but it's not exactly intuitive.

I'll hack up a configure-script if that's alright. It should be fairly 
short and just define the GIT_VERSION and GIT_LIBDIR macros.

I imagine this can be done through the config.mak file, included from 
221 in Makefile, supposing it's forcibly included rather than just if it 
exists, and we'll have the 'git:' target depend on it. I think this is 
the least intrusive change. OTOH, it might not be bad to move some of 
the uname_? logic to a shell-script (and have all targets depend on 
config.mak).

Thoughts? I've got a feeling I've overlooked something here.

-- 
Andreas Ericsson                   [email-masked]
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231