On 10.12.2011 16:39, Bane wrote:
> Short term and long term suggestions ? Anything we can do ? I heard it
> is some problem with linking dead code?

I don't know about D2, but for D1 it helps to recompile Phobos without
-lib (use lib.exe, see win32.mak).

Hello.d - 84k

I'm attaching my makefiles, the smaller one belongs to phobos/internal/gc

Martin
# Makefile to build D runtime library phobos.lib for Win32
# Designed to work with \dm\bin\make.exe
# Targets:
#       make
#               Same as make unittest
#       make phobos.lib
#               Build phobos.lib
#       make clean
#               Delete unneeded files created by build process
#       make unittest
#               Build phobos.lib, build and run unit tests
#       make html
#               Build documentation
# Notes:
#       This relies on LIB.EXE 8.00 or later, and MAKE.EXE 5.01 or later.

CP=cp
DIR=\programs\dm
PHOBOSSVN=\svnproj\phobos1

CFLAGS=-mn -6 -r
#CFLAGS=-g -mn -6 -r

DFLAGS=-O -release -nofloat -w
#DFLAGS=-nofloat -w
#DFLAGS=-unittest -g -w
#DFLAGS=-unittest -cov -g

CC=dmc

DMD=$(DIR)\bin\dmd
#DMD=..\dmd

DOC=..\..\html\d\phobos
#DOC=..\doc\phobos

.c.obj:
        $(CC) -c $(CFLAGS) $*

.cpp.obj:
        $(CC) -c $(CFLAGS) $*

.d.obj:
        $(DMD) -c $(DFLAGS) $*

.asm.obj:
        $(CC) -c $*

targets : phobos.lib gcstub.obj

test : test.exe

test.obj : test.d
        $(DMD) -c test -g -unittest

test.exe : test.obj phobos.lib
        $(DMD) test.obj -g -L/map

#Mart zakomentovano
#OBJS= deh.obj complex.obj gcstats.obj \
#       critical.obj object.obj monitor.obj \
#       crc32.obj \
#       Czlib.obj Dzlib.obj process.obj \
#       oldsyserror.obj \
#       errno.obj metastrings.obj

#       ti_bit.obj ti_Abit.obj

#Mart vytvoreno z vystupu standardni kompilace (na konci, kdy dela lib)
#odmazano: arrayfloat.obj arraydouble.obj arrayreal.obj arraybyte.obj 
arrayshort.obj arrayint.obj
#OBJS=math.obj stdio.obj dateparse.obj date.obj uni.obj string.obj base64.obj 
md5.obj regexp.obj compiler.obj \
#       cpuid.obj format.obj demangle.obj path.obj outbuffer.obj utf.obj 
uri.obj ctype.obj random.obj array.obj \
#       mmfile.obj asserterror.obj system.obj bitarray.obj signals.obj 
typetuple.obj traits.obj bind.obj switcherr.obj \
#       thread.obj moduleinit.obj boxer.obj stream.obj socket.obj 
socketstream.obj perf.obj openrj.obj conv.obj zip.obj \
#       cstream.obj loader.obj outofmemory.obj cover.obj file.obj math2.obj 
aaA.obj adi.obj aApply.obj aApplyR.obj \
#       memset.obj arraycast.obj arraycat.obj switch.obj qsort.obj 
invariant.obj dmain2.obj cast.obj obj.obj gamma.obj \
#       stdarg.obj com.obj stat.obj windows.obj winsock.obj charset.obj 
iunknown.obj registry.obj syserror.obj ti_ptr.obj \
#       ti_delegate.obj ti_void.obj ti_C.obj ti_byte.obj ti_ubyte.obj 
ti_short.obj ti_ushort.obj ti_int.obj ti_uint.obj \
#       ti_long.obj ti_ulong.obj ti_char.obj ti_wchar.obj ti_dchar.obj 
ti_cdouble.obj ti_double.obj ti_idouble.obj \
#       ti_cfloat.obj ti_float.obj ti_ifloat.obj ti_creal.obj ti_real.obj 
ti_ireal.obj ti_AC.obj ti_Ag.obj ti_Ashort.obj \
#       ti_Aint.obj ti_Along.obj ti_Afloat.obj ti_Adouble.obj ti_Areal.obj 
ti_Acfloat.obj ti_Acdouble.obj ti_Acreal.obj \
#       deh.obj complex.obj gcstats.obj critical.obj object.obj monitor.obj 
crc32.obj \
#       Czlib.obj Dzlib.obj process.obj oldsyserror.obj errno.obj 
metastrings.obj 

#odmazano: arrayfloat.obj arraydouble.obj arrayreal.obj arraybyte.obj 
arrayshort.obj arrayint.obj minit.obj
OBJS=math.obj stdio.obj dateparse.obj date.obj uni.obj string.obj base64.obj 
md5.obj regexp.obj compiler.obj cpuid.obj format.obj demangle.obj \
path.obj outbuffer.obj utf.obj uri.obj ctype.obj random.obj array.obj 
mmfile.obj asserterror.obj system.obj  bitarray.obj  signals.obj \
typetuple.obj traits.obj bind.obj switcherr.obj thread.obj thread_helper.obj 
moduleinit.obj boxer.obj stream.obj socket.obj \
socketstream.obj perf.obj openrj.obj conv.obj zip.obj cstream.obj loader.obj 
outofmemory.obj cover.obj file.obj math2.obj \
stdint.obj stdarg.obj aaA.obj adi.obj aApply.obj aApplyR.obj memset.obj 
arraycast.obj arraycat.obj switch.obj qsort.obj intrinsic.obj \
invariant.obj dmain2.obj cast.obj obj.obj gamma.obj math.obj stdarg.obj 
stddef.obj stdio.obj stdlib.obj string.obj com.obj stat.obj \
windows.obj winsock.obj charset.obj iunknown.obj registry.obj syserror.obj \
ti_ptr.obj ti_delegate.obj ti_void.obj ti_C.obj ti_byte.obj ti_ubyte.obj 
ti_short.obj ti_ushort.obj ti_int.obj ti_uint.obj ti_long.obj ti_ulong.obj \
ti_char.obj ti_wchar.obj ti_dchar.obj ti_cdouble.obj ti_double.obj 
ti_idouble.obj ti_cfloat.obj ti_float.obj ti_ifloat.obj ti_creal.obj 
ti_real.obj \
ti_ireal.obj ti_AC.obj ti_Ag.obj ti_Ashort.obj ti_Aint.obj ti_Along.obj 
ti_Afloat.obj ti_Adouble.obj ti_Areal.obj ti_Acfloat.obj \
ti_Acdouble.obj ti_Acreal.obj deh.obj complex.obj gcstats.obj critical.obj 
object.obj monitor.obj crc32.obj Czlib.obj Dzlib.obj \
process.obj oldsyserror.obj errno.obj metastrings.obj

