This allows compiling and running these tests on systems lacking a built- in version of getopt(), such as MSVC. Signed-off-by: Anton Khirnov <anton@khirnov.net>tags/n1.0
@@ -0,0 +1,84 @@ | |||||
/* | |||||
* This file is part of Libav. | |||||
* | |||||
* Libav is free software; you can redistribute it and/or | |||||
* modify it under the terms of the GNU Lesser General Public | |||||
* License as published by the Free Software Foundation; either | |||||
* version 2.1 of the License, or (at your option) any later version. | |||||
* | |||||
* Libav is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||||
* Lesser General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU Lesser General Public | |||||
* License along with Libav; if not, write to the Free Software | |||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||||
*/ | |||||
/* | |||||
* This file was copied from the following newsgroup posting: | |||||
* | |||||
* Newsgroups: mod.std.unix | |||||
* Subject: public domain AT&T getopt source | |||||
* Date: 3 Nov 85 19:34:15 GMT | |||||
* | |||||
* Here's something you've all been waiting for: the AT&T public domain | |||||
* source for getopt(3). It is the code which was given out at the 1985 | |||||
* UNIFORUM conference in Dallas. I obtained it by electronic mail | |||||
* directly from AT&T. The people there assure me that it is indeed | |||||
* in the public domain. | |||||
*/ | |||||
#define EOF (-1) | |||||
static int opterr = 1; | |||||
static int optind = 1; | |||||
static int optopt; | |||||
static char *optarg; | |||||
#undef fprintf | |||||
static int getopt(int argc, char *argv[], char *opts) | |||||
{ | |||||
static int sp = 1; | |||||
int c; | |||||
char *cp; | |||||
if (sp == 1) | |||||
if (optind >= argc || | |||||
argv[optind][0] != '-' || argv[optind][1] == '\0') | |||||
return EOF; | |||||
else if (!strcmp(argv[optind], "--")) { | |||||
optind++; | |||||
return EOF; | |||||
} | |||||
optopt = c = argv[optind][sp]; | |||||
if (c == ':' || (cp = strchr(opts, c)) == NULL) { | |||||
fprintf(stderr, ": illegal option -- %c\n", c); | |||||
if (argv[optind][++sp] == '\0') { | |||||
optind++; | |||||
sp = 1; | |||||
} | |||||
return '?'; | |||||
} | |||||
if (*++cp == ':') { | |||||
if (argv[optind][sp+1] != '\0') | |||||
optarg = &argv[optind++][sp+1]; | |||||
else if(++optind >= argc) { | |||||
fprintf(stderr, ": option requires an argument -- %c\n", c); | |||||
sp = 1; | |||||
return '?'; | |||||
} else | |||||
optarg = argv[optind++]; | |||||
sp = 1; | |||||
} else { | |||||
if (argv[optind][++sp] == '\0') { | |||||
sp = 1; | |||||
optind++; | |||||
} | |||||
optarg = NULL; | |||||
} | |||||
return c; | |||||
} |
@@ -1083,6 +1083,7 @@ HAVE_LIST=" | |||||
fork | fork | ||||
getaddrinfo | getaddrinfo | ||||
gethrtime | gethrtime | ||||
getopt | |||||
GetProcessAffinityMask | GetProcessAffinityMask | ||||
GetProcessMemoryInfo | GetProcessMemoryInfo | ||||
GetProcessTimes | GetProcessTimes | ||||
@@ -2862,6 +2863,7 @@ check_func fcntl | |||||
check_func fork | check_func fork | ||||
check_func getaddrinfo $network_extralibs | check_func getaddrinfo $network_extralibs | ||||
check_func gethrtime | check_func gethrtime | ||||
check_func getopt | |||||
check_func getrusage | check_func getrusage | ||||
check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss | check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss | ||||
check_func gettimeofday | check_func gettimeofday | ||||
@@ -25,10 +25,13 @@ | |||||
* Started from sample code by Juan J. Sierralta P. | * Started from sample code by Juan J. Sierralta P. | ||||
*/ | */ | ||||
#include "config.h" | |||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include <stdio.h> | #include <stdio.h> | ||||
#include <string.h> | #include <string.h> | ||||
#if HAVE_UNISTD_H | |||||
#include <unistd.h> | #include <unistd.h> | ||||
#endif | |||||
#include <math.h> | #include <math.h> | ||||
#include "libavutil/cpu.h" | #include "libavutil/cpu.h" | ||||
@@ -474,6 +477,10 @@ static void help(void) | |||||
"-t speed test\n"); | "-t speed test\n"); | ||||
} | } | ||||
#if !HAVE_GETOPT | |||||
#include "compat/getopt.c" | |||||
#endif | |||||
int main(int argc, char **argv) | int main(int argc, char **argv) | ||||
{ | { | ||||
int test_idct = 0, test_248_dct = 0; | int test_idct = 0, test_248_dct = 0; | ||||
@@ -34,7 +34,9 @@ | |||||
#include "rdft.h" | #include "rdft.h" | ||||
#endif | #endif | ||||
#include <math.h> | #include <math.h> | ||||
#if HAVE_UNISTD_H | |||||
#include <unistd.h> | #include <unistd.h> | ||||
#endif | |||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include <string.h> | #include <string.h> | ||||
@@ -229,6 +231,10 @@ enum tf_transform { | |||||
TRANSFORM_DCT, | TRANSFORM_DCT, | ||||
}; | }; | ||||
#if !HAVE_GETOPT | |||||
#include "compat/getopt.c" | |||||
#endif | |||||
int main(int argc, char **argv) | int main(int argc, char **argv) | ||||
{ | { | ||||
FFTComplex *tab, *tab1, *tab_ref; | FFTComplex *tab, *tab1, *tab_ref; | ||||