--- a/configure +++ a/configure @@ -3713,6 +3713,8 @@ CFLAGS="$CFLAGS -DMISSING_DLFCN_H" fi +CFLAGS="$CFLAGS -DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } if ${ac_cv_c_bigendian+:} false; then : @@ -4002,10 +4004,10 @@ PROJ_SETTING=missing fi - for ac_header in projects.h + for ac_header in proj_api.h do : - ac_fn_c_check_header_mongrel "$LINENO" "projects.h" "ac_cv_header_projects_h" "$ac_includes_default" -if test "x$ac_cv_header_projects_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "proj_api.h" "ac_cv_header_proj_api_h" "$ac_includes_default" +if test "x$ac_cv_header_proj_api_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PROJECTS_H 1 _ACEOF @@ -4016,10 +4018,10 @@ if test $PROJ_SETTING = missing ; then - as_fn_error $? "Unable to find external PROJ.4 library, give path or use default internal library." "$LINENO" 5 + as_fn_error $? "Unable to find external PROJ library, give path or use default internal library." "$LINENO" 5 fi - if test "$ac_cv_header_projects_h" = no ; then - as_fn_error $? "Unable to find external PROJ.4 projects.h file, give path or use default internal library." "$LINENO" 5 + if test "$ac_cv_header_proj_api_h" = no ; then + as_fn_error $? "Unable to find external PROJ proj_api.h file, give path or use default internal library." "$LINENO" 5 fi PROJ_SETTING=external @@ -4027,11 +4029,11 @@ elif test "$with_proj" != "no" -a "$with_proj" != "" ; then - if test -r $with_proj/include/projects.h ; then - echo "checking for $with_proj/include/projects.h ... found" + if test -r $with_proj/include/proj_api.h ; then + echo "checking for $with_proj/include/proj_api.h ... found" PROJ_INCLUDE=-I$with_proj/include else - as_fn_error $? "Unable to find $with_proj/include/projects.h" "$LINENO" 5 + as_fn_error $? "Unable to find $with_proj/include/proj_api.h" "$LINENO" 5 fi if test -r $with_proj/lib/libproj.so ; then --- a/configure.in +++ a/configure.in @@ -89,13 +89,13 @@ if test "$with_proj" = "yes" ; then AC_CHECK_LIB(proj,pj_init,PROJ_SETTING=external,PROJ_SETTING=missing,) - AC_CHECK_HEADERS(projects.h) + AC_CHECK_HEADERS(proj_api.h) if test $PROJ_SETTING = missing ; then AC_MSG_ERROR([Unable to find external PROJ.4 library, give path or use default internal library.]) fi - if test "$ac_cv_header_projects_h" = no ; then - AC_MSG_ERROR([Unable to find external PROJ.4 projects.h file, give path or use default internal library.]) + if test "$ac_cv_header_proj_api_h" = no ; then + AC_MSG_ERROR([Unable to find external PROJ.4 proj_api.h file, give path or use default internal library.]) fi PROJ_SETTING=external @@ -103,11 +103,11 @@ elif test "$with_proj" != "no" -a "$with_proj" != "" ; then - if test -r $with_proj/include/projects.h ; then - echo "checking for $with_proj/include/projects.h ... found" + if test -r $with_proj/include/proj_api.h ; then + echo "checking for $with_proj/include/proj_api.h ... found" PROJ_INCLUDE=-I$with_proj/include else - AC_MSG_ERROR([Unable to find $with_proj/include/projects.h]) + AC_MSG_ERROR([Unable to find $with_proj/include/proj_api.h]) fi if test -r $with_proj/lib/libproj.so ; then --- a/contrib/ogdi_import/ogdi_import.c +++ a/contrib/ogdi_import/ogdi_import.c @@ -63,12 +63,7 @@ #include "ecs.h" #include "shapefil.h" #include -#include "projects.h" - -#ifndef PJ_VERSION -#define projPJ PJ* -#define projUV UV -#endif +#include "proj_api.h" static int ClientID = -1; static int bNoDict = FALSE; --- a/contrib/ogdi_info/ogdi_info.c +++ a/contrib/ogdi_info/ogdi_info.c @@ -63,7 +63,7 @@ */ #include "ecs.h" -#include "projects.h" +#include "proj_api.h" static int ClientID = -1; static int bNoDict = FALSE; @@ -214,7 +214,7 @@ /* DumpGlobalRegion() */ /************************************************************************/ -static int DumpGlobalRegion( ecs_Region * region, PJ * proj_defn ) +static int DumpGlobalRegion( ecs_Region * region, projPJ proj_defn ) { ecs_Result *result; @@ -398,7 +398,7 @@ { ecs_Result *result; - PJ *proj_defn = NULL; + projPJ proj_defn = NULL; /* -------------------------------------------------------------------- */ /* Close old client if there is one active. */ --- a/ogdi/c-api/client.c +++ a/ogdi/c-api/client.c @@ -1579,7 +1579,7 @@ char *error_message; ecs_CtlPoints *cpts; ecs_Result *res; - PJ *tempproj; + projPJ tempproj; if (multiblock != 0) { res = &cln_dummy_result; @@ -1601,7 +1601,7 @@ /* Check if the projection is valid */ if (strncmp(projection,PROJ_LONGLAT,13) != 0) { - tempproj = (PJ *) cln_ProjInit(projection); + tempproj = (projPJ) cln_ProjInit(projection); if(tempproj == NULL) { res = &cln_dummy_result; ecs_SetError(res,1,"This projection string is invalid"); @@ -1778,7 +1778,7 @@ ecs_Result *res; register ecs_Client *cln; char *server_proj; - PJ *oldtarget,*oldsource; + projPJ oldtarget,oldsource; ecs_Region oldreg; int oldisprojequal; int oldisTargetLL; @@ -1877,7 +1877,7 @@ if (strncmp(projection,PROJ_LONGLAT,13) != 0) { cln->isTargetLL = FALSE; - cln->target = (PJ *) cln_ProjInit(projection); + cln->target = (projPJ) cln_ProjInit(projection); if(cln->target == NULL) { goto setprojerror; } @@ -1923,7 +1923,7 @@ if (strncmp(server_proj,PROJ_LONGLAT,13) != 0) { cln->isSourceLL = FALSE; - cln->source = (PJ *) cln_ProjInit(server_proj); + cln->source = (projPJ) cln_ProjInit(server_proj); if(cln->source == NULL) { goto setprojerror; } @@ -2331,13 +2331,13 @@ * char *d: Projection name * * OUT - * return PJ *: New projection structure. If NULL, the operation + * return projPJ: New projection structure. If NULL, the operation * is a failure. * *---------------------------------------------------------------------- */ -PJ *cln_ProjInit(d) +projPJ cln_ProjInit(d) char *d; { int i,n; @@ -2345,7 +2345,7 @@ char *l; int longueur; char *c; - PJ *retour; + projPJ retour; if ((c = (char *) malloc(strlen(d)+3)) == NULL) { return NULL; @@ -2378,7 +2378,7 @@ n++; } - retour = (PJ *) pj_init(n, (char **) tableau); + retour = (projPJ) pj_init(n, (char **) tableau); free(c); free(tableau); --- a/ogdi/c-api/ecs_dyna.c +++ a/ogdi/c-api/ecs_dyna.c @@ -40,7 +40,6 @@ #include #endif - /* ------------------------------------------------- --- a/ogdi/c-api/ecsgeo.c +++ a/ogdi/c-api/ecsgeo.c @@ -310,7 +310,7 @@ char *projection; double X1,Y1,X2,Y2; { - PJ *proj; + projPJ proj; char **argv; int argc; double lon1,lat1,lon2,lat2; --- a/ogdi/datum_driver/usa/dtusa.c +++ a/ogdi/datum_driver/usa/dtusa.c @@ -26,7 +26,12 @@ ********************************************************************/ #include "ecs.h" -#include "projects.h" +#include "proj_api.h" + +/* Definition from Proj.4 */ +projUV nad_cvt(projUV, int, struct CTABLE *); +struct CTABLE *nad_init(projCtx ctx, char *); +void nad_free(struct CTABLE *); typedef struct { struct CTABLE *dtptr; --- a/ogdi/include/ecs_util.h +++ a/ogdi/include/ecs_util.h @@ -129,12 +129,7 @@ #include #include -#include "projects.h" - -/* Ensure we are compatible with PROJ.4.4.x and PROJ.4.3.x */ -#ifndef USE_PROJUV -# define projUV UV -#endif +#include "proj_api.h" #include "ecs.h" @@ -1093,8 +1088,8 @@ ecs_Family currentSelectionFamily: Current layer selection type char *tclprocname: attribute callback procedure for tcl char *target_proj: Projection descriptor - PJ *target: target (c interface) projection descriptors - PJ *source: source (driver) projection descriptors + projPJ target: target (c interface) projection descriptors + projPJ source: source (driver) projection descriptors ecs_Datum targetdatum: target datum information ecs_Datum sourcedatum: source datum information void *dthandle: Handle to the datum driver @@ -1131,8 +1126,8 @@ ecs_Family currentSelectionFamily; /* Current layer selection type */ char *tclprocname; /* attribute callback procedure for tcl */ char *target_proj; - PJ *target; /* source and target projection descriptors */ - PJ *source; + projPJ target; /* source and target projection descriptors */ + projPJ source; int isSourceLL; /* flags to avoid unnecessary computation */ int isTargetLL; int isProjEqual; @@ -1204,7 +1199,7 @@ /* Projection conversion functions */ -PJ *cln_ProjInit _ANSI_ARGS_((char *d)); +projPJ cln_ProjInit _ANSI_ARGS_((char *d)); int cln_CompareProjections _ANSI_ARGS_((int ClientID)); int cln_UpdateMaxRegion _ANSI_ARGS_((int ClientID, double x, double y, ecs_Region *gr, int sens, int first)); int cln_ConvRegion _ANSI_ARGS_((int ClientID, ecs_Region *gr, int sens));