###
        
        
MAKEFILES= \
        win32.mak linux.mak osx.mak freebsd.mak openbsd.mak solaris.mak

SRCS= std\math.d std\stdio.d std\dateparse.d std\date.d std\uni.d std\string.d \
        std\base64.d std\md5.d std\regexp.d \
        std\compiler.d std\cpuid.d std\format.d std\demangle.d \
        std\path.d std\outbuffer.d std\utf.d std\uri.d \
        std\ctype.d std\random.d std\array.d std\mmfile.d \
        std\asserterror.d std\system.d \
        std\bitarray.d \
        std\signals.d std\typetuple.d std\traits.d std\bind.d \
        std\switcherr.d \
        std\thread.d std\thread_helper.d \
        std\moduleinit.d std\boxer.d \
        std\stream.d std\socket.d std\socketstream.d \
        std\perf.d std\openrj.d std\conv.d \
        std\zip.d std\cstream.d std\loader.d \
        std\outofmemory.d \
        std\cover.d \
        std\file.d \
        std\math2.d \
        std\intrinsic.d \
        std\stdint.d \
        std\stdarg.d \
        internal\aaA.d internal\adi.d \
        internal\aApply.d internal\aApplyR.d internal\memset.d \
        internal\arraycast.d internal\arraycat.d \
        internal\switch.d internal\qsort.d internal\invariant.d \
        internal\dmain2.d internal\cast.d internal\obj.d \
        internal\arrayfloat.d internal\arraydouble.d internal\arrayreal.d \
        internal\arraybyte.d internal\arrayshort.d internal\arrayint.d \
        etc\gamma.d \
        std\c\math.d \
        std\c\stdarg.d \
        std\c\stddef.d \
        std\c\stdio.d \
        std\c\stdlib.d \
        std\c\string.d \
        std\c\windows\com.d \
        std\c\windows\stat.d \
        std\c\windows\windows.d \
        std\c\windows\winsock.d \
        std\windows\charset.d \
        std\windows\iunknown.d \
        std\windows\registry.d \
        std\windows\syserror.d \
        std\typeinfo\ti_ptr.d \
        std\typeinfo\ti_delegate.d \
        std\typeinfo\ti_void.d \
        std\typeinfo\ti_C.d \
        std\typeinfo\ti_byte.d \
        std\typeinfo\ti_ubyte.d \
        std\typeinfo\ti_short.d \
        std\typeinfo\ti_ushort.d \
        std\typeinfo\ti_int.d \
        std\typeinfo\ti_uint.d \
        std\typeinfo\ti_long.d \
        std\typeinfo\ti_ulong.d \
        std\typeinfo\ti_char.d \
        std\typeinfo\ti_wchar.d \
        std\typeinfo\ti_dchar.d \
        std\typeinfo\ti_cdouble.d \
        std\typeinfo\ti_double.d \
        std\typeinfo\ti_idouble.d \
        std\typeinfo\ti_cfloat.d \
        std\typeinfo\ti_float.d \
        std\typeinfo\ti_ifloat.d \
        std\typeinfo\ti_creal.d \
        std\typeinfo\ti_real.d \
        std\typeinfo\ti_ireal.d \
        std\typeinfo\ti_AC.d \
        std\typeinfo\ti_Ag.d \
        std\typeinfo\ti_Ashort.d \
        std\typeinfo\ti_Aint.d \
        std\typeinfo\ti_Along.d \
        std\typeinfo\ti_Afloat.d \
        std\typeinfo\ti_Adouble.d \
        std\typeinfo\ti_Areal.d \
        std\typeinfo\ti_Acfloat.d \
        std\typeinfo\ti_Acdouble.d \
        std\typeinfo\ti_Acreal.d

DOCS=   $(DOC)\std_path.html $(DOC)\std_math.html $(DOC)\std_outbuffer.html \
        $(DOC)\std_stream.html $(DOC)\std_string.html $(DOC)\std_base64.html \
        $(DOC)\object.html $(DOC)\std_compiler.html $(DOC)\std_format.html \
        $(DOC)\std_random.html $(DOC)\std_file.html $(DOC)\std_date.html \
        $(DOC)\std_md5.html $(DOC)\std_zip.html $(DOC)\std_zlib.html \
        $(DOC)\std_bind.html \
        $(DOC)\std_bitarray.html \
        $(DOC)\std_conv.html \
        $(DOC)\std_boxer.html \
        $(DOC)\std_cover.html \
        $(DOC)\std_cpuid.html \
        $(DOC)\std_cstream.html \
        $(DOC)\std_ctype.html \
        $(DOC)\std_demangle.html \
        $(DOC)\std_gc.html \
        $(DOC)\std_intrinsic.html \
        $(DOC)\std_metastrings.html \
        $(DOC)\std_mmfile.html \
        $(DOC)\std_openrj.html \
        $(DOC)\std_outofmemory.html \
        $(DOC)\std_process.html \
        $(DOC)\std_regexp.html \
        $(DOC)\std_signals.html \
        $(DOC)\std_socket.html \
        $(DOC)\std_socketstream.html \
        $(DOC)\std_stdint.html \
        $(DOC)\std_stdio.html \
        $(DOC)\std_system.html \
        $(DOC)\std_thread.html \
        $(DOC)\std_traits.html \
        $(DOC)\std_typetuple.html \
        $(DOC)\std_uni.html \
        $(DOC)\std_uri.html \
        $(DOC)\std_utf.html \
        $(DOC)\std_windows_charset.html \
        $(DOC)\std_windows_registry.html \
        $(DOC)\std_c_fenv.html \
        $(DOC)\std_c_locale.html \
        $(DOC)\std_c_math.html \
        $(DOC)\std_c_process.html \
        $(DOC)\std_c_stdarg.html \
        $(DOC)\std_c_stddef.html \
        $(DOC)\std_c_stdio.html \
        $(DOC)\std_c_stdlib.html \
        $(DOC)\std_c_string.html \
        $(DOC)\std_c_time.html \
        $(DOC)\std_c_wcharh.html \
        $(DOC)\phobos.html

