minor code fixes + added clang support + improved build system

Fri, 06 Sep 2013 13:20:20 +0200

author
Mike Becker <universe@uap-core.de>
date
Fri, 06 Sep 2013 13:20:20 +0200
changeset 152
3238f65db163
parent 151
fc8d05972af7
child 153
2d3d1313862a

minor code fixes + added clang support + improved build system

Makefile file | annotate | diff | comparison | revisions
README file | annotate | diff | comparison | revisions
clang-debug.mk file | annotate | diff | comparison | revisions
clang.mk file | annotate | diff | comparison | revisions
gcc-debug.mk file | annotate | diff | comparison | revisions
gcc.mk file | annotate | diff | comparison | revisions
osx-debug.mk file | annotate | diff | comparison | revisions
osx.mk file | annotate | diff | comparison | revisions
suncc-debug.mk file | annotate | diff | comparison | revisions
suncc.mk file | annotate | diff | comparison | revisions
test/Makefile file | annotate | diff | comparison | revisions
test/map_tests.c file | annotate | diff | comparison | revisions
ucx/Makefile file | annotate | diff | comparison | revisions
ucx/logging.c file | annotate | diff | comparison | revisions
ucx/properties.c file | annotate | diff | comparison | revisions
ucx/string.c file | annotate | diff | comparison | revisions
ucx/ucx.h file | annotate | diff | comparison | revisions
unix.mk file | annotate | diff | comparison | revisions
windows.mk file | annotate | diff | comparison | revisions
     1.1 --- a/Makefile	Thu Sep 05 13:55:04 2013 +0200
     1.2 +++ b/Makefile	Fri Sep 06 13:20:20 2013 +0200
     1.3 @@ -29,20 +29,20 @@
     1.4  
     1.5  #
     1.6  # available configurations:
     1.7 -#   gcc
     1.8 -#   suncc
     1.9 +#   clang,   clang-debug
    1.10 +#   gcc,     gcc-debug
    1.11 +#   g++,     g++-debug
    1.12 +#   osx,     osx-debug
    1.13 +#   suncc,   suncc-debug
    1.14  #   windows
    1.15 -#   osx
    1.16  #
    1.17  
    1.18 -#ifndef CONF
    1.19 -	CONF=gcc
    1.20 -#endif
    1.21 +CONF=gcc
    1.22 +PREFIX=/usr/local
    1.23  
    1.24 +include unix.mk
    1.25  include $(CONF).mk
    1.26  
    1.27 -all: ucx test
    1.28 -
    1.29  ucx: FORCE
    1.30  	cd ucx; $(MAKE) CONF=$(CONF) all
    1.31  	
    1.32 @@ -52,9 +52,22 @@
    1.33  run: FORCE test
    1.34  	./build/test$(APP_EXT)
    1.35  
    1.36 +install: ucx | $(PREFIX)/include/ucx $(PREFIX)/lib
    1.37 +	cp ./build/libucx$(LIB_EXT) $(PREFIX)/lib && \
    1.38 +        cp ./ucx/*.h $(PREFIX)/include/ucx
    1.39 +
    1.40 +uninstall:
    1.41 +	$(RM) $(RMFLAGS) $(PREFIX)/include/ucx &&\
    1.42 +	$(RM) $(RMFLAGS) $(PREFIX)/lib/libucx$(LIB_EXT)
    1.43 +
    1.44 +$(PREFIX)/lib:
    1.45 +	mkdir -p $(PREFIX)/lib
    1.46 +
    1.47 +$(PREFIX)/include/ucx:
    1.48 +	mkdir -p $(PREFIX)/include/ucx
    1.49 +
    1.50  clean: FORCE
    1.51 -	$(RM) $(RMFLAGS) build/*.${OBJ_EXT}
    1.52 -	$(RM) $(RMFLAGS) build/*.${LIB_EXT}
    1.53 +	$(RM) $(RMFLAGS) build
    1.54  
    1.55  FORCE:
    1.56  
     2.1 --- a/README	Thu Sep 05 13:55:04 2013 +0200
     2.2 +++ b/README	Fri Sep 06 13:20:20 2013 +0200
     2.3 @@ -31,10 +31,10 @@
     2.4  
     2.5    make
     2.6  
     2.7 -The further available configurations are gcc-debug, g++, g++-debug, osx,
     2.8 -osx-debug, suncc, suncc-debug and windows. The later uses microsoft visual C++
     2.9 -compiler. If you want to use mingw oder cygwin, you can use the default gcc
    2.10 -configuration.
    2.11 +The available configurations are clang, clang-debug, gcc, gcc-debug, g++,
    2.12 +g++-debug, osx, osx-debug, suncc, suncc-debug and windows. The later uses
    2.13 +microsoft visual C++ compiler. If you want to use mingw oder cygwin, you can
    2.14 +use the default gcc configuration.
    2.15  
    2.16  The build files are placed into a build subdirectory, which is created if it
    2.17  does not exists.
    2.18 @@ -49,7 +49,7 @@
    2.19  
    2.20  The default prefix is /usr/local.
    2.21  
    2.22 -If you want to test you build, run
    2.23 +If you want to test your build, run
    2.24  
    2.25    make run CONF=<yourconfig>
    2.26  
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/clang-debug.mk	Fri Sep 06 13:20:20 2013 +0200
     3.3 @@ -0,0 +1,34 @@
     3.4 +#
     3.5 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     3.6 +#
     3.7 +# Copyright 2013 Olaf Wintermann. All rights reserved.
     3.8 +#
     3.9 +# Redistribution and use in source and binary forms, with or without
    3.10 +# modification, are permitted provided that the following conditions are met:
    3.11 +#
    3.12 +#   1. Redistributions of source code must retain the above copyright
    3.13 +#      notice, this list of conditions and the following disclaimer.
    3.14 +#
    3.15 +#   2. Redistributions in binary form must reproduce the above copyright
    3.16 +#      notice, this list of conditions and the following disclaimer in the
    3.17 +#      documentation and/or other materials provided with the distribution.
    3.18 +#
    3.19 +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    3.20 +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    3.21 +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    3.22 +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    3.23 +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    3.24 +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    3.25 +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    3.26 +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    3.27 +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    3.28 +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    3.29 +# POSSIBILITY OF SUCH DAMAGE.
    3.30 +#
    3.31 +
    3.32 +CC = clang
    3.33 +LD = clang
    3.34 +
    3.35 +CFLAGS  = -std=gnu99 -g -fstrict-aliasing -Wall -pedantic -c
    3.36 +LDFLAGS = -lm
    3.37 +
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/clang.mk	Fri Sep 06 13:20:20 2013 +0200
     4.3 @@ -0,0 +1,34 @@
     4.4 +#
     4.5 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     4.6 +#
     4.7 +# Copyright 2013 Olaf Wintermann. All rights reserved.
     4.8 +#
     4.9 +# Redistribution and use in source and binary forms, with or without
    4.10 +# modification, are permitted provided that the following conditions are met:
    4.11 +#
    4.12 +#   1. Redistributions of source code must retain the above copyright
    4.13 +#      notice, this list of conditions and the following disclaimer.
    4.14 +#
    4.15 +#   2. Redistributions in binary form must reproduce the above copyright
    4.16 +#      notice, this list of conditions and the following disclaimer in the
    4.17 +#      documentation and/or other materials provided with the distribution.
    4.18 +#
    4.19 +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    4.20 +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    4.21 +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    4.22 +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    4.23 +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    4.24 +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    4.25 +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    4.26 +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    4.27 +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    4.28 +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    4.29 +# POSSIBILITY OF SUCH DAMAGE.
    4.30 +#
    4.31 +
    4.32 +CC = clang
    4.33 +LD = clang
    4.34 +
    4.35 +CFLAGS  = -std=gnu99 -O2 -fstrict-aliasing -c
    4.36 +LDFLAGS = -lm
    4.37 +
     5.1 --- a/gcc-debug.mk	Thu Sep 05 13:55:04 2013 +0200
     5.2 +++ b/gcc-debug.mk	Fri Sep 06 13:20:20 2013 +0200
     5.3 @@ -28,16 +28,7 @@
     5.4  
     5.5  CC = gcc
     5.6  LD = gcc
     5.7 -AR = ar
     5.8 -RM = rm
     5.9  
    5.10  CFLAGS  = -std=gnu99 -g -fstrict-aliasing -Wall -pedantic -c
    5.11 -COFLAGS = -o
    5.12  LDFLAGS = 
    5.13 -LOFLAGS = -o
    5.14 -ARFLAGS = -r
    5.15 -RMFLAGS = -f
    5.16  
    5.17 -OBJ_EXT = o
    5.18 -LIB_EXT = a
    5.19 -APP_EXT =
     6.1 --- a/gcc.mk	Thu Sep 05 13:55:04 2013 +0200
     6.2 +++ b/gcc.mk	Fri Sep 06 13:20:20 2013 +0200
     6.3 @@ -28,17 +28,7 @@
     6.4  
     6.5  CC = gcc
     6.6  LD = gcc
     6.7 -AR = ar
     6.8 -RM = rm
     6.9  
    6.10  CFLAGS  = -std=gnu99 -O2 -fstrict-aliasing -c
    6.11 -COFLAGS = -o
    6.12  LDFLAGS = 
    6.13 -LOFLAGS = -o
    6.14 -ARFLAGS = -r
    6.15 -RMFLAGS = -f
    6.16  
    6.17 -OBJ_EXT = o
    6.18 -LIB_EXT = a
    6.19 -APP_EXT =
    6.20 -
     7.1 --- a/osx-debug.mk	Thu Sep 05 13:55:04 2013 +0200
     7.2 +++ b/osx-debug.mk	Fri Sep 06 13:20:20 2013 +0200
     7.3 @@ -28,17 +28,7 @@
     7.4  
     7.5  CC = cc
     7.6  LD = cc
     7.7 -AR = ar
     7.8 -RM = rm
     7.9  
    7.10  CFLAGS  = -g -c
    7.11 -COFLAGS = -o ./
    7.12  LDFLAGS = 
    7.13 -LOFLAGS = -o ./
    7.14 -ARFLAGS = -r
    7.15 -RMFLAGS = -f
    7.16  
    7.17 -OBJ_EXT = o
    7.18 -LIB_EXT = a
    7.19 -APP_EXT =
    7.20 -
     8.1 --- a/osx.mk	Thu Sep 05 13:55:04 2013 +0200
     8.2 +++ b/osx.mk	Fri Sep 06 13:20:20 2013 +0200
     8.3 @@ -28,17 +28,7 @@
     8.4  
     8.5  CC = cc
     8.6  LD = cc
     8.7 -AR = ar
     8.8 -RM = rm
     8.9  
    8.10  CFLAGS  = -O2 -c
    8.11 -COFLAGS = -o ./
    8.12  LDFLAGS = 
    8.13 -LOFLAGS = -o ./
    8.14 -ARFLAGS = -r
    8.15 -RMFLAGS = -f
    8.16  
    8.17 -OBJ_EXT = o
    8.18 -LIB_EXT = a
    8.19 -APP_EXT =
    8.20 -
     9.1 --- a/suncc-debug.mk	Thu Sep 05 13:55:04 2013 +0200
     9.2 +++ b/suncc-debug.mk	Fri Sep 06 13:20:20 2013 +0200
     9.3 @@ -26,19 +26,9 @@
     9.4  # POSSIBILITY OF SUCH DAMAGE.
     9.5  #
     9.6  
     9.7 -CC = CC
     9.8 +CC = cc
     9.9  LD = cc
    9.10 -AR = ar
    9.11 -RM = rm
    9.12  
    9.13  CFLAGS  = -g -c
    9.14 -COFLAGS = -o
    9.15  LDFLAGS = -lm
    9.16 -LOFLAGS = -o
    9.17 -ARFLAGS = -r
    9.18 -RMFLAGS = -f
    9.19  
    9.20 -OBJ_EXT = o
    9.21 -LIB_EXT = a
    9.22 -APP_EXT =
    9.23 -
    10.1 --- a/suncc.mk	Thu Sep 05 13:55:04 2013 +0200
    10.2 +++ b/suncc.mk	Fri Sep 06 13:20:20 2013 +0200
    10.3 @@ -28,17 +28,7 @@
    10.4  
    10.5  CC = cc
    10.6  LD = cc
    10.7 -AR = ar
    10.8 -RM = rm
    10.9  
   10.10  CFLAGS  = -O -c
   10.11 -COFLAGS = -o
   10.12  LDFLAGS = -lm
   10.13 -LOFLAGS = -o
   10.14 -ARFLAGS = -r
   10.15 -RMFLAGS = -f
   10.16  
   10.17 -OBJ_EXT = o
   10.18 -LIB_EXT = a
   10.19 -APP_EXT =
   10.20 -
    11.1 --- a/test/Makefile	Thu Sep 05 13:55:04 2013 +0200
    11.2 +++ b/test/Makefile	Fri Sep 06 13:20:20 2013 +0200
    11.3 @@ -26,6 +26,7 @@
    11.4  # POSSIBILITY OF SUCH DAMAGE.
    11.5  #
    11.6  
    11.7 +include ../unix.mk
    11.8  include ../$(CONF).mk
    11.9  
   11.10  SRC  = main.c
   11.11 @@ -38,16 +39,14 @@
   11.12  SRC += buffer_tests.c
   11.13  SRC += utils_tests.c
   11.14  
   11.15 -OBJ = $(SRC:%.c=../build/%.$(OBJ_EXT))
   11.16 +OBJ = $(SRC:%.c=../build/%$(OBJ_EXT))
   11.17  
   11.18 -all: ../build/test1
   11.19 +all: $(OBJ)
   11.20 +	$(LD) $(LDFLAGS) $(LOFLAGS)../build/test$(APP_EXT) $(OBJ) \
   11.21 +		../build/libucx$(LIB_EXT)
   11.22  
   11.23 -../build/test1: $(OBJ)
   11.24 -	$(LD) $(LDFLAGS) $(LOFLAGS)../build/test$(APP_EXT) $(OBJ) \
   11.25 -		../build/libucx.$(LIB_EXT)
   11.26 -
   11.27 -../build/%.$(OBJ_EXT): %.c ../build
   11.28 +../build/%$(OBJ_EXT): %.c | ../build
   11.29  	$(CC) $(CFLAGS) -I../ $(COFLAGS)$@ $<
   11.30  
   11.31  ../build:
   11.32 -	mkdir -p build
   11.33 +	$(MKDIR) $(MKDIRFLAGS) build
    12.1 --- a/test/map_tests.c	Thu Sep 05 13:55:04 2013 +0200
    12.2 +++ b/test/map_tests.c	Fri Sep 06 13:20:20 2013 +0200
    12.3 @@ -178,9 +178,9 @@
    12.4      int check = 0;
    12.5      int hit = 0;
    12.6  
    12.7 -    int* v;
    12.8 +    void* v;
    12.9      UCX_MAP_FOREACH(key, v, i) {
   12.10 -        check += *v;
   12.11 +        check += *((int*)v);
   12.12          hit++;
   12.13      }
   12.14  
    13.1 --- a/ucx/Makefile	Thu Sep 05 13:55:04 2013 +0200
    13.2 +++ b/ucx/Makefile	Fri Sep 06 13:20:20 2013 +0200
    13.3 @@ -26,6 +26,7 @@
    13.4  # POSSIBILITY OF SUCH DAMAGE.
    13.5  #
    13.6  
    13.7 +include ../unix.mk
    13.8  include ../$(CONF).mk
    13.9  
   13.10  # list of source files
   13.11 @@ -40,15 +41,15 @@
   13.12  SRC += logging.c
   13.13  SRC += buffer.c
   13.14  
   13.15 -OBJ = $(SRC:%.c=../build/%.$(OBJ_EXT))
   13.16 +OBJ = $(SRC:%.c=../build/ucx/%$(OBJ_EXT))
   13.17  
   13.18  all: libucx
   13.19  
   13.20  libucx: $(OBJ)
   13.21 -	$(AR) $(ARFLAGS) $(AOFLAGS)../build/libucx.$(LIB_EXT) $(OBJ)
   13.22 +	$(AR) $(ARFLAGS) $(AOFLAGS)../build/libucx$(LIB_EXT) $(OBJ)
   13.23  
   13.24 -../build/%.$(OBJ_EXT): %.c ../build
   13.25 +../build/ucx/%$(OBJ_EXT): %.c | ../build/ucx
   13.26  	$(CC) $(CFLAGS) $(COFLAGS)$@ $<
   13.27  
   13.28 -../build:
   13.29 -	mkdir -p ../build
   13.30 +../build/ucx:
   13.31 +	$(MKDIR) $(MKDIRFLAGS) ../build/ucx
    14.1 --- a/ucx/logging.c	Thu Sep 05 13:55:04 2013 +0200
    14.2 +++ b/ucx/logging.c	Fri Sep 06 13:20:20 2013 +0200
    14.3 @@ -61,11 +61,13 @@
    14.4      free(logger);
    14.5  }
    14.6  
    14.7 +// estimated max. message length (documented)
    14.8 +#define UCX_LOGGER_MSGMAX 4096
    14.9 +
   14.10  void ucx_logger_logf(UcxLogger *logger, unsigned int level, const char* file,
   14.11          const unsigned int line, const char *format, ...) {
   14.12      if (level <= logger->level) {
   14.13 -        const size_t max = 4096; // estimated max. message length (documented)
   14.14 -        char msg[max];
   14.15 +        char msg[UCX_LOGGER_MSGMAX];
   14.16          char *text;
   14.17          size_t k = 0;
   14.18          size_t n;
   14.19 @@ -85,14 +87,14 @@
   14.20              n = strlen(file);
   14.21              memcpy(msg+k, file, n);
   14.22              k += n;
   14.23 -            k += sprintf(msg+k, ":%d ", line);
   14.24 +            k += snprintf(msg+k, UCX_LOGGER_MSGMAX-k, ":%d ", line);
   14.25          }
   14.26          
   14.27          msg[k++] = '-'; msg[k++] = ' ';
   14.28          
   14.29          va_list args;
   14.30          va_start (args, format);
   14.31 -        k += vsnprintf(msg+k, max-k-1, format, args);
   14.32 +        k += vsnprintf(msg+k, UCX_LOGGER_MSGMAX-k-1, format, args);
   14.33          va_end (args);        
   14.34          
   14.35          msg[k++] = '\n';
    15.1 --- a/ucx/properties.c	Thu Sep 05 13:55:04 2013 +0200
    15.2 +++ b/ucx/properties.c	Fri Sep 06 13:20:20 2013 +0200
    15.3 @@ -217,38 +217,36 @@
    15.4      }
    15.5  }
    15.6  
    15.7 +// buffer size is documented - change doc, when you change bufsize!
    15.8 +#define UCX_PROPLOAD_BUFSIZE  1024
    15.9  int ucx_properties_load(UcxMap *map, FILE *file) {
   15.10      UcxProperties *parser = ucx_properties_new();
   15.11      if(!(parser && map && file)) {
   15.12          return 1;
   15.13      }
   15.14      
   15.15 -    // buffer size is documented - change doc, when you change bufsize!
   15.16 -    const size_t bufsize = 1024;
   15.17 -    
   15.18      int error = 0;
   15.19      size_t r;
   15.20 -    char buf[bufsize];
   15.21 -    while((r = fread(buf, 1, bufsize, file)) != 0) {
   15.22 +    char buf[UCX_PROPLOAD_BUFSIZE];
   15.23 +    while((r = fread(buf, 1, UCX_PROPLOAD_BUFSIZE, file)) != 0) {
   15.24          ucx_properties_fill(parser, buf, r);
   15.25          error = ucx_properties2map(parser, map);
   15.26          if (error) {
   15.27              break;
   15.28          }
   15.29      }
   15.30 -    
   15.31      ucx_properties_free(parser);
   15.32      return error;
   15.33  }
   15.34  
   15.35  int ucx_properties_store(UcxMap *map, FILE *file) {
   15.36      UcxMapIterator iter = ucx_map_iterator(map);
   15.37 -    char *v;
   15.38 +    void *v;
   15.39      sstr_t value;
   15.40      size_t written;
   15.41  
   15.42      UCX_MAP_FOREACH(k, v, iter) {
   15.43 -        value = sstr(v);
   15.44 +        value = sstr((char*)v);
   15.45  
   15.46          written = 0;
   15.47          written += fwrite(k.data, 1, k.len, file);
    16.1 --- a/ucx/string.c	Thu Sep 05 13:55:04 2013 +0200
    16.2 +++ b/ucx/string.c	Fri Sep 06 13:20:20 2013 +0200
    16.3 @@ -121,9 +121,9 @@
    16.4  
    16.5  sstr_t sstrrchr(sstr_t s, int c) {
    16.6      if (s.length > 0) {
    16.7 -        for(size_t i=s.length-1;i>=0;i--) {
    16.8 -            if(s.ptr[i] == c) {
    16.9 -                return sstrsubs(s, i);
   16.10 +        for(size_t i=s.length;i>0;i--) {
   16.11 +            if(s.ptr[i-1] == c) {
   16.12 +                return sstrsubs(s, i-1);
   16.13              }
   16.14          }
   16.15      }
    17.1 --- a/ucx/ucx.h	Thu Sep 05 13:55:04 2013 +0200
    17.2 +++ b/ucx/ucx.h	Fri Sep 06 13:20:20 2013 +0200
    17.3 @@ -63,9 +63,11 @@
    17.4  #define _Bool bool
    17.5  #define restrict
    17.6  #endif
    17.7 +/** Use C naming even when compiling with C++.  */
    17.8  #define UCX_EXTERN extern "C"
    17.9  extern "C" {
   17.10  #else
   17.11 +/** Pointless in C. */
   17.12  #define UCX_EXTERN
   17.13  #endif
   17.14  
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/unix.mk	Fri Sep 06 13:20:20 2013 +0200
    18.3 @@ -0,0 +1,44 @@
    18.4 +#
    18.5 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    18.6 +#
    18.7 +# Copyright 2013 Olaf Wintermann. All rights reserved.
    18.8 +#
    18.9 +# Redistribution and use in source and binary forms, with or without
   18.10 +# modification, are permitted provided that the following conditions are met:
   18.11 +#
   18.12 +#   1. Redistributions of source code must retain the above copyright
   18.13 +#      notice, this list of conditions and the following disclaimer.
   18.14 +#
   18.15 +#   2. Redistributions in binary form must reproduce the above copyright
   18.16 +#      notice, this list of conditions and the following disclaimer in the
   18.17 +#      documentation and/or other materials provided with the distribution.
   18.18 +#
   18.19 +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   18.20 +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   18.21 +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   18.22 +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
   18.23 +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   18.24 +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   18.25 +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   18.26 +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   18.27 +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   18.28 +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   18.29 +# POSSIBILITY OF SUCH DAMAGE.
   18.30 +#
   18.31 +
   18.32 +CC = @echo "\nInvalid configuration.\n" && /bin/false 
   18.33 +LD = @echo "\nInvalid configuration.\n" && /bin/false 
   18.34 +AR = ar
   18.35 +RM = rm
   18.36 +MKDIR = mkdir
   18.37 +
   18.38 +COFLAGS = -o ./
   18.39 +LOFLAGS = -o ./
   18.40 +ARFLAGS = -r
   18.41 +RMFLAGS = -f -R
   18.42 +MKDIRFLAGS = -p
   18.43 +
   18.44 +OBJ_EXT = .o
   18.45 +LIB_EXT = .a
   18.46 +APP_EXT =
   18.47 +
    19.1 --- a/windows.mk	Thu Sep 05 13:55:04 2013 +0200
    19.2 +++ b/windows.mk	Fri Sep 06 13:20:20 2013 +0200
    19.3 @@ -29,7 +29,8 @@
    19.4  CC = cl
    19.5  LD = link
    19.6  AR = lib
    19.7 -RM = rm
    19.8 +RM = del
    19.9 +MKDIR = mkdir
   19.10  
   19.11  CFLAGS  = -c -TP -I../msc
   19.12  COFLAGS = -Fo
   19.13 @@ -37,9 +38,10 @@
   19.14  LOFLAGS = -OUT:
   19.15  ARFLAGS =
   19.16  AOFLAGS = -OUT:
   19.17 -RMFLAGS = -f 
   19.18 +RMFLAGS = /F /S /Q 
   19.19 +MKDIRFLAGS = 
   19.20  
   19.21 -OBJ_EXT = obj
   19.22 -LIB_EXT = lib
   19.23 +OBJ_EXT = .obj
   19.24 +LIB_EXT = .lib
   19.25  APP_EXT = .exe
   19.26  

mercurial