Nowe posty

Autor Wątek: Problem z Makefile  (Przeczytany 2314 razy)

ph03nix

  • Gość
Problem z Makefile
« dnia: 2011-10-19, 09:18:47 »
Witam,
Mam nadzieję, że piszę w dobrym dziale. Mam problem z plikiem Makefile.config pewnego programu chemicznego (dalton). Mianowicie dostaje błąd
Makefile.config:41: *** brakujący separator. Stop.
, który oznacza, z tego co wygoglowałem, że brakuje tabulacji w 41 linii. Problem w tym, że nie mam tej linii w tym pliku.
ARCH        = linux
FMMDIR      = mm
#
#
CPPFLAGS      = -DVAR_G77 -DMOD_FMM -DSYS_LINUX -D_FILE_OFFSET_BITS=64 -DVAR_MFDS -D'INSTALL_WRKMEM=800000' -D'INSTALL_BASDIR="/opt/dalton/basis/"' -DGFORTRAN=443 -DIMPLICIT_NONE
F77            = gfortran
F90            = gfortran
FLNK           = gfortran
CC             = icc
RM             = rm -f
FFLAGS         = -march=x86-64 -O3 -ffast-math -funroll-loops -ftree-vectorize
F90OPTFLAGS    = -march=x86-64 -O3 -ffast-math -funroll-loops -ftree-vectorize -I. -x f95-cpp-input
SAFEFFLAGS     = -march=x86-64 -O3 -ffast-math -funroll-loops -ftree-vectorize
CFLAGS         = -march=x86-64 -O3 -ffast-math -funroll-loops -ftree-vectorize -std=c99 -DRESTRICT=restrict -DFUNDERSCORE=1 -DUSE_UNDERSCORES
INCLUDES       = -I../include
LIBS           = -lf77blas -latlas -llapack
INSTALLDIR     = /opt/dalton
PDPACK_EXTRAS  = linpack.o eispack.o gp_zlapack.o
GP_EXTRAS      =
AR             = ar
ARFLAGS        =  rvs
#
default : linux.x
#
# Suffix rules C
#
.SUFFIXES : .f90 .F .o .c

.f90.o:
-e $(F90) $(INCLUDES) $(CPPFLAGS) $(F90OPTFLAGS) -c $*.f90

.F.o:
-e $(F77) $(INCLUDES) $(CPPFLAGS) $(FFLAGS) -c $*.F

.c.o:
-e $(CC) $(INCLUDES) $(CFLAGS) -c $*.c  # <- ostatni 35 wiersz
Może jakieś inne kodowanie ? Aktualnie mam ustawione na UTF-8. Z góry dzięki za pomoc.
Pozdrawiam.

Offline vanhelzing

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 314
    • Zobacz profil
Problem z Makefile
« Odpowiedź #1 dnia: 2011-10-20, 01:35:17 »
1) Sprawdź, czy to właściwy Makefile.config, bo niektóre aplikacje mają ich kilka w całym drzewie, używane w zależności od konfiguracji. Najlepiej zapodaj finda, żeby się upewnić, że nie ma ich więcej. Możliwe, że próbujesz edytować niewłaściwy, dla niewłaściwej architektury albo inne takie tam.

2) Jeżeli to jedyny i właściwy plik, to możliwe, że jest on wstawiany do pliku Makefile (albo innego) komendą include i wtedy numeracja linii może się zmienić, ale prawdę powiedziawszy nie jestem pewien, w jaki sposób wtedy je numeruje, czy od początku include'a czy pliku głównego, więc to tylko taka sugestia.

3) Niektóre edytory zamieniają tabulacje na spacje. Jeżeli edytowałeś plik, to upewnij się, że masz w opcjach edytora wyłączoną opcję zamiany i sprawdź, czy ich nie podmienił. Prawidłowo, reguła powinna wyglądać, mniej więcej jak poniżej:

.f90.o:
[b][/b]-e $(F90) $(INCLUDES) $(CPPFLAGS) $(F90OPTFLAGS) -c $*.f90
ewentualnie:
.f90.o:
[b][/b]-e $(F90) $(INCLUDES) $(CPPFLAGS) $(F90OPTFLAGS) -c $*.f90
4) Pozostałe linie (w tym puste) nie powinny być poprzedzane tabulacją (jedynie komendy).

5) Kodowanie UTF-8 jest tak zaprojektowane, żeby nie kolidować z kodowaniem ośmiobitowym, więc nie powinien na to wpływać. Znaki końca linii też nie.

6) Upewnij się, że edytor tekstu nie pociął Ci linii w połowie. Najlepiej wyłącz zawijanie linii i ewentualnie połącz je na nowo.