@@ -556,6 +556,7 @@ export prefix bindir sharedir sysconfdir gitwebdir perllibdir localedir
556
556
557
557
# Set our default programs
558
558
CC = cc
559
+ LD = cc
559
560
AR = ar
560
561
RM = rm -f
561
562
DIFF = diff
@@ -792,6 +793,10 @@ ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS)
792
793
# what 'all' will build but not install in gitexecdir
793
794
OTHER_PROGRAMS = git$X
794
795
796
+ # what 'all' will build but not install in neither bindir and gitexecdir,
797
+ COMPAT_PROGRAM_OBJS =
798
+ COMPAT_PROGRAMS =
799
+
795
800
# what test wrappers are needed and 'install' will install, in bindir
796
801
BINDIR_PROGRAMS_NEED_X += git
797
802
BINDIR_PROGRAMS_NEED_X += git-receive-pack
@@ -1882,6 +1887,11 @@ ifndef PAGER_ENV
1882
1887
PAGER_ENV = LESS=FRX LV=-c
1883
1888
endif
1884
1889
1890
+ ifdef USE_EXEC_WRAPPER
1891
+ COMPAT_PROGRAM_OBJS += exec-wrapper.o
1892
+ COMPAT_PROGRAMS += exec-wrapper$X
1893
+ endif
1894
+
1885
1895
QUIET_SUBDIR0 = +$(MAKE ) -C # space to separate -C and subdir
1886
1896
QUIET_SUBDIR1 =
1887
1897
@@ -2082,7 +2092,7 @@ profile-fast: profile-clean
2082
2092
$(MAKE ) PROFILE=USE all
2083
2093
2084
2094
2085
- all :: $(ALL_PROGRAMS ) $(SCRIPT_LIB ) $(BUILT_INS ) $(OTHER_PROGRAMS ) GIT-BUILD-OPTIONS
2095
+ all :: $(ALL_PROGRAMS ) $(SCRIPT_LIB ) $(BUILT_INS ) $(OTHER_PROGRAMS ) $( COMPAT_PROGRAMS ) GIT-BUILD-OPTIONS
2086
2096
ifneq (,$X)
2087
2097
$(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';)
2088
2098
endif
@@ -2142,7 +2152,7 @@ git.sp git.s git.o: EXTRA_CPPFLAGS = \
2142
2152
' -DGIT_INFO_PATH="$(infodir_relative_SQ)"'
2143
2153
2144
2154
git$X : git.o GIT-LDFLAGS $(BUILTIN_OBJS ) $(GITLIBS )
2145
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) \
2155
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) \
2146
2156
$(filter % .o,$^ ) $(LIBS )
2147
2157
2148
2158
help.sp help.s help.o : command-list.h
@@ -2161,10 +2171,11 @@ version.sp version.s version.o: EXTRA_CPPFLAGS = \
2161
2171
GIT_CEILING_DIRECTORIES=" $( CURDIR) /.." \
2162
2172
git rev-parse -q --verify HEAD 2> /dev/null)" '
2163
2173
2164
- $(BUILT_INS ) : git$X
2174
+ $(BUILT_INS ) : git$X $( COMPAT_PROGRAMS )
2165
2175
$(QUIET_BUILT_IN )$(RM ) $@ && \
2166
2176
ln $< $@ 2> /dev/null || \
2167
2177
ln -s $< $@ 2> /dev/null || \
2178
+ cp exec-wrapper$X $@ 2> /dev/null || \
2168
2179
cp $< $@
2169
2180
2170
2181
config-list.h : generate-configlist.sh
@@ -2370,6 +2381,7 @@ VCSSVN_OBJS += vcs-svn/svndump.o
2370
2381
2371
2382
TEST_OBJS := $(patsubst % $X,% .o,$(TEST_PROGRAMS ) ) $(patsubst % ,t/helper/% ,$(TEST_BUILTINS_OBJS ) )
2372
2383
OBJECTS := $(LIB_OBJS ) $(BUILTIN_OBJS ) $(PROGRAM_OBJS ) $(TEST_OBJS ) \
2384
+ $(COMPAT_PROGRAM_OBJS ) \
2373
2385
$(XDIFF_OBJS ) \
2374
2386
$(VCSSVN_OBJS ) \
2375
2387
$(FUZZ_OBJS ) \
@@ -2490,26 +2502,33 @@ compat/nedmalloc/nedmalloc.sp compat/nedmalloc/nedmalloc.o: EXTRA_CPPFLAGS = \
2490
2502
compat/nedmalloc/nedmalloc.sp : SP_EXTRA_FLAGS += -Wno-non-pointer-null
2491
2503
endif
2492
2504
2505
+ exec-wrapper.sp exec-wrapper.s exec-wrapper.o : EXTRA_CPPFLAGS = \
2506
+ ' -DGIT_EXEC_PATH="$(gitexecdir_SQ)"' \
2507
+ ' -DBINDIR="$(bindir_relative_SQ)"'
2508
+
2509
+ exec-wrapper$X : exec-wrapper.o GIT-LDFLAGS
2510
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ )
2511
+
2493
2512
git-% $X : % .o GIT-LDFLAGS $(GITLIBS )
2494
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) $(LIBS )
2513
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) $(LIBS )
2495
2514
2496
2515
git-bugreport$X : bugreport.o GIT-LDFLAGS $(GITLIBS )
2497
2516
$(QUIET_LINK )$(CC ) $(ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2498
2517
$(LIBS )
2499
2518
2500
2519
git-imap-send$X : imap-send.o $(IMAP_SEND_BUILDDEPS ) GIT-LDFLAGS $(GITLIBS )
2501
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2520
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2502
2521
$(IMAP_SEND_LDFLAGS ) $(LIBS )
2503
2522
2504
2523
git-http-fetch$X : http.o http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS )
2505
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2524
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2506
2525
$(CURL_LIBCURL ) $(LIBS )
2507
2526
git-http-push$X : http.o http-push.o GIT-LDFLAGS $(GITLIBS )
2508
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2527
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2509
2528
$(CURL_LIBCURL ) $(EXPAT_LIBEXPAT ) $(LIBS )
2510
2529
2511
2530
git-remote-testsvn$X : remote-testsvn.o GIT-LDFLAGS $(GITLIBS ) $(VCSSVN_LIB )
2512
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) $(LIBS ) \
2531
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) $(LIBS ) \
2513
2532
$(VCSSVN_LIB )
2514
2533
2515
2534
$(REMOTE_CURL_ALIASES ) : $(REMOTE_CURL_PRIMARY )
@@ -2519,7 +2538,7 @@ $(REMOTE_CURL_ALIASES): $(REMOTE_CURL_PRIMARY)
2519
2538
cp $< $@
2520
2539
2521
2540
$(REMOTE_CURL_PRIMARY ) : remote-curl.o http.o http-walker.o GIT-LDFLAGS $(GITLIBS )
2522
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2541
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) \
2523
2542
$(CURL_LIBCURL ) $(EXPAT_LIBEXPAT ) $(LIBS )
2524
2543
2525
2544
$(LIB_FILE ) : $(LIB_OBJS )
@@ -2814,7 +2833,7 @@ t/helper/test-svn-fe$X: $(VCSSVN_LIB)
2814
2833
t/helper/test-tool$X : $(patsubst % ,t/helper/% ,$(TEST_BUILTINS_OBJS ) )
2815
2834
2816
2835
t/helper/test-% $X : t/helper/test-% .o GIT-LDFLAGS $(GITLIBS )
2817
- $(QUIET_LINK )$(CC ) $( ALL_CFLAGS ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) $(filter % .a,$^ ) $(LIBS )
2836
+ $(QUIET_LINK )$(LD ) -o $@ $(ALL_LDFLAGS ) $(filter % .o,$^ ) $(filter % .a,$^ ) $(LIBS )
2818
2837
2819
2838
check-sha1 :: t/helper/test-tool$X
2820
2839
t/helper/test-sha1.sh
@@ -2997,6 +3016,7 @@ endif
2997
3016
{ test -z "$(NO_INSTALL_HARDLINKS)" && \
2998
3017
ln "$$bindir/git$X" "$$bindir/$$p" 2>/dev/null || \
2999
3018
ln -s "git$X" "$$bindir/$$p" 2>/dev/null || \
3019
+ cp "exec-wrapper$X" "$$execdir/$$p" 2>/dev/null || \
3000
3020
cp "$$bindir/git$X" "$$bindir/$$p" || exit; } \
3001
3021
done && \
3002
3022
for p in $(BUILT_INS); do \
@@ -3006,6 +3026,7 @@ endif
3006
3026
{ test -z "$(NO_INSTALL_HARDLINKS)" && \
3007
3027
ln "$$execdir/git$X" "$$execdir/$$p" 2>/dev/null || \
3008
3028
ln -s "git$X" "$$execdir/$$p" 2>/dev/null || \
3029
+ cp "exec-wrapper$X" "$$execdir/$$p" 2>/dev/null || \
3009
3030
cp "$$execdir/git$X" "$$execdir/$$p" || exit; } \
3010
3031
done && \
3011
3032
remote_curl_aliases="$(REMOTE_CURL_ALIASES)" && \
0 commit comments