| #! /usr/bin/env perl |
| # Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. |
| # |
| # Licensed under the Apache License 2.0 (the "License"). You may not use |
| # this file except in compliance with the License. You can obtain a copy |
| # in the file LICENSE in the source distribution or at |
| # https://www.openssl.org/source/license.html |
| |
| use strict; |
| use warnings; |
| |
| my ($cflags, $platform) = @ARGV; |
| $cflags = "compiler: $cflags"; |
| |
| my $date = gmtime($ENV{'SOURCE_DATE_EPOCH'} || time()) . " UTC"; |
| |
| print <<"END_OUTPUT"; |
| /* |
| * WARNING: do not edit! |
| * Generated by util/mkbuildinf.pl |
| * |
| * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. |
| * |
| * Licensed under the Apache License 2.0 (the "License"). You may not use |
| * this file except in compliance with the License. You can obtain a copy |
| * in the file LICENSE in the source distribution or at |
| * https://www.openssl.org/source/license.html |
| */ |
| |
| #define PLATFORM "platform: $platform" |
| #define DATE "built on: $date" |
| |
| /* |
| * Generate compiler_flags 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 compiler_flags[] = { |
| END_OUTPUT |
| |
| my $ctr = 0; |
| foreach my $c (split //, $cflags) { |
| $c =~ s|([\\'])|\\$1|; |
| # Max 16 characters per line |
| if (($ctr++ % 16) == 0) { |
| if ($ctr != 1) { |
| print "\n"; |
| } |
| print " "; |
| } |
| print "'$c',"; |
| } |
| print <<"END_OUTPUT"; |
| '\\0' |
| }; |
| END_OUTPUT |