root = ..\..\..\..

!include $(root)\build\cxx\rules.nmake

# Build.
#
EXTRA_CPPFLAGS = /I$(root)\libxsde

!if "$(XSDE_LONGLONG)" == "n"
EXTRA_XSDFLAGS = $(EXTRA_XSDFLAGS) --no-long-long
!endif

!if "$(XSDE_VALIDATION_PARSER)" == "n"
EXTRA_XSDFLAGS = $(EXTRA_XSDFLAGS) --suppress-validation
!endif

driver.exe: driver.obj protocol-pskel.obj protocol-pimpl.obj $(root)\libxsde\xsde\xsde.lib

driver.obj: driver.cxx protocol-pimpl.hxx protocol-pskel.hxx protocol.hxx
protocol-pimpl.obj: protocol-pimpl.cxx protocol-pimpl.hxx protocol-pskel.hxx protocol.hxx
protocol-pskel.obj: protocol-pskel.cxx protocol-pskel.hxx protocol.hxx


protocol-pskel.hxx protocol-pskel.cxx: protocol.xsd protocol.map
	$(root)\bin\xsde.exe cxx-parser $(XSDFLAGS) $(EXTRA_XSDFLAGS) \
--type-map protocol.map protocol.xsd


# Test.
#
test: driver.exe balance.xml withdraw.xml deposit.xml
	.\driver balance.xml
	.\driver withdraw.xml
	.\driver deposit.xml


# Clean.
#
clean:
	-del protocol-pskel.?xx protocol-pimpl.obj protocol-pskel.obj driver.obj driver.exe

