GDAL_ROOT	=	..\..

!INCLUDE $(GDAL_ROOT)\nmake.opt

!IFDEF DLLBUILD
GDALLIB	=    $(GDAL_ROOT)\gdal_i.lib
!ELSE
GDALLIB	=    $(GDAL_ROOT)\gdal.lib
!ENDIF

JAVA_RUN = $(JAVA) -Djava.library.path=. -cp gdal.jar;build\apps

OBJ	=	gdal_wrap.obj gdalconst_wrap.obj ogr_wrap.obj osr_wrap.obj

all:  ogr_dir gdal_dir const_dir osr_dir
	set JAVA_HOME="$(JAVA_HOME)"
	$(ANT_HOME)\bin\ant

    
ogr_dir:
	cd ogr
	$(MAKE) /f makefile.vc
	cd ..
	link ogr_wrap.obj $(GDALLIB) /out:ogrjni.dll /DLL
	if exist ogrjni.dll.manifest mt -manifest ogrjni.dll.manifest -outputresource:ogrjni.dll;2

gdal_dir:
	cd gdal
	$(MAKE) /f makefile.vc
	cd ..
	link gdal_wrap.obj $(GDALLIB) /out:gdaljni.dll /DLL
	if exist gdaljni.dll.manifest mt -manifest gdaljni.dll.manifest -outputresource:gdaljni.dll;2

const_dir:
	cd const
	$(MAKE) /f makefile.vc
	cd ..
	link gdalconst_wrap.obj $(GDALLIB) /out:gdalconstjni.dll /DLL
	if exist gdalconstjni.dll.manifest mt -manifest gdalconstjni.dll.manifest -outputresource:gdalconstjni.dll;2

osr_dir:
	cd osr
	$(MAKE) /f makefile.vc
	cd ..
	link osr_wrap.obj $(GDALLIB) /out:osrjni.dll /DLL
	if exist osrjni.dll.manifest mt -manifest osrjni.dll.manifest -outputresource:osrjni.dll;2

test:
	if exist tmp_test rmdir /s /q tmp_test
	mkdir tmp_test
	copy  test_data\byte.tif tmp_test
	$(JAVA_RUN) GDALOverviews tmp_test/byte.tif "NEAREST" 2 4
	$(JAVA_RUN) gdalinfo -checksum tmp_test/byte.tif
	$(JAVA_RUN) ogr2ogr tmp_test/out.shp test_data/poly.shp -progress -overwrite
	$(JAVA_RUN) ogrinfo -ro -al tmp_test/out.shp
	$(JAVA_RUN) OSRTransform
	$(JAVA_RUN) gdalmajorobject
	$(JAVA_RUN) GDALTestIO
	$(JAVA_RUN) GDALContour -i 1 tmp_test/byte.tif tmp_test/contour.shp

clean:
	if exist org\nul rmdir /s /q org
	if exist build rmdir /s /q build
	cd gdal
	$(MAKE) /f makefile.vc clean
	cd ..
	cd ogr
	$(MAKE) /f makefile.vc clean
	cd ..
	cd const
	$(MAKE) /f makefile.vc clean
	cd ..
	cd osr
	$(MAKE) /f makefile.vc clean
	cd ..	
	-del gdal.jar
	-del *.dll
	-del *.obj
	-del *.exp
	-del *.ilk
	-del *.pdb
	-del *.tlb
	-del *.snk
	-del *.cs
	-del *.cpp
	-del *.lib
	-del *.dll.manifest