SRC=    errno.c object.d unittest.d crc32.d gcstats.d phobos.d

SRC_STD= std\zlib.d std\zip.d std\stdint.d std\conv.d std\utf.d std\uri.d \
        std\gc.d std\math.d std\string.d std\path.d std\date.d \
        std\ctype.d std\file.d std\compiler.d std\system.d std\moduleinit.d \
        std\outbuffer.d std\math2.d std\thread.d std\md5.d std\base64.d \
        std\asserterror.d std\dateparse.d std\outofmemory.d std\mmfile.d \
        std\intrinsic.d std\array.d std\switcherr.d std\syserror.d \
        std\regexp.d std\random.d std\stream.d std\process.d \
        std\socket.d std\socketstream.d std\loader.d std\stdarg.d std\format.d \
        std\stdio.d std\perf.d std\openrj.d std\uni.d std\boxer.d \
        std\cstream.d std\demangle.d std\cover.d std\bitarray.d \
        std\signals.d std\cpuid.d std\typetuple.d std\traits.d std\bind.d \
        std\metastrings.d std\thread_helper.d

SRC_STD_C= std\c\process.d std\c\stdlib.d std\c\time.d std\c\stdio.d \
        std\c\math.d std\c\stdarg.d std\c\stddef.d std\c\fenv.d std\c\string.d \
        std\c\locale.d

SRC_TI= \
        std\typeinfo\ti_wchar.d std\typeinfo\ti_uint.d \
        std\typeinfo\ti_short.d std\typeinfo\ti_ushort.d \
        std\typeinfo\ti_byte.d std\typeinfo\ti_ubyte.d \
        std\typeinfo\ti_long.d std\typeinfo\ti_ulong.d \
        std\typeinfo\ti_ptr.d std\typeinfo\ti_dchar.d \
        std\typeinfo\ti_float.d std\typeinfo\ti_double.d \
        std\typeinfo\ti_real.d std\typeinfo\ti_delegate.d \
        std\typeinfo\ti_creal.d std\typeinfo\ti_ireal.d \
        std\typeinfo\ti_cfloat.d std\typeinfo\ti_ifloat.d \
        std\typeinfo\ti_cdouble.d std\typeinfo\ti_idouble.d \
        std\typeinfo\ti_Ashort.d \
        std\typeinfo\ti_Ag.d \
        std\typeinfo\ti_AC.d std\typeinfo\ti_C.d \
        std\typeinfo\ti_int.d std\typeinfo\ti_char.d \
        std\typeinfo\ti_Aint.d \
        std\typeinfo\ti_Along.d \
        std\typeinfo\ti_Afloat.d std\typeinfo\ti_Adouble.d \
        std\typeinfo\ti_Areal.d \
        std\typeinfo\ti_Acfloat.d std\typeinfo\ti_Acdouble.d \
        std\typeinfo\ti_Acreal.d \
        std\typeinfo\ti_void.d

SRC_INT=        \
        internal\switch.d internal\complex.c internal\critical.c \
        internal\minit.asm internal\alloca.d internal\llmath.d internal\deh.d \
        internal\arraycat.d internal\invariant.d internal\monitor.c \
        internal\memset.d internal\arraycast.d internal\aaA.d internal\adi.d \
        internal\dmain2.d internal\cast.d internal\qsort.d internal\deh2.d \
        internal\cmath2.d internal\obj.d internal\mars.h internal\aApply.d \
        internal\aApplyR.d internal\object.d internal\trace.d internal\qsort2.d 
\
        internal\arrayfloat.d internal\arraydouble.d internal\arrayreal.d \
        internal\arraybyte.d internal\arrayshort.d internal\arrayint.d \
        internal\dylib_fixes.c internal\image.d

SRC_STD_WIN= std\windows\registry.d \
        std\windows\iunknown.d std\windows\syserror.d std\windows\charset.d

SRC_STD_C_WIN= std\c\windows\windows.d std\c\windows\com.d \
        std\c\windows\winsock.d std\c\windows\stat.d

SRC_STD_C_LINUX= std\c\linux\linux.d std\c\linux\linuxextern.d \
        std\c\linux\socket.d std\c\linux\pthread.d

SRC_STD_C_OSX= std\c\osx\osx.d std\c\osx\mach\dyld.d std\c\osx\mach\getsect.d \
        std\c\osx\mach\loader.d

SRC_STD_C_FREEBSD= std\c\freebsd\freebsd.d \
        std\c\freebsd\socket.d std\c\freebsd\pthread.d \
        std\c\freebsd\math.d

SRC_STD_C_OPENBSD= std\c\openbsd\openbsd.d \
        std\c\openbsd\socket.d std\c\openbsd\pthread.d

SRC_STD_C_SOLARIS= std/c/solaris/solaris.d \
       std/c/solaris/socket.d std/c/solaris/pthread.d

SRC_STD_C_POSIX= std\c\posix\posix.d \
        std\c\posix\socket.d std\c\posix\pthread.d

SRC_ETC= etc\gamma.d

SRC_ETC_C= etc\c\zlib.d

