Make files work really well on linux. I suggest creating a project directory. In this project directory create three others, build, include, and src. Place your makefile in build. Use the VPATH variable in the makefile (read the gmake docs) set to VPATH=../include ../src. Put all include files in the include directory and all .F files in the src directory. In the make rules use the $< for the .F files will cause make to look in the VPATH for the source and include files. All generated files, .o .mod and executables etc are placed in build. To do a clean rebuild just delete all but the makefile in the build directory. A downside is to be careful not to leave any stray .o or .mod files in include or src as these can be accessed during the build making things confusing.
Complementing Paul Colby suggestions, if you have a relatively simple project (a few source files that compile into an executable) it is easy and simpler to write "by hand" a makefile. The GNU make program even has default rules (ex for *.f, and *.F files) and you don't need to write them. You do need to read the make manual (you know, RTFM), however. If you have a more complex project, ex with a shared library, documentation, auxiliary scripts, etc, it is worthwhile to use the GNU autotools (autoconf, automake, libtools) that manages everything for you, including all the dependencies, library building, autogeneration of makefile, packaging and program instalation in the right places. You do however will have a "learning curve" to overcome!
There are some scripts to generate makefiles with correct module ordering and dependencies, e.g., http://www.geos.ed.ac.uk/homes/hcp/fmkmf . The reason is, in Fortran 90 and higher, the modules must be compiled in the correct order, therefore, the suffix rules probably won't work.
If you have a large code and if you can afford a little learning curve, I'd suggest to use CMake. The good thing is that you don't need to explicitly state the dependencies between the source files, as CMake will figure that out, and generate high quality makefiles for you. If you don't use external libraries you can get away with a very simple CMakeLists.txt, such as this:
cmake_minimum_required(VERSION 2.8)
project(hello_world Fortran)
set(SOURCES
hello.h
hello.f90
)
add_executable(hello ${SOURCES})
For more advanced setups there is a lot of functionality, and it is all described on: www.cmake.org