Commit 4f858293 authored by Richard Levitte's avatar Richard Levitte
Browse files

Configure: Make it possible to generate mandatory header files



'DEPEND[]=file.h' becomes a special way to say that 'file.h' must be
generated before anything else is built.  It's likely that a number
of source files depend on these header files, this provides a simple
way to make sure they are always generated even it the dependency data
hasn't been added to the build file yet.

Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
parent 7c46746b
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -213,6 +213,9 @@
     }
 }

 # Build mandatory generated headers
 foreach (@{$unified_info{depends}->{""}}) { dogenerate($_); }

 # Build all known libraries, engines, programs and scripts.
 # Everything else will be handled as a consequence.
 foreach (@{$unified_info{libraries}}) { dolib($_);    }
+5 −5
Original line number Diff line number Diff line
@@ -1465,7 +1465,7 @@ if ($builder eq "unified") {
            qr/^\s*INCLUDE\[((?:\\.|[^\\\]])+)\]\s*=\s*(.*)\s*$/
            => sub { push @{$includes{$1}}, tokenize($2)
                         if !@skip || $skip[$#skip] > 0 },
            qr/^\s*DEPEND\[((?:\\.|[^\\\]])+)\]\s*=\s*(.*)\s*$/
            qr/^\s*DEPEND\[((?:\\.|[^\\\]])*)\]\s*=\s*(.*)\s*$/
            => sub { push @{$depends{$1}}, tokenize($2)
                         if !@skip || $skip[$#skip] > 0 },
            qr/^\s*GENERATE\[((?:\\.|[^\\\]])+)\]\s*=\s*(.*)\s*$/
@@ -1689,11 +1689,11 @@ EOF

        foreach (keys %depends) {
            my $dest = $_;
            my $ddest = cleanfile($sourced, $_, $blddir);
            my $ddest = $dest eq "" ? "" : cleanfile($sourced, $_, $blddir);

            # If the destination doesn't exist in source, it can only be
            # a generated file in the build tree.
            if (! -f $ddest) {
            if ($ddest ne "" && ! -f $ddest) {
                $ddest = cleanfile($buildd, $_, $blddir);
                if ($unified_info{rename}->{$ddest}) {
                    $ddest = $unified_info{rename}->{$ddest};
@@ -1710,7 +1710,7 @@ EOF
                if (! -f $d
                    || (grep { $d eq $_ }
                        map { cleanfile($srcdir, $_, $blddir) }
                        (@generated_headers, @generated_by_make_headers))) {
                        grep { /\.h$/ } keys %{$unified_info{generate}})) {
                    $d = cleanfile($buildd, $_, $blddir);
                }
                # Take note if the file to depend on is being renamed
@@ -1720,7 +1720,7 @@ EOF
                $unified_info{depends}->{$ddest}->{$d} = 1;
                # If we depend on a header file or a perl module, let's make
                # sure it can get included
                if ($d =~ /\.(h|pm)$/) {
                if ($dest ne "" && $d =~ /\.(h|pm)$/) {
                    my $i = dirname($d);
                    push @{$unified_info{includes}->{$ddest}}, $i
                        unless grep { $_ eq $i } @{$unified_info{includes}->{$ddest}};