# Copyright (c) 2009-2010 Satoshi Nakamoto
# Distributed under the MIT/X11 software license, see the accompanying
# file license.txt or http://www.opensource.org/licenses/mit-license.php.


INCLUDEPATHS= \
  /I"/boost" \
  /I"/db/build_windows" \
  /I"/openssl/include" \
  /I"/miniupnpc"

LIBPATHS= \
  /LIBPATH:"/boost/stage/lib" \
  /LIBPATH:"/db/build_windows/Release" \
  /LIBPATH:"/openssl/lib" \
  /LIBPATH:"/miniupnpc/msvc/Release" \
  /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib \
  /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib \
  /NODEFAULTLIB:msvcrtd.lib

USE_UPNP=0

DEFS=/DWIN32 /D_WINDOWS /DNOPCH /DNOMINMAX

LIBS= \
  libboost_system-vc100-mt.lib \
  libboost_filesystem-vc100-mt.lib \
  libboost_program_options-vc100-mt.lib \
  libboost_thread-vc100-mt.lib \
  libdb47s.lib \
  libeay32.lib

!IFDEF USE_UPNP
LIBS=$(LIBS) miniupnpc.lib
DEFS=$(DEFS) /DUSE_UPNP=$(USE_UPNP)
!ENDIF

LIBS=$(LIBS) \
  kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib ws2_32.lib shlwapi.lib iphlpapi.lib

DEBUGFLAGS=/Os
CFLAGS=/MD /c /nologo /EHsc /GR /Zm300 $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
HEADERS = \
    base58.h \
    bignum.h \
    checkpoints.h \
    crypter.h \
    db.h \
    headers.h \
    init.h \
    irc.h \
    key.h \
    keystore.h \
    main.h \
    net.h \
    noui.h \
    protocol.h \
    bitcoinrpc.h \
    script.h \
    serialize.h \
    strlcpy.h \
    ui.h \
    uibase.h \
    uint256.h \
    util.h \
    wallet.h

OBJS= \
    obj\checkpoints.o \
    obj\crypter.o \
    obj\db.o \
    obj\init.o \
    obj\irc.o \
    obj\keystore.o \
    obj\main.o \
    obj\net.o \
    obj\rpc.o \
    obj\protocol.o \
    obj\script.o \
    obj\util.o \
    obj\wallet.o

RC=../share


all: bitcoind.exe


.cpp{obj}.obj:
    cl $(CFLAGS) /DGUI /Fo$@ %s

obj\checkpoints.obj: $(HEADERS)

obj\util.obj: $(HEADERS)

obj\script.obj: $(HEADERS)

obj\db.obj: $(HEADERS)

obj\net.obj: $(HEADERS)

obj\irc.obj: $(HEADERS)

obj\keystore.obj: $(HEADERS)

obj\main.obj: $(HEADERS)

obj\wallet.obj: $(HEADERS)

obj\rpc.obj: $(HEADERS)

obj\init.obj: $(HEADERS)

obj\crypter.obj: $(HEADERS)

obj\ui.obj: $(HEADERS)

obj\uibase.obj: $(HEADERS)

.cpp{obj\nogui}.obj:
    cl $(CFLAGS) /Fo$@ %s

obj\nogui\checkpoints.obj: $(HEADERS)

obj\nogui\util.obj: $(HEADERS)

obj\nogui\script.obj: $(HEADERS)

obj\nogui\db.obj: $(HEADERS)

obj\nogui\net.obj: $(HEADERS)

obj\nogui\irc.obj: $(HEADERS)

obj\nogui\keystore.obj: $(HEADERS)

obj\nogui\main.obj: $(HEADERS)

obj\nogui\wallet.obj: $(HEADERS)

obj\nogui\rpc.obj: $(HEADERS)

obj\nogui\init.obj: $(HEADERS)

bitcoind.exe: $(OBJS:obj\=obj\nogui\) obj\ui.res
    link /nologo /OUT:$@ $(LIBPATHS) $** $(LIBS)

clean:
    -del /Q obj\*
    -del /Q obj\nogui\*
    -del /Q *.ilk
    -del /Q *.pdb
    -del /Q bitcoind.exe
