12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #!/usr/bin/perl
- #
- # Copyright 1999, 2000, 2001 Patrik Stridvall
- #
- # This library is free software; you can redistribute it and/or
- # modify it under the terms of the GNU Lesser General Public
- # License as published by the Free Software Foundation; either
- # version 2.1 of the License, or (at your option) any later version.
- #
- # This library is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- # Lesser General Public License for more details.
- #
- # You should have received a copy of the GNU Lesser General Public
- # License along with this library; if not, write to the Free Software
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- #
- use strict;
- use warnings 'all';
- BEGIN {
- $0 =~ m%^(.*?/?tools)/winapi/make_filter$%;
- require "$1/winapi/setup.pm";
- }
- use config qw(
- file_absolutize file_normalize
- $current_dir $wine_dir
- );
- use output qw($output);
- use make_filter_options qw($options);
- use make_parser qw($directory $tool $file $line $message);
- if($options->progress) {
- $output->enable_progress;
- } else {
- $output->disable_progress;
- }
- ########################################################################
- # main
- ########################################################################
- my $command = $options->make . " " . join(" ", $options->arguments);
- open(IN, "($command) 2>&1 |") || die "Cannot execute command $command: $!";
- while(<IN>) {
- chomp;
- if(!make_parser::line($_)) {
- next;
- }
- if($message) {
- if($file && $line) {
- if($directory && $directory ne "." && $file !~ m%^/%) {
- $output->write(file_normalize("$directory/$file") . ":$line: $message\n");
- } else {
- $output->write("$file:$line: $message\n");
- }
- } elsif($file) {
- if($directory && $directory ne "." && $file !~ m%^/%) {
- $output->write(file_normalize("$directory/$file") . ": $message\n");
- } else {
- $output->write("$file: $message\n");
- }
- } else {
- if($directory && $directory ne ".") {
- $output->write("$directory: $tool: $message\n");
- } elsif($tool) {
- $output->write("$tool: $message\n");
- } else {
- $output->write("$message\n");
- }
- }
- } elsif($tool eq "make") {
- if($directory && $directory ne ".") {
- $output->progress("$directory: make");
- }
- }
- }
- close(IN);
- $output->hide_progress();
|