提交 bc6146d2 编写于 作者: J Junio C Hamano

'build' scripts before installing.

Earlier we renamed git-foo.sh to git-foo while installing, which
was mostly done by inertia than anything else.  This however
made writing tests to use scripts harder.

This patch builds the scripts the same way as we build binaries
from their sources.  As a side effect, you can now specify
non-standard paths you have your Perl binary is in when running
the make.
Signed-off-by: NJunio C Hamano <junkio@cox.net>
上级 2f0f8b71
......@@ -142,6 +142,13 @@ ifeq ($(shell uname -s),SunOS)
PLATFORM_DEFINES += -DNO_GETDOMAINNAME=1
endif
ifndef SHELL_PATH
SHELL_PATH = /bin/sh
endif
ifndef PERL_PATH
PERL_PATH = /usr/bin/perl
endif
ifndef NO_OPENSSL
LIB_OBJS += epoch.o
OPENSSL_LIBSSL = -lssl
......@@ -179,21 +186,32 @@ endif
DEFINES += '-DSHA1_HEADER=$(SHA1_HEADER)'
SCRIPTS = $(SCRIPT_SH) $(SCRIPT_PERL) gitk
SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \
$(patsubst %.perl,%,$(SCRIPT_PERL)) gitk
### Build rules
all: $(PROGRAMS) git.sh
all: $(PROGRAMS) $(SCRIPTS)
all:
$(MAKE) -C templates
git.sh: git.sh.in Makefile
git: git.sh Makefile
rm -f $@+ $@
sed -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' <$@.in >$@+
sed -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' <$@.sh >$@+
chmod +x $@+
mv $@+ $@
$(filter-out git,$(patsubst %.sh,%,$(SCRIPT_SH))) : % : %.sh
rm -f $@
sed -e '1s|#!.*/sh|#!$(SHELL_PATH)|' $@.sh >$@
chmod +x $@
$(patsubst %.perl,%,$(SCRIPT_PERL)) : % : %.perl
rm -f $@
sed -e '1s|#!.*perl|#!$(PERL_PATH)|' $@.perl >$@
chmod +x $@
%.o: %.c
$(CC) -o $*.o -c $(ALL_CFLAGS) $<
%.o: %.S
......@@ -250,19 +268,8 @@ check:
install: $(PROGRAMS) $(SCRIPTS)
$(INSTALL) -m755 -d $(DESTDIR)$(bindir)
$(INSTALL) $(PROGRAMS) $(DESTDIR)$(bindir)
@for s in $(SCRIPTS); \
do \
case "$$s" in \
*.*) \
e=`expr "$$s" : '\(.*\)\.[^.]*$$'` ;; \
*) \
e="$$s" ;; \
esac && \
echo ": install $$s $(DESTDIR)$(bindir)/$$e" && \
$(INSTALL) $$s $(DESTDIR)$(bindir)/$$e || exit; \
done
$(INSTALL) git-revert.sh $(DESTDIR)$(bindir)/git-cherry-pick
$(INSTALL) $(PROGRAMS) $(SCRIPTS) $(DESTDIR)$(bindir)
$(INSTALL) git-revert $(DESTDIR)$(bindir)/git-cherry-pick
sh ./cmd-rename.sh $(DESTDIR)$(bindir)
$(MAKE) -C templates install
......@@ -299,7 +306,8 @@ deb: dist
clean:
rm -f *.o mozilla-sha1/*.o ppc/*.o $(PROGRAMS) $(LIB_FILE)
rm -f git-core.spec git.sh
rm -f $(filter-out gitk,$(SCRIPTS))
rm -f git-core.spec
rm -rf $(GIT_TARNAME)
rm -f $(GIT_TARNAME).tar.gz git-core_$(GIT_VERSION)-*.tar.gz
rm -f git-core_$(GIT_VERSION)-*.deb git-core_$(GIT_VERSION)-*.dsc
......
......@@ -25,7 +25,7 @@ In the test, these paths are used:
read_tree_twoway () {
git-read-tree --emu23 "$1" "$2" &&
git-ls-files --stage &&
git-merge-index ../../git-merge-one-file.sh -a &&
git-merge-index git-merge-one-file -a &&
git-ls-files --stage
}
......
......@@ -13,12 +13,12 @@ handled. Specifically, that a bogus branch is not created.
test_expect_success \
'prepare an trivial repository' \
'echo Hello > A &&
../../git-update-index --add A &&
../../git-commit.sh -m "Initial commit."'
git-update-index --add A &&
git-commit -m "Initial commit."'
test_expect_failure \
'git branch --help should return error code' \
'../../git-branch.sh --help'
'git-branch --help'
test_expect_failure \
'git branch --help should not have created a bogus branch' \
......
......@@ -21,9 +21,9 @@ test_expect_success setup '
parent=$commit || return 1
done &&
echo "$commit" >.git/HEAD &&
git-clone.sh -l ./. victim &&
git-clone -l ./. victim &&
cd victim &&
git-log.sh &&
git-log &&
cd .. &&
echo $zero >.git/HEAD &&
parent=$zero &&
......@@ -35,7 +35,7 @@ test_expect_success setup '
done &&
echo "$commit" >.git/HEAD &&
echo Rebase &&
git-log.sh'
git-log'
test_expect_success \
'pushing rewound head should not barf but require --force' '
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册