Skip to content

Commit f73592d

Browse files
Fix header and pkg-config file installation (#426)
* Don't install pkg-config files for unbuilt libraries The autotools build is configured to skip entire directories depending on the configuration. Each directory's Makefile is responsible for installing what it needs, and moving the .pc files to the toplevel broke that. In the pkg-config files, leave ${includedir} unmodified from how configure defines it. * Install arpackicb.h only when ICB is ON. --------- Co-authored-by: Franck HOUSSEN <fghoussen@users.noreply.github.com>
1 parent 07dbd37 commit f73592d

File tree

9 files changed

+27
-21
lines changed

9 files changed

+27
-21
lines changed

CHANGES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ arpack-ng - next
1313

1414
[ Kyle Guinn ]
1515
* Build PARPACK p[sd]lamch10.f with FFLAGS from ./configure instead of forcing -O0. Build all of PARPACK with AM_FFLAGS.
16+
* [BUG FIX] Don't install pkg-config files for libraries that were not built.
1617

1718
[ Markus Mützel ]
1819
* CMake: Fix running CTests on Windows.

CMakeLists.txt

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -824,7 +824,7 @@ endif()
824824
set(prefix ${CMAKE_INSTALL_PREFIX})
825825
set(exec_prefix \${prefix})
826826
set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
827-
set(includedir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR})
827+
set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
828828
set(PACKAGE_NAME ${PROJECT_NAME})
829829
set(PACKAGE_VERSION ${arpack_ng_VERSION})
830830
set(PACKAGE_URL "https://github.com/opencollab/arpack-ng/")
@@ -847,15 +847,15 @@ foreach(lib ${LAPACK_LIBRARIES} ${MPI_Fortran_LIBRARIES})
847847
endforeach()
848848
string(REPLACE ";" " " PARPACK_PC_LIBS_PRIVATE "${PARPACK_PC_LIBS_PRIVATE}")
849849

850-
configure_file(pkg-config/arpack.pc.in "${PROJECT_BINARY_DIR}/arpack${LIBSUFFIX}${ITF64SUFFIX}.pc" @ONLY)
851-
configure_file(pkg-config/parpack.pc.in "${PROJECT_BINARY_DIR}/parpack${LIBSUFFIX}${ITF64SUFFIX}.pc" @ONLY)
850+
configure_file(SRC/arpack.pc.in "${PROJECT_BINARY_DIR}/SRC/arpack${LIBSUFFIX}${ITF64SUFFIX}.pc" @ONLY)
851+
configure_file(PARPACK/SRC/MPI/parpack.pc.in "${PROJECT_BINARY_DIR}/PARPACK/SRC/MPI/parpack${LIBSUFFIX}${ITF64SUFFIX}.pc" @ONLY)
852852

