[gdal-dev] mrsid nmake.opt

Kirk McKelvey kmckelvey at lizardtech.com
Thu Jan 13 14:58:16 EST 2011


So sorry for the delay, Tamas.  For some reason your messages were going into my spam filter.

1. Do we officially drop support for the older dsdk-s for example: Geo_DSDK-7.0.0.2167.win32-vc7 which use a different directory layout as expected by the new nmake.opt. For example the recent SDK is no available for MSVC2003 and therefore we should probably use this older version.

No - the frmts/mrsid/nmake.opt file should support older SDKs dating back to 4.0 (however the driver itself no longer builds under SDKs that old - I think it builds against 5.0 though).  It should tolerate the differences in directory layouts there have been over the years of SDK releases.

2. Am I right that all the magic in the new nmake.opt is related how to set MSRID_LIB, MRSID_INCLUDE and MRSID_FLAGS dynamically which I could also set manually by not specifying MRSID_DIR in the builds?

Yes - all the magic is to set those three macros.  You can set them explicitly in gdal/nmake.opt instead of MRSID_DIR in order to bypass the autodetect mechanism.

3. Do we have a reason to include geotiff in the mrsid makefile?

Yes - though the reason is obscure.  It is to build the mrsid driver as a plugin when linking against the MrSID SDK statically (e.g., older SDKs).  Most of the GDAL symbols referenced from the MrSID SDK are satisfied by gdal18.dll on the plugin link line, but two symbols that it needs are not exported from gdal18.dll, namely _TIFFmemcpy and __geotiff_size.  The alternative to bringing in these symbols manually from the GDAL build or configured TIFF/GeoTIFF would be to link in gdal.lib statically, but that seemed heavy-handed.  If you have any better ideas, I am open to suggestion.

1. I've found a syntax error in the line: !ELSE IF EXIST("$(R700)"), It may be due to the content of $(R700) probably.

Thanks for pointing this out.  I was overzealous in allowing spaces in the path and ended up doubling the quotes.  There are other locations that have the same issue and I will fix this.

2. Auto detection of MRSID_JP2 is not working. Need to comment out "MRSID_JP2 =  NO" at the beginning

Thanks, I will fix this as well.

3. I would also require the dll names to be detected (MRSID_DLL, LIDAR_DLL)

Yes I think this is a good addition - I am guessing it is to be able to install those DLLs?

It would also be a good thing to detect the dll versions first if MRSID_RDLLBUILD and MRSID_LDLLBUILD are not specified. This doesn't seem to work according to the spec at the beginning of nmake.opt (with a preference for the DLL if both are found)

I will double-check my logic in that section.  What specific MrSID DSDK version are you using?

Thanks for all the useful review!

Kirk.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/gdal-dev/attachments/20110113/0c7a9166/attachment.html


More information about the gdal-dev mailing list