SRC_ZLIB= \
        etc\c\zlib\crc32.h \
        etc\c\zlib\deflate.h \
        etc\c\zlib\gzguts.h \
        etc\c\zlib\inffixed.h \
        etc\c\zlib\inffast.h \
        etc\c\zlib\inftrees.h \
        etc\c\zlib\inflate.h \
        etc\c\zlib\trees.h \
        etc\c\zlib\zconf.h \
        etc\c\zlib\zlib.h \
        etc\c\zlib\zutil.h \
        etc\c\zlib\adler32.c \
        etc\c\zlib\compress.c \
        etc\c\zlib\crc32.c \
        etc\c\zlib\deflate.c \
        etc\c\zlib\example.c \
        etc\c\zlib\gzclose.c \
        etc\c\zlib\gzlib.c \
        etc\c\zlib\gzread.c \
        etc\c\zlib\gzwrite.c \
        etc\c\zlib\infback.c \
        etc\c\zlib\inffast.c \
        etc\c\zlib\inflate.c \
        etc\c\zlib\inftrees.c \
        etc\c\zlib\minigzip.c \
        etc\c\zlib\trees.c \
        etc\c\zlib\uncompr.c \
        etc\c\zlib\zutil.c \
        etc\c\zlib\algorithm.txt \
        etc\c\zlib\zlib.3 \
        etc\c\zlib\ChangeLog \
        etc\c\zlib\README \
        etc\c\zlib\win32.mak \
        etc\c\zlib\linux.mak \
        etc\c\zlib\osx.mak \
        etc\c\zlib\freebsd.mak \
        etc\c\zlib\openbsd.mak \
        etc\c\zlib\solaris.mak

SRC_GC= internal\gc\gc.d \
        internal\gc\gcold.d \
        internal\gc\gcx.d \
        internal\gc\gcstub.d \
        internal\gc\gcbits.d \
        internal\gc\win32.d \
        internal\gc\gclinux.d \
        internal\gc\gcosxc.c \
        internal\gc\testgc.d \
        internal\gc\win32.mak \
        internal\gc\linux.mak \
        internal\gc\osx.mak \
        internal\gc\freebsd.mak \
        internal\gc\openbsd.mak \
        internal\gc\solaris.mak

phobos.lib : $(OBJS) $(SRCS) minit.obj internal\gc\dmgc.lib \
        etc\c\zlib\zlib.lib win32.mak
#Mart odkomentovano a vytvoren novy obsah OBJ
        lib -c -p32 phobos.lib $(OBJS) minit.obj internal\gc\dmgc.lib \
                etc\c\zlib\zlib.lib
#Mart zakomentovano
#       $(DMD) -lib -ofphobos.lib -Xfphobos.json $(DFLAGS) $(SRCS) $(OBJS) 
minit.obj \
#               internal\gc\dmgc.lib etc\c\zlib\zlib.lib

unittest : $(SRCS) phobos.lib
        $(DMD) $(DFLAGS) -unittest -version=Unittest unittest.d $(SRCS) 
phobos.lib
        unittest

#unittest : unittest.exe
#       unittest
#
#unittest.exe : unittest.d phobos.lib
#       $(DMD) unittest -g
#       dmc unittest.obj -g

cov : $(SRCS) phobos.lib
        $(DMD) -cov -unittest -ofcov.exe unittest.d -version=Unittest $(SRCS) 
phobos.lib
        cov

html : $(DOCS)

######################################################

internal\gc\dmgc.lib:
        cd internal\gc
        make DMD=$(DMD) -f win32.mak dmgc.lib
        cd ..\..

etc\c\zlib\zlib.lib:
        cd etc\c\zlib
        make -f win32.mak zlib.lib
        cd ..\..\..

errno.obj : errno.c

### internal

aaA.obj : internal\aaA.d
        $(DMD) -c $(DFLAGS) internal\aaA.d

aApply.obj : internal\aApply.d
        $(DMD) -c $(DFLAGS) internal\aApply.d

aApplyR.obj : internal\aApplyR.d
        $(DMD) -c $(DFLAGS) internal\aApplyR.d

adi.obj : internal\adi.d
        $(DMD) -c $(DFLAGS) internal\adi.d

arraycast.obj : internal\arraycast.d
        $(DMD) -c $(DFLAGS) internal\arraycast.d

arraycat.obj : internal\arraycat.d
        $(DMD) -c $(DFLAGS) internal\arraycat.d

cast.obj : internal\cast.d
        $(DMD) -c $(DFLAGS) internal\cast.d

complex.obj : internal\complex.c
        $(CC) -c $(CFLAGS) internal\complex.c

critical.obj : internal\critical.c
        $(CC) -c $(CFLAGS) internal\critical.c

deh.obj : internal\deh.d
        $(DMD) -c $(DFLAGS) internal\deh.d

dmain2.obj : internal\dmain2.d
        $(DMD) -c $(DFLAGS) internal\dmain2.d

gcstub.obj : internal\gc\gcstub.d
        $(DMD) -c $(DFLAGS) -Iinternal\gc internal\gc\gcstub.d

invariant.obj : internal\invariant.d
        $(DMD) -c $(DFLAGS) internal\invariant.d

memset.obj : internal\memset.d
        $(DMD) -c $(DFLAGS) internal\memset.d

#Mart zakomentovano
#minit.obj : internal\minit.asm
#       $(CC) -c internal\minit.asm

monitor.obj : internal\mars.h internal\monitor.c
        $(CC) -c $(CFLAGS) internal\monitor.c

obj.obj : internal\obj.d
        $(DMD) -c $(DFLAGS) internal\obj.d

object.obj : internal\object.d
        $(DMD) -c $(DFLAGS) internal\object.d

qsort.obj : internal\qsort.d
        $(DMD) -c $(DFLAGS) internal\qsort.d

switch.obj : internal\switch.d
        $(DMD) -c $(DFLAGS) internal\switch.d

### std

array.obj : std\array.d
        $(DMD) -c $(DFLAGS) std\array.d

asserterror.obj : std\asserterror.d
        $(DMD) -c $(DFLAGS) std\asserterror.d

base64.obj : std\base64.d
        $(DMD) -c $(DFLAGS) -inline std\base64.d

bind.obj : std\bind.d
        $(DMD) -c $(DFLAGS) -inline std\bind.d

bitarray.obj : std\bitarray.d
        $(DMD) -c $(DFLAGS) -inline std\bitarray.d

boxer.obj : std\boxer.d
        $(DMD) -c $(DFLAGS) std\boxer.d

compiler.obj : std\compiler.d
        $(DMD) -c $(DFLAGS) std\compiler.d

conv.obj : std\conv.d
        $(DMD) -c $(DFLAGS) std\conv.d

cover.obj : std\cover.d
        $(DMD) -c $(DFLAGS) std\cover.d

cpuid.obj : std\cpuid.d
        $(DMD) -c $(DFLAGS) std\cpuid.d -ofcpuid.obj

