2014-12-04 2 views
0

Я хочу, чтобы запустить проверку какКак проверить суперпользователь в Makefile.am

if user is root then 
    directorypath = /set/path/to/this/dir 
else 
    directorypath = /set/path/to/that/dir/instead 

Makefile.am В моем, но я не уверен, на какой синтаксис использовать для достижения этой цели и нужно ли мне делать что-то в configure.ac, чтобы сделать условную работу. Может ли кто-нибудь указать мне в правильном направлении?

+1

Почему вы пытаетесь это сделать? –

+0

Почему вы чувствуете, что было бы полезно знать это? – Magpie

+0

Потому что это очень похоже на [проблема XY] (http://mywiki.wooledge.org/XyProblem). То есть вы уже сделали некоторые неправильные или неоптимальные решения, которые заставляют вас задавать этот вопрос, а не (лучше спросить) оригинальный вопрос. (Кроме того, это звучит так, как будто вы хотите контролировать пути установки, и обычно вы не должны делать это как таковое, для чего используется префикс/DESTDIR.) –

ответ

0

Выяснил это.

В configure.ac:

AM_CONDITIONAL(USER, test `whoami` = "root") 

Makefile.am В:

if USER 
directorypath = /set/path/to/this/dir 
else 
directorypath = /set/path/to/that/dir/instead 
endif 

Simples.

+0

Это тестовое время настройки, которое я считаю, и не изменит ситуацию на 'make'. –

+0

проверено и работает. – Magpie

+0

Работает в режиме настройки? Конечно. Это будет абсолютно работать. Но попробуйте запустить make как root (когда configure был запущен как не-root) или наоборот и посмотрите, какой путь вы получите. –

Смежные вопросы