Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
175234c8
Commit
175234c8
authored
Aug 30, 2002
by
Patrik Stridvall
Committed by
Alexandre Julliard
Aug 30, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Proper handling of GDI32 and USER32.
- Added PACKAGE_* for the config.h generation. - Proper include path for the resource compiler. - Minor bug fixes and improvements.
parent
81735bed
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
154 additions
and
17 deletions
+154
-17
msvcmaker
tools/winapi/msvcmaker
+154
-17
No files found.
tools/winapi/msvcmaker
View file @
175234c8
...
...
@@ -114,7 +114,9 @@ foreach my $spec_file (@spec_files) {
}
}
my
@gdi32_dirs
=
qw(dlls/gdi/enhmfdrv dlls/gdi/mfdrv dlls/gdi/win16drv graphics objects)
;
my
@ntdll_dirs
=
qw(files if1632 loader/ne loader memory misc msdos ole relay32 scheduler win32)
;
my
@user32_dirs
=
qw(controls dlls/user/dde windows)
;
push
@makefile_in_files
,
"library/Makefile.in"
;
push
@makefile_in_files
,
"unicode/Makefile.in"
;
...
...
@@ -249,7 +251,32 @@ MAKEFILE_IN: foreach my $makefile_in_file (@makefile_in_files) {
my
$dsp_file
=
$makefile_in_file
;
$dsp_file
=~
s/Makefile.in$/$project.dsp/
;
if
(
$module
eq
"ntdll.dll"
)
{
if
(
$module
eq
"gdi32.dll"
)
{
foreach
my
$dir
(
@gdi32_dirs
)
{
my
$dir2
=
$dir
;
$dir2
=~
s%^.*?/([^/]+)$%$1%
;
my
$module
=
"gdi32_$dir2.lib"
;
$module
=~
s%/%_%g
;
my
$project
=
"gdi32_$dir2"
;
$project
=~
s%/%_%g
;
my
$type
=
"lib"
;
my
$dsp_file
=
"$dir/$project.dsp"
;
(
$source_files
,
my
$local_source_files
)
=
filter_files
(
$source_files
,
"$dir2/"
);
(
$header_files
,
my
$local_header_files
)
=
filter_files
(
$header_files
,
"$dir2/"
);
(
$resource_files
,
my
$local_resource_files
)
=
filter_files
(
$resource_files
,
"$dir2/"
);
$modules
{
$module
}{
project
}
=
$project
;
$modules
{
$module
}{
type
}
=
$type
;
$modules
{
$module
}{
dsp_file
}
=
$dsp_file
;
$modules
{
$module
}{
source_files
}
=
$local_source_files
;
$modules
{
$module
}{
header_files
}
=
$local_header_files
;
$modules
{
$module
}{
resource_files
}
=
$local_resource_files
;
}
}
elsif
(
$module
eq
"ntdll.dll"
)
{
foreach
my
$dir
(
@ntdll_dirs
)
{
my
$module
=
"ntdll_$dir.lib"
;
$module
=~
s%/%_%g
;
...
...
@@ -271,6 +298,31 @@ MAKEFILE_IN: foreach my $makefile_in_file (@makefile_in_files) {
$modules
{
$module
}{
header_files
}
=
$local_header_files
;
$modules
{
$module
}{
resource_files
}
=
$local_resource_files
;
}
}
elsif
(
$module
eq
"user32.dll"
)
{
foreach
my
$dir
(
@user32_dirs
)
{
my
$dir2
=
$dir
;
$dir2
=~
s%^.*?/([^/]+)$%$1%
;
my
$module
=
"user32_$dir2.lib"
;
$module
=~
s%/%_%g
;
my
$project
=
"user32_$dir2"
;
$project
=~
s%/%_%g
;
my
$type
=
"lib"
;
my
$dsp_file
=
"$dir/$project.dsp"
;
(
$source_files
,
my
$local_source_files
)
=
filter_files
(
$source_files
,
"$dir2/"
);
(
$header_files
,
my
$local_header_files
)
=
filter_files
(
$header_files
,
"$dir2/"
);
(
$resource_files
,
my
$local_resource_files
)
=
filter_files
(
$resource_files
,
"$dir2/"
);
$modules
{
$module
}{
project
}
=
$project
;
$modules
{
$module
}{
type
}
=
$type
;
$modules
{
$module
}{
dsp_file
}
=
$dsp_file
;
$modules
{
$module
}{
source_files
}
=
$local_source_files
;
$modules
{
$module
}{
header_files
}
=
$local_header_files
;
$modules
{
$module
}{
resource_files
}
=
$local_resource_files
;
}
}
$modules
{
$module
}{
project
}
=
$project
;
...
...
@@ -329,7 +381,7 @@ sub _generate_dsp {
my
@resource_files
=
@
{
$modules
{
$module
}{
resource_files
}};
if
(
$project
!~
/^(?:wine(?:_unicode)?|winebuild)$/
&&
$project
!~
/^
ntdll
_.+?$/
)
$project
!~
/^
(?:gdi32|ntdll|user32)
_.+?$/
)
{
push
@source_files
,
"$project.spec"
;
# push @source_files, "$project.spec.c";
...
...
@@ -497,19 +549,33 @@ sub _generate_dsp {
}
}
my
@includes
=
();
if
(
$wine
)
{
push
@defines2
,
"_\U${project}\E_"
;
push
@defines2
,
"__WINE__"
if
$module
!~
/^winebuild\.exe$/
;
push
@defines2
,
qw(__i386__ _X86_)
;
print
OUT
" /X"
if
$msvc_headers
;
my
@includes
=
();
if
(
$msvc_headers
)
{
push
@includes
,
$msvc_include
;
}
if
(
$project
=~
/^gdi32_(?:enhmfdrv|mfdrv|win16drv)$/
)
{
push
@includes
,
".."
;
}
if
(
$project
=~
/^user32_(?:controls|windows)$/
)
{
push
@includes
,
"..\\dlls\\user"
;
}
if
(
$project
=~
/^user32_dde$/
)
{
push
@includes
,
".."
;
}
push
@includes
,
$wine_include_dir
;
}
if
(
$wine
)
{
print
OUT
" /X"
if
$msvc_headers
;
foreach
my
$include
(
@includes
)
{
print
OUT
" /I \"$include\""
;
...
...
@@ -535,13 +601,25 @@ sub _generate_dsp {
print
OUT
"# ADD BASE MTL /nologo /D \"_DEBUG\" /mktyplib203 /win32\r\n"
if
!
$lib
;
print
OUT
"# ADD MTL /nologo /D \"_DEBUG\" /mktyplib203 /win32\r\n"
if
!
$lib
;
print
OUT
"# ADD BASE RSC /l 0x41d /d \"_DEBUG\"\r\n"
;
print
OUT
"# ADD RSC /l 0x41d /d \"_DEBUG\"\r\n"
;
print
OUT
"# ADD RSC /l 0x41d"
;
if
(
$wine
)
{
foreach
my
$include
(
@includes
)
{
print
OUT
" /I \"$include\""
;
}
}
print
OUT
" /d \"_DEBUG\"\r\n"
;
}
else
{
print
OUT
"# SUBTRACT CPP /YX\r\n"
if
!
$lib
;;
print
OUT
"# ADD BASE MTL /nologo /D \"NDEBUG\" /mktyplib203 /win32\r\n"
if
!
$lib
;
print
OUT
"# ADD MTL /nologo /D \"NDEBUG\" /mktyplib203 /win32\r\n"
if
!
$lib
;
print
OUT
"# ADD BASE RSC /l 0x41d /d \"NDEBUG\"\r\n"
;
print
OUT
"# ADD RSC /l 0x41d /d \"NDEBUG\"\r\n"
;
print
OUT
"# ADD RSC /l 0x41d"
;
if
(
$wine
)
{
foreach
my
$include
(
@includes
)
{
print
OUT
" /I \"$include\""
;
}
}
print
OUT
"/d \"NDEBUG\"\r\n"
;
}
print
OUT
"BSC32=bscmake.exe\r\n"
;
print
OUT
"# ADD BASE BSC32 /nologo\r\n"
;
...
...
@@ -604,30 +682,56 @@ sub _generate_dsp {
print
OUT
"# PROP Default_Filter \"cpp;c;cxx;rc;def;r;odl;idl;hpj;bat\"\r\n"
;
foreach
my
$source_file
(
@source_files
)
{
print
OUT
"# Begin Source File\r\n"
;
print
OUT
"\r\n"
;
$source_file
=~
s%/%\\%g
;
if
(
$source_file
!~
/^\./
)
{
$source_file
=
".\\$source_file"
;
}
if
(
$source_file
=~
/^(.*?)\.spec$/
)
{
my
$basename
=
$1
;
$basename
=
"$basename.dll"
if
$basename
!~
/\..{1,3}$/
;
my
$dbg_c_file
=
"$basename.dbg.c"
;
print
OUT
"# Begin Source File\r\n"
;
print
OUT
"\r\n"
;
print
OUT
"SOURCE=$dbg_c_file\r\n"
;
print
OUT
"# End Source File\r\n"
;
}
print
OUT
"# Begin Source File\r\n"
;
print
OUT
"\r\n"
;
print
OUT
"SOURCE=$source_file\r\n"
;
if
(
$source_file
=~
/^(.*?)\.spec$/
)
{
my
$basename
=
$1
;
my
$spec_file
=
$source_file
;
# my $spec_c_file = "$1.spec.c";
my
$def_file
=
"$1.def"
;
my
$def_file
=
"$basename.def"
;
$basename
=
"$basename.dll"
if
$basename
!~
/\..{1,3}$/
;
my
$dbg_c_file
=
"$basename.dbg.c"
;
my
$srcdir
=
"."
;
# FIXME: Is this really always correct?
my
$c_srcs
=
join
(
" "
,
grep
(
/\.c$/
,
@source_files
));
print
OUT
"\r\n"
;
print
OUT
"# Begin Custom Build\r\n"
;
print
OUT
"InputPath=$spec_file\r\n"
;
print
OUT
"\r\n"
;
# print OUT "\"$def_file $spec_c_file\" : \$(SOURCE) \"\$(INTDIR)\" \"\$(OUTDIR)\"\r\n";
print
OUT
"BuildCmds= \\\r\n"
;
print
OUT
"\t..\\..\\tools\\winebuild\\$output_dir\\winebuild.exe -def $spec_file > $def_file \\\r\n"
;
print
OUT
"\t..\\..\\tools\\winebuild\\$output_dir\\winebuild.exe -o $dbg_c_file -debug -C$srcdir $c_srcs \\\r\n"
;
print
OUT
"\r\n"
;
print
OUT
"\r\n"
;
print
OUT
"\"$def_file\" : \$(SOURCE) \"\$(INTDIR)\" \"\$(OUTDIR)\"\r\n"
;
print
OUT
"\t..\\..\\tools\\winebuild\\$output_dir\\winebuild.exe -def $spec_file > $def_file\r\n"
;
# print OUT "\t..\\..\\tools\\winebuild\\$output_dir\\winebuild.exe -spec $spec_file > $spec_c_file\r\n";
print
OUT
" \$(BuildCmds)\r\n"
;
print
OUT
"\r\n"
;
print
OUT
"\"$dbg_c_file\" : \$(SOURCE) \"\$(INTDIR)\" \"\$(OUTDIR)\"\r\n"
;
print
OUT
" \$(BuildCmds)\r\n"
;
print
OUT
"\r\n"
;
print
OUT
"# End Custom Build\r\n"
;
}
...
...
@@ -690,18 +794,36 @@ sub _generate_dsw {
@dependencies
=
();
}
elsif
(
$project
=~
/^winebuild$/
)
{
@dependencies
=
(
"wine"
,
"wine_unicode"
);
}
elsif
(
$project
=~
/^
ntdll
_.+?$/
)
{
}
elsif
(
$project
=~
/^
(?:gdi32|ntdll|user32)
_.+?$/
)
{
@dependencies
=
();
}
else
{
@dependencies
=
(
"wine"
,
"wine_unicode"
,
"winebuild"
);
}
if
(
$project
=~
/^ntdll$/
)
{
if
(
$project
=~
/^gdi32$/
)
{
foreach
my
$dir
(
@gdi32_dirs
)
{
my
$dir2
=
$dir
;
$dir2
=~
s%^.*?/([^/]+)$%$1%
;
my
$module
=
"gdi32_$dir2"
;
$module
=~
s%/%_%g
;
push
@dependencies
,
$module
;
}
}
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
)
{
my
$dir2
=
$dir
;
$dir2
=~
s%^.*?/([^/]+)$%$1%
;
my
$module
=
"user32_$dir2"
;
$module
=~
s%/%_%g
;
push
@dependencies
,
$module
;
}
}
@dependencies
=
sort
(
@dependencies
);
...
...
@@ -789,5 +911,20 @@ sub _generate_config_h {
print
OUT
"/* Define to a macro to generate an assembly name from a C symbol */\n"
;
print
OUT
"#define __ASM_NAME(name) name\n"
;
print
OUT
"/* Define to the address where bug reports for this package should be sent. */\n"
;
print
OUT
"#define PACKAGE_BUGREPORT \"\"\n"
;
print
OUT
"/* Define to the full name of this package. */\n"
;
print
OUT
"#define PACKAGE_NAME \"Wine\"\n"
;
print
OUT
"/* Define to the full name and version of this package. */\n"
;
print
OUT
"#define PACKAGE_STRING \"Wine YYYYMMDD\"\n"
;
print
OUT
"/* Define to the one symbol short name of this package. */\n"
;
print
OUT
"#define PACKAGE_TARNAME \"wine\"\n"
;
print
OUT
"/* Define to the version of this package. */\n"
;
print
OUT
"#define PACKAGE_VERSION \"YYYYMMDD\"\n"
;
close
(
OUT
);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment