summaryrefslogtreecommitdiffstats
path: root/exporters
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2023-05-03 12:29:00 +0200
committerRichard Levitte <levitte@openssl.org>2023-11-15 08:22:29 +0100
commit2ac569a67b9d0980efa2d8061a6a61e0645f37a7 (patch)
treed10a44241363b75c52cdc14c839ae6ee8ff77503 /exporters
parentfe487609c17dac049f867f230e09ee090b65e966 (diff)
Clean up exporters, specifically those we have for pkg-config
The pkg-config exporters were a special hack, all in Configurations/unix-Makefile.tmpl, and this was well and good as long as that was the only main package interface configuration system that we cared about. Things have changed, though, so we move the pkg-config production to be templatable in a more flexible manner. Additional templates for other interface configuration systems can then be added fairly easily. Two variants of the .pc files are produced: - Those in 'exporters/' are installed in the location that 'pkg-config' itself prefers for installed packages. - Those in the top directory are to be used when it's desirable to build directly against an OpenSSL build tree. Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/20878)
Diffstat (limited to 'exporters')
-rw-r--r--exporters/build.info16
-rw-r--r--exporters/pkg-config/libcrypto.pc.in11
-rw-r--r--exporters/pkg-config/libssl.pc.in9
-rw-r--r--exporters/pkg-config/openssl.pc.in7
4 files changed, 43 insertions, 0 deletions
diff --git a/exporters/build.info b/exporters/build.info
new file mode 100644
index 0000000000..503e15e8e8
--- /dev/null
+++ b/exporters/build.info
@@ -0,0 +1,16 @@
+# For installation: libcrypto.pc, libssl.pc, and openssl.pc
+GENERATE[libcrypto.pc]{exporter=pkg-config}=pkg-config/libcrypto.pc.in
+DEPEND[libcrypto.pc]=../installdata.pm
+GENERATE[libssl.pc]{exporter=pkg-config}=pkg-config/libssl.pc.in
+DEPEND[libssl.pc]=../installdata.pm
+GENERATE[openssl.pc]{exporter=pkg-config}=pkg-config/openssl.pc.in
+DEPEND[openssl.pc]=../installdata.pm
+DEPEND[openssl.pc]=libcrypto.pc libssl.pc
+
+DEPEND[""]=openssl.pc
+
+GENERATE[../installdata.pm]=../util/mkinstallvars.pl \
+ "PREFIX=$(INSTALLTOP)" BINDIR=bin "LIBDIR=$(LIBDIR)" \
+ INCLUDEDIR=include APPLINKDIR=include/openssl \
+ "ENGINESDIR=$(ENGINESDIR)" "MODULESDIR=$(MODULESDIR)" \
+ "VERSION=$(VERSION)" "LDLIBS=$(LIB_EX_LIBS)"
diff --git a/exporters/pkg-config/libcrypto.pc.in b/exporters/pkg-config/libcrypto.pc.in
new file mode 100644
index 0000000000..14ed339f3c
--- /dev/null
+++ b/exporters/pkg-config/libcrypto.pc.in
@@ -0,0 +1,11 @@
+libdir={- $OpenSSL::safe::installdata::LIBDIR -}
+includedir={- $OpenSSL::safe::installdata::INCLUDEDIR -}
+enginesdir={- $OpenSSL::safe::installdata::ENGINESDIR -}
+modulesdir={- $OpenSSL::safe::installdata::MODULESDIR -}
+
+Name: OpenSSL-libcrypto
+Description: OpenSSL cryptography library
+Version: {- $OpenSSL::safe::installdata::VERSION -}
+Libs: -L${libdir} -lcrypto
+Libs.private: {- join(' ', @OpenSSL::safe::installdata::LDLIBS) -}
+Cflags: -I${includedir}
diff --git a/exporters/pkg-config/libssl.pc.in b/exporters/pkg-config/libssl.pc.in
new file mode 100644
index 0000000000..a7828b3cc6
--- /dev/null
+++ b/exporters/pkg-config/libssl.pc.in
@@ -0,0 +1,9 @@
+libdir={- $OpenSSL::safe::installdata::LIBDIR -}
+includedir={- $OpenSSL::safe::installdata::INCLUDEDIR -}
+
+Name: OpenSSL-libssl
+Description: Secure Sockets Layer and cryptography libraries
+Version: {- $OpenSSL::safe::installdata::VERSION -}
+Requires.private: libcrypto
+Libs: -L${libdir} -lssl
+Cflags: -I${includedir}
diff --git a/exporters/pkg-config/openssl.pc.in b/exporters/pkg-config/openssl.pc.in
new file mode 100644
index 0000000000..dbb77aa39a
--- /dev/null
+++ b/exporters/pkg-config/openssl.pc.in
@@ -0,0 +1,7 @@
+libdir={- $OpenSSL::safe::installdata::LIBDIR -}
+includedir={- $OpenSSL::safe::installdata::INCLUDEDIR -}
+
+Name: OpenSSL
+Description: Secure Sockets Layer and cryptography libraries and tools
+Version: {- $OpenSSL::safe::installdata::VERSION -}
+Requires: libssl libcrypto