'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: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
2f0f8b71ee
commit
bc6146d2ab
44
Makefile
44
Makefile
@ -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' '
|
||||
|
Loading…
Reference in New Issue
Block a user