我正在尝试使用gnu-autotools构建我的fortran项目。 最初,我在Makefile.am中手动提供所有依赖:
bin_PROGRAMS = kkr
kkr_SOURCES = src/constants.f90 src/init.f90 src/util.f90\
src/main.f90 src/symgen.f90 src/mainmodule.f90 \
src/gengrp.f90 src/linops.f90 src/gencrystal.f90\
src/seitz.f90 src/spgdat.f90
src/constants.o : src/constants.f90
src/gencrystal.o : src/gencrystal.f90 src/gengrp.o src/spgdat.o src/symgen.o src/mainmodule.o src/constants.o
src/gengrp.o : src/gengrp.f90 src/util.o src/seitz.o src/constants.o
src/init.o : src/init.f90 src/util.o src/constants.o src/mainmodule.o
src/linops.o : src/linops.f90 src/mainmodule.o src/constants.o
src/main.o : src/main.f90 src/gencrystal.o src/init.o src/mainmodule.o src/constants.o
src/mainmodule.o : src/mainmodule.f90 src/constants.o
src/seitz.o : src/seitz.f90 src/mainmodule.o src/constants.o
src/spgdat.o : src/spgdat.f90 src/util.o src/constants.o src/mainmodule.o
src/symgen.o : src/symgen.f90 src/util.o src/constants.o src/mainmodule.o
src/util.o : src/util.f90 src/constants.o
kkr_LDADD =
EXTRA_DIST= autogen.sh
CLEANFILES =*.mod
但很快它的痛苦就会有所帮助。所以,我正在尝试编写Makefile.am,它将检查源代码和构建的依赖项。
我用google搜索,似乎有一个依赖关系的通配符,如{+ 3}}对于c ++和here ..但这些是针对Makefile而不是Makefile.am。
我正在尝试像
这样的东西bin_PROGRAMS = kkr
kkr_SOURCES = $(wildcard ./src/*.f90)
但是,现在,它没有构建:
$ make
make all-am
make[1]: Entering directory '${HOME}/Programs/dream'
gcc -g -O2 -o kkr -llapack
/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
请帮助。