1
2include ../../GDALmake.opt
3include csharp.opt
4
5all: build
6
7BINDING = csharp
8include ../SWIGmake.base
9
10SWIGARGS = -DSWIG2_CSHARP -Wall -I../include -I../include/$(BINDING)
11
12LINK = $(LD_SHARED)
13LINK_EXTRAFLAGS =
14OBJ_EXT = o
15ifeq ($(HAVE_LIBTOOL),yes)
16LINK = $(LD)
17LINK_EXTRAFLAGS = -rpath $(INST_LIB) -no-undefined -version-info $(LIBGDAL_CURRENT):$(LIBGDAL_REVISION):$(LIBGDAL_AGE)
18OBJ_EXT = lo
19endif
20
21SUPPRESSW = -Wno-missing-prototypes -Wno-missing-declarations -Wno-deprecated-declarations -Wno-unused-parameter -Wno-unused-function
22
23CSHARP_MODULES = libgdalcsharp.$(SO_EXT) libogrcsharp.$(SO_EXT) libgdalconstcsharp.$(SO_EXT) libosrcsharp.$(SO_EXT)
24CSHARP_OBJECTS = gdalconst_wrap.$(OBJ_EXT) gdal_wrap.$(OBJ_EXT) osr_wrap.$(OBJ_EXT) ogr_wrap.$(OBJ_EXT)
25
26CSC = mcs
27
28SWIG_GDAL_WRAP = -namespace OSGeo.GDAL -dllimport gdal_wrap -outdir gdal
29SWIG_GDALCONST_WRAP = -namespace OSGeo.GDAL -dllimport gdalconst_wrap -outdir const
30SWIG_OGR_WRAP = -namespace OSGeo.OGR -dllimport ogr_wrap -outdir ogr
31SWIG_OSR_WRAP = -namespace OSGeo.OSR -dllimport osr_wrap -outdir osr
32
33clean:
34	-rm -f ${CSHARP_MODULES} *.$(OBJ_EXT) *.config *.dll *.mdb *.exe *.config
35
36veryclean: clean
37	-rm -f -R const/*.cs gdal/*.cs osr/*.cs ogr/*.cs *.c *.cpp Data
38
39build: ${CSHARP_OBJECTS} samples
40
41sign:
42	sn -k gdal.snk
43
44install:
45	@echo "No installation to be done"
46
47generate: ${WRAPPERS}
48
49$(CSHARP_MODULES): lib%csharp.$(SO_EXT): %_wrap.$(OBJ_EXT)
50	$(LINK) $(LDFLAGS) $(CONFIG_LIBS) $< -o $@ $(GDAL_SLIB_LINK) $(LINK_EXTRAFLAGS)
51	rm -rf $*_csharp.dll.config
52	echo "<configuration>" >> $*_csharp.dll.config
53	echo "<dllmap dll=\""$*"_wrap\" target=\""$*csharp"\" />" >> $*_csharp.dll.config
54	echo "</configuration>" >> $*_csharp.dll.config
55
56%.$(OBJ_EXT): %.cpp
57	$(CXX) $(CFLAGS) $(SUPPRESSW) $(GDAL_INCLUDE) -c $<
58
59%.$(OBJ_EXT): %.c
60	$(CC) $(CFLAGS) $(SUPPRESSW) $(GDAL_INCLUDE) -c $<
61
62osr_csharp.dll: libosrcsharp.$(SO_EXT)
63	$(CSC) /unsafe /debug:full /target:library /out:osr_csharp.dll osr/*.cs AssemblyInfo.cs
64
65ogr_csharp.dll: libogrcsharp.$(SO_EXT) osr_csharp.dll
66	$(CSC) /unsafe /debug:full /target:library /out:ogr_csharp.dll /r:osr_csharp.dll ogr/*.cs AssemblyInfo.cs
67
68gdal_csharp.dll: libgdalcsharp.$(SO_EXT) ogr_csharp.dll
69	$(CSC) /unsafe /debug:full /target:library /out:gdal_csharp.dll /r:ogr_csharp.dll /r:osr_csharp.dll gdal/*.cs AssemblyInfo.cs
70
71gdalconst_csharp.dll: libgdalconstcsharp.$(SO_EXT)
72	$(CSC) /unsafe /debug:full /target:library /out:gdalconst_csharp.dll const/*.cs AssemblyInfo.cs
73
74samples: gdalconst_csharp.dll gdal_csharp.dll ogr_csharp.dll osr_csharp.dll
75	$(CSC) /r:ogr_csharp.dll /r:osr_csharp.dll /out:ogrinfo.exe apps/ogrinfo.cs
76	$(CSC) /r:ogr_csharp.dll /r:osr_csharp.dll /out:createdata.exe apps/createdata.cs
77	$(CSC) /r:osr_csharp.dll /out:OSRTransform.exe apps/OSRTransform.cs
78	$(CSC) /r:gdal_csharp.dll /r:System.Drawing.dll /out:GDALRead.exe apps/GDALRead.cs
79	$(CSC) /r:gdal_csharp.dll /r:System.Drawing.dll /out:GDALReadDirect.exe apps/GDALReadDirect.cs
80	$(CSC) /r:gdal_csharp.dll /r:System.Drawing.dll /out:GDALAdjustContrast.exe apps/GDALAdjustContrast.cs
81	$(CSC) /r:gdal_csharp.dll /r:System.Drawing.dll /out:GDALDatasetRasterIO.exe apps/GDALDatasetRasterIO.cs
82	$(CSC) /r:gdal_csharp.dll /out:GDALWrite.exe apps/GDALWrite.cs
83	$(CSC) /r:gdal_csharp.dll /out:GDALDatasetWrite.exe apps/GDALDatasetWrite.cs
84	$(CSC) /r:gdal_csharp.dll /out:GDALColorTable.exe apps/GDALColorTable.cs
85	$(CSC) /r:ogr_csharp.dll /out:WKT2WKB.exe apps/WKT2WKB.cs
86	$(CSC) /r:ogr_csharp.dll /out:OGRGEOS.exe apps/OGRGEOS.cs
87	$(CSC) /r:gdal_csharp.dll /out:ReadXML.exe apps/ReadXML.cs
88	$(CSC) /r:gdal_csharp.dll /r:osr_csharp.dll /out:GDALInfo.exe apps/GDALInfo.cs
89	$(CSC) /r:gdal_csharp.dll /out:GDALOverviews.exe apps/GDALOverviews.cs
90	$(CSC) /r:gdal_csharp.dll /out:GDALCreateCopy.exe apps/GDALCreateCopy.cs
91	$(CSC) /r:gdal_csharp.dll /out:GDALGetHistogram.exe apps/GDALGetHistogram.cs
92
93vagrant_safe_test:
94	LC_ALL=C mono createdata.exe Data pointlayer
95	LC_ALL=C mono ogrinfo.exe Data/pointlayer.shp
96	LC_ALL=C mono GDALWrite.exe Data/sample.tif
97	LC_ALL=C mono GDALDatasetWrite.exe Data/sample1.tif
98	LC_ALL=C mono GDALCreateCopy.exe Data/sample.tif Data/sample2.tif
99	LC_ALL=C mono GDALOverviews.exe Data/sample.tif NEAREST 2 4
100	LC_ALL=C mono GDALInfo.exe Data/sample.tif
101
102test: vagrant_safe_test
103	LC_ALL=C mono OSRTransform.exe
104
105.PHONY: all clean veryclean generate interface build sign install gdal_csharp samples vagrant_safe_test test
106