Make sure to escape backslashes and single quotes for buildinf.h
[openssl.git] / util / mkbuildinf.pl
1 #!/usr/local/bin/perl
2
3 my ($cflags, $platform) = @ARGV;
4
5 $cflags = "compiler: $cflags";
6 $date = localtime();
7 print <<"END_OUTPUT";
8 #ifndef MK1MF_BUILD
9     /* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */
10     #define CFLAGS cflags
11     /*
12      * Generate CFLAGS as an array of individual characters. This is a
13      * workaround for the situation where CFLAGS gets too long for a C90 string
14      * literal
15      */
16     static const char cflags[] = {
17 END_OUTPUT
18 my $ctr = 0;
19 foreach my $c (split //, $cflags) {
20     $c =~ s|([\\'])|\\$1|;
21     # Max 18 characters per line
22     if  (($ctr++ % 16) == 0) {
23         if ($ctr != 1) {
24             print "\n";
25         }
26         print "        ";
27     }
28     print "'$c',";
29 }
30 print <<"END_OUTPUT";
31 '\\0'
32     };
33     #define PLATFORM "platform: $platform"
34     #define DATE "built on: $date"
35 #endif
36 END_OUTPUT