]> git.llucax.com Git - software/druntime.git/commitdiff
* Auto type determination was broken in some unit tests. This has been fixed.
authorsean <sean@4a9d5153-6564-4b3f-b5e1-7e8e9dac548f>
Thu, 20 Nov 2008 22:49:32 +0000 (22:49 +0000)
committersean <sean@4a9d5153-6564-4b3f-b5e1-7e8e9dac548f>
Thu, 20 Nov 2008 22:49:32 +0000 (22:49 +0000)
* The following new build options have been added:
    - release (default)
    - debug
    - unittest
* Debug libraries are now generated by the build-dmd scripts and have a "-d" appended to their name.  These libraries have both "-g" and "-debug" set to enable asserts and symbol info.
* Added unittest.d to run unit tests.
* Added test-dmd.bat to build and run unit tests on Win32.  A problem currently exists with this feature, and once it has been resolved a test-dmd.sh will be added as well.

git-svn-id: http://svn.dsource.org/projects/druntime/trunk@47 4a9d5153-6564-4b3f-b5e1-7e8e9dac548f

22 files changed:
src/build-dmd.bat
src/common/posix.mak
src/common/win32.mak
src/compiler/dmd/aApplyR.d
src/compiler/dmd/adi.d
src/compiler/dmd/arraybyte.d
src/compiler/dmd/arraydouble.d
src/compiler/dmd/arrayfloat.d
src/compiler/dmd/arrayint.d
src/compiler/dmd/arrayreal.d
src/compiler/dmd/arrayshort.d
src/compiler/dmd/posix.mak
src/compiler/dmd/util/utf.d
src/compiler/dmd/win32.mak
src/dmd-posix.mak
src/dmd-win32.mak
src/gc/basic/posix.mak
src/gc/basic/win32.mak
src/gc/stub/posix.mak
src/gc/stub/win32.mak
src/test-dmd.bat [new file with mode: 0644]
src/unittest.d [new file with mode: 0644]

index d2c0b98a39f4dcfe3076703f674eaa8565819370..d16d4bb47d3656eda956adb94e9cc976192b0cf0 100644 (file)
@@ -2,6 +2,8 @@
 set OLDHOME=%HOME%
 set HOME=%CD%
 make clean -fdmd-win32.mak
-make lib install -fdmd-win32.mak
+make release install -fdmd-win32.mak
+make clean -fdmd-win32.mak
+make debug install -fdmd-win32.mak
 make clean -fdmd-win32.mak
 set HOME=%OLDHOME%
\ No newline at end of file
index edc5c99f59f55313d38886a2ab9a689837a6d521..6653e0e141dcb66e62c74d8b0d2cad8229b4edc9 100644 (file)
 #      make clean\r
 #              Delete unneeded files created by build process\r
 \r
-LIB_TARGET=libdruntime-core.a\r
-LIB_MASK=libdruntime-core*.a\r
+LIB_BASE=libdruntime-core\r
+LIB_BUILD=\r
+LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).a\r
+LIB_MASK=$(LIB_BASE)*.a\r
 \r
 CP=cp -f\r
 RM=rm -f\r
@@ -20,14 +22,17 @@ MD=mkdir -p
 ADD_CFLAGS=\r
 ADD_DFLAGS=\r
 \r
-CFLAGS=-O $(ADD_CFLAGS)\r
-#CFLAGS=-g $(ADD_CFLAGS)\r
+CFLAGS_RELEASE=-O $(ADD_CFLAGS)\r
+CFLAGS_DEBUG=-g $(ADD_CFLAGS)\r
+CFLAGS=$(CFLAGS_RELEASE)\r
 \r
-DFLAGS=-release -O -inline -w -nofloat $(ADD_DFLAGS)\r
-#DFLAGS=-g -w -nofloat $(ADD_DFLAGS)\r
+DFLAGS_RELEASE=-release -O -inline -w -nofloat $(ADD_DFLAGS)\r
+DFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)\r
+DFLAGS=$(DFLAGS_RELEASE)\r
 \r
-TFLAGS=-O -inline -w -nofloat $(ADD_DFLAGS)\r
-#TFLAGS=-g -w -nofloat $(ADD_DFLAGS)\r
+TFLAGS_RELEASE=-O -inline -w  -nofloat $(ADD_DFLAGS)\r
+TFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)\r
+TFLAGS=$(TFLAGS_RELEASE)\r
 \r
 DOCFLAGS=-version=DDoc\r
 \r
