Advanced usage¶
You can specify preprocessor macros with -D
and search paths with -I
:
fortdepend -DMACRO=42 -Isome/include/dir -o Makefile.dep
will replace instances of MACRO
with 42
according to the usual
C99 preprocessor rules. This can be used to conditionally use
some
modules or change which module is used at compile time.
Full command line arguments:
Generate Fortran dependencies
usage: fortdepend [-h] [-f FILES [FILES ...]] [-D NAME[=DESCRIPTION]
[NAME[=DESCRIPTION] ...]] [-I dir] [-b BUILD] [-o OUTPUT]
[-g] [-v] [-w] [-c] [-e EXCLUDE_FILES [EXCLUDE_FILES ...]]
[-i IGNORE_MODULES [IGNORE_MODULES ...]] [-s] [-n]
[--version]
Named Arguments¶
- -f, --files
Files to process
- -D
Preprocessor define statements
- -I
Add dir to the preprocessor search path
- -b, --build
Build Directory (prepended to all files in output)
Default: “”
- -o, --output
Output file
- -g, --graph
Make a graph of the project
Default: False
- -v, --verbose
explain what is done
Default: False
- -w, --overwrite
Overwrite output file without warning
Default: False
- -c, --colour
Print in colour
Default: False
- -e, --exclude-files
Files to exclude
- -i, --ignore-modules
Modules to ignore
- -s, --skip-programs
Don’t include programs in the output file
Default: False
- -n, --no-preprocessor
Don’t use the preprocessor
Default: False
- --version
show program’s version number and exit
Here’s a slightly more advanced example of how to use
fortdepend
in your makefiles:
# Script to generate the dependencies
MAKEDEPEND=/path/to/fortdepend
# $(DEP_FILE) is a .dep file generated by fortdepend
DEP_FILE = my_project.dep
# Preprocessor flags
CPPFLAGS = -DFEATURE -Iinclude/dir
# Source files to compile
OBJECTS = mod_file1.f90 \
mod_file2.f90
# Make sure everything depends on the .dep file
all: $(actual_executable) $(DEP_FILE)
# Make dependencies
.PHONY: depend
depend: $(DEP_FILE)
# The .dep file depends on the source files, so it automatically gets updated
# when you change your source
$(DEP_FILE): $(OBJECTS)
@echo "Making dependencies!"
cd $(SRCPATH) && $(MAKEDEPEND) -w -o /path/to/$(DEP_FILE) $(CPPFLAGS) -f $(OBJECTS)
include $(DEP_FILE)
This will automatically rebuild the dependency file if any of the source files change. You might not like to do this if you have a lot of files and need to preprocess them!