Skip to content

Commit 368cab7

Browse files
committed
Merge branch 'ab/make-delete-on-error'
Use ".DELETE_ON_ERROR" pseudo target to simplify our Makefile. * ab/make-delete-on-error: Makefile: add and use the ".DELETE_ON_ERROR" flag
2 parents a93c6fd + 7b76d6b commit 368cab7

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

Makefile

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2164,6 +2164,16 @@ shell_compatibility_test: please_set_SHELL_PATH_to_a_more_modern_shell
21642164
strip: $(PROGRAMS) git$X
21652165
$(STRIP) $(STRIP_OPTS) $^
21662166

2167+
### Flags affecting all rules
2168+
2169+
# A GNU make extension since gmake 3.72 (released in late 1994) to
2170+
# remove the target of rules if commands in those rules fail. The
2171+
# default is to only do that if make itself receives a signal. Affects
2172+
# all targets, see:
2173+
#
2174+
# info make --index-search=.DELETE_ON_ERROR
2175+
.DELETE_ON_ERROR:
2176+
21672177
### Target-specific flags and dependencies
21682178

21692179
# The generic compilation pattern rule and automatically
@@ -2247,7 +2257,6 @@ SCRIPT_DEFINES = $(SHELL_PATH_SQ):$(DIFF_SQ):$(GIT_VERSION):\
22472257
$(gitwebdir_SQ):$(PERL_PATH_SQ):$(SANE_TEXT_GREP):$(PAGER_ENV):\
22482258
$(perllibdir_SQ)
22492259
define cmd_munge_script
2250-
$(RM) $@ $@+ && \
22512260
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
22522261
-e 's|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \
22532262
-e 's|@@DIFF@@|$(DIFF_SQ)|' \
@@ -2317,7 +2326,7 @@ endif
23172326
PERL_DEFINES += $(gitexecdir) $(perllibdir) $(localedir)
23182327

23192328
$(SCRIPT_PERL_GEN): % : %.perl GIT-PERL-DEFINES GIT-PERL-HEADER GIT-VERSION-FILE
2320-
$(QUIET_GEN)$(RM) $@ $@+ && \
2329+
$(QUIET_GEN) \
23212330
sed -e '1{' \
23222331
-e ' s|#!.*perl|#!$(PERL_PATH_SQ)|' \
23232332
-e ' r GIT-PERL-HEADER' \
@@ -2337,7 +2346,7 @@ GIT-PERL-DEFINES: FORCE
23372346
fi
23382347

23392348
GIT-PERL-HEADER: $(PERL_HEADER_TEMPLATE) GIT-PERL-DEFINES Makefile
2340-
$(QUIET_GEN)$(RM) $@ && \
2349+
$(QUIET_GEN) \
23412350
INSTLIBDIR='$(perllibdir_SQ)' && \
23422351
INSTLIBDIR_EXTRA='$(PERLLIB_EXTRA_SQ)' && \
23432352
INSTLIBDIR="$$INSTLIBDIR$${INSTLIBDIR_EXTRA:+:$$INSTLIBDIR_EXTRA}" && \
@@ -2363,7 +2372,7 @@ git-instaweb: git-instaweb.sh GIT-SCRIPT-DEFINES
23632372
mv $@+ $@
23642373
else # NO_PERL
23652374
$(SCRIPT_PERL_GEN) git-instaweb: % : unimplemented.sh
2366-
$(QUIET_GEN)$(RM) $@ $@+ && \
2375+
$(QUIET_GEN) \
23672376
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
23682377
-e 's|@@REASON@@|NO_PERL=$(NO_PERL)|g' \
23692378
unimplemented.sh >$@+ && \
@@ -2377,23 +2386,22 @@ $(SCRIPT_PYTHON_GEN): GIT-BUILD-OPTIONS
23772386
ifndef NO_PYTHON
23782387
$(SCRIPT_PYTHON_GEN): GIT-CFLAGS GIT-PREFIX GIT-PYTHON-VARS
23792388
$(SCRIPT_PYTHON_GEN): % : %.py
2380-
$(QUIET_GEN)$(RM) $@ $@+ && \
2389+
$(QUIET_GEN) \
23812390
sed -e '1s|#!.*python|#!$(PYTHON_PATH_SQ)|' \
23822391
$< >$@+ && \
23832392
chmod +x $@+ && \
23842393
mv $@+ $@
23852394
else # NO_PYTHON
23862395
$(SCRIPT_PYTHON_GEN): % : unimplemented.sh
2387-
$(QUIET_GEN)$(RM) $@ $@+ && \
2396+
$(QUIET_GEN) \
23882397
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
23892398
-e 's|@@REASON@@|NO_PYTHON=$(NO_PYTHON)|g' \
23902399
unimplemented.sh >$@+ && \
23912400
chmod +x $@+ && \
23922401
mv $@+ $@
23932402
endif # NO_PYTHON
23942403

2395-
CONFIGURE_RECIPE = $(RM) configure configure.ac+ && \
2396-
sed -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
2404+
CONFIGURE_RECIPE = sed -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
23972405
configure.ac >configure.ac+ && \
23982406
autoconf -o configure configure.ac+ && \
23992407
$(RM) configure.ac+
@@ -2518,7 +2526,6 @@ endif
25182526
ifeq ($(GENERATE_COMPILATION_DATABASE),yes)
25192527
all:: compile_commands.json
25202528
compile_commands.json:
2521-
@$(RM) $@
25222529
$(QUIET_GEN)sed -e '1s/^/[/' -e '$$s/,$$/]/' $(compdb_dir)/*.o.json > $@+
25232530
@if test -s $@+; then mv $@+ $@; else $(RM) $@+; fi
25242531
endif
@@ -2591,10 +2598,10 @@ $(REMOTE_CURL_PRIMARY): remote-curl.o http.o http-walker.o GIT-LDFLAGS $(GITLIBS
25912598
$(CURL_LIBCURL) $(EXPAT_LIBEXPAT) $(LIBS)
25922599

25932600
$(LIB_FILE): $(LIB_OBJS)
2594-
$(QUIET_AR)$(RM) $@ && $(AR) $(ARFLAGS) $@ $^
2601+
$(QUIET_AR)$(AR) $(ARFLAGS) $@ $^
25952602

25962603
$(XDIFF_LIB): $(XDIFF_OBJS)
2597-
$(QUIET_AR)$(RM) $@ && $(AR) $(ARFLAGS) $@ $^
2604+
$(QUIET_AR)$(AR) $(ARFLAGS) $@ $^
25982605

25992606
export DEFAULT_EDITOR DEFAULT_PAGER
26002607

0 commit comments

Comments
 (0)