cstream.obj : std\cstream.d
        $(DMD) -c $(DFLAGS) std\cstream.d

ctype.obj : std\ctype.d
        $(DMD) -c $(DFLAGS) std\ctype.d

date.obj : std\dateparse.d std\date.d
        $(DMD) -c $(DFLAGS) std\date.d

dateparse.obj : std\dateparse.d std\date.d
        $(DMD) -c $(DFLAGS) std\dateparse.d

demangle.obj : std\demangle.d
        $(DMD) -c $(DFLAGS) std\demangle.d

file.obj : std\file.d
        $(DMD) -c $(DFLAGS) std\file.d

format.obj : std\format.d
        $(DMD) -c $(DFLAGS) std\format.d

gc.obj : std\gc.d
        $(DMD) -c $(DFLAGS) std\gc.d
#Mart doplneno
intrinsic.obj : std\intrinsic.d
        $(DMD) -c $(DFLAGS) std\intrinsic.d

loader.obj : std\loader.d
        $(DMD) -c $(DFLAGS) std\loader.d

math.obj : std\math.d
        $(DMD) -c $(DFLAGS) std\math.d

math2.obj : std\math2.d
        $(DMD) -c $(DFLAGS) std\math2.d

md5.obj : std\md5.d
        $(DMD) -c $(DFLAGS) -inline std\md5.d

metastrings.obj : std\metastrings.d
        $(DMD) -c $(DFLAGS) -inline std\metastrings.d

mmfile.obj : std\mmfile.d
        $(DMD) -c $(DFLAGS) std\mmfile.d

moduleinit.obj : std\moduleinit.d
        $(DMD) -c $(DFLAGS) std\moduleinit.d

#object.obj : object.d
#       $(DMD) -c $(DFLAGS) object.d

openrj.obj : std\openrj.d
        $(DMD) -c $(DFLAGS) std\openrj.d

outbuffer.obj : std\outbuffer.d
        $(DMD) -c $(DFLAGS) std\outbuffer.d

outofmemory.obj : std\outofmemory.d
        $(DMD) -c $(DFLAGS) std\outofmemory.d

path.obj : std\path.d
        $(DMD) -c $(DFLAGS) std\path.d

perf.obj : std\perf.d
        $(DMD) -c $(DFLAGS) std\perf.d

process.obj : std\process.d
        $(DMD) -c $(DFLAGS) std\process.d

random.obj : std\random.d
        $(DMD) -c $(DFLAGS) std\random.d

regexp.obj : std\regexp.d
        $(DMD) -c $(DFLAGS) std\regexp.d

signals.obj : std\signals.d
        $(DMD) -c $(DFLAGS) std\signals.d -ofsignals.obj

socket.obj : std\socket.d
        $(DMD) -c $(DFLAGS) std\socket.d -ofsocket.obj

socketstream.obj : std\socketstream.d
        $(DMD) -c $(DFLAGS) std\socketstream.d -ofsocketstream.obj
#Mart doplneno
stdint.obj : std\stdint.d
        $(DMD) -c $(DFLAGS) std\stdint.d

stdio.obj : std\stdio.d
        $(DMD) -c $(DFLAGS) std\stdio.d

stream.obj : std\stream.d
        $(DMD) -c $(DFLAGS) -d std\stream.d

string.obj : std\string.d
        $(DMD) -c $(DFLAGS) std\string.d

switcherr.obj : std\switcherr.d
        $(DMD) -c $(DFLAGS) std\switcherr.d

oldsyserror.obj : std\syserror.d
        $(DMD) -c $(DFLAGS) std\syserror.d -ofoldsyserror.obj

system.obj : std\system.d
        $(DMD) -c $(DFLAGS) std\system.d

thread.obj : std\thread.d
        $(DMD) -c $(DFLAGS) std\thread.d

thread_helper.obj : std\thread_helper.d
        $(DMD) -c $(DFLAGS) std\thread_helper.d

traits.obj : std\traits.d
        $(DMD) -c $(DFLAGS) std\traits.d -oftraits.obj

typetuple.obj : std\typetuple.d
        $(DMD) -c $(DFLAGS) std\typetuple.d -oftypetuple.obj

uni.obj : std\uni.d
        $(DMD) -c $(DFLAGS) std\uni.d

uri.obj : std\uri.d
        $(DMD) -c $(DFLAGS) std\uri.d

utf.obj : std\utf.d
        $(DMD) -c $(DFLAGS) std\utf.d

Dzlib.obj : std\zlib.d
        $(DMD) -c $(DFLAGS) std\zlib.d -ofDzlib.obj

zip.obj : std\zip.d
        $(DMD) -c $(DFLAGS) std\zip.d

### std\windows

charset.obj : std\windows\charset.d
        $(DMD) -c $(DFLAGS) std\windows\charset.d

iunknown.obj : std\windows\iunknown.d
        $(DMD) -c $(DFLAGS) std\windows\iunknown.d

registry.obj : std\windows\registry.d
        $(DMD) -c $(DFLAGS) std\windows\registry.d

syserror.obj : std\windows\syserror.d
        $(DMD) -c $(DFLAGS) std\windows\syserror.d

### std\c

stdarg.obj : std\c\stdarg.d
        $(DMD) -c $(DFLAGS) std\c\stdarg.d
#Mart doplneno
stddef.obj : std\c\stddef.d
        $(DMD) -c $(DFLAGS) std\c\stddef.d
#Mart doplneno
stdlib.obj : std\c\stdlib.d
        $(DMD) -c $(DFLAGS) std\c\stdlib.d

### etc

gamma.obj : etc\gamma.d
        $(DMD) -c $(DFLAGS) etc\gamma.d

### etc\c

Czlib.obj : etc\c\zlib.d
        $(DMD) -c $(DFLAGS) etc\c\zlib.d -ofCzlib.obj

### std\c\windows

com.obj : std\c\windows\com.d
        $(DMD) -c $(DFLAGS) std\c\windows\com.d

stat.obj : std\c\windows\stat.d
        $(DMD) -c $(DFLAGS) std\c\windows\stat.d

winsock.obj : std\c\windows\winsock.d
        $(DMD) -c $(DFLAGS) std\c\windows\winsock.d

