Я думаю, вам следует использовать переменные. Например:
DESTDIR?=/usr/local/lib
...
install:
mv libsgtk.so ${DESTDIR}
В этом случае пользователь может перезаписать значение по умолчанию с помощьюmake DESTDIR=/usr/lib
(обратите внимание на ?
выше ).
Если хотите, можете протестировать. Может быть, это неплохая идея. Более простой метод — использоватьmv -n
(илиmv -nv
)вместо mv
:, не перезаписывая существующий файл. Его главный недостаток в том, что возвращаемое значение mv
равно нулю, поэтому make
не будет знать, что перемещение не было успешным.
Но если вы будете использоватьcp
(копию )вместо mv
, будет хорошо :cp -n
возвращает 1 (ненулевое значение ), когда целевой файл существует. Таким образом, решение (включает тест):
install:
cp -n libsgtk.so ${DESTDIR}
Только вспомогательный вопрос :знаете ли вы о PHONY
целях в Makefile
? Вы должны использовать его для целей install
и clean
(примечание :вы также должны удалить libsgtk.so
вclean
).
Перед запуском введите следующую команду в терминал.
export DISPLAY=:0