Check for getopt_long(), not getopt().

We support three types of platforms:

	1) UN*Xes that have both getopt() and getopt_long();

	2) UN*Xes that have getopt() but not getopt_long();

	3) Windows, which has neither.

Checking for getopt_long() lets us distinguish between 1) and 2) and
build getopt_long() for them.

Change-Id: Iaf0f142f9bebaa2eed2128d544ec9786711def45
Reviewed-on: https://code.wireshark.org/review/6045
Reviewed-by: Guy Harris <guy@alum.mit.edu>
This commit is contained in:
Guy Harris 2014-12-24 17:10:40 -08:00
parent b6f70ed3f8
commit 20503c7047
17 changed files with 24 additions and 22 deletions

View File

@ -77,7 +77,7 @@ cmake_pop_check_state()
# #
check_symbol_exists("floorl" "math.h" HAVE_FLOORL) check_symbol_exists("floorl" "math.h" HAVE_FLOORL)
check_function_exists("gethostbyname2" HAVE_GETHOSTBYNAME2) check_function_exists("gethostbyname2" HAVE_GETHOSTBYNAME2)
check_function_exists("getopt" HAVE_GETOPT) check_function_exists("getopt_long" HAVE_GETOPT_LONG)
check_function_exists("getprotobynumber" HAVE_GETPROTOBYNUMBER) check_function_exists("getprotobynumber" HAVE_GETPROTOBYNUMBER)
check_function_exists("inet_aton" HAVE_INET_ATON) check_function_exists("inet_aton" HAVE_INET_ATON)
check_function_exists("inet_ntop" HAVE_INET_NTOP_PROTO) check_function_exists("inet_ntop" HAVE_INET_NTOP_PROTO)

View File

@ -100,7 +100,7 @@
#include <wsutil/wsgcrypt.h> #include <wsutil/wsgcrypt.h>
#endif #endif
#ifndef HAVE_GETOPT #ifndef HAVE_GETOPT_LONG
#include "wsutil/wsgetopt.h" #include "wsutil/wsgetopt.h"
#endif #endif

View File

@ -70,7 +70,7 @@
#include <wsutil/unicode-utils.h> #include <wsutil/unicode-utils.h>
#endif /* _WIN32 */ #endif /* _WIN32 */
#ifndef HAVE_GETOPT #ifndef HAVE_GETOPT_LONG
#include "wsutil/wsgetopt.h" #include "wsutil/wsgetopt.h"
#endif #endif

View File

@ -72,8 +72,8 @@
/* Define to 1 if you have the `gethostbyname2' function. */ /* Define to 1 if you have the `gethostbyname2' function. */
#cmakedefine HAVE_GETHOSTBYNAME2 1 #cmakedefine HAVE_GETHOSTBYNAME2 1
/* Define to 1 if you have the getopt function. */ /* Define to 1 if you have the getopt_long function. */
#cmakedefine HAVE_GETOPT 1 #cmakedefine HAVE_GETOPT_LONG 1
/* Define to 1 if you have the <getopt.h> header file. */ /* Define to 1 if you have the <getopt.h> header file. */
#cmakedefine HAVE_GETOPT_H 1 #cmakedefine HAVE_GETOPT_H 1

View File

@ -2665,10 +2665,10 @@ AC_C_BIGENDIAN
# XXX - do we need this? # XXX - do we need this?
AC_PROG_GCC_TRADITIONAL AC_PROG_GCC_TRADITIONAL
AC_CHECK_FUNC(getopt, AC_CHECK_FUNC(getopt_long,
[ [
GETOPT_LO="" GETOPT_LO=""
AC_DEFINE(HAVE_GETOPT, 1, [Define to 1 if you have the getopt function.]) AC_DEFINE(HAVE_GETOPT_LONG, 1, [Define to 1 if you have the getopt_long function.])
], ],
GETOPT_LO="wsgetopt.lo") GETOPT_LO="wsgetopt.lo")
AC_SUBST(GETOPT_LO) AC_SUBST(GETOPT_LO)

View File

