Eu preciso do meu comando sed -i para edição no local para trabalhar com o GNU sed e o BSD / OSX sed

Eu tenho um makefile (desenvolvido para gmake no Linux) que estou tentando portar para o OSX, mas parece que o sed não deseja cooperar. O que faço é usar o GCC para gerar automaticamente arquivos de dependência e depois ajustá-los um pouco usando sed. A parte relevante do makefile:

$(OBJ_DIR)/%.d: $(SRC_DIR)/%.cpp
  $(CPPC) -MM -MD 
$(OBJ_DIR)/%.d: $(SRC_DIR)/%.cpp
  $(CPPC) -MM -MD $< -o $@
  sed -i 's|\(.*\)\.o:|$(OBJ_DIR)/\1.o $(OBJ_DIR)/\1.d $(TEST_OBJ_DIR)/\1_utest.o:|' $@
lt; -o $@ sed -i 's|\(.*\)\.o:|$(OBJ_DIR)/\1.o $(OBJ_DIR)/\1.d $(TEST_OBJ_DIR)/\1_utest.o:|' $@

Enquanto isso é executado sem problemas no GNU / Linux, eu recebo erros como o seguinte ao tentar criar no OSX:

sed: 1: "test/obj/equipmentConta ...": undefined label 'est/obj/equipmentContainer_utest.d'
sed: 1: "test/obj/dice_utest.d": undefined label 'est/obj/dice_utest.d'
sed: 1: "test/obj/color-string_u ...": undefined label 'est/obj/color-string_utest.d'

Parece que o sed está cortando um personagem, mas não consigo ver a solução.

questionAnswers(7)

yourAnswerToTheQuestion