LINUX.ORG.RU

Добавить значение к CXXFLAGS не редактируя Makefile, реально?


1

1

Добрый вечер. Скорее всего вопрос нубский, и если так то не ругайтесь пожалуйста если он уже где-то обсуждался или описывался и дайте ссылку.
А вопрос в следующем, существует ли универсальный способ добавить значение к какой нибудь переменной в Makefile (нп пр. CXXFLAGS), не редактируя сам файл и не копаясь в нем? Повторюсь, именно добавить значение, а не заменить. Благодарю.

★★★

А если сделать свой makefile, включить тот, что нужен и после этого добавить значение?

ziemin ★★
()

Положи в /usr/local/bin/g++ скрипт, который дописывает к переданных флагам свои и запускает /usr/bin/g++.

i-rinat ★★★★★
()

CFLAGS+=-blah

Если, конечно, конструкция позволяет

vasily_pupkin ★★★★★
()
Ответ на: комментарий от anonymous

далеко не всегда прокатывает
и вообще это грубо

megabaks ★★★★
()
$ cat Makefile 
_CXXFLAGS="-c ... ${CXXFLAGS}"

default:
        @echo ${_CXXFLAGS}
$ make
-c ... 
$ make CXXFLAGS=xyu
-c ... xyu
$ 

, например

anonymous
()

Не, ну ребят, спецом же два раза написал «добавить значение, а не заменить». Всем спасибо.

Работоспособным решением явились варианты врапера для g++ в виде шелл скрипта предложенного i-rinat-ом и подмены значения CXX с добавлением нужных параметров предложенной гордым анонимусом. Выбрал последнее. Спасибо вам огромное.

normann ★★★
() автор топика
Ответ на: комментарий от normann

ну и зря
ты выбрал порочный путь
тебе ВСЕ написали как ДОПОЛНИТЬ, но ты выбрал кривой хак, который далеко не везде прокатит
удачи, быдлокодер

megabaks ★★★★
()
Ответ на: комментарий от megabaks

Это тролинг чтоли такой, попытка зацепить? Если что эти варианты НЕ дополняют, а подменяют.

normann ★★★
() автор топика
Ответ на: комментарий от megabaks

Если у него в Makefile прописано CXXFLAGS = -fig-vam -hren-tam, установка

CXXFLAGS="${CXXFLAGS} -g -O2"
перед вызовом make не поможет.

Но, безусловно, путь целиком порочный - если требуется сохранять то, что написано в Makefile - это плохой, негодный Makefile.

anonymous
()
Ответ на: комментарий от normann

если что, поучи-ка баш для начала

[ megabaks@desktop ] ~ $ x='1 2 3'
[ megabaks@desktop ] ~ $ x="${x} 4 5"
[ megabaks@desktop ] ~ $ echo $x
1 2 3 4 5
[ megabaks@desktop ] ~ $

megabaks ★★★★
()
Ответ на: комментарий от anonymous

элементарно ложишь патч к ебилду, который выпиливает фиксированные флаги и передаешь свои

punya ★★
()
Ответ на: комментарий от anonymous

вот именно - это просто плохой мэйкфайл
или софтина написана настолько криво, что с другими флагами она тупо не собирается и потому хардкод

megabaks ★★★★
()
Ответ на: комментарий от megabaks

Получается что не то же самое т.к. оно не работает ни в каких ипостасях (по крайней мере у меня).

normann ★★★
() автор топика
Ответ на: комментарий от megabaks

Makefile:

CXXFLAGS=-abc

all:
	echo $(CXXFLAGS)
$ CXXFLAGS=«${CXXFLAGS} -ololo -trololo» make
echo -abc
abc
$ make CXXFLAGS=«$CXXFLAGS -g»
echo -g
-g
$ CXXFLAGS+=«${CXXFLAGS} -ololo -trololo» make
echo -abc
abc
$ make CXXFLAGS+=«$CXXFLAGS -g»
echo -g
-g
ЧЯДНТ?

normann ★★★
() автор топика
Ответ на: комментарий от normann

ЧЯДНТ?

[ megabaks@desktop ] ~ $ CXXFLAGS="-ololo -trolol" make
echo -ololo -trolol -abc
-ololo -trolol -abc
[ megabaks@desktop ] ~ $ CXXFLAGS+="-ololo -trolol" make
echo -ololo -trolol -abc
-ololo -trolol -abc
[ megabaks@desktop ] ~ $
[ megabaks@desktop ] ~ $ cat Makefile 
CXXFLAGS ?=
CXXFLAGS += -abc

all:
	echo $(CXXFLAGS)
[ megabaks@desktop ] ~ $

вот как-то так должно быть

megabaks ★★★★
()
Ответ на: комментарий от normann

Это же megabaks :D
Не обращай внимания
Гентушники в основном злые...
Лучше юзай то, что тебе помогло
А то разведете трэд страниц эдак на 20

ubuntuawp ★★
()
Ответ на: комментарий от megabaks
[ megabaks@desktop ] ~ $ cat Makefile 
CXXFLAGS ?=
CXXFLAGS += -abc

all:
	echo $(CXXFLAGS)
[ megabaks@desktop ] ~ $

По теме это не подходит.

normann ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.