-sub run_test($$) {
- my ($what, $result) = @_;
- print_format "Checking whether <|GREEN $what|> is available ... ";
- print_format $result ? "<|GREEN yes|>\n" : "<|RED no|>\n";
- return $result;
-}
-
-sub test_file($$;$) {
- my ($cc, $file, $args) = @_;
- my $status = 0;
- $args ||= '';
- $status ||= system "$cc -o __test_$file make/test/$file $args >/dev/null 2>&1";
- $status ||= system "./__test_$file >/dev/null 2>&1";
- unlink "./__test_$file";
- return !$status;
-}
-
-sub test_header($$;$) {
- my ($cc, $header, $args) = @_;
- $args ||= '';
- open(CC, "| $cc -E - $args >/dev/null 2>&1") or return 0;
- print CC "#include <$header>";
- close(CC);
- return !$?;
-}
-
-sub get_property($$;$)
-{
- my ($file, $property, $default) = @_;
- open(MODULE, $file) or return $default;
- while (<MODULE>) {
- if ($_ =~ /^\/\* \$(\S+): (.+) \*\/$/) {
- next unless $1 eq $property;
- close(MODULE);
- return translate_functions($2, $file);
- }
- }
- close(MODULE);
- return defined $default ? $default : '';
-}
-
-sub parse_templates($$) {