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