У меня есть библиотека C, GPTL, которая собрана с помощью libtool. (https://github.com/jmrosinski/GPTL)
У меня есть библиотека-оболочка Fortran, GPTL-fortran, которая вызывает библиотеку C. (https://github.com/NOAA-GSD/GPTL-fortran)
У меня есть третий репозиторий github, GPTL-all. (https://github.com/NOAA-GSD/GPTL-all). Я хотел бы использовать AC_CONFIG_SUBDIR, чтобы GPTL-все собирали библиотеки C и fortran.
Проблема в том, что библиотека Fortran зависит от библиотеки C. При отдельной сборке сначала создается и устанавливается библиотека C, затем библиотека Fortran строится с параметрами CPPFLAGS и LDFLAGS, указывающими на расположение установленной библиотеки C.
Есть ли способ добиться этого с помощью комбинированного пакета, который устанавливает библиотеки C и Fortran?
Вот что у меня есть до сих пор:
# This is the autoconf file for GPTL-all, a combined C and Fortran
# library distribution.
AC_PREREQ([2.69])
AC_INIT([GPTL-all], [1.0.0], [[email protected]])
# Find out about the host we're building on.
AC_CANONICAL_HOST
# Find out about the target we're building for.
AC_CANONICAL_TARGET
# Initialize automake.
AM_INIT_AUTOMAKE([foreign subdir-objects])
# Keep macros in an m4 directory.
AC_CONFIG_MACRO_DIR([m4])
# Set up libtool.
LT_PREREQ([2.4])
LT_INIT()
AC_CONFIG_FILES([Makefile])
AC_CONFIG_SUBDIRS([GPTL
GPTL-fortran])
AC_OUTPUT
Но это не удается. Когда я запускаю configure, он отлично запускает конфигурацию библиотеки C. Но настроить библиотеку fortran не удается, потому что она проверяет наличие библиотеки C:
checking for GPTLinitialize in -lgptl... no
configure: error: Can't find or link to the GPTL C library.
configure: error: ./configure failed for GPTL-fortran
Как я могу заставить GPTL-fortran зависеть от GPTL?