Опция Команды Make и Shell в g77 - PullRequest
1 голос
/ 14 января 2010

Что означают опции make и shell в g77? Например, если в моем файле Makefile есть следующий скрипт:

FC = g77
FFLAGS = -O2 -mno-cygwin
LDFLAGS =
CD = cd
LN = ln
LNFLAGS = -s
MAKE = /bin/make
RM = rm
RMFLAGS = -f
SHELL = /bin/sh

Означает ли это, что для операции make необходимо использовать /bin/make.exe?

На заметку: когда я запускаю компиляцию, используя приведенную выше командную строку, я получаю сообщение об ошибке:

/ bin / sh: строка 4: Выполнение: команда не найдено

Не уверен, связаны ли эти два.

Редактировать: Это мой Макфайл:

arpacklib:
    @( \
    for f in $(DIRS); \
    do \
        $(CD) $$f; \
        $(ECHO) Making lib in $$f; \
        $(MAKE) $(PRECISIONS); \
        $(CD) ..; \
    done );
    $(RANLIB) $(ARPACKLIB)

1 Ответ

1 голос
/ 14 января 2010

Это просто переменные, хранящие местоположение программ на вашем компьютере. Вероятно, будут правила типа $(SHELL) a_shell_script.sh, использующие эти переменные. FC, CD, LN и RM похожи, просто у них нет явно указанного пути. Наличие программ в качестве переменных упрощает их изменение, например, если вы хотите использовать другую версию.

Ваша ошибка выглядит так, будто оболочка пытается выполнить команду Making. Возможная причина в том, что перед ней есть неопределенная переменная, например, правило

all:
    $(ECHO) Making something

, который расширится до Making something при запуске вместо echo Making something. Не видя соответствующей строки, это лучшее, что я могу придумать.

...