summaryrefslogtreecommitdiffstats
path: root/util/mkbuildinf.pl
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2014-12-19 10:55:54 +0000
committerMatt Caswell <matt@openssl.org>2014-12-19 14:02:15 +0000
commit488f16e31b8f5ec2513410929325d0830d76762d (patch)
tree35e4c59165bd00bdc762601b26c4d9f37066955f /util/mkbuildinf.pl
parentc0fc27f88ea0933a3e201325fc683b52fe55d848 (diff)
Fix a problem if CFLAGS is too long cversion.c fails to compile when config
is run with --strict-warnings. Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'util/mkbuildinf.pl')
-rwxr-xr-xutil/mkbuildinf.pl35
1 files changed, 35 insertions, 0 deletions
diff --git a/util/mkbuildinf.pl b/util/mkbuildinf.pl
new file mode 100755
index 0000000000..ca02d7b0b2
--- /dev/null
+++ b/util/mkbuildinf.pl
@@ -0,0 +1,35 @@
+#!/usr/local/bin/perl
+
+my ($cflags, $platform) = @ARGV;
+
+$cflags = "compiler: $cflags";
+$date = localtime();
+print <<"END_OUTPUT";
+#ifndef MK1MF_BUILD
+ /* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */
+ #define CFLAGS
+ /*
+ * Generate CFLAGS as an array of individual characters. This is a
+ * workaround for the situation where CFLAGS gets too long for a C90 string
+ * literal
+ */
+ static const char cflags[] = {
+END_OUTPUT
+my $ctr = 0;
+foreach my $c (split //, $cflags) {
+ # Max 18 characters per line
+ if (($ctr++ % 18) == 0) {
+ if ($ctr != 0) {
+ print "\n";
+ }
+ print " ";
+ }
+ print "'$c',";
+}
+print <<"END_OUTPUT";
+'\\0'
+ };
+ #define PLATFORM "platform: $platform"
+ #define DATE "built on: $date"
+#endif
+END_OUTPUT