Я думаю, вы могли бы просто использовать несколько целей, но скрипт не запустится, если вместо цели в качестве цели используется $ (PROG).
all: $(SCRIPT) $(PROG)
$(SCRIPT):
sh myScript.sh
$(PROG): $(CPP_OBJS)
$(CPP_LD) $(CPP_LD_FLAGS) $(CPP_OBJS) -o $(PROG)
В противном случае вы можете использовать отдельные строки, которые всегда будут применяться.
$(PROG): $(CPP_OBJS)
sh myScript.sh
$(CPP_LD) $(CPP_LD_FLAGS) $(CPP_OBJS) -o $(PROG)