aboutsummaryrefslogtreecommitdiff
path: root/openssl/buildfile
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2018-10-15 21:08:04 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2018-10-17 15:02:42 +0300
commitde91921561092689369b56c54950474e0a86e66f (patch)
treea9949058021d911db1106b1a2e4d9e0e9281de16 /openssl/buildfile
parentfb65c93daaf369157bd712f2c4c20161c4840b94 (diff)
Add implementation
Diffstat (limited to 'openssl/buildfile')
-rw-r--r--openssl/buildfile75
1 files changed, 75 insertions, 0 deletions
diff --git a/openssl/buildfile b/openssl/buildfile
new file mode 100644
index 0000000..ec54bb6
--- /dev/null
+++ b/openssl/buildfile
@@ -0,0 +1,75 @@
+# file : openssl/buildfile -*- C++ -*-
+# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+import libs = libbutl%lib{butl}
+
+./: exe{openssl-client} exe{openssl-agent-pkcs11}
+
+exe{openssl-client}: client/{hxx ixx txx cxx}{* -options} \
+ client/{hxx ixx cxx}{options} libue{openssl}
+
+exe{openssl-agent-pkcs11}: agent/pkcs11/cxx{agent} agent/pkcs11/libue{openssl}
+
+agent/pkcs11/
+{
+ libue{openssl}: bin.whole = false
+ libue{openssl}: cxx.libs += -ldl
+ libue{openssl}: {hxx ixx txx cxx}{* -agent -options -*.test...} \
+ {hxx ixx cxx}{options} h{pkcs11} ../../libue{openssl}
+}
+
+libue{openssl}: bin.whole = false
+libue{openssl}: {hxx ixx txx cxx}{* -options -version -*.test...} \
+ {hxx ixx cxx}{options} {hxx}{version} $libs
+
+hxx{version}: in{version} $src_root/manifest
+
+# Unit tests.
+#
+exe{*.test}: test = true
+exe{*.test}: install = false
+
+for t: cxx{**.test...}
+{
+ d = $directory($t)
+ n = $name($t)...
+
+ ./: $d/exe{$n}
+ $d/exe{$n}: $t $d/{hxx ixx txx}{+$n} $d/testscript{+$n}
+ $d/exe{$n}: $d/libue{openssl}
+}
+
+# Generated options parser.
+#
+if $cli.configured
+{
+ cli.cxx{options}: cli{options}
+ client/cli.cxx{options}: client/cli{options}
+ agent/pkcs11/cli.cxx{options}: agent/pkcs11/cli{options}
+
+ cli.options += -I $src_root --include-with-brackets \
+--cxx-prologue "#include <openssl/types-parsers.hxx>" \
+--cli-namespace openssl::cli --generate-specifier --generate-parse
+
+ cli.cxx{options}: cli.options += --include-prefix openssl \
+--guard-prefix OPENSSL # No usage.
+
+ # Usage options.
+ #
+ cli.options += --suppress-undocumented --long-usage --ansi-color \
+--page-usage 'openssl::print_$name$_' --option-length 20
+
+ client/cli.cxx{options}: cli.options += --include-prefix openssl/client \
+--guard-prefix OPENSSL_CLIENT
+
+ agent/pkcs11/cli.cxx{options}: cli.options += \
+--include-prefix openssl/agent/pkcs11 --guard-prefix OPENSSL_AGENT_PKCS11
+
+ # Include the generated cli files into the distribution and don't remove
+ # them when cleaning in src (so that clean results in a state identical to
+ # distributed).
+ #
+ cli.cxx{*}: dist = true
+ cli.cxx{*}: clean = ($src_root != $out_root)
+}