Subject: Re: bug: git-sh-setup should not be in $PATH

From: Han-Wen Nienhuys <[email-masked]>
Date: Wed, 06 Dec 2006 16:03:01 +0100

Jakub Narebski escreveu:
> Please add some longer commit message.

do you have any specifics you would like me to mention?

>>  exec_prefix = @exec_prefix@
>>  bindir = @bindir@
>> -#gitexecdir = @libexecdir@/git-core/
>> -datarootdir = @datarootdir@
>> -template_dir = @datadir@/git-core/templates/
>>  
>>  mandir=@mandir@
> 
> Why have you removed setting datarootdir and template_dir? I would
> have thought that you would rather change it to
> 
>   #gitexecdir = @libexecdir@/git-core/
>   datarootdir = @datarootdir@
>   GIT_datadir = @datadir@/git-core/
>   template_dir= @datadir@/git-core/templates/

The Makefile already has this code, so adding it here is duplication of work
and code.

If you think putting code in the generated file is a good idea, I
propose we just generate the entire Makefile, as is the standard usage
for autoconf.

>> +## generate subdirectories and sub Makefiles. 
>> +for d in `cd $srcdir &&  find . -type d -print | grep -v '\.git'` ;
>> +do
>> +  if test ! -d  $d ; then
>> +    echo creating $d 
>> +    mkdir $d
>> +  fi
>> +  
>> +  if test -f $srcdir/$d/Makefile ; then
>> +    
>> +    dnl [[]] is to keep m4 happy
>> +    depth=`echo $d/ | sed -e 's!^\./!!g' -e 's![[^/]]*/!../!g'`
>> +    echo creating $d/Makefile
>> +    cat << EOF > $d/Makefile
>> +include ${depth}config.mak.autogen
>> +here-srcdir=\$(srcdir)/$d/
>> +VPATH=\$(here-srcdir)
>> +include \$(here-srcdir)/Makefile
>> +EOF
>> +
>> +  fi 
>> +done
>> +exit 1
> 
> What is this for? The ./configure script, generated by autoconf from
> configure.ac (by "make configure"), generates config.mak.autogen file
> from config.mak.in, which is included in main (top) Makefile.

in some cases, the files can also be called stand alone, eg.

  [lilydev@haring perl]$ pwd
  /home/lilydev/vc/git/perl

  [lilydev@haring perl]$ make
  make -f perl.mak all
  make[1]: Entering directory `/home/lilydev/vc/git/perl'
  make[1]: Leaving directory `/home/lilydev/vc/git/perl'

The above Makefile generation makes sure that this behavior is
mirrored in the builddir. Also, I'm not sure if the vpath settings get
exported automatically.

Having multiple Makefiles in the builddir is the standard behavior for
autotool'ed packages. 

> The variables defined in config.mak.autogen are of course visible in
> make in subdirectories (make invoked from main makefile). Why the change?
> What about user-generated config.mak?

good point. I'll include it too.

> This part IMHO has no sense, and has no place here.

--