Building GDAL 1.9 with ESRI FileGDB support on OS X Lion
- Download the SDK from ESRI's website http://resources.arcgis.com/content/geodatabases/10.0/file-gdb-api
- Extract the SDK, and put the contents of the directory in a known location, I used ~/local/filegdb, Example path to one of the files: ~/local/filegdb/lib/libFileGDBAPI.dylib
- I use ~/local/filegdb so it can stay isolated in it's own place, you can put it anywhere, but the next few steps might be different
- Go into the directory containing the FileGDB SDK, e.g. ~/local/filegdb
- ESRI built these dylib's using @rpath's, so to avoid needing to mess with DYLD_LIBRARY_PATH, I updated the @rpath's using install_name_tool
- Here is the commands I used to patch the dylibs, this is not required if you want to use DYLD_LIBRARY_PATH yourself:
install_name_tool -id "$(pwd)/lib/libFileGDBAPI.dylib" ./lib/libFileGDBAPI.dylib
install_name_tool -change "@rpath/libfgdbunixrtl.dylib" "$(pwd)/lib/libfgdbunixrtl.dylib" ./lib/libFileGDBAPI.dylib
install_name_tool -id "$(pwd)/lib/libfgdbunixrtl.dylib" ./lib/libfgdbunixrtl.dylib
- To verify the paths, use
otool -L lib/libFileGDBAPI.dylibandotool -L lib/libfgdbunixrtl.dyliband make sure the paths are correct - We need to make some changes to the configure.in script for GDAL now, since the FileGDB config code hasn't yet been updated for the OSX FileGDB SDK
- In the GDAL source root, edit the configure.in and replace it with https://gist.github.com/2005082
- In the GDAL source root, run ./autogen.sh to re-create the configure script
- Now run the
configurescript ./configure --with-fgdb=/Users/zacmcc/local/filegdb - The
configurescript has many options, here is the configure line I use for my custom build: https://gist.github.com/2005091, if you have other GDAL builds on your machine (e.g. homebrew) that you don't want to interfere with, I recommand at least using --prefix=~/local or some other place on your machine besides /usr/local (default for homebrew) or /opt/local (default for MacPorts). - If it worked properly, you should see in the output of
configureindicatingyesfor FileGDB support make && make install- If everything worked, it's time to test it out! Here's a test file: http://trac.osgeo.org/gdal/raw-attachment/wiki/FileGDB/test_fgdb.gdb.zip
which ogr2ogr # make sure it's the correct ogr2ogr first
ogrinfo --formats # list out the formats
ogrinfo ~/Downloads/test_fgdb.gdb
#convert FileGDB directly to PostGIS
ogr2ogr -f "PostgreSQL" PG:"dbname='somedatabase' host='localhost' port='5432'" ~/Downloads/test_fgdb.gdb
Sincere thanks Zac! So helpful.