= qq(deassign statem
deassign record);
}
+ # This makes sure things get built in the order they need
+ # to. You're welcome.
+ sub dependmagic {
+ my $target = shift;
+
+ return "$target : build_generated\n\t\pipe \$(MMS) depend && \$(MMS) _$target\n_$target";
+ }
#use Data::Dumper;
#print STDERR "DEBUG: before:\n", Dumper($unified_info{before});
#print STDERR "DEBUG: after:\n", Dumper($unified_info{after});
DEPFLAG= /DEFINE=({- join(",", @{$config{depdefines}}) -})
LDFLAGS= {- $target{lflags} -}
EX_LIBS= {- $target{ex_libs} ? ",".$target{ex_libs} : "" -}{- $config{ex_libs} ? ",".$config{ex_libs} : "" -}
-LIB_CFLAGS={- $target{lib_cflags} || "" -}
-DSO_CFLAGS={- $target{dso_cflags} || "" -}
-BIN_CFLAGS={- $target{bin_cflags} || "" -}
-NO_INST_LIB_CFLAGS={- $target{no_inst_lib_cflags} || '$(LIB_CFLAGS)' -}
-NO_INST_DSO_CFLAGS={- $target{no_inst_dso_cflags} || '$(DSO_CFLAGS)' -}
-NO_INST_BIN_CFLAGS={- $target{no_inst_bin_cflags} || '$(BIN_CFLAGS)' -}
+LIB_CFLAGS={- $target{lib_cflags} // "" -}
+DSO_CFLAGS={- $target{dso_cflags} // "" -}
+BIN_CFLAGS={- $target{bin_cflags} // "" -}
+NO_INST_LIB_CFLAGS={- $target{no_inst_lib_cflags} // '$(LIB_CFLAGS)' -}
+NO_INST_DSO_CFLAGS={- $target{no_inst_dso_cflags} // '$(DSO_CFLAGS)' -}
+NO_INST_BIN_CFLAGS={- $target{no_inst_bin_cflags} // '$(BIN_CFLAGS)' -}
PERL={- $config{perl} -}
# The main targets ###################################################
-all : build_generated, -
- build_libs_nodep, build_engines_nodep, build_programs_nodep, -
- depend
+{- dependmagic('all'); -} : build_libs_nodep, build_engines_nodep, build_programs_nodep
+{- dependmagic('build_libs'); -} : build_libs_nodep
+{- dependmagic('build_engines'); -} : build_engines_nodep
+{- dependmagic('build_programs'); -} : build_programs_nodep
-build_libs : build_generated, build_libs_nodep, depend
+build_generated : $(GENERATED_MANDATORY)
build_libs_nodep : $(LIBS), $(SHLIBS)
-build_engines : build_generated, build_engines_nodep, depend
build_engines_nodep : $(ENGINES)
-build_programs : build_generated, build_programs_nodep, depend
build_programs_nodep : $(PROGRAMS), $(SCRIPTS)
-build_generated : $(GENERATED_MANDATORY)
-
# Kept around for backward compatibility
build_apps build_tests : build_programs
-test tests : build_generated, build_programs_nodep, build_engines_nodep, -
- depend
+test : tests
+{- dependmagic('tests'); -} : build_programs_nodep, build_engines_nodep
@ ! {- output_off() if $disabled{tests}; "" -}
SET DEFAULT [.test]{- move("test") -}
DEFINE SRCTOP {- sourcedir() -}
$x =~ s|(\.OLB)|$1/LIB|;
"WRITE OPT_FILE \"$x\"" } @deps)
|| "\@ !";
- return <<"EOF";
+ return <<"EOF"
$shlib.EXE : $lib.OLB $deps $ordinalsfile
\$(PERL) $mkdef_pl "$mkdef_key" "VMS" > $shlib.SYMVEC-tmp
\$(PERL) $translatesyms_pl \$(BLDDIR)CXX\$DEMANGLER_DB. < $shlib.SYMVEC-tmp > $shlib.SYMVEC
$write_opt
CLOSE OPT_FILE
LINK \$(LDFLAGS)/SHARE=\$\@ $shlib.OPT/OPT \$(EX_LIBS)
- SET IMAGE/FLAGS=(NOCALL_DEBUG) \$\@
DELETE $shlib.SYMVEC;*
PURGE $shlib.EXE,$shlib.OPT,$shlib.MAP
EOF
+ . ($config{target} =~ m|alpha| ? "" : <<"EOF"
+ SET IMAGE/FLAGS=(NOCALL_DEBUG) \$\@
+EOF
+ );
}
sub obj2dso {
my %args = @_;
$x =~ s|(\.OLB)|$1/LIB|;
"WRITE OPT_FILE \"$x\"" } @deps)
|| "\@ !";
- return <<"EOF";
+ return <<"EOF"
$lib.EXE : $deps
OPEN/WRITE/SHARE=READ OPT_FILE $lib.OPT
TYPE $engine_opt /OUTPUT=OPT_FILE:
$write_opt2
CLOSE OPT_FILE
LINK \$(LDFLAGS)/SHARE=\$\@ $lib.OPT/OPT \$(EX_LIBS)
- SET IMAGE/FLAGS=(NOCALL_DEBUG) \$\@
- PURGE $lib.EXE,$lib.OPT,$lib.MAP
EOF
+ . ($config{target} =~ m|alpha| ? "" : <<"EOF"
+ SET IMAGE/FLAGS=(NOCALL_DEBUG) \$\@
+EOF
+ );
}
sub obj2lib {
my %args = @_;
# by default), and so someone building doesn't have to worry where it
# isn't necessary. If there are other warnings, however, we show them
# and let it break the build.
- return <<"EOF";
+ return <<"EOF"
$bin.EXE : $deps
OPEN/WRITE/SHARE=READ OPT_FILE $bin.OPT
$write_opt1
-@ IF .NOT. link_severity THEN TYPE $bin.LINKLOG
-@ DELETE $bin.LINKLOG;*
@ IF .NOT. link_severity THEN SPAWN/WAIT/NOLOG EXIT 'link_status'
- SET IMAGE/FLAGS=(NOCALL_DEBUG) $bin.EXE
- PURGE $bin.EXE,$bin.OPT
EOF
+ . ($config{target} =~ m|alpha| ? "" : <<"EOF"
+ SET IMAGE/FLAGS=(NOCALL_DEBUG) \$\@
+EOF
+ );
}
sub in2script {
my %args = @_;