diff --git a/Makefile.rules b/Makefile.rules index 3e78bc0cd..74993d476 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -60,9 +60,8 @@ ALLDEP+=makecfg.lst # returns current type: "" core/unknown, "M" module, "L" libray, "U" util crt_type=$(if $(MOD_NAME),M,$(if $(LIB_NAME),L,$(if $(UTIL_NAME),U))) -cmd_CC=$(CC) $(CFLAGS) $(C_INCLUDES) $(INCLUDES) $(C_DEFS) $(DEFS) -c $< -o $@ -cmd_LD=$(LD) $(LDFLAGS) $(objs) $(extra_objs) $(ALL_LIBS) $(SER_RPATH) \ - -o $(NAME) +cmd_CC=$(CC) $(CFLAGS) $(C_INCLUDES) $(INCLUDES) $(C_DEFS) $(DEFS) -c $< +cmd_LD=$(LD) $(LDFLAGS) $(objs) $(extra_objs) $(ALL_LIBS) $(SER_RPATH) ifeq (,$(CC_MKDEP_OPTS)) # if CCC_MKDEP_OPTS is empty => CC cannot generate dependencies on the fly @@ -77,6 +76,9 @@ cmd_CC+=$(CC_MKDEP_OPTS) cmd_MKDEP= endif # CC_MKDEP_OPTS +cmd_CC+=-o $@.tmp || rm -f $@.tmp; mv -f $@.tmp $@ 2> /dev/null +cmd_LD+=-o $(NAME).tmp || rm -f $(NAME).tmp; mv -f $(NAME).tmp $(NAME) 2> /dev/null + cmd_CC_lock=while true; do ( flock -n 9 || exit 95; \ $(cmd_CC); \ ) 9> $@.lock; exitcode=$$?; test $$exitcode = 95 || break; sleep 1; \