Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
f7272176
Commit
f7272176
authored
Jun 10, 2013
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winebuild: Split the names of the as and ld commands to allow arguments.
parent
2daa5367
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
53 additions
and
25 deletions
+53
-25
build.h
tools/winebuild/build.h
+5
-5
import.c
tools/winebuild/import.c
+5
-4
main.c
tools/winebuild/main.c
+6
-6
res32.c
tools/winebuild/res32.c
+2
-2
utils.c
tools/winebuild/utils.c
+35
-8
No files found.
tools/winebuild/build.h
View file @
f7272176
...
...
@@ -229,7 +229,7 @@ extern char *xstrdup( const char *str );
extern
char
*
strupper
(
char
*
s
);
extern
int
strendswith
(
const
char
*
str
,
const
char
*
end
);
extern
char
*
strmake
(
const
char
*
fmt
,
...)
__attribute__
((
__format__
(
__printf__
,
1
,
2
)));
extern
struct
strarray
*
strarray_
init
(
void
);
extern
struct
strarray
*
strarray_
fromstring
(
const
char
*
str
,
const
char
*
delim
);
extern
void
strarray_add
(
struct
strarray
*
array
,
...
);
extern
void
strarray_addv
(
struct
strarray
*
array
,
char
*
const
*
argv
);
extern
void
strarray_free
(
struct
strarray
*
array
);
...
...
@@ -246,7 +246,7 @@ extern int output( const char *format, ... )
extern
void
output_cfi
(
const
char
*
format
,
...
)
__attribute__
((
__format__
(
__printf__
,
1
,
2
)));
extern
void
spawn
(
struct
strarray
*
array
);
extern
char
*
find_tool
(
const
char
*
name
,
const
char
*
const
*
names
);
extern
struct
strarray
*
find_tool
(
const
char
*
name
,
const
char
*
const
*
names
);
extern
struct
strarray
*
get_as_command
(
void
);
extern
struct
strarray
*
get_ld_command
(
void
);
extern
const
char
*
get_nm_command
(
void
);
...
...
@@ -357,9 +357,9 @@ extern FILE *output_file;
extern
const
char
*
output_file_name
;
extern
char
**
lib_path
;
extern
char
*
as_command
;
extern
char
*
ld_command
;
extern
char
*
nm_command
;
extern
struct
strarray
*
as_command
;
extern
struct
strarray
*
ld_command
;
extern
struct
strarray
*
nm_command
;
extern
char
*
cpu_option
;
#endif
/* __WINE_BUILD_H */
tools/winebuild/import.c
View file @
f7272176
...
...
@@ -1322,7 +1322,7 @@ void output_imports( DLLSPEC *spec )
/* output an import library for a Win32 module and additional object files */
void
output_import_lib
(
DLLSPEC
*
spec
,
char
**
argv
)
{
struct
strarray
*
args
=
strarray_init
()
;
struct
strarray
*
args
;
char
*
def_file
;
if
(
target_platform
!=
PLATFORM_WINDOWS
)
...
...
@@ -1336,14 +1336,15 @@ void output_import_lib( DLLSPEC *spec, char **argv )
fclose
(
output_file
);
output_file
=
NULL
;
strarray_add
(
args
,
find_tool
(
"dlltool"
,
NULL
),
"-k"
,
"-l"
,
output_file_name
,
"-d"
,
def_file
,
NULL
);
args
=
find_tool
(
"dlltool"
,
NULL
);
strarray_add
(
args
,
"-k"
,
"-l"
,
output_file_name
,
"-d"
,
def_file
,
NULL
);
spawn
(
args
);
strarray_free
(
args
);
if
(
argv
[
0
])
{
args
=
strarray_init
(
);
strarray_add
(
args
,
find_tool
(
"ar"
,
NULL
),
"rs"
,
output_file_name
,
NULL
);
args
=
find_tool
(
"ar"
,
NULL
);
strarray_add
(
args
,
"rs"
,
output_file_name
,
NULL
);
strarray_addv
(
args
,
argv
);
spawn
(
args
);
strarray_free
(
args
);
...
...
tools/winebuild/main.c
View file @
f7272176
...
...
@@ -84,9 +84,9 @@ const char *output_file_name = NULL;
static
const
char
*
output_file_source_name
;
static
int
fake_module
;
char
*
as_command
=
NULL
;
char
*
ld_command
=
NULL
;
char
*
nm_command
=
NULL
;
struct
strarray
*
as_command
=
NULL
;
struct
strarray
*
ld_command
=
NULL
;
struct
strarray
*
nm_command
=
NULL
;
char
*
cpu_option
=
NULL
;
static
int
nb_res_files
;
...
...
@@ -474,7 +474,7 @@ static char **parse_options( int argc, char **argv, DLLSPEC *spec )
set_exec_mode
(
MODE_IMPLIB
);
break
;
case
LONG_OPT_ASCMD
:
as_command
=
xstrdup
(
optarg
);
as_command
=
strarray_fromstring
(
optarg
,
" "
);
break
;
case
LONG_OPT_FAKE_MODULE
:
fake_module
=
1
;
...
...
@@ -486,10 +486,10 @@ static char **parse_options( int argc, char **argv, DLLSPEC *spec )
spec
->
characteristics
|=
IMAGE_FILE_LARGE_ADDRESS_AWARE
;
break
;
case
LONG_OPT_LDCMD
:
ld_command
=
xstrdup
(
optarg
);
ld_command
=
strarray_fromstring
(
optarg
,
" "
);
break
;
case
LONG_OPT_NMCMD
:
nm_command
=
xstrdup
(
optarg
);
nm_command
=
strarray_fromstring
(
optarg
,
" "
);
break
;
case
LONG_OPT_NXCOMPAT
:
if
(
optarg
[
0
]
==
'n'
||
optarg
[
0
]
==
'N'
)
...
...
tools/winebuild/res32.c
View file @
f7272176
...
...
@@ -680,8 +680,8 @@ void output_res_o_file( DLLSPEC *spec )
close
(
fd
);
free
(
output_buffer
);
args
=
strarray_init
(
);
strarray_add
(
args
,
find_tool
(
"windres"
,
NULL
),
"-i"
,
res_file
,
"-o"
,
output_file_name
,
NULL
);
args
=
find_tool
(
"windres"
,
NULL
);
strarray_add
(
args
,
"-i"
,
res_file
,
"-o"
,
output_file_name
,
NULL
);
spawn
(
args
);
strarray_free
(
args
);
...
...
tools/winebuild/utils.c
View file @
f7272176
...
...
@@ -138,12 +138,23 @@ char *strmake( const char* fmt, ... )
}
}
st
ruct
strarray
*
strarray_init
(
void
)
st
atic
struct
strarray
*
strarray_init
(
const
char
*
str
)
{
struct
strarray
*
array
=
xmalloc
(
sizeof
(
*
array
)
);
array
->
count
=
0
;
array
->
max
=
16
;
array
->
str
=
xmalloc
(
array
->
max
*
sizeof
(
*
array
->
str
)
);
if
(
str
)
array
->
str
[
array
->
count
++
]
=
str
;
return
array
;
}
static
struct
strarray
*
strarray_copy
(
const
struct
strarray
*
src
)
{
struct
strarray
*
array
=
xmalloc
(
sizeof
(
*
array
)
);
array
->
count
=
src
->
count
;
array
->
max
=
src
->
max
;
array
->
str
=
xmalloc
(
array
->
max
*
sizeof
(
*
array
->
str
)
);
memcpy
(
array
->
str
,
src
->
str
,
array
->
count
*
sizeof
(
*
array
->
str
)
);
return
array
;
}
...
...
@@ -172,6 +183,19 @@ void strarray_addv( struct strarray *array, char * const *argv )
while
(
*
argv
)
strarray_add_one
(
array
,
*
argv
++
);
}
struct
strarray
*
strarray_fromstring
(
const
char
*
str
,
const
char
*
delim
)
{
const
char
*
tok
;
struct
strarray
*
array
=
strarray_init
(
NULL
);
char
*
buf
=
strdup
(
str
);
for
(
tok
=
strtok
(
buf
,
delim
);
tok
;
tok
=
strtok
(
NULL
,
delim
))
strarray_add_one
(
array
,
strdup
(
tok
));
free
(
buf
);
return
array
;
}
void
strarray_free
(
struct
strarray
*
array
)
{
free
(
array
->
str
);
...
...
@@ -277,7 +301,7 @@ void spawn( struct strarray *args )
}
/* find a build tool in the path, trying the various names */
char
*
find_tool
(
const
char
*
name
,
const
char
*
const
*
names
)
struct
strarray
*
find_tool
(
const
char
*
name
,
const
char
*
const
*
names
)
{
static
char
**
dirs
;
static
unsigned
int
count
,
maxlen
;
...
...
@@ -338,7 +362,8 @@ char *find_tool( const char *name, const char * const *names )
strcpy
(
p
,
*
names
);
strcat
(
p
,
EXEEXT
);
if
(
!
stat
(
file
,
&
st
)
&&
S_ISREG
(
st
.
st_mode
)
&&
(
st
.
st_mode
&
0111
))
return
file
;
if
(
!
stat
(
file
,
&
st
)
&&
S_ISREG
(
st
.
st_mode
)
&&
(
st
.
st_mode
&
0111
))
return
strarray_init
(
file
);
}
free
(
file
);
names
++
;
...
...
@@ -349,7 +374,7 @@ char *find_tool( const char *name, const char * const *names )
struct
strarray
*
get_as_command
(
void
)
{
static
int
as_is_clang
=
0
;
struct
strarray
*
args
=
strarray_init
()
;
struct
strarray
*
args
;
if
(
!
as_command
)
{
...
...
@@ -366,7 +391,7 @@ struct strarray *get_as_command(void)
if
(
!
as_command
)
fatal_error
(
"cannot find suitable assembler
\n
"
);
strarray_add_one
(
args
,
as_command
);
args
=
strarray_copy
(
as_command
);
if
(
as_is_clang
)
{
...
...
@@ -401,7 +426,7 @@ struct strarray *get_as_command(void)
struct
strarray
*
get_ld_command
(
void
)
{
struct
strarray
*
args
=
strarray_init
()
;
struct
strarray
*
args
;
if
(
!
ld_command
)
{
...
...
@@ -412,7 +437,7 @@ struct strarray *get_ld_command(void)
if
(
!
ld_command
)
fatal_error
(
"cannot find suitable linker
\n
"
);
strarray_add_one
(
args
,
ld_command
);
args
=
strarray_copy
(
ld_command
);
if
(
force_pointer_size
)
{
...
...
@@ -450,7 +475,9 @@ const char *get_nm_command(void)
if
(
!
nm_command
)
fatal_error
(
"cannot find suitable name lister
\n
"
);
return
nm_command
;
if
(
nm_command
->
count
>
1
)
fatal_error
(
"multiple arguemnts in nm command not supported yet
\n
"
);
return
nm_command
->
str
[
0
];
}
/* get a name for a temp file, automatically cleaned up on exit */
...
...
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