Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xiph.Org
aom-rav1e
Commits
16810c10
Commit
16810c10
authored
Dec 21, 2012
by
John Koleszar
Browse files
Merge branch 'vp9-preview' of review:webm/libvpx
Merge the vp9-preview branch into master. Change-Id: If700b9054676f24bed9deb59050af546c1ca5296
parents
b9ce4302
5ebe94f9
Changes
404
Expand all
Hide whitespace changes
Inline
Side-by-side
args.c
View file @
16810c10
...
...
@@ -25,241 +25,214 @@ extern void die(const char *fmt, ...);
#endif
struct
arg
arg_init
(
char
**
argv
)
{
struct
arg
a
;
a
.
argv
=
argv
;
a
.
argv_step
=
1
;
a
.
name
=
NULL
;
a
.
val
=
NULL
;
a
.
def
=
NULL
;
return
a
;
struct
arg
arg_init
(
char
**
argv
)
{
struct
arg
a
;
a
.
argv
=
argv
;
a
.
argv_step
=
1
;
a
.
name
=
NULL
;
a
.
val
=
NULL
;
a
.
def
=
NULL
;
return
a
;
}
int
arg_match
(
struct
arg
*
arg_
,
const
struct
arg_def
*
def
,
char
**
argv
)
{
struct
arg
arg
;
int
arg_match
(
struct
arg
*
arg_
,
const
struct
arg_def
*
def
,
char
**
argv
)
{
struct
arg
arg
;
if
(
!
argv
[
0
]
||
argv
[
0
][
0
]
!=
'-'
)
return
0
;
if
(
!
argv
[
0
]
||
argv
[
0
][
0
]
!=
'-'
)
return
0
;
arg
=
arg_init
(
argv
);
arg
=
arg_init
(
argv
);
if
(
def
->
short_name
&&
strlen
(
arg
.
argv
[
0
])
==
strlen
(
def
->
short_name
)
+
1
&&
!
strcmp
(
arg
.
argv
[
0
]
+
1
,
def
->
short_name
))
{
if
(
def
->
short_name
&&
strlen
(
arg
.
argv
[
0
])
==
strlen
(
def
->
short_name
)
+
1
&&
!
strcmp
(
arg
.
argv
[
0
]
+
1
,
def
->
short_name
))
{
arg
.
name
=
arg
.
argv
[
0
]
+
1
;
arg
.
val
=
def
->
has_val
?
arg
.
argv
[
1
]
:
NULL
;
arg
.
argv_step
=
def
->
has_val
?
2
:
1
;
}
else
if
(
def
->
long_name
)
{
const
size_t
name_len
=
strlen
(
def
->
long_name
);
if
(
strlen
(
arg
.
argv
[
0
])
>=
name_len
+
2
&&
arg
.
argv
[
0
][
1
]
==
'-'
&&
!
strncmp
(
arg
.
argv
[
0
]
+
2
,
def
->
long_name
,
name_len
)
&&
(
arg
.
argv
[
0
][
name_len
+
2
]
==
'='
||
arg
.
argv
[
0
][
name_len
+
2
]
==
'\0'
))
{
arg
.
name
=
arg
.
argv
[
0
]
+
2
;
arg
.
val
=
arg
.
name
[
name_len
]
==
'='
?
arg
.
name
+
name_len
+
1
:
NULL
;
arg
.
argv_step
=
1
;
}
arg
.
name
=
arg
.
argv
[
0
]
+
1
;
arg
.
val
=
def
->
has_val
?
arg
.
argv
[
1
]
:
NULL
;
arg
.
argv_step
=
def
->
has_val
?
2
:
1
;
}
else
if
(
def
->
long_name
)
{
const
size_t
name_len
=
strlen
(
def
->
long_name
);
if
(
strlen
(
arg
.
argv
[
0
])
>=
name_len
+
2
&&
arg
.
argv
[
0
][
1
]
==
'-'
&&
!
strncmp
(
arg
.
argv
[
0
]
+
2
,
def
->
long_name
,
name_len
)
&&
(
arg
.
argv
[
0
][
name_len
+
2
]
==
'='
||
arg
.
argv
[
0
][
name_len
+
2
]
==
'\0'
))
{
arg
.
name
=
arg
.
argv
[
0
]
+
2
;
arg
.
val
=
arg
.
name
[
name_len
]
==
'='
?
arg
.
name
+
name_len
+
1
:
NULL
;
arg
.
argv_step
=
1
;
}
}
if
(
arg
.
name
&&
!
arg
.
val
&&
def
->
has_val
)
die
(
"Error: option %s requires argument.
\n
"
,
arg
.
name
);
if
(
arg
.
name
&&
!
arg
.
val
&&
def
->
has_val
)
die
(
"Error: option %s requires argument.
\n
"
,
arg
.
name
);
if
(
arg
.
name
&&
arg
.
val
&&
!
def
->
has_val
)
die
(
"Error: option %s requires no argument.
\n
"
,
arg
.
name
);
if
(
arg
.
name
&&
arg
.
val
&&
!
def
->
has_val
)
die
(
"Error: option %s requires no argument.
\n
"
,
arg
.
name
);
if
(
arg
.
name
&&
(
arg
.
val
||
!
def
->
has_val
))
{
arg
.
def
=
def
;
*
arg_
=
arg
;
return
1
;
}
if
(
arg
.
name
&&
(
arg
.
val
||
!
def
->
has_val
))
{
arg
.
def
=
def
;
*
arg_
=
arg
;
return
1
;
}
return
0
;
return
0
;
}
const
char
*
arg_next
(
struct
arg
*
arg
)
{
if
(
arg
->
argv
[
0
])
arg
->
argv
+=
arg
->
argv_step
;
const
char
*
arg_next
(
struct
arg
*
arg
)
{
if
(
arg
->
argv
[
0
])
arg
->
argv
+=
arg
->
argv_step
;
return
*
arg
->
argv
;
return
*
arg
->
argv
;
}
char
**
argv_dup
(
int
argc
,
const
char
**
argv
)
{
char
**
new_argv
=
malloc
((
argc
+
1
)
*
sizeof
(
*
argv
));
char
**
argv_dup
(
int
argc
,
const
char
**
argv
)
{
char
**
new_argv
=
malloc
((
argc
+
1
)
*
sizeof
(
*
argv
));
memcpy
(
new_argv
,
argv
,
argc
*
sizeof
(
*
argv
));
new_argv
[
argc
]
=
NULL
;
return
new_argv
;
memcpy
(
new_argv
,
argv
,
argc
*
sizeof
(
*
argv
));
new_argv
[
argc
]
=
NULL
;
return
new_argv
;
}
void
arg_show_usage
(
FILE
*
fp
,
const
struct
arg_def
*
const
*
defs
)
{
char
option_text
[
40
]
=
{
0
};
void
arg_show_usage
(
FILE
*
fp
,
const
struct
arg_def
*
const
*
defs
)
{
char
option_text
[
40
]
=
{
0
};
for
(;
*
defs
;
defs
++
)
{
const
struct
arg_def
*
def
=
*
defs
;
char
*
short_val
=
def
->
has_val
?
" <arg>"
:
""
;
char
*
long_val
=
def
->
has_val
?
"=<arg>"
:
""
;
for
(;
*
defs
;
defs
++
)
{
const
struct
arg_def
*
def
=
*
defs
;
char
*
short_val
=
def
->
has_val
?
" <arg>"
:
""
;
char
*
long_val
=
def
->
has_val
?
"=<arg>"
:
""
;
if
(
def
->
short_name
&&
def
->
long_name
)
{
char
*
comma
=
def
->
has_val
?
","
:
", "
;
if
(
def
->
short_name
&&
def
->
long_name
)
{
char
*
comma
=
def
->
has_val
?
","
:
", "
;
snprintf
(
option_text
,
37
,
"-%s%s%s --%s%6s"
,
def
->
short_name
,
short_val
,
comma
,
def
->
long_name
,
long_val
);
}
else
if
(
def
->
short_name
)
snprintf
(
option_text
,
37
,
"-%s%s"
,
def
->
short_name
,
short_val
);
else
if
(
def
->
long_name
)
snprintf
(
option_text
,
37
,
" --%s%s"
,
def
->
long_name
,
long_val
);
snprintf
(
option_text
,
37
,
"-%s%s%s --%s%6s"
,
def
->
short_name
,
short_val
,
comma
,
def
->
long_name
,
long_val
);
}
else
if
(
def
->
short_name
)
snprintf
(
option_text
,
37
,
"-%s%s"
,
def
->
short_name
,
short_val
);
else
if
(
def
->
long_name
)
snprintf
(
option_text
,
37
,
" --%s%s"
,
def
->
long_name
,
long_val
);
fprintf
(
fp
,
" %-37s
\t
%s
\n
"
,
option_text
,
def
->
desc
);
fprintf
(
fp
,
" %-37s
\t
%s
\n
"
,
option_text
,
def
->
desc
);
if
(
def
->
enums
)
{
const
struct
arg_enum_list
*
listptr
;
if
(
def
->
enums
)
{
const
struct
arg_enum_list
*
listptr
;
fprintf
(
fp
,
" %-37s
\t
"
,
""
);
fprintf
(
fp
,
" %-37s
\t
"
,
""
);
for
(
listptr
=
def
->
enums
;
listptr
->
name
;
listptr
++
)
fprintf
(
fp
,
"%s%s"
,
listptr
->
name
,
listptr
[
1
].
name
?
", "
:
"
\n
"
);
}
for
(
listptr
=
def
->
enums
;
listptr
->
name
;
listptr
++
)
fprintf
(
fp
,
"%s%s"
,
listptr
->
name
,
listptr
[
1
].
name
?
", "
:
"
\n
"
);
}
}
}
unsigned
int
arg_parse_uint
(
const
struct
arg
*
arg
)
{
long
int
rawval
;
char
*
endptr
;
unsigned
int
arg_parse_uint
(
const
struct
arg
*
arg
)
{
long
int
rawval
;
char
*
endptr
;
rawval
=
strtol
(
arg
->
val
,
&
endptr
,
10
);
rawval
=
strtol
(
arg
->
val
,
&
endptr
,
10
);
if
(
arg
->
val
[
0
]
!=
'\0'
&&
endptr
[
0
]
==
'\0'
)
{
if
(
rawval
>=
0
&&
rawval
<=
UINT_MAX
)
return
rawval
;
if
(
arg
->
val
[
0
]
!=
'\0'
&&
endptr
[
0
]
==
'\0'
)
{
if
(
rawval
>=
0
&&
rawval
<=
UINT_MAX
)
return
rawval
;
die
(
"Option %s: Value %ld out of range for unsigned int
\n
"
,
arg
->
name
,
rawval
);
}
die
(
"Option %s: Value %ld out of range for unsigned int
\n
"
,
arg
->
name
,
rawval
);
}
die
(
"Option %s: Invalid character '%c'
\n
"
,
arg
->
name
,
*
endptr
);
return
0
;
die
(
"Option %s: Invalid character '%c'
\n
"
,
arg
->
name
,
*
endptr
);
return
0
;
}
int
arg_parse_int
(
const
struct
arg
*
arg
)
{
long
int
rawval
;
char
*
endptr
;
int
arg_parse_int
(
const
struct
arg
*
arg
)
{
long
int
rawval
;
char
*
endptr
;
rawval
=
strtol
(
arg
->
val
,
&
endptr
,
10
);
rawval
=
strtol
(
arg
->
val
,
&
endptr
,
10
);
if
(
arg
->
val
[
0
]
!=
'\0'
&&
endptr
[
0
]
==
'\0'
)
{
if
(
rawval
>=
INT_MIN
&&
rawval
<=
INT_MAX
)
return
rawval
;
if
(
arg
->
val
[
0
]
!=
'\0'
&&
endptr
[
0
]
==
'\0'
)
{
if
(
rawval
>=
INT_MIN
&&
rawval
<=
INT_MAX
)
return
rawval
;
die
(
"Option %s: Value %ld out of range for signed int
\n
"
,
arg
->
name
,
rawval
);
}
die
(
"Option %s: Value %ld out of range for signed int
\n
"
,
arg
->
name
,
rawval
);
}
die
(
"Option %s: Invalid character '%c'
\n
"
,
arg
->
name
,
*
endptr
);
return
0
;
die
(
"Option %s: Invalid character '%c'
\n
"
,
arg
->
name
,
*
endptr
);
return
0
;
}
struct
vpx_rational
{
int
num
;
/**< fraction numerator */
int
den
;
/**< fraction denominator */
struct
vpx_rational
{
int
num
;
/**< fraction numerator */
int
den
;
/**< fraction denominator */
};
struct
vpx_rational
arg_parse_rational
(
const
struct
arg
*
arg
)
{
long
int
rawval
;
char
*
endptr
;
struct
vpx_rational
rat
;
/* parse numerator */
rawval
=
strtol
(
arg
->
val
,
&
endptr
,
10
);
if
(
arg
->
val
[
0
]
!=
'\0'
&&
endptr
[
0
]
==
'/'
)
{
if
(
rawval
>=
INT_MIN
&&
rawval
<=
INT_MAX
)
rat
.
num
=
rawval
;
else
die
(
"Option %s: Value %ld out of range for signed int
\n
"
,
arg
->
name
,
rawval
);
}
else
die
(
"Option %s: Expected / at '%c'
\n
"
,
arg
->
name
,
*
endptr
);
/* parse denominator */
rawval
=
strtol
(
endptr
+
1
,
&
endptr
,
10
);
if
(
arg
->
val
[
0
]
!=
'\0'
&&
endptr
[
0
]
==
'\0'
)
{
if
(
rawval
>=
INT_MIN
&&
rawval
<=
INT_MAX
)
rat
.
den
=
rawval
;
else
die
(
"Option %s: Value %ld out of range for signed int
\n
"
,
arg
->
name
,
rawval
);
}
else
die
(
"Option %s: Invalid character '%c'
\n
"
,
arg
->
name
,
*
endptr
);
return
rat
;
struct
vpx_rational
arg_parse_rational
(
const
struct
arg
*
arg
)
{
long
int
rawval
;
char
*
endptr
;
struct
vpx_rational
rat
;
/* parse numerator */
rawval
=
strtol
(
arg
->
val
,
&
endptr
,
10
);
if
(
arg
->
val
[
0
]
!=
'\0'
&&
endptr
[
0
]
==
'/'
)
{
if
(
rawval
>=
INT_MIN
&&
rawval
<=
INT_MAX
)
rat
.
num
=
rawval
;
else
die
(
"Option %s: Value %ld out of range for signed int
\n
"
,
arg
->
name
,
rawval
);
}
else
die
(
"Option %s: Expected / at '%c'
\n
"
,
arg
->
name
,
*
endptr
);
/* parse denominator */
rawval
=
strtol
(
endptr
+
1
,
&
endptr
,
10
);
if
(
arg
->
val
[
0
]
!=
'\0'
&&
endptr
[
0
]
==
'\0'
)
{
if
(
rawval
>=
INT_MIN
&&
rawval
<=
INT_MAX
)
rat
.
den
=
rawval
;
else
die
(
"Option %s: Value %ld out of range for signed int
\n
"
,
arg
->
name
,
rawval
);
}
else
die
(
"Option %s: Invalid character '%c'
\n
"
,
arg
->
name
,
*
endptr
);
return
rat
;
}
int
arg_parse_enum
(
const
struct
arg
*
arg
)
{
const
struct
arg_enum_list
*
listptr
;
long
int
rawval
;
char
*
endptr
;
/* First see if the value can be parsed as a raw value */
rawval
=
strtol
(
arg
->
val
,
&
endptr
,
10
);
if
(
arg
->
val
[
0
]
!=
'\0'
&&
endptr
[
0
]
==
'\0'
)
{
/* Got a raw value, make sure it's valid */
for
(
listptr
=
arg
->
def
->
enums
;
listptr
->
name
;
listptr
++
)
if
(
listptr
->
val
==
rawval
)
return
rawval
;
}
int
arg_parse_enum
(
const
struct
arg
*
arg
)
{
const
struct
arg_enum_list
*
listptr
;
long
int
rawval
;
char
*
endptr
;
/* Next see if it can be parsed as a string */
for
(
listptr
=
arg
->
def
->
enums
;
listptr
->
name
;
listptr
++
)
if
(
!
strcmp
(
arg
->
val
,
listptr
->
name
))
return
listptr
->
val
;
/* First see if the value can be parsed as a raw value */
rawval
=
strtol
(
arg
->
val
,
&
endptr
,
10
);
if
(
arg
->
val
[
0
]
!=
'\0'
&&
endptr
[
0
]
==
'\0'
)
{
/* Got a raw value, make sure it's valid */
for
(
listptr
=
arg
->
def
->
enums
;
listptr
->
name
;
listptr
++
)
if
(
listptr
->
val
==
rawval
)
return
rawval
;
}
die
(
"Option %s: Invalid value '%s'
\n
"
,
arg
->
name
,
arg
->
val
);
return
0
;
/* Next see if it can be parsed as a string */
for
(
listptr
=
arg
->
def
->
enums
;
listptr
->
name
;
listptr
++
)
if
(
!
strcmp
(
arg
->
val
,
listptr
->
name
))
return
listptr
->
val
;
die
(
"Option %s: Invalid value '%s'
\n
"
,
arg
->
name
,
arg
->
val
);
return
0
;
}
int
arg_parse_enum_or_int
(
const
struct
arg
*
arg
)
{
if
(
arg
->
def
->
enums
)
return
arg_parse_enum
(
arg
);
return
arg_parse_int
(
arg
);
int
arg_parse_enum_or_int
(
const
struct
arg
*
arg
)
{
if
(
arg
->
def
->
enums
)
return
arg_parse_enum
(
arg
);
return
arg_parse_int
(
arg
);
}
args.h
View file @
16810c10
...
...
@@ -13,29 +13,26 @@
#define ARGS_H
#include
<stdio.h>
struct
arg
{
char
**
argv
;
const
char
*
name
;
const
char
*
val
;
unsigned
int
argv_step
;
const
struct
arg_def
*
def
;
struct
arg
{
char
**
argv
;
const
char
*
name
;
const
char
*
val
;
unsigned
int
argv_step
;
const
struct
arg_def
*
def
;
};
struct
arg_enum_list
{
const
char
*
name
;
int
val
;
struct
arg_enum_list
{
const
char
*
name
;
int
val
;
};
#define ARG_ENUM_LIST_END {0}
typedef
struct
arg_def
{
const
char
*
short_name
;
const
char
*
long_name
;
int
has_val
;
const
char
*
desc
;
const
struct
arg_enum_list
*
enums
;
typedef
struct
arg_def
{
const
char
*
short_name
;
const
char
*
long_name
;
int
has_val
;
const
char
*
desc
;
const
struct
arg_enum_list
*
enums
;
}
arg_def_t
;
#define ARG_DEF(s,l,v,d) {s,l,v,d, NULL}
#define ARG_DEF_ENUM(s,l,v,d,e) {s,l,v,d,e}
...
...
build/make/Android.mk
View file @
16810c10
...
...
@@ -208,4 +208,3 @@ endif
ifeq
($(CONFIG_RUNTIME_CPU_DETECT),yes)
$(call
import-module,cpufeatures)
endif
build/make/Makefile
View file @
16810c10
...
...
@@ -253,10 +253,25 @@ $(1):
$(
if
$(quiet)
,@echo
" [LD]
$$
@"
)
$(qexec)
$
$(LD)
-shared
$
$(LDFLAGS)
\
-Wl
,--no-undefined
-Wl
,-soname,
$
$(SONAME)
\
-Wl
,--version-script,
$
$(
SO_VERSION_SCRIPT
)
-o
$$
@
\
$
$(
filter
%.o,
$$
?
)
$
$(extralibs)
-Wl
,--version-script,
$
$(
EXPORTS_FILE
)
-o
$$
@
\
$
$(
filter
%.o,
$$
^
)
$
$(extralibs)
endef
define
dl_template
# Not using a pattern rule here because we don't want to generate empty
# archives when they are listed as a dependency in files not responsible
# for creating them.
$(1)
:
$(
if
$(quiet)
,@echo
" [LD]
$$
@"
)
$(qexec)
$
$(LD)
-dynamiclib
$
$(LDFLAGS)
\
-exported_symbols_list
$
$(EXPORTS_FILE)
\
-Wl
,-headerpad_max_install_names,-compatibility_version,1.0,-current_version,
$
$(VERSION_MAJOR)
\
-o
$$
@
\
$
$(
filter
%.o,
$$
^
)
$
$(extralibs)
endef
define
lipo_lib_template
$(1)
:
$(addsuffix /$(1)
,
$(FAT_ARCHS))
$(
if
$(quiet)
,@echo
" [LIPO]
$$
@"
)
...
...
@@ -321,6 +336,7 @@ LIBS=$(call enabled,LIBS)
@
touch
$@
$(foreach
lib,$(filter
%_g.a,$(LIBS)),$(eval
$(call
archive_template,$(lib))))
$(foreach
lib,$(filter
%so.$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH),$(LIBS)),$(eval
$(call
so_template,$(lib))))
$(foreach
lib,$(filter
%$(VERSION_MAJOR).dylib,$(LIBS)),$(eval
$(call
dl_template,$(lib))))
INSTALL-LIBS
=
$(
call
cond_enabled,CONFIG_INSTALL_LIBS,INSTALL-LIBS
)
ifeq
($(MAKECMDGOALS),dist)
...
...
build/make/configure.sh
View file @
16810c10
...
...
@@ -277,6 +277,7 @@ clean_temp_files() {
# Toolchain Check Functions
#
check_cmd
()
{
enabled external_build
&&
return
log
"
$@
"
"
$@
"
>>
${
logfile
}
2>&1
}
...
...
@@ -435,10 +436,10 @@ RTCD_OPTIONS = ${RTCD_OPTIONS}
EOF
if
enabled rvct
;
then
cat
>>
$1
<<
EOF
fmt_deps = sed -e 's;^__image.axf;
\$
(dir
\$
@)
\$
(notdir
\$
<).o
\$
@;' #hide
fmt_deps = sed -e 's;^__image.axf;
\$
\$
{@:.d=.o}
\$
\$
@;' #hide
EOF
else
cat
>>
$1
<<
EOF
fmt_deps = sed -e 's;^
\(
[a-zA-Z0-9_]*
\)\.
o;
\$
(dir
\$
@)
\1\$
(suffix
\$
<).o
\$
@;'
fmt_deps = sed -e 's;^
\(
[a-zA-Z0-9_]*
\)\.
o;
\$
\$
{@:.d=.o}
\$
\$
@;'
EOF
fi
...
...
@@ -1001,7 +1002,11 @@ EOF
soft_enable sse2
soft_enable sse3
soft_enable ssse3
soft_enable sse4_1
if
enabled gcc
&&
!
disabled sse4_1
&&
!
check_cflags
-msse4
;
then
RTCD_OPTIONS
=
"
${
RTCD_OPTIONS
}
--disable-sse4_1 "
else
soft_enable sse4_1
fi
case
${
tgt_os
}
in
win
*
)
...
...
@@ -1176,9 +1181,6 @@ EOF
;;
esac
# for sysconf(3) and friends.
check_header unistd.h
# glibc needs these
if
enabled linux
;
then
add_cflags
-D_LARGEFILE_SOURCE
...
...
build/make/gen_msvs_proj.sh
View file @
16810c10
...
...
@@ -26,6 +26,7 @@ Options:
--help Print this message
--exe Generate a project for building an Application
--lib Generate a project for creating a static library
--dll Generate a project for creating a dll
--static-crt Use the static C runtime (/MT)
--target=isa-os-cc Target specifier (required)
--out=filename Write output to a file [stdout]
...
...
@@ -142,7 +143,9 @@ generate_filter() {
if
[
"
${
f
##*.
}
"
==
"
$pat
"
]
;
then
unset
file_list[i]
objf
=
$(
echo
${
f
%.*
}
.obj |
sed
-e
's/^[\./]\+//g'
-e
's,/,_,g'
)
open_tag File
RelativePath
=
"./
$f
"
if
[
"
$pat
"
==
"asm"
]
&&
$asm_use_custom_step
;
then
for
plat
in
"
${
platforms
[@]
}
"
;
do
for
cfg
in
Debug Release
;
do
...
...
@@ -152,14 +155,27 @@ generate_filter() {
tag Tool
\
Name
=
"VCCustomBuildTool"
\
Description
=
"Assembling
\$
(InputFileName)"
\
CommandLine
=
"
$(
eval echo
\$
asm_
${
cfg
}
_cmdline
)
"
\
Outputs
=
"
\$
(In
putName).
obj"
\
CommandLine
=
"
$(
eval echo
\$
asm_
${
cfg
}
_cmdline
)
-o
\$
(IntDir)
$objf
"
\
Outputs
=
"
\$
(In
tDir)
$
obj
f
"
\
close_tag FileConfiguration
done
done
fi
if
[
"
$pat
"
==
"c"
]
||
[
"
$pat
"
==
"cc"
]
;
then
for
plat
in
"
${
platforms
[@]
}
"
;
do
for
cfg
in
Debug Release
;
do
open_tag FileConfiguration
\
Name
=
"
${
cfg
}
|
${
plat
}
"
\
tag Tool
\
Name
=
"VCCLCompilerTool"
\
ObjectFile
=
"
\$
(IntDir)
$objf
"
\
close_tag FileConfiguration
done
done
fi
close_tag File
break
...
...
@@ -190,6 +206,8 @@ for opt in "$@"; do
;;
--exe
)
proj_kind
=
"exe"
;;
--dll
)
proj_kind
=
"dll"
;;
--lib
)
proj_kind
=
"lib"
;;
--src-path-bare
=
*
)
src_path_bare
=
"
$optval
"
...
...
@@ -244,8 +262,10 @@ case "${vs_ver:-8}" in
asm_use_custom_step
=
$uses_asm
;;
8
)
vs_ver_id
=
"8.00"
asm_use_custom_step
=
$uses_asm
;;
9
)
vs_ver_id
=
"9.00"
asm_use_custom_step
=
$uses_asm
;;
esac
...
...
@@ -284,10 +304,11 @@ esac
case
"
$target
"
in
x86_64
*
)
platforms[0]
=
"x64"
asm_Debug_cmdline
=
"yasm -Xvc -g cv8 -f
\$
(PlatformName)
${
yasmincs
}
"
\$
(InputPath)""
asm_Release_cmdline
=
"yasm -Xvc -f
\$
(PlatformName)
${
yasmincs
}
"
\$
(InputPath)""
;;
x86
*
)
platforms[0]
=
"Win32"
# these are only used by vs7
asm_Debug_cmdline
=
"yasm -Xvc -g cv8 -f
\$
(PlatformName)
${
yasmincs
}
"
\$
(InputPath)""
asm_Release_cmdline
=
"yasm -Xvc -f
\$
(PlatformName)
${
yasmincs
}
"
\$
(InputPath)""
;;
...
...
@@ -299,6 +320,8 @@ generate_vcproj() {
case
"
$proj_kind
"
in
exe
)
vs_ConfigurationType
=
1
;;
dll
)
vs_ConfigurationType
=
2
;;
*
)
vs_ConfigurationType
=
4
;;
esac
...
...
@@ -318,13 +341,6 @@ generate_vcproj() {