threads / discuss / 9357

minor makefile issues

Subject: minor makefile issues

## tl;dr

2 messages between Aug 2, 2007 and Aug 2, 2007.

replies: 1people: 2as markdown or json

Joe Eykholt· Aug 2, 2007, 18:04 UTC · lore
Hi All,

Due to my unusual environment, I ran into two issues when installing git 1.5.2.4 from source. Although these are unusual, they might not be unique and the fixes are easy:

    1.  The make install failed because of line 49 in templates/Makefile:
           (cd blt && $(TAR) cf - .) | \
           (cd '$(DESTDIR_SQ)$(template_dir_SQ)' && $(TAR) xf -)
    because I have CDPATH set, the 'cd blt' actually outputs the new 
directory on stdout
    which confuses the second tar.  Changing this to 'cd ./blt' fixes 
it.  Perhaps this could
    be considered a bash bug.
    2.  My home directory containing my build tree is NFS-mounted, and 
root doesn't have any
    permission to write it.  So, when doing 'make prefix=/usr/local 
install-doc' as root, I got these errors:
    # make prefix=/usr/local install-doc
    make -C Documentation install
    make[1]: Entering directory 
`/net/da01/home/jre/build/git-1.5.2.4/Documentation'
    rm -f doc.dep+ doc.dep
    rm: cannot remove `doc.dep': Permission denied
    make[1]: *** [doc.dep] Error 1
    make[1]: Leaving directory 
`/net/da01/home/jre/build/git-1.5.2.4/Documentation'
    make: *** [install-doc] Error 2

I'm not sure what the best fix is for the second problem. rm -f ignores non-existent files but not permission errors. I guess you could do 'rm -f doc.dep || true'.

No response necessary. Just thought you might like to know about these. Otherwise, git seems nice!

    Thanks,
    Joe Eykholt
David Kastrup· Aug 2, 2007, 19:00 UTC · re: Joe Eykholt · lore

Re: minor makefile issues

Joe Eykholt <joe@nuovasystems.com> writes:
Show 14 quoted lines
> Hi All,
>
> Due to my unusual environment, I ran into two issues when installing
> git 1.5.2.4 from source.
> Although these are unusual, they might not be unique and the fixes are easy:
>
>    1.  The make install failed because of line 49 in templates/Makefile:
>           (cd blt && $(TAR) cf - .) | \
>           (cd '$(DESTDIR_SQ)$(template_dir_SQ)' && $(TAR) xf -)
>    because I have CDPATH set, the 'cd blt' actually outputs the new
> directory on stdout
>    which confuses the second tar.  Changing this to 'cd ./blt' fixes
> it.  Perhaps this could
>    be considered a bash bug.

No, it is a user bug. You don't want a script to _ever_ walk around on its own volition, so you must _not_ export CDPATH. Instead, set it in .bashrc without exporting it. That way, it will be available with every interactive shell, and not interfering with scripts.

Show 19 quoted lines
>    2.  My home directory containing my build tree is NFS-mounted, and
> root doesn't have any
>    permission to write it.  So, when doing 'make prefix=/usr/local
> install-doc' as root, I got these errors:
>
>    # make prefix=/usr/local install-doc
>    make -C Documentation install
>    make[1]: Entering directory
> /net/da01/home/jre/build/git-1.5.2.4/Documentation'
>    rm -f doc.dep+ doc.dep
>    rm: cannot remove `doc.dep': Permission denied
>    make[1]: *** [doc.dep] Error 1
>    make[1]: Leaving directory
> /net/da01/home/jre/build/git-1.5.2.4/Documentation'
>    make: *** [install-doc] Error 2
>
> I'm not sure what the best fix is for the second problem.  rm -f
> ignores non-existent files but not permission errors.
> I guess you could do 'rm -f doc.dep || true'.

First do "make doc" for your normal user, then make doc-install as root.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

← back to recent threads