LINUX.ORG.RU

Вопрос о make


0

0

Как сделать, чтобы при выполнении Makefile вместо длинных строк вида
"gcc много-много-флагов file.cpp"
выводилось
"compiling file.cpp..." ?

anonymous

вызывать gcc так:
@gcc много-много-флагов file.cpp

до вызова gcc написать команду:
@echo Compiling file.cpp ...

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

@echo это синтаксис для мейкфайла. в баше не имеет смысла такое вбивать.

для общего случая можно даже мейкфайлы не менять, просто обработать вывод чем-нить типа awk.

make all | awk _some_stuff_here_

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

Добавь в Makefile

.c.o:
    @echo Compiling $<
    @$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<

execve
()

В xterm есть опция --disable-echo, которая делает нужное тебе. Вот как оно определяется в aclocal.m4:

dnl ---------------------------------------------------------------------------
dnl CF_DISABLE_ECHO version: 10 updated: 2003/04/17 22:27:11
dnl ---------------
dnl You can always use "make -n" to see the actual options, but it's hard to
dnl pick out/analyze warning messages when the compile-line is long.
dnl
dnl Sets:
dnl.ECHO_LT - symbol to control if libtool is verbose
dnl.ECHO_LD - symbol to prefix "cc -o" lines
dnl.RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
dnl.SHOW_CC - symbol to put before explicit "cc -c" lines
dnl.ECHO_CC - symbol to put before any "cc" line
dnl
AC_DEFUN([CF_DISABLE_ECHO],[
AC_MSG_CHECKING(if you want to see long compiling messages)
CF_ARG_DISABLE(echo,
.   [  --disable-echo          display "compiling" commands],
.   [
    ECHO_LT='--silent'
    ECHO_LD='@echo linking [$]@;'
    RULE_CC='.  @echo compiling [$]<'
    SHOW_CC='.  @echo compiling [$]@'
    ECHO_CC='@'
],[
    ECHO_LT=''
    ECHO_LD=''
    RULE_CC='# compiling'
    SHOW_CC='# compiling'
    ECHO_CC=''
])
AC_MSG_RESULT($enableval)
AC_SUBST(ECHO_LT)
AC_SUBST(ECHO_LD)
AC_SUBST(RULE_CC)
AC_SUBST(SHOW_CC)
AC_SUBST(ECHO_CC)
])

И потом нужно добавить в configure.in вызов CF_DISABLE_ECHO

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