2010-01-14 6 views
1

Que signifient les options make et shell dans g77? Par exemple, si je le script suivant dans mon Makefile:L'option de commande Make et Shell dans g77

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

Est-ce que cela signifie qu'il faut un fonctionnement make à utiliser /bin/make.exe?

Sur une note côté: quand je lance la compilation, en utilisant la ligne de commande ci-dessus, je me suis une erreur:

/bin/sh: line 4: Making: command not found

Je ne sais pas si les deux sont liés.

Edit: Ceci est mon Makfile:

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

Répondre

1

Ce ne sont que des variables tenant l'emplacement des programmes sur votre ordinateur. Il y aura probablement des règles comme $(SHELL) a_shell_script.sh en utilisant ces variables. Les FC, CD, LN et RM sont similaires, ils n'ont tout simplement pas le chemin explicitement répertorié. Avoir des programmes en tant que variables permet de les changer facilement, par exemple si vous voulez utiliser une version différente. Votre erreur semble que le shell essaie d'exécuter la commande Making. Une cause possible est il y a une variable non définie en face de cela, par exemple une règle

all: 
    $(ECHO) Making something 

qui élargirait à Making something au lieu de courir quand echo Making something. Sans voir la ligne pertinente qui est la meilleure que je puisse penser.

+0

Question mise à jour. À la lumière de votre réponse, je peux * deviner * pourquoi je recevais l'erreur. Mais aucune idée sur la façon de réparer la ligne '$ (ECHO) ci-dessus? – Graviton

+0

Définissez simplement 'ECHO = echo' avec les autres variables. –

+0

Que voulez-vous dire? – Graviton

Questions connexes