summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorobo <obo@openoffice.org>2010-06-21 15:14:37 +0200
committerobo <obo@openoffice.org>2010-06-21 15:14:37 +0200
commit91da6e6458e2ba410ac9dd4fe606205dbb4e60f8 (patch)
tree0cc0a8708e85016f4364fddc524902ab17e46b84 /tools
parent9d48829ff370d49cfedddb88eade37aee36f4ba6 (diff)
parentda4a9fc94efc66b5acc95bbd6a6bb376ad01eea6 (diff)
CWS-TOOLING: integrate CWS systemlibc
Diffstat (limited to 'tools')
-rw-r--r--tools/bootstrp/makefile.mk9
-rw-r--r--tools/bootstrp/rscdep.cxx59
2 files changed, 20 insertions, 48 deletions
diff --git a/tools/bootstrp/makefile.mk b/tools/bootstrp/makefile.mk
index b592cb900630..41188d2117d0 100644
--- a/tools/bootstrp/makefile.mk
+++ b/tools/bootstrp/makefile.mk
@@ -38,6 +38,10 @@ LIBTARGET=NO
CDEFS+=-D_TOOLS_STRINGLIST
+.IF "$(HAVE_GETOPT)" == "YES"
+CDEFS += -DHAVE_GETOPT
+.ENDIF
+
# --- Files --------------------------------------------------------
OBJFILES= \
@@ -83,6 +87,11 @@ APP2TARGET= rscdep
APP2OBJS= $(OBJ)$/rscdep.obj
APP2LIBS= $(LB)$/$(TARGET).lib $(LB)$/$(TARGET1).lib
APP2STDLIBS= $(SALLIB) $(VOSLIB) $(TOOLSLIB) $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(I18NISOLANGLIB) $(CPPUHELPERLIB) $(SALHELPERLIB)
+.IF "$(HAVE_GETOPT)" != "YES"
+.IF "$(OS)"=="WNT"
+APP2STDLIBS+=gnu_getopt.lib
+.ENDIF
+.ENDIF
APP2RPATH= NONE
APP2RPATH= NONE
APP2RPATH= NONE
diff --git a/tools/bootstrp/rscdep.cxx b/tools/bootstrp/rscdep.cxx
index 5c18793c9833..37edfc6a8c18 100644
--- a/tools/bootstrp/rscdep.cxx
+++ b/tools/bootstrp/rscdep.cxx
@@ -45,6 +45,16 @@
#include "cppdep.hxx"
+#if defined WNT
+#if !defined HAVE_GETOPT
+#define __STDC__ 1
+#define __GNU_LIBRARY__
+#include <external/glibc/getopt.h>
+#else
+#include <getopt.h>
+#endif
+#endif
+
class RscHrcDep : public CppDep
{
public:
@@ -70,15 +80,6 @@ void RscHrcDep::Execute()
//static String aDelim;
-/* poor man's getopt() */
-int simple_getopt(char *argv[], const char *optstring);
-#if defined(WNT) || defined(OS2)
-static char *optarg = NULL;
-static int optind = 1;
-static int optopt = 0;
-static int opterr = 0;
-#endif
-
SAL_IMPLEMENT_MAIN_WITH_ARGS( argc, argv )
{
int c;
@@ -179,7 +180,7 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS( argc, argv )
while( 1 )
{
- c = simple_getopt( argv,
+ c = getopt( argc, argv,
"_abcdefghi:jklmnopqrstuvwxyzABCDEFGHI:JKLMNOPQRSTUVWXYZ1234567890/-+=.\\()\"");
if ( c == -1 )
break;
@@ -296,41 +297,3 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS( argc, argv )
return 0;
}
-/* my very simple minded implementation of getopt()
- * it's too sad that getopt() is not available everywhere
- * note: this is not a full POSIX conforming getopt()
- */
-int simple_getopt(char *argv[], const char *optstring)
-{
- char *arg = argv[optind];
-
- /* skip all response file arguments */
- if ( arg ) {
- while ( *arg == '@' )
- arg = argv[++optind];
-
- if ( arg[0] == '-' && arg[1] != '\0' ) {
- const char *popt;
- int c = arg[1];
- if ( (popt = strchr(optstring, c)) == NULL ) {
- optopt = c;
- if ( opterr )
- fprintf(stderr, "Unknown option character `\\x%x'.\n", optopt);
- return '?';
- }
- if ( *(++popt) == ':') {
- if ( arg[2] != '\0' ) {
- optarg = ++arg;
- } else {
- optarg = argv[++optind];
- }
- } else {
- optarg = NULL;
- }
- ++optind;
- return c;
- }
- }
- return -1;
-}
-