windows.obj : std\c\windows\windows.d
        $(DMD) -c $(DFLAGS) std\c\windows\windows.d

### std\typeinfo

ti_void.obj : std\typeinfo\ti_void.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_void.d

ti_bit.obj : std\typeinfo\ti_bit.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_bit.d

ti_wchar.obj : std\typeinfo\ti_wchar.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_wchar.d

ti_dchar.obj : std\typeinfo\ti_dchar.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_dchar.d

ti_uint.obj : std\typeinfo\ti_uint.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_uint.d

ti_short.obj : std\typeinfo\ti_short.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_short.d

ti_ushort.obj : std\typeinfo\ti_ushort.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_ushort.d

ti_byte.obj : std\typeinfo\ti_byte.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_byte.d

ti_ubyte.obj : std\typeinfo\ti_ubyte.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_ubyte.d

ti_long.obj : std\typeinfo\ti_long.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_long.d

ti_ulong.obj : std\typeinfo\ti_ulong.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_ulong.d

ti_ptr.obj : std\typeinfo\ti_ptr.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_ptr.d

ti_float.obj : std\typeinfo\ti_float.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_float.d

ti_double.obj : std\typeinfo\ti_double.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_double.d

ti_real.obj : std\typeinfo\ti_real.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_real.d

ti_delegate.obj : std\typeinfo\ti_delegate.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_delegate.d

ti_creal.obj : std\typeinfo\ti_creal.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_creal.d

ti_ireal.obj : std\typeinfo\ti_ireal.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_ireal.d

ti_cfloat.obj : std\typeinfo\ti_cfloat.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_cfloat.d

ti_ifloat.obj : std\typeinfo\ti_ifloat.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_ifloat.d

ti_cdouble.obj : std\typeinfo\ti_cdouble.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_cdouble.d

ti_idouble.obj : std\typeinfo\ti_idouble.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_idouble.d

ti_AC.obj : std\typeinfo\ti_AC.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_AC.d

ti_Ag.obj : std\typeinfo\ti_Ag.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_Ag.d

ti_Abit.obj : std\typeinfo\ti_Abit.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_Abit.d

ti_Ashort.obj : std\typeinfo\ti_Ashort.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_Ashort.d

ti_Aint.obj : std\typeinfo\ti_Aint.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_Aint.d

ti_Along.obj : std\typeinfo\ti_Along.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_Along.d

ti_Afloat.obj : std\typeinfo\ti_Afloat.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_Afloat.d

ti_Adouble.obj : std\typeinfo\ti_Adouble.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_Adouble.d

ti_Areal.obj : std\typeinfo\ti_Areal.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_Areal.d

ti_Acfloat.obj : std\typeinfo\ti_Acfloat.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_Acfloat.d

ti_Acdouble.obj : std\typeinfo\ti_Acdouble.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_Acdouble.d

ti_Acreal.obj : std\typeinfo\ti_Acreal.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_Acreal.d

ti_C.obj : std\typeinfo\ti_C.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_C.d

ti_char.obj : std\typeinfo\ti_char.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_char.d

ti_int.obj : std\typeinfo\ti_int.d
        $(DMD) -c $(DFLAGS) std\typeinfo\ti_int.d


################## DOCS ####################################

$(DOC)\phobos.html : std.ddoc phobos.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\phobos.html std.ddoc phobos.d

$(DOC)\std_base64.html : std.ddoc std\base64.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_base64.html std.ddoc std\base64.d

$(DOC)\std_bind.html : std.ddoc std\bind.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_bind.html std.ddoc std\bind.d

$(DOC)\std_bitarray.html : std.ddoc std\bitarray.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_bitarray.html std.ddoc 
std\bitarray.d

$(DOC)\std_boxer.html : std.ddoc std\boxer.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_boxer.html std.ddoc std\boxer.d

$(DOC)\std_compiler.html : std.ddoc std\compiler.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_compiler.html std.ddoc 
std\compiler.d

$(DOC)\std_conv.html : std.ddoc std\conv.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_conv.html std.ddoc std\conv.d

$(DOC)\std_cover.html : std.ddoc std\cover.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_cover.html std.ddoc std\cover.d

$(DOC)\std_cpuid.html : std.ddoc std\cpuid.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_cpuid.html std.ddoc std\cpuid.d

$(DOC)\std_cstream.html : std.ddoc std\cstream.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_cstream.html std.ddoc 
std\cstream.d

$(DOC)\std_ctype.html : std.ddoc std\ctype.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_ctype.html std.ddoc std\ctype.d

$(DOC)\std_date.html : std.ddoc std\date.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_date.html std.ddoc std\date.d

$(DOC)\std_demangle.html : std.ddoc std\demangle.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_demangle.html std.ddoc 
std\demangle.d

$(DOC)\std_file.html : std.ddoc std\file.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_file.html std.ddoc std\file.d

$(DOC)\std_format.html : std.ddoc std\format.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_format.html std.ddoc std\format.d

$(DOC)\std_gc.html : std.ddoc std\gc.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_gc.html std.ddoc std\gc.d

$(DOC)\std_intrinsic.html : std.ddoc std\intrinsic.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_intrinsic.html std.ddoc 
std\intrinsic.d

$(DOC)\std_math.html : std.ddoc std\math.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_math.html std.ddoc std\math.d

$(DOC)\std_md5.html : std.ddoc std\md5.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_md5.html std.ddoc std\md5.d

$(DOC)\std_metastrings.html : std.ddoc std\metastrings.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_metastrings.html std.ddoc 
std\metastrings.d

$(DOC)\std_mmfile.html : std.ddoc std\mmfile.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_mmfile.html std.ddoc std\mmfile.d

$(DOC)\std_openrj.html : std.ddoc std\openrj.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_openrj.html std.ddoc std\openrj.d

$(DOC)\std_outbuffer.html : std.ddoc std\outbuffer.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_outbuffer.html std.ddoc 
std\outbuffer.d

$(DOC)\std_outofmemory.html : std.ddoc std\outofmemory.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_outofmemory.html std.ddoc 
std\outofmemory.d

$(DOC)\std_path.html : std.ddoc std\path.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_path.html std.ddoc std\path.d