@@ -91,11 +96,23 @@ DOC_CORE= \
     core/runtime.html \\r
     core/thread.html\r
 \r
+######################################################\r
 \r
 ALL_DOCS=\r
 \r
 ######################################################\r
 \r
+unittest :\r
+       make -fposix.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE) -unittest"\r
+\r
+release :\r
+       make -fposix.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE)"\r
+\r
+debug :\r
+       make -fposix.mak DC="$(DC)" LIB_BUILD="-d" DFLAGS="$(DFLAGS_DEBUG)"\r
+\r
+######################################################\r
+\r
 core.lib : $(LIB_TARGET)\r
 \r
 $(LIB_TARGET) : $(ALL_OBJS)\r
index 7e23e7a62a66328b2fe7763fe9bd4d5d4d7ebda0..4554680fe3051eb74fa1dae077d464798bb5a271 100644 (file)
 #      make clean\r
 #              Delete unneeded files created by build process\r
 \r
-LIB_TARGET=druntime-core.lib\r
-LIB_MASK=druntime-core*.lib\r
+LIB_BASE=druntime-core\r
+LIB_BUILD=\r
+LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).lib\r
+LIB_MASK=$(LIB_BASE)*.lib\r
 \r
 CP=xcopy /y\r
 RM=del /f\r
@@ -20,14 +22,17 @@ MD=mkdir
 ADD_CFLAGS=\r
 ADD_DFLAGS=\r
 \r
-CFLAGS=-mn -6 -r $(ADD_CFLAGS)\r
-#CFLAGS=-g -mn -6 -r $(ADD_CFLAGS)\r
+CFLAGS_RELEASE=-mn -6 -r $(ADD_CFLAGS)\r
+CFLAGS_DEBUG=-D -g -mn -6 -r $(ADD_CFLAGS)\r
+CFLAGS=$(CFLAGS_RELEASE)\r
 \r
-DFLAGS=-release -O -inline -w -nofloat $(ADD_DFLAGS)\r
-#DFLAGS=-g -w -nofloat $(ADD_DFLAGS)\r
+DFLAGS_RELEASE=-release -O -inline -w -nofloat $(ADD_DFLAGS)\r
+DFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)\r
+DFLAGS=$(DFLAGS_RELEASE)\r
 \r
-TFLAGS=-O -inline -w  -nofloat $(ADD_DFLAGS)\r
-#TFLAGS=-g -w -nofloat $(ADD_DFLAGS)\r
+TFLAGS_RELEASE=-O -inline -w  -nofloat $(ADD_DFLAGS)\r
+TFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)\r
+TFLAGS=$(TFLAGS_RELEASE)\r
 \r
 DOCFLAGS=-version=DDoc\r
 \r
@@ -88,10 +93,23 @@ DOC_CORE= \
     core\runtime.html \\r
     core\thread.html\r
 \r
+######################################################\r
+\r
 ALL_DOCS=\r
 \r
 ######################################################\r
 \r
+unittest :\r
+       make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE) -unittest"\r
+\r
+release :\r
+       make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE)"\r
+\r
+debug :\r
+       make -fwin32.mak DC="$(DC)" LIB_BUILD="-d" DFLAGS="$(DFLAGS_DEBUG)"\r
+\r
+######################################################\r
+\r
 core.lib : $(LIB_TARGET)\r
 \r
 $(LIB_TARGET) : $(ALL_OBJS)\r
