hi,

This week I ran into an issue building OTB against a gdal with internal
libtiff and libgeotiff. After spending a bit of time trying to figure
out why i had a problem I thought it might be useful if gdal-config
could report on internal libs and if they are hidden.

What came up with is a gdal-config switch for each lib that has an
internal option that will return "external" if gdal used the external
lib. "internal", or "hidden" if it uses the internal lib and gdal was
configured with --with-hide-internal-symbols=yes

Attached is a diff. Does anyone have any opinions on this or alternate
ideas?

Brian


Index: /home/rush/Projects/gdal-trunk/apps/gdal-config.in
===================================================================
--- /home/rush/Projects/gdal-trunk/apps/gdal-config.in	(revision 22359)
+++ /home/rush/Projects/gdal-trunk/apps/gdal-config.in	(working copy)
@@ -11,6 +11,14 @@
 	[--version]
 	[--ogr-enabled]
 	[--formats]
+	[--libz-setting]
+	[--pcraster-setting]
+	[--png-setting]
+	[--pcidsk-setting]
+	[--tiff-setting]
+	[--geotiff-setting]
+	[--jpeg-setting]
+	[--gif-setting]
 EOF
 	exit $1
 }
@@ -52,6 +60,84 @@
     echo $CONFIG_FORMATS
     ;;
 
+  --libz-setting)
+    if test "$CONFIG_HIDE_INTERNAL_SYMBOLS" = "yes" && test "$CONFIG_LIBZ_SETTING" = "internal"
+    then
+        echo "hidden"
+    else
+        echo "$CONFIG_LIBZ_SETTING"
+    fi
+
+    ;;
+
+  --pcraster-setting)
+    if test "$CONFIG_HIDE_INTERNAL_SYMBOLS" = "yes" && test "$CONFIG_PCRASTER_SETTING" = "internal"
+    then
+        echo "hidden"
+    else
+        echo "$CONFIG_PCRASTER_SETTING"
+    fi
+
+    ;;
+
+  --png-setting)
+    if test "$CONFIG_HIDE_INTERNAL_SYMBOLS" = "yes" && test "$CONFIG_PNG_SETTING" = "internal"
+    then
+        echo "hidden"
+    else
+        echo "$CONFIG_PNG_SETTING"
+    fi
+
+    ;;
+
+  --pcidsk-setting)
+    if test "$CONFIG_HIDE_INTERNAL_SYMBOLS" = "yes" && test "$CONFIG_PCIDSK_SETTING" = "internal"
+    then
+        echo "hidden"
+    else
+        echo "$CONFIG_PCIDSK_SETTING"
+    fi
+
+    ;;
+
+  --tiff-setting)
+    if test "$CONFIG_HIDE_INTERNAL_SYMBOLS" = "yes" && test "$CONFIG_TIFF_SETTING" = "internal"
+    then
+        echo "hidden"
+    else
+        echo "$CONFIG_TIFF_SETTING"
+    fi
+
+    ;;
+
+  --geotiff-setting)
+    if test "$CONFIG_HIDE_INTERNAL_SYMBOLS" = "yes" && test "$CONFIG_GEOTIFF_SETTING" = "internal"
+    then
+        echo "hidden"
+    else
+        echo "$CONFIG_GEOTIFF_SETTING"
+    fi
+
+    ;;
+
+  --jpeg-setting)
+    if test "$CONFIG_HIDE_INTERNAL_SYMBOLS" = "yes" && test "$CONFIG_JPEG_SETTING" = "internal"
+    then
+        echo "hidden"
+    else
+        echo "$CONFIG_JPEG_SETTING"
+    fi
+
+    ;;
+
+  --gif-setting)
+    if test "$CONFIG_HIDE_INTERNAL_SYMBOLS" = "yes" && test "$CONFIG_GIF_SETTING" = "internal"
+    then
+        echo "hidden"
+    else
+        echo "$CONFIG_GIF_SETTING"
+    fi
+    ;;
   *)
     usage 1 1>&2
     ;;
