g77中的Make和Shell命令选项

时间:2010-01-14 03:52:40

标签: makefile g77

makeshell选项在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行:制作:命令不是   结果

不确定两者是否相关。

编辑:这是我的Makfile:

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

1 个答案:

答案 0 :(得分:1)

这些只是保存计算机上程序位置的变量。可能会有$(SHELL) a_shell_script.sh这样的规则使用这些变量。 FCCDLNRM相似,只是没有明确列出的路径。将程序作为变量可以很容易地改变它们,例如,如果你想使用不同的版本。

您的错误看起来像shell正在尝试运行命令Making。可能的原因是前面有一个未定义的变量,例如规则

all:
    $(ECHO) Making something

在运行时会扩展为Making something而不是echo Making something。没有看到我认为最好的相关线。