@@ -570,6 +570,7 @@ export prefix bindir sharedir sysconfdir gitwebdir perllibdir localedir
570
570
571
571
# Set our default programs
572
572
CC = cc
573
+ LD = cc
573
574
AR = ar
574
575
RM = rm -f
575
576
DIFF = diff
@@ -800,6 +801,10 @@ ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS)
800
801
# what 'all' will build but not install in gitexecdir
801
802
OTHER_PROGRAMS = git$X
802
803
804
+ # what 'all' will build but not install in neither bindir and gitexecdir,
805
+ COMPAT_PROGRAM_OBJS =
806
+ COMPAT_PROGRAMS =
807
+
803
808
# what test wrappers are needed and 'install' will install, in bindir
804
809
BINDIR_PROGRAMS_NEED_X += git
805
810
BINDIR_PROGRAMS_NEED_X += git-upload-pack
@@ -1863,6 +1868,11 @@ ifndef PAGER_ENV
1863
1868
PAGER_ENV = LESS=FRX LV=-c
1864
1869
endif
1865
1870
1871
+ ifdef USE_EXEC_WRAPPER
1872
+ COMPAT_PROGRAM_OBJS += exec-wrapper.o
1873
+ COMPAT_PROGRAMS += exec-wrapper$X
1874
+ endif
1875
+
1866
1876
QUIET_SUBDIR0 = +$(MAKE ) -C # space to separate -C and subdir
1867
1877
QUIET_SUBDIR1 =
1868
1878
@@ -2062,7 +2072,7 @@ profile-fast: profile-clean
2062
2072
$(MAKE ) PROFILE=USE all
2063
2073
2064
2074
2065
- all :: $(ALL_PROGRAMS ) $(SCRIPT_LIB ) $(BUILT_INS ) $(OTHER_PROGRAMS ) GIT-BUILD-OPTIONS
2075
+ all :: $(ALL_PROGRAMS ) $(SCRIPT_LIB ) $(BUILT_INS ) $(OTHER_PROGRAMS ) $( COMPAT_PROGRAMS ) GIT-BUILD-OPTIONS
2066
2076
ifneq (,$X)
2067
2077
$(QUIET_BUILT_IN)$(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), test -d '$p' -o '$p' -ef '$p$X' || $(RM) '$p';)
2068
2078
endif
@@ -2122,7 +2132,7 @@ git.sp git.s git.o: EXTRA_CPPFLAGS = \
2122
2132
' -DGIT_INFO_PATH="$(infodir_relative_SQ)"'
2123
2133
2124
2134
git$X : git.o GIT-LDFLAGS $(BUILTIN_OBJS ) $(GITLIBS )
2125
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) \
2135
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) \
2126
2136
$(filter % .o,$^ ) $(LIBS )
2127
2137
2128
2138
help.sp help.s help.o : command-list.h
@@ -2141,10 +2151,11 @@ version.sp version.s version.o: EXTRA_CPPFLAGS = \
2141
2151
GIT_CEILING_DIRECTORIES=" $( CURDIR) /.." \
2142
2152
git rev-parse -q --verify HEAD 2> /dev/null)" '
2143
2153
2144
- $(BUILT_INS ) : git$X
2154
+ $(BUILT_INS ) : git$X $( COMPAT_PROGRAMS )
2145
2155
$(QUIET_BUILT_IN )$(RM ) $@ && \
2146
2156
ln $< $@ 2> /dev/null || \
2147
2157
ln -s $< $@ 2> /dev/null || \
2158
+ cp exec-wrapper$X $@ 2> /dev/null || \
2148
2159
cp $< $@
2149
2160
2150
2161
command-list.h : generate-cmdlist.sh command-list.txt
@@ -2344,6 +2355,7 @@ VCSSVN_OBJS += vcs-svn/svndump.o
2344
2355
2345
2356
TEST_OBJS := $(patsubst % $X,% .o,$(TEST_PROGRAMS ) ) $(patsubst % ,t/helper/% ,$(TEST_BUILTINS_OBJS ) )
2346
2357
OBJECTS := $(LIB_OBJS ) $(BUILTIN_OBJS ) $(PROGRAM_OBJS ) $(TEST_OBJS ) \
2358
+ $(COMPAT_PROGRAM_OBJS ) \
2347
2359
$(XDIFF_OBJS ) \
2348
2360
$(VCSSVN_OBJS ) \
2349
2361
$(FUZZ_OBJS ) \
@@ -2464,22 +2476,29 @@ compat/nedmalloc/nedmalloc.sp compat/nedmalloc/nedmalloc.o: EXTRA_CPPFLAGS = \
2464
2476
compat/nedmalloc/nedmalloc.sp : SP_EXTRA_FLAGS += -Wno-non-pointer-null
2465
2477
endif
2466
2478
2479
+ exec-wrapper.sp exec-wrapper.s exec-wrapper.o : EXTRA_CPPFLAGS = \
2480
+ ' -DGIT_EXEC_PATH="$(gitexecdir_SQ)"' \
2481
+ ' -DBINDIR="$(bindir_relative_SQ)"'
2482
+
2483
+ exec-wrapper$X : exec-wrapper.o GIT-LDFLAGS
2484
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ )
2485
+
2467
2486
git-% $X : % .o GIT-LDFLAGS $(GITLIBS )
2468
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) $(LIBS )
2487
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) $(LIBS )
2469
2488
2470
2489
git-imap-send$X : imap-send.o $(IMAP_SEND_BUILDDEPS ) GIT-LDFLAGS $(GITLIBS )
2471
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2490
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2472
2491
$(IMAP_SEND_LDFLAGS ) $(LIBS )
2473
2492
2474
2493
git-http-fetch$X : http.o http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS )
2475
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2494
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2476
2495
$(CURL_LIBCURL ) $(LIBS )
2477
2496
git-http-push$X : http.o http-push.o GIT-LDFLAGS $(GITLIBS )
2478
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2497
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2479
2498
$(CURL_LIBCURL ) $(EXPAT_LIBEXPAT ) $(LIBS )
2480
2499
2481
2500
git-remote-testsvn$X : remote-testsvn.o GIT-LDFLAGS $(GITLIBS ) $(VCSSVN_LIB )
2482
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) $(LIBS ) \
2501
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) $(LIBS ) \
2483
2502
$(VCSSVN_LIB )
2484
2503
2485
2504
$(REMOTE_CURL_ALIASES ) : $(REMOTE_CURL_PRIMARY )
@@ -2489,7 +2508,7 @@ $(REMOTE_CURL_ALIASES): $(REMOTE_CURL_PRIMARY)
2489
2508
cp $< $@
2490
2509
2491
2510
$(REMOTE_CURL_PRIMARY ) : remote-curl.o http.o http-walker.o GIT-LDFLAGS $(GITLIBS )
2492
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2511
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2493
2512
$(CURL_LIBCURL ) $(EXPAT_LIBEXPAT ) $(LIBS )
2494
2513
2495
2514
$(LIB_FILE ) : $(LIB_OBJS )
@@ -2783,7 +2802,7 @@ t/helper/test-svn-fe$X: $(VCSSVN_LIB)
2783
2802
t/helper/test-tool$X : $(patsubst % ,t/helper/% ,$(TEST_BUILTINS_OBJS ) )
2784
2803
2785
2804
t/helper/test-% $X : t/helper/test-% .o GIT-LDFLAGS $(GITLIBS )
2786
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) $(filter % .a,$^ ) $(LIBS )
2805
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) $(filter % .a,$^ ) $(LIBS )
2787
2806
2788
2807
check-sha1 :: t/helper/test-tool$X
2789
2808
t/helper/test-sha1.sh
@@ -2966,6 +2985,7 @@ endif
2966
2985
{ test -z "$(NO_INSTALL_HARDLINKS)" && \
2967
2986
ln "$$bindir/git$X" "$$bindir/$$p" 2>/dev/null || \
2968
2987
ln -s "git$X" "$$bindir/$$p" 2>/dev/null || \
2988
+ cp "exec-wrapper$X" "$$execdir/$$p" 2>/dev/null || \
2969
2989
cp "$$bindir/git$X" "$$bindir/$$p" || exit; } \
2970
2990
done && \
2971
2991
for p in $(BUILT_INS); do \
@@ -2975,6 +2995,7 @@ endif
2975
2995
{ test -z "$(NO_INSTALL_HARDLINKS)" && \
2976
2996
ln "$$execdir/git$X" "$$execdir/$$p" 2>/dev/null || \
2977
2997
ln -s "git$X" "$$execdir/$$p" 2>/dev/null || \
2998
+ cp "exec-wrapper$X" "$$execdir/$$p" 2>/dev/null || \
2978
2999
cp "$$execdir/git$X" "$$execdir/$$p" || exit; } \
2979
3000
done && \
2980
3001
remote_curl_aliases="$(REMOTE_CURL_ALIASES)" && \
0 commit comments