#***************************************************************** # # MAKEFILE # $Id: Makefile,v 1.0 2004/11/15 Nacho Brodin # # Project: Wrapper c-java para la libreria gdal # Purpose: Integración de la libreria gdal en c++ de Frank Warmerdam # en el proyecto gvSIG # Author: Ignacio Brodin brodin@telefonica.net # #***************************************************************** #Compiladores y aplicaciones JAVAC = javac JAVAH = javah JAR = jar -cvf CXX = g++ GCC = gcc RM = rm -f RRM = rm -rf #Librerias NOM_LIB = jgdal GDAL_LIB = gdal VERS = 0.4.0 #Directorios INCLUDE = ./include FUENTES = ./src DEST_OBJS = ./bin DISTRIBUCION = ./dist RUTA_PAQUETE_WRGDAL = es/gva/cit/jgdal RUTA_PAQUETE_WRBSB = es/gva/cit/jbsb RUTA_PAQUETE_WROGR = es/gva/cit/jogr RUTA_PAQUETE = es/gva/cit DSTNO_LIB = "/lib" #modificado HM LIB = lib$(NOM_LIB).jnilib IDL_JAVA_GDAL = $(RUTA_PAQUETE_WRGDAL)/Gdal.java DIR_TEST = ./src-test #Opciones #modificado HM: a–adido segundo -I y no-common FLAGS = -Wall -I./include -I/System/Library/Frameworks/JavaVM.framework/Headers -fno-common #HM:no se usa INSTALL = install_lin OBJS = gdal_interfaz.o rasterband_interfaz.o bsb_interfaz.o gdaldriver_interfaz.o ogrspatialreference_interfaz.o \ ogrregisterall_interfaz.o ogrdatasource_interfaz.o ogrenvelope_interfaz.o ogrfeature_interfaz.o ogrfeaturedefn_interfaz.o \ ogrfielddefn_interfaz.o ogrlayer_interfaz.o ogrsfdriver_interfaz.o ogrsfdriverregistrar_interfaz.o ogrtools_interfaz.o \ ogrpolygon_interfaz.o #modificado HM #LIB_DIR=-L../binaries/linux/raster/gdal -L../binaries/linux/raster/ecw #supone GDAL instalado con DarwinPorts ("sudo port install gdal") #LIB_DIR=-L/opt/local/lib LIB_DIR=-L/usr/local/lib #modificado HM #OPC_LINK = $(LIB_DIR) -g -shared -Wl,-soname, #OS X no tiene soname ni shared. Aparte, pide en linker -dynamiclib -framework JavaVM OPC_LINK = $(LIB_DIR) -dynamiclib -g -framework JavaVM -L/Users/mija/gdal-1.3.2/.libs CMS_PROJ=../libCq\ CMS\ for\ java/lib FICHERO_JAR_GDAL = $(NOM_LIB)-$(VERS).jar FICHERO_JAR_BSB = jbsb.jar PAQUETE_GDAL = es.gva.cit.jgdal FTE_HEADER_GDAL = $(PAQUETE_GDAL).Gdal PAQUETE_BSB = es.gva.cit.jbsb FICHERO_JAR_OGR = jogr.jar PAQUETE_OGR = es.gva.cit.jogr all: java header jar $(OBJS) $(LIB) #test all2HM: $(OBJS) $(LIB) #******************************************************************************* $(LIB): $(OBJS) #Generación de libreria jgdal #modificado HM #$(CXX) $(OPC_LINK)$(LIB) -o $(LIB).$(VERS) $(OBJS) -lc $(FLAGS) -lgdal #en OS X, lo normal es tener libNAME.x.y.z.dylib, libNAME.x.dylib, libNAME.dylib #uno de ellos es el real y los demas son symlinks #los jnilib son en realidad dylib #crea el jnilib sin num. de version para simplificar $(CXX) $(OPC_LINK) -o $(LIB) $(OBJS) -lc $(FLAGS) -lgdal if test -f ./$(LIB); then \ cp ./$(LIB) ../binaries/mac; \ mkdir -p $(DISTRIBUCION); \ mv ./$(LIB) $(DISTRIBUCION); \ fi; if test -d $(CMS_PROJ); then \ cp $(DISTRIBUCION)/$(FICHERO_JAR_GDAL) $(CMS_PROJ); \ cp $(DISTRIBUCION)/$(FICHERO_JAR_BSB) $(CMS_PROJ); \ cp $(DISTRIBUCION)/$(FICHERO_JAR_OGR) $(CMS_PROJ); \ fi; gdal_interfaz.o: $(GCC) -c $(FUENTES)/gdal_interfaz.c $(FLAGS) rasterband_interfaz.o: $(GCC) -c $(FUENTES)/rasterband_interfaz.c $(FLAGS) gdaldriver_interfaz.o: $(GCC) -c $(FUENTES)/gdaldriver_interfaz.c $(FLAGS) ogrspatialreference_interfaz.o: $(GCC) -c $(FUENTES)/ogrspatialreference_interfaz.c $(FLAGS) ogrregisterall_interfaz.o: $(CXX) -c $(FUENTES)/ogrregisterall_interfaz.cpp $(FLAGS) bsb_interfaz.o: $(GCC) -c $(FUENTES)/bsb_interfaz.c $(FLAGS) ogrdatasource_interfaz.o: $(GCC) -c $(FUENTES)/ogrdatasource_interfaz.cpp $(FLAGS) ogrenvelope_interfaz.o: $(CXX) -c $(FUENTES)/ogrenvelope_interfaz.cpp $(FLAGS) ogrfeature_interfaz.o: $(CXX) -c $(FUENTES)/ogrfeature_interfaz.cpp $(FLAGS) ogrfeaturedefn_interfaz.o: $(CXX) -c $(FUENTES)/ogrfeaturedefn_interfaz.cpp $(FLAGS) ogrfielddefn_interfaz.o: $(CXX) -c $(FUENTES)/ogrfielddefn_interfaz.cpp $(FLAGS) ogrlayer_interfaz.o: $(CXX) -c $(FUENTES)/ogrlayer_interfaz.cpp $(FLAGS) ogrsfdriver_interfaz.o: $(CXX) -c $(FUENTES)/ogrsfdriver_interfaz.cpp $(FLAGS) ogrsfdriverregistrar_interfaz.o: $(CXX) -c $(FUENTES)/ogrsfdriverregistrar_interfaz.cpp $(FLAGS) ogrtools_interfaz.o: $(CXX) -c $(FUENTES)/ogrtools_interfaz.cpp $(FLAGS) ogrpolygon_interfaz.o: $(CXX) -c $(FUENTES)/ogrpolygon_interfaz.cpp $(FLAGS) #******************************************************************************* jar: #Generación del jar con las clases java $(JAR) $(DISTRIBUCION)/$(FICHERO_JAR_GDAL) -C $(DEST_OBJS)/ $(RUTA_PAQUETE_WRGDAL) $(JAR) $(DISTRIBUCION)/$(FICHERO_JAR_BSB) -C $(DEST_OBJS)/ $(RUTA_PAQUETE_WRBSB) $(JAR) $(DISTRIBUCION)/$(FICHERO_JAR_OGR) -C $(DEST_OBJS)/ $(RUTA_PAQUETE_WROGR) #******************************************************************************* install: #instalamos la libreria gdal @if test -f $(DIR_LIB)/$(LIB); then \ $(RM) $(DIR_LIB)/$(LIB); \ fi; @if test -f $(DIR_LIB)/$(LIB).$(VERS); then \ $(RM) $(DIR_LIB)/$(LIB).$(VERS); \ fi; cp $(DISTRIBUCION)/$(LIB).$(VERS) $(DSTNO_LIB) ln -fs $(DSTNO_LIB)/$(LIB).$(VERS) $(DSTNO_LIB)/$(LIB) #******************************************************************************* header: #Generación de cabeceras C para el wrapper $(JAVAH) -classpath "$(DEST_OBJS)" -d $(INCLUDE) $(FTE_HEADER_GDAL) $(JAVAH) -classpath "$(DEST_OBJS)" -d $(INCLUDE) $(PAQUETE_GDAL).GdalRasterBand \ $(PAQUETE_GDAL).GdalDriver $(PAQUETE_GDAL).JNIBase $(PAQUETE_BSB).Bsb $(JAVAH) -classpath "$(DEST_OBJS)" -d $(INCLUDE) $(PAQUETE_OGR).OGRRegisterAll $(PAQUETE_OGR).OGRDataSource \ $(PAQUETE_OGR).OGREnvelope $(PAQUETE_OGR).OGRFeature $(PAQUETE_OGR).OGRFeatureDefn $(PAQUETE_OGR).OGRLayer \ $(PAQUETE_OGR).OGRSFDriver $(PAQUETE_OGR).OGRSFDriverRegistrar $(PAQUETE_OGR).OGRFieldDefn $(PAQUETE_OGR).JNIBase \ $(PAQUETE_OGR).OGRSpatialReference $(PAQUETE_OGR).OGRTools $(PAQUETE_OGR).OGRPolygon java: #Compilación de los ficheros java gdal $(JAVAC) $(FUENTES)/$(RUTA_PAQUETE_WRGDAL)/GdalBuffer.java -d $(DEST_OBJS) $(JAVAC) $(FUENTES)/$(RUTA_PAQUETE_WRGDAL)/GdalException.java -d $(DEST_OBJS) $(JAVAC) $(FUENTES)/$(RUTA_PAQUETE_WRGDAL)/GdalDriver.java $(FUENTES)/$(RUTA_PAQUETE_WRGDAL)/JNIBase.java $(FUENTES)/$(RUTA_PAQUETE_WRGDAL)/Gdal.java $(FUENTES)/$(RUTA_PAQUETE_WRGDAL)/GdalColorEntry.java $(FUENTES)/$(RUTA_PAQUETE_WRGDAL)/GdalColorTable.java $(FUENTES)/$(RUTA_PAQUETE_WRGDAL)/GeoTransform.java $(FUENTES)/$(RUTA_PAQUETE_WRGDAL)/GdalRasterBand.java -d $(DEST_OBJS) $(FUENTES)/$(RUTA_PAQUETE_WRGDAL)/Options.java -classpath "$(DEST_OBJS)" $(JAVAC) $(FUENTES)/$(RUTA_PAQUETE_WRGDAL)/GdalTools.java $(FUENTES)/$(RUTA_PAQUETE_WRGDAL)/JNIBase.java -d $(DEST_OBJS) -classpath "$(DEST_OBJS)" #Compilación de OGR $(JAVAC) $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRException.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRFailureException.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRNotEnoughDataException.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRNotEnoughMemoryException.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRUnsupportedGeometryTypeException.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRUnsupportedOperationException.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRUnsupportedSRSException.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRCorruptDataException.java -d $(DEST_OBJS) -classpath "$(DEST_OBJS)" $(JAVAC) $(FUENTES)/$(RUTA_PAQUETE_WROGR)/JNIBase.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRCoordinateTransformation.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRLayerAttrIndex.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRField.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRGeometry.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRStyleTable.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRFieldType.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRRegisterAll.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRSpatialReference.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRDataSource.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGREnvelope.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRFeature.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRFeatureDefn.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRFieldDefn.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRLayer.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRSFDriver.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRSFDriverRegistrar.java -d $(DEST_OBJS) -classpath "$(DEST_OBJS)" $(JAVAC) $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRTools.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRSurface.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRPoint.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRPolygon.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRGeometryFactory.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRMultiPoint.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRLineString.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRMultiPolygon.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRMultiLineString.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRLinearRing.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRGeometryCollection.java $(FUENTES)/$(RUTA_PAQUETE_WROGR)/OGRCurve.java -d $(DEST_OBJS) -classpath "$(DEST_OBJS)" #Compilación de los ficheros java bsb $(JAVAC) $(FUENTES)/$(RUTA_PAQUETE_WRBSB)/BsbInfo.java -d $(DEST_OBJS) $(JAVAC) $(FUENTES)/$(RUTA_PAQUETE_WRBSB)/BsbException.java -d $(DEST_OBJS) $(JAVAC) $(FUENTES)/$(RUTA_PAQUETE_WRBSB)/BsbBuffer.java -d $(DEST_OBJS) $(JAVAC) $(FUENTES)/$(RUTA_PAQUETE_WRBSB)/Bsb.java -d $(DEST_OBJS) -classpath "$(DEST_OBJS)" #******************************************************************************* test: cd $(DIR_TEST); \ $(MAKE) all; \ cd ..; #******************************************************************************* .PHONY: clean clean: #Borrando objetos y librerias $(RM) $(OBJS) $(RM) $(DISTRIBUCION)/$(LIB).$(VERS); $(RM) $(DISTRIBUCION)/$(FICHERO_JAR_GDAL); $(RM) $(DISTRIBUCION)/$(FICHERO_JAR_BSB); $(RM) $(DISTRIBUCION)/$(FICHERO_JAR_OGR); $(RM) $(DISTRIBUCION)/$(FICHERO_JAR_OGR); $(RRM) $(DEST_OBJS)/*;