index 081ae6080561062df30d7cbfe9d3aa748cf2c435..7c23285876834f586c2514ac1f3446fcff7bff50 100644 (file)
@@ -80,7 +80,7 @@ unittest
 {
     debug(apply) printf("_aApplyRcd1.unittest\n");
 
-    auto s = "hello"c;
+    auto s = "hello"c[];
     int i;
 
     foreach_reverse(dchar d; s)
@@ -144,7 +144,7 @@ unittest
 {
     debug(apply) printf("_aApplyRwd1.unittest\n");
 
-    auto s = "hello"w;
+    auto s = "hello"w[];
     int i;
 
     foreach_reverse(dchar d; s)
@@ -230,7 +230,7 @@ unittest
 {
     debug(apply) printf("_aApplyRcw1.unittest\n");
 
-    auto s = "hello"c;
+    auto s = "hello"c[];
     int i;
 
     foreach_reverse(wchar d; s)
@@ -311,7 +311,7 @@ unittest
 {
     debug(apply) printf("_aApplyRwc1.unittest\n");
 
-    auto s = "hello"w;
+    auto s = "hello"w[];
     int i;
 
     foreach_reverse(char d; s)
@@ -390,7 +390,7 @@ unittest
 {
     debug(apply) printf("_aApplyRdc1.unittest\n");
 
-    auto s = "hello"d;
+    auto s = "hello"d[];
     int i;
 
     foreach_reverse(char d; s)
@@ -462,7 +462,7 @@ unittest
 {
     debug(apply) printf("_aApplyRdw1.unittest\n");
 
-    auto s = "hello"d;
+    auto s = "hello"d[];
     int i;
 
     foreach_reverse(wchar d; s)
@@ -544,7 +544,7 @@ unittest
 {
     debug(apply) printf("_aApplyRcd2.unittest\n");
 
-    auto s = "hello"c;
+    auto s = "hello"c[];
     int i;
 
     foreach_reverse(k, dchar d; s)
@@ -609,7 +609,7 @@ unittest
 {
     debug(apply) printf("_aApplyRwd2.unittest\n");
 
-    auto s = "hello"w;
+    auto s = "hello"w[];
     int i;
 
     foreach_reverse(k, dchar d; s)
@@ -697,7 +697,7 @@ unittest
 {
     debug(apply) printf("_aApplyRcw2.unittest\n");
 
-    auto s = "hello"c;
+    auto s = "hello"c[];
     int i;
 
     foreach_reverse(k, wchar d; s)
@@ -780,7 +780,7 @@ unittest
 {
     debug(apply) printf("_aApplyRwc2.unittest\n");
 
-    auto s = "hello"w;
+    auto s = "hello"w[];
     int i;
 
     foreach_reverse(k, char d; s)
@@ -860,7 +860,7 @@ unittest
 {
     debug(apply) printf("_aApplyRdc2.unittest\n");
 
-    auto s = "hello"d;
+    auto s = "hello"d[];
     int i;
 
     foreach_reverse(k, char d; s)
@@ -934,7 +934,7 @@ unittest
 {
     debug(apply) printf("_aApplyRdw2.unittest\n");
 
-    auto s = "hello"d;
+    auto s = "hello"d[];
     int i;
 
     foreach_reverse(k, wchar d; s)
index 0253bc045709741c6af65e14db047f3eb95d9871..caafd29d19fbae4d86dd52a7a8f18d9d46d3b3e4 100644 (file)
@@ -134,7 +134,7 @@ extern (C) long _adReverseChar(char[] a)
 
 unittest
 {
-    auto a = "abcd"c;
+    auto a = "abcd"c[];
 
     auto r = a.dup.reverse;
     //writefln(r);
index 373dec4c368e8d3d6a2789d19cae7f4e4ab417b0..4aa754ba3ebcc0e56a1c3dd6177068d5d86c555a 100644 (file)
@@ -13,8 +13,9 @@ module rt.arraybyte;
 
 import util.cpuid;
 
-version (Unittest)
+version (unittest)
 {
+    private import core.stdc.stdio : printf;
     /* This is so unit tests will test every CPU variant
      */
     int cpuid;
index c7c7504a9daa148bc8ab69527b30e6705344416f..12f9047e455fb8cac85be51a88da363e80095eff 100644 (file)
@@ -9,8 +9,9 @@ module rt.arraydouble;
 
 private import util.cpuid;
 
-version (Unittest)
+version (unittest)
 {
+    private import core.stdc.stdio : printf;
     /* This is so unit tests will test every CPU variant
      */
     int cpuid;
index f5588e8f618bbfe14765ff20b66cd5713f2c391e..949fd55f42e11287b101ad6d59f1cc9142de98d9 100644 (file)
@@ -9,8 +9,9 @@ module rt.arrayfloat;
 
 private import util.cpuid;
 
-version (Unittest)
+version (unittest)
 {
+    private import core.stdc.stdio : printf;
     /* This is so unit tests will test every CPU variant
      */
     int cpuid;
index c4f0892646dd47fdf2a7ee3afb834c9c34f2eda3..0c195234cca51d4b107b5d4039fe9d2027008efa 100644 (file)
@@ -13,8 +13,9 @@ module rt.arrayint;
 
 private import util.cpuid;
 
-version (Unittest)
+version (unittest)
 {
+    private import core.stdc.stdio : printf;
     /* This is so unit tests will test every CPU variant
      */
     int cpuid;
index 2dda2183770ffa9ace78ec91f9178c90ab101cc7..3782c44445eb0887ad8b4d43ff9d518aead7deb5 100644 (file)
@@ -8,8 +8,9 @@ module rt.arrayreal;
 
 import util.cpuid;
 
-version (Unittest)
+version (unittest)
 {
+    private import core.stdc.stdio : printf;
     /* This is so unit tests will test every CPU variant
      */
     int cpuid;
index 0208d894e5ba41926949167a6314f61673ecd08d..142de6cbc9b5247d2fa85ed85a9521140049c240 100644 (file)
@@ -13,8 +13,9 @@ module rt.arrayshort;
 
 private import util.cpuid;
 
-version (Unittest)
+version (unittest)
 {
+    private import core.stdc.stdio : printf;
     /* This is so unit tests will test every CPU variant
      */
     int cpuid;
index bcc613261b357454f042aabba113d59639dbe296..9ca608d46f140060bfe40915b2cd6fdb726b84c7 100644 (file)
 #      make clean
 #              Delete unneeded files created by build process
 
-LIB_TARGET=libdruntime-rt-dmd.a
-LIB_MASK=libdruntime-rt-dmd*.a
+LIB_BASE=libdruntime-rt-dmd
+LIB_BUILD=
+LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).a
+LIB_MASK=$(LIB_BASE)*.a
 
 CP=cp -f
 RM=rm -f
 MD=mkdir -p
 
-CFLAGS=-O $(ADD_CFLAGS)
-#CFLAGS=-g $(ADD_CFLAGS)
+ADD_CFLAGS=
+ADD_DFLAGS=
 
-DFLAGS=-release -O -inline -w -nofloat $(ADD_DFLAGS)
-#DFLAGS=-g -w -nofloat $(ADD_DFLAGS)
+CFLAGS_RELEASE=-O $(ADD_CFLAGS)
+CFLAGS_DEBUG=-g $(ADD_CFLAGS)
+CFLAGS=$(CFLAGS_RELEASE)
 
-TFLAGS=-O -inline -w -nofloat $(ADD_DFLAGS)
-#TFLAGS=-g -w -nofloat $(ADD_DFLAGS)
+DFLAGS_RELEASE=-release -O -inline -w -nofloat $(ADD_DFLAGS)
+DFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)
+DFLAGS=$(DFLAGS_RELEASE)
+
+TFLAGS_RELEASE=-O -inline -w  -nofloat $(ADD_DFLAGS)
+TFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)
+TFLAGS=$(TFLAGS_RELEASE)
 
 DOCFLAGS=-version=DDoc
 
@@ -156,6 +164,17 @@ ALL_DOCS=
 
 ######################################################
 
+unittest :
+       make -fposix.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE) -unittest"
+
+release :
+       make -fposix.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE)"
+
+debug :
+       make -fposix.mak DC="$(DC)" LIB_BUILD="-d" DFLAGS="$(DFLAGS_DEBUG)"
+
+######################################################
+
 dmd.lib : $(LIB_TARGET)
 
 $(LIB_TARGET) : $(ALL_OBJS)
index 012d7c3310fb25c0a779ebac94e9a54d8e19d842..552ab344a574407584054e834502a9efb0786ab9 100644 (file)
@@ -334,7 +334,7 @@ unittest
     assert(i == 3);
 
     static s4 =
-    [  "\xE2\x89"c,            // too short
+    [  "\xE2\x89"c[],          // too short
        "\xC0\x8A",
        "\xE0\x80\x8A",
        "\xF0\x80\x80\x8A",
@@ -863,7 +863,7 @@ unittest
 {
     debug(utf) printf("utf.toUTF.unittest\n");
 
-    auto c = "hello"c;
+    auto c = "hello"c[];
     auto w = toUTF16(c);
     assert(w == "hello");
     auto d = toUTF32(c);
index 6343eb571e746556af29f0879d9a8dcdb4cd78f5..3694cd83d25527af294cc04f6e05467ad6117fb0 100644 (file)
 #      make clean
 #              Delete unneeded files created by build process
 
-LIB_TARGET=druntime-rt-dmd.lib
-LIB_MASK=druntime-rt-dmd*.lib
+LIB_BASE=druntime-rt-dmd
+LIB_BUILD=
+LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).lib
+LIB_MASK=$(LIB_BASE)*.lib
 
 CP=xcopy /y
 RM=del /f
 MD=mkdir
 
-CFLAGS=-mn -6 -r $(ADD_CFLAGS)
-#CFLAGS=-g -mn -6 -r $(ADD_CFLAGS)
+ADD_CFLAGS=
+ADD_DFLAGS=
 
-DFLAGS=-release -O -inline -w -nofloat $(ADD_DFLAGS)
-#DFLAGS=-g -w -nofloat $(ADD_DFLAGS)
+CFLAGS_RELEASE=-mn -6 -r $(ADD_CFLAGS)
+CFLAGS_DEBUG=-D -g -mn -6 -r $(ADD_CFLAGS)
+CFLAGS=$(CFLAGS_RELEASE)
 
-TFLAGS=-O -inline -w  -nofloat $(ADD_DFLAGS)
-#TFLAGS=-g -w -nofloat $(ADD_DFLAGS)
+DFLAGS_RELEASE=-release -O -inline -w -nofloat $(ADD_DFLAGS)
+DFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)
+DFLAGS=$(DFLAGS_RELEASE)
+
+TFLAGS_RELEASE=-O -inline -w  -nofloat $(ADD_DFLAGS)
+TFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)
+TFLAGS=$(TFLAGS_RELEASE)
 
 DOCFLAGS=-version=DDoc
 
@@ -149,6 +157,17 @@ ALL_DOCS=
 
 ######################################################
 
+unittest :
+       make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE) -unittest"
+
+release :
+       make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE)"
+
+debug :
+       make -fwin32.mak DC="$(DC)" LIB_BUILD="-d" DFLAGS="$(DFLAGS_DEBUG)"
+
+######################################################
+
 dmd.lib : $(LIB_TARGET)
 
 $(LIB_TARGET) : $(ALL_OBJS)
index 6b567c888f63b285ea71327df812f71c98d3c754..0f5671565df29856eed36e95f2f324ed9b11b365 100644 (file)
 #      make clean
 #              Delete unneeded files created by build process
 
-LIB_TARGET=libdruntime-dmd.a
-DUP_TARGET=libdruntime.a
-LIB_MASK=libdruntime*.a
+LIB_BASE=libdruntime-dmd
+LIB_BUILD=
+LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).a
+LIB_MASK=$(LIB_BASE)*.a
+DUP_TARGET=libdruntime$(LIB_BUILD).a
+DUP_MASK=libdruntime*.a
+MAKE_LIB=lib
 
 DIR_CC=common
 DIR_RT=compiler/dmd
@@ -44,10 +48,24 @@ ALL_DOCS=
 
 ######################################################
 
+unittest :
+       make -fdmd-posix.mak lib MAKE_LIB="unittest"
+       dmd -unittest main ../import/core/stdc/stdarg -defaultlib="$(DUP_TARGET)" -debuglib="$(DUP_TARGET)"
+       $(RM) stdarg.o
+       main
+
+release :
+       make -fdmd-posix.mak lib MAKE_LIB="release"
+
+debug :
+       make -fdmd-posix.mak lib MAKE_LIB="debug" LIB_BUILD="-d"
+
+######################################################
+
 lib : $(ALL_OBJS)
-       make -C $(DIR_CC) -fposix.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
-       make -C $(DIR_RT) -fposix.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
-       make -C $(DIR_GC) -fposix.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
+       make -C $(DIR_CC) -fposix.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
+       make -C $(DIR_RT) -fposix.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
+       make -C $(DIR_GC) -fposix.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
        $(RM) $(LIB_TARGET)
        $(LC) $(LIB_TARGET) `find $(DIR_CC) -name "*.o" | xargs echo`
        $(LC) $(LIB_TARGET) `find $(DIR_RT) -name "*.o" | xargs echo`
@@ -70,9 +88,12 @@ clean :
        make -C $(DIR_RT) -fposix.mak clean
        make -C $(DIR_GC) -fposix.mak clean
        $(RM) $(LIB_MASK)
+       $(RM) $(DUP_MASK)
+       $(RM) main main.o
 
 install :
        make -C $(DIR_CC) -fposix.mak install
        make -C $(DIR_RT) -fposix.mak install
        make -C $(DIR_GC) -fposix.mak install
        $(CP) $(LIB_MASK) $(LIB_DEST)/.
+       $(CP) $(DUP_MASK) $(LIB_DEST)/.
index 2647819b1788621b2e6f684055de4911242d4c11..f79f02fa47c57af603bd4f4b38ca9cc924d096c7 100644 (file)
 #   make clean
 #       Delete unneeded files created by build process
 
-LIB_TARGET=druntime-dmd.lib
-DUP_TARGET=druntime.lib
-LIB_MASK=druntime*.lib
+LIB_BASE=druntime-dmd
+LIB_BUILD=
+LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).lib
+LIB_MASK=$(LIB_BASE)*.lib
+DUP_TARGET=druntime$(LIB_BUILD).lib
+DUP_MASK=druntime*.lib
+MAKE_LIB=lib
 
 DIR_CC=common
 DIR_RT=compiler\dmd
 DIR_GC=gc\basic
 DIR_GC_STUB=gc\stub
 
-LIB_CC=$(DIR_CC)\druntime-core.lib
-LIB_RT=$(DIR_RT)\druntime-rt-dmd.lib
-LIB_GC=$(DIR_GC)\druntime-gc-basic.lib
+LIB_CC=$(DIR_CC)\druntime-core$(LIB_BUILD).lib
+LIB_RT=$(DIR_RT)\druntime-rt-dmd$(LIB_BUILD).lib
+LIB_GC=$(DIR_GC)\druntime-gc-basic$(LIB_BUILD).lib
 
 CP=xcopy /y
 RM=del /f
@@ -49,18 +53,32 @@ ALL_DOCS=
 
 ######################################################
 
+unittest :
+       make -fdmd-win32.mak lib MAKE_LIB="unittest"
+       dmd -unittest main ..\import\core\stdc\stdarg -defaultlib="$(DUP_TARGET)" -debuglib="$(DUP_TARGET)"
+       $(RM) stdarg.obj
+       main
+
+release :
+       make -fdmd-win32.mak lib MAKE_LIB="release"
+
+debug :
+       make -fdmd-win32.mak lib MAKE_LIB="debug" LIB_BUILD="-d"
+
+######################################################
+
 lib : $(ALL_OBJS)
        cd $(DIR_CC)
-       make -fwin32.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
+       make -fwin32.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
        cd ..
        cd $(DIR_RT)
-       make -fwin32.mak lib DC=$(DC)
+       make -fwin32.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
        cd ..\..
        cd $(DIR_GC)
-       make -fwin32.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
+       make -fwin32.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
        cd ..\..
        cd $(DIR_GC_STUB)
-       make -fwin32.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
+       make -fwin32.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
        cd ..\..
        $(RM) $(LIB_TARGET)
        $(LC) -c -n $(LIB_TARGET) $(LIB_CC) $(LIB_RT) $(LIB_GC)
@@ -101,6 +119,8 @@ clean :
        make -fwin32.mak clean
        cd ..\..
        $(RM) $(LIB_MASK)
+       $(RM) $(DUP_MASK)
+       $(RM) main.exe main.obj main.map
 
 install :
        cd $(DIR_CC)
@@ -116,3 +136,4 @@ install :
        make -fwin32.mak install
        cd ..\..
        $(CP) $(LIB_MASK) $(LIB_DEST)\.
+       $(CP) $(DUP_MASK) $(LIB_DEST)\.
index b4633f5bcdbbfbddc7797dd576f329ef2d4839c1..adf99424daa007e1710b4ca4df6b188681cc86bc 100644 (file)
 #      make clean
 #              Delete unneeded files created by build process
 
-LIB_TARGET=libdruntime-gc-basic.a
-LIB_MASK=libdruntime-gc-basic*.a
+LIB_BASE=libdruntime-gc-basic
+LIB_BUILD=
+LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).a
+LIB_MASK=$(LIB_BASE)*.a
 
 CP=cp -f
 RM=rm -f
@@ -20,14 +22,17 @@ MD=mkdir -p
 ADD_CFLAGS=
 ADD_DFLAGS=
 
-CFLAGS=-O $(ADD_CFLAGS)
-#CFLAGS=-g $(ADD_CFLAGS)
+CFLAGS_RELEASE=-O $(ADD_CFLAGS)
+CFLAGS_DEBUG=-g $(ADD_CFLAGS)
+CFLAGS=$(CFLAGS_RELEASE)
 
-DFLAGS=-release -O -inline -w -nofloat $(ADD_DFLAGS)
-#DFLAGS=-g -w -nofloat $(ADD_DFLAGS)
+DFLAGS_RELEASE=-release -O -inline -w -nofloat $(ADD_DFLAGS)
+DFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)
+DFLAGS=$(DFLAGS_RELEASE)
 
-TFLAGS=-O -inline -w -nofloat $(ADD_DFLAGS)
-#TFLAGS=-g -w -nofloat $(ADD_DFLAGS)
+TFLAGS_RELEASE=-O -inline -w  -nofloat $(ADD_DFLAGS)
+TFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)
+TFLAGS=$(TFLAGS_RELEASE)
 
 DOCFLAGS=-version=DDoc
 
@@ -78,6 +83,17 @@ ALL_DOCS=
 
 ######################################################
 
+unittest :
+       make -fposix.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE) -unittest"
+
+release :
+       make -fposix.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE)"
+
+debug :
+       make -fposix.mak DC="$(DC)" LIB_BUILD="-d" DFLAGS="$(DFLAGS_DEBUG)"
+
+######################################################
+
 basic.lib : $(LIB_TARGET)
 
 $(LIB_TARGET) : $(ALL_OBJS)
index ba4d66e4c342b5090b98f6e3b8a53588db0f8d5c..ac81683ca92ebf7e22414733ac6515e9e7e528fd 100644 (file)
 #      make clean
 #              Delete unneeded files created by build process
 
-LIB_TARGET=druntime-gc-basic.lib
-LIB_MASK=druntime-gc-basic*.lib
+LIB_BASE=druntime-gc-basic
+LIB_BUILD=
+LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).lib
+LIB_MASK=$(LIB_BASE)*.lib
 
 CP=xcopy /y
 RM=del /f
@@ -20,14 +22,17 @@ MD=mkdir
 ADD_CFLAGS=
 ADD_DFLAGS=
 
-CFLAGS=-mn -6 -r $(ADD_CFLAGS)
-#CFLAGS=-g -mn -6 -r $(ADD_CFLAGS)
+CFLAGS_RELEASE=-mn -6 -r $(ADD_CFLAGS)
+CFLAGS_DEBUG=-D -g -mn -6 -r $(ADD_CFLAGS)
+CFLAGS=$(CFLAGS_RELEASE)
 
-DFLAGS=-release -O -inline -w -nofloat $(ADD_DFLAGS)
-#DFLAGS=-g -w -nofloat $(ADD_DFLAGS)
+DFLAGS_RELEASE=-release -O -inline -w -nofloat $(ADD_DFLAGS)
+DFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)
+DFLAGS=$(DFLAGS_RELEASE)
 
-TFLAGS=-O -inline -w  -nofloat $(ADD_DFLAGS)
-#TFLAGS=-g -w -nofloat $(ADD_DFLAGS)
+TFLAGS_RELEASE=-O -inline -w  -nofloat $(ADD_DFLAGS)
+TFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)
+TFLAGS=$(TFLAGS_RELEASE)
 
 DOCFLAGS=-version=DDoc
 
@@ -75,6 +80,17 @@ ALL_DOCS=
 
 ######################################################
 
+unittest :
+       make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE) -unittest"
+
+release :
+       make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE)"
+
+debug :
+       make -fwin32.mak DC="$(DC)" LIB_BUILD="-d" DFLAGS="$(DFLAGS_DEBUG)"
+
+######################################################
+
 basic.lib : $(LIB_TARGET)
 
 $(LIB_TARGET) : $(ALL_OBJS)
