Isto é um erro devido a um problema de tab vs space ou devido a uma máquina não suportada?

0

Estou tentando executar um código de simulação no Ubuntu 16. a edição é 16, não 14

Quando eu corro, faço tudo o que recebo, o seguinte erro:

DIR bin exists
(cd src/gravity; make compile)
make[1]: Entering directory '/home/ubuntu/athena4.2/src/gravity'
../../Makeoptions:99: *** missing separator.  Stop.
make[1]: Leaving directory '/home/ubuntu/athena4.2/src/gravity'
Makefile:45: recipe for target 'compile' failed
make: *** [compile] Error 2

Então pesquisei em muitas das trocas de pilha. O que eu descobri é que tipicamente esse erro é devido a algum tipo de problema entre o uso de tabulações e espaços.

Na verdade, quando olho para a 99ª linha da Makeoptions eu encontro espaços:

 ...
 41 #-------------------  compiler/library definitions  ----------------------------
 42 # select using MACHINE=<name> in command line.  For example
 43 #    ophir> make all MACHINE=ophir
 44 # New machines can be added to ifeq blocks below.
 45
 ...
 83 ifeq ($(MACHINE),zenith)
 84   CC  = mpicc
 85   LDR = mpicc
 86   OPT = -O3
 87   MPIINC = -I/opt/mpich2/intel/include
 88   MPILIB = -L/opt/mpich2/intel/lib -lmpich
 89   FFTWLIB = -L/usr/local/fftw3 -lfftw3
 90   FFTWINC = -I/usr/local/fftw3
 91 else
 92 ifeq ($(MACHINE),macosx)
 93   CC = gcc
 94   LDR = gcc
 95   OPT = -O3
 96   FFTWLIB = -L/opt/local/lib -lfftw3
 97   FFTWINC = -I/opt/local/include
 98 else
 99   abort Unsupported MACHINE=$(MACHINE)
100 endif
...

Agora, tentei usar uma guia e obter um erro diferente:

DIR bin exists
(cd src/gravity; make compile)
make[1]: Entering directory '/home/ubuntu/athena4.2/src/gravity'
../../Makeoptions:99: *** recipe commences before first target.  Stop.
make[1]: Leaving directory '/home/ubuntu/athena4.2/src/gravity'
Makefile:45: recipe for target 'compile' failed
make: *** [compile] Error 2

No entanto, ... acho que isso pode não ser o problema REAL .

Se você perceber pelo especialista do arquivo Makeoptions, existem várias opções de máquina (apenas duas que mostrei). O que eu estou querendo saber é, talvez minha máquina não é suportada? desde o Makeoptions pousa na linha 99?

Assim, talvez eu deva adicionar um ifeq para minha máquina ubuntu?

Eu posso executar isso em um mac.

Obrigado por qualquer ajuda :)

****************************** Atualizada **************** ***************

Graças ao heynnema Parece bastante óbvio que agora eu preciso adicionar uma nova máquina ao bloco ifeq.

Como eu determino o ?? nome ?? Eu deveria usar para que:

ifeq ($ (MACHINE), ?? nome ??)

retorna verdadeiro?

Eu tentei ?? nome ?? = ubuntu

E isso retorna o mesmo erro que me dá a máquina não suportada.

Meta pergunta Isso se torna uma nova pergunta? Meta pergunta

    
por Kyle Swanson 17.11.2016 / 16:29

1 resposta

1

No terminal:

grep -i 'ifeq ($(MACHINE)' Makeoptions

Isso lhe dará uma lista de máquinas suportadas. Se você vir seu tipo de máquina nesta lista, então, no terminal:

make all MACHINE=the_name_of_a_supported_machine

Se você não encontrar o tipo de sua máquina na lista, estará em uma máquina não suportada.

    
por heynnema 17.11.2016 / 17:13