Uma regra .SUFFIXES
em um Makefile determina quais regras implícitas são usadas durante a compilação. Uma explicação detalhada estaria fora do tópico aqui, mas você pode ler tudo o que você quer saber no Capítulo 2 Regras em O'Reilly's Gerenciando projetos com o GNU Make, terceira edição Por Robert Mecklenburg .
Em relação às atribuições de variáveis, como FPP
, FPP_OUTPUT
, NETCDF_LIBS
, você precisará consultar a documentação do software para determinar os valores adequados para elas - podemos adivinhar com base em contexto que FPP
representa um pré-processador Fortran (por analogia com CPP
), mas isso não é garantido de forma alguma.
Sua pergunta básica parece ser "Como eu construo o software de química computacional da siesta no Ubuntu 12.04?" . Aqui está o que funcionou para mim (YMMV - dependendo do software pré-existente instalado no seu sistema):
-
Instale os pré-requisitos - para mim, estes eram um compilador Fortran, além de versões regulares e MPI das bibliotecas BLAS e LAPACK, o que eu fiz como
sudo apt-get install gfortran libatlas-dev liblapack-dev libscalapack-mpi-dev
-
Descompacte o software e mude para o diretório
Obj
tar xf siesta-4.1-b1.tar.gz cd siesta-4.1-b1/Obj
-
Conforme indicado no arquivo
Obj/README
, execute o script fornecido para preencher o diretório../Src/obj_setup.sh
-
Conforme sugerido pelo script, execute o script de configuração fornecido para criar um arquivo
arch.make
adequado../Src/configure
Neste momento, se ainda tiver interesse nas respostas às suas perguntas (2) e (3), você poderá ver o arquivo
arch.make
criado para ver os valores configurados automaticamente -
Construa o software
Neste ponto, você deve estar pronto para
make
, mas parece que a etapa de configuração não cuida de tudo, já que falha com a mensagemSIESTA: dc_lapack.a has been deprecated in favor of: COMP_LIBS += libsiestaLAPACK.a Please update your arch.make file accordingly...
Embora você possa editar o arquivo
arch.make
, IMHO é mais simples para uma mudança tão pequena passar a definição da variável na linha de comandomake
make "COMP_LIBS += libsiestaLAPACK.a"
-
Se a construção for concluída com êxito, você poderá executar os testes fornecidos alterando para o diretório
Obj/Tests
e executandomake
therecd Tests/ make
Os testes podem levar consideravelmente mais tempo que a compilação.