index 58d35f7eaa97a5c9d9ac82a2069e89fd59c40406..48681e3560f87296c451f4d4ee9da035a6077286 100644 (file)
 #      make clean
 #              Delete unneeded files created by build process
 
-LIB_TARGET=libdruntime-gc-stub.a
-LIB_MASK=libdruntime-gc-stub*.a
+LIB_BASE=libdruntime-gc-stub
+LIB_BUILD=
+LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).a
+LIB_MASK=$(LIB_BASE)*.a
 
 CP=cp -f
 RM=rm -f
@@ -20,15 +22,17 @@ MD=mkdir -p
 ADD_CFLAGS=
 ADD_DFLAGS=
 
-CFLAGS=-O $(ADD_CFLAGS)
-#CFLAGS=-g $(ADD_CFLAGS)
+CFLAGS_RELEASE=-O $(ADD_CFLAGS)
+CFLAGS_DEBUG=-g $(ADD_CFLAGS)
+CFLAGS=$(CFLAGS_RELEASE)
 
-DFLAGS=-release -O -inline -w -nofloat $(ADD_DFLAGS)
-#DFLAGS=-g -w -nofloat $(ADD_DFLAGS)
+DFLAGS_RELEASE=-release -O -inline -w -nofloat $(ADD_DFLAGS)
+DFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)
+DFLAGS=$(DFLAGS_RELEASE)
 
