|
|
|
@ -136,7 +136,7 @@ SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \
@@ -136,7 +136,7 @@ SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \
|
|
|
|
|
|
|
|
|
|
# The ones that do not have to link with lcrypto nor lz. |
|
|
|
|
SIMPLE_PROGRAMS = \ |
|
|
|
|
git-get-tar-commit-id$X git-mailinfo$X git-mailsplit$X \ |
|
|
|
|
git-get-tar-commit-id$X git-mailsplit$X \ |
|
|
|
|
git-stripspace$X git-daemon$X |
|
|
|
|
|
|
|
|
|
# ... and all the rest that could be moved out of bindir to gitexecdir |
|
|
|
@ -146,8 +146,8 @@ PROGRAMS = \
@@ -146,8 +146,8 @@ PROGRAMS = \
|
|
|
|
|
git-convert-objects$X git-diff-files$X \ |
|
|
|
|
git-diff-index$X git-diff-stages$X \ |
|
|
|
|
git-diff-tree$X git-fetch-pack$X git-fsck-objects$X \ |
|
|
|
|
git-hash-object$X git-index-pack$X git-init-db$X \ |
|
|
|
|
git-local-fetch$X git-ls-files$X git-ls-tree$X git-merge-base$X \ |
|
|
|
|
git-hash-object$X git-index-pack$X git-init-db$X git-local-fetch$X \ |
|
|
|
|
git-ls-files$X git-ls-tree$X git-mailinfo$X git-merge-base$X \ |
|
|
|
|
git-merge-index$X git-mktag$X git-pack-objects$X git-patch-id$X \ |
|
|
|
|
git-peek-remote$X git-prune-packed$X git-read-tree$X \ |
|
|
|
|
git-receive-pack$X git-rev-list$X git-rev-parse$X \ |
|
|
|
@ -204,12 +204,6 @@ LIB_OBJS = \
@@ -204,12 +204,6 @@ LIB_OBJS = \
|
|
|
|
|
LIBS = $(LIB_FILE) |
|
|
|
|
LIBS += -lz |
|
|
|
|
|
|
|
|
|
# Shell quote; |
|
|
|
|
# Result of this needs to be placed inside '' |
|
|
|
|
shq = $(subst ','\'',$(1)) |
|
|
|
|
# This has surrounding '' |
|
|
|
|
shellquote = '$(call shq,$(1))' |
|
|
|
|
|
|
|
|
|
# |
|
|
|
|
# Platform specific tweaks |
|
|
|
|
# |
|
|
|
@ -297,8 +291,10 @@ endif
@@ -297,8 +291,10 @@ endif
|
|
|
|
|
ifdef WITH_OWN_SUBPROCESS_PY |
|
|
|
|
PYMODULES += compat/subprocess.py |
|
|
|
|
else |
|
|
|
|
ifneq ($(shell $(PYTHON_PATH) -c 'import subprocess;print"OK"' 2>/dev/null),OK) |
|
|
|
|
PYMODULES += compat/subprocess.py |
|
|
|
|
ifeq ($(NO_PYTHON),) |
|
|
|
|
ifneq ($(shell $(PYTHON_PATH) -c 'import subprocess;print"OK"' 2>/dev/null),OK) |
|
|
|
|
PYMODULES += compat/subprocess.py |
|
|
|
|
endif |
|
|
|
|
endif |
|
|
|
|
endif |
|
|
|
|
|
|
|
|
@ -422,7 +418,21 @@ ifdef NO_ACCURATE_DIFF
@@ -422,7 +418,21 @@ ifdef NO_ACCURATE_DIFF
|
|
|
|
|
ALL_CFLAGS += -DNO_ACCURATE_DIFF |
|
|
|
|
endif |
|
|
|
|
|
|
|
|
|
ALL_CFLAGS += -DSHA1_HEADER=$(call shellquote,$(SHA1_HEADER)) $(COMPAT_CFLAGS) |
|
|
|
|
# Shell quote (do not use $(call) to accomodate ancient setups); |
|
|
|
|
|
|
|
|
|
SHA1_HEADER_SQ = $(subst ','\'',$(SHA1_HEADER)) |
|
|
|
|
|
|
|
|
|
DESTDIR_SQ = $(subst ','\'',$(DESTDIR)) |
|
|
|
|
bindir_SQ = $(subst ','\'',$(bindir)) |
|
|
|
|
gitexecdir_SQ = $(subst ','\'',$(gitexecdir)) |
|
|
|
|
template_dir_SQ = $(subst ','\'',$(template_dir)) |
|
|
|
|
|
|
|
|
|
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) |
|
|
|
|
PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH)) |
|
|
|
|
PYTHON_PATH_SQ = $(subst ','\'',$(PYTHON_PATH)) |
|
|
|
|
GIT_PYTHON_DIR_SQ = $(subst ','\'',$(GIT_PYTHON_DIR)) |
|
|
|
|
|
|
|
|
|
ALL_CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER_SQ)' $(COMPAT_CFLAGS) |
|
|
|
|
LIB_OBJS += $(COMPAT_OBJS) |
|
|
|
|
export prefix TAR INSTALL DESTDIR SHELL_PATH template_dir |
|
|
|
|
### Build rules |
|
|
|
@ -441,7 +451,7 @@ git$X: git.c $(LIB_FILE)
@@ -441,7 +451,7 @@ git$X: git.c $(LIB_FILE)
|
|
|
|
|
|
|
|
|
|
$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh |
|
|
|
|
rm -f $@ |
|
|
|
|
sed -e '1s|#!.*/sh|#!$(call shq,$(SHELL_PATH))|' \ |
|
|
|
|
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ |
|
|
|
|
-e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ |
|
|
|
|
-e 's/@@NO_CURL@@/$(NO_CURL)/g' \ |
|
|
|
|
-e 's/@@NO_PYTHON@@/$(NO_PYTHON)/g' \ |
|
|
|
@ -450,15 +460,15 @@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
@@ -450,15 +460,15 @@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
|
|
|
|
|
|
|
|
|
|
$(patsubst %.perl,%,$(SCRIPT_PERL)) : % : %.perl |
|
|
|
|
rm -f $@ |
|
|
|
|
sed -e '1s|#!.*perl|#!$(call shq,$(PERL_PATH))|' \ |
|
|
|
|
sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|' \ |
|
|
|
|
-e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ |
|
|
|
|
$@.perl >$@ |
|
|
|
|
chmod +x $@ |
|
|
|
|
|
|
|
|
|
$(patsubst %.py,%,$(SCRIPT_PYTHON)) : % : %.py |
|
|
|
|
rm -f $@ |
|
|
|
|
sed -e '1s|#!.*python|#!$(call shq,$(PYTHON_PATH))|' \ |
|
|
|
|
-e 's|@@GIT_PYTHON_PATH@@|$(call shq,$(GIT_PYTHON_DIR))|g' \ |
|
|
|
|
sed -e '1s|#!.*python|#!$(PYTHON_PATH_SQ)|' \ |
|
|
|
|
-e 's|@@GIT_PYTHON_PATH@@|$(GIT_PYTHON_DIR_SQ)|g' \ |
|
|
|
|
-e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ |
|
|
|
|
$@.py >$@ |
|
|
|
|
chmod +x $@ |
|
|
|
@ -484,32 +494,42 @@ git$X git.spec \
@@ -484,32 +494,42 @@ git$X git.spec \
|
|
|
|
|
%.o: %.S |
|
|
|
|
$(CC) -o $*.o -c $(ALL_CFLAGS) $< |
|
|
|
|
|
|
|
|
|
exec_cmd.o: ALL_CFLAGS += -DGIT_EXEC_PATH=\"$(gitexecdir)\" |
|
|
|
|
exec_cmd.o: exec_cmd.c |
|
|
|
|
$(CC) -o $*.o -c $(ALL_CFLAGS) '-DGIT_EXEC_PATH="$(gitexecdir_SQ)"' $< |
|
|
|
|
|
|
|
|
|
git-%$X: %.o $(LIB_FILE) |
|
|
|
|
$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS) |
|
|
|
|
|
|
|
|
|
git-mailinfo$X : SIMPLE_LIB += $(LIB_4_ICONV) |
|
|
|
|
$(SIMPLE_PROGRAMS) : $(LIB_FILE) |
|
|
|
|
$(SIMPLE_PROGRAMS) : git-%$X : %.o |
|
|
|
|
$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \ |
|
|
|
|
$(LIB_FILE) $(SIMPLE_LIB) |
|
|
|
|
|
|
|
|
|
git-http-fetch$X: fetch.o http.o |
|
|
|
|
git-http-push$X: http.o |
|
|
|
|
git-mailinfo$X: mailinfo.o $(LIB_FILE) |
|
|
|
|
$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \ |
|
|
|
|
$(LIB_FILE) $(SIMPLE_LIB) $(LIB_4_ICONV) |
|
|
|
|
|
|
|
|
|
git-local-fetch$X: fetch.o |
|
|
|
|
git-ssh-fetch$X: rsh.o fetch.o |
|
|
|
|
git-ssh-upload$X: rsh.o |
|
|
|
|
git-ssh-pull$X: rsh.o fetch.o |
|
|
|
|
git-ssh-push$X: rsh.o |
|
|
|
|
|
|
|
|
|
git-http-fetch$X: LIBS += $(CURL_LIBCURL) |
|
|
|
|
git-http-push$X: LIBS += $(CURL_LIBCURL) $(EXPAT_LIBEXPAT) |
|
|
|
|
git-rev-list$X: LIBS += $(OPENSSL_LIBSSL) |
|
|
|
|
git-http-fetch$X: fetch.o http.o http-fetch.o |
|
|
|
|
$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \ |
|
|
|
|
$(LIBS) $(CURL_LIBCURL) |
|
|
|
|
|
|
|
|
|
git-http-push$X: http.o http-push.o |
|
|
|
|
$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \ |
|
|
|
|
$(LIBS) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT) |
|
|
|
|
|
|
|
|
|
git-rev-list$X: rev-list.o |
|
|
|
|
$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \ |
|
|
|
|
$(LIBS) $(OPENSSL_LIBSSL) |
|
|
|
|
|
|
|
|
|
init-db.o: init-db.c |
|
|
|
|
$(CC) -c $(ALL_CFLAGS) \ |
|
|
|
|
-DDEFAULT_GIT_TEMPLATE_DIR=$(call shellquote,"$(template_dir)") $*.c |
|
|
|
|
-DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir_SQ)"' $*.c |
|
|
|
|
|
|
|
|
|
$(LIB_OBJS): $(LIB_H) |
|
|
|
|
$(patsubst git-%$X,%.o,$(PROGRAMS)): $(LIB_H) |
|
|
|
@ -547,13 +567,13 @@ check:
@@ -547,13 +567,13 @@ check:
|
|
|
|
|
### Installation rules |
|
|
|
|
|
|
|
|
|
install: all |
|
|
|
|
$(INSTALL) -d -m755 $(call shellquote,$(DESTDIR)$(bindir)) |
|
|
|
|
$(INSTALL) -d -m755 $(call shellquote,$(DESTDIR)$(gitexecdir)) |
|
|
|
|
$(INSTALL) $(ALL_PROGRAMS) $(call shellquote,$(DESTDIR)$(gitexecdir)) |
|
|
|
|
$(INSTALL) git$X gitk $(call shellquote,$(DESTDIR)$(bindir)) |
|
|
|
|
$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(bindir_SQ)' |
|
|
|
|
$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)' |
|
|
|
|
$(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(gitexecdir_SQ)' |
|
|
|
|
$(INSTALL) git$X gitk '$(DESTDIR_SQ)$(bindir_SQ)' |
|
|
|
|
$(MAKE) -C templates install |
|
|
|
|
$(INSTALL) -d -m755 $(call shellquote,$(DESTDIR)$(GIT_PYTHON_DIR)) |
|
|
|
|
$(INSTALL) $(PYMODULES) $(call shellquote,$(DESTDIR)$(GIT_PYTHON_DIR)) |
|
|
|
|
$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(GIT_PYTHON_DIR_SQ)' |
|
|
|
|
$(INSTALL) $(PYMODULES) '$(DESTDIR_SQ)$(GIT_PYTHON_DIR_SQ)' |
|
|
|
|
|
|
|
|
|
install-doc: |
|
|
|
|
$(MAKE) -C Documentation install |
|
|
|
|