1# Licensed under the Apache License, Version 2.0 (the "License");
2# you may not use this file except in compliance with the License.
3# You may obtain a copy of the License at
4#
5# http://www.apache.org/licenses/LICENSE-2.0
6#
7# Unless required by applicable law or agreed to in writing, software
8# distributed under the License is distributed on an "AS IS" BASIS,
9# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10# See the License for the specific language governing permissions and
11# limitations under the License.
12
13GDAL_ROOT	=	..\..
14!INCLUDE $(GDAL_ROOT)\nmake.opt
15
16OBJ	=	Packer_RLE.obj Tif_band.obj PNG_band.obj JPEG_band.obj JPNG_band.obj\
17    mrf_band.obj mrf_overview.obj mrf_util.obj marfa_dataset.obj
18
19PLUGIN_DLL =	gdal_mrf.dll
20
21# MRF Lerc support only possible for internal LercLib since it requires Lerc2.h
22!IF "$(HAVE_LERC)" == "internal"
23LERC1 = Lerc1Image.obj
24EXTRAFLAGS	= -DLERC -ILERCV1 -I../../third_party/LercLib $(EXTRAFLAGS)
25OBJ = $(LERC1) LERC_Band.obj $(OBJ)
26!ENDIF
27
28!IFDEF JPEG_EXTERNAL_LIB
29EXTRAFLAGS =	-I$(JPEGDIR) $(EXTRAFLAGS)
30!ELSE
31
32EXTRAFLAGS =	/wd4611 -I../jpeg/libjpeg $(JPEG12_FLAGS) $(EXTRAFLAGS)
33EXTRA_LINK_FLAGS =  $(EXTRA_LINK_FLAGS) ../jpeg/libjpeg/libjpeg.lib
34
35# Only consider 12bit JPEG when using internal JPEG
36!IFDEF JPEG12_SUPPORTED
37OBJ	=	$(OBJ) JPEG12_band.obj
38EXTRAFLAGS	= -DJPEG12_SUPPORTED $(EXTRAFLAGS)
39EXTRA_LINK_FLAGS =  $(EXTRA_LINK_FLAGS) ../jpeg/libjpeg12/libjpeg12.lib
40!ENDIF
41
42!ENDIF
43
44!IFDEF ZLIB_EXTERNAL_LIB
45EXTRAFLAGS = $(ZLIB_INC) $(EXTRAFLAGS)
46EXTRA_LINK_FLAGS = $(EXTRA_LINK_FLAGS) $(ZLIB_LIB)
47!ELSE
48EXTRAFLAGS = -I../zlib $(EXTRAFLAGS)
49EXTRA_LINK_FLAGS = $(EXTRA_LINK_FLAGS) ../zlib/libz.lib
50!ENDIF
51
52!IFDEF PNG_EXTERNAL_LIB
53EXTRAFLAGS = 	 -I$(PNGDIR) $(EXTRAFLAGS)
54!ELSE
55EXTRAFLAGS = 	/wd4611 -I../png/libpng -DINTERNAL_PNG $(EXTRAFLAGS)
56!ENDIF
57EXTRA_LINK_FLAGS =  $(EXTRA_LINK_FLAGS) ../png/libpng/libpng.lib
58
59default:	$(OBJ)
60	xcopy /D  /Y *.obj ..\o
61
62$(OBJ): marfa.h
63
64!IFDEF LERC1
65$(LERC1):
66	cd LERCV1
67	nmake /f makefile.vc
68	cd ..
69!ENDIF
70
71clean:
72	-del *.obj
73	-del *.dll
74	-del *.exp
75	-del *.lib
76	-del *.manifest
77	-del *.exe
78!IFDEF LERC1
79	cd LERCV1
80	nmake /f makefile.vc clean
81	cd ..
82!ENDIF
83
84#
85# Building the MRF as a windows plugin works only then the internal jpeg and png are used
86# It also requires these custom steps:
87#
88# - building static libraries:
89#	../jpeg/jpeglib/libjpeg.lib
90#	Optional ../jpeg/jpeglib12/libjpeg12.lib
91#	../zlib/libz.lib
92#	../png/libpng/libpng.lib
93#
94# - exporting the GDALRegenerateOverviewsMultiBand by marking it CPL_DLL in gdal_priv.h
95#
96#
97
98plugin:	$(PLUGIN_DLL)
99
100$(PLUGIN_DLL): $(OBJ)
101	link /dll $(LDEBUG) /out:$(PLUGIN_DLL) $(OBJ) $(GDALLIB) $(EXTRA_LINK_FLAGS)
102	if exist $(PLUGIN_DLL).manifest mt -manifest $(PLUGIN_DLL).manifest -outputresource:$(PLUGIN_DLL);2
103
104plugin-install:
105	-mkdir $(PLUGINDIR)
106	$(INSTALL) $(PLUGIN_DLL) $(PLUGINDIR)
107