853853
install(TARGETS arpack
854854
EXPORT arpackngTargets
855855
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
856856
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
857857
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
858-
install(FILES "${PROJECT_BINARY_DIR}/arpack${LIBSUFFIX}${ITF64SUFFIX}.pc"
858+
install(FILES "${PROJECT_BINARY_DIR}/SRC/arpack${LIBSUFFIX}${ITF64SUFFIX}.pc"
859859
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
860860

861861
if (MPI)
@@ -864,7 +864,7 @@ if (MPI)
864864
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
865865
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
866866
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
867-
install(FILES "${PROJECT_BINARY_DIR}/parpack${LIBSUFFIX}${ITF64SUFFIX}.pc"
867+
install(FILES "${PROJECT_BINARY_DIR}/PARPACK/SRC/MPI/parpack${LIBSUFFIX}${ITF64SUFFIX}.pc"
868868
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
869869
endif ()
870870

@@ -897,8 +897,10 @@ endif()
897897
configure_file(arpackdef.h.in "${PROJECT_BINARY_DIR}/arpackdef.h" @ONLY)
898898
install(FILES "${PROJECT_BINARY_DIR}/arpackdef.h" DESTINATION ${ARPACK_INSTALL_INCLUDEDIR})
899899

900-
configure_file(arpackicb.h.in "${PROJECT_BINARY_DIR}/arpackicb.h" @ONLY)
901-
install(FILES "${PROJECT_BINARY_DIR}/arpackicb.h" DESTINATION ${ARPACK_INSTALL_INCLUDEDIR})
900+
if(ICB)
901+
configure_file(arpackicb.h.in "${PROJECT_BINARY_DIR}/arpackicb.h" @ONLY)
902+
install(FILES "${PROJECT_BINARY_DIR}/arpackicb.h" DESTINATION ${ARPACK_INSTALL_INCLUDEDIR})
903+
endif()
902904

903905
install(EXPORT arpackngTargets
904906
DESTINATION "${ARPACK_INSTALL_CMAKEDIR}"

Makefile.am

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,6 @@ endif
2727
EXTRA_DIST = README.md PARPACK_CHANGES CHANGES DOCUMENTS VISUAL_STUDIO \
2828
detect_arpack_bug.m4 CMakeLists.txt
2929

30-
pkgconfig_DATA = arpack@LIBSUFFIX@@ITF64SUFFIX@.pc parpack@LIBSUFFIX@@ITF64SUFFIX@.pc
31-
3230
cmakedir = $(libdir)/cmake/arpack-ng
3331
cmake_DATA = cmake/arpackng-config-version.cmake \
3432
cmake/arpackng-config.cmake
35-
36-
# Due to the LIBSUFFIX/ITF64SUFFIX, configure doesn't automatically clean this file:
37-
DISTCLEANFILES = arpack@LIBSUFFIX@@ITF64SUFFIX@.pc parpack@LIBSUFFIX@@ITF64SUFFIX@.pc

PARPACK/SRC/MPI/Makefile.am

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,8 @@ if ICB
3939
libparpack@LIBSUFFIX@@ITF64SUFFIX@_la_LIBADD += $(top_builddir)/ICB/libdbgicb.la $(top_builddir)/ICB/libstaicb.la
4040
libparpack@LIBSUFFIX@@ITF64SUFFIX@_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_builddir)
4141
endif
42+
43+
pkgconfig_DATA = parpack@LIBSUFFIX@@ITF64SUFFIX@.pc
44+
45+
# Due to the LIBSUFFIX/ITF64SUFFIX, configure doesn't automatically clean this file:
46+
DISTCLEANFILES = parpack@LIBSUFFIX@@ITF64SUFFIX@.pc
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
prefix=@prefix@
22
exec_prefix=@exec_prefix@
33
libdir=@libdir@
4-
includedir=@includedir@/arpack@ITF64SUFFIX@
4+
includedir=@includedir@
55

66
Name: @PACKAGE_NAME@
77
Description: Collection of Fortran77 subroutines designed to solve large scale eigenvalue problems
@@ -10,4 +10,4 @@ URL: @PACKAGE_URL@
1010
Requires.private: arpack@LIBSUFFIX@@ITF64SUFFIX@
1111
Libs: -L${libdir} -lparpack@LIBSUFFIX@@ITF64SUFFIX@
1212
Libs.private: @PARPACK_PC_LIBS_PRIVATE@
13-
Cflags: -I${includedir}
13+
Cflags: -I${includedir}/arpack@ITF64SUFFIX@

SRC/Makefile.am

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,8 @@ if ICB
3333
libarpack@LIBSUFFIX@@ITF64SUFFIX@_la_LIBADD += $(top_builddir)/ICB/libdbgicb.la $(top_builddir)/ICB/libstaicb.la
3434
libarpack@LIBSUFFIX@@ITF64SUFFIX@_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_builddir)
3535
endif
36+
37+
pkgconfig_DATA = arpack@LIBSUFFIX@@ITF64SUFFIX@.pc
38+
39+
# Due to the LIBSUFFIX/ITF64SUFFIX, configure doesn't automatically clean this file:
40+
DISTCLEANFILES = arpack@LIBSUFFIX@@ITF64SUFFIX@.pc
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
prefix=@prefix@
22
exec_prefix=@exec_prefix@
33
libdir=@libdir@
4-
includedir=@includedir@/arpack@ITF64SUFFIX@
4+
includedir=@includedir@
55

66
Name: @PACKAGE_NAME@
77
Description: Collection of Fortran77 subroutines designed to solve large scale eigenvalue problems
88
Version: @PACKAGE_VERSION@
99
URL: @PACKAGE_URL@
1010
Libs: -L${libdir} -larpack@LIBSUFFIX@@ITF64SUFFIX@
1111
Libs.private: @ARPACK_PC_LIBS_PRIVATE@
12-
Cflags: -I${includedir}
12+
Cflags: -I${includedir}/arpack@ITF64SUFFIX@

configure.ac

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -347,14 +347,12 @@ AC_SUBST([ARPACK_PC_LIBS_PRIVATE], ["$LAPACK_LIBS $BLAS_LIBS"])
347347
AC_SUBST([PARPACK_PC_LIBS_PRIVATE], ["$LAPACK_LIBS $BLAS_LIBS $MPI_Fortran_LIBS"])
348348

349349
AC_CONFIG_FILES([
350-
arpack$LIBSUFFIX$ITF64SUFFIX.pc:pkg-config/arpack.pc.in
351-
parpack$LIBSUFFIX$ITF64SUFFIX.pc:pkg-config/parpack.pc.in
350+
SRC/arpack$LIBSUFFIX$ITF64SUFFIX.pc:SRC/arpack.pc.in
351+
PARPACK/SRC/MPI/parpack$LIBSUFFIX$ITF64SUFFIX.pc:PARPACK/SRC/MPI/parpack.pc.in
352352
], [], [LIBSUFFIX="$LIBSUFFIX"; ITF64SUFFIX="$ITF64SUFFIX"])
353353

354354
dnl We do NOT want arpackng*.cmake files to be created: @MPI@ can not be replaced.
355-
AC_CONFIG_FILES([
356-
tstAutotoolsInstall.sh:pkg-config/tstAutotoolsInstall.sh.in
357-
], [], [abs_top_builddir="$abs_top_builddir"])
355+
AC_CONFIG_FILES([tstAutotoolsInstall.sh], [chmod +x tstAutotoolsInstall.sh], [abs_top_builddir="$abs_top_builddir"])
358356

359357
AC_CONFIG_FILES([
360358
arpackdef.h

0 commit comments

Comments
 (0)