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.