Pip install gdal error

Expected behavior and actual behavior. I wanted to install it via pip, but got the following console output: Collecting gdal Using cached GDAL-3.1.2.tar.gz (593 kB) Building wheels for collected pa...

Expected behavior and actual behavior.

I wanted to install it via pip, but got the following console output:

Collecting gdal
  Using cached GDAL-3.1.2.tar.gz (593 kB)
Building wheels for collected packages: gdal
  Building wheel for gdal (setup.py): started
  Building wheel for gdal (setup.py): finished with status 'error'
  Running setup.py clean for gdal
Failed to build gdal
Installing collected packages: gdal
    Running setup.py install for gdal: started
    Running setup.py install for gdal: finished with status 'error'

The error output was:

  ERROR: Command errored out with exit status 1:
   command: /home/linuxbrew/.linuxbrew/opt/python@3.8/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-slie5dz0/gdal/setup.py'"'"'; __file__='"'"'/tmp/pip-install-slie5dz0/gdal/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-p5ifeihk
       cwd: /tmp/pip-install-slie5dz0/gdal/
  Complete output (1589 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.8
  copying gdal.py -> build/lib.linux-x86_64-3.8
  copying ogr.py -> build/lib.linux-x86_64-3.8
  copying osr.py -> build/lib.linux-x86_64-3.8
  copying gdalconst.py -> build/lib.linux-x86_64-3.8
  copying gdalnumeric.py -> build/lib.linux-x86_64-3.8
  creating build/lib.linux-x86_64-3.8/osgeo
  copying osgeo/osr.py -> build/lib.linux-x86_64-3.8/osgeo
  copying osgeo/gdalnumeric.py -> build/lib.linux-x86_64-3.8/osgeo
  copying osgeo/ogr.py -> build/lib.linux-x86_64-3.8/osgeo
  copying osgeo/gdal.py -> build/lib.linux-x86_64-3.8/osgeo
  copying osgeo/__init__.py -> build/lib.linux-x86_64-3.8/osgeo
  copying osgeo/gdalconst.py -> build/lib.linux-x86_64-3.8/osgeo
  copying osgeo/gnm.py -> build/lib.linux-x86_64-3.8/osgeo
  copying osgeo/gdal_array.py -> build/lib.linux-x86_64-3.8/osgeo
  /home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/setuptools/lib2to3_ex.py:39: SetuptoolsDeprecationWarning: 2to3 support is deprecated. If the project still requires Python 2 support, please migrate to a single-codebase solution or employ an independent conversion process.
    warnings.warn(
  Fixing build/lib.linux-x86_64-3.8/gdal.py build/lib.linux-x86_64-3.8/ogr.py build/lib.linux-x86_64-3.8/osr.py build/lib.linux-x86_64-3.8/gdalconst.py build/lib.linux-x86_64-3.8/gdalnumeric.py build/lib.linux-x86_64-3.8/osgeo/osr.py build/lib.linux-x86_64-3.8/osgeo/gdalnumeric.py build/lib.linux-x86_64-3.8/osgeo/ogr.py build/lib.linux-x86_64-3.8/osgeo/gdal.py build/lib.linux-x86_64-3.8/osgeo/__init__.py build/lib.linux-x86_64-3.8/osgeo/gdalconst.py build/lib.linux-x86_64-3.8/osgeo/gnm.py build/lib.linux-x86_64-3.8/osgeo/gdal_array.py
  Skipping optional fixer: ws_comma
  Fixing build/lib.linux-x86_64-3.8/gdal.py build/lib.linux-x86_64-3.8/ogr.py build/lib.linux-x86_64-3.8/osr.py build/lib.linux-x86_64-3.8/gdalconst.py build/lib.linux-x86_64-3.8/gdalnumeric.py build/lib.linux-x86_64-3.8/osgeo/osr.py build/lib.linux-x86_64-3.8/osgeo/gdalnumeric.py build/lib.linux-x86_64-3.8/osgeo/ogr.py build/lib.linux-x86_64-3.8/osgeo/gdal.py build/lib.linux-x86_64-3.8/osgeo/__init__.py build/lib.linux-x86_64-3.8/osgeo/gdalconst.py build/lib.linux-x86_64-3.8/osgeo/gnm.py build/lib.linux-x86_64-3.8/osgeo/gdal_array.py
  Skipping optional fixer: ws_comma
  running build_ext
  cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c gdal_python_cxx11_test.cpp -o gdal_python_cxx11_test.o
  cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c gdal_python_cxx11_test.cpp -o gdal_python_cxx11_test.o -std=c++11
  building 'osgeo._gdal' extension
  building 'osgeo._gdalconst' extension
  creating build/temp.linux-x86_64-3.8
  building 'osgeo._osr' extension
  creating build/temp.linux-x86_64-3.8/extensions
  creating build/temp.linux-x86_64-3.8/extensions
  cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c extensions/gdal_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/gdal_wrap.o -std=c++11 -I/usr/include/gdal
  cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c extensions/gdalconst_wrap.c -o build/temp.linux-x86_64-3.8/extensions/gdalconst_wrap.o -I/usr/include/gdal
  cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c extensions/osr_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/osr_wrap.o -std=c++11 -I/usr/include/gdal
  building 'osgeo._ogr' extension
  cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c extensions/ogr_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/ogr_wrap.o -std=c++11 -I/usr/include/gdal
  extensions/gdalconst_wrap.c: In function 'PyInit__gdalconst':
  extensions/gdalconst_wrap.c:3879:71: error: 'GDAL_OF_MULTIDIM_RASTER' undeclared (first use in this function)
     SWIG_Python_SetConstant(d, "OF_MULTIDIM_RASTER",SWIG_From_int((int)(GDAL_OF_MULTIDIM_RASTER)));
                                                                         ^
  extensions/gdalconst_wrap.c:3879:71: note: each undeclared identifier is reported only once for each function it appears in
  extensions/gdalconst_wrap.c:3903:71: error: 'GDAL_DIM_TYPE_HORIZONTAL_X' undeclared (first use in this function)
     SWIG_Python_SetConstant(d, "DIM_TYPE_HORIZONTAL_X",SWIG_FromCharPtr(GDAL_DIM_TYPE_HORIZONTAL_X));
                                                                         ^
  extensions/gdalconst_wrap.c:3904:71: error: 'GDAL_DIM_TYPE_HORIZONTAL_Y' undeclared (first use in this function)
     SWIG_Python_SetConstant(d, "DIM_TYPE_HORIZONTAL_Y",SWIG_FromCharPtr(GDAL_DIM_TYPE_HORIZONTAL_Y));
                                                                         ^
  extensions/gdalconst_wrap.c:3905:67: error: 'GDAL_DIM_TYPE_VERTICAL' undeclared (first use in this function)
     SWIG_Python_SetConstant(d, "DIM_TYPE_VERTICAL",SWIG_FromCharPtr(GDAL_DIM_TYPE_VERTICAL));
                                                                     ^
  extensions/gdalconst_wrap.c:3906:67: error: 'GDAL_DIM_TYPE_TEMPORAL' undeclared (first use in this function)
     SWIG_Python_SetConstant(d, "DIM_TYPE_TEMPORAL",SWIG_FromCharPtr(GDAL_DIM_TYPE_TEMPORAL));
                                                                     ^
  extensions/gdalconst_wrap.c:3907:69: error: 'GDAL_DIM_TYPE_PARAMETRIC' undeclared (first use in this function)
     SWIG_Python_SetConstant(d, "DIM_TYPE_PARAMETRIC",SWIG_FromCharPtr(GDAL_DIM_TYPE_PARAMETRIC));
                                                                       ^
  extensions/gdalconst_wrap.c:3935:66: error: 'GRTT_THEMATIC' undeclared (first use in this function)
     SWIG_Python_SetConstant(d, "GRTT_THEMATIC",SWIG_From_int((int)(GRTT_THEMATIC)));
                                                                    ^
  extensions/gdalconst_wrap.c:3936:67: error: 'GRTT_ATHEMATIC' undeclared (first use in this function)
     SWIG_Python_SetConstant(d, "GRTT_ATHEMATIC",SWIG_From_int((int)(GRTT_ATHEMATIC)));
                                                                     ^
  building 'osgeo._gnm' extension
  cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c extensions/gnm_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/gnm_wrap.o -std=c++11 -I/usr/include/gdal
  extensions/gdal_wrap.cpp:3209:9: error: 'GDALExtendedDataTypeHS' does not name a type
   typedef GDALExtendedDataTypeHS GDALExtendedDataTypeHS;
           ^
  extensions/gdal_wrap.cpp:3210:9: error: 'GDALEDTComponentHS' does not name a type
   typedef GDALEDTComponentHS GDALEDTComponentHS;
           ^
  extensions/gdal_wrap.cpp:3211:9: error: 'GDALGroupHS' does not name a type
   typedef GDALGroupHS GDALGroupHS;
           ^
  extensions/gdal_wrap.cpp:3212:9: error: 'GDALMDArrayHS' does not name a type
   typedef GDALMDArrayHS GDALMDArrayHS;
           ^
  extensions/gdal_wrap.cpp:3213:9: error: 'GDALAttributeHS' does not name a type
   typedef GDALAttributeHS GDALAttributeHS;
           ^
  extensions/gdal_wrap.cpp:3214:9: error: 'GDALDimensionHS' does not name a type
   typedef GDALDimensionHS GDALDimensionHS;
           ^
  extensions/gdal_wrap.cpp:4117:1: error: 'VSIDIR' does not name a type
   VSIDIR* wrapper_VSIOpenDir( const char * utf8_path,
   ^
  extensions/ogr_wrap.cpp: In function 'int ValidateOGRFieldSubType(OGRFieldSubType)':
  extensions/ogr_wrap.cpp:4897:18: error: 'OFSTJSON' was not declared in this scope
               case OFSTJSON:
                    ^
  extensions/ogr_wrap.cpp: In function 'OGRGeometryShadow* CreateGeometryFromEsriJson(const char*)':
  extensions/ogr_wrap.cpp:5075:96: error: 'OGR_G_CreateGeometryFromEsriJson' was not declared in this scope
       OGRGeometryShadow* geom = (OGRGeometryShadow*)OGR_G_CreateGeometryFromEsriJson(input_string);
                                                                                                  ^
  extensions/gdal_wrap.cpp:4234:38: error: 'VSIDIR' was not declared in this scope
   DirEntry* wrapper_VSIGetNextDirEntry(VSIDIR* dir)
                                        ^
  extensions/gdal_wrap.cpp:4234:46: error: 'dir' was not declared in this scope
   DirEntry* wrapper_VSIGetNextDirEntry(VSIDIR* dir)
                                                ^
  extensions/gdal_wrap.cpp:4235:1: error: expected ',' or ';' before '{' token
   {
   ^
  extensions/ogr_wrap.cpp: In function 'void OGRGeometryShadow_SwapXY(OGRGeometryShadow*)':
  extensions/ogr_wrap.cpp:5323:22: error: 'OGR_G_SwapXY' was not declared in this scope
       OGR_G_SwapXY(self);
                        ^
  extensions/ogr_wrap.cpp: In function 'OGRGeometryShadow* OGRGeometryShadow_MakeValid(OGRGeometryShadow*)':
  extensions/ogr_wrap.cpp:5350:53: error: 'OGR_G_MakeValid' was not declared in this scope
       return (OGRGeometryShadow*) OGR_G_MakeValid(self);
                                                       ^
  extensions/ogr_wrap.cpp: In function 'OGRGeometryShadow* OGRGeometryShadow_RemoveLowerDimensionSubGeoms(OGRGeometryShadow*)':
  extensions/ogr_wrap.cpp:5353:72: error: 'OGR_G_RemoveLowerDimensionSubGeoms' was not declared in this scope
       return (OGRGeometryShadow*) OGR_G_RemoveLowerDimensionSubGeoms(self);
                                                                          ^
  extensions/ogr_wrap.cpp: In function 'OGRGeometryShadow* OGRGeometryShadow_Transform__SWIG_1(OGRGeometryShadow*, OGRGeomTransformerShadow*)':
  extensions/ogr_wrap.cpp:5505:79: error: 'OGR_GeomTransformer_Transform' was not declared in this scope
       return (OGRGeometryShadow*)OGR_GeomTransformer_Transform(transformer, self);
                                                                                 ^
  extensions/ogr_wrap.cpp: In function 'OGRGeomTransformerShadow* new_OGRGeomTransformerShadow(OSRCoordinateTransformationShadow*, char**)':
  extensions/ogr_wrap.cpp:5508:50: error: 'OGR_GeomTransformer_Create' was not declared in this scope
       return OGR_GeomTransformer_Create(ct, options);
                                                    ^
  extensions/ogr_wrap.cpp: In function 'void delete_OGRGeomTransformerShadow(OGRGeomTransformerShadow*)':
  extensions/ogr_wrap.cpp:5511:39: error: 'OGR_GeomTransformer_Destroy' was not declared in this scope
       OGR_GeomTransformer_Destroy( self );
                                         ^
  extensions/ogr_wrap.cpp: In function 'OGRGeometryShadow* OGRGeomTransformerShadow_Transform(OGRGeomTransformerShadow*, OGRGeometryShadow*)':
  extensions/ogr_wrap.cpp:5514:76: error: 'OGR_GeomTransformer_Transform' was not declared in this scope
       return (OGRGeometryShadow*)OGR_GeomTransformer_Transform(self, src_geom);
                                                                              ^
  extensions/osr_wrap.cpp: In function 'const char* OSRSpatialReferenceShadow_GetName(OSRSpatialReferenceShadow*)':
  extensions/osr_wrap.cpp:3688:29: error: 'OSRGetName' was not declared in this scope
       return OSRGetName( self );
                               ^
  extensions/osr_wrap.cpp: In function 'int OSRSpatialReferenceShadow_IsSame(OSRSpatialReferenceShadow*, OSRSpatialReferenceShadow*, char**)':
  extensions/osr_wrap.cpp:3760:44: error: 'OSRIsSameEx' was not declared in this scope
       return OSRIsSameEx( self, rhs, options );
                                              ^
  extensions/osr_wrap.cpp: In function 'int OSRSpatialReferenceShadow_IsDerivedGeographic(OSRSpatialReferenceShadow*)':
  extensions/osr_wrap.cpp:3772:39: error: 'OSRIsDerivedGeographic' was not declared in this scope
       return OSRIsDerivedGeographic(self);
                                         ^
  extensions/osr_wrap.cpp: In function 'OSRAreaOfUse* OSRSpatialReferenceShadow_GetAreaOfUse(OSRSpatialReferenceShadow*)':
  extensions/osr_wrap.cpp:3967:26: error: 'OSRGetAreaOfUse' was not declared in this scope
                       &name) )
                            ^
  extensions/osr_wrap.cpp: In function 'int OSRSpatialReferenceShadow_GetAxesCount(OSRSpatialReferenceShadow*)':
  extensions/osr_wrap.cpp:3979:32: error: 'OSRGetAxesCount' was not declared in this scope
       return OSRGetAxesCount(self);
                                  ^
  extensions/osr_wrap.cpp: At global scope:
  extensions/osr_wrap.cpp:3986:12: error: 'OSRAxisMappingStrategy' does not name a type
   SWIGINTERN OSRAxisMappingStrategy OSRSpatialReferenceShadow_GetAxisMappingStrategy(OSRSpatialReferenceShadow *self){
              ^
  extensions/osr_wrap.cpp:3989:98: error: 'OSRAxisMappingStrategy' has not been declared
   SWIGINTERN void OSRSpatialReferenceShadow_SetAxisMappingStrategy(OSRSpatialReferenceShadow *self,OSRAxisMappingStrategy strategy){
                                                                                                    ^
  extensions/osr_wrap.cpp: In function 'void OSRSpatialReferenceShadow_SetAxisMappingStrategy(OSRSpatialReferenceShadow*, int)':
  extensions/osr_wrap.cpp:3990:45: error: 'OSRSetAxisMappingStrategy' was not declared in this scope
       OSRSetAxisMappingStrategy(self, strategy);
                                               ^
  extensions/osr_wrap.cpp: In function 'void OSRSpatialReferenceShadow_GetDataAxisToSRSAxisMapping(OSRSpatialReferenceShadow*, int*, const int**)':
  extensions/osr_wrap.cpp:3993:57: error: 'OSRGetDataAxisToSRSAxisMapping' was not declared in this scope
         *pList = OSRGetDataAxisToSRSAxisMapping(self, nLen);
                                                           ^
  extensions/osr_wrap.cpp: In function 'OGRErr OSRSpatialReferenceShadow_SetDataAxisToSRSAxisMapping(OSRSpatialReferenceShadow*, int, int*)':
  extensions/osr_wrap.cpp:4027:61: error: 'OSRSetDataAxisToSRSAxisMapping' was not declared in this scope
       return OSRSetDataAxisToSRSAxisMapping(self, nList, pList);
                                                               ^
  extensions/osr_wrap.cpp: In function 'void OSRSpatialReferenceShadow_FindMatches(OSRSpatialReferenceShadow*, char**, OSRSpatialReferenceShadow***, int*, int**)':
  extensions/osr_wrap.cpp:4048:76: error: 'OSRFindMatches' was not declared in this scope
           *matches = OSRFindMatches(self, options, nvalues, confidence_values);
                                                                              ^
  extensions/osr_wrap.cpp: In function 'OGRErr OSRSpatialReferenceShadow_SetVerticalPerspective(OSRSpatialReferenceShadow*, double, double, double, double, double, double)':
  extensions/osr_wrap.cpp:4236:81: error: 'OSRSetVerticalPerspective' was not declared in this scope
           topoOriginLat, topoOriginLon, topoOriginHeight, viewPointHeight, fe, fn );
                                                                                   ^
  extensions/osr_wrap.cpp: In function 'OGRErr OSRSpatialReferenceShadow_AddGuessedTOWGS84(OSRSpatialReferenceShadow*)':
  extensions/osr_wrap.cpp:4278:39: error: 'OSRAddGuessedTOWGS84' was not declared in this scope
       return OSRAddGuessedTOWGS84( self );
                                         ^
  extensions/osr_wrap.cpp: In function 'OGRErr OSRSpatialReferenceShadow_ExportToWkt(OSRSpatialReferenceShadow*, char**, char**)':
  extensions/osr_wrap.cpp:4337:52: error: 'OSRExportToWktEx' was not declared in this scope
       return OSRExportToWktEx( self, argout, options );
                                                      ^
  extensions/osr_wrap.cpp: In function 'OGRErr OSRSpatialReferenceShadow_ExportToPROJJSON(OSRSpatialReferenceShadow*, char**, char**)':
  extensions/osr_wrap.cpp:4343:55: error: 'OSRExportToPROJJSON' was not declared in this scope
       return OSRExportToPROJJSON( self, argout, options );
                                                         ^
  extensions/osr_wrap.cpp: In function 'OSRSpatialReferenceShadow* OSRSpatialReferenceShadow_ConvertToOtherProjection(OSRSpatialReferenceShadow*, const char*, char**)':
  extensions/osr_wrap.cpp:4379:71: error: 'OSRConvertToOtherProjection' was not declared in this scope
       return OSRConvertToOtherProjection(self, other_projection, options);
                                                                         ^
  extensions/osr_wrap.cpp: In function 'OGRErr OSRSpatialReferenceShadow_PromoteTo3D(OSRSpatialReferenceShadow*, const char*)':
  extensions/osr_wrap.cpp:4382:37: error: 'OSRPromoteTo3D' was not declared in this scope
       return OSRPromoteTo3D(self, name);
                                       ^
  extensions/osr_wrap.cpp: At global scope:
  extensions/osr_wrap.cpp:4384:12: error: 'OGRCoordinateTransformationOptions' does not name a type
   SWIGINTERN OGRCoordinateTransformationOptions *new_OGRCoordinateTransformationOptions(){
              ^
  extensions/osr_wrap.cpp:4387:59: error: variable or field 'delete_OGRCoordinateTransformationOptions' declared void
   SWIGINTERN void delete_OGRCoordinateTransformationOptions(OGRCoordinateTransformationOptions *self){
                                                             ^
  extensions/osr_wrap.cpp:4387:59: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
  extensions/osr_wrap.cpp:4387:95: error: 'self' was not declared in this scope
   SWIGINTERN void delete_OGRCoordinateTransformationOptions(OGRCoordinateTransformationOptions *self){
                                                                                                 ^
  extensions/osr_wrap.cpp:4390:70: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
   SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                        ^
  extensions/osr_wrap.cpp:4390:106: error: 'self' was not declared in this scope
   SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                                                            ^
  extensions/osr_wrap.cpp:4390:111: error: expected primary-expression before 'double'
   SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                                                                 ^
  extensions/osr_wrap.cpp:4390:135: error: expected primary-expression before 'double'
   SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                                                                                         ^
  extensions/osr_wrap.cpp:4390:159: error: expected primary-expression before 'double'
   SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                                                                                                                 ^
  extensions/osr_wrap.cpp:4390:183: error: expected primary-expression before 'double'
   SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                                                                                                                                         ^
  extensions/osr_wrap.cpp:4390:206: error: expression list treated as compound expression in initializer [-fpermissive]
   SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                                                                                                                                                                ^
  extensions/osr_wrap.cpp:4390:207: error: expected ',' or ';' before '{' token
   SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                                                                                                                                                                 ^
  extensions/osr_wrap.cpp:4395:65: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
   SWIGINTERN bool OGRCoordinateTransformationOptions_SetOperation(OGRCoordinateTransformationOptions *self,char const *operation){
                                                                   ^
  extensions/osr_wrap.cpp:4395:101: error: 'self' was not declared in this scope
   SWIGINTERN bool OGRCoordinateTransformationOptions_SetOperation(OGRCoordinateTransformationOptions *self,char const *operation){
                                                                                                       ^
  extensions/osr_wrap.cpp:4395:106: error: expected primary-expression before 'char'
   SWIGINTERN bool OGRCoordinateTransformationOptions_SetOperation(OGRCoordinateTransformationOptions *self,char const *operation){
                                                                                                            ^
  extensions/osr_wrap.cpp:4395:127: error: expression list treated as compound expression in initializer [-fpermissive]
   SWIGINTERN bool OGRCoordinateTransformationOptions_SetOperation(OGRCoordinateTransformationOptions *self,char const *operation){
                                                                                                                                 ^
  extensions/osr_wrap.cpp:4395:128: error: expected ',' or ';' before '{' token
   SWIGINTERN bool OGRCoordinateTransformationOptions_SetOperation(OGRCoordinateTransformationOptions *self,char const *operation){
                                                                                                                                  ^
  extensions/osr_wrap.cpp:4401:155: error: 'OGRCoordinateTransformationOptions' has not been declared
   SWIGINTERN OSRCoordinateTransformationShadow *new_OSRCoordinateTransformationShadow__SWIG_1(OSRSpatialReferenceShadow *src,OSRSpatialReferenceShadow *dst,OGRCoordinateTransformationOptions *options){
                                                                                                                                                             ^
  extensions/osr_wrap.cpp: In function 'OSRCoordinateTransformationShadow* new_OSRCoordinateTransformationShadow__SWIG_1(OSRSpatialReferenceShadow*, OSRSpatialReferenceShadow*, int*)':
  extensions/osr_wrap.cpp:4403:71: error: 'OCTNewCoordinateTransformationEx' was not declared in this scope
           options ? OCTNewCoordinateTransformationEx( src, dst, options ) : OCTNewCoordinateTransformation(src, dst);
                                                                         ^
  extensions/osr_wrap.cpp: In function 'void OSRCoordinateTransformationShadow_TransformPoint__SWIG_1(OSRCoordinateTransformationShadow*, double*)':
  extensions/osr_wrap.cpp:4416:79: error: 'OCTTransform4D' was not declared in this scope
       OCTTransform4D( self, 1, &inout[0], &inout[1], &inout[2], &inout[3], NULL );
                                                                                 ^
  extensions/osr_wrap.cpp: In function 'void OSRCoordinateTransformationShadow_TransformPoint__SWIG_3(OSRCoordinateTransformationShadow*, double*, double, double, double, double)':
  extensions/osr_wrap.cpp:4433:83: error: 'OCTTransform4D' was not declared in this scope
       OCTTransform4D( self, 1, &argout[0], &argout[1], &argout[2], &argout[3], NULL );
                                                                                     ^
  extensions/osr_wrap.cpp: In function 'void OSRCoordinateTransformationShadow_TransformPoints(OSRCoordinateTransformationShadow*, int, double*, double*, double*, double*)':
  extensions/osr_wrap.cpp:4534:52: error: 'OCTTransform4D' was not declared in this scope
       OCTTransform4D( self, nCount, x, y, z, t, NULL );
                                                      ^
  extensions/osr_wrap.cpp: At global scope:
  extensions/osr_wrap.cpp:4537:134: error: 'OGRCoordinateTransformationOptions' has not been declared
     OSRCoordinateTransformationShadow *CreateCoordinateTransformation( OSRSpatialReferenceShadow *src, OSRSpatialReferenceShadow *dst, OGRCoordinateTransformationOptions* options = NULL ) {
                                                                                                                                        ^
  extensions/osr_wrap.cpp: In function 'OSRCoordinateTransformationShadow* CreateCoordinateTransformation(OSRSpatialReferenceShadow*, OSRSpatialReferenceShadow*, int*)':
  extensions/osr_wrap.cpp:4539:71: error: 'OCTNewCoordinateTransformationEx' was not declared in this scope
           options ? OCTNewCoordinateTransformationEx( src, dst, options ) : OCTNewCoordinateTransformation(src, dst);
                                                                         ^
  extensions/osr_wrap.cpp: At global scope:
  extensions/osr_wrap.cpp:4556:12: error: 'OSRCRSInfo' does not name a type
   SWIGINTERN OSRCRSInfo *new_OSRCRSInfo(char const *auth_name,char const *code,char const *name,OSRCRSType type,bool deprecated,bool bbox_valid,double west_lon_degree,double south_lat_degree,double east_lon_degree,double north_lat_degree,char const *area_name,char const *projection_method){
              ^
  extensions/osr_wrap.cpp:4572:35: error: variable or field 'delete_OSRCRSInfo' declared void
   SWIGINTERN void delete_OSRCRSInfo(OSRCRSInfo *self){
                                     ^
  extensions/osr_wrap.cpp:4572:35: error: 'OSRCRSInfo' was not declared in this scope
  extensions/osr_wrap.cpp:4572:47: error: 'self' was not declared in this scope
   SWIGINTERN void delete_OSRCRSInfo(OSRCRSInfo *self){
                                                 ^
  extensions/osr_wrap.cpp:4582:39: error: 'OSRCRSInfo' was not declared in this scope
   const char* OSRCRSInfo_auth_name_get( OSRCRSInfo *crsInfo ) {
                                         ^
  extensions/osr_wrap.cpp:4582:51: error: 'crsInfo' was not declared in this scope
   const char* OSRCRSInfo_auth_name_get( OSRCRSInfo *crsInfo ) {
                                                     ^
  extensions/osr_wrap.cpp:4582:61: error: expected ',' or ';' before '{' token
   const char* OSRCRSInfo_auth_name_get( OSRCRSInfo *crsInfo ) {
                                                               ^
  extensions/osr_wrap.cpp:4586:34: error: 'OSRCRSInfo' was not declared in this scope
   const char* OSRCRSInfo_code_get( OSRCRSInfo *crsInfo ) {
                                    ^
  extensions/osr_wrap.cpp:4586:46: error: 'crsInfo' was not declared in this scope
   const char* OSRCRSInfo_code_get( OSRCRSInfo *crsInfo ) {
                                                ^
  extensions/osr_wrap.cpp:4586:56: error: expected ',' or ';' before '{' token
   const char* OSRCRSInfo_code_get( OSRCRSInfo *crsInfo ) {
                                                          ^
  extensions/osr_wrap.cpp:4590:34: error: 'OSRCRSInfo' was not declared in this scope
   const char* OSRCRSInfo_name_get( OSRCRSInfo *crsInfo ) {
                                    ^
  extensions/osr_wrap.cpp:4590:46: error: 'crsInfo' was not declared in this scope
   const char* OSRCRSInfo_name_get( OSRCRSInfo *crsInfo ) {
                                                ^
  extensions/osr_wrap.cpp:4590:56: error: expected ',' or ';' before '{' token
   const char* OSRCRSInfo_name_get( OSRCRSInfo *crsInfo ) {
                                                          ^
  extensions/osr_wrap.cpp:4594:1: error: 'OSRCRSType' does not name a type
   OSRCRSType OSRCRSInfo_type_get( OSRCRSInfo *crsInfo ) {
   ^
  extensions/osr_wrap.cpp:4598:33: error: 'OSRCRSInfo' was not declared in this scope
   bool OSRCRSInfo_deprecated_get( OSRCRSInfo *crsInfo ) {
                                   ^
  extensions/osr_wrap.cpp:4598:45: error: 'crsInfo' was not declared in this scope
   bool OSRCRSInfo_deprecated_get( OSRCRSInfo *crsInfo ) {
                                               ^
  extensions/osr_wrap.cpp:4598:55: error: expected ',' or ';' before '{' token
   bool OSRCRSInfo_deprecated_get( OSRCRSInfo *crsInfo ) {
                                                         ^
  extensions/osr_wrap.cpp:4602:33: error: 'OSRCRSInfo' was not declared in this scope
   bool OSRCRSInfo_bbox_valid_get( OSRCRSInfo *crsInfo ) {
                                   ^
  extensions/osr_wrap.cpp:4602:45: error: 'crsInfo' was not declared in this scope
   bool OSRCRSInfo_bbox_valid_get( OSRCRSInfo *crsInfo ) {
                                               ^
  extensions/osr_wrap.cpp:4602:55: error: expected ',' or ';' before '{' token
   bool OSRCRSInfo_bbox_valid_get( OSRCRSInfo *crsInfo ) {
                                                         ^
  extensions/osr_wrap.cpp:4606:40: error: 'OSRCRSInfo' was not declared in this scope
   double OSRCRSInfo_west_lon_degree_get( OSRCRSInfo *crsInfo ) {
                                          ^
  extensions/osr_wrap.cpp:4606:52: error: 'crsInfo' was not declared in this scope
   double OSRCRSInfo_west_lon_degree_get( OSRCRSInfo *crsInfo ) {
                                                      ^
  extensions/osr_wrap.cpp:4606:62: error: expected ',' or ';' before '{' token
   double OSRCRSInfo_west_lon_degree_get( OSRCRSInfo *crsInfo ) {
                                                                ^
  extensions/osr_wrap.cpp:4610:41: error: 'OSRCRSInfo' was not declared in this scope
   double OSRCRSInfo_south_lat_degree_get( OSRCRSInfo *crsInfo ) {
                                           ^
  extensions/osr_wrap.cpp:4610:53: error: 'crsInfo' was not declared in this scope
   double OSRCRSInfo_south_lat_degree_get( OSRCRSInfo *crsInfo ) {
                                                       ^
  extensions/osr_wrap.cpp:4610:63: error: expected ',' or ';' before '{' token
   double OSRCRSInfo_south_lat_degree_get( OSRCRSInfo *crsInfo ) {
                                                                 ^
  extensions/osr_wrap.cpp:4614:40: error: 'OSRCRSInfo' was not declared in this scope
   double OSRCRSInfo_east_lon_degree_get( OSRCRSInfo *crsInfo ) {
                                          ^
  extensions/osr_wrap.cpp:4614:52: error: 'crsInfo' was not declared in this scope
   double OSRCRSInfo_east_lon_degree_get( OSRCRSInfo *crsInfo ) {
                                                      ^
  extensions/osr_wrap.cpp:4614:62: error: expected ',' or ';' before '{' token
   double OSRCRSInfo_east_lon_degree_get( OSRCRSInfo *crsInfo ) {
                                                                ^
  extensions/osr_wrap.cpp:4618:41: error: 'OSRCRSInfo' was not declared in this scope
   double OSRCRSInfo_north_lat_degree_get( OSRCRSInfo *crsInfo ) {
                                           ^
  extensions/osr_wrap.cpp:4618:53: error: 'crsInfo' was not declared in this scope
   double OSRCRSInfo_north_lat_degree_get( OSRCRSInfo *crsInfo ) {
                                                       ^
  extensions/osr_wrap.cpp:4618:63: error: expected ',' or ';' before '{' token
   double OSRCRSInfo_north_lat_degree_get( OSRCRSInfo *crsInfo ) {
                                                                 ^
  extensions/osr_wrap.cpp:4622:39: error: 'OSRCRSInfo' was not declared in this scope
   const char* OSRCRSInfo_area_name_get( OSRCRSInfo *crsInfo ) {
                                         ^
  extensions/osr_wrap.cpp:4622:51: error: 'crsInfo' was not declared in this scope
   const char* OSRCRSInfo_area_name_get( OSRCRSInfo *crsInfo ) {
                                                     ^
  extensions/osr_wrap.cpp:4622:61: error: expected ',' or ';' before '{' token
   const char* OSRCRSInfo_area_name_get( OSRCRSInfo *crsInfo ) {
                                                               ^
  extensions/osr_wrap.cpp:4626:47: error: 'OSRCRSInfo' was not declared in this scope
   const char* OSRCRSInfo_projection_method_get( OSRCRSInfo *crsInfo ) {
                                                 ^
  extensions/osr_wrap.cpp:4626:59: error: 'crsInfo' was not declared in this scope
   const char* OSRCRSInfo_projection_method_get( OSRCRSInfo *crsInfo ) {
                                                             ^
  extensions/osr_wrap.cpp:4626:69: error: expected ',' or ';' before '{' token
   const char* OSRCRSInfo_projection_method_get( OSRCRSInfo *crsInfo ) {
                                                                       ^
  extensions/osr_wrap.cpp:4633:34: error: 'OSRCRSInfo' has not been declared
                                    OSRCRSInfo*** pList,
                                    ^
  extensions/osr_wrap.cpp: In function 'void GetCRSInfoListFromDatabase(const char*, int***, int*)':
  extensions/osr_wrap.cpp:4636:71: error: 'OSRGetCRSInfoListFromDatabase' was not declared in this scope
       *pList = OSRGetCRSInfoListFromDatabase(authName, NULL, pnListCount);
                                                                         ^
  extensions/osr_wrap.cpp: In function 'void SetPROJSearchPath(const char*)':
  extensions/osr_wrap.cpp:4643:36: error: 'OSRSetPROJSearchPaths' was not declared in this scope
       OSRSetPROJSearchPaths(apszPaths);
                                      ^
  extensions/osr_wrap.cpp: In function 'void SetPROJSearchPaths(char**)':
  extensions/osr_wrap.cpp:4649:32: error: 'OSRSetPROJSearchPaths' was not declared in this scope
       OSRSetPROJSearchPaths(paths);
                                  ^
  extensions/osr_wrap.cpp: In function 'char** GetPROJSearchPaths()':
  extensions/osr_wrap.cpp:4655:34: error: 'OSRGetPROJSearchPaths' was not declared in this scope
       return OSRGetPROJSearchPaths();
                                    ^
  extensions/osr_wrap.cpp: In function 'int GetPROJVersionMajor()':
  extensions/osr_wrap.cpp:4662:39: error: 'OSRGetPROJVersion' was not declared in this scope
       OSRGetPROJVersion(&num, NULL, NULL);
                                         ^
  extensions/osr_wrap.cpp: In function 'int GetPROJVersionMinor()':
  extensions/osr_wrap.cpp:4669:39: error: 'OSRGetPROJVersion' was not declared in this scope
       OSRGetPROJVersion(NULL, &num, NULL);
                                         ^
  extensions/osr_wrap.cpp: In function 'int GetPROJVersionMicro()':
  extensions/osr_wrap.cpp:4676:39: error: 'OSRGetPROJVersion' was not declared in this scope
       OSRGetPROJVersion(NULL, NULL, &num);
                                         ^
  extensions/gdal_wrap.cpp:3249:7: warning: 'char* get_aligned_buffer(char*, GDALDataType)' defined but not used [-Wunused-function]
   char* get_aligned_buffer(char* data, GDALDataType ntype)
         ^
  extensions/gdal_wrap.cpp:3268:13: warning: 'void update_buffer_size(void*, char*, char*, size_t)' defined but not used [-Wunused-function]
   static void update_buffer_size(void* obj, char* data, char* data_aligned, size_t buf_size)
               ^
  extensions/gdal_wrap.cpp:3323:5: warning: 'int GetUseExceptions()' defined but not used [-Wunused-function]
   int GetUseExceptions() {
       ^
  extensions/gdal_wrap.cpp:3329:6: warning: 'void UseExceptions()' defined but not used [-Wunused-function]
   void UseExceptions() {
        ^
  extensions/gdal_wrap.cpp:3346:6: warning: 'void DontUseExceptions()' defined but not used [-Wunused-function]
   void DontUseExceptions() {
        ^
  extensions/gdal_wrap.cpp:3394:13: warning: 'void ClearErrorState()' defined but not used [-Wunused-function]
   static void ClearErrorState()
               ^
  extensions/gdal_wrap.cpp:4128:15: warning: 'char** CSLFromPySequence(PyObject*, int*)' defined but not used [-Wunused-function]
   static char **CSLFromPySequence( PyObject *pySeq, int *pbErr )
                 ^
  building 'osgeo._gdal_array' extension
  cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c extensions/gdal_array_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/gdal_array_wrap.o -std=c++11 -I/usr/include/gdal
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_SpatialReference_GetAxisMappingStrategy(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:7097:3: error: 'OSRAxisMappingStrategy' was not declared in this scope
     OSRAxisMappingStrategy result;
     ^
  extensions/osr_wrap.cpp:7109:5: error: 'result' was not declared in this scope
       result = (OSRAxisMappingStrategy)OSRSpatialReferenceShadow_GetAxisMappingStrategy(arg1);
       ^
  extensions/osr_wrap.cpp:7119:48: error: 'result' was not declared in this scope
     resultobj = SWIG_From_int(static_cast< int >(result));
                                                  ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_SpatialReference_SetAxisMappingStrategy(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:7130:3: error: 'OSRAxisMappingStrategy' was not declared in this scope
     OSRAxisMappingStrategy arg2 ;
     ^
  extensions/osr_wrap.cpp:7148:3: error: 'arg2' was not declared in this scope
     arg2 = static_cast< OSRAxisMappingStrategy >(val2);
     ^
  extensions/osr_wrap.cpp:7148:23: error: 'OSRAxisMappingStrategy' does not name a type
     arg2 = static_cast< OSRAxisMappingStrategy >(val2);
                         ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_new_CoordinateTransformationOptions(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:15183:3: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
     OGRCoordinateTransformationOptions *result = 0 ;
     ^
  extensions/osr_wrap.cpp:15183:39: error: 'result' was not declared in this scope
     OGRCoordinateTransformationOptions *result = 0 ;
                                         ^
  extensions/osr_wrap.cpp:15190:51: error: expected primary-expression before ')' token
       result = (OGRCoordinateTransformationOptions *)new_OGRCoordinateTransformationOptions();
                                                     ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_delete_CoordinateTransformationOptions(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:15210:3: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
     OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
     ^
  extensions/osr_wrap.cpp:15210:39: error: 'arg1' was not declared in this scope
     OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
                                         ^
  extensions/osr_wrap.cpp:15210:83: error: expected primary-expression before ')' token
     OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
                                                                                     ^
  extensions/osr_wrap.cpp:15220:28: error: 'OGRCoordinateTransformationOptions' does not name a type
     arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                              ^
  extensions/osr_wrap.cpp:15220:63: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                 ^
  extensions/osr_wrap.cpp:15220:63: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:15220:65: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                   ^
  extensions/osr_wrap.cpp:15220:73: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                           ^
  extensions/osr_wrap.cpp:15225:51: error: 'delete_OGRCoordinateTransformationOptions' was not declared in this scope
       delete_OGRCoordinateTransformationOptions(arg1);
                                                     ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CoordinateTransformationOptions_SetAreaOfInterest(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:15245:3: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
     OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
     ^
  extensions/osr_wrap.cpp:15245:39: error: 'arg1' was not declared in this scope
     OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
                                         ^
  extensions/osr_wrap.cpp:15245:83: error: expected primary-expression before ')' token
     OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
                                                                                     ^
  extensions/osr_wrap.cpp:15272:28: error: 'OGRCoordinateTransformationOptions' does not name a type
     arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                              ^
  extensions/osr_wrap.cpp:15272:63: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                 ^
  extensions/osr_wrap.cpp:15272:63: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:15272:65: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                   ^
  extensions/osr_wrap.cpp:15272:73: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                           ^
  extensions/osr_wrap.cpp:15297:97: error: 'OGRCoordinateTransformationOptions_SetAreaOfInterest' cannot be used as a function
       result = (bool)OGRCoordinateTransformationOptions_SetAreaOfInterest(arg1,arg2,arg3,arg4,arg5);
                                                                                                   ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CoordinateTransformationOptions_SetOperation(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:15317:3: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
     OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
     ^
  extensions/osr_wrap.cpp:15317:39: error: 'arg1' was not declared in this scope
     OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
                                         ^
  extensions/osr_wrap.cpp:15317:83: error: expected primary-expression before ')' token
     OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
                                                                                     ^
  extensions/osr_wrap.cpp:15333:28: error: 'OGRCoordinateTransformationOptions' does not name a type
     arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                              ^
  extensions/osr_wrap.cpp:15333:63: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                 ^
  extensions/osr_wrap.cpp:15333:63: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:15333:65: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                   ^
  extensions/osr_wrap.cpp:15333:73: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                           ^
  extensions/osr_wrap.cpp:15343:91: error: 'OGRCoordinateTransformationOptions_SetOperation' cannot be used as a function
       result = (bool)OGRCoordinateTransformationOptions_SetOperation(arg1,(char const *)arg2);
                                                                                             ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_new_CoordinateTransformation__SWIG_1(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:15419:3: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
     OGRCoordinateTransformationOptions *arg3 = (OGRCoordinateTransformationOptions *) 0 ;
     ^
  extensions/osr_wrap.cpp:15419:39: error: 'arg3' was not declared in this scope
     OGRCoordinateTransformationOptions *arg3 = (OGRCoordinateTransformationOptions *) 0 ;
                                         ^
  extensions/osr_wrap.cpp:15419:83: error: expected primary-expression before ')' token
     OGRCoordinateTransformationOptions *arg3 = (OGRCoordinateTransformationOptions *) 0 ;
                                                                                     ^
  extensions/osr_wrap.cpp:15446:28: error: 'OGRCoordinateTransformationOptions' does not name a type
     arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                              ^
  extensions/osr_wrap.cpp:15446:63: error: expected '>' before '*' token
     arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                                                                 ^
  extensions/osr_wrap.cpp:15446:63: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:15446:65: error: expected primary-expression before '>' token
     arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                                                                   ^
  extensions/osr_wrap.cpp:15446:73: error: expected ')' before ';' token
     arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                                                                           ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CreateCoordinateTransformation(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16077:3: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
     OGRCoordinateTransformationOptions *arg3 = (OGRCoordinateTransformationOptions *) NULL ;
     ^
  extensions/osr_wrap.cpp:16077:39: error: 'arg3' was not declared in this scope
     OGRCoordinateTransformationOptions *arg3 = (OGRCoordinateTransformationOptions *) NULL ;
                                         ^
  extensions/osr_wrap.cpp:16077:83: error: expected primary-expression before ')' token
     OGRCoordinateTransformationOptions *arg3 = (OGRCoordinateTransformationOptions *) NULL ;
                                                                                     ^
  extensions/osr_wrap.cpp:16105:30: error: 'OGRCoordinateTransformationOptions' does not name a type
       arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                                ^
  extensions/osr_wrap.cpp:16105:65: error: expected '>' before '*' token
       arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                                                                   ^
  extensions/osr_wrap.cpp:16105:65: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16105:67: error: expected primary-expression before '>' token
       arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                                                                     ^
  extensions/osr_wrap.cpp:16105:75: error: expected ')' before ';' token
       arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                                                                             ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_auth_name_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16131:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16131:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16131:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16142:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16142:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16142:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16142:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16142:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16147:51: error: 'OSRCRSInfo_auth_name_get' cannot be used as a function
       result = (char *)OSRCRSInfo_auth_name_get(arg1);
                                                     ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_code_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16167:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16167:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16167:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16178:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16178:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16178:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16178:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16178:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16183:46: error: 'OSRCRSInfo_code_get' cannot be used as a function
       result = (char *)OSRCRSInfo_code_get(arg1);
                                                ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_name_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16203:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16203:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16203:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16214:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16214:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16214:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16214:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16214:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16219:46: error: 'OSRCRSInfo_name_get' cannot be used as a function
       result = (char *)OSRCRSInfo_name_get(arg1);
                                                ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_type_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16239:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16239:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16239:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16243:3: error: 'OSRCRSType' was not declared in this scope
     OSRCRSType result;
     ^
  extensions/osr_wrap.cpp:16250:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16250:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16250:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16250:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16250:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16255:5: error: 'result' was not declared in this scope
       result = (OSRCRSType)OSRCRSInfo_type_get(arg1);
       ^
  extensions/osr_wrap.cpp:16265:48: error: 'result' was not declared in this scope
     resultobj = SWIG_From_int(static_cast< int >(result));
                                                  ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_deprecated_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16275:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16275:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16275:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16286:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16286:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16286:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16286:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16286:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16291:50: error: 'OSRCRSInfo_deprecated_get' cannot be used as a function
       result = (bool)OSRCRSInfo_deprecated_get(arg1);
                                                    ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_bbox_valid_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16311:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16311:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16311:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16322:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16322:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16322:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16322:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16322:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16327:50: error: 'OSRCRSInfo_bbox_valid_get' cannot be used as a function
       result = (bool)OSRCRSInfo_bbox_valid_get(arg1);
                                                    ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_west_lon_degree_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16347:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16347:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16347:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16358:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16358:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16358:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16358:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16358:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16363:57: error: 'OSRCRSInfo_west_lon_degree_get' cannot be used as a function
       result = (double)OSRCRSInfo_west_lon_degree_get(arg1);
                                                           ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_south_lat_degree_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16383:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16383:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16383:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16394:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16394:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16394:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16394:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16394:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16399:58: error: 'OSRCRSInfo_south_lat_degree_get' cannot be used as a function
       result = (double)OSRCRSInfo_south_lat_degree_get(arg1);
                                                            ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_east_lon_degree_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16419:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16419:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16419:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16430:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16430:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16430:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16430:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16430:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16435:57: error: 'OSRCRSInfo_east_lon_degree_get' cannot be used as a function
       result = (double)OSRCRSInfo_east_lon_degree_get(arg1);
                                                           ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_north_lat_degree_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16455:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16455:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16455:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16466:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16466:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16466:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16466:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16466:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16471:58: error: 'OSRCRSInfo_north_lat_degree_get' cannot be used as a function
       result = (double)OSRCRSInfo_north_lat_degree_get(arg1);
                                                            ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_area_name_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16491:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16491:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16491:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16502:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16502:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16502:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16502:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16502:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16507:51: error: 'OSRCRSInfo_area_name_get' cannot be used as a function
       result = (char *)OSRCRSInfo_area_name_get(arg1);
                                                     ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_projection_method_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16527:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16527:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16527:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16538:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16538:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16538:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16538:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16538:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16543:59: error: 'OSRCRSInfo_projection_method_get' cannot be used as a function
       result = (char *)OSRCRSInfo_projection_method_get(arg1);
                                                             ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_new_CRSInfo(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16566:3: error: 'OSRCRSType' was not declared in this scope
     OSRCRSType arg4 ;
     ^
  extensions/osr_wrap.cpp:16616:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *result = 0 ;
     ^
  extensions/osr_wrap.cpp:16616:15: error: 'result' was not declared in this scope
     OSRCRSInfo *result = 0 ;
                 ^
  extensions/osr_wrap.cpp:16638:3: error: 'arg4' was not declared in this scope
     arg4 = static_cast< OSRCRSType >(val4);
     ^
  extensions/osr_wrap.cpp:16638:23: error: 'OSRCRSType' does not name a type
     arg4 = static_cast< OSRCRSType >(val4);
                         ^
  extensions/osr_wrap.cpp:16688:27: error: expected primary-expression before ')' token
       result = (OSRCRSInfo *)new_OSRCRSInfo((char const *)arg1,(char const *)arg2,(char const *)arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,(char const *)arg11,(char const *)arg12);
                             ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_delete_CRSInfo(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16718:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16718:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16718:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16728:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16728:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16728:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16728:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16728:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16733:27: error: 'delete_OSRCRSInfo' was not declared in this scope
       delete_OSRCRSInfo(arg1);
                             ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_auth_name_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16760:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16760:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16760:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16771:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16771:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16771:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16771:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16771:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16781:51: error: 'OSRCRSInfo_auth_name_get' cannot be used as a function
       result = (char *)OSRCRSInfo_auth_name_get(arg1);
                                                     ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_code_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16801:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16801:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16801:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16812:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16812:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16812:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16812:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16812:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16822:46: error: 'OSRCRSInfo_code_get' cannot be used as a function
       result = (char *)OSRCRSInfo_code_get(arg1);
                                                ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_name_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16842:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16842:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16842:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16853:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16853:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16853:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16853:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16853:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16863:46: error: 'OSRCRSInfo_name_get' cannot be used as a function
       result = (char *)OSRCRSInfo_name_get(arg1);
                                                ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_type_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16883:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16883:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16883:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16887:3: error: 'OSRCRSType' was not declared in this scope
     OSRCRSType result;
     ^
  extensions/osr_wrap.cpp:16894:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16894:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16894:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16894:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16894:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16904:5: error: 'result' was not declared in this scope
       result = (OSRCRSType)OSRCRSInfo_type_get(arg1);
       ^
  extensions/osr_wrap.cpp:16914:48: error: 'result' was not declared in this scope
     resultobj = SWIG_From_int(static_cast< int >(result));
                                                  ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_deprecated_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16924:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16924:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16924:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16935:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16935:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16935:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16935:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16935:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16945:50: error: 'OSRCRSInfo_deprecated_get' cannot be used as a function
       result = (bool)OSRCRSInfo_deprecated_get(arg1);
                                                    ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_bbox_valid_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:16965:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:16965:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:16965:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:16976:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:16976:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:16976:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:16976:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:16976:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:16986:50: error: 'OSRCRSInfo_bbox_valid_get' cannot be used as a function
       result = (bool)OSRCRSInfo_bbox_valid_get(arg1);
                                                    ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_west_lon_degree_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:17006:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:17006:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:17006:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:17017:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:17017:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:17017:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:17017:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:17017:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:17027:57: error: 'OSRCRSInfo_west_lon_degree_get' cannot be used as a function
       result = (double)OSRCRSInfo_west_lon_degree_get(arg1);
                                                           ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_south_lat_degree_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:17047:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:17047:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:17047:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:17058:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:17058:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:17058:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:17058:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:17058:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:17068:58: error: 'OSRCRSInfo_south_lat_degree_get' cannot be used as a function
       result = (double)OSRCRSInfo_south_lat_degree_get(arg1);
                                                            ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_east_lon_degree_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:17088:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:17088:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:17088:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:17099:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:17099:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:17099:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:17099:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:17099:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:17109:57: error: 'OSRCRSInfo_east_lon_degree_get' cannot be used as a function
       result = (double)OSRCRSInfo_east_lon_degree_get(arg1);
                                                           ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_north_lat_degree_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:17129:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:17129:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:17129:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:17140:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:17140:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:17140:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:17140:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:17140:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:17150:58: error: 'OSRCRSInfo_north_lat_degree_get' cannot be used as a function
       result = (double)OSRCRSInfo_north_lat_degree_get(arg1);
                                                            ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_area_name_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:17170:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:17170:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:17170:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:17181:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:17181:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:17181:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:17181:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:17181:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:17191:51: error: 'OSRCRSInfo_area_name_get' cannot be used as a function
       result = (char *)OSRCRSInfo_area_name_get(arg1);
                                                     ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_projection_method_get(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:17211:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
     ^
  extensions/osr_wrap.cpp:17211:15: error: 'arg1' was not declared in this scope
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                 ^
  extensions/osr_wrap.cpp:17211:35: error: expected primary-expression before ')' token
     OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                     ^
  extensions/osr_wrap.cpp:17222:28: error: 'OSRCRSInfo' does not name a type
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                              ^
  extensions/osr_wrap.cpp:17222:39: error: expected '>' before '*' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                         ^
  extensions/osr_wrap.cpp:17222:39: error: expected '(' before '*' token
  extensions/osr_wrap.cpp:17222:41: error: expected primary-expression before '>' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
  extensions/osr_wrap.cpp:17222:49: error: expected ')' before ';' token
     arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                   ^
  extensions/osr_wrap.cpp:17232:59: error: 'OSRCRSInfo_projection_method_get' cannot be used as a function
       result = (char *)OSRCRSInfo_projection_method_get(arg1);
                                                             ^
  extensions/osr_wrap.cpp: In function 'PyObject* _wrap_GetCRSInfoListFromDatabase(PyObject*, PyObject*)':
  extensions/osr_wrap.cpp:17253:3: error: 'OSRCRSInfo' was not declared in this scope
     OSRCRSInfo ***arg2 = (OSRCRSInfo ***) 0 ;
     ^
  extensions/osr_wrap.cpp:17253:17: error: 'arg2' was not declared in this scope
     OSRCRSInfo ***arg2 = (OSRCRSInfo ***) 0 ;
                   ^
  extensions/osr_wrap.cpp:17253:39: error: expected primary-expression before ')' token
     OSRCRSInfo ***arg2 = (OSRCRSInfo ***) 0 ;
                                         ^
  extensions/osr_wrap.cpp:17258:16: error: 'list2' was not declared in this scope
     OSRCRSInfo **list2 = 0 ;
                  ^
  extensions/osr_wrap.cpp:17292:19: error: 'o' was not declared in this scope
         OSRCRSInfo *o = new_OSRCRSInfo( (*arg2)[i]->pszAuthName,
                     ^
  extensions/osr_wrap.cpp:17303:41: error: 'new_OSRCRSInfo' was not declared in this scope
           (*arg2)[i]->pszProjectionMethod );
                                           ^
  extensions/osr_wrap.cpp:17314:36: error: 'OSRDestroyCRSInfoList' was not declared in this scope
       OSRDestroyCRSInfoList( *(arg2) );
                                      ^
  extensions/osr_wrap.cpp:17322:36: error: 'OSRDestroyCRSInfoList' was not declared in this scope
       OSRDestroyCRSInfoList( *(arg2) );
                                      ^
  extensions/ogr_wrap.cpp: In function 'PyObject* _wrap_CreateGeometryFromWkb(PyObject*, PyObject*, PyObject*)':
  extensions/ogr_wrap.cpp:21022:17: warning: 'int PyObject_AsReadBuffer(PyObject*, const void**, Py_ssize_t*)' is deprecated [-Wdeprecated-declarations]
         int res = PyObject_AsReadBuffer(obj0, &safeBuf, &safeLen);
                   ^
  In file included from /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/Python.h:147:0,
                   from extensions/ogr_wrap.cpp:175:
  /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/abstract.h:337:17: note: declared here
   PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
                   ^
  extensions/ogr_wrap.cpp:21022:17: warning: 'int PyObject_AsReadBuffer(PyObject*, const void**, Py_ssize_t*)' is deprecated [-Wdeprecated-declarations]
         int res = PyObject_AsReadBuffer(obj0, &safeBuf, &safeLen);
                   ^
  In file included from /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/Python.h:147:0,
                   from extensions/ogr_wrap.cpp:175:
  /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/abstract.h:337:17: note: declared here
   PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
                   ^
  extensions/ogr_wrap.cpp:21022:63: warning: 'int PyObject_AsReadBuffer(PyObject*, const void**, Py_ssize_t*)' is deprecated [-Wdeprecated-declarations]
         int res = PyObject_AsReadBuffer(obj0, &safeBuf, &safeLen);
                                                                 ^
  In file included from /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/Python.h:147:0,
                   from extensions/ogr_wrap.cpp:175:
  /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/abstract.h:337:17: note: declared here
   PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
                   ^
  extensions/osr_wrap.cpp: In function 'PyObject* PyInit__osr()':
  extensions/osr_wrap.cpp:18684:92: error: 'OSR_CRS_TYPE_GEOGRAPHIC_2D' was not declared in this scope
     SWIG_Python_SetConstant(d, "OSR_CRS_TYPE_GEOGRAPHIC_2D",SWIG_From_int(static_cast< int >(OSR_CRS_TYPE_GEOGRAPHIC_2D)));
                                                                                              ^
  extensions/osr_wrap.cpp:18685:92: error: 'OSR_CRS_TYPE_GEOGRAPHIC_3D' was not declared in this scope
     SWIG_Python_SetConstant(d, "OSR_CRS_TYPE_GEOGRAPHIC_3D",SWIG_From_int(static_cast< int >(OSR_CRS_TYPE_GEOGRAPHIC_3D)));
                                                                                              ^
  extensions/osr_wrap.cpp:18686:89: error: 'OSR_CRS_TYPE_GEOCENTRIC' was not declared in this scope
     SWIG_Python_SetConstant(d, "OSR_CRS_TYPE_GEOCENTRIC",SWIG_From_int(static_cast< int >(OSR_CRS_TYPE_GEOCENTRIC)));
                                                                                           ^
  extensions/osr_wrap.cpp:18687:88: error: 'OSR_CRS_TYPE_PROJECTED' was not declared in this scope
     SWIG_Python_SetConstant(d, "OSR_CRS_TYPE_PROJECTED",SWIG_From_int(static_cast< int >(OSR_CRS_TYPE_PROJECTED)));
                                                                                          ^
  extensions/osr_wrap.cpp:18688:87: error: 'OSR_CRS_TYPE_VERTICAL' was not declared in this scope
     SWIG_Python_SetConstant(d, "OSR_CRS_TYPE_VERTICAL",SWIG_From_int(static_cast< int >(OSR_CRS_TYPE_VERTICAL)));
                                                                                         ^
  extensions/osr_wrap.cpp:18689:87: error: 'OSR_CRS_TYPE_COMPOUND' was not declared in this scope
     SWIG_Python_SetConstant(d, "OSR_CRS_TYPE_COMPOUND",SWIG_From_int(static_cast< int >(OSR_CRS_TYPE_COMPOUND)));
                                                                                         ^
  extensions/osr_wrap.cpp:18690:84: error: 'OSR_CRS_TYPE_OTHER' was not declared in this scope
     SWIG_Python_SetConstant(d, "OSR_CRS_TYPE_OTHER",SWIG_From_int(static_cast< int >(OSR_CRS_TYPE_OTHER)));
                                                                                      ^
  extensions/ogr_wrap.cpp: In function 'PyObject* _wrap_new_Geometry(PyObject*, PyObject*, PyObject*)':
  extensions/ogr_wrap.cpp:21857:19: warning: 'int PyObject_AsReadBuffer(PyObject*, const void**, Py_ssize_t*)' is deprecated [-Wdeprecated-declarations]
           int res = PyObject_AsReadBuffer(obj2, &safeBuf, &safeLen);
                     ^
  In file included from /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/Python.h:147:0,
                   from extensions/ogr_wrap.cpp:175:
  /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/abstract.h:337:17: note: declared here
   PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
                   ^
  extensions/ogr_wrap.cpp:21857:19: warning: 'int PyObject_AsReadBuffer(PyObject*, const void**, Py_ssize_t*)' is deprecated [-Wdeprecated-declarations]
           int res = PyObject_AsReadBuffer(obj2, &safeBuf, &safeLen);
                     ^
  In file included from /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/Python.h:147:0,
                   from extensions/ogr_wrap.cpp:175:
  /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/abstract.h:337:17: note: declared here
   PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
                   ^
  extensions/ogr_wrap.cpp:21857:65: warning: 'int PyObject_AsReadBuffer(PyObject*, const void**, Py_ssize_t*)' is deprecated [-Wdeprecated-declarations]
           int res = PyObject_AsReadBuffer(obj2, &safeBuf, &safeLen);
                                                                   ^
  In file included from /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/Python.h:147:0,
                   from extensions/ogr_wrap.cpp:175:
  /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/abstract.h:337:17: note: declared here
   PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
                   ^
  In file included from /usr/include/gdal/ogr_feature.h:35:0,
                   from /usr/include/gdal/ogrsf_frmts.h:35,
                   from /usr/include/gdal/gnm.h:35,
                   from /usr/include/gdal/gnm_api.h:35,
                   from extensions/gnm_wrap.cpp:3141:
  /usr/include/gdal/ogr_featurestyle.h:88:5: error: 'CPLString' does not name a type
       CPLString osLastRequestedStyleName;
       ^
  In file included from /usr/include/gdal/ogrsf_frmts.h:37:0,
                   from /usr/include/gdal/gnm.h:35,
                   from /usr/include/gdal/gnm_api.h:35,
                   from extensions/gnm_wrap.cpp:3141:
  /usr/include/gdal/gdal_priv.h:90:5: error: 'CPLStringList' does not name a type
       CPLStringList **papoMetadataLists;
       ^
  /usr/include/gdal/gdal_priv.h:130:5: error: 'CPLString' does not name a type
       CPLString           sDescription;
       ^
  /usr/include/gdal/gdal_priv.h:171:5: error: 'CPLString' does not name a type
       CPLString   osOvrFilename;
       ^
  /usr/include/gdal/gdal_priv.h:552:5: error: 'CPLStringList' does not name a type
       CPLStringList oDerivedMetadataList;
       ^
  /usr/include/gdal/gdal_priv.h:1277:14: error: 'CPLString' was not declared in this scope
       std::map<CPLString, GDALDriver*> oMapNameToDrivers;
                ^
  /usr/include/gdal/gdal_priv.h:1277:36: error: template argument 1 is invalid
       std::map<CPLString, GDALDriver*> oMapNameToDrivers;
                                      ^
  /usr/include/gdal/gdal_priv.h:1277:36: error: template argument 3 is invalid
  /usr/include/gdal/gdal_priv.h:1277:36: error: template argument 4 is invalid
  /usr/include/gdal/gdal_priv.h: In member function 'GDALDriver* GDALDriverManager::GetDriverByName_unlocked(const char*)':
  /usr/include/gdal/gdal_priv.h:1284:57: error: 'CPLString' was not declared in this scope
               { return oMapNameToDrivers[CPLString(pszName).toupper()]; }
                                                           ^
  In file included from /usr/include/gdal/ogrsf_frmts.h:37:0,
                   from /usr/include/gdal/gnm.h:35,
                   from /usr/include/gdal/gnm_api.h:35,
                   from extensions/gnm_wrap.cpp:3141:
  /usr/include/gdal/gdal_priv.h: At global scope:
  /usr/include/gdal/gdal_priv.h:1559:1: error: 'CPLString' does not name a type
   CPLString GDALFindAssociatedFile( const char *pszBasename, const char *pszExt,
   ^
  In file included from /usr/include/gdal/gnm_api.h:35:0,
                   from extensions/gnm_wrap.cpp:3141:
  /usr/include/gdal/gnm.h:170:5: error: 'CPLString' does not name a type
       CPLString m_soName;
       ^
  /usr/include/gdal/gnm.h:171:5: error: 'CPLString' does not name a type
       CPLString m_soSRS;
       ^
  /usr/include/gdal/gnm.h:223:13: error: 'CPLString' does not name a type
       virtual CPLString GetAlgorithmName(GNMDirection eAlgorithm, bool bShortName);
               ^
  /usr/include/gdal/gnm.h:465:23: error: 'CPLString' was not declared in this scope
       std::map<GNMGFID, CPLString> m_moFeatureFIDMap;
                         ^
  /usr/include/gdal/gnm.h:465:32: error: template argument 2 is invalid
       std::map<GNMGFID, CPLString> m_moFeatureFIDMap;
                                  ^
  /usr/include/gdal/gnm.h:465:32: error: template argument 4 is invalid
  /usr/include/gdal/gnm.h:609:5: error: 'CPLString' does not name a type
       CPLString m_soLayerName;
       ^
  /usr/include/gdal/gnm.h:666:35: error: 'CPLString' does not name a type
       virtual bool CanConnect(const CPLString &soSrcLayerName,
                                     ^
  /usr/include/gdal/gnm.h:667:35: error: 'CPLString' does not name a type
                               const CPLString &soTgtLayerName,
                                     ^
  /usr/include/gdal/gnm.h:668:35: error: 'CPLString' does not name a type
                               const CPLString &soConnLayerName = "");
                                     ^
  /usr/include/gdal/gnm.h:670:13: error: 'CPLString' does not name a type
       virtual CPLString GetSourceLayerName() const;
               ^
  /usr/include/gdal/gnm.h:672:13: error: 'CPLString' does not name a type
       virtual CPLString GetTargetLayerName() const;
               ^
  /usr/include/gdal/gnm.h:674:13: error: 'CPLString' does not name a type
       virtual CPLString GetConnectorLayerName() const;
               ^
  /usr/include/gdal/gnm.h:683:5: error: 'CPLString' does not name a type
       CPLString m_soSrcLayerName;
       ^
  /usr/include/gdal/gnm.h:684:5: error: 'CPLString' does not name a type
       CPLString m_soTgtLayerName;
       ^
  /usr/include/gdal/gnm.h:685:5: error: 'CPLString' does not name a type
       CPLString m_soConnLayerName;
       ^
  /usr/include/gdal/gnm.h:689:5: error: 'CPLString' does not name a type
       CPLString m_soRuleString;
       ^
  /usr/include/gdal/gnm.h:668:64: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
                               const CPLString &soConnLayerName = "");
                                                                  ^
  /usr/include/gdal/gnm.h:722:39: error: 'CPLString' does not name a type
                                   const CPLString &soLayerName, int nPathNo,
                                         ^
  extensions/gnm_wrap.cpp: In function 'GNMNetworkShadow* CastToNetwork(GDALMajorObjectShadow*)':
  extensions/gnm_wrap.cpp:3469:72: error: 'GNMCastToNetwork' was not declared in this scope
         return (GNMNetworkShadow*)GNMCastToNetwork((GDALMajorObjectH)base);
                                                                          ^
  extensions/gnm_wrap.cpp: In function 'GNMGenericNetworkShadow* CastToGenericNetwork(GDALMajorObjectShadow*)':
  extensions/gnm_wrap.cpp:3474:86: error: 'GNMCastToGenericNetwork' was not declared in this scope
         return (GNMGenericNetworkShadow*)GNMCastToGenericNetwork((GDALMajorObjectH)base);
                                                                                        ^
  extensions/gdal_array_wrap.cpp:3584:25: error: 'virtual const char* NUMPYDataset::_GetProjectionRef()' marked 'override', but does not override
       virtual const char *_GetProjectionRef(void) override;
                           ^
  extensions/gdal_array_wrap.cpp:3585:32: error: 'const OGRSpatialReference* NUMPYDataset::GetSpatialRef() const' marked 'override', but does not override
       const OGRSpatialReference* GetSpatialRef() const override {
                                  ^
  extensions/gdal_array_wrap.cpp:3588:20: error: 'virtual CPLErr NUMPYDataset::_SetProjection(const char*)' marked 'override', but does not override
       virtual CPLErr _SetProjection( const char * ) override;
                      ^
  extensions/gdal_array_wrap.cpp:3589:12: error: 'CPLErr NUMPYDataset::SetSpatialRef(const OGRSpatialReference*)' marked 'override', but does not override
       CPLErr SetSpatialRef(const OGRSpatialReference* poSRS) override {
              ^
  extensions/gdal_array_wrap.cpp:3597:25: error: 'virtual const char* NUMPYDataset::_GetGCPProjection()' marked 'override', but does not override
       virtual const char *_GetGCPProjection() override;
                           ^
  extensions/gdal_array_wrap.cpp:3598:32: error: 'const OGRSpatialReference* NUMPYDataset::GetGCPSpatialRef() const' marked 'override', but does not override
       const OGRSpatialReference* GetGCPSpatialRef() const override {
                                  ^
  extensions/gdal_array_wrap.cpp:3602:20: error: 'virtual CPLErr NUMPYDataset::_SetGCPs(int, const GDAL_GCP*, const char*)' marked 'override', but does not override
       virtual CPLErr _SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList,
                      ^
  extensions/gdal_array_wrap.cpp:3605:12: error: 'CPLErr NUMPYDataset::SetGCPs(int, const GDAL_GCP*, const OGRSpatialReference*)' marked 'override', but does not override
       CPLErr SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList,
              ^
  extensions/gdal_array_wrap.cpp: In member function 'const OGRSpatialReference* NUMPYDataset::GetSpatialRef() const':
  extensions/gdal_array_wrap.cpp:3586:53: error: 'GetSpatialRefFromOldGetProjectionRef' was not declared in this scope
           return GetSpatialRefFromOldGetProjectionRef();
                                                       ^
  extensions/gdal_array_wrap.cpp: In member function 'CPLErr NUMPYDataset::SetSpatialRef(const OGRSpatialReference*)':
  extensions/gdal_array_wrap.cpp:3590:55: error: 'OldSetProjectionFromSetSpatialRef' was not declared in this scope
           return OldSetProjectionFromSetSpatialRef(poSRS);
                                                         ^
  extensions/gdal_array_wrap.cpp: In member function 'const OGRSpatialReference* NUMPYDataset::GetGCPSpatialRef() const':
  extensions/gdal_array_wrap.cpp:3599:56: error: 'GetGCPSpatialRefFromOldGetGCPProjection' was not declared in this scope
           return GetGCPSpatialRefFromOldGetGCPProjection();
                                                          ^
  extensions/gdal_array_wrap.cpp: In member function 'CPLErr NUMPYDataset::SetGCPs(int, const GDAL_GCP*, const OGRSpatialReference*)':
  extensions/gdal_array_wrap.cpp:3607:62: error: 'OldSetGCPsFromNew' was not declared in this scope
           return OldSetGCPsFromNew(nGCPCount, pasGCPList, poSRS);
                                                                ^
  extensions/gdal_array_wrap.cpp: At global scope:
  extensions/gdal_array_wrap.cpp:3995:10: error: 'unique_ptr' in namespace 'std' does not name a template type
       std::unique_ptr<GDALDataset> poMEMDS{};
            ^
  extensions/gdal_array_wrap.cpp:4003:10: error: 'shared_ptr' in namespace 'std' does not name a template type
       std::shared_ptr<GDALGroup> GetRootGroup() const override { return poMEMDS->GetRootGroup(); }
            ^
  extensions/gdal_array_wrap.cpp: In static member function 'static GDALDataset* NUMPYMultiDimensionalDataset::Open(PyArrayObject*)':
  extensions/gdal_array_wrap.cpp:4039:24: error: 'FromHandle' is not a member of 'GDALDriver'
       auto poMemDriver = GDALDriver::FromHandle(GDALGetDriverByName("MEM"));
                          ^
  extensions/gdal_array_wrap.cpp:4051:17: error: 'shared_ptr' is not a member of 'std'
       std::vector<std::shared_ptr<GDALDimension>> apoDims;
                   ^
  extensions/gdal_array_wrap.cpp:4051:17: error: 'shared_ptr' is not a member of 'std'
  extensions/gdal_array_wrap.cpp:4051:33: error: 'GDALDimension' was not declared in this scope
       std::vector<std::shared_ptr<GDALDimension>> apoDims;
                                   ^
  extensions/gdal_array_wrap.cpp:4051:33: error: template argument 1 is invalid
  extensions/gdal_array_wrap.cpp:4051:33: error: template argument 2 is invalid
  extensions/gdal_array_wrap.cpp:4051:46: error: expected unqualified-id before '>' token
       std::vector<std::shared_ptr<GDALDimension>> apoDims;
                                                ^
  extensions/gdal_array_wrap.cpp:4061:9: error: 'apoDims' was not declared in this scope
           apoDims.push_back(poDim);
           ^
  extensions/gdal_array_wrap.cpp:4076:39: error: 'apoDims' was not declared in this scope
                                         apoDims,
                                         ^
  extensions/gdal_array_wrap.cpp:4077:39: error: 'GDALExtendedDataType' has not been declared
                                         GDALExtendedDataType::Create(eType),
                                         ^
  extensions/gdal_array_wrap.cpp:4081:16: error: type '<type error>' argument given to 'delete', expected pointer
           delete poMEMDS;
                  ^
  extensions/gdal_array_wrap.cpp:4086:22: error: 'FromHandle' is not a member of 'GDALDriver'
       poDS->poDriver = GDALDriver::FromHandle(GDALGetDriverByName("NUMPY"));
                        ^
  extensions/gdal_array_wrap.cpp:4090:11: error: 'class NUMPYMultiDimensionalDataset' has no member named 'poMEMDS'
       poDS->poMEMDS.reset(poMEMDS);
             ^
  extensions/gdal_array_wrap.cpp: At global scope:
  extensions/gdal_array_wrap.cpp:4473:34: error: 'GDALExtendedDataTypeHS' was not declared in this scope
   static bool CheckNumericDataType(GDALExtendedDataTypeHS* dt)
                                    ^
  extensions/gdal_array_wrap.cpp:4473:58: error: 'dt' was not declared in this scope
   static bool CheckNumericDataType(GDALExtendedDataTypeHS* dt)
                                                            ^
  extensions/gdal_array_wrap.cpp:4474:1: error: expected ',' or ';' before '{' token
   {
   ^
  extensions/gdal_array_wrap.cpp:3523:13: warning: 'void _StoreLastException()' defined but not used [-Wunused-function]
   static void _StoreLastException()
               ^
  In file included from /home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h:21:0,
                   from /home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h:4,
                   from extensions/gdal_array_wrap.cpp:3548:
  /home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include/numpy/__multiarray_api.h:1463:1: warning: 'int _import_array()' defined but not used [-Wunused-function]
   _import_array(void)
   ^
  extensions/gdal_array_wrap.cpp:4473:13: warning: 'CheckNumericDataType' defined but not used [-Wunused-variable]
   static bool CheckNumericDataType(GDALExtendedDataTypeHS* dt)
               ^
  error: command 'cc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for gdal
DEPRECATION: Could not build wheels for gdal which do not use PEP 517. pip will fall back to legacy 'setup.py install' for these. pip 21.0 will remove support for this functionality. A possible replacement is to fix the wheel build issue reported above. You can find discussion regarding this at https://github.com/pypa/pip/issues/8368.
    ERROR: Command errored out with exit status 1:
     command: /home/linuxbrew/.linuxbrew/opt/python@3.8/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-slie5dz0/gdal/setup.py'"'"'; __file__='"'"'/tmp/pip-install-slie5dz0/gdal/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-9k0lla7y/install-record.txt --single-version-externally-managed --compile --install-headers /home/linuxbrew/.linuxbrew/include/python3.8/gdal
         cwd: /tmp/pip-install-slie5dz0/gdal/
    Complete output (1592 lines):
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.8
    copying gdal.py -> build/lib.linux-x86_64-3.8
    copying ogr.py -> build/lib.linux-x86_64-3.8
    copying osr.py -> build/lib.linux-x86_64-3.8
    copying gdalconst.py -> build/lib.linux-x86_64-3.8
    copying gdalnumeric.py -> build/lib.linux-x86_64-3.8
    creating build/lib.linux-x86_64-3.8/osgeo
    copying osgeo/osr.py -> build/lib.linux-x86_64-3.8/osgeo
    copying osgeo/gdalnumeric.py -> build/lib.linux-x86_64-3.8/osgeo
    copying osgeo/ogr.py -> build/lib.linux-x86_64-3.8/osgeo
    copying osgeo/gdal.py -> build/lib.linux-x86_64-3.8/osgeo
    copying osgeo/__init__.py -> build/lib.linux-x86_64-3.8/osgeo
    copying osgeo/gdalconst.py -> build/lib.linux-x86_64-3.8/osgeo
    copying osgeo/gnm.py -> build/lib.linux-x86_64-3.8/osgeo
    copying osgeo/gdal_array.py -> build/lib.linux-x86_64-3.8/osgeo
    /home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/setuptools/lib2to3_ex.py:39: SetuptoolsDeprecationWarning: 2to3 support is deprecated. If the project still requires Python 2 support, please migrate to a single-codebase solution or employ an independent conversion process.
      warnings.warn(
    Fixing build/lib.linux-x86_64-3.8/gdal.py build/lib.linux-x86_64-3.8/ogr.py build/lib.linux-x86_64-3.8/osr.py build/lib.linux-x86_64-3.8/gdalconst.py build/lib.linux-x86_64-3.8/gdalnumeric.py build/lib.linux-x86_64-3.8/osgeo/osr.py build/lib.linux-x86_64-3.8/osgeo/gdalnumeric.py build/lib.linux-x86_64-3.8/osgeo/ogr.py build/lib.linux-x86_64-3.8/osgeo/gdal.py build/lib.linux-x86_64-3.8/osgeo/__init__.py build/lib.linux-x86_64-3.8/osgeo/gdalconst.py build/lib.linux-x86_64-3.8/osgeo/gnm.py build/lib.linux-x86_64-3.8/osgeo/gdal_array.py
    Skipping optional fixer: ws_comma
    Fixing build/lib.linux-x86_64-3.8/gdal.py build/lib.linux-x86_64-3.8/ogr.py build/lib.linux-x86_64-3.8/osr.py build/lib.linux-x86_64-3.8/gdalconst.py build/lib.linux-x86_64-3.8/gdalnumeric.py build/lib.linux-x86_64-3.8/osgeo/osr.py build/lib.linux-x86_64-3.8/osgeo/gdalnumeric.py build/lib.linux-x86_64-3.8/osgeo/ogr.py build/lib.linux-x86_64-3.8/osgeo/gdal.py build/lib.linux-x86_64-3.8/osgeo/__init__.py build/lib.linux-x86_64-3.8/osgeo/gdalconst.py build/lib.linux-x86_64-3.8/osgeo/gnm.py build/lib.linux-x86_64-3.8/osgeo/gdal_array.py
    Skipping optional fixer: ws_comma
    running build_ext
    cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c gdal_python_cxx11_test.cpp -o gdal_python_cxx11_test.o
    cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c gdal_python_cxx11_test.cpp -o gdal_python_cxx11_test.o -std=c++11
    building 'osgeo._gdal' extension
    building 'osgeo._gdalconst' extension
    building 'osgeo._osr' extension
    creating build/temp.linux-x86_64-3.8
    creating build/temp.linux-x86_64-3.8
    building 'osgeo._ogr' extension
    creating build/temp.linux-x86_64-3.8
    creating build/temp.linux-x86_64-3.8/extensions
    creating build/temp.linux-x86_64-3.8/extensions
    creating build/temp.linux-x86_64-3.8/extensions
    cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c extensions/ogr_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/ogr_wrap.o -std=c++11 -I/usr/include/gdal
    cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c extensions/gdalconst_wrap.c -o build/temp.linux-x86_64-3.8/extensions/gdalconst_wrap.o -I/usr/include/gdal
    cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c extensions/osr_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/osr_wrap.o -std=c++11 -I/usr/include/gdal
    cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c extensions/gdal_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/gdal_wrap.o -std=c++11 -I/usr/include/gdal
    extensions/gdalconst_wrap.c: In function 'PyInit__gdalconst':
    extensions/gdalconst_wrap.c:3879:71: error: 'GDAL_OF_MULTIDIM_RASTER' undeclared (first use in this function)
       SWIG_Python_SetConstant(d, "OF_MULTIDIM_RASTER",SWIG_From_int((int)(GDAL_OF_MULTIDIM_RASTER)));
                                                                           ^
    extensions/gdalconst_wrap.c:3879:71: note: each undeclared identifier is reported only once for each function it appears in
    extensions/gdalconst_wrap.c:3903:71: error: 'GDAL_DIM_TYPE_HORIZONTAL_X' undeclared (first use in this function)
       SWIG_Python_SetConstant(d, "DIM_TYPE_HORIZONTAL_X",SWIG_FromCharPtr(GDAL_DIM_TYPE_HORIZONTAL_X));
                                                                           ^
    extensions/gdalconst_wrap.c:3904:71: error: 'GDAL_DIM_TYPE_HORIZONTAL_Y' undeclared (first use in this function)
       SWIG_Python_SetConstant(d, "DIM_TYPE_HORIZONTAL_Y",SWIG_FromCharPtr(GDAL_DIM_TYPE_HORIZONTAL_Y));
                                                                           ^
    extensions/gdalconst_wrap.c:3905:67: error: 'GDAL_DIM_TYPE_VERTICAL' undeclared (first use in this function)
       SWIG_Python_SetConstant(d, "DIM_TYPE_VERTICAL",SWIG_FromCharPtr(GDAL_DIM_TYPE_VERTICAL));
                                                                       ^
    extensions/gdalconst_wrap.c:3906:67: error: 'GDAL_DIM_TYPE_TEMPORAL' undeclared (first use in this function)
       SWIG_Python_SetConstant(d, "DIM_TYPE_TEMPORAL",SWIG_FromCharPtr(GDAL_DIM_TYPE_TEMPORAL));
                                                                       ^
    extensions/gdalconst_wrap.c:3907:69: error: 'GDAL_DIM_TYPE_PARAMETRIC' undeclared (first use in this function)
       SWIG_Python_SetConstant(d, "DIM_TYPE_PARAMETRIC",SWIG_FromCharPtr(GDAL_DIM_TYPE_PARAMETRIC));
                                                                         ^
    extensions/gdalconst_wrap.c:3935:66: error: 'GRTT_THEMATIC' undeclared (first use in this function)
       SWIG_Python_SetConstant(d, "GRTT_THEMATIC",SWIG_From_int((int)(GRTT_THEMATIC)));
                                                                      ^
    extensions/gdalconst_wrap.c:3936:67: error: 'GRTT_ATHEMATIC' undeclared (first use in this function)
       SWIG_Python_SetConstant(d, "GRTT_ATHEMATIC",SWIG_From_int((int)(GRTT_ATHEMATIC)));
                                                                       ^
    building 'osgeo._gnm' extension
    cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c extensions/gnm_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/gnm_wrap.o -std=c++11 -I/usr/include/gdal
    extensions/osr_wrap.cpp: In function 'const char* OSRSpatialReferenceShadow_GetName(OSRSpatialReferenceShadow*)':
    extensions/osr_wrap.cpp:3688:29: error: 'OSRGetName' was not declared in this scope
         return OSRGetName( self );
                                 ^
    extensions/osr_wrap.cpp: In function 'int OSRSpatialReferenceShadow_IsSame(OSRSpatialReferenceShadow*, OSRSpatialReferenceShadow*, char**)':
    extensions/osr_wrap.cpp:3760:44: error: 'OSRIsSameEx' was not declared in this scope
         return OSRIsSameEx( self, rhs, options );
                                                ^
    extensions/osr_wrap.cpp: In function 'int OSRSpatialReferenceShadow_IsDerivedGeographic(OSRSpatialReferenceShadow*)':
    extensions/osr_wrap.cpp:3772:39: error: 'OSRIsDerivedGeographic' was not declared in this scope
         return OSRIsDerivedGeographic(self);
                                           ^
    extensions/osr_wrap.cpp: In function 'OSRAreaOfUse* OSRSpatialReferenceShadow_GetAreaOfUse(OSRSpatialReferenceShadow*)':
    extensions/osr_wrap.cpp:3967:26: error: 'OSRGetAreaOfUse' was not declared in this scope
                         &name) )
                              ^
    extensions/osr_wrap.cpp: In function 'int OSRSpatialReferenceShadow_GetAxesCount(OSRSpatialReferenceShadow*)':
    extensions/osr_wrap.cpp:3979:32: error: 'OSRGetAxesCount' was not declared in this scope
         return OSRGetAxesCount(self);
                                    ^
    extensions/osr_wrap.cpp: At global scope:
    extensions/osr_wrap.cpp:3986:12: error: 'OSRAxisMappingStrategy' does not name a type
     SWIGINTERN OSRAxisMappingStrategy OSRSpatialReferenceShadow_GetAxisMappingStrategy(OSRSpatialReferenceShadow *self){
                ^
    extensions/osr_wrap.cpp:3989:98: error: 'OSRAxisMappingStrategy' has not been declared
     SWIGINTERN void OSRSpatialReferenceShadow_SetAxisMappingStrategy(OSRSpatialReferenceShadow *self,OSRAxisMappingStrategy strategy){
                                                                                                      ^
    extensions/osr_wrap.cpp: In function 'void OSRSpatialReferenceShadow_SetAxisMappingStrategy(OSRSpatialReferenceShadow*, int)':
    extensions/osr_wrap.cpp:3990:45: error: 'OSRSetAxisMappingStrategy' was not declared in this scope
         OSRSetAxisMappingStrategy(self, strategy);
                                                 ^
    extensions/osr_wrap.cpp: In function 'void OSRSpatialReferenceShadow_GetDataAxisToSRSAxisMapping(OSRSpatialReferenceShadow*, int*, const int**)':
    extensions/osr_wrap.cpp:3993:57: error: 'OSRGetDataAxisToSRSAxisMapping' was not declared in this scope
           *pList = OSRGetDataAxisToSRSAxisMapping(self, nLen);
                                                             ^
    extensions/osr_wrap.cpp: In function 'OGRErr OSRSpatialReferenceShadow_SetDataAxisToSRSAxisMapping(OSRSpatialReferenceShadow*, int, int*)':
    extensions/osr_wrap.cpp:4027:61: error: 'OSRSetDataAxisToSRSAxisMapping' was not declared in this scope
         return OSRSetDataAxisToSRSAxisMapping(self, nList, pList);
                                                                 ^
    extensions/osr_wrap.cpp: In function 'void OSRSpatialReferenceShadow_FindMatches(OSRSpatialReferenceShadow*, char**, OSRSpatialReferenceShadow***, int*, int**)':
    extensions/osr_wrap.cpp:4048:76: error: 'OSRFindMatches' was not declared in this scope
             *matches = OSRFindMatches(self, options, nvalues, confidence_values);
                                                                                ^
    extensions/osr_wrap.cpp: In function 'OGRErr OSRSpatialReferenceShadow_SetVerticalPerspective(OSRSpatialReferenceShadow*, double, double, double, double, double, double)':
    extensions/osr_wrap.cpp:4236:81: error: 'OSRSetVerticalPerspective' was not declared in this scope
             topoOriginLat, topoOriginLon, topoOriginHeight, viewPointHeight, fe, fn );
                                                                                     ^
    extensions/osr_wrap.cpp: In function 'OGRErr OSRSpatialReferenceShadow_AddGuessedTOWGS84(OSRSpatialReferenceShadow*)':
    extensions/osr_wrap.cpp:4278:39: error: 'OSRAddGuessedTOWGS84' was not declared in this scope
         return OSRAddGuessedTOWGS84( self );
                                           ^
    extensions/osr_wrap.cpp: In function 'OGRErr OSRSpatialReferenceShadow_ExportToWkt(OSRSpatialReferenceShadow*, char**, char**)':
    extensions/osr_wrap.cpp:4337:52: error: 'OSRExportToWktEx' was not declared in this scope
         return OSRExportToWktEx( self, argout, options );
                                                        ^
    extensions/osr_wrap.cpp: In function 'OGRErr OSRSpatialReferenceShadow_ExportToPROJJSON(OSRSpatialReferenceShadow*, char**, char**)':
    extensions/osr_wrap.cpp:4343:55: error: 'OSRExportToPROJJSON' was not declared in this scope
         return OSRExportToPROJJSON( self, argout, options );
                                                           ^
    extensions/osr_wrap.cpp: In function 'OSRSpatialReferenceShadow* OSRSpatialReferenceShadow_ConvertToOtherProjection(OSRSpatialReferenceShadow*, const char*, char**)':
    extensions/osr_wrap.cpp:4379:71: error: 'OSRConvertToOtherProjection' was not declared in this scope
         return OSRConvertToOtherProjection(self, other_projection, options);
                                                                           ^
    extensions/osr_wrap.cpp: In function 'OGRErr OSRSpatialReferenceShadow_PromoteTo3D(OSRSpatialReferenceShadow*, const char*)':
    extensions/osr_wrap.cpp:4382:37: error: 'OSRPromoteTo3D' was not declared in this scope
         return OSRPromoteTo3D(self, name);
                                         ^
    extensions/osr_wrap.cpp: At global scope:
    extensions/osr_wrap.cpp:4384:12: error: 'OGRCoordinateTransformationOptions' does not name a type
     SWIGINTERN OGRCoordinateTransformationOptions *new_OGRCoordinateTransformationOptions(){
                ^
    extensions/osr_wrap.cpp:4387:59: error: variable or field 'delete_OGRCoordinateTransformationOptions' declared void
     SWIGINTERN void delete_OGRCoordinateTransformationOptions(OGRCoordinateTransformationOptions *self){
                                                               ^
    extensions/osr_wrap.cpp:4387:59: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
    extensions/osr_wrap.cpp:4387:95: error: 'self' was not declared in this scope
     SWIGINTERN void delete_OGRCoordinateTransformationOptions(OGRCoordinateTransformationOptions *self){
                                                                                                   ^
    extensions/osr_wrap.cpp:4390:70: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
     SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                          ^
    extensions/osr_wrap.cpp:4390:106: error: 'self' was not declared in this scope
     SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                                                              ^
    extensions/osr_wrap.cpp:4390:111: error: expected primary-expression before 'double'
     SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                                                                   ^
    extensions/osr_wrap.cpp:4390:135: error: expected primary-expression before 'double'
     SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                                                                                           ^
    extensions/osr_wrap.cpp:4390:159: error: expected primary-expression before 'double'
     SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                                                                                                                   ^
    extensions/osr_wrap.cpp:4390:183: error: expected primary-expression before 'double'
     SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                                                                                                                                           ^
    extensions/osr_wrap.cpp:4390:206: error: expression list treated as compound expression in initializer [-fpermissive]
     SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                                                                                                                                                                  ^
    extensions/osr_wrap.cpp:4390:207: error: expected ',' or ';' before '{' token
     SWIGINTERN bool OGRCoordinateTransformationOptions_SetAreaOfInterest(OGRCoordinateTransformationOptions *self,double westLongitudeDeg,double southLatitudeDeg,double eastLongitudeDeg,double northLatitudeDeg){
                                                                                                                                                                                                                   ^
    extensions/osr_wrap.cpp:4395:65: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
     SWIGINTERN bool OGRCoordinateTransformationOptions_SetOperation(OGRCoordinateTransformationOptions *self,char const *operation){
                                                                     ^
    extensions/osr_wrap.cpp:4395:101: error: 'self' was not declared in this scope
     SWIGINTERN bool OGRCoordinateTransformationOptions_SetOperation(OGRCoordinateTransformationOptions *self,char const *operation){
                                                                                                         ^
    extensions/osr_wrap.cpp:4395:106: error: expected primary-expression before 'char'
     SWIGINTERN bool OGRCoordinateTransformationOptions_SetOperation(OGRCoordinateTransformationOptions *self,char const *operation){
                                                                                                              ^
    extensions/osr_wrap.cpp:4395:127: error: expression list treated as compound expression in initializer [-fpermissive]
     SWIGINTERN bool OGRCoordinateTransformationOptions_SetOperation(OGRCoordinateTransformationOptions *self,char const *operation){
                                                                                                                                   ^
    extensions/osr_wrap.cpp:4395:128: error: expected ',' or ';' before '{' token
     SWIGINTERN bool OGRCoordinateTransformationOptions_SetOperation(OGRCoordinateTransformationOptions *self,char const *operation){
                                                                                                                                    ^
    extensions/osr_wrap.cpp:4401:155: error: 'OGRCoordinateTransformationOptions' has not been declared
     SWIGINTERN OSRCoordinateTransformationShadow *new_OSRCoordinateTransformationShadow__SWIG_1(OSRSpatialReferenceShadow *src,OSRSpatialReferenceShadow *dst,OGRCoordinateTransformationOptions *options){
                                                                                                                                                               ^
    extensions/osr_wrap.cpp: In function 'OSRCoordinateTransformationShadow* new_OSRCoordinateTransformationShadow__SWIG_1(OSRSpatialReferenceShadow*, OSRSpatialReferenceShadow*, int*)':
    extensions/osr_wrap.cpp:4403:71: error: 'OCTNewCoordinateTransformationEx' was not declared in this scope
             options ? OCTNewCoordinateTransformationEx( src, dst, options ) : OCTNewCoordinateTransformation(src, dst);
                                                                           ^
    extensions/osr_wrap.cpp: In function 'void OSRCoordinateTransformationShadow_TransformPoint__SWIG_1(OSRCoordinateTransformationShadow*, double*)':
    extensions/osr_wrap.cpp:4416:79: error: 'OCTTransform4D' was not declared in this scope
         OCTTransform4D( self, 1, &inout[0], &inout[1], &inout[2], &inout[3], NULL );
                                                                                   ^
    extensions/osr_wrap.cpp: In function 'void OSRCoordinateTransformationShadow_TransformPoint__SWIG_3(OSRCoordinateTransformationShadow*, double*, double, double, double, double)':
    extensions/osr_wrap.cpp:4433:83: error: 'OCTTransform4D' was not declared in this scope
         OCTTransform4D( self, 1, &argout[0], &argout[1], &argout[2], &argout[3], NULL );
                                                                                       ^
    extensions/osr_wrap.cpp: In function 'void OSRCoordinateTransformationShadow_TransformPoints(OSRCoordinateTransformationShadow*, int, double*, double*, double*, double*)':
    extensions/osr_wrap.cpp:4534:52: error: 'OCTTransform4D' was not declared in this scope
         OCTTransform4D( self, nCount, x, y, z, t, NULL );
                                                        ^
    extensions/osr_wrap.cpp: At global scope:
    extensions/osr_wrap.cpp:4537:134: error: 'OGRCoordinateTransformationOptions' has not been declared
       OSRCoordinateTransformationShadow *CreateCoordinateTransformation( OSRSpatialReferenceShadow *src, OSRSpatialReferenceShadow *dst, OGRCoordinateTransformationOptions* options = NULL ) {
                                                                                                                                          ^
    extensions/osr_wrap.cpp: In function 'OSRCoordinateTransformationShadow* CreateCoordinateTransformation(OSRSpatialReferenceShadow*, OSRSpatialReferenceShadow*, int*)':
    extensions/osr_wrap.cpp:4539:71: error: 'OCTNewCoordinateTransformationEx' was not declared in this scope
             options ? OCTNewCoordinateTransformationEx( src, dst, options ) : OCTNewCoordinateTransformation(src, dst);
                                                                           ^
    extensions/osr_wrap.cpp: At global scope:
    extensions/osr_wrap.cpp:4556:12: error: 'OSRCRSInfo' does not name a type
     SWIGINTERN OSRCRSInfo *new_OSRCRSInfo(char const *auth_name,char const *code,char const *name,OSRCRSType type,bool deprecated,bool bbox_valid,double west_lon_degree,double south_lat_degree,double east_lon_degree,double north_lat_degree,char const *area_name,char const *projection_method){
                ^
    extensions/osr_wrap.cpp:4572:35: error: variable or field 'delete_OSRCRSInfo' declared void
     SWIGINTERN void delete_OSRCRSInfo(OSRCRSInfo *self){
                                       ^
    extensions/osr_wrap.cpp:4572:35: error: 'OSRCRSInfo' was not declared in this scope
    extensions/osr_wrap.cpp:4572:47: error: 'self' was not declared in this scope
     SWIGINTERN void delete_OSRCRSInfo(OSRCRSInfo *self){
                                                   ^
    extensions/osr_wrap.cpp:4582:39: error: 'OSRCRSInfo' was not declared in this scope
     const char* OSRCRSInfo_auth_name_get( OSRCRSInfo *crsInfo ) {
                                           ^
    extensions/osr_wrap.cpp:4582:51: error: 'crsInfo' was not declared in this scope
     const char* OSRCRSInfo_auth_name_get( OSRCRSInfo *crsInfo ) {
                                                       ^
    extensions/osr_wrap.cpp:4582:61: error: expected ',' or ';' before '{' token
     const char* OSRCRSInfo_auth_name_get( OSRCRSInfo *crsInfo ) {
                                                                 ^
    extensions/osr_wrap.cpp:4586:34: error: 'OSRCRSInfo' was not declared in this scope
     const char* OSRCRSInfo_code_get( OSRCRSInfo *crsInfo ) {
                                      ^
    extensions/osr_wrap.cpp:4586:46: error: 'crsInfo' was not declared in this scope
     const char* OSRCRSInfo_code_get( OSRCRSInfo *crsInfo ) {
                                                  ^
    extensions/osr_wrap.cpp:4586:56: error: expected ',' or ';' before '{' token
     const char* OSRCRSInfo_code_get( OSRCRSInfo *crsInfo ) {
                                                            ^
    extensions/osr_wrap.cpp:4590:34: error: 'OSRCRSInfo' was not declared in this scope
     const char* OSRCRSInfo_name_get( OSRCRSInfo *crsInfo ) {
                                      ^
    extensions/osr_wrap.cpp:4590:46: error: 'crsInfo' was not declared in this scope
     const char* OSRCRSInfo_name_get( OSRCRSInfo *crsInfo ) {
                                                  ^
    extensions/osr_wrap.cpp:4590:56: error: expected ',' or ';' before '{' token
     const char* OSRCRSInfo_name_get( OSRCRSInfo *crsInfo ) {
                                                            ^
    extensions/osr_wrap.cpp:4594:1: error: 'OSRCRSType' does not name a type
     OSRCRSType OSRCRSInfo_type_get( OSRCRSInfo *crsInfo ) {
     ^
    extensions/osr_wrap.cpp:4598:33: error: 'OSRCRSInfo' was not declared in this scope
     bool OSRCRSInfo_deprecated_get( OSRCRSInfo *crsInfo ) {
                                     ^
    extensions/osr_wrap.cpp:4598:45: error: 'crsInfo' was not declared in this scope
     bool OSRCRSInfo_deprecated_get( OSRCRSInfo *crsInfo ) {
                                                 ^
    extensions/osr_wrap.cpp:4598:55: error: expected ',' or ';' before '{' token
     bool OSRCRSInfo_deprecated_get( OSRCRSInfo *crsInfo ) {
                                                           ^
    extensions/osr_wrap.cpp:4602:33: error: 'OSRCRSInfo' was not declared in this scope
     bool OSRCRSInfo_bbox_valid_get( OSRCRSInfo *crsInfo ) {
                                     ^
    extensions/osr_wrap.cpp:4602:45: error: 'crsInfo' was not declared in this scope
     bool OSRCRSInfo_bbox_valid_get( OSRCRSInfo *crsInfo ) {
                                                 ^
    extensions/osr_wrap.cpp:4602:55: error: expected ',' or ';' before '{' token
     bool OSRCRSInfo_bbox_valid_get( OSRCRSInfo *crsInfo ) {
                                                           ^
    extensions/osr_wrap.cpp:4606:40: error: 'OSRCRSInfo' was not declared in this scope
     double OSRCRSInfo_west_lon_degree_get( OSRCRSInfo *crsInfo ) {
                                            ^
    extensions/osr_wrap.cpp:4606:52: error: 'crsInfo' was not declared in this scope
     double OSRCRSInfo_west_lon_degree_get( OSRCRSInfo *crsInfo ) {
                                                        ^
    extensions/osr_wrap.cpp:4606:62: error: expected ',' or ';' before '{' token
     double OSRCRSInfo_west_lon_degree_get( OSRCRSInfo *crsInfo ) {
                                                                  ^
    extensions/osr_wrap.cpp:4610:41: error: 'OSRCRSInfo' was not declared in this scope
     double OSRCRSInfo_south_lat_degree_get( OSRCRSInfo *crsInfo ) {
                                             ^
    extensions/osr_wrap.cpp:4610:53: error: 'crsInfo' was not declared in this scope
     double OSRCRSInfo_south_lat_degree_get( OSRCRSInfo *crsInfo ) {
                                                         ^
    extensions/osr_wrap.cpp:4610:63: error: expected ',' or ';' before '{' token
     double OSRCRSInfo_south_lat_degree_get( OSRCRSInfo *crsInfo ) {
                                                                   ^
    extensions/osr_wrap.cpp:4614:40: error: 'OSRCRSInfo' was not declared in this scope
     double OSRCRSInfo_east_lon_degree_get( OSRCRSInfo *crsInfo ) {
                                            ^
    extensions/osr_wrap.cpp:4614:52: error: 'crsInfo' was not declared in this scope
     double OSRCRSInfo_east_lon_degree_get( OSRCRSInfo *crsInfo ) {
                                                        ^
    extensions/osr_wrap.cpp:4614:62: error: expected ',' or ';' before '{' token
     double OSRCRSInfo_east_lon_degree_get( OSRCRSInfo *crsInfo ) {
                                                                  ^
    extensions/osr_wrap.cpp:4618:41: error: 'OSRCRSInfo' was not declared in this scope
     double OSRCRSInfo_north_lat_degree_get( OSRCRSInfo *crsInfo ) {
                                             ^
    extensions/osr_wrap.cpp:4618:53: error: 'crsInfo' was not declared in this scope
     double OSRCRSInfo_north_lat_degree_get( OSRCRSInfo *crsInfo ) {
                                                         ^
    extensions/osr_wrap.cpp:4618:63: error: expected ',' or ';' before '{' token
     double OSRCRSInfo_north_lat_degree_get( OSRCRSInfo *crsInfo ) {
                                                                   ^
    extensions/osr_wrap.cpp:4622:39: error: 'OSRCRSInfo' was not declared in this scope
     const char* OSRCRSInfo_area_name_get( OSRCRSInfo *crsInfo ) {
                                           ^
    extensions/osr_wrap.cpp:4622:51: error: 'crsInfo' was not declared in this scope
     const char* OSRCRSInfo_area_name_get( OSRCRSInfo *crsInfo ) {
                                                       ^
    extensions/osr_wrap.cpp:4622:61: error: expected ',' or ';' before '{' token
     const char* OSRCRSInfo_area_name_get( OSRCRSInfo *crsInfo ) {
                                                                 ^
    extensions/osr_wrap.cpp:4626:47: error: 'OSRCRSInfo' was not declared in this scope
     const char* OSRCRSInfo_projection_method_get( OSRCRSInfo *crsInfo ) {
                                                   ^
    extensions/osr_wrap.cpp:4626:59: error: 'crsInfo' was not declared in this scope
     const char* OSRCRSInfo_projection_method_get( OSRCRSInfo *crsInfo ) {
                                                               ^
    extensions/osr_wrap.cpp:4626:69: error: expected ',' or ';' before '{' token
     const char* OSRCRSInfo_projection_method_get( OSRCRSInfo *crsInfo ) {
                                                                         ^
    extensions/osr_wrap.cpp:4633:34: error: 'OSRCRSInfo' has not been declared
                                      OSRCRSInfo*** pList,
                                      ^
    extensions/osr_wrap.cpp: In function 'void GetCRSInfoListFromDatabase(const char*, int***, int*)':
    extensions/osr_wrap.cpp:4636:71: error: 'OSRGetCRSInfoListFromDatabase' was not declared in this scope
         *pList = OSRGetCRSInfoListFromDatabase(authName, NULL, pnListCount);
                                                                           ^
    extensions/osr_wrap.cpp: In function 'void SetPROJSearchPath(const char*)':
    extensions/osr_wrap.cpp:4643:36: error: 'OSRSetPROJSearchPaths' was not declared in this scope
         OSRSetPROJSearchPaths(apszPaths);
                                        ^
    extensions/osr_wrap.cpp: In function 'void SetPROJSearchPaths(char**)':
    extensions/osr_wrap.cpp:4649:32: error: 'OSRSetPROJSearchPaths' was not declared in this scope
         OSRSetPROJSearchPaths(paths);
                                    ^
    extensions/osr_wrap.cpp: In function 'char** GetPROJSearchPaths()':
    extensions/osr_wrap.cpp:4655:34: error: 'OSRGetPROJSearchPaths' was not declared in this scope
         return OSRGetPROJSearchPaths();
                                      ^
    extensions/osr_wrap.cpp: In function 'int GetPROJVersionMajor()':
    extensions/osr_wrap.cpp:4662:39: error: 'OSRGetPROJVersion' was not declared in this scope
         OSRGetPROJVersion(&num, NULL, NULL);
                                           ^
    extensions/osr_wrap.cpp: In function 'int GetPROJVersionMinor()':
    extensions/osr_wrap.cpp:4669:39: error: 'OSRGetPROJVersion' was not declared in this scope
         OSRGetPROJVersion(NULL, &num, NULL);
                                           ^
    extensions/osr_wrap.cpp: In function 'int GetPROJVersionMicro()':
    extensions/osr_wrap.cpp:4676:39: error: 'OSRGetPROJVersion' was not declared in this scope
         OSRGetPROJVersion(NULL, NULL, &num);
                                           ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_SpatialReference_GetAxisMappingStrategy(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:7097:3: error: 'OSRAxisMappingStrategy' was not declared in this scope
       OSRAxisMappingStrategy result;
       ^
    extensions/osr_wrap.cpp:7109:5: error: 'result' was not declared in this scope
         result = (OSRAxisMappingStrategy)OSRSpatialReferenceShadow_GetAxisMappingStrategy(arg1);
         ^
    extensions/osr_wrap.cpp:7119:48: error: 'result' was not declared in this scope
       resultobj = SWIG_From_int(static_cast< int >(result));
                                                    ^
    extensions/ogr_wrap.cpp: In function 'int ValidateOGRFieldSubType(OGRFieldSubType)':
    extensions/ogr_wrap.cpp:4897:18: error: 'OFSTJSON' was not declared in this scope
                 case OFSTJSON:
                      ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_SpatialReference_SetAxisMappingStrategy(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:7130:3: error: 'OSRAxisMappingStrategy' was not declared in this scope
       OSRAxisMappingStrategy arg2 ;
       ^
    extensions/osr_wrap.cpp:7148:3: error: 'arg2' was not declared in this scope
       arg2 = static_cast< OSRAxisMappingStrategy >(val2);
       ^
    extensions/osr_wrap.cpp:7148:23: error: 'OSRAxisMappingStrategy' does not name a type
       arg2 = static_cast< OSRAxisMappingStrategy >(val2);
                           ^
    extensions/ogr_wrap.cpp: In function 'OGRGeometryShadow* CreateGeometryFromEsriJson(const char*)':
    extensions/ogr_wrap.cpp:5075:96: error: 'OGR_G_CreateGeometryFromEsriJson' was not declared in this scope
         OGRGeometryShadow* geom = (OGRGeometryShadow*)OGR_G_CreateGeometryFromEsriJson(input_string);
                                                                                                    ^
    extensions/ogr_wrap.cpp: In function 'void OGRGeometryShadow_SwapXY(OGRGeometryShadow*)':
    extensions/ogr_wrap.cpp:5323:22: error: 'OGR_G_SwapXY' was not declared in this scope
         OGR_G_SwapXY(self);
                          ^
    extensions/ogr_wrap.cpp: In function 'OGRGeometryShadow* OGRGeometryShadow_MakeValid(OGRGeometryShadow*)':
    extensions/ogr_wrap.cpp:5350:53: error: 'OGR_G_MakeValid' was not declared in this scope
         return (OGRGeometryShadow*) OGR_G_MakeValid(self);
                                                         ^
    extensions/ogr_wrap.cpp: In function 'OGRGeometryShadow* OGRGeometryShadow_RemoveLowerDimensionSubGeoms(OGRGeometryShadow*)':
    extensions/ogr_wrap.cpp:5353:72: error: 'OGR_G_RemoveLowerDimensionSubGeoms' was not declared in this scope
         return (OGRGeometryShadow*) OGR_G_RemoveLowerDimensionSubGeoms(self);
                                                                            ^
    extensions/ogr_wrap.cpp: In function 'OGRGeometryShadow* OGRGeometryShadow_Transform__SWIG_1(OGRGeometryShadow*, OGRGeomTransformerShadow*)':
    extensions/ogr_wrap.cpp:5505:79: error: 'OGR_GeomTransformer_Transform' was not declared in this scope
         return (OGRGeometryShadow*)OGR_GeomTransformer_Transform(transformer, self);
                                                                                   ^
    extensions/ogr_wrap.cpp: In function 'OGRGeomTransformerShadow* new_OGRGeomTransformerShadow(OSRCoordinateTransformationShadow*, char**)':
    extensions/ogr_wrap.cpp:5508:50: error: 'OGR_GeomTransformer_Create' was not declared in this scope
         return OGR_GeomTransformer_Create(ct, options);
                                                      ^
    extensions/ogr_wrap.cpp: In function 'void delete_OGRGeomTransformerShadow(OGRGeomTransformerShadow*)':
    extensions/ogr_wrap.cpp:5511:39: error: 'OGR_GeomTransformer_Destroy' was not declared in this scope
         OGR_GeomTransformer_Destroy( self );
                                           ^
    extensions/ogr_wrap.cpp: In function 'OGRGeometryShadow* OGRGeomTransformerShadow_Transform(OGRGeomTransformerShadow*, OGRGeometryShadow*)':
    extensions/ogr_wrap.cpp:5514:76: error: 'OGR_GeomTransformer_Transform' was not declared in this scope
         return (OGRGeometryShadow*)OGR_GeomTransformer_Transform(self, src_geom);
                                                                                ^
    extensions/gdal_wrap.cpp:3209:9: error: 'GDALExtendedDataTypeHS' does not name a type
     typedef GDALExtendedDataTypeHS GDALExtendedDataTypeHS;
             ^
    extensions/gdal_wrap.cpp:3210:9: error: 'GDALEDTComponentHS' does not name a type
     typedef GDALEDTComponentHS GDALEDTComponentHS;
             ^
    extensions/gdal_wrap.cpp:3211:9: error: 'GDALGroupHS' does not name a type
     typedef GDALGroupHS GDALGroupHS;
             ^
    extensions/gdal_wrap.cpp:3212:9: error: 'GDALMDArrayHS' does not name a type
     typedef GDALMDArrayHS GDALMDArrayHS;
             ^
    extensions/gdal_wrap.cpp:3213:9: error: 'GDALAttributeHS' does not name a type
     typedef GDALAttributeHS GDALAttributeHS;
             ^
    extensions/gdal_wrap.cpp:3214:9: error: 'GDALDimensionHS' does not name a type
     typedef GDALDimensionHS GDALDimensionHS;
             ^
    extensions/gdal_wrap.cpp:4117:1: error: 'VSIDIR' does not name a type
     VSIDIR* wrapper_VSIOpenDir( const char * utf8_path,
     ^
    extensions/gdal_wrap.cpp:4234:38: error: 'VSIDIR' was not declared in this scope
     DirEntry* wrapper_VSIGetNextDirEntry(VSIDIR* dir)
                                          ^
    extensions/gdal_wrap.cpp:4234:46: error: 'dir' was not declared in this scope
     DirEntry* wrapper_VSIGetNextDirEntry(VSIDIR* dir)
                                                  ^
    extensions/gdal_wrap.cpp:4235:1: error: expected ',' or ';' before '{' token
     {
     ^
    extensions/gdal_wrap.cpp:3249:7: warning: 'char* get_aligned_buffer(char*, GDALDataType)' defined but not used [-Wunused-function]
     char* get_aligned_buffer(char* data, GDALDataType ntype)
           ^
    extensions/gdal_wrap.cpp:3268:13: warning: 'void update_buffer_size(void*, char*, char*, size_t)' defined but not used [-Wunused-function]
     static void update_buffer_size(void* obj, char* data, char* data_aligned, size_t buf_size)
                 ^
    extensions/gdal_wrap.cpp:3323:5: warning: 'int GetUseExceptions()' defined but not used [-Wunused-function]
     int GetUseExceptions() {
         ^
    extensions/gdal_wrap.cpp:3329:6: warning: 'void UseExceptions()' defined but not used [-Wunused-function]
     void UseExceptions() {
          ^
    extensions/gdal_wrap.cpp:3346:6: warning: 'void DontUseExceptions()' defined but not used [-Wunused-function]
     void DontUseExceptions() {
          ^
    extensions/gdal_wrap.cpp:3394:13: warning: 'void ClearErrorState()' defined but not used [-Wunused-function]
     static void ClearErrorState()
                 ^
    extensions/gdal_wrap.cpp:4128:15: warning: 'char** CSLFromPySequence(PyObject*, int*)' defined but not used [-Wunused-function]
     static char **CSLFromPySequence( PyObject *pySeq, int *pbErr )
                   ^
    building 'osgeo._gdal_array' extension
    cc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/openssl@1.1/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8 -I/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include -I/usr/include -c extensions/gdal_array_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/gdal_array_wrap.o -std=c++11 -I/usr/include/gdal
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_new_CoordinateTransformationOptions(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:15183:3: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
       OGRCoordinateTransformationOptions *result = 0 ;
       ^
    extensions/osr_wrap.cpp:15183:39: error: 'result' was not declared in this scope
       OGRCoordinateTransformationOptions *result = 0 ;
                                           ^
    extensions/osr_wrap.cpp:15190:51: error: expected primary-expression before ')' token
         result = (OGRCoordinateTransformationOptions *)new_OGRCoordinateTransformationOptions();
                                                       ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_delete_CoordinateTransformationOptions(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:15210:3: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
       OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
       ^
    extensions/osr_wrap.cpp:15210:39: error: 'arg1' was not declared in this scope
       OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
                                           ^
    extensions/osr_wrap.cpp:15210:83: error: expected primary-expression before ')' token
       OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
                                                                                       ^
    extensions/osr_wrap.cpp:15220:28: error: 'OGRCoordinateTransformationOptions' does not name a type
       arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                ^
    extensions/osr_wrap.cpp:15220:63: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                   ^
    extensions/osr_wrap.cpp:15220:63: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:15220:65: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                     ^
    extensions/osr_wrap.cpp:15220:73: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                             ^
    extensions/osr_wrap.cpp:15225:51: error: 'delete_OGRCoordinateTransformationOptions' was not declared in this scope
         delete_OGRCoordinateTransformationOptions(arg1);
                                                       ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CoordinateTransformationOptions_SetAreaOfInterest(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:15245:3: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
       OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
       ^
    extensions/osr_wrap.cpp:15245:39: error: 'arg1' was not declared in this scope
       OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
                                           ^
    extensions/osr_wrap.cpp:15245:83: error: expected primary-expression before ')' token
       OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
                                                                                       ^
    extensions/osr_wrap.cpp:15272:28: error: 'OGRCoordinateTransformationOptions' does not name a type
       arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                ^
    extensions/osr_wrap.cpp:15272:63: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                   ^
    extensions/osr_wrap.cpp:15272:63: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:15272:65: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                     ^
    extensions/osr_wrap.cpp:15272:73: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                             ^
    extensions/osr_wrap.cpp:15297:97: error: 'OGRCoordinateTransformationOptions_SetAreaOfInterest' cannot be used as a function
         result = (bool)OGRCoordinateTransformationOptions_SetAreaOfInterest(arg1,arg2,arg3,arg4,arg5);
                                                                                                     ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CoordinateTransformationOptions_SetOperation(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:15317:3: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
       OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
       ^
    extensions/osr_wrap.cpp:15317:39: error: 'arg1' was not declared in this scope
       OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
                                           ^
    extensions/osr_wrap.cpp:15317:83: error: expected primary-expression before ')' token
       OGRCoordinateTransformationOptions *arg1 = (OGRCoordinateTransformationOptions *) 0 ;
                                                                                       ^
    extensions/osr_wrap.cpp:15333:28: error: 'OGRCoordinateTransformationOptions' does not name a type
       arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                ^
    extensions/osr_wrap.cpp:15333:63: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                   ^
    extensions/osr_wrap.cpp:15333:63: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:15333:65: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                     ^
    extensions/osr_wrap.cpp:15333:73: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp1);
                                                                             ^
    extensions/osr_wrap.cpp:15343:91: error: 'OGRCoordinateTransformationOptions_SetOperation' cannot be used as a function
         result = (bool)OGRCoordinateTransformationOptions_SetOperation(arg1,(char const *)arg2);
                                                                                               ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_new_CoordinateTransformation__SWIG_1(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:15419:3: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
       OGRCoordinateTransformationOptions *arg3 = (OGRCoordinateTransformationOptions *) 0 ;
       ^
    extensions/osr_wrap.cpp:15419:39: error: 'arg3' was not declared in this scope
       OGRCoordinateTransformationOptions *arg3 = (OGRCoordinateTransformationOptions *) 0 ;
                                           ^
    extensions/osr_wrap.cpp:15419:83: error: expected primary-expression before ')' token
       OGRCoordinateTransformationOptions *arg3 = (OGRCoordinateTransformationOptions *) 0 ;
                                                                                       ^
    extensions/osr_wrap.cpp:15446:28: error: 'OGRCoordinateTransformationOptions' does not name a type
       arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                                ^
    extensions/osr_wrap.cpp:15446:63: error: expected '>' before '*' token
       arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                                                                   ^
    extensions/osr_wrap.cpp:15446:63: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:15446:65: error: expected primary-expression before '>' token
       arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                                                                     ^
    extensions/osr_wrap.cpp:15446:73: error: expected ')' before ';' token
       arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                                                                             ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CreateCoordinateTransformation(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16077:3: error: 'OGRCoordinateTransformationOptions' was not declared in this scope
       OGRCoordinateTransformationOptions *arg3 = (OGRCoordinateTransformationOptions *) NULL ;
       ^
    extensions/osr_wrap.cpp:16077:39: error: 'arg3' was not declared in this scope
       OGRCoordinateTransformationOptions *arg3 = (OGRCoordinateTransformationOptions *) NULL ;
                                           ^
    extensions/osr_wrap.cpp:16077:83: error: expected primary-expression before ')' token
       OGRCoordinateTransformationOptions *arg3 = (OGRCoordinateTransformationOptions *) NULL ;
                                                                                       ^
    extensions/osr_wrap.cpp:16105:30: error: 'OGRCoordinateTransformationOptions' does not name a type
         arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                                  ^
    extensions/osr_wrap.cpp:16105:65: error: expected '>' before '*' token
         arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                                                                     ^
    extensions/osr_wrap.cpp:16105:65: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16105:67: error: expected primary-expression before '>' token
         arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                                                                       ^
    extensions/osr_wrap.cpp:16105:75: error: expected ')' before ';' token
         arg3 = reinterpret_cast< OGRCoordinateTransformationOptions * >(argp3);
                                                                               ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_auth_name_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16131:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16131:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16131:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16142:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16142:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16142:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16142:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16142:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16147:51: error: 'OSRCRSInfo_auth_name_get' cannot be used as a function
         result = (char *)OSRCRSInfo_auth_name_get(arg1);
                                                       ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_code_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16167:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16167:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16167:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16178:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16178:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16178:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16178:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16178:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16183:46: error: 'OSRCRSInfo_code_get' cannot be used as a function
         result = (char *)OSRCRSInfo_code_get(arg1);
                                                  ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_name_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16203:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16203:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16203:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16214:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16214:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16214:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16214:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16214:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16219:46: error: 'OSRCRSInfo_name_get' cannot be used as a function
         result = (char *)OSRCRSInfo_name_get(arg1);
                                                  ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_type_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16239:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16239:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16239:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16243:3: error: 'OSRCRSType' was not declared in this scope
       OSRCRSType result;
       ^
    extensions/osr_wrap.cpp:16250:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16250:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16250:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16250:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16250:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16255:5: error: 'result' was not declared in this scope
         result = (OSRCRSType)OSRCRSInfo_type_get(arg1);
         ^
    extensions/osr_wrap.cpp:16265:48: error: 'result' was not declared in this scope
       resultobj = SWIG_From_int(static_cast< int >(result));
                                                    ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_deprecated_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16275:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16275:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16275:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16286:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16286:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16286:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16286:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16286:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16291:50: error: 'OSRCRSInfo_deprecated_get' cannot be used as a function
         result = (bool)OSRCRSInfo_deprecated_get(arg1);
                                                      ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_bbox_valid_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16311:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16311:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16311:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16322:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16322:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16322:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16322:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16322:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16327:50: error: 'OSRCRSInfo_bbox_valid_get' cannot be used as a function
         result = (bool)OSRCRSInfo_bbox_valid_get(arg1);
                                                      ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_west_lon_degree_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16347:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16347:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16347:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16358:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16358:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16358:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16358:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16358:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16363:57: error: 'OSRCRSInfo_west_lon_degree_get' cannot be used as a function
         result = (double)OSRCRSInfo_west_lon_degree_get(arg1);
                                                             ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_south_lat_degree_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16383:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16383:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16383:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16394:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16394:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16394:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16394:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16394:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16399:58: error: 'OSRCRSInfo_south_lat_degree_get' cannot be used as a function
         result = (double)OSRCRSInfo_south_lat_degree_get(arg1);
                                                              ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_east_lon_degree_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16419:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16419:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16419:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16430:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16430:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16430:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16430:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16430:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16435:57: error: 'OSRCRSInfo_east_lon_degree_get' cannot be used as a function
         result = (double)OSRCRSInfo_east_lon_degree_get(arg1);
                                                             ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_north_lat_degree_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16455:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16455:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16455:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16466:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16466:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16466:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16466:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16466:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16471:58: error: 'OSRCRSInfo_north_lat_degree_get' cannot be used as a function
         result = (double)OSRCRSInfo_north_lat_degree_get(arg1);
                                                              ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_area_name_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16491:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16491:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16491:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16502:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16502:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16502:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16502:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16502:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16507:51: error: 'OSRCRSInfo_area_name_get' cannot be used as a function
         result = (char *)OSRCRSInfo_area_name_get(arg1);
                                                       ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_CRSInfo_projection_method_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16527:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16527:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16527:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16538:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16538:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16538:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16538:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16538:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16543:59: error: 'OSRCRSInfo_projection_method_get' cannot be used as a function
         result = (char *)OSRCRSInfo_projection_method_get(arg1);
                                                               ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_new_CRSInfo(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16566:3: error: 'OSRCRSType' was not declared in this scope
       OSRCRSType arg4 ;
       ^
    extensions/osr_wrap.cpp:16616:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *result = 0 ;
       ^
    extensions/osr_wrap.cpp:16616:15: error: 'result' was not declared in this scope
       OSRCRSInfo *result = 0 ;
                   ^
    extensions/osr_wrap.cpp:16638:3: error: 'arg4' was not declared in this scope
       arg4 = static_cast< OSRCRSType >(val4);
       ^
    extensions/osr_wrap.cpp:16638:23: error: 'OSRCRSType' does not name a type
       arg4 = static_cast< OSRCRSType >(val4);
                           ^
    extensions/osr_wrap.cpp:16688:27: error: expected primary-expression before ')' token
         result = (OSRCRSInfo *)new_OSRCRSInfo((char const *)arg1,(char const *)arg2,(char const *)arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,(char const *)arg11,(char const *)arg12);
                               ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_delete_CRSInfo(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16718:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16718:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16718:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16728:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16728:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16728:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16728:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16728:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16733:27: error: 'delete_OSRCRSInfo' was not declared in this scope
         delete_OSRCRSInfo(arg1);
                               ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_auth_name_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16760:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16760:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16760:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16771:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16771:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16771:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16771:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16771:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16781:51: error: 'OSRCRSInfo_auth_name_get' cannot be used as a function
         result = (char *)OSRCRSInfo_auth_name_get(arg1);
                                                       ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_code_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16801:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16801:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16801:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16812:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16812:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16812:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16812:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16812:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16822:46: error: 'OSRCRSInfo_code_get' cannot be used as a function
         result = (char *)OSRCRSInfo_code_get(arg1);
                                                  ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_name_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16842:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16842:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16842:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16853:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16853:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16853:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16853:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16853:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16863:46: error: 'OSRCRSInfo_name_get' cannot be used as a function
         result = (char *)OSRCRSInfo_name_get(arg1);
                                                  ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_type_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16883:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16883:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16883:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16887:3: error: 'OSRCRSType' was not declared in this scope
       OSRCRSType result;
       ^
    extensions/osr_wrap.cpp:16894:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16894:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16894:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16894:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16894:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16904:5: error: 'result' was not declared in this scope
         result = (OSRCRSType)OSRCRSInfo_type_get(arg1);
         ^
    extensions/osr_wrap.cpp:16914:48: error: 'result' was not declared in this scope
       resultobj = SWIG_From_int(static_cast< int >(result));
                                                    ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_deprecated_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16924:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16924:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16924:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16935:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16935:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16935:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16935:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16935:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16945:50: error: 'OSRCRSInfo_deprecated_get' cannot be used as a function
         result = (bool)OSRCRSInfo_deprecated_get(arg1);
                                                      ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_bbox_valid_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:16965:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:16965:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:16965:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:16976:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:16976:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:16976:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:16976:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:16976:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:16986:50: error: 'OSRCRSInfo_bbox_valid_get' cannot be used as a function
         result = (bool)OSRCRSInfo_bbox_valid_get(arg1);
                                                      ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_west_lon_degree_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:17006:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:17006:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:17006:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:17017:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:17017:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:17017:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:17017:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:17017:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:17027:57: error: 'OSRCRSInfo_west_lon_degree_get' cannot be used as a function
         result = (double)OSRCRSInfo_west_lon_degree_get(arg1);
                                                             ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_south_lat_degree_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:17047:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:17047:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:17047:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:17058:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:17058:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:17058:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:17058:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:17058:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:17068:58: error: 'OSRCRSInfo_south_lat_degree_get' cannot be used as a function
         result = (double)OSRCRSInfo_south_lat_degree_get(arg1);
                                                              ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_east_lon_degree_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:17088:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:17088:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:17088:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:17099:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:17099:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:17099:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:17099:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:17099:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:17109:57: error: 'OSRCRSInfo_east_lon_degree_get' cannot be used as a function
         result = (double)OSRCRSInfo_east_lon_degree_get(arg1);
                                                             ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_north_lat_degree_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:17129:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:17129:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:17129:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:17140:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:17140:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:17140:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:17140:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:17140:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:17150:58: error: 'OSRCRSInfo_north_lat_degree_get' cannot be used as a function
         result = (double)OSRCRSInfo_north_lat_degree_get(arg1);
                                                              ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_area_name_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:17170:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:17170:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:17170:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:17181:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:17181:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:17181:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:17181:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:17181:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:17191:51: error: 'OSRCRSInfo_area_name_get' cannot be used as a function
         result = (char *)OSRCRSInfo_area_name_get(arg1);
                                                       ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_OSRCRSInfo_projection_method_get(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:17211:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
       ^
    extensions/osr_wrap.cpp:17211:15: error: 'arg1' was not declared in this scope
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                   ^
    extensions/osr_wrap.cpp:17211:35: error: expected primary-expression before ')' token
       OSRCRSInfo *arg1 = (OSRCRSInfo *) 0 ;
                                       ^
    extensions/osr_wrap.cpp:17222:28: error: 'OSRCRSInfo' does not name a type
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                ^
    extensions/osr_wrap.cpp:17222:39: error: expected '>' before '*' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                           ^
    extensions/osr_wrap.cpp:17222:39: error: expected '(' before '*' token
    extensions/osr_wrap.cpp:17222:41: error: expected primary-expression before '>' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                             ^
    extensions/osr_wrap.cpp:17222:49: error: expected ')' before ';' token
       arg1 = reinterpret_cast< OSRCRSInfo * >(argp1);
                                                     ^
    extensions/osr_wrap.cpp:17232:59: error: 'OSRCRSInfo_projection_method_get' cannot be used as a function
         result = (char *)OSRCRSInfo_projection_method_get(arg1);
                                                               ^
    extensions/osr_wrap.cpp: In function 'PyObject* _wrap_GetCRSInfoListFromDatabase(PyObject*, PyObject*)':
    extensions/osr_wrap.cpp:17253:3: error: 'OSRCRSInfo' was not declared in this scope
       OSRCRSInfo ***arg2 = (OSRCRSInfo ***) 0 ;
       ^
    extensions/osr_wrap.cpp:17253:17: error: 'arg2' was not declared in this scope
       OSRCRSInfo ***arg2 = (OSRCRSInfo ***) 0 ;
                     ^
    extensions/osr_wrap.cpp:17253:39: error: expected primary-expression before ')' token
       OSRCRSInfo ***arg2 = (OSRCRSInfo ***) 0 ;
                                           ^
    extensions/osr_wrap.cpp:17258:16: error: 'list2' was not declared in this scope
       OSRCRSInfo **list2 = 0 ;
                    ^
    extensions/osr_wrap.cpp:17292:19: error: 'o' was not declared in this scope
           OSRCRSInfo *o = new_OSRCRSInfo( (*arg2)[i]->pszAuthName,
                       ^
    extensions/osr_wrap.cpp:17303:41: error: 'new_OSRCRSInfo' was not declared in this scope
             (*arg2)[i]->pszProjectionMethod );
                                             ^
    extensions/osr_wrap.cpp:17314:36: error: 'OSRDestroyCRSInfoList' was not declared in this scope
         OSRDestroyCRSInfoList( *(arg2) );
                                        ^
    extensions/osr_wrap.cpp:17322:36: error: 'OSRDestroyCRSInfoList' was not declared in this scope
         OSRDestroyCRSInfoList( *(arg2) );
                                        ^
    extensions/ogr_wrap.cpp: In function 'PyObject* _wrap_CreateGeometryFromWkb(PyObject*, PyObject*, PyObject*)':
    extensions/ogr_wrap.cpp:21022:17: warning: 'int PyObject_AsReadBuffer(PyObject*, const void**, Py_ssize_t*)' is deprecated [-Wdeprecated-declarations]
           int res = PyObject_AsReadBuffer(obj0, &safeBuf, &safeLen);
                     ^
    In file included from /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/Python.h:147:0,
                     from extensions/ogr_wrap.cpp:175:
    /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/abstract.h:337:17: note: declared here
     PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
                     ^
    extensions/ogr_wrap.cpp:21022:17: warning: 'int PyObject_AsReadBuffer(PyObject*, const void**, Py_ssize_t*)' is deprecated [-Wdeprecated-declarations]
           int res = PyObject_AsReadBuffer(obj0, &safeBuf, &safeLen);
                     ^
    In file included from /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/Python.h:147:0,
                     from extensions/ogr_wrap.cpp:175:
    /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/abstract.h:337:17: note: declared here
     PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
                     ^
    extensions/ogr_wrap.cpp:21022:63: warning: 'int PyObject_AsReadBuffer(PyObject*, const void**, Py_ssize_t*)' is deprecated [-Wdeprecated-declarations]
           int res = PyObject_AsReadBuffer(obj0, &safeBuf, &safeLen);
                                                                   ^
    In file included from /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/Python.h:147:0,
                     from extensions/ogr_wrap.cpp:175:
    /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/abstract.h:337:17: note: declared here
     PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
                     ^
    extensions/osr_wrap.cpp: In function 'PyObject* PyInit__osr()':
    extensions/osr_wrap.cpp:18684:92: error: 'OSR_CRS_TYPE_GEOGRAPHIC_2D' was not declared in this scope
       SWIG_Python_SetConstant(d, "OSR_CRS_TYPE_GEOGRAPHIC_2D",SWIG_From_int(static_cast< int >(OSR_CRS_TYPE_GEOGRAPHIC_2D)));
                                                                                                ^
    extensions/osr_wrap.cpp:18685:92: error: 'OSR_CRS_TYPE_GEOGRAPHIC_3D' was not declared in this scope
       SWIG_Python_SetConstant(d, "OSR_CRS_TYPE_GEOGRAPHIC_3D",SWIG_From_int(static_cast< int >(OSR_CRS_TYPE_GEOGRAPHIC_3D)));
                                                                                                ^
    extensions/osr_wrap.cpp:18686:89: error: 'OSR_CRS_TYPE_GEOCENTRIC' was not declared in this scope
       SWIG_Python_SetConstant(d, "OSR_CRS_TYPE_GEOCENTRIC",SWIG_From_int(static_cast< int >(OSR_CRS_TYPE_GEOCENTRIC)));
                                                                                             ^
    extensions/osr_wrap.cpp:18687:88: error: 'OSR_CRS_TYPE_PROJECTED' was not declared in this scope
       SWIG_Python_SetConstant(d, "OSR_CRS_TYPE_PROJECTED",SWIG_From_int(static_cast< int >(OSR_CRS_TYPE_PROJECTED)));
                                                                                            ^
    extensions/osr_wrap.cpp:18688:87: error: 'OSR_CRS_TYPE_VERTICAL' was not declared in this scope
       SWIG_Python_SetConstant(d, "OSR_CRS_TYPE_VERTICAL",SWIG_From_int(static_cast< int >(OSR_CRS_TYPE_VERTICAL)));
                                                                                           ^
    extensions/osr_wrap.cpp:18689:87: error: 'OSR_CRS_TYPE_COMPOUND' was not declared in this scope
       SWIG_Python_SetConstant(d, "OSR_CRS_TYPE_COMPOUND",SWIG_From_int(static_cast< int >(OSR_CRS_TYPE_COMPOUND)));
                                                                                           ^
    extensions/osr_wrap.cpp:18690:84: error: 'OSR_CRS_TYPE_OTHER' was not declared in this scope
       SWIG_Python_SetConstant(d, "OSR_CRS_TYPE_OTHER",SWIG_From_int(static_cast< int >(OSR_CRS_TYPE_OTHER)));
                                                                                        ^
    extensions/ogr_wrap.cpp: In function 'PyObject* _wrap_new_Geometry(PyObject*, PyObject*, PyObject*)':
    extensions/ogr_wrap.cpp:21857:19: warning: 'int PyObject_AsReadBuffer(PyObject*, const void**, Py_ssize_t*)' is deprecated [-Wdeprecated-declarations]
             int res = PyObject_AsReadBuffer(obj2, &safeBuf, &safeLen);
                       ^
    In file included from /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/Python.h:147:0,
                     from extensions/ogr_wrap.cpp:175:
    /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/abstract.h:337:17: note: declared here
     PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
                     ^
    extensions/ogr_wrap.cpp:21857:19: warning: 'int PyObject_AsReadBuffer(PyObject*, const void**, Py_ssize_t*)' is deprecated [-Wdeprecated-declarations]
             int res = PyObject_AsReadBuffer(obj2, &safeBuf, &safeLen);
                       ^
    In file included from /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/Python.h:147:0,
                     from extensions/ogr_wrap.cpp:175:
    /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/abstract.h:337:17: note: declared here
     PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
                     ^
    extensions/ogr_wrap.cpp:21857:65: warning: 'int PyObject_AsReadBuffer(PyObject*, const void**, Py_ssize_t*)' is deprecated [-Wdeprecated-declarations]
             int res = PyObject_AsReadBuffer(obj2, &safeBuf, &safeLen);
                                                                     ^
    In file included from /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/Python.h:147:0,
                     from extensions/ogr_wrap.cpp:175:
    /home/linuxbrew/.linuxbrew/opt/python@3.8/include/python3.8/abstract.h:337:17: note: declared here
     PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
                     ^
    In file included from /usr/include/gdal/ogr_feature.h:35:0,
                     from /usr/include/gdal/ogrsf_frmts.h:35,
                     from /usr/include/gdal/gnm.h:35,
                     from /usr/include/gdal/gnm_api.h:35,
                     from extensions/gnm_wrap.cpp:3141:
    /usr/include/gdal/ogr_featurestyle.h:88:5: error: 'CPLString' does not name a type
         CPLString osLastRequestedStyleName;
         ^
    In file included from /usr/include/gdal/ogrsf_frmts.h:37:0,
                     from /usr/include/gdal/gnm.h:35,
                     from /usr/include/gdal/gnm_api.h:35,
                     from extensions/gnm_wrap.cpp:3141:
    /usr/include/gdal/gdal_priv.h:90:5: error: 'CPLStringList' does not name a type
         CPLStringList **papoMetadataLists;
         ^
    /usr/include/gdal/gdal_priv.h:130:5: error: 'CPLString' does not name a type
         CPLString           sDescription;
         ^
    /usr/include/gdal/gdal_priv.h:171:5: error: 'CPLString' does not name a type
         CPLString   osOvrFilename;
         ^
    /usr/include/gdal/gdal_priv.h:552:5: error: 'CPLStringList' does not name a type
         CPLStringList oDerivedMetadataList;
         ^
    /usr/include/gdal/gdal_priv.h:1277:14: error: 'CPLString' was not declared in this scope
         std::map<CPLString, GDALDriver*> oMapNameToDrivers;
                  ^
    /usr/include/gdal/gdal_priv.h:1277:36: error: template argument 1 is invalid
         std::map<CPLString, GDALDriver*> oMapNameToDrivers;
                                        ^
    /usr/include/gdal/gdal_priv.h:1277:36: error: template argument 3 is invalid
    /usr/include/gdal/gdal_priv.h:1277:36: error: template argument 4 is invalid
    /usr/include/gdal/gdal_priv.h: In member function 'GDALDriver* GDALDriverManager::GetDriverByName_unlocked(const char*)':
    /usr/include/gdal/gdal_priv.h:1284:57: error: 'CPLString' was not declared in this scope
                 { return oMapNameToDrivers[CPLString(pszName).toupper()]; }
                                                             ^
    In file included from /usr/include/gdal/ogrsf_frmts.h:37:0,
                     from /usr/include/gdal/gnm.h:35,
                     from /usr/include/gdal/gnm_api.h:35,
                     from extensions/gnm_wrap.cpp:3141:
    /usr/include/gdal/gdal_priv.h: At global scope:
    /usr/include/gdal/gdal_priv.h:1559:1: error: 'CPLString' does not name a type
     CPLString GDALFindAssociatedFile( const char *pszBasename, const char *pszExt,
     ^
    In file included from /usr/include/gdal/gnm_api.h:35:0,
                     from extensions/gnm_wrap.cpp:3141:
    /usr/include/gdal/gnm.h:170:5: error: 'CPLString' does not name a type
         CPLString m_soName;
         ^
    /usr/include/gdal/gnm.h:171:5: error: 'CPLString' does not name a type
         CPLString m_soSRS;
         ^
    /usr/include/gdal/gnm.h:223:13: error: 'CPLString' does not name a type
         virtual CPLString GetAlgorithmName(GNMDirection eAlgorithm, bool bShortName);
                 ^
    /usr/include/gdal/gnm.h:465:23: error: 'CPLString' was not declared in this scope
         std::map<GNMGFID, CPLString> m_moFeatureFIDMap;
                           ^
    /usr/include/gdal/gnm.h:465:32: error: template argument 2 is invalid
         std::map<GNMGFID, CPLString> m_moFeatureFIDMap;
                                    ^
    /usr/include/gdal/gnm.h:465:32: error: template argument 4 is invalid
    /usr/include/gdal/gnm.h:609:5: error: 'CPLString' does not name a type
         CPLString m_soLayerName;
         ^
    /usr/include/gdal/gnm.h:666:35: error: 'CPLString' does not name a type
         virtual bool CanConnect(const CPLString &soSrcLayerName,
                                       ^
    /usr/include/gdal/gnm.h:667:35: error: 'CPLString' does not name a type
                                 const CPLString &soTgtLayerName,
                                       ^
    /usr/include/gdal/gnm.h:668:35: error: 'CPLString' does not name a type
                                 const CPLString &soConnLayerName = "");
                                       ^
    /usr/include/gdal/gnm.h:670:13: error: 'CPLString' does not name a type
         virtual CPLString GetSourceLayerName() const;
                 ^
    /usr/include/gdal/gnm.h:672:13: error: 'CPLString' does not name a type
         virtual CPLString GetTargetLayerName() const;
                 ^
    /usr/include/gdal/gnm.h:674:13: error: 'CPLString' does not name a type
         virtual CPLString GetConnectorLayerName() const;
                 ^
    /usr/include/gdal/gnm.h:683:5: error: 'CPLString' does not name a type
         CPLString m_soSrcLayerName;
         ^
    /usr/include/gdal/gnm.h:684:5: error: 'CPLString' does not name a type
         CPLString m_soTgtLayerName;
         ^
    /usr/include/gdal/gnm.h:685:5: error: 'CPLString' does not name a type
         CPLString m_soConnLayerName;
         ^
    /usr/include/gdal/gnm.h:689:5: error: 'CPLString' does not name a type
         CPLString m_soRuleString;
         ^
    /usr/include/gdal/gnm.h:668:64: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
                                 const CPLString &soConnLayerName = "");
                                                                    ^
    /usr/include/gdal/gnm.h:722:39: error: 'CPLString' does not name a type
                                     const CPLString &soLayerName, int nPathNo,
                                           ^
    extensions/gnm_wrap.cpp: In function 'GNMNetworkShadow* CastToNetwork(GDALMajorObjectShadow*)':
    extensions/gnm_wrap.cpp:3469:72: error: 'GNMCastToNetwork' was not declared in this scope
           return (GNMNetworkShadow*)GNMCastToNetwork((GDALMajorObjectH)base);
                                                                            ^
    extensions/gnm_wrap.cpp: In function 'GNMGenericNetworkShadow* CastToGenericNetwork(GDALMajorObjectShadow*)':
    extensions/gnm_wrap.cpp:3474:86: error: 'GNMCastToGenericNetwork' was not declared in this scope
           return (GNMGenericNetworkShadow*)GNMCastToGenericNetwork((GDALMajorObjectH)base);
                                                                                          ^
    extensions/gdal_array_wrap.cpp:3584:25: error: 'virtual const char* NUMPYDataset::_GetProjectionRef()' marked 'override', but does not override
         virtual const char *_GetProjectionRef(void) override;
                             ^
    extensions/gdal_array_wrap.cpp:3585:32: error: 'const OGRSpatialReference* NUMPYDataset::GetSpatialRef() const' marked 'override', but does not override
         const OGRSpatialReference* GetSpatialRef() const override {
                                    ^
    extensions/gdal_array_wrap.cpp:3588:20: error: 'virtual CPLErr NUMPYDataset::_SetProjection(const char*)' marked 'override', but does not override
         virtual CPLErr _SetProjection( const char * ) override;
                        ^
    extensions/gdal_array_wrap.cpp:3589:12: error: 'CPLErr NUMPYDataset::SetSpatialRef(const OGRSpatialReference*)' marked 'override', but does not override
         CPLErr SetSpatialRef(const OGRSpatialReference* poSRS) override {
                ^
    extensions/gdal_array_wrap.cpp:3597:25: error: 'virtual const char* NUMPYDataset::_GetGCPProjection()' marked 'override', but does not override
         virtual const char *_GetGCPProjection() override;
                             ^
    extensions/gdal_array_wrap.cpp:3598:32: error: 'const OGRSpatialReference* NUMPYDataset::GetGCPSpatialRef() const' marked 'override', but does not override
         const OGRSpatialReference* GetGCPSpatialRef() const override {
                                    ^
    extensions/gdal_array_wrap.cpp:3602:20: error: 'virtual CPLErr NUMPYDataset::_SetGCPs(int, const GDAL_GCP*, const char*)' marked 'override', but does not override
         virtual CPLErr _SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList,
                        ^
    extensions/gdal_array_wrap.cpp:3605:12: error: 'CPLErr NUMPYDataset::SetGCPs(int, const GDAL_GCP*, const OGRSpatialReference*)' marked 'override', but does not override
         CPLErr SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList,
                ^
    extensions/gdal_array_wrap.cpp: In member function 'const OGRSpatialReference* NUMPYDataset::GetSpatialRef() const':
    extensions/gdal_array_wrap.cpp:3586:53: error: 'GetSpatialRefFromOldGetProjectionRef' was not declared in this scope
             return GetSpatialRefFromOldGetProjectionRef();
                                                         ^
    extensions/gdal_array_wrap.cpp: In member function 'CPLErr NUMPYDataset::SetSpatialRef(const OGRSpatialReference*)':
    extensions/gdal_array_wrap.cpp:3590:55: error: 'OldSetProjectionFromSetSpatialRef' was not declared in this scope
             return OldSetProjectionFromSetSpatialRef(poSRS);
                                                           ^
    extensions/gdal_array_wrap.cpp: In member function 'const OGRSpatialReference* NUMPYDataset::GetGCPSpatialRef() const':
    extensions/gdal_array_wrap.cpp:3599:56: error: 'GetGCPSpatialRefFromOldGetGCPProjection' was not declared in this scope
             return GetGCPSpatialRefFromOldGetGCPProjection();
                                                            ^
    extensions/gdal_array_wrap.cpp: In member function 'CPLErr NUMPYDataset::SetGCPs(int, const GDAL_GCP*, const OGRSpatialReference*)':
    extensions/gdal_array_wrap.cpp:3607:62: error: 'OldSetGCPsFromNew' was not declared in this scope
             return OldSetGCPsFromNew(nGCPCount, pasGCPList, poSRS);
                                                                  ^
    extensions/gdal_array_wrap.cpp: At global scope:
    extensions/gdal_array_wrap.cpp:3995:10: error: 'unique_ptr' in namespace 'std' does not name a template type
         std::unique_ptr<GDALDataset> poMEMDS{};
              ^
    extensions/gdal_array_wrap.cpp:4003:10: error: 'shared_ptr' in namespace 'std' does not name a template type
         std::shared_ptr<GDALGroup> GetRootGroup() const override { return poMEMDS->GetRootGroup(); }
              ^
    extensions/gdal_array_wrap.cpp: In static member function 'static GDALDataset* NUMPYMultiDimensionalDataset::Open(PyArrayObject*)':
    extensions/gdal_array_wrap.cpp:4039:24: error: 'FromHandle' is not a member of 'GDALDriver'
         auto poMemDriver = GDALDriver::FromHandle(GDALGetDriverByName("MEM"));
                            ^
    extensions/gdal_array_wrap.cpp:4051:17: error: 'shared_ptr' is not a member of 'std'
         std::vector<std::shared_ptr<GDALDimension>> apoDims;
                     ^
    extensions/gdal_array_wrap.cpp:4051:17: error: 'shared_ptr' is not a member of 'std'
    extensions/gdal_array_wrap.cpp:4051:33: error: 'GDALDimension' was not declared in this scope
         std::vector<std::shared_ptr<GDALDimension>> apoDims;
                                     ^
    extensions/gdal_array_wrap.cpp:4051:33: error: template argument 1 is invalid
    extensions/gdal_array_wrap.cpp:4051:33: error: template argument 2 is invalid
    extensions/gdal_array_wrap.cpp:4051:46: error: expected unqualified-id before '>' token
         std::vector<std::shared_ptr<GDALDimension>> apoDims;
                                                  ^
    extensions/gdal_array_wrap.cpp:4061:9: error: 'apoDims' was not declared in this scope
             apoDims.push_back(poDim);
             ^
    extensions/gdal_array_wrap.cpp:4076:39: error: 'apoDims' was not declared in this scope
                                           apoDims,
                                           ^
    extensions/gdal_array_wrap.cpp:4077:39: error: 'GDALExtendedDataType' has not been declared
                                           GDALExtendedDataType::Create(eType),
                                           ^
    extensions/gdal_array_wrap.cpp:4081:16: error: type '<type error>' argument given to 'delete', expected pointer
             delete poMEMDS;
                    ^
    extensions/gdal_array_wrap.cpp:4086:22: error: 'FromHandle' is not a member of 'GDALDriver'
         poDS->poDriver = GDALDriver::FromHandle(GDALGetDriverByName("NUMPY"));
                          ^
    extensions/gdal_array_wrap.cpp:4090:11: error: 'class NUMPYMultiDimensionalDataset' has no member named 'poMEMDS'
         poDS->poMEMDS.reset(poMEMDS);
               ^
    extensions/gdal_array_wrap.cpp: At global scope:
    extensions/gdal_array_wrap.cpp:4473:34: error: 'GDALExtendedDataTypeHS' was not declared in this scope
     static bool CheckNumericDataType(GDALExtendedDataTypeHS* dt)
                                      ^
    extensions/gdal_array_wrap.cpp:4473:58: error: 'dt' was not declared in this scope
     static bool CheckNumericDataType(GDALExtendedDataTypeHS* dt)
                                                              ^
    extensions/gdal_array_wrap.cpp:4474:1: error: expected ',' or ';' before '{' token
     {
     ^
    extensions/gdal_array_wrap.cpp:3523:13: warning: 'void _StoreLastException()' defined but not used [-Wunused-function]
     static void _StoreLastException()
                 ^
    In file included from /home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h:21:0,
                     from /home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h:4,
                     from extensions/gdal_array_wrap.cpp:3548:
    /home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/include/numpy/__multiarray_api.h:1463:1: warning: 'int _import_array()' defined but not used [-Wunused-function]
     _import_array(void)
     ^
    extensions/gdal_array_wrap.cpp:4473:13: warning: 'CheckNumericDataType' defined but not used [-Wunused-variable]
     static bool CheckNumericDataType(GDALExtendedDataTypeHS* dt)
                 ^
    error: command 'cc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/linuxbrew/.linuxbrew/opt/python@3.8/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-slie5dz0/gdal/setup.py'"'"'; __file__='"'"'/tmp/pip-install-slie5dz0/gdal/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-9k0lla7y/install-record.txt --single-version-externally-managed --compile --install-headers /home/linuxbrew/.linuxbrew/include/python3.8/gdal Check the logs for full command output.

Steps to reproduce the problem.

pip install gdal

Operating system

Lubuntu 18.04 64 bit

GDAL version and provenance

cached GDAL-3.1.2.tar.gz (593 kB) from pip

jjps-MacBook-Pro:~ jjp$ pip install gdal

Collecting gdal Using cached https://files.pythonhosted.org/packages/7c/b0/a2ecb10a68a319910c4681f452c83843b99c4ef6231d33a8e55b0104a50c/GDAL-2.4.0.tar.gz Complete output from command python setup.py egg_info: running egg_info creating pip-egg-info/GDAL.egg-info writing pip-egg-info/GDAL.egg-info/PKG-INFO writing dependency_links to pip-egg-info/GDAL.egg-info/dependency_links.txt writing top-level names to pip-egg-info/GDAL.egg-info/top_level.txt writing manifest file ‘pip-egg-info/GDAL.egg-info/SOURCES.txt’ Traceback (most recent call last): File «/private/var/folders/js/c2_gdy711m7933z9bxcv2q5h0000gn/T/pip-install-e22kxx2j/gdal/setup.py», line 151, in fetch_config p = subprocess.Popen([command, args], stdout=subprocess.PIPE) File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py», line 775, in init restore_signals, start_new_session) File «/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py», line 1522, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: ‘../../apps/gdal-config’: ‘../../apps/gdal-config’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/private/var/folders/js/c2_gdy711m7933z9bxcv2q5h0000gn/T/pip-install-e22kxx2j/gdal/setup.py", line 237, in get_gdal_config
    return fetch_config(option, gdal_config=self.gdal_config)
  File "/private/var/folders/js/c2_gdy711m7933z9bxcv2q5h0000gn/T/pip-install-e22kxx2j/gdal/setup.py", line 154, in fetch_config
    raise gdal_config_error(e)
__main__.gdal_config_error: [Errno 2] No such file or directory: '../../apps/gdal-config': '../../apps/gdal-config'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/private/var/folders/js/c2_gdy711m7933z9bxcv2q5h0000gn/T/pip-install-e22kxx2j/gdal/setup.py", line 151, in fetch_config
    p = subprocess.Popen([command, args], stdout=subprocess.PIPE)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 775, in __init__
    restore_signals, start_new_session)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 1522, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'gdal-config': 'gdal-config'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/private/var/folders/js/c2_gdy711m7933z9bxcv2q5h0000gn/T/pip-install-e22kxx2j/gdal/setup.py", line 430, in <module>
    setup(**setup_kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/setuptools/__init__.py", line 143, in setup
    return distutils.core.setup(**attrs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/distutils/dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/setuptools/command/egg_info.py", line 296, in run
    self.find_sources()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/setuptools/command/egg_info.py", line 303, in find_sources
    mm.run()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/setuptools/command/egg_info.py", line 534, in run
    self.add_defaults()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/setuptools/command/egg_info.py", line 570, in add_defaults
    sdist.add_defaults(self)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/distutils/command/sdist.py", line 228, in add_defaults
    self._add_defaults_ext()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/distutils/command/sdist.py", line 311, in _add_defaults_ext
    build_ext = self.get_finalized_command('build_ext')
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/distutils/cmd.py", line 299, in get_finalized_command
    cmd_obj.ensure_finalized()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/distutils/cmd.py", line 107, in ensure_finalized
    self.finalize_options()
  File "/private/var/folders/js/c2_gdy711m7933z9bxcv2q5h0000gn/T/pip-install-e22kxx2j/gdal/setup.py", line 287, in finalize_options
    self.gdaldir = self.get_gdal_config('prefix')
  File "/private/var/folders/js/c2_gdy711m7933z9bxcv2q5h0000gn/T/pip-install-e22kxx2j/gdal/setup.py", line 243, in get_gdal_config
    return fetch_config(option)
  File "/private/var/folders/js/c2_gdy711m7933z9bxcv2q5h0000gn/T/pip-install-e22kxx2j/gdal/setup.py", line 154, in fetch_config
    raise gdal_config_error(e)
__main__.gdal_config_error: [Errno 2] No such file or directory: 'gdal-config': 'gdal-config'

----------------------------------------

Command «python setup.py egg_info» failed with error code 1 in /private/var/folders/js/c2_gdy711m7933z9bxcv2q5h0000gn/T/pip-install-e22kxx2j/gdal/ jjps-MacBook-Pro:~ jjp$

Installing GDAL for Python with pip , the package installation package, is not as easy as it may seem. If you try to install GDAL to a python environment with a command like python -m pip install gdal it will initially seem like the installation is going to happen. However, you will receive a message that pip failed to build the python wheel file, then a long, verbose error message. Not to worry. You can still install gdal with pip, and here’s how to do it. You can also check out the video at the end of this article for a demonstration. Once you get GDAL installed, check out our tutorial to get started using GDAL with Python.

If you want to install gdal to a conda (Anaconda) environment you can follow my tutorial for installing gdal with conda. Anaconda users can also follow this tutorial but the conda method is recommended.

First, let’s understand why the problem occurs. GDAL is actually a C++ library with python bindings. That means it relies on underlying C++ code and the package must be built/compiled in a certain manner to be usable with Python. GDAL is an open-source project, and depending on the user group and other applications there may not be resources to provide a python-specific distribution or other considerations that prevent it. The upside is that because it is open-source anyone can develop a solution, and I’ll explain one now.

1. Download a pre-built gdal wheel file

With pip we can use a wheel file to install a package. Wheel files contain all the information needed to install a python package. Often when pip is used for install it downloads a wheel file for the install. A gdal wheel file can be obtained from Christoph Gohlke’s website. You’ll need to select the file that matches your specific Python version and operating system (32 or 64 bit). Once you find the appropriate file download it to a location you remember

2. Install the wheel file with pip

Now all you have to do is install the wheel file with pip. I recommend navigating the directory where you downloaded the file (with cd) before running the command below. Alternatively, you can stay in your current directory and pass the full path of the wheel file.

python -m pip install path-to-wheel-file.whl

Assuming that you’ve used the appropriate wheel file, this should successfully install gdal

3. Test the installation

Now make sure you can load gdal in a python session. From the command prompt type python to start an interactive session. Once the session has started you will see a description of your python version followed by >>> indicating that the next code you type will be interpreted by python.

Type from osgeo import gdal and hit Enter. If nothing happens then gdal was successfully imported. If you get an error message something obviously went wrong. You may also want to try import gdal, especially for older python versions.

Conclusion

Hopefully, this guide has helped you get gdal running for Python. Check out our guide to getting started with GDAL to make the most of your new installation. If you’re still having issues you may want to try creating a new, clean environment for your gdal installation. If you’re not using an Anaconda Python distribution you may want to try that and use the conda guide to install gdal.

Whether you’re looking to take your GIS skills to the next level, or just getting started with GIS, we have a course for you! We’re constantly creating and curating more courses to help you improve your geospatial skills.

All of our courses are taught by industry professionals and include step-by-step video instruction so you don’t get lost in YouTube videos and blog posts, downloadable data so you can reproduce everything the instructor does, and code you can copy so you can avoid repetitive typing


My Recommended Equipment

Computer: Dell XPS

Mouse: Logitech M557 Bluetooth Mouse

External Hard Drive: Seagate Portable 2TB


This article contains affiliate links. When you click on links in this article Open Source Options may make a commission on any sales. This does not have any impact on the price you pay for products.

Konrad Hafen

Konrad has a Master’s Degree in Ecology and a Doctorate Degree in Water Resources and has been performing geospatial analysis and writing code (in multiple programming languages) for over a decade. He writes code to develop models and analysis workflows to predict and evaluate changes to landscapes and water resources. He has published multiple articles in prominent peer-reviewed, scientific journals. Konrad’s code and workflow contribute to operational products that inform water and ecosystem management.

Latest Tutorials

link to How to Install GeoPandas and Check GeoPandas Version

link to Remote Sensing Analysis with QGIS

Remote Sensing Analysis with QGIS

In geographic information science (GIS), remote sensing is the act of acquiring information about the features of the Earth’s surface from a distance. Remotely sensed data are acquired from many…

Enabling GEOS for GDAL/OGR

Hey everyone,

I’ve created a web app to create sample plots from an input shapefile over at elza.pythonanywhere.com which functions mostly as expected.

The problem I am having is that as part of my python script the OGR function «intersects» is used. The function works, but it is not rigorous, meaning it only checks if the envelopes intersect. In order to rigorously check intersection, i.e., using geometries not envelopes, GEOS needs to be enabled. Check out the OGR Intersects help page here to read more about what I mean.

To visually show what I mean look at the following images: With GEOS | Without GEOS

GEOS stands for Geometry Engine Open Source. You can read more about it here. It complements the already installed GDAL/OGR packages by making them more powerful.

I know adding items to the site wide batteries included is a large endeavor, but I would like to pose GEOS as a candidate because without it OGR is much less useful.

Thanks guys,

Hayden

deleted-user-898672
|
2
posts
|



Aug. 14, 2015, 3:22 a.m.

|
permalink

We already have GEOS installed. I don’t know enough about GEOS and GDAL and OGR to work out why it’s not working for you. Perhaps there’s some documentation you can point us to that would help us understand.

Staff

glenn
|
8703
posts
|

PythonAnywhere staff
|



Aug. 14, 2015, 12:17 p.m.

|
permalink

Hey glenn,

I’ve finally had chance to try and isolate the problem.

To reproduce the error try running this in a python 2.7 console:

from osgeo import ogr

wkt1 = "POLYGON ((1208064.271243039 624154.6783778917, 1208064.271243039 601260.9785661874, 1231345.9998651114 601260.9785661874, 1231345.9998651114 624154.6783778917, 1208064.271243039 624154.6783778917))"
wkt2 = "POLYGON ((1199915.6662253144 633079.3410163528, 1199915.6662253144 614453.958118695, 1219317.1067437078 614453.958118695, 1219317.1067437078 633079.3410163528, 1199915.6662253144 633079.3410163528)))"

poly1 = ogr.CreateGeometryFromWkt(wkt1)
poly2 = ogr.CreateGeometryFromWkt(wkt2)

intersection = poly1.Intersection(poly2)

It should return this error:

ERROR 6: GEOS support not enabled.

As you have said before, you have GEOS installed. So I would guess the problem is that OGR was not built with geos. The basic process to build OGR/GDAL with GEOS and python bindings is as follows:

first install geos library (libgeos, libgeos-dev)

then download gdal source and configure it:

./configure —with-python -with-geos=yes

then

make

sudo make install

I copied those instructions from here about mid way down the page.

I hope this helps. If you have more questions about GEOS, GDAL, or OGR let me know and I’ll do my best to help out. So far I really like the site and would love to host web apps here, though no geos support in ogr would be a deal breaker.

Thanks again for all your help!

deleted-user-898672
|
2
posts
|



Aug. 30, 2015, 3:23 a.m.

|
permalink

Thanks @elza. It looks like our GDAL build doesn’t have the --with-geos=yes flag, so that could definitely be it. We’ll try and schedule an update to the library during our next standard server image build, but it’s hard to say how soon that might come through…

Staff

harry
|
2710
posts
|

PythonAnywhere staff
|



Aug. 30, 2015, 8:17 a.m.

|
permalink

Hi all,

I was wondering whether there are any updates on configuring OGR/GDAL with GEOS? I have built an app that cuts a Shapefile but it does not work on Pythonanywhere with out the GEOS support. I get the error mentioned above «ERROR 6: GEOS support not enabled.»

Kind regards,
John

deleted-user-2158933
|
1
post
|



May 8, 2017, 11:19 a.m.

|
permalink

Unfortunately no updates. I’ve upvoted the ticket on our to-do list on your behalf, but it’s still quite low down the list :-(

Staff

giles
|
11190
posts
|

PythonAnywhere staff
|



May 8, 2017, 11:51 a.m.

|
permalink

I would love this to be updated as well

deleted-user-2543553
|
1
post
|



June 22, 2017, 2:14 a.m.

|
permalink

upvoted! no ETA yet I’m afraid.

Staff

harry
|
2710
posts
|

PythonAnywhere staff
|



June 22, 2017, 11:59 a.m.

|
permalink

Hello all,
I am trying to re-prject a netCDF file with the following commands:

  1. gdal_translate -a_scale 0.000002 -a_offset 0.05 -a_nodata -32767 HDF5:»input.nc»://geophysical_data/Rrs_655 output13.tif

  2. gdalwarp output13.tif outfile2.tif -t_srs «+proj=longlat +ellps=WGS84»

However, the final output that I am receiving is a black with nodata values -32767. Can someone please suggest something. Any kind of help is appreciated.

Thank you!

NPal

deleted-user-5494251
|
1
post
|



April 18, 2019, 8:40 p.m.

|
permalink

It might be worth asking about that on Stack Overflow.

Staff

giles
|
11190
posts
|

PythonAnywhere staff
|



April 19, 2019, 4:17 p.m.

|
permalink

Hi!
I’ve just tried to open all python consoles and type

but I received ImportError/ModuleNotFoundError.

What’s wrong with it? Do I have to enable the package in someway?

Thanks a lot

Manuele

colouree
|
4
posts
|



June 7, 2019, 7:06 a.m.

|
permalink

osgeo only supports up to Python 2.7 so it is only installed for Python 2.7.

Staff

glenn
|
8703
posts
|

PythonAnywhere staff
|



June 7, 2019, 11:25 a.m.

|
permalink

I am using python 3.8 in my virtualenv. I need to use

How to get it. Thanks

deleted-user-10779296
|
2
posts
|



June 4, 2021, 3:58 p.m.

|
permalink

As it’s provided by the GDAL package nowadays, try running pip install GDAL in your virtualenv; that should pull down the most recent version, which should work with Python 3.8.

Staff

giles
|
11190
posts
|

PythonAnywhere staff
|



June 4, 2021, 5:30 p.m.

|
permalink

I tried pip install GDAL

comes with the following error

$ pip install GDAL
Looking in links: /usr/share/pip-wheels
Collecting GDAL
  Using cached GDAL-3.3.0.tar.gz (743 kB)
Building wheels for collected packages: GDAL
  Building wheel for GDAL (setup.py) ... error

deleted-user-10779296
|
2
posts
|



June 4, 2021, 11:59 p.m.

|
permalink

Is there any more to the error message? Normally it would display some details about what that error is.

Staff

giles
|
11190
posts
|

PythonAnywhere staff
|



June 5, 2021, 3 p.m.

|
permalink

I have the same problem.
I tried pip install gdal
the I get a big message error, this is just a very small part:

Looking in links: /usr/share/pip-wheels
Collecting gdal
Downloading GDAL-3.3.0.tar.gz (743 kB)
   |████████████████████████████████| 743 kB 16.6 MB/s 
Building wheels for collected packages: gdal
Building wheel for gdal (setup.py) ... error
ERROR: Command errored out with exit status 1:
 command: /home/giosite/.virtualenvs/ve/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-hikibwbr/gdal_dc6a324db17a427286bb404d027af175/setup.py'"'"'; __file__='"'"'/tmp/pip-install-hikibwbr/gdal_dc6a324db17a427286bb404d027af175/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-j4hob37b
     cwd: /tmp/pip-install-hikibwbr/gdal_dc6a324db17a427286bb404d027af175/
Complete output (1898 lines):
WARNING: numpy not available!  Array support will not be enabled
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.8
creating build/lib.linux-x86_64-3.8/osgeo
copying osgeo/ogr.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/gdalconst.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/utils.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/gdal_array.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/gdal.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/gdalnumeric.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/osr.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/__init__.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/gnm.py -> build/lib.linux-x86_64-3.8/osgeo
creating build/lib.linux-x86_64-3.8/osgeo_utils
copying gdal-utils/osgeo_utils/pct2rgb.py -> build/lib.linux-x86_64-3.8/osgeo_utils
copying gdal-utils/osgeo_utils/gdalmove.py -> build/lib.linux-x86_64-3.8/osgeo_utils
copying gdal-utils/osgeo_utils/ogrmerge.py -> build/lib.linux-x86_64-3.8/osgeo_utils
copying gdal-utils/osgeo_utils/gdal_retile.py -> build/lib.linux-x86_64-3.8/osgeo_utils
copying gdal-utils/osgeo_utils/gdal_merge.py -> build/lib.linux-x86_64-3.8/osgeo_utils
copying gdal-utils/osgeo_utils/gdal_sieve.py -> build/lib.linux-x86_64-3.8/osgeo_utils
copying gdal-utils/osgeo_utils/gdalcompare.py -> build/lib.linux-x86_64-3.8/osgeo_utils

(…)

please help,
How to install GDAL in pythonanywhere?

[formatted by admin]

leogeos
|
4
posts
|



June 7, 2021, 10:26 p.m.

|
permalink

What’s at the end of the error message?

Staff

pafk
|
2441
posts
|

PythonAnywhere staff
|



June 8, 2021, 9:48 a.m.

|
permalink

this is the end part:

  extensions/gdal_array_wrap.cpp:4522:34: error: GDALExtendedDataTypeHS was not declared in this scope
 static bool CheckNumericDataType(GDALExtendedDataTypeHS* dt)
                                  ^
extensions/gdal_array_wrap.cpp:4522:58: error: dt was not declared in this scope
 static bool CheckNumericDataType(GDALExtendedDataTypeHS* dt)
                                                          ^
extensions/gdal_array_wrap.cpp:4523:1: error: expected , or ; before { token
 {
 ^
extensions/gdal_array_wrap.cpp:3514:13: warning: void _StoreLastException() defined but not used [-Wunused-function]
 static void _StoreLastException()
             ^
In file included from /home/giosite/.virtualenvs/ve/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h:21:0,
                 from /home/giosite/.virtualenvs/ve/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h:4,
                 from extensions/gdal_array_wrap.cpp:3539:
/home/giosite/.virtualenvs/ve/lib/python3.8/site-packages/numpy/core/include/numpy/__multiarray_api.h:1464:1: warning: int _import_array() def

ined but not used [-Wunused-function]
_import_array(void)
^
extensions/gdal_array_wrap.cpp:4492:1: warning: ‘int CreateCIntListFromSequence(PyObject, int)’ defined but not used [-Wunused-function]
CreateCIntListFromSequence( PyObject
pySeq, int pnSize ) {
^
extensions/gdal_array_wrap.cpp:4522:13: warning: ‘CheckNumericDataType’ defined but not used [-Wunused-variable]
static bool CheckNumericDataType(GDALExtendedDataTypeHS
dt)
^
error: command ‘gcc’ failed with exit status 1
—————————————-
ERROR: Command errored out with exit status 1: /home/giosite/.virtualenvs/ve/bin/python3.8 -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘»
‘»‘/tmp/pip-install-re097rnq/gdal_be72526bd4064fc78fb121f7a4d0c311/setup.py'»‘»‘; file='»‘»‘/tmp/pip-install-re097rnq/gdal_be72526bd4064fc78fb12
1f7a4d0c311/setup.py'»‘»‘;f=getattr(tokenize, ‘»‘»‘open'»‘»‘, open)(file);code=f.read().replace(‘»‘»‘rn'»‘»‘, ‘»‘»‘n'»‘»‘);f.close();exec(com
pile(code, file, ‘»‘»‘exec'»‘»‘))’ install —record /tmp/pip-record-7hhxrp0i/install-record.txt —single-version-externally-managed —compile —
install-headers /home/giosite/.virtualenvs/ve/include/site/python3.8/GDAL Check the logs for full command output.

i created a python env then I tried: pip install GDAL. But I get that error.
In windows is hard to install. I though to install on a Linux machine will be easier.

leogeos
|
4
posts
|



June 9, 2021, 2:27 a.m.

|
permalink

There will be a new system image with the new gdal preinstalled available soon on PythonAnywhere.

Staff

fjl
|
3651
posts
|

PythonAnywhere staff
|



June 9, 2021, 9:07 a.m.

|
permalink

good to know, thanks!

leogeos
|
4
posts
|



June 14, 2021, 1:55 a.m.

|
permalink

We will let you know!

Staff

fjl
|
3651
posts
|

PythonAnywhere staff
|



June 14, 2021, 10:32 a.m.

|
permalink

It’s been released :-) If you upgrade to our new Glastonbury system image (see here for details) you’ll get the latest GDAL.

Staff

giles
|
11190
posts
|

PythonAnywhere staff
|



June 30, 2021, 3:08 p.m.

|
permalink

thank you very much. I installed GDAL. In my case: pip install GDAL==3.2.1 (python 3.8)

leogeos
|
4
posts
|



July 1, 2021, 3:02 a.m.

|
permalink

Thanks for letting us know!

Staff

fjl
|
3651
posts
|

PythonAnywhere staff
|



July 1, 2021, 9:31 a.m.

|
permalink

Python’s two-fold development (Python2 and Python3) and other parallel versions of Python (e.g., ESRI’s ArcGIS or Nvidia’s cuda Python versions) may cause that multiple versions of Python are installed on your computer (even though Python2 is about to disappear). As consequence packages might have been unintentionally or unknowingly installed for another Python interpreter than used in a project. However, the parallel existence of multiple Python interpreters is sometimes beneficial, for instance, when packages are installed that are not compatible with each other. So how to deal with the challenge of having multiple Python interpreters (or environments) installed?

There are multiple answers to this question and the best option depends, to some extent, on personal preferences and the Operating System (OS) — also referred to as platform. For instance, conda environments are preferable on Windows and pip environments on Linux (e.g., Debian/Ubuntu) platforms. conda environments work well on both platforms (and also with macOS), but pip will not work smoothly on Windows because of an issue with the geospatial GDAL library. To work with conda environments, the installation of Anaconda is required (no additional installation of Python is necessary in this case).

This section guides through the installation of a computational environment that is tailored for working with contents in this eBook. The environment uses the flusstools pip-package, which provides many useful routines for river analyses.

pip and venv (Linux Preference)¶

Use pip and venv on Linux

pip and virtual environments are preferable with Linux systems for working with this eBook and the flusstools library.

Quick Guide¶

Consider installing, creating, and activating a new virtual environment for working with the contents of this eBook as explained in the following platform-dependent paragraphs.

Linux

To avoid affecting the system’s Python interpreter, set up a virtual environment with venv. The first step is to make sure that Python3 and venv are installed on the system:

sudo apt install python3 python3-venv

Next, make sure that pip3 and tkinter are installed and up to date:

sudo apt install python3-pip python3-dev python3-tk tk8.6-dev
python3 -m pip install --upgrade pip

python vs. python3

Python2 experienced its sunset in January 2020, but some systems still use Python2 as default for the python command and require a distinguished call of Python3 with the python3 command.
This behavior is more and more deprecated and most up-to-date systems will automatically refer to Python3 when typing python.

Thus, it might be possible that your system requires using python rather than python3 (i.e., use python -m pip install --upgrade pip here and in the following command sequences).

To check the installed version of Python tap:

Then go to the home directory (or wherever you want to install the virtual environment) and create a new virtual environment (e.g., called vflussenv):

cd ~
python3 -m venv vflussenv

Then activate the new environment:

source vflussenv/bin/activate

Double-check that the environment is activated:

Install numpy and wheel with:

pip3 install numpy
pip3 install wheel

Then, install QGIS and GDAL for Linux (this should work with any Debian architecture) and make sure to use the correct pip command at the end (i.e., it might be necessary to replace pip3 with pip):

sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable && sudo apt update
sudo apt install libgeos-dev gdal-bin libgdal-dev

Export the gdal installation path:

export CPLUS_INCLUDE_PATH=/usr/include/gdal
export C_INCLUDE_PATH=/usr/include/gdal

Install gdal for the vflussenv Python environment:

pip3 install GDAL==$(gdal-config --version)

Resolve persisting GDAL installation errors

If the above line ultimately fails (i.e., does not end with Successfully installed GDAL-X.X.X, which override previous errors such as invalid command ‘bdist_wheel’), try:

pip3 install GDAL==$(gdal-config --version) --global-option=build_ext --global-option="-I/usr/include/gdal/"

Another option is to delete all files in /home/USERNAME/.cache/pip. To see the hidden .cache/ directory, press CTRL + H. After deleting the files, start over with the installation.

Now, install flusstools with:

To verify if flusstools is correctly installed write:

user:~$ python3
Python 3.X.X (default, MMM DD YYYY, hh:mm:ss)
[GCC 9.X.X on linux]
>>> import flusstools as ft

Recall that newer Linux versions may not differentiate between Python2 and Python3 (i.e., use python rather than python3).

Windows

Warning

Because GDAL can currently not be directly installed with pip on Windows, trying to set up the computational environment with pip on Windows will very likely fail. Windows users preferably use conda env (Windows Preference), but can alternatively continue with a virtual pip environment for learning Python basics. In this case, geospatial programming contents require an installation of QGIS, which comes with a built-in Python terminal for algorithmic geospatial analyses.

Make sure that Python (>= version 3.4) installed. In addition, install virtualenv (in the following, alternatively use py instead of python, if python returns errors):

python -m pip install --upgrade pip
python -m pip install --user virtualenv numpy

Then go to the directory wherever you want to install a new virtual environment called vflussenv and create the new virtual environment:

cd DIRTOENV
python -m venv vflussenv

Then activate the new environment:

.vflussenvScriptsactivate

Double-check that the environment is activated (should return something like .../DIR/TO/ENV/bin/python.exe) and upgrade pip in the environment:

where python
python -m pip install --upgrade pip

Because of issues in the latest version of GDAL, pip-Windows users must use conda to get gdal:

python -m pip install conda
conda install -c conda-forge gdal

GDAL Error: Setup script exited with error: Microsoft Visual C++ 14.0

Currently, there is an issue with installing GDAL when Microsoft Visual C++ is missing or outdated. Thus, to enable the installation of GDAL on Windows, first download and install Microsoft Visual C++ from Microsoft C++ Build Tools.

Finally, install flusstools and its dependencies with:

python -m pip install pandas plotting matplotlib plotly

For geospatial analyses …

Try the following not cross-platform verified solution: Install QGIS and use its Python terminal for installing flusstools:

  • Start QGIS as Administrator (the following steps will fail if you are not running QGIS as administrator)

  • Go to Plugins > Python Console

  • In the Python Console tap:

    • import pip

    • pip.main(["install", "flusstools"])

Alternatively, find the OSGeo4W from the Windows start menu and type py3_env followed by python -m pip install flusstools. Preferably use a conda env (Windows Preference).

The import of flusstools should not return any import error. If there is an import error, find out the troublesome package’s name and re-install it. In particular, the installation of GDAL may be challenging when working with pip, in particular on Windows. To learn more about the installation of GDAL visit the Download > Binaries section on the developer’s website.

Manage pip (Install, Uninstall, or Upgrade) Modules or Packages¶

More than 300,000 projects live on pypi.org and there are packages available for many purposes. To find suitable packages visit https://pypi.org/search/. To install (i.e., add) one of these pip/pip3 packages use:

Linux Terminal

pip3 install PACKAGE_NAME

Windows Command Prompt

python -m pip install --user PACKAGE_NAME

Note

The --user flag is only required if you are not working in a virtual environment. Otherwise, normal users can only manage packages in the local user directory (on Windows: CUsersUSER-NAME); system packages can only be managed by administrators (on Linux with the sudo command).

Here is a list of additional useful packages for data analysis:

  • scipy including pandas, matplotlib, and numpy

  • fitter through pip3 install fitter (check best fitting statistic distribution in scipy.stats)

  • missingno through pip3 install missingno

  • openpyxl through pip3 install openpyxl for workbook file handling

  • scikit-posthocs through pip3 install scikit-posthocs for non-parametric post-ANOVA (e.g. Kruskal-Wallis) treatment

  • seaborn through pip3 install seaborn

  • sklearn through pip3 install -U scikit-learn

  • statsmodels through pip3 install statsmodels

To install all-in-one, tap: pip3 install -U fitter missingno seaborn scikit-learn statsmodels openpyxl

To remove (i.e., uninstall) a pip/pip3-installed package use:

Linux Terminal

pip3 uninstall PACKAGE_NAME

Windows Command Prompt

python -m pip uninstall PACKAGE_NAME

To upgrade (update) a package that lives in a local user environment use:

Linux Terminal

pip3 install --upgrade PACKAGE_NAME

Windows Command Prompt

python -m pip install --upgrade --user PACKAGE_NAME

To leave a virtual environment on any platform tab:

Read more about virtual environments and pip at https://packaging.python.org.

conda env (Windows Preference)¶

This section features the quick installation of the flussenv environment.yml for Anaconda followed by more detailed explanations on the creation and management of conda environments.

Use conda on Windows

Anaconda and conda environments are preferable with Windows systems for working with this eBook and the flusstools library.

Quick Guide¶

The quick guide to installing Python with Anaconda on Windows is accompanied by a video embedded below the numbered workflow (though the number steps reduced since the video was published):

  1. Download the flussenv environment file (right-click > Save Link as … > select target directory). If needed, copy the file contents of environment.yml in a local text editor, such as NotepadPlusPlus (Text Editor), and save the file for example in a directory called C:/temp/).

  2. Open a command line

    • On Windows: Anaconda Prompt (Windows key > type Anaconda Prompt > hit Enter).

    • On Linux: Open Terminal

  3. Navigate to the download directory where environment.yml is located (use cd to navigate, for example, to cd C:/temp/).

  4. Enter conda env create -f environment.yml (this creates an environment called flussenv).
    … takes a while …

  5. Activate flussenv: conda activate flussenv

  6. Install flusstools: pip install flusstools

To make the new flussenv and its libraries available for JupyterLab, add a new kernel with the activated flussenv in Anaconda Prompt:

ipython kernel install --user --name=fluss_kernel

When running Jupyter, the fluss_kernel will be available in the top menu Kernel > Change Kernel…

Sebastian Schwindt@ Hydro-Morphodynamics channel on YouTube.

Create and Install¶

To create a new conda environment from scratch, which differs from the flussenv environment.yml, open Anaconda Prompt and type (replace ENV-NAME for example with flussenv):

conda create --name ENV-NAME python=3.8

Activate Environment¶

The active environment corresponds to the environment that you are working in (e.g., for installing libraries or using Jupyter). To activate the above-created flussenv environment:

  1. Open Anaconda Prompt (Windows key or click on the start menu of your operating system > type Anaconda Prompt > hit Enter).

  2. Activate the desired environment with conda activate ENV-NAME (e.g., conda activate flussenv)

Install Additional Python Packages¶

To install (more) Python packages in a conda environment:

  1. Activate the environment where you want to install, remove, or modify packages (e.g., conda activate flussenv — see above).

  2. Install a package by typing conda install PACKAGE_NAME (if the package cannot be found, try conda install -c conda-forge PACKAGE_NAME).

Alternatively, press the Windows key (or click on the start menu of your operating system) > type Anaconda Navigator > got to the Environments tab > select the flussenv environment (or create another environment) > install > install packages.

Remove (Delete) Environment¶

To remove a conda environment open Anaconda Prompt and type:

conda env remove --name ENV-NAME-TO-REMOVE

For example, to remove the flussenv environment type:

conda env remove --name flussenv

There are many more conda commands and the most important ones are summarized in the developer’s conda cheat sheet.

Setup Interfaces and IDEs¶

To follow the contents of this eBook and run code cells, it is recommended to use JupyterLab, which can be installed locally or run it remotely by clicking on Binder — the batch is implemented at the top of all Jupyter notebook-based sections. To create projects, develop programs, or simply complete course assignments, it is recommended to use an Integrated Development Environment (IDE), such as PyCharm with Anaconda.

JupyterLab¶

The following descriptions require that JupyterLab is installed for locally editing Jupyter notebooks (.ipynb files), Python scripts (.py files), and folders.

Linux

Start JupyterLab by typing jupyter-lab in Terminal.

If you are working with vflussenv, you may need to add the environment and its packages to a new ipykernel:

  • Activate the environment (in Terminal): source ~/venv/vflussenv/bin/activate (change path to where you installed vflussenv)

  • Install ipykernel: pip install ipykernel

  • Create a new ipykernel: python -m ipykernel install --user --name=fluss_kernel

  • Now the new kernel called fluss_kernel (referring to vflussenv) is available in Jupyter Lab (Kernel > Change Kernel…)

Windows

Start JupyterLab by typing jupyter-lab in Anaconda Prompt.

If you are working with flussenv, you may need to add the environment and its packages to a new ipykernel:

  • Activate the environment (in Anaconda Prompt): conda activate flussenv (make sure flusstools is pip-installed, otherwise conda install -c anaconda ipykernel)

  • Create a new ipykernel: ipykernel install --user --name=fluss_kernel

  • Now the new kernel called fluss_kernel is available in Jupyter Lab (Kernel > Change Kernel…)

Setup Styles

The Kernel menu runs the defined programming language (Python3 in the example below). The Settings menu provides options to configure styles (e.g., choose the JupyterLab Dark theme shown in the below figure).
JupyterLab runs on a local server (typically on localhost:XXPORTXX/lab), which is why it is just like an interactive website in your browser. In the beginning, it takes some getting used to, but one gets quickly familiar with it and there are many advantages such as the inline use of online graphics.

pyc-prj-setup

Fig. 1 JupyterLab in Dark theme appearance with a Jupyter notebook (xml.ipynb) opened showing the combination of a markdown cell (Charts (plots) and a Python3 cell).

Package Controls

JupyterLab runs an IPython kernel, which refers to the currently activated conda environment. Thus, for installing a package for usage in JupyterLab, follow the above instructions for the chosen environment (learn more about packages in the Packages, Modules and Libraries section). It might be useful to define default imports for IPython and this works as follows:

  1. Look for the (hidden) .ipython folder on your computer

    • Windows: Typically in the user folder (C:UsersUSER-NAME.ipython) (how to show hidden files in Windows

    • Linux (or other Unix-based system such as macOS): The name of a hidden file starts with a . and the IPython kernel typically lives in /usr/local/etc/ipython/ or /usr/local/etc/.ipython/ (either use the terminal and type ls -a or simultaneously hit the CTRL+H keys)

  2. In the .ipython or ipython folder, create a sub-directory called /profile_default/startup/ (if not yet present).

  3. If not yet present: Create the directory .../ipython/profile_default/startup/, with a Python file called ipython_config.py.

  4. Open ipython_config.py (right-click > edit — do not run the file) and add default import packages.

  5. For the Python (basics) tutorial, it is recommended to define the following default imports in ipython_config.py (add modifications, then save and close the file):

import os
import sys
import numpy as np
import pandas as pd
import matplotlib as plt
import tkinter as tk
from tkinter import ttk

For the geospatial Python section, consider to add (read gdal installation instructions first):

from osgeo import gdal
from osgeo import ogr
from osgeo import osr

Note

The default_profile is part of the default Jupyter installation and it is normally not necessary to create it manually. The IPython docs provide more detail about custom settings and modifying profiles on any platform.

Atom and Python¶

Depending on your platform make sure that all requirements are installed to configure Atom’s platformio-ide-terminal package:

Linux

Requirements

  • platformio-ide-terminal:

    • In Linux Terminal tap: sudo apt install clang (optional)

    • In Atom go to File > Preferences > + Install and install the platformio-ide package (see also Atom Packages).

  • Install flusstools according to the pip Quick Guide, preferably in a virtual environment.

Do not conda-install flusstools on Linux (use pip).

When flusstools and its requirements are correctly installed launch platformio-ide-terminal (in Atom go to Packages (top menu) > platformio-ide-terminal > New Terminal).

In the opened Terminal take the following actions:

  • Optionally activate the vflussenv environment (skip this step if you installed flusstools in your system Python interpreter):

cd ~/where/vflussenv-lives
source vflussenv/bin/activate
  • Start Atom:

Windows

Requirements

  • platformio-ide-terminal: In Atom go to File > Settings > + Install and install the platformio-ide-terminal package (see also Atom Packages).

  • Anaconda must be installed.

  • Make sure that the flussenv environment.yml (conda environment) is installed along with flusstools (see the conda Quick Guide).

Do not try to pip-install flusstools outside of a conda environment on Windows.

To set up a Python Anaconda terminal in Atom the following first-time-start steps are required:

  • Launch platformio-ide-terminal (in Atom go to Packages (top menu) > platformio-ide-terminal > New Terminal)

  • Typically, PowerShell will open, where the following commands need to be entered:

    • Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

    • conda init

  • Close the current PowerShell (platformio-ide-terminal window).

Once this is done, the flusstools package can be activated and used for regular use in a conda environment in platformio-ide-terminal as follows:

  • Launch platformio-ide-terminal (in Atom go to Packages (top menu) > platformio-ide-terminal > New Terminal)

  • In the terminal activate the flussenv environment: conda activate flussenv

  • In the activated environment launch python atom

Read more about the integration of Python and environments in Atom in the section on the installation of Atom (IDE).

PyCharm Python Projects¶

After the successful installation of PyCharm with Anaconda, use a conda (or pip) environment as interpreter. The following steps guide through the setup of PyCharm for using conda environments.

  • Launch PyCharm and create a new project.

pyc-prj" max-width="500px

Fig. 2 Create a new project in PyCharm.

  • Define The new flussenv environment as Pure Python project interpreter:

    • Select *New environment using Conda

    • In the Location box select the flussenv environment

    • Click Create to create the new project.

pyc-prj-setup

Fig. 3 Setup the flussenv conda environment for the new project.

  • Verify that the project interpreter is correctly defined:

    • Click on PyCharm’s File menu and select Settings…

    • In the Settings window go to Project: [NAME] > Project Interpreter

    • Make sure that the above-created flussenv conda environment is defined as Project Interpreter.

pyc-prj-interp

Fig. 4 Verify the correct setup of the Project Interpreter.

Struggling with setting up PyCharm?

PyCharm and Anaconda are designed for working hand-in-hand and the developers provide an up-to-date documentation for setting up PyCharm to work with conda environments.

Понравилась статья? Поделить с друзьями:
  • Phyxloader dll ошибка
  • Pip install fatal error in launcher unable to create process using
  • Pinchroll error 2nd from right
  • Physxloader dll как исправить эту ошибку
  • Pip install fasttext error