Index: /home/rush/Projects/gdal-trunk/apps/GNUmakefile
===================================================================
--- /home/rush/Projects/gdal-trunk/apps/GNUmakefile	(revision 22359)
+++ /home/rush/Projects/gdal-trunk/apps/GNUmakefile	(working copy)
@@ -138,6 +138,15 @@
 	echo 'CONFIG_VERSION="'`cat ../VERSION`'"' >> gdal-config
 	echo 'CONFIG_OGR_ENABLED=$(OGR_ENABLED)' >> gdal-config
 	echo 'CONFIG_FORMATS="$(GDAL_FORMATS)"' >> gdal-config
+	echo 'CONFIG_LIBZ_SETTING="$(LIBZ_SETTING)"' >> gdal-config
+	echo 'CONFIG_PCRASTER_SETTING="$(PCRASTER_SETTING)"' >> gdal-config
+	echo 'CONFIG_PNG_SETTING="$(PNG_SETTING)"' >> gdal-config
+	echo 'CONFIG_PCIDSK_SETTING="$(PCIDSK_SETTING)"' >> gdal-config
+	echo 'CONFIG_TIFF_SETTING="$(TIFF_SETTING)"' >> gdal-config
+	echo 'CONFIG_GEOTIFF_SETTING="$(GEOTIFF_SETTING)"' >> gdal-config
+	echo 'CONFIG_JPEG_SETTING="$(JPEG_SETTING)"' >> gdal-config
+	echo 'CONFIG_GIF_SETTING="$(GIF_SETTING)"' >> gdal-config
+	echo 'CONFIG_HIDE_INTERNAL_SYMBOLS="$(HAVE_HIDE_INTERNAL_SYMBOLS)"' >> gdal-config
 	cat gdal-config.in >> gdal-config
 	chmod a+x gdal-config
 
@@ -152,6 +161,15 @@
 	echo 'CONFIG_VERSION="'`cat ../VERSION`'"' >> gdal-config-inst
 	echo 'CONFIG_OGR_ENABLED=$(OGR_ENABLED)' >> gdal-config-inst
 	echo 'CONFIG_FORMATS="$(GDAL_FORMATS)"' >> gdal-config-inst
+	echo 'CONFIG_LIBZ_SETTING="$(LIBZ_SETTING)"' >> gdal-config-inst
+	echo 'CONFIG_PCRASTER_SETTING="$(PCRASTER_SETTING)"' >> gdal-config-inst
+	echo 'CONFIG_PNG_SETTING="$(PNG_SETTING)"' >> gdal-config-inst
+	echo 'CONFIG_PCIDSK_SETTING="$(PCIDSK_SETTING)"' >> gdal-config-inst
+	echo 'CONFIG_TIFF_SETTING="$(TIFF_SETTING)"' >> gdal-config-inst
+	echo 'CONFIG_GEOTIFF_SETTING="$(GEOTIFF_SETTING)"' >> gdal-config-inst
+	echo 'CONFIG_JPEG_SETTING="$(JPEG_SETTING)"' >> gdal-config-inst
+	echo 'CONFIG_GIF_SETTING="$(GIF_SETTING)"' >> gdal-config-inst
+	echo 'CONFIG_HIDE_INTERNAL_SYMBOLS="$(HAVE_HIDE_INTERNAL_SYMBOLS)"' >> gdal-config-inst
 	cat gdal-config.in >> gdal-config-inst
 	chmod a+x gdal-config-inst
 
Index: /home/rush/Projects/gdal-trunk/GDALmake.opt.in
===================================================================
--- /home/rush/Projects/gdal-trunk/GDALmake.opt.in	(revision 22359)
+++ /home/rush/Projects/gdal-trunk/GDALmake.opt.in	(working copy)
@@ -55,6 +55,7 @@
 
 HAVE_OGDI = @HAVE_OGDI@
 OGR_ENABLED = @OGR_ENABLED@
+HAVE_HIDE_INTERNAL_SYMBOLS = @HAVE_HIDE_INTERNAL_SYMBOLS@
 
 OSX_FRAMEWORK_PREFIX = /Library/Frameworks/GDAL.framework
 OSX_VERSION_FRAMEWORK_PREFIX = ${OSX_FRAMEWORK_PREFIX}/Versions/@GDAL_VERSION_MAJOR@.@GDAL_VERSION_MINOR@
_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to