Fortran-FOSS-Programmers / FOODIE

Fortran Object-Oriented Differential-equations Integration Environment, FOODIE
127 stars 30 forks source link

No rule to make target 'pyplot_module.f90' #29

Closed tkoenig1 closed 8 years ago

tkoenig1 commented 8 years ago

Hello,

I wanted to give the package a spin and ran into what appears to be a Makefile problem:

ig25@linux-fd1f:~/Downloads/FOODIE-master> make make FC=gfortran FCFLAGS="-cpp -g -O0 -C -fbacktrace" --directory=src/lib make[1]: Entering directory '/home/ig25/Downloads/FOODIE-master/src/lib' ln -sfv ../../external/pyplot-fortran/src/pyplot_module.f90 . „./pyplot_module.f90“ -> „../../external/pyplot-fortran/src/pyplot_module.f90“ make foodie make[2]: Entering directory '/home/ig25/Downloads/FOODIE-master/src/lib' gfortran -c -cpp -g -O0 -C -fbacktrace foodie_kinds.f90 gfortran -c -cpp -g -O0 -C -fbacktrace foodie_adt_integrand.f90 gfortran -c -cpp -g -O0 -C -fbacktrace foodie_integrator_adams_bashforth.f90 gfortran -c -cpp -g -O0 -C -fbacktrace foodie_integrator_adams_moulton.f90 gfortran -c -cpp -g -O0 -C -fbacktrace foodie_integrator_adams_bashforth_moulton.f90 gfortran -c -cpp -g -O0 -C -fbacktrace foodie_integrator_euler_explicit.f90 gfortran -c -cpp -g -O0 -C -fbacktrace foodie_integrator_leapfrog.f90 gfortran -c -cpp -g -O0 -C -fbacktrace foodie_integrator_low_storage_runge_kutta.f90 gfortran -c -cpp -g -O0 -C -fbacktrace foodie_integrator_embedded_runge_kutta.f90 gfortran -c -cpp -g -O0 -C -fbacktrace foodie_integrator_tvd_runge_kutta.f90 make[2]: * No rule to make target 'pyplot_module.f90', needed by 'pyplot_module.o'. Schluss. make[2]: Leaving directory '/home/ig25/Downloads/FOODIE-master/src/lib' Makefile:25: recipe for target 'all' failed make[1]: * [all] Error 2 make[1]: Leaving directory '/home/ig25/Downloads/FOODIE-master/src/lib' Makefile:35: recipe for target 'foodie' failed make: *\ [foodie] Error 2

Did I miss anything? Is there something wrong with my environment?

This is on x86_64-pc-linux-gnu using a patched gfortran.

milancurcic commented 8 years ago

Thanks @tkoenig1. You are correct, Makefile is not up-to-date with the current snapshot of the master branch of FOODIE. Should be fixed later today, I will post here when it is ready.

milancurcic commented 8 years ago

It is fixed now. @tkoenig1 can you give it a try? Make sure you clone with --recursive to download the dependencies as well.

tkoenig1 commented 8 years ago

I downloaded the new zip file (so I should have everything) and got further, but not all the way. It now fails in FLAP.

