- Makefile+export, angra, 13:56 , 20-Фев-08 (1)
Команда export есть не в абстрактных никсах, а конкретно в bash, в других оболочках она может по другому называться и иметь другой синтаксис. Более того, она не устанавливает значение переменной, а делает это значение доступным для других процессов, запускаемых из этого экземпляра оболочки, что никак не мешает запущенным процессам устанавливать эту переменную в другое значение или вообще ее игнорировать. Не совсем понятно где вы это используете, что хотите получить и почему решили что это не работает.
- Makefile+export, Davs, 14:09 , 20-Фев-08 (2)
>Команда export есть не в абстрактных никсах, а конкретно в bash, в >других оболочках она может по другому называться и иметь другой синтаксис. >Более того, она не устанавливает значение переменной, а делает это значение >доступным для других процессов, запускаемых из этого экземпляра оболочки, что никак >не мешает запущенным процессам устанавливать эту переменную в другое значение или >вообще ее игнорировать. Не совсем понятно где вы это используете, что >хотите получить и почему решили что это не работает. оболочка bash. В консоли и в скриптах она (функция export) нормально работает среда: FreeBSD6.2 мне надо чтобы после выполнения определенного target'a make'a у меня это значение этой сист переменной было задано тем что надо. П.С. Дело обстоит так: мне надо чтобы после выполнения make install у меня в системной переменной LD_LIBRARY_PATH был задан путь к текущей директории. В шелле это делается - export LD_LIBRARY_PATH=`pwd` ...... В makefile это не пашет...... :(
- Makefile+export, angra, 14:22 , 20-Фев-08 (3)
Поищите в makefile LD_LIBRARY_PATH, возможно она там переопределяется. Кроме того, не забывайте что нет понятия системных переменных. Есть просто переменные установленные в данном экземпляре запущенной оболочки, часть из них распознается и используется самим bash, другие могут влиять на дочерние процессы, а могут и не влиять. Если мне не изменяет память, то LD_LIBRARY_PATH указывает путь к разделяемым библиотекам, но для чего нужно их переопределение в момент make install (который просто распихивает файлы по нужным директориям) для меня загадка
- Makefile+export, Davs, 15:40 , 20-Фев-08 (4)
>Поищите в makefile LD_LIBRARY_PATH, возможно она там переопределяется. Кроме того, не забывайте >что нет понятия системных переменных. Есть просто переменные установленные в данном >экземпляре запущенной оболочки, часть из них распознается и используется самим bash, >другие могут влиять на дочерние процессы, а могут и не влиять. >Если мне не изменяет память, то LD_LIBRARY_PATH указывает путь к разделяемым >библиотекам, но для чего нужно их переопределение в момент make install >(который просто распихивает файлы по нужным директориям) для меня загадка 1) Я создаю свой makefile 2) для своей проги мне надо дописать path чтобы она видела библиотеку..........
- Makefile+export, Аноним, 07:14 , 21-Фев-08 (5)
Makefile:t1: @echo t1 @env | grep LD_LIBRARY_PATH || true t2: @echo t2:pre @LD_LIBRARY_PATH=aaa env | grep LD_LIBRARY_PATH || true @echo t2:post @env | grep LD_LIBRARY_PATH || true t3: @echo t3:pre @export LD_LIBRARY_PATH=aaa; env | grep LD_LIBRARY_PATH || true @echo t3:post @env | grep LD_LIBRARY_PATH || true t4: @echo t4:pre @env LD_LIBRARY_PATH=aaa env | grep LD_LIBRARY_PATH || true @echo t4:post @env | grep LD_LIBRARY_PATH || true % make t1 t1 % make t2 t2:pre LD_LIBRARY_PATH=aaa t2:post % make t3 t3:pre LD_LIBRARY_PATH=aaa t3:post % make t4 t4:pre LD_LIBRARY_PATH=aaa t4:post Самое правильное, думается, t4.
- Makefile+export, Davs, 10:43 , 21-Фев-08 (6)
>[оверквотинг удален] >t3:pre >LD_LIBRARY_PATH=aaa >t3:post > >% make t4 >t4:pre >LD_LIBRARY_PATH=aaa >t4:post > >Самое правильное, думается, t4. Я испробовал все 4 варианта.............. но строчка ---- @env | grep LD_LIBRARY_PATH || true выводит то состояние переменной, что и было до "изменения" .... после выполнения makefile'a значение переменной остается таким же как и до его запуска :(
- Makefile+export, newser, 12:29 , 21-Фев-08 (7)
>[оверквотинг удален] >>LD_LIBRARY_PATH=aaa >>t4:post >> >>Самое правильное, думается, t4. > >Я испробовал все 4 варианта.............. >но строчка ---- @env | grep LD_LIBRARY_PATH || true >выводит то состояние переменной, что и было до "изменения" .... >после выполнения makefile'a значение переменной остается таким же как и до его >запуска :( Само собой. То, чего Вы хотите, средствами make сделать не получится. За объяснениями, почему так, обращайтесь к литературе.
- Makefile+export, Гость, 23:04 , 21-Фев-08 (8)
>Я испробовал все 4 варианта.............. >но строчка ---- @env | grep LD_LIBRARY_PATH || true >выводит то состояние переменной, что и было до "изменения" .... >после выполнения makefile'a значение переменной остается таким же как и до его >запуска :( Специально для этого и написал, мля. Переменную надо устанавливать для КАЖДОЙ команды. Либо запустить еще одну копию make. Если ты собрался менять из Makefile переменные в вызывающем make экземпляре shell'а или на весь Makefile, то это, разумеется, сделать нельзя.
|