Getopt() fixes, from Max Horn.

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@351 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
meep-eep
2002-12-05 23:37:33 +00:00
parent fc73eb26df
commit b570cf1943
8 changed files with 59 additions and 8 deletions
+3
View File
@@ -26,6 +26,9 @@ have_library vorbisfile || exit 1
define_have_symbol strupr define_have_symbol strupr
define_have_symbol stricmp define_have_symbol stricmp
# Check for getopt.h
define_have_header getopt.h
# Describe the menu: # Describe the menu:
MENU_main_ITEMS="debug graphics sound link install_path" MENU_main_ITEMS="debug graphics sound link install_path"
+40 -6
View File
@@ -253,6 +253,43 @@ EOF
fi fi
} }
# Description: check if a header is available.
# Arguments: $1 - the name of the header file
have_header() {
local HEADER
HEADER="$1"
try_compile_c "$TEMP_CFLAGS" "$TEMP_LDFLAGS" << EOF 2>&1 > /dev/null
#include <$HEADER>
int main() {
return 0;
}
EOF
if [ $? -gt 0 ]; then
build_message "Header '$HEADER' not found."
return 1
fi
build_message "Header '$HEADER' found."
return 0
}
# Description: check if a header is available.
# set HAVE_<NAME> accordingly, where <NAME> is the capitalized
# name of the header file. "sys/time.h" becomes "SYS_TIME_H".
# Arguments: $1 - the name of the symbol
define_have_header() {
local NAME VALUE
NAME=`$TR /.a-z __A-Z << EOF
$1
EOF
`
if have_header "$1"; then
add_symbol "HAVE_$NAME" "#define HAVE_$NAME"
else
add_symbol "HAVE_$NAME" "#undef HAVE_$NAME"
fi
}
# Description: Add a symbol to be replaced by substitute_vars # Description: Add a symbol to be replaced by substitute_vars
# $HAVE_SYMBOLS will contain the variable names of all # $HAVE_SYMBOLS will contain the variable names of all
# symbols added by define_have_symbol and should be passed to # symbols added by define_have_symbol and should be passed to
@@ -303,14 +340,11 @@ substitute_vars() {
eval FILES=\"\$$2\" eval FILES=\"\$$2\"
for VAR in $VARS; do for VAR in $VARS; do
# Using CR as a seperator, as it's unlikely that's used in # Escape all / in VAR so that we can use / as seperator char for sed
# $VAR itself.
eval VALUE=\"\$$VAR\" eval VALUE=\"\$$VAR\"
VALUE=$(echo "$VALUE" | sed 's,\([\&/]\),\\\1,g')
cat << EOF cat << EOF
s s/@${VAR}@/${VALUE}/g
@${VAR}@
${VALUE}
g
EOF EOF
done > "${TEMPFILE}.sed" done > "${TEMPFILE}.sed"
+1 -1
View File
@@ -1,4 +1,4 @@
uqm_SUBDIRS=sc2code uqm_SUBDIRS="sc2code getopt"
uqm_CFILES="options.c port.c starcon2.c" uqm_CFILES="options.c port.c starcon2.c"
test_CFILES=test.c test_CFILES=test.c
+3
View File
@@ -10,3 +10,6 @@
/* Defined if your system has stricmp of its own */ /* Defined if your system has stricmp of its own */
@HAVE_STRICMP@ @HAVE_STRICMP@
/* Defined if your system has getopt.h */
@HAVE_GETOPT_H@
+1
View File
@@ -0,0 +1 @@
uqm_CFILES="getopt.c getopt1.c"
+3
View File
@@ -31,6 +31,7 @@
# include <config.h> # include <config.h>
#endif #endif
#ifndef HAVE_GETOPT_H
#if !defined __STDC__ || !__STDC__ #if !defined __STDC__ || !__STDC__
/* This is a separate conditional since some stdc systems /* This is a separate conditional since some stdc systems
reject `defined (const)'. */ reject `defined (const)'. */
@@ -1057,3 +1058,5 @@ main (argc, argv)
} }
#endif /* TEST */ #endif /* TEST */
#endif /* HAVE_GETOPT_H */
+3
View File
@@ -22,6 +22,7 @@
#include <config.h> #include <config.h>
#endif #endif
#ifndef HAVE_GETOPT_H
#include "getopt.h" #include "getopt.h"
#if !defined __STDC__ || !__STDC__ #if !defined __STDC__ || !__STDC__
@@ -186,3 +187,5 @@ main (argc, argv)
} }
#endif /* TEST */ #endif /* TEST */
#endif /* HAVE_GETOPT_H */
+5 -1
View File
@@ -18,10 +18,14 @@
#ifndef WIN32 #ifndef WIN32
#include <unistd.h> #include <unistd.h>
#include <getopt.h>
#include "config.h" #include "config.h"
#else #else
#include <direct.h> #include <direct.h>
#endif
#ifdef HAVE_GETOPT_H
#include <getopt.h>
#else
#include "getopt/getopt.h" #include "getopt/getopt.h"
#endif #endif