X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=Configurations%2Fdescrip.mms.tmpl;h=04c008943473481c6c85963530fa7d08de1b26ec;hp=1972314ebf52761ceca99b047fd4e00bbc6911e8;hb=9c5f2ea677ac1ebe87690d8febd2c7e4629c4841;hpb=58d6be5b5de7c46e0c67438bc11d96e717578386 diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl index 1972314ebf..04c0089434 100644 --- a/Configurations/descrip.mms.tmpl +++ b/Configurations/descrip.mms.tmpl @@ -3,6 +3,7 @@ ## {- join("\n## ", @autowarntext) -} {- use File::Spec::Functions qw/:DEFAULT abs2rel rel2abs/; + use File::Basename; # Our prefix, claimed when speaking with the VSI folks Tuesday # January 26th 2016 @@ -54,11 +55,6 @@ our @install_shlibs = map { $unified_info{sharednames}->{$_} || () } grep(!/\.a$/, @{$unified_info{install}->{libraries}}); - our @generated = ( ( map { (my $x = $_) =~ s|\.[sS]$|\.asm|; $x } - grep { defined $unified_info{generate}->{$_} } - map { @{$unified_info{sources}->{$_}} } - grep { /\.o$/ } keys %{$unified_info{sources}} ), - ( grep { /\.h$/ } keys %{$unified_info{generate}} ) ); # This is a horrible hack, but is needed because recursive inclusion of files # in different directories does not work well with HP C. @@ -135,7 +131,12 @@ DEPS={- our @deps = map { (my $x = $_) =~ s|\.o$|\$(DEP_EXT)|; $x; } join(", ", map { "-\n\t".$_ } @deps); -} {- output_on() if $disabled{makedepend}; "" -} GENERATED_MANDATORY={- join(", ", map { "-\n\t".$_ } @{$unified_info{depends}->{""}} ) -} -GENERATED={- join(", ", map { "-\n\t".$_ } @generated) -} +GENERATED={- # common0.tmpl provides @generated + join(", ", map { my $x = $_; + $x =~ s|\.[sS]$|.asm|; + $x =~ s|\.ld$|.OPT|; + "-\n\t".$x } + @generated) -} INSTALL_LIBS={- join(", ", map { "-\n\t".$_.".OLB" } @install_libs) -} INSTALL_SHLIBS={- join(", ", map { "-\n\t".$_.".EXE" } @install_shlibs) -} @@ -176,13 +177,13 @@ ENGINESDIR_C={- $osslprefix -}ENGINES{- $sover_dirname.$target{pointer_size} -}: CC={- $config{CC} -} CPP={- $config{CPP} -} DEFINES={- our $defines1 = join('', map { ",$_" } @{$config{CPPDEFINES}}) -} -INCLUDES={- our $includes1 = join('', map { ",$_" } @{$config{CPPINCLUDES}}) -} +INCLUDES={- our $includes1 = join(',', @{$config{CPPINCLUDES}}) -} CPPFLAGS={- our $cppflags1 = join('', @{$config{CPPFLAGS}}) -} CFLAGS={- join('', @{$config{CFLAGS}}) -} LDFLAGS={- join('', @{$config{LFLAGS}}) -} EX_LIBS={- join('', map { ",$_" } @{$config{LDLIBS}}) -} -PERL={- $config{perl} -} +PERL={- $config{PERL} -} AS={- $config{AS} -} ASFLAGS={- join(' ', @{$config{ASFLAGS}}) -} @@ -197,8 +198,9 @@ ASOUTFLAG={- $target{asoutflag} -}$(OSSL_EMPTY) CNF_ASFLAGS={- join('', $target{asflags} || (), @{$config{asflags}}) -} -CNF_DEFINES={- our $defines2 = join('', map { ",$_" } @{$target{defines}}, - @{$config{defines}}) -} +CNF_DEFINES={- our $defines2 = join('', (map { ",$_" } @{$target{defines}}, + @{$config{defines}}), + "'extradefines'") -} CNF_INCLUDES={- our $includes2 = join(',', @{$target{includes}}, @{$config{includes}}) -} CNF_CPPFLAGS={- our $cppflags2 = join('', $target{cppflags} || (), @@ -225,7 +227,7 @@ LIB_DEFINES={- our $lib_defines = join('', (map { ",$_" } @{$target{lib_defines}}, @{$target{shared_defines}}, @{$config{lib_defines}}, - @{$config{shared_defines}}); + @{$config{shared_defines}})); join('', $lib_defines, (map { ",$_" } 'OPENSSLDIR="""$(OPENSSLDIR_C)"""', 'ENGINESDIR="""$(ENGINESDIR_C)"""'), @@ -241,7 +243,7 @@ LIB_CPPFLAGS={- our $lib_cppflags = @{$config{lib_cppflags}}, @{$config{shared_cppflag}}); join('', "'qual_includes'", - '/DEFINE=(__dummy$(LIB_DEFINES))' + '/DEFINE=(__dummy$(LIB_DEFINES))', $lib_cppflags, '$(CNF_CPPFLAGS)', '$(CPPFLAGS)') -} LIB_CFLAGS={- join('', $target{lib_cflags} || (), @@ -300,8 +302,8 @@ BIN_CPPFLAGS={- join('', "'qual_includes'", $target{bin_cppflags} || (), @{$config{bin_cppflag}}, '$(CNF_CPPFLAGS)', '$(CPPFLAGS)') -} -BIN_CFLAGS={- join('', $target{bin_cflag} || (), - @{$config{bin_cflag}}, +BIN_CFLAGS={- join('', $target{bin_cflags} || (), + @{$config{bin_cflags}}, '$(CNF_CFLAGS)', '$(CFLAGS)') -} BIN_LDFLAGS={- join('', $target{bin_lflags} || (), @{$config{bin_lflags}} || (), @@ -314,12 +316,14 @@ NO_INST_LIB_CFLAGS={- join('', $target{no_inst_lib_cflags} @{$config{lib_cflags}}, @{$config{shared_cflag}}, '$(CNF_CFLAGS)', '$(CFLAGS)') -} -NO_INST_DSO_CFLAGS={- join('', $target{no_inst_lib_cflags} - // $target{lib_cflags} +NO_INST_DSO_CFLAGS={- join('', $target{no_inst_dso_cflags} + // $target{dso_cflags} + // (), + $target{no_inst_module_cflags} + // $target{module_cflags} // (), - $target{dso_cflags} || (), - @{$config{lib_cflags}}, @{$config{dso_cflags}}, + @{$config{module_cflags}}, '$(CNF_CFLAGS)', '$(CFLAGS)') -} NO_INST_BIN_CFLAGS={- join('', $target{no_inst_bin_cflags} // $target{bin_cflags} @@ -417,6 +421,11 @@ build_apps build_tests : build_programs # Convenience target to prebuild all generated files, not just the mandatory # ones build_all_generated : $(GENERATED_MANDATORY) $(GENERATED) + @ ! {- output_off() if $disabled{makedepend}; "" -} + @ WRITE SYS$OUTPUT "Warning: consider configuring with no-makedepend, because if" + @ WRITE SYS$OUTPUT " target system doesn't have $(PERL)," + @ WRITE SYS$OUTPUT " then make will fail..." + @ ! {- output_on() if $disabled{makedepend}; "" -} test : tests {- dependmagic('tests'); -} : build_programs_nodep, build_engines_nodep @@ -488,6 +497,7 @@ clean : libclean {- join("\n\t", map { "- DELETE $_.EXE;*,$_.OPT;*" } @{$unified_info{programs}}) || "@ !" -} {- join("\n\t", map { "- DELETE $_.EXE;*,$_.OPT;*" } @{$unified_info{engines}}) || "@ !" -} {- join("\n\t", map { "- DELETE $_;*" } @{$unified_info{scripts}}) || "@ !" -} + {- join("\n\t", map { "- DELETE $_;*" } @{$unified_info{depends}->{""}}) || "@ !" -} {- join("\n\t", map { "- DELETE $_;*" } @generated) || "@ !" -} - DELETE [...]*.MAP;* - DELETE [...]*.D;* @@ -504,16 +514,7 @@ distclean : clean depend : descrip.mms descrip.mms : FORCE @ ! {- output_off() if $disabled{makedepend}; "" -} - @ $(PERL) -pe "if (/^# DO NOT DELETE.*/) { exit(0); }" - - < descrip.mms > descrip.mms-new - @ OPEN/APPEND DESCRIP descrip.mms-new - @ WRITE DESCRIP "# DO NOT DELETE THIS LINE -- make depend depends on it." - {- join("\n\t", map { "\@ IF F\$SEARCH(\"$_\") .NES. \"\" THEN TYPE $_ /OUTPUT=DESCRIP:" } @deps); -} - @ CLOSE DESCRIP - @ PIPE ( $(PERL) -e "use File::Compare qw/compare_text/; my $x = compare_text(""descrip.mms"",""descrip.mms-new""); exit(0x10000000 + ($x == 0));" || - - RENAME descrip.mms-new descrip.mms ) - @ IF F$SEARCH("descrip.mms-new") .NES. "" THEN DELETE descrip.mms-new;* - -@ SPAWN/OUTPUT=NLA0: PURGE/NOLOG descrip.mms + @ $(PERL) {- sourcefile("util", "add-depends.pl") -} "VMS C" @ ! {- output_on() if $disabled{makedepend}; "" -} # Install helper targets ############################################# @@ -751,12 +752,25 @@ reconfigure reconf : sub generatesrc { my %args = @_; - (my $target = $args{src}) =~ s/\.[sS]$/.asm/; my $generator = join(" ", @{$args{generator}}); my $generator_incs = join("", map { ' "-I'.$_.'"' } @{$args{generator_incs}}); my $deps = join(", -\n\t\t", @{$args{generator_deps}}, @{$args{deps}}); - if ($target !~ /\.asm$/) { + if ($args{src} =~ /\.ld$/) { + (my $target = $args{src}) =~ s/\.ld$/.OPT/; + my $mkdef = sourcefile('util', 'mkdef.pl'); + my $ord_ver = $args{intent} eq 'lib' ? ' --version $(VERSION)' : ''; + my $ord_name = + $args{generator}->[1] || basename($args{product}, '.EXE'); + my $case_insensitive = + $target{$args{intent}.'_cflags'} =~ m|/NAMES=[^/]*AS_IS|i + ? '' : ' --case-insensitive'; + return <<"EOF"; +$target : $args{generator}->[0] $deps $mkdef + \$(PERL) $mkdef$ord_ver --ordinals $args{generator}->[0] --name $ord_name "--OS" "VMS"$case_insensitive > $target +EOF + } elsif ($target !~ /\.[sS]$/) { + my $target = $args{src}; if ($args{generator}->[0] =~ m|^.*\.in$|) { my $dofile = abs2rel(rel2abs(catfile($config{sourcedir}, "util", "dofile.pl")), @@ -773,6 +787,7 @@ $target : $args{generator}->[0] $deps EOF } } else { + (my $target = $args{src}) =~ s/\.[sS]$/.asm/; if ($args{generator}->[0] =~ /\.pl$/) { $generator = '$(PERL)'.$generator_incs.' '.$generator; } elsif ($args{generator}->[0] =~ /\.S$/) { @@ -782,11 +797,13 @@ EOF } my $cppflags = { + shlib => '$(LIB_CFLAGS) $(LIB_CPPFLAGS)', lib => '$(LIB_CFLAGS) $(LIB_CPPFLAGS)', dso => '$(DSO_CFLAGS) $(DSO_CPPFLAGS)', bin => '$(BIN_CFLAGS) $(BIN_CPPFLAGS)' } -> {$args{intent}}; - my @incs_cmds = includes({ lib => '$(LIB_INCLUDES)', + my @incs_cmds = includes({ shlib => '$(LIB_INCLUDES)', + lib => '$(LIB_INCLUDES)', dso => '$(DSO_INCLUDES)', bin => '$(BIN_INCLUDES)' } -> {$args{intent}}, '$(CNF_INCLUDES)', @@ -794,6 +811,7 @@ EOF @{$args{incs}}); my $incs_on = join("\n\t\@ ", @{$incs_cmds[0]}) || '!'; my $incs_off = join("\n\t\@ ", @{$incs_cmds[1]}) || '!'; + my $defs = join("", map { ",".$_ } @{$args{defs}}); if (defined($generator)) { # If the target is named foo.S in build.info, we want to # end up generating foo.s in two steps. @@ -802,8 +820,10 @@ EOF $target : $args{generator}->[0] $deps $generator \$\@-S \@ $incs_on + \@ extradefines = "$defs" PIPE \$(CPP) $cppflags \$\@-S | - \$(PERL) -ne "/^#(\\s*line)?\\s*[0-9]+\\s+""/ or print" > \$\@-i + \@ DELETE/SYMBOL/LOCAL extradefines \@ $incs_off RENAME \$\@-i \$\@ DELETE \$\@-S @@ -818,9 +838,11 @@ EOF return <<"EOF"; $target : $args{generator}->[0] $deps \@ $incs_on + \@ extradefines = "$defs" SHOW SYMBOL qual_includes PIPE \$(CPP) $cppflags $args{generator}->[0] | - \$(PERL) "-ne" "/^#(\\s*line)?\\s*[0-9]+\\s+""/ or print" > \$\@ + \@ DELETE/SYMBOL/LOCAL extradefines \@ $incs_off EOF } @@ -849,7 +871,8 @@ EOF my $after = $unified_info{after}->{$obj.".OBJ"} || "\@ !"; if ($srcs[0] =~ /\.asm$/) { - my $asflags = { lib => ' $(LIB_ASFLAGS)', + my $asflags = { shlib => ' $(LIB_ASFLAGS)', + lib => ' $(LIB_ASFLAGS)', dso => ' $(DSO_ASFLAGS)', bin => ' $(BIN_ASFLAGS)' } -> {$args{intent}}; return <<"EOF"; @@ -863,19 +886,24 @@ EOF my $cflags; if ($args{installed}) { - $cflags = { lib => '$(LIB_CFLAGS)', + $cflags = { shlib => '$(LIB_CFLAGS)', + lib => '$(LIB_CFLAGS)', dso => '$(DSO_CFLAGS)', bin => '$(BIN_CFLAGS)' } -> {$args{intent}}; } else { - $cflags = { lib => '$(NO_INST_LIB_CFLAGS)', + $cflags = { shlib => '$(NO_INST_LIB_CFLAGS)', + lib => '$(NO_INST_LIB_CFLAGS)', dso => '$(NO_INST_DSO_CFLAGS)', bin => '$(NO_INST_BIN_CFLAGS)' } -> {$args{intent}}; } - $cflags .= { lib => '$(LIB_CPPFLAGS)', + $cflags .= { shlib => '$(LIB_CPPFLAGS)', + lib => '$(LIB_CPPFLAGS)', dso => '$(DSO_CPPFLAGS)', bin => '$(BIN_CPPFLAGS)' } -> {$args{intent}}; + my $defs = join("", map { ",".$_ } @{$args{defs}}); - my @incs_cmds = includes({ lib => '$(LIB_INCLUDES)', + my @incs_cmds = includes({ shlib => '$(LIB_INCLUDES)', + lib => '$(LIB_INCLUDES)', dso => '$(DSO_INCLUDES)', bin => '$(BIN_INCLUDES)' } -> {$args{intent}}, '$(INCLUDES)', @@ -886,27 +914,23 @@ EOF my $incs_on = join("\n\t\@ ", @{$incs_cmds[0]}) || '!'; my $incs_off = join("\n\t\@ ", @{$incs_cmds[1]}) || '!'; my $depbuild = $disabled{makedepend} ? "" - : " /MMS=(FILE=${objd}${objn}.tmp-D,TARGET=$obj.OBJ)"; + : " /MMS=(FILE=${objd}${objn}.D,TARGET=$obj.OBJ)"; - return <<"EOF" + return <<"EOF"; $obj.OBJ : $deps ${before} SET DEFAULT $forward \@ $incs_on + \@ extradefines = "$defs" \$(CC) ${cflags}${depbuild} /OBJECT=${objd}${objn}.OBJ /REPOSITORY=$backward $srcs + \@ DELETE/SYMBOL/LOCAL extradefines \@ $incs_off SET DEFAULT $backward ${after} - PURGE $obj.OBJ EOF - . ($disabled{makedepend} ? "" : <<"EOF" - \@ PIPE ( \$(PERL) -e "use File::Compare qw/compare_text/; my \$x = compare_text(""$obj.D"",""$obj.tmp-D""); exit(0x10000000 + (\$x == 0));" || - - RENAME $obj.tmp-D $obj.d ) - \@ IF F\$SEARCH("$obj.tmp-D") .NES. "" THEN DELETE $obj.tmp-D;* -EOF - ); } - sub libobj2shlib { + sub obj2shlib { my %args = @_; my $lib = $args{lib}; my $shlib = $args{shlib}; @@ -915,10 +939,12 @@ EOF my @objs = map { (my $x = $_) =~ s|\.o$|.OBJ|; $x } grep { $_ =~ m|\.o$| } @{$args{objs}}; - my @defs = grep { $_ =~ /\.opt$/ } @{$args{objs}}; + my @defs = map { (my $x = $_) =~ s|\.ld$|.OPT|; $x } + grep { $_ =~ m|\.ld$| } + @{$args{objs}}; my @deps = compute_lib_depends(@{$args{deps}}); die "More than one symbol vector" if scalar @defs > 1; - my $deps = join(", -\n\t\t", @defs, @deps); + my $deps = join(", -\n\t\t", @objs, @defs, @deps); my $shlib_target = $disabled{shared} ? "" : $target{shared_target}; my $translatesyms_pl = abs2rel(rel2abs(catfile($config{sourcedir}, "VMS", "translatesyms.pl")), @@ -938,7 +964,7 @@ EOF "WRITE OPT_FILE \"$x\"" } @deps) || "\@ !"; return <<"EOF" -$shlib.EXE : $lib.OLB $deps +$shlib.EXE : $deps \$(PERL) $translatesyms_pl \$(BLDDIR)CXX\$DEMANGLER_DB. < $defs[0] > $defs[0]-translated OPEN/WRITE/SHARE=READ OPT_FILE $lib-components.OPT $write_opt1 @@ -960,13 +986,16 @@ EOF my $libd = dirname($lib); my $libn = basename($lib); (my $libn_nolib = $libn) =~ s/^lib//; - my @objs = map { (my $x = $_) =~ s|\.o$|.OBJ|; $x } @{$args{objs}}; + my @objs = map { (my $x = $_) =~ s|\.o$|.OBJ|; $x } + grep { $_ =~ m|\.o$| } + @{$args{objs}}; + my @defs = map { (my $x = $_) =~ s|\.ld$|.OPT|; $x } + grep { $_ =~ m|\.ld$| } + @{$args{objs}}; my @deps = compute_lib_depends(@{$args{deps}}); - my $deps = join(", -\n\t\t", @objs, @deps); + my $deps = join(", -\n\t\t", @objs, @defs, @deps); + die "More than one symbol vector" if scalar @defs > 1; my $shlib_target = $disabled{shared} ? "" : $target{shared_target}; - my $engine_opt = abs2rel(rel2abs(catfile($config{sourcedir}, - "VMS", "engine.opt")), - rel2abs($config{builddir})); # The "[]" hack is because in .OPT files, each line inherits the # previous line's file spec as default, so if no directory spec # is present in the current line and the previous line has one that @@ -983,12 +1012,12 @@ EOF || "\@ !"; return <<"EOF" $lib.EXE : $deps - OPEN/WRITE/SHARE=READ OPT_FILE $lib.OPT - TYPE $engine_opt /OUTPUT=OPT_FILE: + OPEN/WRITE/SHARE=READ OPT_FILE $lib-components.OPT $write_opt1 $write_opt2 CLOSE OPT_FILE - LINK \$(DSO_LDFLAGS)/SHARE=\$\@ $lib.OPT/OPT \$(DSO_EX_LIBS) + LINK \$(DSO_LDFLAGS)/SHARE=\$\@ $defs[0]/OPT,- + $lib-components.OPT/OPT \$(DSO_EX_LIBS) - PURGE $lib.EXE,$lib.OPT,$lib.MAP EOF . ($config{target} =~ m|alpha| ? "" : <<"EOF" @@ -1036,7 +1065,9 @@ EOF "\@ WRITE OPT_FILE \"$x" } @objs). "\""; my $write_opt2 = - join("\n\t", map { my @lines = (); + join("\n\t", map { my @lines = ( + "\ WRITE OPT_FILE \"CASE_SENSITIVE=YES\"" + ); my $x = $_ =~ /\[/ ? $_ : "[]".$_; if ($x =~ m|\.EXE$|) { push @lines, "\@ WRITE OPT_FILE \"$x/SHARE\"";