Я недавно изучил, как использовать, автоделают, и я несколько раздражаюсь, что мои команды компиляции пошли от набора:
g++ -O2 -Wall -c fileName.cpp
К набору:
depbase=`echo src/Unit.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I./src -g -O2 -MT src/Unit.o -MD -MP -MF $depbase.Tpo -c -o src/Unit.o src/Unit.cpp &&\
mv -f $depbase.Tpo $depbase.Po
Там какой-либо путь состоит в том, чтобы очистить это? Я могу обычно легко выбирать предупреждающие сообщения, но теперь стена текста для чтения, хотя 3x больше и намного более странный.
Я знаю, каковы мои флаги, таким образом делание его просто говорит, что "Компиляция xxx.cpp" для каждого файла была бы прекрасна.
Начиная с automake 1.11, вы можете значительно очистить вывод, используя опцию silent-rules. Например:
$ # First, make without silent rules $ make make all-am gcc -DHAVE_CONFIG_H -I. -g -O2 -MT foo.o -MD -MP -MF .deps/foo.Tpo -c -o foo.o foo.c mv -f .deps/foo.Tpo .deps/foo.Po /bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -o foo foo.o libtool: link: gcc -g -O2 -o foo foo.o gcc -DHAVE_CONFIG_H -I. -g -O2 -MT bar.o -MD -MP -MF .deps/bar.Tpo -c -o bar.o bar.c mv -f .deps/bar.Tpo .deps/bar.Po /bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -o bar bar.o libtool: link: gcc -g -O2 -o bar bar.o gcc -DHAVE_CONFIG_H -I. -g -O2 -MT baz.o -MD -MP -MF .deps/baz.Tpo -c -o baz.o baz.c mv -f .deps/baz.Tpo .deps/baz.Po /bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -o baz baz.o libtool: link: gcc -g -O2 -o baz baz.o gcc -DHAVE_CONFIG_H -I. -g -O2 -MT qux.o -MD -MP -MF .deps/qux.Tpo -c -o qux.o qux.c mv -f .deps/qux.Tpo .deps/qux.Po /bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -o qux qux.o libtool: link: gcc -g -O2 -o qux qux.o $ # Now, use the silent rules $ ./configure --enable-silent-rules > /dev/null $ make clean all rm -f foo bar baz qux rm -rf .libs _libs rm -f *.o rm -f *.lo make all-am CC foo.o CCLD foo CC bar.o CCLD bar CC baz.o CCLD baz CC qux.o CCLD qux
Все, что нужно, - это добавить к вызову "правила молчания". AM_INIT_AUTOMAKE в configure.ac и добавьте параметр --enable-silent-rules при вызове configure. (Там было много споров о необходимости добавления опции во время настройки, когда эта функция была добавлена, и там - простой способ сделать это ненужным.) Обратите внимание, что с включенными бесшумными правилами вы все равно можете получать подробные вывод, запустив make V = 1
Я немного погуглил, так как я нахожусь в той же лодке, инструменты autoconf неплохо справляются, но это как бы разбивает вам глаза, когда текст проносится мимо, и нет возможности узнать, о чем это ... здесь - это ссылка на блог , в котором упоминается инструмент, позволяющий сделать это и сделать его более аккуратным, точно так же, как вы видите, что сборка ядра творит чудеса, т.е.
Compiling foo.so Linking foo.so
Вот еще одна ссылка на инструмент, который называется Уточните автопроизводитель .