$(DOC)\std_process.html : std.ddoc std\process.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_process.html std.ddoc 
std\process.d

$(DOC)\std_random.html : std.ddoc std\random.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_random.html std.ddoc std\random.d

$(DOC)\std_regexp.html : std.ddoc std\regexp.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_regexp.html std.ddoc std\regexp.d

$(DOC)\std_signals.html : std.ddoc std\signals.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_signals.html std.ddoc 
std\signals.d

$(DOC)\std_socket.html : std.ddoc std\socket.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_socket.html std.ddoc std\socket.d

$(DOC)\std_socketstream.html : std.ddoc std\socketstream.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_socketstream.html std.ddoc 
std\socketstream.d

$(DOC)\std_stdint.html : std.ddoc std\stdint.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_stdint.html std.ddoc std\stdint.d

$(DOC)\std_stdio.html : std.ddoc std\stdio.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_stdio.html std.ddoc std\stdio.d

$(DOC)\std_stream.html : std.ddoc std\stream.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_stream.html -d std.ddoc 
std\stream.d

$(DOC)\std_string.html : std.ddoc std\string.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_string.html std.ddoc std\string.d

$(DOC)\std_system.html : std.ddoc std\system.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_system.html std.ddoc std\system.d

$(DOC)\std_thread.html : std.ddoc std\thread.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_thread.html std.ddoc std\thread.d

$(DOC)\std_traits.html : std.ddoc std\traits.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_traits.html std.ddoc std\traits.d

$(DOC)\std_typetuple.html : std.ddoc std\typetuple.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_typetuple.html std.ddoc 
std\typetuple.d

$(DOC)\std_uni.html : std.ddoc std\uni.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_uni.html std.ddoc std\uni.d

$(DOC)\std_uri.html : std.ddoc std\uri.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_uri.html std.ddoc std\uri.d

$(DOC)\std_utf.html : std.ddoc std\utf.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_utf.html std.ddoc std\utf.d

$(DOC)\std_zip.html : std.ddoc std\zip.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_zip.html std.ddoc std\zip.d

$(DOC)\std_zlib.html : std.ddoc std\zlib.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_zlib.html std.ddoc std\zlib.d

$(DOC)\std_windows_charset.html : std.ddoc std\windows\charset.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_windows_charset.html std.ddoc 
std\windows\charset.d

$(DOC)\std_windows_registry.html : std.ddoc std\windows\registry.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_windows_registry.html std.ddoc 
std\windows\registry.d

$(DOC)\object.html : std.ddoc internal\object.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\object.html std.ddoc internal\object.d

$(DOC)\std_c_fenv.html : std.ddoc std\c\fenv.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_c_fenv.html std.ddoc std\c\fenv.d

$(DOC)\std_c_locale.html : std.ddoc std\c\locale.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_c_locale.html std.ddoc 
std\c\locale.d

$(DOC)\std_c_math.html : std.ddoc std\c\math.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_c_math.html std.ddoc std\c\math.d

$(DOC)\std_c_process.html : std.ddoc std\c\process.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_c_process.html std.ddoc 
std\c\process.d

$(DOC)\std_c_stdarg.html : std.ddoc std\c\stdarg.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_c_stdarg.html std.ddoc 
std\c\stdarg.d

$(DOC)\std_c_stddef.html : std.ddoc std\c\stddef.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_c_stddef.html std.ddoc 
std\c\stddef.d

$(DOC)\std_c_stdio.html : std.ddoc std\c\stdio.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_c_stdio.html std.ddoc 
std\c\stdio.d

$(DOC)\std_c_stdlib.html : std.ddoc std\c\stdlib.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_c_stdlib.html std.ddoc 
std\c\stdlib.d

$(DOC)\std_c_string.html : std.ddoc std\c\string.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_c_string.html std.ddoc 
std\c\string.d

$(DOC)\std_c_time.html : std.ddoc std\c\time.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_c_time.html std.ddoc std\c\time.d

$(DOC)\std_c_wcharh.html : std.ddoc std\c\wcharh.d
        $(DMD) -c -o- $(DFLAGS) -Df$(DOC)\std_c_wcharh.html std.ddoc 
std\c\wcharh.d


######################################################

zip : $(MAKEFILES) phoboslicense.txt std.ddoc $(SRC) \
        $(SRC_STD) $(SRC_STD_C) $(SRC_TI) $(SRC_INT) $(SRC_STD_WIN) \
        $(SRC_STDLINUX) $(SRC_ETC) $(SRC_ETC_C) $(SRC_ZLIB) $(SRC_GC)
        del phobos.zip
        zip32 -u phobos $(MAKEFILES) std.ddoc
        zip32 -u phobos $(SRC)
        zip32 -u phobos $(SRC_TI)
        zip32 -u phobos $(SRC_INT)
        zip32 -u phobos $(SRC_STD)
        zip32 -u phobos $(SRC_STD_C)
        zip32 -u phobos $(SRC_STD_WIN)
        zip32 -u phobos $(SRC_STD_C_WIN)
        zip32 -u phobos $(SRC_STD_C_LINUX)
        zip32 -u phobos $(SRC_STD_C_OSX)
        zip32 -u phobos $(SRC_STD_C_FREEBSD)
        zip32 -u phobos $(SRC_STD_C_OPENBSD)
        zip32 -u phobos $(SRC_STD_C_SOLARIS)
        zip32 -u phobos $(SRC_STD_C_POSIX)
        zip32 -u phobos $(SRC_ETC)
        zip32 -u phobos $(SRC_ETC_C)
        zip32 -u phobos $(SRC_ZLIB)
        zip32 -u phobos $(SRC_GC)

clean:
        del $(OBJS)
#Mart#  del $(DOCS)
        del phobos.json
        del phobos.lib

cleanhtml:
        del $(DOCS)

detab:
        detab $(SRC) \
        $(SRC_STD) $(SRC_STD_C) $(SRC_TI) $(SRC_INT) $(SRC_STD_WIN) \
        $(SRC_STDLINUX) $(SRC_STD_C_OSX) $(SRC_STD_C_SOLARIS)
# $(SRC_ETC) $(SRC_ETC_C) $(SRC_ZLIB) $(SRC_GC)