@ -74,7 +74,7 @@
#include <wsutil/crash_info.h> #include <wsutil/crash_info.h>
#include <wsutil/ws_version_info.h> #include <wsutil/ws_version_info.h>
#ifndef HAVE_GETOPT #ifndef HAVE_GETOPT_LONG
#include "wsutil/wsgetopt.h" #include "wsutil/wsgetopt.h"
#endif #endif

View File

@ -64,7 +64,7 @@
#include "wtap.h" #include "wtap.h"
#ifndef HAVE_GETOPT #ifndef HAVE_GETOPT_LONG
#include "wsutil/wsgetopt.h" #include "wsutil/wsgetopt.h"
#endif #endif

View File

@ -49,7 +49,7 @@
#include <string.h> #include <string.h>
#include "wtap.h" #include "wtap.h"
#ifndef HAVE_GETOPT #ifndef HAVE_GETOPT_LONG
#include <wsutil/wsgetopt.h> #include <wsutil/wsgetopt.h>
#endif #endif

View File

@ -27,7 +27,7 @@
#include <unistd.h> #include <unistd.h>
#endif #endif
#ifndef HAVE_GETOPT #ifndef HAVE_GETOPT_LONG
#include "wsutil/wsgetopt.h" #include "wsutil/wsgetopt.h"
#endif #endif

View File

@ -60,7 +60,7 @@
# include <sys/stat.h> # include <sys/stat.h>
#endif #endif
#ifndef HAVE_GETOPT #ifndef HAVE_GETOPT_LONG
#include "wsutil/wsgetopt.h" #include "wsutil/wsgetopt.h"
#endif #endif

View File

@ -42,7 +42,7 @@
#include "wtap.h" #include "wtap.h"
#ifndef HAVE_GETOPT #ifndef HAVE_GETOPT_LONG
#include "wsutil/wsgetopt.h" #include "wsutil/wsgetopt.h"
#endif #endif

View File

@ -133,7 +133,7 @@
#include <zlib.h> /* to get the libz version number */ #include <zlib.h> /* to get the libz version number */
#endif #endif
#ifndef HAVE_GETOPT #ifndef HAVE_GETOPT_LONG
#include "wsutil/wsgetopt.h" #include "wsutil/wsgetopt.h"
#endif #endif

View File

@ -53,7 +53,7 @@
#include <zlib.h> /* to get the libz version number */ #include <zlib.h> /* to get the libz version number */
#endif #endif
#ifndef HAVE_GETOPT #ifndef HAVE_GETOPT_LONG
#include "wsutil/wsgetopt.h" #include "wsutil/wsgetopt.h"
#endif #endif

View File

@ -58,7 +58,7 @@
# include <sys/capability.h> # include <sys/capability.h>
#endif #endif
#ifndef HAVE_GETOPT #ifndef HAVE_GETOPT_LONG
#include "wsutil/wsgetopt.h" #include "wsutil/wsgetopt.h"
#endif #endif

View File

@ -40,7 +40,7 @@
#include <unistd.h> #include <unistd.h>
#endif #endif
#ifndef HAVE_GETOPT #ifndef HAVE_GETOPT_LONG
#include "wsutil/wsgetopt.h" #include "wsutil/wsgetopt.h"
#endif #endif

View File

@ -33,10 +33,12 @@
#include <zlib.h> /* to get the libz version number */ #include <zlib.h> /* to get the libz version number */
#endif #endif
#ifndef HAVE_GETOPT #ifdef HAVE_GETOPT_H
# include "wsutil/wsgetopt.h" #include <getopt.h>
#else #endif
# include <getopt.h>
#ifndef HAVE_GETOPT_LONG
#include "wsutil/wsgetopt.h"
#endif #endif
#include <wsutil/clopts_common.h> #include <wsutil/clopts_common.h>

View File

@ -85,7 +85,7 @@ if(HAVE_SSE4_2)
set(WSUTIL_FILES ${WSUTIL_FILES} ws_mempbrk_sse42.c) set(WSUTIL_FILES ${WSUTIL_FILES} ws_mempbrk_sse42.c)
endif() endif()
if(NOT HAVE_GETOPT) if(NOT HAVE_GETOPT_LONG)
set(WSUTIL_FILES ${WSUTIL_FILES} wsgetopt.c) set(WSUTIL_FILES ${WSUTIL_FILES} wsgetopt.c)
endif() endif()