1include ../../GDALmake.opt 2include java.opt 3CFLAGS += -DSWIG_NOARRAYS # use for Swig 2.0.4 and earlier 4 5all: build 6 7BINDING = java 8include ../SWIGmake.base 9 10SHORT_NAME = $(subst _wrap,,$*) 11SWIGARGS += -outdir "org/gdal/$(SHORT_NAME)" -package "org.gdal.$(SHORT_NAME)" 12 13# Run "make ANDROID=yes" for Android JNI 14ifeq ($(ANDROID),yes) 15SWIGARGS += -DSWIGANDROID 16endif 17 18EXTRA_DIST = org 19 20LINK = $(LD_SHARED) 21LINK_EXTRAFLAGS = 22OBJ_EXT = o 23ifeq ($(HAVE_LIBTOOL),yes) 24LINK = $(LD) 25LINK_EXTRAFLAGS = -rpath $(INST_LIB) -no-undefined -version-info $(LIBGDAL_CURRENT):$(LIBGDAL_REVISION):$(LIBGDAL_AGE) 26OBJ_EXT = lo 27endif 28 29makedir: 30 mkdir -p org/gdal/gdal 31 mkdir -p org/gdal/gdalconst 32 mkdir -p org/gdal/ogr 33 mkdir -p org/gdal/osr 34 mkdir -p org/gdal/gnm 35 36JAVA_MODULES = libgdalalljni.$(SO_EXT) 37JAVA_OBJECTS = gdalconst_wrap.$(OBJ_EXT) gdal_wrap.$(OBJ_EXT) osr_wrap.$(OBJ_EXT) ogr_wrap.$(OBJ_EXT) gnm_wrap.$(OBJ_EXT) 38 39clean: 40 -rm -f ${JAVA_MODULES} 41 -rm -f *.$(OBJ_EXT) 42 -rm -f .libs/*.so 43 -rm -f .libs/*.dylib 44 -rm -f *.so 45 -rm -f *.dylib 46 47 ant clean 48 49veryclean: clean 50 -rm -f ${WRAPPERS} 51 -rm -rf ${EXTRA_DIST}/* 52 53generate: makedir ${WRAPPERS} 54 55build: generate ${JAVA_OBJECTS} ${JAVA_MODULES} 56ifeq ($(HAVE_LIBTOOL),yes) 57 58 if [ -f ".libs/libgdalalljni.so" ] ; then \ 59 cp .libs/*.so . ; \ 60 fi 61 62 echo "$(wildcard .libs/*.dylib)" 63 64 if [ -f ".libs/libgdalalljni.dylib" ] ; then \ 65 cp .libs/*.dylib . ; \ 66 fi 67 68endif # HAVE_LIBTOOL=yes 69 ant 70 71install: build 72 if [ -f "libgdalalljni.so" ] ; then \ 73 for f in *.so; do $(INSTALL_LIB) $$f $(DESTDIR)$(INST_LIB) ; done ; \ 74 fi 75 76 if [ -f "libgdalalljni.dylib" ] ; then \ 77 for f in *.dylib; do $(INSTALL_LIB) $$f $(DESTDIR)$(INST_LIB) ; done ; \ 78 fi 79 80 ant maven ; \ 81 mkdir -p $(DESTDIR)${datarootdir}/java ; \ 82 echo $(DESTDIR)${datarootdir}/java ; \ 83 cp build/maven/* $(DESTDIR)${datarootdir}/java ; \ 84 85 86JAVA_RUN = java -Djava.library.path=. -cp gdal.jar:build/apps 87 88test: 89 -rm -rf tmp_test 90 mkdir tmp_test 91 cp test_data/byte.tif tmp_test 92 ${JAVA_RUN} GDALOverviews tmp_test/byte.tif "NEAREST" 2 4 93 ${JAVA_RUN} gdalinfo -checksum tmp_test/byte.tif 94 ${JAVA_RUN} ogr2ogr tmp_test/out.shp test_data/poly.shp -progress -overwrite 95 ${JAVA_RUN} ogrinfo -ro -al tmp_test/out.shp 96 ${JAVA_RUN} ogrinfo -ro -al tmp_test/out.shp -fid 1 97 ${JAVA_RUN} ogr2ogr_new tmp_test/out2.shp test_data/poly.shp -progress -overwrite 98 ${JAVA_RUN} ogr2ogr_new tmp_test/out2.shp test_data/poly.shp -append 99 ${JAVA_RUN} ogrinfo -ro -al tmp_test/out2.shp 100 ${JAVA_RUN} OSRTransform 101 ${JAVA_RUN} gdalmajorobject 102 ${JAVA_RUN} GDALTestIO 103 ${JAVA_RUN} GDALContour -i 1 tmp_test/byte.tif tmp_test/contour.shp 104 ${JAVA_RUN} testgetpoints 105 ${JAVA_RUN} ogrtindex tmp_test/contour_index.shp tmp_test/contour.shp 106 ${JAVA_RUN} OSRTest 107 108ifdef INCLUDE_GDAL_LIB 109 LIB_GDAL=$(GDAL_LIB) 110endif 111 112$(JAVA_MODULES): $(JAVA_OBJECTS) 113 $(LINK) $(LDFLAGS) $^ $(LIB_GDAL) $(CONFIG_LIBS) -o $@ $(LINK_EXTRAFLAGS) 114 115# Do not remove -fno-strict-aliasing while SWIG generates weird code in upcast methods 116# See http://trac.osgeo.org/gdal/changeset/16006 117%.$(OBJ_EXT): %.cpp 118 $(CXX) -fno-strict-aliasing $(GDAL_INCLUDE) $(CFLAGS) $(CPPFLAGS) $(JAVA_INCLUDE) -c $< 119 120%.$(OBJ_EXT): %.cxx 121 $(CXX) -fno-strict-aliasing $(GDAL_INCLUDE) $(CFLAGS) $(CPPFLAGS) $(JAVA_INCLUDE) -c $< 122 123%.$(OBJ_EXT): %.c 124 $(CC) -fno-strict-aliasing $(GDAL_INCLUDE) $(CFLAGS) $(CPPFLAGS) $(JAVA_INCLUDE) -c $< 125 126.PHONY: all makedir clean veryclean generate build install test 127