@ -431,6 +431,15 @@ ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS)
# what 'all' will build but not install in gitexecdir
# what 'all' will build but not install in gitexecdir
OTHER_PROGRAMS = git$X
OTHER_PROGRAMS = git$X
# what test wrappers are needed and 'install' will install, in bindir
BINDIR_PROGRAMS_NEED_X += git
BINDIR_PROGRAMS_NEED_X += git-upload-pack
BINDIR_PROGRAMS_NEED_X += git-receive-pack
BINDIR_PROGRAMS_NEED_X += git-upload-archive
BINDIR_PROGRAMS_NEED_X += git-shell
BINDIR_PROGRAMS_NO_X += git-cvsserver
# Set paths to tools early so that they can be used for version tests.
# Set paths to tools early so that they can be used for version tests.
ifndef SHELL_PATH
ifndef SHELL_PATH
SHELL_PATH = /bin/sh
SHELL_PATH = /bin/sh
@ -1762,19 +1771,30 @@ endif
### Testing rules
### Testing rules
TEST_PROGRAMS += test-chmtime$X
TEST_PROGRAMS_NEED_X += test-chmtime
TEST_PROGRAMS += test-ctype$X
TEST_PROGRAMS_NEED_X += test-ctype
TEST_PROGRAMS += test-date$X
TEST_PROGRAMS_NEED_X += test-date
TEST_PROGRAMS += test-delta$X
TEST_PROGRAMS_NEED_X += test-delta
TEST_PROGRAMS += test-dump-cache-tree$X
TEST_PROGRAMS_NEED_X += test-dump-cache-tree
TEST_PROGRAMS += test-genrandom$X
TEST_PROGRAMS_NEED_X += test-genrandom
TEST_PROGRAMS += test-match-trees$X
TEST_PROGRAMS_NEED_X += test-match-trees
TEST_PROGRAMS += test-parse-options$X
TEST_PROGRAMS_NEED_X += test-parse-options
TEST_PROGRAMS += test-path-utils$X
TEST_PROGRAMS_NEED_X += test-path-utils
TEST_PROGRAMS += test-sha1$X
TEST_PROGRAMS_NEED_X += test-sha1
TEST_PROGRAMS += test-sigchain$X
TEST_PROGRAMS_NEED_X += test-sigchain
TEST_PROGRAMS = $(patsubst %,%$X,$(TEST_PROGRAMS_NEED_X))
all:: $(TEST_PROGRAMS)
test_bindir_programs := $(patsubst %,bin-wrappers/%,$(BINDIR_PROGRAMS_NEED_X) $(BINDIR_PROGRAMS_NO_X) $(TEST_PROGRAMS_NEED_X))
all:: $(TEST_PROGRAMS) $(test_bindir_programs)
bin-wrappers/%: wrap-for-bin.sh
@mkdir -p bin-wrappers
$(QUIET_GEN)sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
-e 's|@@BUILD_DIR@@|$(shell pwd)|' \
-e 's|@@PROG@@|$(@F)|' < $< > $@ && \
chmod +x $@
# GNU make supports exporting all variables by "export" without parameters.
# GNU make supports exporting all variables by "export" without parameters.
# However, the environment gets quite big, and some programs have problems
# However, the environment gets quite big, and some programs have problems
@ -1835,11 +1855,13 @@ endif
gitexec_instdir_SQ = $(subst ','\'',$(gitexec_instdir))
gitexec_instdir_SQ = $(subst ','\'',$(gitexec_instdir))
export gitexec_instdir
export gitexec_instdir
install_bindir_programs := $(patsubst %,%$X,$(BINDIR_PROGRAMS_NEED_X)) $(BINDIR_PROGRAMS_NO_X)
install: all
install: all
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
$(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
$(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
$(INSTALL) git$X git-upload-pack$X git-receive-pack$X git-upload-archive$X git-shell$X git-cvsserver '$(DESTDIR_SQ)$(bindir_SQ)'
$(INSTALL) $(install_bindir_programs) '$(DESTDIR_SQ)$(bindir_SQ)'
$(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install
$(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install
ifndef NO_PERL
ifndef NO_PERL
$(MAKE) -C perl prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' install
$(MAKE) -C perl prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' install
@ -1953,6 +1975,7 @@ clean:
$(LIB_FILE) $(XDIFF_LIB)
$(LIB_FILE) $(XDIFF_LIB)
$(RM) $(ALL_PROGRAMS) $(BUILT_INS) git$X
$(RM) $(ALL_PROGRAMS) $(BUILT_INS) git$X
$(RM) $(TEST_PROGRAMS)
$(RM) $(TEST_PROGRAMS)
$(RM) -r bin-wrappers
$(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h TAGS tags cscope*
$(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h TAGS tags cscope*
$(RM) -r autom4te.cache
$(RM) -r autom4te.cache
$(RM) config.log config.mak.autogen config.mak.append config.status config.cache
$(RM) config.log config.mak.autogen config.mak.append config.status config.cache