-
-TFLAGS=-O -inline -w -nofloat $(ADD_DFLAGS)
-#TFLAGS=-g -w -nofloat $(ADD_DFLAGS)
+TFLAGS_RELEASE=-O -inline -w  -nofloat $(ADD_DFLAGS)
+TFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)
+TFLAGS=$(TFLAGS_RELEASE)
 
 DOCFLAGS=-version=DDoc
 
@@ -75,6 +79,17 @@ ALL_DOCS=
 
 ######################################################
 
+unittest :
+       make -fposix.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE) -unittest"
+
+release :
+       make -fposix.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE)"
+
+debug :
+       make -fposix.mak DC="$(DC)" LIB_BUILD="-d" DFLAGS="$(DFLAGS_DEBUG)"
+
+######################################################
+
 stub.lib : $(LIB_TARGET)
 
 $(LIB_TARGET) : $(ALL_OBJS)
index 9b3158e78aa279681505fe8d3fb0e183f4da9c41..e55472e28413e870a4ffca44d739bdc104101b30 100644 (file)
 #      make clean
 #              Delete unneeded files created by build process
 
-LIB_TARGET=druntime-gc-stub.lib
-LIB_MASK=druntime-gc-stub*.lib
+LIB_BASE=druntime-gc-stub
+LIB_BUILD=
+LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).lib
+LIB_MASK=$(LIB_BASE)*.lib
 
 CP=xcopy /y
 RM=del /f
