Unified - Adapt the Unix and VMS templates to support GENERATE
authorRichard Levitte <levitte@openssl.org>
Mon, 7 Mar 2016 13:38:54 +0000 (14:38 +0100)
committerRichard Levitte <levitte@openssl.org>
Mon, 7 Mar 2016 17:25:56 +0000 (18:25 +0100)
Reviewed-by: Rich Salz <rsalz@openssl.org>
Configurations/descrip.mms.tmpl
Configurations/unix-Makefile.tmpl

index ef59d42..157ebb5 100644 (file)
@@ -407,6 +407,21 @@ configdata.pm : {- join(" ", sourcefile("Configurations", "descrip.mms.tmpl"), s
 {-
   use File::Basename;
   use File::Spec::Functions qw/abs2rel rel2abs catfile catdir/;
+
+  sub generatesrc {
+      my %args = @_;
+      my $generator = join(" ", @{$args{generator}});
+
+      if ($args{src} !~ /\.[sS]$/) {
+          return <<"EOF";
+$args{src} : $args{generator}->[0]
+       \$(PERL) $generator > \$@
+EOF
+      } else {
+          die "No method to generate assembler source present.\n";
+      }
+  }
+
   sub src2obj {
       my %args = @_;
       my $obj = $args{obj};
index 50dafd2..226f5bd 100644 (file)
@@ -816,6 +816,43 @@ configdata.pm: {- $config{build_file_template} -} $(SRCDIR)/Configurations/commo
       return map { shlib_simple($_) } @_;
   }
 
+  sub generatesrc {
+      my %args = @_;
+      my $generator = join(" ", @{$args{generator}});
+
+      if ($args{src} !~ /\.[sS]$/) {
+          return <<"EOF";
+$args{src}: $args{generator}->[0]
+       \$(PERL) $generator > \$@
+EOF
+      } else {
+          if ($args{generator}->[0] =~ /\.[sS]$/) {
+              return <<"EOF";
+$args{src}: $args{generator}->[0]
+       \$(CC) \$(CFLAGS) -E \$< > \$@
+EOF
+          } elsif ($args{generator}->[0] =~ /\.pl$/) {
+             return <<"EOF";
+$args{src}: $args{generator}->[0]
+       ( trap "rm -f \$@.S" INT; \\
+         CC="\$(CC)" \$(PERL) $generator \$@.S; \\
+         if grep '^#' \$@.S >/dev/null; then \\
+             \$(CC) -E -P \$@.S > \$@ && rm -f \$@.S; \\
+         else \\
+             mv \$@.S \$@; \\
+         fi )
+EOF
+          } elsif ($args{generator}->[0] =~ /\.m4$/) {
+              return <<"EOF";
+$args{src}: $args{generator}->[0]
+       m4 -B 8192 $generator > \$@
+EOF
+          } else {
+              die "Generator type for $args{src} unknown: $args{generator}\n";
+          }
+      }
+  }
+
   sub src2obj {
       my %args = @_;
       my $obj = $args{obj};