Доброго времени суток!
Почему make выполняет только первую цель, после чего завершает работу?
IFORT = gfortran
FT = $(IFORT) -c
LK = $(IFORT)
.PHONY = clean
prog_mod2.o : prog_mod2.f90
$(FT) prog_mod2.f90
prog_mod.o: prog_mod.f90
$(FT) prog_mod.f90
prog.o: prog.f90
$(FT) prog.f90
prog.exe: prog_mod.o prog_mod2.o prog.o
$(LK) prog_mod.o prog_mod2.o prog.o
clean:
rm -f *.o *.mod *~ */*~ *.swp
-------------------------------------
В итоге =>
$ make
make: `prog_mod2.o' не требует обновления.
-------------------------------------
В итоге на этом всё обрывается...(((
Make
Разобрался сам!
Разобрался сам!
в таких случаях принято писать решение.
При вызову программы нужно указать цель (что я раньше не делал по неопытности и незнанию), т.е.
--------------
$make all
gfortran -c prog_mod.f90
gfortran -c prog_mod2.f90
gfortran -c prog.f90
gfortran -o prog.exe prog_mod.o prog_mod2.o prog.o
./prog.exe
rm -f *.o *.mod *~ */*~ *.swp *.txt *.exe *.out
------------
Makefile здесь следующий
-------------
IFORT = gfortran
FT = $(IFORT) -c
LK = $(IFORT)
.PHONY = clean
prog_mod2.o : prog_mod2.f90
$(FT) prog_mod2.f90
prog_mod.o : prog_mod.f90
$(FT) prog_mod.f90
prog.o : prog.f90
$(FT) prog.f90
prog.exe : prog_mod.o prog_mod2.o prog.o
$(LK) -o prog.exe prog_mod.o prog_mod2.o prog.o
prog.run : prog.exe
./prog.exe
clean :
rm -f *.o *.mod *~ */*~ *.swp *.txt *.exe *.out
all : prog.run clean
-------------
При вызову программы нужно указать цель
не совсем верно... достаточно было просто поставить основную цель первой. обычно это all