@@ -20,15 +22,17 @@ MD=mkdir
 ADD_CFLAGS=
 ADD_DFLAGS=
 
-CFLAGS=-mn -6 -r $(ADD_CFLAGS)
-#CFLAGS=-g -mn -6 -r $(ADD_CFLAGS)
+CFLAGS_RELEASE=-mn -6 -r $(ADD_CFLAGS)
+CFLAGS_DEBUG=-D -g -mn -6 -r $(ADD_CFLAGS)
+CFLAGS=$(CFLAGS_RELEASE)
 
-DFLAGS=-release -O -inline -w -nofloat $(ADD_DFLAGS)
-#DFLAGS=-g -w -nofloat $(ADD_DFLAGS)
+DFLAGS_RELEASE=-release -O -inline -w -nofloat $(ADD_DFLAGS)
+DFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)
+DFLAGS=$(DFLAGS_RELEASE)
 
-
-TFLAGS=-O -inline -w  -nofloat $(ADD_DFLAGS)
-#TFLAGS=-g -w -nofloat $(ADD_DFLAGS)
+TFLAGS_RELEASE=-O -inline -w  -nofloat $(ADD_DFLAGS)
+TFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)
+TFLAGS=$(TFLAGS_RELEASE)
 
 DOCFLAGS=-version=DDoc
 
@@ -72,6 +76,17 @@ ALL_DOCS=
 
 ######################################################
 
+unittest :
+       make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE) -unittest"
+
+release :
+       make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE)"
+
+debug :
+       make -fwin32.mak DC="$(DC)" LIB_BUILD="-d" DFLAGS="$(DFLAGS_DEBUG)"
+
+######################################################
+
 stub.lib : $(LIB_TARGET)
 
 $(LIB_TARGET) : $(ALL_OBJS)
diff --git a/src/test-dmd.bat b/src/test-dmd.bat
new file mode 100644 (file)
index 0000000..9c9f24c
--- /dev/null
@@ -0,0 +1,7 @@
+@echo off
+set OLDHOME=%HOME%
+set HOME=%CD%
+make clean -fdmd-win32.mak
+make unittest -fdmd-win32.mak
+make clean -fdmd-win32.mak
+set HOME=%OLDHOME%
\ No newline at end of file
diff --git a/src/unittest.d b/src/unittest.d
new file mode 100644 (file)
index 0000000..8dbf3f2
--- /dev/null
@@ -0,0 +1,4 @@
+void main()
+{
+
+}