* bug: git-sh-setup should not be in $PATH @ 2006-12-06 12:14 Han-Wen Nienhuys 2006-12-06 12:23 ` Johannes Schindelin 0 siblings, 1 reply; 17+ messages in thread From: Han-Wen Nienhuys @ 2006-12-06 12:14 UTC (permalink / raw) To: git Hello, I often install tools locally so I can run SVN/CVS/etc versions in my own account. To do this, I install into $HOME/usr/pkg/PACKAGE and a script that generates scripts in $HOME/usr/bin/ (which is in my $PATH) like #!/bin/sh exec /home/lilydev/usr/pkg/git/bin/git-prune "$@" # generated: update-pkgs this breaks with git-sh-setup; all sh scripts are broken with this setup. git-sh-setup isn't a 'normal' binary, in that it should be called by bash only and not run in a subshell. Therefore I propose that it - be installed in <prefix>/share/git/ - be invoked with an explicit path, i.e. . <prefix>/share/git/ -- Han-Wen Nienhuys - hanwen@xs4all.nl - http://www.xs4all.nl/~hanwen ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 12:14 bug: git-sh-setup should not be in $PATH Han-Wen Nienhuys @ 2006-12-06 12:23 ` Johannes Schindelin 2006-12-06 12:34 ` Han-Wen Nienhuys 0 siblings, 1 reply; 17+ messages in thread From: Johannes Schindelin @ 2006-12-06 12:23 UTC (permalink / raw) To: Han-Wen Nienhuys; +Cc: git Hi, On Wed, 6 Dec 2006, Han-Wen Nienhuys wrote: > I often install tools locally so I can run SVN/CVS/etc versions > in my own account. To do this, I install into > > $HOME/usr/pkg/PACKAGE Why not just set $ export GIT_EXEC_PATH=$HOME/usr/pkg/git $ export PATH=$PATH:$GIT_EXEC_PATH ? Ciao, ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 12:23 ` Johannes Schindelin @ 2006-12-06 12:34 ` Han-Wen Nienhuys 2006-12-06 12:56 ` Jakub Narebski 0 siblings, 1 reply; 17+ messages in thread From: Han-Wen Nienhuys @ 2006-12-06 12:34 UTC (permalink / raw) To: Johannes Schindelin; +Cc: git Johannes Schindelin escreveu: > Hi, > > On Wed, 6 Dec 2006, Han-Wen Nienhuys wrote: > >> I often install tools locally so I can run SVN/CVS/etc versions >> in my own account. To do this, I install into >> >> $HOME/usr/pkg/PACKAGE > > Why not just set > > $ export GIT_EXEC_PATH=$HOME/usr/pkg/git > $ export PATH=$PATH:$GIT_EXEC_PATH > > ? Because it requires brain cycles from my part. I rather spend those constructively. GIT is the only package I've seen in a long time that breaks this setup. Here is the patch that I proposed From 988813912c4c7b310c489bfffa1b81e2663b7b6f Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys <hanwen@xs4all.nl> Date: Wed, 6 Dec 2006 13:27:16 +0100 Subject: [PATCH] Install git-sh-setup.sh into $(prefix)/share/git-core. Call with explicit path. Signed-off-by: Han-Wen Nienhuys <hanwen@xs4all.nl> --- Makefile | 10 ++++++++-- git-am.sh | 2 +- git-applymbox.sh | 2 +- git-applypatch.sh | 2 +- git-bisect.sh | 2 +- git-checkout.sh | 2 +- git-clean.sh | 2 +- git-commit.sh | 2 +- git-fetch.sh | 2 +- git-instaweb.sh | 2 +- git-lost-found.sh | 2 +- git-merge.sh | 2 +- git-pull.sh | 2 +- git-quiltimport.sh | 2 +- git-rebase.sh | 2 +- git-repack.sh | 2 +- git-request-pull.sh | 2 +- git-reset.sh | 2 +- git-resolve.sh | 2 +- git-revert.sh | 2 +- git-tag.sh | 2 +- git-verify-tag.sh | 2 +- 22 files changed, 29 insertions(+), 23 deletions(-) diff --git a/Makefile b/Makefile index a1861de..cb9b745 100644 --- a/Makefile +++ b/Makefile @@ -116,8 +116,10 @@ STRIP ?= strip prefix = $(HOME) bindir = $(prefix)/bin +datadir = $(prefix)/share +GIT_datadir = $(datadir)/git-core gitexecdir = $(bindir) -template_dir = $(prefix)/share/git-core/templates/ +template_dir = $(GIT_datadir)/templates/ # DESTDIR= # default configuration for gitweb @@ -166,7 +168,7 @@ SCRIPT_SH = \ git-merge-one-file.sh git-parse-remote.sh \ git-pull.sh git-rebase.sh \ git-repack.sh git-request-pull.sh git-reset.sh \ - git-resolve.sh git-revert.sh git-sh-setup.sh \ + git-resolve.sh git-revert.sh \ git-tag.sh git-verify-tag.sh \ git-applymbox.sh git-applypatch.sh git-am.sh \ git-merge.sh git-merge-stupid.sh git-merge-octopus.sh \ @@ -550,6 +552,7 @@ endif # Shell quote (do not use $(call) to accommodate ancient setups); SHA1_HEADER_SQ = $(subst ','\'',$(SHA1_HEADER)) +GIT_datadir_SQ = $(subst ','\'',$(GIT_datadir)) DESTDIR_SQ = $(subst ','\'',$(DESTDIR)) bindir_SQ = $(subst ','\'',$(bindir)) @@ -604,6 +607,7 @@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \ -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ + -e 's!@@GIT_datadir@@!$(GIT_datadir)!g' \ -e 's/@@NO_CURL@@/$(NO_CURL)/g' \ $@.sh >$@+ chmod +x $@+ @@ -816,6 +820,8 @@ install: all '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X'; \ fi $(foreach p,$(BUILT_INS), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;) + $(INSTALL) -d -m755 '$(DESTDIR_SQ)$(GIT_datadir_SQ)' + $(INSTALL) -m755 git-sh-setup.sh '$(DESTDIR_SQ)$(GIT_datadir_SQ)' install-doc: $(MAKE) -C Documentation install diff --git a/git-am.sh b/git-am.sh index afe322b..b9dfcf0 100755 --- a/git-am.sh +++ b/git-am.sh @@ -5,7 +5,7 @@ USAGE='[--signoff] [--dotest=<dir>] [--utf8] [--binary] [--3way] [--interactive] [--whitespace=<option>] <mbox>... or, when resuming [--skip | --resolved]' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh git var GIT_COMMITTER_IDENT >/dev/null || exit diff --git a/git-applymbox.sh b/git-applymbox.sh index 5569fdc..eaab50d 100755 --- a/git-applymbox.sh +++ b/git-applymbox.sh @@ -19,7 +19,7 @@ ## git-am is supposed to be the newer and better tool for this job. USAGE='[-u] [-k] [-q] [-m] (-c .dotest/<num> | mbox) [signoff]' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh git var GIT_COMMITTER_IDENT >/dev/null || exit diff --git a/git-applypatch.sh b/git-applypatch.sh index 8df2aee..7ddf5d3 100755 --- a/git-applypatch.sh +++ b/git-applypatch.sh @@ -12,7 +12,7 @@ ## USAGE='<msg> <patch> <info> [<signoff>]' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh case "$#" in 3|4) ;; *) usage ;; esac diff --git a/git-bisect.sh b/git-bisect.sh index 6da31e8..6fa92e2 100755 --- a/git-bisect.sh +++ b/git-bisect.sh @@ -10,7 +10,7 @@ git bisect visualize show bisect status in gitk. git bisect replay <logfile> replay bisection log git bisect log show bisect log.' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh sq() { @@PERL@@ -e ' diff --git a/git-checkout.sh b/git-checkout.sh index 737abd0..beea113 100755 --- a/git-checkout.sh +++ b/git-checkout.sh @@ -2,7 +2,7 @@ USAGE='[-f] [-b <new_branch>] [-m] [<branch>] [<paths>...]' SUBDIRECTORY_OK=Sometimes -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh old_name=HEAD old=$(git-rev-parse --verify $old_name 2>/dev/null) diff --git a/git-clean.sh b/git-clean.sh index 3834323..7a7ce6e 100755 --- a/git-clean.sh +++ b/git-clean.sh @@ -13,7 +13,7 @@ LONG_USAGE='Clean untracked files from the working directory When optional <paths>... arguments are given, the paths affected are further limited to those that match them.' SUBDIRECTORY_OK=Yes -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh ignored= ignoredonly= diff --git a/git-commit.sh b/git-commit.sh index 81c3a0c..5a388f5 100755 --- a/git-commit.sh +++ b/git-commit.sh @@ -5,7 +5,7 @@ USAGE='[-a] [-s] [-v] [--no-verify] [-m <message> | -F <logfile> | (-C|-c) <commit>] [-u] [--amend] [-e] [--author <author>] [[-i | -o] <path>...]' SUBDIRECTORY_OK=Yes -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh git-rev-parse --verify HEAD >/dev/null 2>&1 || initial_commit=t branch=$(GIT_DIR="$GIT_DIR" git-symbolic-ref HEAD) diff --git a/git-fetch.sh b/git-fetch.sh index 4eecf14..efe44ea 100755 --- a/git-fetch.sh +++ b/git-fetch.sh @@ -2,7 +2,7 @@ # USAGE='<fetch-options> <repository> <refspec>...' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh . git-parse-remote _x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]' _x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40" diff --git a/git-instaweb.sh b/git-instaweb.sh index 16cd351..ae9fbc1 100755 --- a/git-instaweb.sh +++ b/git-instaweb.sh @@ -6,7 +6,7 @@ USAGE='[--start] [--stop] [--restart] [--local] [--httpd=<httpd>] [--port=<port>] [--browser=<browser>] [--module-path=<path> (for Apache2 only)]' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh case "$GIT_DIR" in /*) diff --git a/git-lost-found.sh b/git-lost-found.sh index b928f2c..5f612f2 100755 --- a/git-lost-found.sh +++ b/git-lost-found.sh @@ -2,7 +2,7 @@ USAGE='' SUBDIRECTORY_OK='Yes' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh if [ "$#" != "0" ] then diff --git a/git-merge.sh b/git-merge.sh index 272f004..07ceaf0 100755 --- a/git-merge.sh +++ b/git-merge.sh @@ -5,7 +5,7 @@ USAGE='[-n] [--no-commit] [--squash] [-s <strategy>] [--reflog-action=<action>] [-m=<merge-message>] <commit>+' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh LF=' ' diff --git a/git-pull.sh b/git-pull.sh index e23beb6..8c0f292 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -6,7 +6,7 @@ USAGE='[-n | --no-summary] [--no-commit] [-s strategy]... [<fetch-options>] <repo> <head>...' LONG_USAGE='Fetch one or more remote refs and merge it/them into the current HEAD.' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh strategy_args= no_summary= no_commit= squash= while case "$#,$1" in 0) break ;; *,-*) ;; *) break ;; esac diff --git a/git-quiltimport.sh b/git-quiltimport.sh index 10135da..2f1e7b7 100755 --- a/git-quiltimport.sh +++ b/git-quiltimport.sh @@ -1,7 +1,7 @@ #!/bin/sh USAGE='--dry-run --author <author> --patches </path/to/quilt/patch/directory>' SUBDIRECTORY_ON=Yes -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh dry_run="" quilt_author="" diff --git a/git-rebase.sh b/git-rebase.sh index 25530df..3220291 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -27,7 +27,7 @@ Example: git-rebase master~1 topic / --> / D---E---F---G master D---E---F---G master ' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh RESOLVEMSG=" When you have resolved this problem run \"git rebase --continue\". diff --git a/git-repack.sh b/git-repack.sh index f150a55..e85f0b6 100755 --- a/git-repack.sh +++ b/git-repack.sh @@ -5,7 +5,7 @@ USAGE='[-a] [-d] [-f] [-l] [-n] [-q] [--window=N] [--depth=N]' SUBDIRECTORY_OK='Yes' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh no_update_info= all_into_one= remove_redundant= local= quiet= no_reuse_delta= extra= diff --git a/git-request-pull.sh b/git-request-pull.sh index 4eacc3a..fd02d55 100755 --- a/git-request-pull.sh +++ b/git-request-pull.sh @@ -8,7 +8,7 @@ USAGE='<commit> <url> [<head>]' LONG_USAGE='Summarizes the changes since <commit> to the standard output, and includes <url> in the message generated.' SUBDIRECTORY_OK='Yes' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh revision=$1 url=$2 diff --git a/git-reset.sh b/git-reset.sh index 3133b5b..9e3dd5b 100755 --- a/git-reset.sh +++ b/git-reset.sh @@ -1,7 +1,7 @@ #!/bin/sh USAGE='[--mixed | --soft | --hard] [<commit-ish>]' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh update= reset_type=--mixed diff --git a/git-resolve.sh b/git-resolve.sh index 36b90e3..4c2d7da 100755 --- a/git-resolve.sh +++ b/git-resolve.sh @@ -10,7 +10,7 @@ echo 'WARNING: Please use git-merge or git-pull instead.' >&2 sleep 2 USAGE='<head> <remote> <merge-message>' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh dropheads() { rm -f -- "$GIT_DIR/MERGE_HEAD" \ diff --git a/git-revert.sh b/git-revert.sh index 6eab3c7..8a30297 100755 --- a/git-revert.sh +++ b/git-revert.sh @@ -18,7 +18,7 @@ case "$0" in * ) die "What are you talking about?" ;; esac -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh no_commit= while case "$#" in 0) break ;; esac diff --git a/git-tag.sh b/git-tag.sh index d53f94c..a7d6223 100755 --- a/git-tag.sh +++ b/git-tag.sh @@ -3,7 +3,7 @@ USAGE='-l [<pattern>] | [-a | -s | -u <key-id>] [-f | -d] [-m <msg>] <tagname> [<head>]' SUBDIRECTORY_OK='Yes' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh message_given= annotate= diff --git a/git-verify-tag.sh b/git-verify-tag.sh index 36f171b..d265150 100755 --- a/git-verify-tag.sh +++ b/git-verify-tag.sh @@ -2,7 +2,7 @@ USAGE='<tag>' SUBDIRECTORY_OK='Yes' -. git-sh-setup +. @@GIT_datadir@@/git-sh-setup.sh verbose= while case $# in 0) break;; esac -- 1.4.4.1.gc9922-dirty -- ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 12:34 ` Han-Wen Nienhuys @ 2006-12-06 12:56 ` Jakub Narebski 2006-12-06 14:16 ` Han-Wen Nienhuys 0 siblings, 1 reply; 17+ messages in thread From: Jakub Narebski @ 2006-12-06 12:56 UTC (permalink / raw) To: git Han-Wen Nienhuys wrote: > Subject: [PATCH] Install git-sh-setup.sh into $(prefix)/share/git-core. Call with explicit path. I like it... but could you check if you don't need to change config.mak.in accordingly for ./configure script to generate proper config.mak.autogen? -- Jakub Narebski Warsaw, Poland ShadeHawk on #git ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 12:56 ` Jakub Narebski @ 2006-12-06 14:16 ` Han-Wen Nienhuys 2006-12-06 14:51 ` Jakub Narebski 0 siblings, 1 reply; 17+ messages in thread From: Han-Wen Nienhuys @ 2006-12-06 14:16 UTC (permalink / raw) To: git Jakub Narebski escreveu: > Han-Wen Nienhuys wrote: > >> Subject: [PATCH] Install git-sh-setup.sh into $(prefix)/share/git-core. Call with explicit path. > > I like it... but could you check if you don't need to change > config.mak.in accordingly for ./configure script to generate proper > config.mak.autogen? I couldn't see anything, but while I was looking at it, I also added support for non-srcdir builds. Can someone with a perl clue look over the braindamaged messing-around with perl/perl.mak and figure out why perl insists make -C perl PERL_PATH='/usr/bin/perl' prefix='/tmp/test' perl.mak make[1]: Entering directory `/home/lilydev/vc/go2/perl' '/usr/bin/perl' -I/home/lilydev/vc/g2/perl /home/lilydev/vc/g2/perl/Makefile.PL FIRST_MAKEFILE='perl.mak' PREFIX='/tmp/test' Could not open 'Git.pm': No such file or directory at /usr/lib/perl5/5.8.8/ExtUtils/MM_Unix.pm line 2649. despite the -I option? From 7bbd698891d9102fa26ae53848c9812f6d1b665e Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys <hanwen@lilypond.org> Date: Wed, 6 Dec 2006 15:14:08 +0100 Subject: [PATCH] Allow non-srcdir builds using cd $builddir && $srcdir/configure Signed-off-by: Han-Wen Nienhuys <hanwen@xs4all.nl> --- Makefile | 19 +++++++++++-------- config.mak.in | 5 +---- configure.ac | 31 ++++++++++++++++++++++++++++++- generate-cmdlist.sh | 2 +- perl/Makefile | 2 +- 5 files changed, 44 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index cb9b745..d64a5bd 100644 --- a/Makefile +++ b/Makefile @@ -97,7 +97,7 @@ all: # GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE - @$(SHELL_PATH) ./GIT-VERSION-GEN + @$(SHELL_PATH) $(srcdir)/GIT-VERSION-GEN -include GIT-VERSION-FILE uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') @@ -120,7 +120,10 @@ datadir = $(prefix)/share GIT_datadir = $(datadir)/git-core gitexecdir = $(bindir) template_dir = $(GIT_datadir)/templates/ -# DESTDIR= +srcdir = . + +# this is usually set on the make command line. +DESTDIR= # default configuration for gitweb GITWEB_CONFIG = gitweb_config.perl @@ -598,8 +601,8 @@ git-merge-recur$X: git-merge-recursive$X $(BUILT_INS): git$X rm -f $@ && ln git$X $@ -common-cmds.h: Documentation/git-*.txt - ./generate-cmdlist.sh > $@+ +common-cmds.h: $(wildcard $(srcdir)/Documentation/git-*.txt) + $(srcdir)/generate-cmdlist.sh $(srcdir)/Documentation/ > $@+ mv $@+ $@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh @@ -609,7 +612,7 @@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ -e 's!@@GIT_datadir@@!$(GIT_datadir)!g' \ -e 's/@@NO_CURL@@/$(NO_CURL)/g' \ - $@.sh >$@+ + $^ >$@+ chmod +x $@+ mv $@+ $@ @@ -630,7 +633,7 @@ $(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl -e '}' \ -e 's|@@INSTLIBDIR@@|'"$$INSTLIBDIR"'|g' \ -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ - $@.perl >$@+ + $^ >$@+ chmod +x $@+ mv $@+ $@ @@ -674,7 +677,7 @@ git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/gitweb.css -e '/@@GITWEB_CGI@@/d' \ -e '/@@GITWEB_CSS@@/r gitweb/gitweb.css' \ -e '/@@GITWEB_CSS@@/d' \ - $@.sh > $@+ + $< > $@+ chmod +x $@+ mv $@+ $@ @@ -821,7 +824,7 @@ install: all fi $(foreach p,$(BUILT_INS), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;) $(INSTALL) -d -m755 '$(DESTDIR_SQ)$(GIT_datadir_SQ)' - $(INSTALL) -m755 git-sh-setup.sh '$(DESTDIR_SQ)$(GIT_datadir_SQ)' + $(INSTALL) -m755 $(srcdir)/git-sh-setup.sh '$(DESTDIR_SQ)$(GIT_datadir_SQ)' install-doc: $(MAKE) -C Documentation install diff --git a/config.mak.in b/config.mak.in index 9a57840..902a392 100644 --- a/config.mak.in +++ b/config.mak.in @@ -2,7 +2,7 @@ # @configure_input@ CC = @CC@ -CFLAGS = @CFLAGS@ +CFLAGS = @CFLAGS@ -I. AR = @AR@ TAR = @TAR@ #INSTALL = @INSTALL@ # needs install-sh or install.sh in sources @@ -10,9 +10,6 @@ TAR = @TAR@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ -#gitexecdir = @libexecdir@/git-core/ -datarootdir = @datarootdir@ -template_dir = @datadir@/git-core/templates/ mandir=@mandir@ diff --git a/configure.ac b/configure.ac index 34e3478..ccf9374 100644 --- a/configure.ac +++ b/configure.ac @@ -5,11 +5,13 @@ AC_PREREQ(2.59) AC_INIT([git], [@@GIT_VERSION@@], [git@vger.kernel.org]) AC_CONFIG_SRCDIR([git.c]) - +srcdir=`cd $srcdir && pwd` config_file=config.mak.autogen config_append=config.mak.append config_in=config.mak.in + + echo "# ${config_append}. Generated by configure." > "${config_append}" @@ -330,10 +332,37 @@ GIT_PARSE_WITH(iconv)) # change being considered an inode change from the update-cache perspective. + + + ## Output files AC_CONFIG_FILES(["${config_file}":"${config_in}":"${config_append}"]) AC_OUTPUT + +## 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 ## Cleanup rm -f "${config_append}" diff --git a/generate-cmdlist.sh b/generate-cmdlist.sh index 5450918..e744fbb 100755 --- a/generate-cmdlist.sh +++ b/generate-cmdlist.sh @@ -47,6 +47,6 @@ do x s/.*git-'"$cmd"' - \(.*\)/ {"'"$cmd"'", "\1"},/ p - }' "Documentation/git-$cmd.txt" + }' "$1/git-$cmd.txt" done echo "};" diff --git a/perl/Makefile b/perl/Makefile index bd483b0..5706095 100644 --- a/perl/Makefile +++ b/perl/Makefile @@ -29,7 +29,7 @@ $(makfile): ../GIT-CFLAGS Makefile echo ' echo $(instdir_SQ)' >> $@ else $(makfile): Makefile.PL ../GIT-CFLAGS - '$(PERL_PATH_SQ)' $< FIRST_MAKEFILE='$@' PREFIX='$(prefix_SQ)' + '$(PERL_PATH_SQ)' -I$(srcdir)/perl $< FIRST_MAKEFILE='$@' PREFIX='$(prefix_SQ)' endif # this is just added comfort for calling make directly in perl dir -- 1.4.4.1.gc9922-dirty -- Han-Wen Nienhuys - hanwen@xs4all.nl - http://www.xs4all.nl/~hanwen ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 14:16 ` Han-Wen Nienhuys @ 2006-12-06 14:51 ` Jakub Narebski 2006-12-06 15:03 ` Han-Wen Nienhuys 0 siblings, 1 reply; 17+ messages in thread From: Jakub Narebski @ 2006-12-06 14:51 UTC (permalink / raw) To: Han-Wen Nienhuys; +Cc: git Han-Wen Nienhuys wrote:: > Jakub Narebski escreveu: >> Han-Wen Nienhuys wrote: >> >>> Subject: [PATCH] Install git-sh-setup.sh into $(prefix)/share/git-core. Call with explicit path. >> >> I like it... but could you check if you don't need to change >> config.mak.in accordingly for ./configure script to generate proper >> config.mak.autogen? > > I couldn't see anything, but while I was looking at it, I also added > support for non-srcdir builds. [...] > From 7bbd698891d9102fa26ae53848c9812f6d1b665e Mon Sep 17 00:00:00 2001 > From: Han-Wen Nienhuys <hanwen@lilypond.org> > Date: Wed, 6 Dec 2006 15:14:08 +0100 > Subject: [PATCH] Allow non-srcdir builds using cd $builddir && $srcdir/configure Please add some longer commit message. > Signed-off-by: Han-Wen Nienhuys <hanwen@xs4all.nl> > --- > Makefile | 19 +++++++++++-------- > config.mak.in | 5 +---- > configure.ac | 31 ++++++++++++++++++++++++++++++- > generate-cmdlist.sh | 2 +- > perl/Makefile | 2 +- > 5 files changed, 44 insertions(+), 15 deletions(-) [...] > diff --git a/config.mak.in b/config.mak.in > index 9a57840..902a392 100644 > --- a/config.mak.in > +++ b/config.mak.in [...] > @@ -10,9 +10,6 @@ TAR = @TAR@ > prefix = @prefix@ > 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/ in config.mak.in I have been told that setting 'datarootdir' is required to avoid warnings with new versions of autoconf. > diff --git a/configure.ac b/configure.ac > index 34e3478..ccf9374 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -5,11 +5,13 @@ AC_PREREQ(2.59) > AC_INIT([git], [@@GIT_VERSION@@], [git@vger.kernel.org]) > > AC_CONFIG_SRCDIR([git.c]) > - > +srcdir=`cd $srcdir && pwd` > config_file=config.mak.autogen > config_append=config.mak.append AC_CONFIG_SRCDIR should set 'srcdir' correctly. > @@ -330,10 +332,37 @@ GIT_PARSE_WITH(iconv)) [...] > +## 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. 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? This part IMHO has no sense, and has no place here. -- Jakub Narebski ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 14:51 ` Jakub Narebski @ 2006-12-06 15:03 ` Han-Wen Nienhuys 2006-12-06 15:27 ` Jakub Narebski 0 siblings, 1 reply; 17+ messages in thread From: Han-Wen Nienhuys @ 2006-12-06 15:03 UTC (permalink / raw) To: Jakub Narebski; +Cc: git 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. -- ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 15:03 ` Han-Wen Nienhuys @ 2006-12-06 15:27 ` Jakub Narebski 2006-12-06 15:36 ` Han-Wen Nienhuys 0 siblings, 1 reply; 17+ messages in thread From: Jakub Narebski @ 2006-12-06 15:27 UTC (permalink / raw) To: Han-Wen Nienhuys; +Cc: git Han-Wen Nienhuys wrote: > Jakub Narebski escreveu: > >> Please add some longer commit message. > > do you have any specifics you would like me to mention? More detailed description what "Allow non-srcdir builds using cd $builddir && $srcdir/configure" mean and why we might want to do that. For example: We might want to build git from outside source directory. For this we need... By the way, I think this patch is about _two_ changes. Allow to build outside source directory, by providing srcdir AND separate change to allow builds of separate parts of git, with separate Makefile, to include user-generated configuration file config.mak and ./configure generated config.mak.autogen configuration file. Shouldn't this patch be split into two? >>> 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. Good call. Well, at least now, when ./configure script doesn't provide means to change template_dir etc. from command line, via options. Still I think that at least datarootdir = @datarootdir@ should be not removed. > 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. The stance on autoconf is that it has to be _optional_ part of compilation. And I think it does good job of this. >>> +## 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. Git is not autotool'ed package. Autoconf is used only for _optional_ compile and installation configuration. >> 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. If you want to create or modify Makefiles, do that. Not generate "minimal" Makefiles in every and each subdirectory. You would be able to compile git fully only from top directory. So what? -- Jakub Narebski ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 15:27 ` Jakub Narebski @ 2006-12-06 15:36 ` Han-Wen Nienhuys 2006-12-06 15:56 ` Jakub Narebski 0 siblings, 1 reply; 17+ messages in thread From: Han-Wen Nienhuys @ 2006-12-06 15:36 UTC (permalink / raw) To: git Jakub Narebski escreveu: > Still I think that at least > > datarootdir = @datarootdir@ > > should be not removed. yes, agreed. >>>> + if test -f $srcdir/$d/Makefile ; then [..] >>>> + echo creating $d/Makefile >>>> + cat << EOF> $d/Makefile >>> This part IMHO has no sense, and has no place here. > > If you want to create or modify Makefiles, do that. Not generate > "minimal" Makefiles in every and each subdirectory. Look more closely at the patch. It only generates Makefiles in directories that have makefiles in the source dir. The makefiles are short because that is the easiest to do. I'm happy to amend the patch, bUt I can't properly test it until the perl problem gets sorted out. -- Han-Wen Nienhuys - hanwen@xs4all.nl - http://www.xs4all.nl/~hanwen ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 15:36 ` Han-Wen Nienhuys @ 2006-12-06 15:56 ` Jakub Narebski 2006-12-06 16:03 ` Han-Wen Nienhuys 0 siblings, 1 reply; 17+ messages in thread From: Jakub Narebski @ 2006-12-06 15:56 UTC (permalink / raw) To: Han-Wen Nienhuys; +Cc: git Dnia środa 6. grudnia 2006 16:36, Han-Wen Nienhuys napisał: > Jakub Narebski escreveu: [...] >>>>> + if test -f $srcdir/$d/Makefile ; then > [..] >>>>> + echo creating $d/Makefile >>>>> + cat << EOF> $d/Makefile > >>>> This part IMHO has no sense, and has no place here. >> >> If you want to create or modify Makefiles, do that. Not generate >> "minimal" Makefiles in every and each subdirectory. > > Look more closely at the patch. It only generates Makefiles in > directories that have makefiles in the source dir. The makefiles are > short because that is the easiest to do. The fact that I didn't understood what this part of patch is meant to do should be the big hint that this commit needs some longer commit message explaining purpose of such mess. I still don't understand what this part do (and how come it is in configure.ac which should be _only_ about generating config.mak.autogen Makefile configuration file and _not_ about generating Makefiles). You want what sequence of commands to work? $ $srcdir/configure --srcdir=$srcdir $ make -D $srcdir $ make -D $srcdir DESTDIR=$DESTDIR install or what? Why this part is needed? Once again: git is NOT autotool'ed project. And shouldn't be. > I'm happy to amend the patch, but I can't properly test > it until the perl problem gets sorted out. I'll be waiting. -- Jakub Narebski ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 15:56 ` Jakub Narebski @ 2006-12-06 16:03 ` Han-Wen Nienhuys 2006-12-06 16:27 ` Jakub Narebski 2006-12-07 13:36 ` Andreas Ericsson 0 siblings, 2 replies; 17+ messages in thread From: Han-Wen Nienhuys @ 2006-12-06 16:03 UTC (permalink / raw) To: Jakub Narebski; +Cc: git Jakub Narebski escreveu: > The fact that I didn't understood what this part of patch is meant > to do should be the big hint that this commit needs some longer commit > message explaining purpose of such mess. > > I still don't understand what this part do (and how come it is > in configure.ac which should be _only_ about generating > config.mak.autogen Makefile configuration file and _not_ about > generating Makefiles). You want what sequence of commands to work? > > $ $srcdir/configure --srcdir=$srcdir > $ make -D $srcdir > $ make -D $srcdir DESTDIR=$DESTDIR install make -D doesn't exist. This is about mkdir git-build cd git-build $my_git_source/configure make this _was_ actually documented in that one-line commit message, that you found to be too short. Since git does recursive makes, among others in perl/ Documentation/ templates/ contrib/ there should be Makefiles in said directories. Otherwise, every rule in the toplevel Makefile saying $(MAKE) -C subdir/ will fail because $builddir/ does not have a Makefile in $builddir/subdir. The part you don't understand is a generic way of duplicating the Makefiles from the git sources, while making sure that they work when $srcdir != $builddir Yes, if builddir != srcdir , then configure is about more than generating config.mak.autogen -- ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 16:03 ` Han-Wen Nienhuys @ 2006-12-06 16:27 ` Jakub Narebski 2006-12-06 16:40 ` Han-Wen Nienhuys 2006-12-07 13:36 ` Andreas Ericsson 1 sibling, 1 reply; 17+ messages in thread From: Jakub Narebski @ 2006-12-06 16:27 UTC (permalink / raw) To: Han-Wen Nienhuys; +Cc: git Dnia środa 6. grudnia 2006 17:03, Han-Wen Nienhuys napisał: > Jakub Narebski escreveu: > >> The fact that I didn't understood what this part of patch is meant >> to do should be the big hint that this commit needs some longer commit >> message explaining purpose of such mess. >> >> I still don't understand what this part do (and how come it is >> in configure.ac which should be _only_ about generating >> config.mak.autogen Makefile configuration file and _not_ about >> generating Makefiles). You want what sequence of commands to work? >> >> $ $srcdir/configure --srcdir=$srcdir >> $ make -D $srcdir >> $ make -D $srcdir DESTDIR=$DESTDIR install > > make -D doesn't exist. Oops. I meant make -C, not make -D. > This is about > > mkdir git-build > cd git-build > $my_git_source/configure > make > > this _was_ actually documented in that one-line commit message, that > you found to be too short. Because it was so short (one line) while being long for one line. Why don't you write above in commit message? > Since git does recursive makes, among others in > > perl/ > Documentation/ > templates/ > contrib/ > > there should be Makefiles in said directories. Otherwise, every rule > in the toplevel Makefile saying > > > $(MAKE) -C subdir/ > > will fail because $builddir/ does not have a Makefile in > $builddir/subdir. Wouldn't it be better just to modify toplevel Makefile to say: $(MAKE) -C $(srcdir)/subdir/ without messing with ./configure script, and creating "redirect" Makefiles? > The part you don't understand is a generic way of duplicating the > Makefiles from the git sources, while making sure that they work when > $srcdir != $builddir > > > Yes, if builddir != srcdir , then configure is about more than > generating config.mak.autogen Once again: git is not autotool'ed project. Everything you want to do should work regardless if you would run ./configure, or if you would hand-craft config.mak file. -- Jakub Narebski ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 16:27 ` Jakub Narebski @ 2006-12-06 16:40 ` Han-Wen Nienhuys 2006-12-06 16:52 ` Jakub Narebski 0 siblings, 1 reply; 17+ messages in thread From: Han-Wen Nienhuys @ 2006-12-06 16:40 UTC (permalink / raw) To: git; +Cc: git Jakub Narebski escreveu: >> there should be Makefiles in said directories. Otherwise, every rule >> in the toplevel Makefile saying >> >> >> $(MAKE) -C subdir/ >> >> will fail because $builddir/ does not have a Makefile in >> $builddir/subdir. > > Wouldn't it be better just to modify toplevel Makefile to say: > > $(MAKE) -C $(srcdir)/subdir/ > > without messing with ./configure script, and creating "redirect" > Makefiles? > that doesn't work. make -C foo bla just does (cd foo && make bla) If you did this, part of the object files would end up in the source dir; The idea of separate srcdir builds,is to keep the srcdir completely clean of generated files. That can't really be done without aid of a script, to setup the builddir. In this case that is the configure script. I did forget to add a check if "$srcdir" != "." ; then .. fi around the messy stuff. -- Han-Wen Nienhuys - hanwen@xs4all.nl - http://www.xs4all.nl/~hanwen ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 16:40 ` Han-Wen Nienhuys @ 2006-12-06 16:52 ` Jakub Narebski 2006-12-06 16:56 ` Han-Wen Nienhuys 0 siblings, 1 reply; 17+ messages in thread From: Jakub Narebski @ 2006-12-06 16:52 UTC (permalink / raw) To: Han-Wen Nienhuys; +Cc: git Han-Wen Nienhuys wrote: > Jakub Narebski escreveu: >>> there should be Makefiles in said directories. Otherwise, every rule >>> in the toplevel Makefile saying >>> >>> >>> $(MAKE) -C subdir/ >>> >>> will fail because $builddir/ does not have a Makefile in >>> $builddir/subdir. >> >> Wouldn't it be better just to modify toplevel Makefile to say: >> >> $(MAKE) -C $(srcdir)/subdir/ >> >> without messing with ./configure script, and creating "redirect" >> Makefiles? >> > > that doesn't work. > > make -C foo bla > > just does > > (cd foo && make bla) > > If you did this, part of the object files would end up in the source dir; > The idea of separate srcdir builds,is to keep the srcdir completely clean > of generated files. That can't really be done without aid of a script, > to setup the builddir. In this case that is the configure script. Thanks for an explanation. At least some of it should be in commit message, to explain what you want the patch to do. I don't know autotools enough to check if autotools (autoconf) doesn't have it's own way to do this, some autoconf macro, to not need to write this script creating redirect Makefiles. I'm still not sure if this has place in git. Is it really common to support building outside source directory? If git didn't support this, so what? -- Jakub Narebski ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 16:52 ` Jakub Narebski @ 2006-12-06 16:56 ` Han-Wen Nienhuys 2006-12-06 17:11 ` Jakub Narebski 0 siblings, 1 reply; 17+ messages in thread From: Han-Wen Nienhuys @ 2006-12-06 16:56 UTC (permalink / raw) To: Jakub Narebski; +Cc: git Jakub Narebski escreveu: > I'm still not sure if this has place in git. Is it really common to > support building outside source directory? If git didn't support this, > so what? lots of serious tools support it, as it this comes automatically when using automake. Eg. emacs, gcc, make, pango, lilypond, etc etc. It's a quite standard feature ; you should be asking why git shouldn't support it. Another option is to make a special solution based on makefiles, so make is run inside the srcdir, but output shunted output to a separate objects/ subdirectory. However, it's more work, and less standardized. -- ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 16:56 ` Han-Wen Nienhuys @ 2006-12-06 17:11 ` Jakub Narebski 0 siblings, 0 replies; 17+ messages in thread From: Jakub Narebski @ 2006-12-06 17:11 UTC (permalink / raw) To: Han-Wen Nienhuys; +Cc: git Dnia środa 6. grudnia 2006 17:56, Han-Wen Nienhuys napisał: > Jakub Narebski escreveu: > >> I'm still not sure if this has place in git. Is it really common to >> support building outside source directory? If git didn't support this, >> so what? > > lots of serious tools support it, as it this comes automatically > when using automake. Eg. emacs, gcc, make, pango, lilypond, etc etc. > > It's a quite standard feature ; you should be asking why git > shouldn't support it. Because git is not autotool'ed project. And people protested vehemently against adding yet another dependency. So from the whole autotools suite only autoconf is used, and only to generate config.mak.autogen Makefile configuration, which otherwise would be needed to be generated by hand. BTW git tries to guess configuration based on uname -a result. There was also for a little while hand-generated configure script, but it got abandoned when it appeared that it is hard to be portable (and autoconf did the work; perhaps too hard but did, not using features which weren't common but now are in standard, but did), and the fact that it was possible to have _optional_ autoconf support. Add to that the fact that people said that ./configure on Cygwin is slow (can be slow), so they prefer _not_ to run this. Besides, the fact that some tools suport some feature is not the reason to add it. You have to look at how often is this feature _used_. For example you don't need it (you need only DESTDIR support) for creating RPMS from sources. -- Jakub Narebski ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug: git-sh-setup should not be in $PATH 2006-12-06 16:03 ` Han-Wen Nienhuys 2006-12-06 16:27 ` Jakub Narebski @ 2006-12-07 13:36 ` Andreas Ericsson 1 sibling, 0 replies; 17+ messages in thread From: Andreas Ericsson @ 2006-12-07 13:36 UTC (permalink / raw) To: hanwen; +Cc: Jakub Narebski, git Han-Wen Nienhuys wrote: > Since git does recursive makes, among others in > > perl/ > Documentation/ > templates/ > contrib/ > > there should be Makefiles in said directories. Otherwise, every rule > in the toplevel Makefile saying > > > $(MAKE) -C subdir/ > > will fail because $builddir/ does not have a Makefile in > $builddir/subdir. > This part should have been in the commit message, possibly without the "among others ... (examples)" and possibly with an added "This patch makes it so by letting fnurg create them through smurfing the frotz". -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2006-12-07 13:36 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-12-06 12:14 bug: git-sh-setup should not be in $PATH Han-Wen Nienhuys 2006-12-06 12:23 ` Johannes Schindelin 2006-12-06 12:34 ` Han-Wen Nienhuys 2006-12-06 12:56 ` Jakub Narebski 2006-12-06 14:16 ` Han-Wen Nienhuys 2006-12-06 14:51 ` Jakub Narebski 2006-12-06 15:03 ` Han-Wen Nienhuys 2006-12-06 15:27 ` Jakub Narebski 2006-12-06 15:36 ` Han-Wen Nienhuys 2006-12-06 15:56 ` Jakub Narebski 2006-12-06 16:03 ` Han-Wen Nienhuys 2006-12-06 16:27 ` Jakub Narebski 2006-12-06 16:40 ` Han-Wen Nienhuys 2006-12-06 16:52 ` Jakub Narebski 2006-12-06 16:56 ` Han-Wen Nienhuys 2006-12-06 17:11 ` Jakub Narebski 2006-12-07 13:36 ` Andreas Ericsson
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).