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 :
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é :
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.
Makefile d'origine :
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 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 )
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 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
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
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
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 :
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 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 )
Désolé pour la quantité de données.
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
Auriez vous une idée de l'origine de cette erreur ?
Merci d'avance
Partager