[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: msvcmaker - fix building makefiles on Windows
From: Steven Edwards <steven_ed4153 () yahoo ! com>
Date: 2004-05-28 18:11:57
Message-ID: 20040528181157.22550.qmail () web21106 ! mail ! yahoo ! com
[Download RAW message or body]
Hello,
I am not 100% sure if this is correct as I dont have a Windows box
handy and dont know perl but this has been a known bug where msvcmaker
did not properly build Makefiles when using Perl on Windows. A
anonymous slashdot reader sent me this patch to fix this oversite. He
saif to either attribute the changelog entry to Fred Patrik or to me.
If someone has a Windows box handy could you test msvcmaker with this
patch and see if it generates the makefiles properly now?
Thanks
Steven
Changelog:
Fix generation of MS_VC Makfiles on Windows
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/
["msvcmaker.patch" (text/x-patch)]
Index: msvcmaker
===================================================================
RCS file: /home/wine/wine/tools/winapi/msvcmaker,v
retrieving revision 1.23
diff -u -b -r1.23 msvcmaker
--- msvcmaker 22 Mar 2004 21:29:53 -0000 1.23
+++ msvcmaker 28 May 2004 18:06:40 -0000
@@ -4,43 +4,73 @@
use strict;
-BEGIN {
- $0 =~ m%^(.*?/?tools)/winapi/msvcmaker$%;
+use vars qw/$current_dir $wine_dir $winapi_dir $winapi_check_dir $output/;
+
+BEGIN
+{
+ if ( $0 =~ m%^(.*?/?tools)/winapi/msvcmaker$% )
+ {
require "$1/winapi/setup.pm";
+ }
+ else
+ {
+ if ( -e "./setup.pm" )
+ {
+ require "./setup.pm";
+ }
+ elsif ( -e "./winapi/setup.pm" )
+ {
+ require "./winapi/setup.pm";
+ }
+ elsif ( -e "./tools/winapi/setup.pm" )
+ {
+ require "./tools/winapi/setup.pm";
+ }
+ else
+ {
+ print STDERR "\n\nCannot find setup.pm from the current directory: ". Cwd::cwd() . "\n";
+ exit 1;
+ }
+ }
}
-use config qw(&file_directory &get_spec_files &get_makefile_in_files $current_dir $wine_dir);
+use lib $setup::winapi_dir;
use output qw($output);
+use winconfig qw(file_directory get_spec_files get_makefile_in_files $current_dir $wine_dir);
use util qw(replace_file);
use msvcmaker_options qw($options);
if($options->progress) {
- $output->enable_progress;
+ $output::output->enable_progress;
} else {
- $output->disable_progress;
+ $output::output->disable_progress;
}
########################################################################
# main
+########################################################################
-my @spec_files = get_spec_files("winelib");
-my @makefile_in_files = get_makefile_in_files("winelib");
+my @spec_files = winconfig::get_spec_files("winelib");
+my @makefile_in_files = winconfig::get_makefile_in_files("winelib");
my $wine = 1;
my $output_prefix_dir = "Output";
my $no_release = 1;
-if ($options->wine || $options->winetest) {
- foreach my $spec_file (@spec_files) {
+if ($options->wine || $options->winetest)
+{
+ foreach my $spec_file (@spec_files)
+ {
read_spec_file($spec_file);
}
}
my %modules;
-sub read_spec_file {
+sub read_spec_file
+{
my $spec_file = shift;
my $module = $spec_file;
@@ -49,7 +79,7 @@
my $type = "win32";
- open(IN, "< $wine_dir/$spec_file");
+ open(IN, "< $setup::wine_dir/$spec_file");
my $header = 1;
my $lookahead = 0;
@@ -58,7 +88,7 @@
s/^\s*?(.*?)\s*$/$1/; # remove whitespace at begining and end of line
s/^(.*?)\s*#.*$/$1/; # remove comments
- /^$/ && next; # skip empty lines
+ m/^$/ && next; # skip empty lines
if($header) {
if(/^\d+|@/) {
@@ -113,7 +143,7 @@
my %wine_test_dsp_files;
MAKEFILE_IN: foreach my $makefile_in_file (@makefile_in_files) {
- open(IN, "< $wine_dir/$makefile_in_file");
+ open(IN, "< $setup::wine_dir/$makefile_in_file");
my $topobjdir;
my $module;
@@ -437,7 +467,7 @@
foreach my $module (@modules) {
my $dsp_file = $modules{$module}{dsp_file};
- replace_file("$wine_dir/$dsp_file", \&_generate_dsp, $module);
+ replace_file("$setup::wine_dir/$dsp_file", \&_generate_dsp, $module);
}
sub _generate_dsp {
@@ -1028,20 +1058,25 @@
if ($options->wine) {
my $dsw_file = "wine.dsw";
$output->progress("$dsw_file");
- replace_file("$wine_dir/$dsw_file", \&_generate_wine_dsw);
+ replace_file("$setup::wine_dir/$dsw_file", \&_generate_wine_dsw);
}
sub _generate_wine_dsw {
local *OUT = shift;
_generate_dsw_header(\*OUT);
- foreach my $module (sort(keys(%modules))) {
+
+ foreach my $module (sort(keys(%modules)))
+ {
next if $module =~ /(?:winetest\.lib|wineruntests\.exe|_test\.exe)$/;
my $project = $modules{$module}{project};
my $dsp_file = $modules{$module}{dsp_file};
my @dependencies;
+
+ next if ( !$project );
+
if($project =~ /^wine(?:_unicode)?$/) {
@dependencies = ();
} elsif($project =~ /^winebuild$/) {
@@ -1052,8 +1087,10 @@
@dependencies = ("wine", "wine_unicode", "winebuild");
}
- if($project =~ /^gdi32$/) {
- foreach my $dir (@gdi32_dirs) {
+ if($project =~ /^gdi32$/)
+ {
+ foreach my $dir (@gdi32_dirs)
+ {
my $dir2 = $dir;
$dir2 =~ s%^.*?/([^/]+)$%$1%;
@@ -1061,17 +1098,22 @@
$module =~ s%/%_%g;
push @dependencies, $module;
}
- } elsif($project =~ /^ntdll$/) {
- foreach my $dir (@ntdll_dirs) {
+ }
+ elsif($project =~ /^ntdll$/)
+ {
+ foreach my $dir (@ntdll_dirs)
+ {
my $module = "ntdll_$dir";
$module =~ s%/%_%g;
push @dependencies, $module;
}
- } elsif($project =~ /^user32$/) {
- foreach my $dir (@user32_dirs) {
+ }
+ elsif($project =~ /^user32$/)
+ {
+ foreach my $dir (@user32_dirs)
+ {
my $dir2 = $dir;
$dir2 =~ s%^.*?/([^/]+)$%$1%;
-
my $module = "user32_$dir2";
$module =~ s%/%_%g;
push @dependencies, $module;
@@ -1088,7 +1130,7 @@
if ($options->winetest) {
my $dsw_file = "winetest.dsw";
$output->progress("$dsw_file");
- replace_file("$wine_dir/$dsw_file", \&_generate_winetest_dsw);
+ replace_file("$setup::wine_dir/$dsw_file", \&_generate_winetest_dsw);
}
sub _generate_winetest_dsw {
@@ -1138,7 +1180,7 @@
my $testlist_c = $dsp_file;
$testlist_c =~ s%[^/]*\.dsp$%testlist.c%;
- replace_file("$wine_dir/$testlist_c", \&_generate_testlist_c, \@tests);
+ replace_file("$setup::wine_dir/$testlist_c", \&_generate_testlist_c, \@tests);
}
}
@@ -1177,7 +1219,7 @@
}
if ($options->winetest) {
- replace_file("$wine_dir/runtests.c", \&_generate_runtests_c);
+ replace_file("$setup::wine_dir/runtests.c", \&_generate_runtests_c);
}
sub _generate_runtests_c {
@@ -1214,7 +1256,7 @@
}
if ($options->winetest) {
- replace_file("$wine_dir/winetest.c", \&_generate_winetest_c);
+ replace_file("$setup::wine_dir/winetest.c", \&_generate_winetest_c);
}
sub _generate_winetest_c {
@@ -1231,7 +1273,7 @@
$output->progress("$config_h");
- replace_file("$wine_dir/$config_h", \&_generate_config_h);
+ replace_file("$setup::wine_dir/$config_h", \&_generate_config_h);
}
sub _generate_config_h {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic