Eu acho que você deveria usar variáveis. Por exemplo:
DESTDIR?=/usr/local/lib
...
install:
mv libsgtk.so ${DESTDIR}
Nesse caso, o usuário pode sobrescrever o valor padrão com make DESTDIR=/usr/lib (observe o ? acima).
Se você quiser, pode testá-lo. Talvez não seja uma má ideia. O método mais simples é usar mv -n (ou mv -nv ) em vez de mv : não sobrescreve o arquivo existente. Sua principal desvantagem é que o valor de retorno de mv é zero, então o make não saberá que o movimento não foi sucesso.
Mas se você usar cp (copy) em vez de mv , será bom: o cp -n é return 1 (diferente de zero) quando o arquivo de destino existe. Então a solução (teste incluso):
install:
cp -n libsgtk.so ${DESTDIR}
Apenas uma pergunta útil: você sabe sobre PHONY targets em Makefile ? Você deve usá-lo para install e clean targets (observação: você deve excluir libsgtk.so também em clean ).