IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Fortran Discussion :

Compiler FishPack90 sous Linux


Sujet :

Fortran

  1. #1
    Membre régulier Avatar de moomba
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Points : 104
    Points
    104
    Par défaut Compiler FishPack90 sous Linux
    Bonjour

    je souhaite compiler la librairie FishPack90 permettant de résoudre une équation de Poisson (Helmoltz) 2D.

    Cependant, a la fin de la compilation, je reçoit ceci comme erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    make: *** Pas de règle pour fabriquer la cible « testfish », nécessaire pour « all ». Arrêt.
    Je précise que j'ai un peu modifié le makefile d'origine pour coller à ma configuration. Je vous donne donc le makefile d'origine, et celui modifié :

    Makefile d'origine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    include make.inc
     
    all: libfish testfish
     
    libfish:
    	mkdir -p ./lib
    	mkdir -p ./objs
    	( cd ./src; $(MAKE) clean; $(MAKE) )
     
    testfish:
    	( cd ./test; $(MAKE) clean; $(MAKE) )
     
    clean:
    	( cd ./src; $(MAKE) clean; cd ../test; $(MAKE) clean )
    make.inc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    LIB=../lib/libfish90.a
     
    UNAMES := $(shell uname -s)
     
    ifeq ($(UNAMES),Linux)
     
      PGI := $(shell pgf90 2>&1)
     
      ifeq ($(PGI),pgf90-Warning-No files to process)
     
        F90 := pgf90 -module ../lib -I../lib
        CPP := pgf90 -E
     
      else
     
        F90 := g95 -DG95 -g -fmod=../lib -I../lib 
        CPP := g95 -E -DG95
     
      endif
     
      MAKE := gmake
      AR := /usr/bin/ar
     
    endif
     
    ifeq ($(UNAMES),AIX)
     
      F90 := xlf -qmoddir=../lib -I../lib
      CPP := xlf -d -qnoobject
      MAKE := gmake
      AR := /usr/bin/ar
     
    endif
     
    ifeq ($(UNAMES),SunOS)
     
        AR := /usr/ccs/bin/ar
        F90 := /opt/SUNWspro/bin/f90 -moddir=../lib -I../lib
        CPP := /opt/SUNWspro/bin/f90 -F
        MAKE := /fs/local/bin/make
     
    endif
     
    ifeq ($(UNAMES),IRIX64)
     
        AR := /usr/bin/ar
        F90 := f90 -I../lib
        CPP := f90 -E
        MAKE := /usr/local/bin/gmake
     
    endif
    Dans src :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    include ../make.inc
     
    SRC=fish.f blktri.f cblktri.f cmgnbn.f comf.f fftpack.f \
        genbun.f gnbnaux.f hstcrt.f hstcsp.f hstcyl.f hstplr.f \
        hstssp.f hw3crt.f hwscrt.f hwscsp.f hwscyl.f hwsplr.f \
        hwsssp.f pois3d.f poistg.f sepaux.f sepeli.f sepx4.f
     
    OBJ=$(subst .f,.o,$(SRC))
    OBJS=$(addprefix ../objs/,$(OBJ))
     
     
    $(LIB) : $(OBJS)
    	$(AR) -rv $@ $? 
     
    ifeq ($(UNAMES),AIX)
     
    fish.f : fish.F
    	$(CPP) $< ; mv F$@ $@
     
    endif
     
    ifeq ($(UNAMES),SunOS)
     
    fish.f : fish.F
    	$(CPP) $<
     
    endif
     
    ifeq ($(UNAMES),Linux)
     
    fish.f : fish.F
    	$(CPP) $< > $@
     
    endif
     
    ifeq ($(UNAMES),IRIX64)
     
    fish.f : fish.F
    	$(CPP) $< > $@
     
    ../objs/fish.o : fish.f
    	$(F90) -c $< -o $@; mv FISH.mod ../lib
     
    ../objs/%.o : %.f
    	$(F90) -c $< -o $@
     
    endif
     
    ifneq ($(UNAMES),IRIX64)
     
    ../objs/%.o : %.f
    	$(F90) -c $< -o $@
     
    endif
     
    clean:
    	rm -f $(LIB) $(OBJS) ../lib/fish.mod ../lib/FISH.mod fish.f
    Et dans test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    include ../make.inc
     
    SRC=tblktri.f tcblktri.f tcmgnbn.f tgenbun.f \
        thstcrt.f thstcsp.f thstcyl.f thstplr.f thstssp.f \
        thw3crt.f thwscrt.f thwscsp.f thwscyl.f thwsplr.f \
        thwsssp.f tpois3d.f tpoistg.f tsepeli.f tsepx4.f
     
    EXES=$(subst .f,.exe, $(SRC))
     
    all : $(EXES)
     
    $(EXES) : $(SRC)
     
    %.exe : %.f
    	rm -f $@
    	$(F90) -I../lib $< -o $@ -L../lib -l fish90
    	./$@
     
     
    clean :
    	rm -f $(EXES)


    Et ma version un peu modifiée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    include make.inc
    
    all: libfish testfish
    
    libfish:
    	mkdir -p ./lib
    	mkdir -p ./objs
    	( cd ./src; $(MAKE) clean; $(MAKE) )
    
    #testfish:
    #	( cd ./test; $(MAKE) clean; $(MAKE) )
    
    clean:
    	( cd ./src; $(MAKE) clean; cd ../test; $(MAKE) clean )
    make.inc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    LIB=../lib/libfish90.a
    
    UNAMES := $(shell uname -s)
    
    ifeq ($(UNAMES),Linux)
    
    #  PGI := $(shell pgf90 2>&1)
    
    #  ifeq ($(PGI),pgf90-Warning-No files to process)
    
    #    F90 := pgf90 -module ../lib -I../lib
    #    CPP := pgf90 -E
    
    #  else
    
    #    F90 := g95 -DG95 -g -fmod=../lib -I../lib 
    #    CPP := g95 -E -DG95
    
    #  endif
    
      F90 := gfortran -fdefault-real-8 -g -O3 -o ../lib -I../lib
      CPP := gfortran -E
      MAKE := make
      AR := /usr/bin/ar
    
    endif
    
    ifeq ($(UNAMES),AIX)
    
      F90 := xlf -qmoddir=../lib -I../lib
      CPP := xlf -d -qnoobject
      MAKE := gmake
      AR := /usr/bin/ar
    
    endif
    
    ifeq ($(UNAMES),SunOS)
    
        AR := /usr/ccs/bin/ar
        F90 := /opt/SUNWspro/bin/f90 -moddir=../lib -I../lib
        CPP := /opt/SUNWspro/bin/f90 -F
        MAKE := /fs/local/bin/make
    
    endif
    
    ifeq ($(UNAMES),IRIX64)
    
        AR := /usr/bin/ar
        F90 := f90 -I../lib
        CPP := f90 -E
        MAKE := /usr/local/bin/gmake
    
    endif
    Désolé pour la quantité de données.

    Auriez vous une idée de l'origine de cette erreur ?

    Merci d'avance
    "Celui qui à le pouvoir de faire le mal, mais qui ne le fait pas, celui là est le prince de l'univers." (shakespeare)

  2. #2
    Membre régulier Avatar de moomba
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Points : 104
    Points
    104
    Par défaut
    Problème résolus, j'ai réussis à compiler une partie de FISHPACK90, cela me suffit, même si ce n'est pas très propre, ça marche.

    Désolé du dérangement.
    "Celui qui à le pouvoir de faire le mal, mais qui ne le fait pas, celui là est le prince de l'univers." (shakespeare)

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    bonjour,

    pour info, en changeant la ligne suivant cela va fonctionner:

    en

    C'est parce que tu as supprimé la cible "testfish" du Makefile, donc il faut la supprimer de la liste des dépendences de la cible "all".

  4. #4
    Membre régulier Avatar de moomba
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Points : 104
    Points
    104
    Par défaut
    Effectivement, je peut compiler FishPack en entier maintenant.

    Merci beaucoup , et désolé du retard de ma réponse
    "Celui qui à le pouvoir de faire le mal, mais qui ne le fait pas, celui là est le prince de l'univers." (shakespeare)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de compilation wxwidgets sous Linux
    Par Zoloom dans le forum wxWidgets
    Réponses: 0
    Dernier message: 12/05/2008, 01h50
  2. [Lazarus] Compilation Qt sous Linux
    Par ilikeit dans le forum Lazarus
    Réponses: 0
    Dernier message: 12/01/2008, 10h07
  3. compiler proc sous linux Red hat
    Par amigauss dans le forum Administration système
    Réponses: 2
    Dernier message: 17/04/2007, 11h45
  4. Compilation ADA sous Linux x86-64
    Par guitouu dans le forum Ada
    Réponses: 2
    Dernier message: 05/10/2006, 04h16
  5. [Kylix] Compiler FMA
    Par dodik dans le forum EDI
    Réponses: 1
    Dernier message: 17/01/2005, 10h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo