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
635eb3c2
Commit
635eb3c2
authored
Sep 26, 2002
by
Francois Gouget
Committed by
Alexandre Julliard
Sep 26, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bring the naming of libraries and executable up to current standards.
Install dlls and executables in dlldir. It is no longer necessary to import ntdll.dll.
parent
58e8807a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
67 deletions
+31
-67
winemaker
tools/winemaker
+31
-67
No files found.
tools/winemaker
View file @
635eb3c2
...
...
@@ -548,11 +548,7 @@ sub source_scan_directory($$$$)
# resulting executable/library. They should not contain anything else.
my
@candidates
=
grep
/\.(exe|dll)$/i
,
@
{
get_directory_contents
(
"$fullentry"
)};
foreach
my
$candidate
(
@candidates
)
{
if
(
$candidate
=~
s/\.exe$//i
)
{
$targets
{
$candidate
}
=
1
;
}
elsif
(
$candidate
=~
s/^(.*)\.dll$/lib$1.so/i
)
{
$targets
{
$candidate
}
=
1
;
}
$targets
{
$candidate
}
=
1
;
}
}
elsif
(
$dentry
=~
/^include/i
)
{
# This directory must contain headers we're going to need
...
...
@@ -565,9 +561,7 @@ sub source_scan_directory($$$$)
source_scan_directory
(
$project
,
"$fullentry/"
,
"$dentry/"
,
$no_target
);
}
}
elsif
(
-
f
"$fullentry"
)
{
if
(
$dentry
=~
s/\.exe$//i
)
{
$targets
{
$dentry
}
=
1
;
}
elsif
(
$dentry
=~
s/^(.*)\.dll$/lib$1.so/i
)
{
if
(
$dentry
=~
/\.(exe|dll)$/i
)
{
$targets
{
$dentry
}
=
1
;
}
elsif
(
$dentry
=~
/\.c$/i
and
$dentry
!~
/\.spec\.c$/
)
{
push
@sources_c
,
"$dentry"
;
...
...
@@ -653,7 +647,7 @@ sub source_scan_directory($$$$)
foreach
my
$filename
(
@$prj_list
)
{
$filename
=~
s/\.(dsp|mak)$//i
;
if
(
$opt_target_type
==
$TT_DLL
)
{
$filename
=
"
lib$filename.so
"
;
$filename
=
"
$filename.dll
"
;
}
$targets
{
$filename
}
=
1
;
}
...
...
@@ -682,7 +676,7 @@ sub source_scan_directory($$$$)
}
$name
=~
s
+
(
/|\.
[
^.
]
*
)
$+
+
;
if
(
$opt_target_type
==
$TT_DLL
)
{
$name
=
"
lib$name.so
"
;
$name
=
"
$name.dll
"
;
}
$targets
{
$name
}
=
1
;
}
...
...
@@ -713,9 +707,6 @@ sub source_scan_directory($$$$)
foreach
my
$target
(
split
/,/
,
$target_list
)
{
$target
=~
s
+^\
s
*++
;
$target
=~
s
+\
s
*
$+
+
;
# Also accept .exe and .dll as a courtesy
$target
=~
s
+
(
.*
)
\.
dll$
+
lib$1
.
so
+
;
$target
=~
s
+\.
exe
$+
+
;
$targets
{
$target
}
=
1
;
}
}
...
...
@@ -786,28 +777,26 @@ sub source_scan_directory($$$$)
my
@exe_list
=
();
foreach
my
$target_name
(
map
(
lc
,
(
sort
{
$b
cmp
$a
}
keys
%
targets
)))
{
# Create the target...
my
$basename
;
my
$target
=[]
;
target_init
(
$target
);
@$target
[
$T_NAME
]
=
$target_name
;
@$target
[
$T_FLAGS
]
|=
@$project_settings
[
$T_FLAGS
];
if
(
$target_name
=~
/
^lib(.*)\.so
$/
)
{
if
(
$target_name
=~
/
\.dll
$/
)
{
@$target
[
$T_TYPE
]
=
$TT_DLL
;
@$target
[
$T_INIT
]
=
get_default_init
(
$TT_DLL
);
@$target
[
$T_FLAGS
]
&=~
$TF_WRAP
;
$basename
=
$1
;
push
@local_depends
,
$target_name
;
push
@local_dlls
,
$basename
;
push
@local_depends
,
"$target_name.so"
;
push
@local_dlls
,
$target_name
;
}
else
{
@$target
[
$T_TYPE
]
=
$opt_target_type
;
@$target
[
$T_INIT
]
=
get_default_init
(
$opt_target_type
);
$basename
=
$target_name
;
push
@exe_list
,
$target
;
}
my
$basename
=
$target_name
;
$basename
=~
s/\.(dll|exe)$//i
;
# This is the default link list of Visual Studio, except odbccp32
# which we don't have in Wine. Also I add ntdll which seems
# necessary for Winelib.
my
@std_dlls
=
qw(advapi32.dll comdlg32.dll gdi32.dll kernel32.dll ntdll.dll odbc32.dll ole32.dll oleaut32.dll shell32.dll user32.dll winspool.drv)
;
# which we don't have in Wine.
my
@std_dlls
=
qw(advapi32.dll comdlg32.dll gdi32.dll kernel32.dll odbc32.dll ole32.dll oleaut32.dll shell32.dll user32.dll winspool.drv)
;
if
((
@$target
[
$T_FLAGS
]
&
$TF_NODLLS
)
==
0
)
{
@$target
[
$T_DLLS
]
=\
@std_dlls
;
}
else
{
...
...
@@ -946,11 +935,7 @@ sub source_scan_directory($$$$)
if
(
@local_dlls
>
0
and
@exe_list
>
0
)
{
foreach
my
$target
(
@exe_list
)
{
push
@
{
@$target
[
$T_DLL_PATH
]},
"-L."
;
push
@
{
@$target
[
$T_DLLS
]},
map
{
"$_.dll"
}
@local_dlls
;
# Also link in the Unix sense since none of the functions
# will be exported.
push
@
{
@$target
[
$T_LIBRARY_PATH
]},
"-L."
;
push
@
{
@$target
[
$T_LIBRARIES
]},
@local_dlls
;
push
@
{
@$target
[
$T_DLLS
]},
@local_dlls
;
push
@
{
@$target
[
$T_DEPENDS
]},
@local_depends
;
}
}
...
...
@@ -965,11 +950,7 @@ sub source_scan()
# Create the main target
my
$main_target
=[]
;
target_init
(
$main_target
);
if
(
$opt_target_type
==
$TT_DLL
)
{
@$main_target
[
$T_NAME
]
=
"lib$opt_single_target.so"
;
}
else
{
@$main_target
[
$T_NAME
]
=
"$opt_single_target"
;
}
@$main_target
[
$T_NAME
]
=
$opt_single_target
;
@$main_target
[
$T_TYPE
]
=
$opt_target_type
;
# Add it to the list
...
...
@@ -1018,7 +999,7 @@ sub postprocess_targets()
@$wrapper
[
$T_TYPE
]
=
@$target
[
$T_TYPE
];
@$wrapper
[
$T_INIT
]
=
get_default_init
(
@$target
[
$T_TYPE
]);
@$wrapper
[
$T_FLAGS
]
=
$TF_WRAPPER
|
(
@$target
[
$T_FLAGS
]
&
$TF_MFC
);
@$wrapper
[
$T_DLLS
]
=
[
"kernel32.dll"
,
"
ntdll.dll"
,
"
user32.dll"
];
@$wrapper
[
$T_DLLS
]
=
[
"kernel32.dll"
,
"user32.dll"
];
push
@
{
@$wrapper
[
$T_LIBRARIES
]},
"dl"
;
push
@
{
@$wrapper
[
$T_SOURCES_C
]},
"@$wrapper[$T_NAME]_wrapper.c"
;
...
...
@@ -1026,7 +1007,8 @@ sub postprocess_targets()
if
(
defined
$index
)
{
splice
(
@
{
@$target
[
$T_SOURCES_C
]},
$index
,
1
);
}
@$target
[
$T_NAME
]
=
"lib@$target[$T_NAME].so"
;
@$target
[
$T_NAME
]
=
@$target
[
$T_NAME
];
@$target
[
$T_NAME
]
=~
s/.exe$/.dll/
;
@$target
[
$T_TYPE
]
=
$TT_DLL
;
push
@
{
@$project
[
$P_TARGETS
]},
$wrapper
;
...
...
@@ -1627,23 +1609,16 @@ sub fix_source()
# Generates a target's .spec file
sub
generate_spec_file
($$$)
{
if
(
$opt_no_generated_specs
)
{
return
;
}
return
if
(
$opt_no_generated_specs
);
my
$path
=
$_
[
0
];
my
$target
=
$_
[
1
];
my
$project_settings
=
$_
[
2
];
my
$basename
=
@$target
[
$T_NAME
];
$basename
=~
s
+\.
so
$+
+
;
if
(
@$target
[
$T_FLAGS
]
&
$TF_WRAP
)
{
$basename
=~
s
+^
lib
++
;
}
elsif
(
@$target
[
$T_FLAGS
]
&
$TF_WRAPPER
)
{
if
(
@$target
[
$T_FLAGS
]
&
$TF_WRAPPER
)
{
$basename
.=
"_wrapper"
;
}
if
(
@$target
[
$T_TYPE
]
!=
$TT_DLL
)
{
$basename
.=
'.exe'
;
}
if
(
!
open
(
FILEO
,
">$path$basename.spec"
))
{
print
STDERR
"error: could not open \"$path$basename.spec\" for writing\n"
;
...
...
@@ -1783,7 +1758,7 @@ sub generate_project_files($)
});
generate_list
(
"EXES"
,
1
,
\
@exe_list
,
sub
{
return
"@{$_[0]}[$T_NAME]
.exe
"
;
return
"@{$_[0]}[$T_NAME]"
;
});
print
FILEO
"\n\n\n"
;
...
...
@@ -1818,18 +1793,7 @@ sub generate_project_files($)
generate_list
(
"${canon}_C_SRCS"
,
1
,
@$target
[
$T_SOURCES_C
]);
generate_list
(
"${canon}_CXX_SRCS"
,
1
,
@$target
[
$T_SOURCES_CXX
]);
generate_list
(
"${canon}_RC_SRCS"
,
1
,
@$target
[
$T_SOURCES_RC
]);
my
$basename
=
@$target
[
$T_NAME
];
$basename
=~
s
+\.
so
$+
+
;
if
(
@$target
[
$T_FLAGS
]
&
$TF_WRAP
)
{
$basename
=~
s
+^
lib
++
;
}
elsif
(
@$target
[
$T_FLAGS
]
&
$TF_WRAPPER
)
{
$basename
.=
"_wrapper"
;
}
if
(
@$target
[
$T_TYPE
]
!=
$TT_DLL
)
{
generate_list
(
"${canon}_SPEC_SRCS"
,
1
,[
"$basename.exe.spec"
]);
}
else
{
generate_list
(
"${canon}_SPEC_SRCS"
,
1
,[
"$basename.spec"
]);
}
generate_list
(
"${canon}_SPEC_SRCS"
,
1
,[
"@$target[$T_NAME].spec"
]);
generate_list
(
"${canon}_DLL_PATH"
,
1
,
@$target
[
$T_DLL_PATH
]);
generate_list
(
"${canon}_DLLS"
,
1
,
@$target
[
$T_DLLS
]);
generate_list
(
"${canon}_LIBRARY_PATH"
,
1
,
@$target
[
$T_LIBRARY_PATH
]);
...
...
@@ -1883,7 +1847,7 @@ sub generate_project_files($)
print
FILEO
" \$(SUBDIRS)"
;
}
if
(
@
{
@$project
[
$P_TARGETS
]}
>
0
)
{
print
FILEO
" \$(DLLS) \$(EXES:%=%.so)"
;
print
FILEO
" \$(DLLS
:%=%.so
) \$(EXES:%=%.so)"
;
}
print
FILEO
"\n\n"
;
if
(
@$project
[
$P_PATH
]
eq
""
)
{
...
...
@@ -1902,8 +1866,8 @@ sub generate_project_files($)
print
FILEO
"\t_list=\"\$(SUBDIRS)\"; for i in \$\$_list; do (cd \$\$i; \$(MAKE) install) || exit 1; done\n"
;
}
if
(
@
{
@$project
[
$P_TARGETS
]}
>
0
)
{
print
FILEO
"\t_list=\"\$(EXES
:%=%.so)\"; for i in \$\$_list; do \$(INSTALL_PROGRAM) \$\$i \$(dll
dir); done\n"
;
print
FILEO
"\t_list=\"
\$(DLLS)\"; for i in \$\$_list; do \$(INSTALL_PROGRAM) \$\$i \$(lib
dir); done\n"
;
print
FILEO
"\t_list=\"\$(EXES
)\"; for i in \$\$_list; do \$(INSTALL_SCRIPT) \$\$i \$(bin
dir); done\n"
;
print
FILEO
"\t_list=\"
$(EXES:%=%.so) \$(DLLS:%=%.so)\"; for i in \$\$_list; do \$(INSTALL_PROGRAM) \$\$i \$(dll
dir); done\n"
;
}
print
FILEO
"\n"
;
print
FILEO
"uninstall::\n"
;
...
...
@@ -1913,8 +1877,8 @@ sub generate_project_files($)
print
FILEO
"\t_list=\"\$(SUBDIRS)\"; for i in \$\$_list; do (cd \$\$i; \$(MAKE) uninstall) || exit 1; done\n"
;
}
if
(
@
{
@$project
[
$P_TARGETS
]}
>
0
)
{
print
FILEO
"\t_list=\"\$(EXES
:%=%.so)\"; for i in \$\$_list; do \$(RM) \$(dll
dir)/\$\$i;done\n"
;
print
FILEO
"\t_list=\"
\$(DLLS)\"; for i in \$\$_list; do \$(RM) \$(lib
dir)/\$\$i;done\n"
;
print
FILEO
"\t_list=\"\$(EXES
)\"; for i in \$\$_list; do \$(RM) \$(bin
dir)/\$\$i;done\n"
;
print
FILEO
"\t_list=\"
$(EXES:%=%.so) \$(DLLS:%=%.so)\"; for i in \$\$_list; do \$(RM) \$(dll
dir)/\$\$i;done\n"
;
}
print
FILEO
"\n"
;
print
FILEO
"clean::\n"
;
...
...
@@ -1952,20 +1916,20 @@ sub generate_project_files($)
$all_libs
=
"\$(${canon}_LIBRARIES:%=-l%) \$(ALL_LIBRARIES)"
;
}
print
FILEO
"
\$(${canon}_SPEC_SRCS:.spec=.spec.c): \$(${canon}_SPEC_SRCS) \$(${canon}_OBJS) \$(${canon}_RC_SRCS:.rc=.res
)\n"
;
print
FILEO
"\t\$(LD_PATH) \$(WINEBUILD) -fPIC
\$(${canon}_DLL_PATH) \$(ALL_DLL_PATH) $all_dlls \$(${canon}_RC_SRCS:%.rc=-res %.res) $mode \$(${canon}_OBJS) -o \$\@ -spec \$(SRCDIR)/\$(${canon}_SPEC_SRC
S)\n"
;
print
FILEO
"
@$target[$T_NAME].spec.c: \$(${canon}_SPEC_SRCS) \$(${canon}_RC_SRCS:.rc=.res) \$(${canon}_OBJS
)\n"
;
print
FILEO
"\t\$(LD_PATH) \$(WINEBUILD) -fPIC
-o \$\@ \$(${canon}_SPEC_SRCS:%=-spec %) \$(${canon}_RC_SRCS:%.rc=-res %.res) \$(${canon}_DLL_PATH) \$(WINE_DLL_PATH) \$(GLOBAL_DLL_PATH) $all_dlls $mode \$(${canon}_OBJ
S)\n"
;
print
FILEO
"\n"
;
my
$t_name
=
@$target
[
$T_NAME
];
if
(
@$target
[
$T_TYPE
]
!=
$TT_DLL
)
{
$t_name
.=
".exe.so"
;
}
print
FILEO
"
$t_name: \$(${canon}_SPEC_SRCS:.spec=.spec.o)
\$(${canon}_OBJS) \$(${canon}_DEPENDS) \n"
;
print
FILEO
"
@$target[$T_NAME].so: @$target[$T_NAME].spec.o
\$(${canon}_OBJS) \$(${canon}_DEPENDS) \n"
;
if
(
@
{
@$target
[
$T_SOURCES_CXX
]}
>
0
or
@
{
@$project_settings
[
$T_SOURCES_CXX
]}
>
0
)
{
print
FILEO
"\t\$(LDXXSHARED)"
;
}
else
{
print
FILEO
"\t\$(LDSHARED)"
;
}
print
FILEO
" \$(LDDLLFLAGS) -o \$\@ \$(${canon}_OBJS)
\$(${canon}_SPEC_SRCS:.spec=.spec.o)
\$(${canon}_LIBRARY_PATH) \$(ALL_LIBRARY_PATH) $all_libs \$(LIBS)\n"
;
print
FILEO
" \$(LDDLLFLAGS) -o \$\@ \$(${canon}_OBJS)
@$target[$T_NAME].spec.o
\$(${canon}_LIBRARY_PATH) \$(ALL_LIBRARY_PATH) $all_libs \$(LIBS)\n"
;
if
(
@$target
[
$T_TYPE
]
ne
$TT_DLL
)
{
print
FILEO
"\ttest -f @$target[$T_NAME] || \$(INSTALL_SCRIPT) wineapploader @$target[$T_NAME]\n"
;
}
...
...
@@ -3165,7 +3129,7 @@ $(EXTRASUBDIRS:%=%/__clean__): dummy
-
cd
`dirname $@`
&&
$
(
RM
)
$
(
CLEAN_FILES
)
clean::
$
(
SUBDIRS:
%=%
/__clean__) $(EXTRASUBDIRS:%=%/
__clean__
)
$
(
RM
)
$
(
CLEAN_FILES
)
$
(
RC_SRCS:
.
rc
=.
res
)
$
(
OBJS
)
$
(
EXES
)
$
(
EXES:
%=%.
so
)
$
(
DLLS
)
$
(
RM
)
$
(
CLEAN_FILES
)
$
(
RC_SRCS:
.
rc
=.
res
)
$
(
OBJS
)
$
(
EXES
:
%.
exe
=%
)
$
(
EXES:
%=%.
so
)
$
(
EXES:
%=%.
spec
.
o
)
$
(
DLLS:
%=%.
so
)
$
(
DLLS:
%=%.
spec
.
o
)
# Rules for installing
...
...
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