make[2]: Leaving directory '/home/ig25/Downloads/FOODIE-master/src/lib' ar ruv libfoodie.a foodie_adt_integrand.o foodie_integrator_adams_bashforth.o foodie_integrator_adams_bashforth_moulton.o foodie_integrator_adams_moulton.o foodie_integrator_backward_differentiation_formula.o foodie_integrator_euler_explicit.o foodie_integrator_leapfrog.o foodie_integrator_low_storage_runge_kutta.o foodie_integrator_embedded_runge_kutta.o foodie_integrator_tvd_runge_kutta.o foodie_kinds.o ar: creating libfoodie.a a - foodie_adt_integrand.o a - foodie_integrator_adams_bashforth.o a - foodie_integrator_adams_bashforth_moulton.o a - foodie_integrator_adams_moulton.o a - foodie_integrator_backward_differentiation_formula.o a - foodie_integrator_euler_explicit.o a - foodie_integrator_leapfrog.o a - foodie_integrator_low_storage_runge_kutta.o a - foodie_integrator_embedded_runge_kutta.o a - foodie_integrator_tvd_runge_kutta.o a - foodie_kinds.o make[1]: Leaving directory '/home/ig25/Downloads/FOODIE-master/src/lib' Building flap (third-party library) make FC=gfortran OPTSC="-cpp -g -O0 -C -fbacktrace"" -c" --directory=/home/ig25/Downloads/FOODIE-master/src/third_party/FLAP make[1]: Entering directory '/home/ig25/Downloads/FOODIE-master/src/third_party/FLAP' make[1]: * No targets specified and no makefile found. Stop. make[1]: Leaving directory '/home/ig25/Downloads/FOODIE-master/src/third_party/FLAP' Makefile:48: recipe for target 'flap' failed make: * [flap] Error 2

milancurcic commented 8 years ago

The build sequence is failing at the missing dependencies. I don't think the dependencies are included in the package if you download master.zip. Instead, clone the repository using git:

git clone --recursive https://github.com/Fortran-FOSS-Programmers/FOODIE

or

git clone https://github.com/Fortran-FOSS-Programmers/FOODIE
cd FOODIE
git submodule update --init --recursive

In the case you don't have git available on your system, you will have to download the dependencies (https://github.com/szaghi/FLAP, https://github.com/szaghi/IR_Precision, https://github.com/jacobwilliams/pyplot-fortran) separately and place them in the right place where FOODIE wants them, see https://github.com/Fortran-FOSS-Programmers/FOODIE/tree/master/src/third_party.

tkoenig1 commented 8 years ago

Yes, it works now.

Thanks for the quick fix!

rouson commented 8 years ago

On Dec 28, 2015, at 2:35 PM, Milan Curcic notifications@github.com wrote: //github.com/Fortran-FOSS-Programmers/FOODIE cd FOODIE git submodule update --init --recursive In the case you don't have git available on your system, you will have to download the dependencies (https://github.com/szaghi/FLAP https://github.com/szaghi/FLAP, https://github.com/szaghi/IR_Precision https://github.com/szaghi/IR_Precision, https://github.com/jacobwilliams/pyplot-fortran https://github.com/jacobwilliams/pyplot-fortran) separately and place them in the right place where FOODIE wants them, see https://github.com/Fortran-FOSS-Programmers/FOODIE/tree/master/src/third_party https://github.com/Fortran-FOSS-Programmers/FOODIE/tree/master/src/third_party.

I’ve been curious about whether the OpenCoarrays installation script might be useful to other projects and I’d be glad to walk you through it by phone sometime in case you think it might be helpful to you.

The script recursively traverses our dependency tree, downloads each missing prerequisite, and builds it. At each node in the tree, it checks first whether the package is in the user’s PATH or in the default location in which the script might have installed it on a previous pass. If it finds the package in the PATH, it checks the version. If it’s not in the PATH, not in the default location where the script installs it, or is in the path but isn’t sufficiently recent, then the script downloads it after prompting the user for permission. If the downloaded package has prerequisites, then the script moves further down the dependency tree until it reaches a package that either is already installed and has a sufficient version or does not have any prerequisites. Then it works its way back up the tree building everything along the way.

It will be a few weeks before I have time to generalize the script to make it useful for other projects, but I at least wanted to put it on your radar in case it seems like it might be of interest.

Damian

szaghi commented 8 years ago

@rouson and all,

Yes, tge OpenCoarrays install script could be surely helpful, thank you very much! Indeed, I am following your work ever ... I always aware of your great OC progress :-)

Today I shoukd have some time to work on our projects, but I will come back completely on 7th Jan.

Best wishes.

@milancurcic great work, thank you very much! Late in thus day I will gife you some feedbacks.