tolf:
        tolf freebsd.mak \
        tolf openbsd.mak \
        internal\gc\freebsd.mak \
        internal\gc\openbsd.mak \
        internal\gc\osx.mak \
        internal\gc\solaris.mak \
        etc\c\zlib\freebsd.mak \
        etc\c\zlib\openbsd.mak \
        etc\c\zlib\osx.mak \
        etc\c\zlib\solaris.mak \
        $(SRC) \
        $(SRC_STD) $(SRC_STD_C) $(SRC_TI) $(SRC_INT) $(SRC_STD_WIN) \
        $(SRC_STDLINUX) $(SRC_STD_C_OSX) $(SRC_STD_C_SOLARIS)

install:
        $(CP) phobos.lib gcstub.obj $(DIR)\windows\lib
        $(CP) $(MAKEFILES) phoboslicense.txt minit.obj std.ddoc 
$(DIR)\src\phobos
        $(CP) $(SRC) $(DIR)\src\phobos
        $(CP) $(SRC_STD) $(DIR)\src\phobos\std
        $(CP) $(SRC_STD_C) $(DIR)\src\phobos\std\c
        $(CP) $(SRC_TI) $(DIR)\src\phobos\std\typeinfo
        $(CP) $(SRC_INT) $(DIR)\src\phobos\internal
        $(CP) $(SRC_STD_WIN) $(DIR)\src\phobos\std\windows
        $(CP) $(SRC_STD_C_WIN) $(DIR)\src\phobos\std\c\windows
        $(CP) $(SRC_STD_C_LINUX) $(DIR)\src\phobos\std\c\linux
        $(CP) $(SRC_STD_C_OSX) $(DIR)\src\phobos\std\c\osx
        $(CP) $(SRC_STD_C_FREEBSD) $(DIR)\src\phobos\std\c\freebsd
        $(CP) $(SRC_STD_C_OPENBSD) $(DIR)\src\phobos\std\c\openbsd
        $(CP) $(SRC_STD_C_SOLARIS) $(DIR)\src\phobos\std\c\solaris
        $(CP) $(SRC_STD_C_POSIX) $(DIR)\src\phobos\std\c\posix
        $(CP) $(SRC_ETC) $(DIR)\src\phobos\etc
        $(CP) $(SRC_ETC_C) $(DIR)\src\phobos\etc\c
        $(CP) $(SRC_ZLIB) $(DIR)\src\phobos\etc\c\zlib
        $(CP) $(SRC_GC) $(DIR)\src\phobos\internal\gc

################# Write to SVN ####################

svn:    detab tolf svn2

svn2:
        $(CP) $(MAKEFILES) phoboslicense.txt minit.obj std.ddoc $(PHOBOSSVN)
        $(CP) $(SRC) $(PHOBOSSVN)
        $(CP) $(SRC_STD) $(PHOBOSSVN)\std
        $(CP) $(SRC_STD_C) $(PHOBOSSVN)\std\c
        $(CP) $(SRC_TI) $(PHOBOSSVN)\std\typeinfo
        $(CP) $(SRC_INT) $(PHOBOSSVN)\internal
        $(CP) $(SRC_STD_WIN) $(PHOBOSSVN)\std\windows
        $(CP) $(SRC_STD_C_WIN) $(PHOBOSSVN)\std\c\windows
        $(CP) $(SRC_STD_C_LINUX) $(PHOBOSSVN)\std\c\linux
        $(CP) $(SRC_STD_C_OSX) $(PHOBOSSVN)\std\c\osx
        $(CP) $(SRC_STD_C_FREEBSD) $(PHOBOSSVN)\std\c\freebsd
        $(CP) $(SRC_STD_C_OPENBSD) $(PHOBOSSVN)\std\c\openbsd
        $(CP) $(SRC_STD_C_SOLARIS) $(PHOBOSSVN)\std\c\solaris
        $(CP) $(SRC_STD_C_POSIX) $(PHOBOSSVN)\std\c\posix
        $(CP) $(SRC_ETC) $(PHOBOSSVN)\etc
        $(CP) $(SRC_ETC_C) $(PHOBOSSVN)\etc\c
        $(CP) $(SRC_ZLIB) $(PHOBOSSVN)\etc\c\zlib
        $(CP) $(SRC_GC) $(PHOBOSSVN)\internal\gc

# makefile to build D garbage collector under win32

#DMD=..\..\..\dmd
DMD=dmd

#DFLAGS=-unittest -g -release
#DFLAGS=-inline -O
DFLAGS=-release -inline -O
#DFLAGS=-g

CC=dmc
CFLAGS=-g -mn -6 -r -Igc

.c.obj:
        $(CC) -c $(CFLAGS) $*

.cpp.obj:
        $(CC) -c $(CFLAGS) $*

.d.obj:
        $(DMD) -c $(DFLAGS) $*

.asm.obj:
        $(CC) -c $*

targets : testgc.exe dmgc.lib

testgc.exe : testgc.obj dmgc.lib
        $(DMD) testgc.obj dmgc.lib -g

testgc.obj : testgc.d

OBJS= gc.obj gcold.obj gcx.obj gcbits.obj win32.obj

SRC= gc.d gcold.d gcx.d gcbits.d win32.d gclinux.d testgc.d win32.mak linux.mak

#Mart odkomentovano
dmgc.lib : $(OBJS) win32.mak
       del dmgc.lib
       lib dmgc /c/noi +gc+gcold+gcx+gcbits+win32;

# Mart zakomentovano
#dmgc.lib : gc.d gcold.obj gcx.d gcbits.d win32.d
#       $(DMD) $(DFLAGS) -I..\.. -lib -ofdmgc.lib gc.d gcold.obj gcx.d gcbits.d 
win32.d

gc.obj : gc.d
        $(DMD) -c $(DFLAGS) $*

gcold.obj : gcold.d
        $(DMD) -c $(DFLAGS) $*

gcx.obj : gcx.d gcbits.d
        $(DMD) -c $(DFLAGS) gcx gcbits

#gcbits.obj : gcbits.d

win32.obj : win32.d

zip : $(SRC)
        del dmgc.zip
        zip32 dmgc $(SRC)

clean:
        del $(OBJS)
        del dmgc.lib
        del testgc.exe

Reply via email to