aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCharles Karney <ckarney@karney.com>2015-10-01 07:44:24 -0400
committerCharles Karney <ckarney@karney.com>2015-10-01 07:44:24 -0400
commit18d4720d28c0f4ed6af0e4a5a90413676e2b5d66 (patch)
tree45d8c41c6ad430a9d8258d98194f44568754d9fd /src
parent86b2155cf14a205951a41cc2ce8d574feedde03a (diff)
parentb5d0d2d4dd1d2431f3e88e5d26e6105ce9a5c6bf (diff)
downloadPROJ-18d4720d28c0f4ed6af0e4a5a90413676e2b5d66.tar.gz
PROJ-18d4720d28c0f4ed6af0e4a5a90413676e2b5d66.zip
Merge branch 'master' into dmstor-fix
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am4
-rw-r--r--src/Makefile.in1053
-rw-r--r--src/PJ_moll.c8
-rw-r--r--src/geod_interface.c29
-rw-r--r--src/geodesic.c296
-rw-r--r--src/geodesic.h77
-rw-r--r--src/pj_mutex.c8
-rw-r--r--src/pj_param.c16
-rw-r--r--src/pj_release.c2
-rw-r--r--src/pj_transform.c4
-rw-r--r--src/proj_api.h4
-rw-r--r--src/proj_config.h.in77
-rw-r--r--src/projects.h4
13 files changed, 243 insertions, 1339 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index e53e7082..5d89cc28 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,7 +3,7 @@ AM_CFLAGS = @C_WFLAGS@
bin_PROGRAMS = proj nad2bin geod cs2cs
EXTRA_PROGRAMS = multistresstest test228
-INCLUDES = -DPROJ_LIB=\"$(pkgdatadir)\" \
+AM_CPPFLAGS = -DPROJ_LIB=\"$(pkgdatadir)\" \
-DMUTEX_@MUTEX_SETTING@ @JNI_INCLUDE@
include_HEADERS = proj_api.h projects.h geodesic.h \
@@ -29,7 +29,7 @@ test228_LDADD = libproj.la @THREAD_LIB@
lib_LTLIBRARIES = libproj.la
-libproj_la_LDFLAGS = -no-undefined -version-info 9:0:0
+libproj_la_LDFLAGS = -no-undefined -version-info 10:0:0
libproj_la_SOURCES = \
pj_list.h \
diff --git a/src/Makefile.in b/src/Makefile.in
deleted file mode 100644
index 856cd107..00000000
--- a/src/Makefile.in
+++ /dev/null
@@ -1,1053 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = proj$(EXEEXT) nad2bin$(EXEEXT) geod$(EXEEXT) \
- cs2cs$(EXEEXT)
-EXTRA_PROGRAMS = multistresstest$(EXEEXT) test228$(EXEEXT)
-subdir = src
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(srcdir)/proj_config.h.in $(top_srcdir)/mkinstalldirs \
- $(top_srcdir)/depcomp $(include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = proj_config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
- "$(DESTDIR)$(includedir)"
-LTLIBRARIES = $(lib_LTLIBRARIES)
-libproj_la_LIBADD =
-am_libproj_la_OBJECTS = PJ_aeqd.lo PJ_gnom.lo PJ_laea.lo \
- PJ_mod_ster.lo PJ_nsper.lo PJ_nzmg.lo PJ_ortho.lo PJ_stere.lo \
- PJ_sterea.lo PJ_aea.lo PJ_bipc.lo PJ_bonne.lo PJ_eqdc.lo \
- PJ_isea.lo PJ_imw_p.lo PJ_krovak.lo PJ_lcc.lo PJ_poly.lo \
- PJ_rpoly.lo PJ_sconics.lo proj_rouss.lo PJ_cass.lo PJ_cc.lo \
- PJ_cea.lo PJ_eqc.lo PJ_gall.lo PJ_labrd.lo PJ_lsat.lo \
- PJ_merc.lo PJ_mill.lo PJ_ocea.lo PJ_omerc.lo PJ_somerc.lo \
- PJ_tcc.lo PJ_tcea.lo PJ_tmerc.lo PJ_airy.lo PJ_aitoff.lo \
- PJ_august.lo PJ_bacon.lo PJ_chamb.lo PJ_hammer.lo PJ_lagrng.lo \
- PJ_larr.lo PJ_lask.lo PJ_nocol.lo PJ_ob_tran.lo PJ_oea.lo \
- PJ_tpeqd.lo PJ_vandg.lo PJ_vandg2.lo PJ_vandg4.lo PJ_wag7.lo \
- PJ_lcca.lo PJ_geos.lo proj_etmerc.lo PJ_boggs.lo PJ_collg.lo \
- PJ_crast.lo PJ_denoy.lo PJ_eck1.lo PJ_eck2.lo PJ_eck3.lo \
- PJ_eck4.lo PJ_eck5.lo PJ_fahey.lo PJ_fouc_s.lo PJ_gins8.lo \
- PJ_gstmerc.lo PJ_gn_sinu.lo PJ_goode.lo PJ_igh.lo PJ_hatano.lo \
- PJ_loxim.lo PJ_mbt_fps.lo PJ_mbtfpp.lo PJ_mbtfpq.lo PJ_moll.lo \
- PJ_nell.lo PJ_nell_h.lo PJ_putp2.lo PJ_putp3.lo PJ_putp4p.lo \
- PJ_putp5.lo PJ_putp6.lo PJ_qsc.lo PJ_robin.lo PJ_sts.lo \
- PJ_urm5.lo PJ_urmfps.lo PJ_wag2.lo PJ_wag3.lo PJ_wink1.lo \
- PJ_wink2.lo pj_latlong.lo pj_geocent.lo aasincos.lo adjlon.lo \
- bch2bps.lo bchgen.lo biveval.lo dmstor.lo mk_cheby.lo \
- pj_auth.lo pj_deriv.lo pj_ell_set.lo pj_ellps.lo pj_errno.lo \
- pj_factors.lo pj_fwd.lo pj_init.lo pj_inv.lo pj_list.lo \
- pj_malloc.lo pj_mlfn.lo pj_msfn.lo proj_mdist.lo \
- pj_open_lib.lo pj_param.lo pj_phi2.lo pj_pr_list.lo pj_qsfn.lo \
- pj_strerrno.lo pj_tsfn.lo pj_units.lo pj_ctx.lo pj_log.lo \
- pj_zpoly1.lo rtodms.lo vector1.lo pj_release.lo pj_gauss.lo \
- PJ_healpix.lo PJ_natearth.lo PJ_calcofi.lo pj_fileapi.lo \
- pj_gc_reader.lo pj_gridcatalog.lo nad_cvt.lo nad_init.lo \
- nad_intr.lo emess.lo pj_apply_gridshift.lo pj_datums.lo \
- pj_datum_set.lo pj_transform.lo geocent.lo pj_utils.lo \
- pj_gridinfo.lo pj_gridlist.lo jniproj.lo pj_mutex.lo \
- pj_initcache.lo pj_apply_vgridshift.lo geodesic.lo \
- pj_strtod.lo
-libproj_la_OBJECTS = $(am_libproj_la_OBJECTS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-libproj_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(libproj_la_LDFLAGS) $(LDFLAGS) -o $@
-PROGRAMS = $(bin_PROGRAMS)
-am_cs2cs_OBJECTS = cs2cs.$(OBJEXT) gen_cheb.$(OBJEXT) \
- p_series.$(OBJEXT)
-cs2cs_OBJECTS = $(am_cs2cs_OBJECTS)
-cs2cs_DEPENDENCIES = libproj.la
-am_geod_OBJECTS = geod.$(OBJEXT) geod_set.$(OBJEXT) \
- geod_interface.$(OBJEXT)
-geod_OBJECTS = $(am_geod_OBJECTS)
-geod_DEPENDENCIES = libproj.la
-am_multistresstest_OBJECTS = multistresstest.$(OBJEXT)
-multistresstest_OBJECTS = $(am_multistresstest_OBJECTS)
-multistresstest_DEPENDENCIES = libproj.la
-am_nad2bin_OBJECTS = nad2bin.$(OBJEXT)
-nad2bin_OBJECTS = $(am_nad2bin_OBJECTS)
-nad2bin_DEPENDENCIES = libproj.la
-am_proj_OBJECTS = proj.$(OBJEXT) gen_cheb.$(OBJEXT) p_series.$(OBJEXT)
-proj_OBJECTS = $(am_proj_OBJECTS)
-proj_DEPENDENCIES = libproj.la
-am_test228_OBJECTS = test228.$(OBJEXT)
-test228_OBJECTS = $(am_test228_OBJECTS)
-test228_DEPENDENCIES = libproj.la
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(libproj_la_SOURCES) $(cs2cs_SOURCES) $(geod_SOURCES) \
- $(multistresstest_SOURCES) $(nad2bin_SOURCES) $(proj_SOURCES) \
- $(test228_SOURCES)
-DIST_SOURCES = $(libproj_la_SOURCES) $(cs2cs_SOURCES) $(geod_SOURCES) \
- $(multistresstest_SOURCES) $(nad2bin_SOURCES) $(proj_SOURCES) \
- $(test228_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-HEADERS = $(include_HEADERS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
- $(LISP)proj_config.h.in
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-C_WFLAGS = @C_WFLAGS@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-JNI_INCLUDE = @JNI_INCLUDE@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-MUTEX_SETTING = @MUTEX_SETTING@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-THREAD_LIB = @THREAD_LIB@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AM_CFLAGS = @C_WFLAGS@
-INCLUDES = -DPROJ_LIB=\"$(pkgdatadir)\" \
- -DMUTEX_@MUTEX_SETTING@ @JNI_INCLUDE@
-
-include_HEADERS = proj_api.h projects.h geodesic.h \
- org_proj4_Projections.h org_proj4_PJ.h
-
-EXTRA_DIST = makefile.vc proj.def bin_cs2cs.cmake \
- bin_geod.cmake bin_nad2bin.cmake bin_proj.cmake \
- lib_proj.cmake CMakeLists.txt
-
-proj_SOURCES = proj.c gen_cheb.c p_series.c
-cs2cs_SOURCES = cs2cs.c gen_cheb.c p_series.c
-nad2bin_SOURCES = nad2bin.c
-geod_SOURCES = geod.c geod_set.c geod_interface.c geod_interface.h
-multistresstest_SOURCES = multistresstest.c
-test228_SOURCES = test228.c
-proj_LDADD = libproj.la
-cs2cs_LDADD = libproj.la
-nad2bin_LDADD = libproj.la
-geod_LDADD = libproj.la
-multistresstest_LDADD = libproj.la @THREAD_LIB@
-test228_LDADD = libproj.la @THREAD_LIB@
-lib_LTLIBRARIES = libproj.la
-libproj_la_LDFLAGS = -no-undefined -version-info 9:0:0
-libproj_la_SOURCES = \
- pj_list.h \
- PJ_aeqd.c PJ_gnom.c PJ_laea.c PJ_mod_ster.c \
- PJ_nsper.c PJ_nzmg.c PJ_ortho.c PJ_stere.c PJ_sterea.c \
- PJ_aea.c PJ_bipc.c PJ_bonne.c PJ_eqdc.c PJ_isea.c \
- PJ_imw_p.c PJ_krovak.c PJ_lcc.c PJ_poly.c \
- PJ_rpoly.c PJ_sconics.c proj_rouss.c \
- PJ_cass.c PJ_cc.c PJ_cea.c PJ_eqc.c \
- PJ_gall.c PJ_labrd.c PJ_lsat.c PJ_merc.c \
- PJ_mill.c PJ_ocea.c PJ_omerc.c PJ_somerc.c \
- PJ_tcc.c PJ_tcea.c PJ_tmerc.c \
- PJ_airy.c PJ_aitoff.c PJ_august.c PJ_bacon.c \
- PJ_chamb.c PJ_hammer.c PJ_lagrng.c PJ_larr.c \
- PJ_lask.c PJ_nocol.c PJ_ob_tran.c PJ_oea.c \
- PJ_tpeqd.c PJ_vandg.c PJ_vandg2.c PJ_vandg4.c \
- PJ_wag7.c PJ_lcca.c PJ_geos.c proj_etmerc.c \
- PJ_boggs.c PJ_collg.c PJ_crast.c PJ_denoy.c \
- PJ_eck1.c PJ_eck2.c PJ_eck3.c PJ_eck4.c \
- PJ_eck5.c PJ_fahey.c PJ_fouc_s.c PJ_gins8.c PJ_gstmerc.c \
- PJ_gn_sinu.c PJ_goode.c PJ_igh.c PJ_hatano.c PJ_loxim.c \
- PJ_mbt_fps.c PJ_mbtfpp.c PJ_mbtfpq.c PJ_moll.c \
- PJ_nell.c PJ_nell_h.c PJ_putp2.c PJ_putp3.c \
- PJ_putp4p.c PJ_putp5.c PJ_putp6.c PJ_qsc.c PJ_robin.c \
- PJ_sts.c PJ_urm5.c PJ_urmfps.c PJ_wag2.c \
- PJ_wag3.c PJ_wink1.c PJ_wink2.c pj_latlong.c pj_geocent.c \
- aasincos.c adjlon.c bch2bps.c bchgen.c \
- biveval.c dmstor.c mk_cheby.c pj_auth.c \
- pj_deriv.c pj_ell_set.c pj_ellps.c pj_errno.c \
- pj_factors.c pj_fwd.c pj_init.c pj_inv.c \
- pj_list.c pj_malloc.c pj_mlfn.c pj_msfn.c proj_mdist.c \
- pj_open_lib.c pj_param.c pj_phi2.c pj_pr_list.c \
- pj_qsfn.c pj_strerrno.c pj_tsfn.c pj_units.c pj_ctx.c pj_log.c \
- pj_zpoly1.c rtodms.c vector1.c pj_release.c pj_gauss.c \
- PJ_healpix.c PJ_natearth.c PJ_calcofi.c pj_fileapi.c \
- \
- pj_gc_reader.c pj_gridcatalog.c \
- nad_cvt.c nad_init.c nad_intr.c emess.c emess.h \
- pj_apply_gridshift.c pj_datums.c pj_datum_set.c pj_transform.c \
- geocent.c geocent.h pj_utils.c pj_gridinfo.c pj_gridlist.c \
- jniproj.c pj_mutex.c pj_initcache.c pj_apply_vgridshift.c geodesic.c \
- pj_strtod.c
-
-all: proj_config.h
- $(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu src/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-proj_config.h: stamp-h1
- @test -f $@ || rm -f stamp-h1
- @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
-
-stamp-h1: $(srcdir)/proj_config.h.in $(top_builddir)/config.status
- @rm -f stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status src/proj_config.h
-$(srcdir)/proj_config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
- rm -f stamp-h1
- touch $@
-
-distclean-hdr:
- -rm -f proj_config.h stamp-h1
-
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- list2=; for p in $$list; do \
- if test -f $$p; then \
- list2="$$list2 $$p"; \
- else :; fi; \
- done; \
- test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
- }
-
-uninstall-libLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- for p in $$list; do \
- $(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
- done
-
-clean-libLTLIBRARIES:
- -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
- @list='$(lib_LTLIBRARIES)'; \
- locs=`for p in $$list; do echo $$p; done | \
- sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
- sort -u`; \
- test -z "$$locs" || { \
- echo rm -f $${locs}; \
- rm -f $${locs}; \
- }
-
-libproj.la: $(libproj_la_OBJECTS) $(libproj_la_DEPENDENCIES) $(EXTRA_libproj_la_DEPENDENCIES)
- $(AM_V_CCLD)$(libproj_la_LINK) -rpath $(libdir) $(libproj_la_OBJECTS) $(libproj_la_LIBADD) $(LIBS)
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-cs2cs$(EXEEXT): $(cs2cs_OBJECTS) $(cs2cs_DEPENDENCIES) $(EXTRA_cs2cs_DEPENDENCIES)
- @rm -f cs2cs$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(cs2cs_OBJECTS) $(cs2cs_LDADD) $(LIBS)
-
-geod$(EXEEXT): $(geod_OBJECTS) $(geod_DEPENDENCIES) $(EXTRA_geod_DEPENDENCIES)
- @rm -f geod$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(geod_OBJECTS) $(geod_LDADD) $(LIBS)
-
-multistresstest$(EXEEXT): $(multistresstest_OBJECTS) $(multistresstest_DEPENDENCIES) $(EXTRA_multistresstest_DEPENDENCIES)
- @rm -f multistresstest$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(multistresstest_OBJECTS) $(multistresstest_LDADD) $(LIBS)
-
-nad2bin$(EXEEXT): $(nad2bin_OBJECTS) $(nad2bin_DEPENDENCIES) $(EXTRA_nad2bin_DEPENDENCIES)
- @rm -f nad2bin$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(nad2bin_OBJECTS) $(nad2bin_LDADD) $(LIBS)
-
-proj$(EXEEXT): $(proj_OBJECTS) $(proj_DEPENDENCIES) $(EXTRA_proj_DEPENDENCIES)
- @rm -f proj$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(proj_OBJECTS) $(proj_LDADD) $(LIBS)
-
-test228$(EXEEXT): $(test228_OBJECTS) $(test228_DEPENDENCIES) $(EXTRA_test228_DEPENDENCIES)
- @rm -f test228$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(test228_OBJECTS) $(test228_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_aea.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_aeqd.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_airy.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_aitoff.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_august.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_bacon.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_bipc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_boggs.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_bonne.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_calcofi.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_cass.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_cc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_cea.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_chamb.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_collg.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_crast.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_denoy.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_eck1.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_eck2.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_eck3.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_eck4.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_eck5.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_eqc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_eqdc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_fahey.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_fouc_s.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_gall.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_geos.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_gins8.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_gn_sinu.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_gnom.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_goode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_gstmerc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_hammer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_hatano.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_healpix.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_igh.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_imw_p.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_isea.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_krovak.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_labrd.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_laea.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_lagrng.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_larr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_lask.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_lcc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_lcca.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_loxim.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_lsat.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_mbt_fps.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_mbtfpp.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_mbtfpq.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_merc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_mill.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_mod_ster.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_moll.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_natearth.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_nell.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_nell_h.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_nocol.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_nsper.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_nzmg.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_ob_tran.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_ocea.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_oea.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_omerc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_ortho.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_poly.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_putp2.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_putp3.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_putp4p.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_putp5.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_putp6.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_qsc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_robin.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_rpoly.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_sconics.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_somerc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_stere.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_sterea.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_sts.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_tcc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_tcea.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_tmerc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_tpeqd.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_urm5.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_urmfps.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_vandg.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_vandg2.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_vandg4.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_wag2.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_wag3.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_wag7.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_wink1.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_wink2.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aasincos.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adjlon.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bch2bps.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bchgen.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/biveval.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cs2cs.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dmstor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emess.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gen_cheb.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geocent.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geod.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geod_interface.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geod_set.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geodesic.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jniproj.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mk_cheby.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multistresstest.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nad2bin.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nad_cvt.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nad_init.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nad_intr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/p_series.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_apply_gridshift.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_apply_vgridshift.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_auth.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_ctx.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_datum_set.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_datums.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_deriv.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_ell_set.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_ellps.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_errno.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_factors.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_fileapi.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_fwd.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_gauss.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_gc_reader.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_geocent.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_gridcatalog.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_gridinfo.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_gridlist.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_init.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_initcache.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_inv.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_latlong.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_list.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_log.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_malloc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_mlfn.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_msfn.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_mutex.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_open_lib.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_param.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_phi2.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_pr_list.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_qsfn.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_release.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_strerrno.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_strtod.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_transform.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_tsfn.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_units.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_utils.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj_zpoly1.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proj.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proj_etmerc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proj_mdist.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proj_rouss.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rtodms.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test228.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vector1.Plo@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-includeHEADERS: $(include_HEADERS)
- @$(NORMAL_INSTALL)
- @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
- $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
- done
-
-uninstall-includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) proj_config.h
-install-binPROGRAMS: install-libLTLIBRARIES
-
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \
- clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-hdr distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS install-exec-local \
- install-libLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS \
- uninstall-libLTLIBRARIES
-
-.MAKE: all install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
- clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \
- clean-libtool cscopelist-am ctags ctags-am distclean \
- distclean-compile distclean-generic distclean-hdr \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-exec-local install-html \
- install-html-am install-includeHEADERS install-info \
- install-info-am install-libLTLIBRARIES install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \
- uninstall-includeHEADERS uninstall-libLTLIBRARIES
-
-
-install-exec-local:
- rm -f $(DESTDIR)$(bindir)/invproj$(EXEEXT)
- (cd $(DESTDIR)$(bindir); ln -s proj$(EXEEXT) invproj$(EXEEXT))
- rm -f $(DESTDIR)$(bindir)/invgeod$(EXEEXT)
- (cd $(DESTDIR)$(bindir); ln -s geod$(EXEEXT) invgeod$(EXEEXT))
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/PJ_moll.c b/src/PJ_moll.c
index 98f0457d..cf9369dc 100644
--- a/src/PJ_moll.c
+++ b/src/PJ_moll.c
@@ -29,8 +29,12 @@ FORWARD(s_forward); /* spheroid */
INVERSE(s_inverse); /* spheroid */
lp.phi = aasin(P->ctx, xy.y / P->C_y);
lp.lam = xy.x / (P->C_x * cos(lp.phi));
- lp.phi += lp.phi;
- lp.phi = aasin(P->ctx, (lp.phi + sin(lp.phi)) / P->C_p);
+ if (fabs(lp.lam) < PI) {
+ lp.phi += lp.phi;
+ lp.phi = aasin(P->ctx, (lp.phi + sin(lp.phi)) / P->C_p);
+ } else {
+ lp.lam = lp.phi = HUGE_VAL;
+ }
return (lp);
}
FREEUP; if (P) pj_dalloc(P); }
diff --git a/src/geod_interface.c b/src/geod_interface.c
index dc757282..63b16b1e 100644
--- a/src/geod_interface.c
+++ b/src/geod_interface.c
@@ -1,34 +1,39 @@
#include "projects.h"
#include "geod_interface.h"
+/* DEG_IN is a crock to work around the problem that dmstor.c uses the wrong
+ * value for pi/180 (namely .0174532925199433 which is an inaccurately
+ * truncated version of DEG_TO_RAD).
+ */
+#define DEG_IN .0174532925199433
+#define DEG_OUT DEG_TO_RAD;
+
void geod_ini(void) {
geod_init(&GlobalGeodesic, geod_a, geod_f);
}
void geod_pre(void) {
double
- degree = PI/180,
- lat1 = phi1 / degree, lon1 = lam1 /degree, azi1 = al12 / degree;
- geod_lineinit(&GlobalGeodesicLine, &GlobalGeodesic,
- lat1, lon1, azi1, 0U);
+ lat1 = phi1 / DEG_IN, lon1 = lam1 / DEG_IN, azi1 = al12 / DEG_IN;
+ geod_lineinit(&GlobalGeodesicLine, &GlobalGeodesic, lat1, lon1, azi1, 0U);
}
void geod_for(void) {
- double degree = PI/180, s12 = geod_S, lat2, lon2, azi2;
+ double
+ s12 = geod_S, lat2, lon2, azi2;
geod_position(&GlobalGeodesicLine, s12, &lat2, &lon2, &azi2);
azi2 += azi2 >= 0 ? -180 : 180; /* Compute back azimuth */
- phi2 = lat2 * degree;
- lam2 = lon2 * degree;
- al21 = azi2 * degree;
+ phi2 = lat2 * DEG_OUT;
+ lam2 = lon2 * DEG_OUT;
+ al21 = azi2 * DEG_OUT;
}
void geod_inv(void) {
double
- degree = PI / 180,
- lat1 = phi1 / degree, lon1 = lam1 / degree,
- lat2 = phi2 / degree, lon2 = lam2 / degree,
+ lat1 = phi1 / DEG_IN, lon1 = lam1 / DEG_IN,
+ lat2 = phi2 / DEG_IN, lon2 = lam2 / DEG_IN,
azi1, azi2, s12;
geod_inverse(&GlobalGeodesic, lat1, lon1, lat2, lon2, &s12, &azi1, &azi2);
azi2 += azi2 >= 0 ? -180 : 180; /* Compute back azimuth */
- al12 = azi1 * degree; al21 = azi2 * degree; geod_S = s12;
+ al12 = azi1 * DEG_OUT; al21 = azi2 * DEG_OUT; geod_S = s12;
}
diff --git a/src/geodesic.c b/src/geodesic.c
index 4bda1500..2dee45e0 100644
--- a/src/geodesic.c
+++ b/src/geodesic.c
@@ -38,6 +38,7 @@
#define nC3x ((nC3 * (nC3 - 1)) / 2)
#define nC4 GEOGRAPHICLIB_GEODESIC_ORDER
#define nC4x ((nC4 * (nC4 + 1)) / 2)
+#define nC (GEOGRAPHICLIB_GEODESIC_ORDER + 1)
typedef double real;
typedef int boolx;
@@ -160,18 +161,23 @@ static void norm2(real* sinx, real* cosx) {
*cosx /= r;
}
-static real AngNormalize(real x)
-{ return x >= 180 ? x - 360 : (x < -180 ? x + 360 : x); }
-static real AngNormalize2(real x)
-{ return AngNormalize(fmod(x, (real)(360))); }
+static real AngNormalize(real x) {
+ x = fmod(x, (real)(360));
+ return x < -180 ? x + 360 : (x < 180 ? x : x - 360);
+}
+
+static real LatFix(real x)
+{ return fabs(x) > 90 ? NaN : x; }
static real AngDiff(real x, real y) {
- real t, d = sumx(-x, y, &t);
- if ((d - (real)(180)) + t > (real)(0)) /* y - x > 180 */
- d -= (real)(360); /* exact */
- else if ((d + (real)(180)) + t <= (real)(0)) /* y - x <= -180 */
- d += (real)(360); /* exact */
- return d + t;
+ real t, d = - AngNormalize(sumx(AngNormalize(x), AngNormalize(-y), &t));
+ /* Here y - x = d - t (mod 360), exactly, where d is in (-180,180] and
+ * abs(t) <= eps (eps = 2^-45 for doubles). The only case where the
+ * addition of t takes the result outside the range (-180,180] is d = 180
+ * and t < 0. The case, d = -180 + eps, t = eps, can't happen, since
+ * sum would have returned the exact result in such a case (i.e., given t
+ * = 0). */
+ return (d == 180 && t < 0 ? -180 : d) - t;
}
static real AngRound(real x) {
@@ -182,6 +188,48 @@ static real AngRound(real x) {
return x < 0 ? 0 - y : y;
}
+static void sincosdx(real x, real* sinx, real* cosx) {
+ /* In order to minimize round-off errors, this function exactly reduces
+ * the argument to the range [-45, 45] before converting it to radians. */
+ real r, s, c; int q;
+ r = fmod(x, (real)(360));
+ q = (int)(floor(r / 90 + (real)(0.5)));
+ r -= 90 * q;
+ /* now abs(r) <= 45 */
+ r *= degree;
+ /* Possibly could call the gnu extension sincos */
+ s = sin(r); c = cos(r);
+ switch ((unsigned)q & 3U) {
+ case 0U: *sinx = s; *cosx = c; break;
+ case 1U: *sinx = c; *cosx = 0 - s; break;
+ case 2U: *sinx = 0 - s; *cosx = 0 - c; break;
+ default: *sinx = 0 - c; *cosx = s; break; /* case 3U */
+ }
+}
+
+static real atan2dx(real y, real x) {
+ /* In order to minimize round-off errors, this function rearranges the
+ * arguments so that result of atan2 is in the range [-pi/4, pi/4] before
+ * converting it to degrees and mapping the result to the correct
+ * quadrant. */
+ int q = 0; real ang;
+ if (fabs(y) > fabs(x)) { swapx(&x, &y); q = 2; }
+ if (x < 0) { x = -x; ++q; }
+ /* here x >= 0 and x >= abs(y), so angle is in [-pi/4, pi/4] */
+ ang = atan2(y, x) / degree;
+ switch (q) {
+ /* Note that atan2d(-0.0, 1.0) will return -0. However, we expect that
+ * atan2d will not be called with y = -0. If need be, include
+ *
+ * case 0: ang = 0 + ang; break;
+ */
+ case 1: ang = (y > 0 ? 180 : -180) - ang; break;
+ case 2: ang = 90 - ang; break;
+ case 3: ang = -90 + ang; break;
+ }
+ return ang;
+}
+
static void A3coeff(struct geod_geodesic* g);
static void C3coeff(struct geod_geodesic* g);
static void C4coeff(struct geod_geodesic* g);
@@ -194,9 +242,9 @@ static void Lengths(const struct geod_geodesic* g,
real ssig2, real csig2, real dn2,
real cbet1, real cbet2,
real* ps12b, real* pm12b, real* pm0,
- boolx scalep, real* pM12, real* pM21,
- /* Scratch areas of the right size */
- real C1a[], real C2a[]);
+ real* pM12, real* pM21,
+ /* Scratch area of the right size */
+ real Ca[]);
static real Astroid(real x, real y);
static real InverseStart(const struct geod_geodesic* g,
real sbet1, real cbet1, real dn1,
@@ -207,8 +255,8 @@ static real InverseStart(const struct geod_geodesic* g,
real* psalp2, real* pcalp2,
/* Only updated for short lines */
real* pdnm,
- /* Scratch areas of the right size */
- real C1a[], real C2a[]);
+ /* Scratch area of the right size */
+ real Ca[]);
static real Lambda12(const struct geod_geodesic* g,
real sbet1, real cbet1, real dn1,
real sbet2, real cbet2, real dn2,
@@ -219,8 +267,8 @@ static real Lambda12(const struct geod_geodesic* g,
real* pssig2, real* pcsig2,
real* peps, real* pdomg12,
boolx diffp, real* pdlam12,
- /* Scratch areas of the right size */
- real C1a[], real C2a[], real C3a[]);
+ /* Scratch area of the right size */
+ real Ca[]);
static real A3f(const struct geod_geodesic* g, real eps);
static void C3f(const struct geod_geodesic* g, real eps, real c[]);
static void C4f(const struct geod_geodesic* g, real eps, real c[]);
@@ -270,7 +318,7 @@ void geod_init(struct geod_geodesic* g, real a, real f) {
void geod_lineinit(struct geod_geodesicline* l,
const struct geod_geodesic* g,
real lat1, real lon1, real azi1, unsigned caps) {
- real alp1, cbet1, sbet1, phi, eps;
+ real cbet1, sbet1, eps;
l->a = g->a;
l->f = g->f;
l->b = g->b;
@@ -281,21 +329,15 @@ void geod_lineinit(struct geod_geodesicline* l,
/* always allow latitude and azimuth and unrolling of longitude */
GEOD_LATITUDE | GEOD_AZIMUTH | GEOD_LONG_UNROLL;
- l->lat1 = lat1;
+ l->lat1 = LatFix(lat1);
l->lon1 = lon1;
+ l->azi1 = AngNormalize(azi1);
/* Guard against underflow in salp0 */
- l->azi1 = AngRound(AngNormalize(azi1));
- /* alp1 is in [0, pi] */
- alp1 = l->azi1 * degree;
- /* Enforce sin(pi) == 0 and cos(pi/2) == 0. Better to face the ensuing
- * problems directly than to skirt them. */
- l->salp1 = l->azi1 == -180 ? 0 : sin(alp1);
- l->calp1 = fabs(l->azi1) == 90 ? 0 : cos(alp1);
- phi = lat1 * degree;
+ sincosdx(AngRound(l->azi1), &l->salp1, &l->calp1);
+
+ sincosdx(AngRound(l->lat1), &sbet1, &cbet1); sbet1 *= l->f1;
/* Ensure cbet1 = +epsilon at poles */
- sbet1 = l->f1 * sin(phi);
- cbet1 = fabs(lat1) == 90 ? tiny : cos(phi);
- norm2(&sbet1, &cbet1);
+ norm2(&sbet1, &cbet1); cbet1 = maxx(tiny, cbet1);
l->dn1 = sqrt(1 + g->ep2 * sq(sbet1));
/* Evaluate alp0 from sin(alp1) * cos(bet1) = sin(alp0), */
@@ -384,13 +426,9 @@ real geod_genposition(const struct geod_geodesicline* l,
return NaN;
if (flags & GEOD_ARCMODE) {
- real s12a;
/* Interpret s12_a12 as spherical arc length */
sig12 = s12_a12 * degree;
- s12a = fabs(s12_a12);
- s12a -= 180 * floor(s12a / 180);
- ssig12 = s12a == 0 ? 0 : sin(sig12);
- csig12 = s12a == 90 ? 0 : cos(sig12);
+ sincosdx(s12_a12, &ssig12, &csig12);
} else {
/* Interpret s12_a12 as distance */
real
@@ -475,18 +513,15 @@ real geod_genposition(const struct geod_geodesicline* l,
( sig12 + (SinCosSeries(TRUE, ssig2, csig2, l->C3a, nC3-1)
- l->B31));
lon12 = lam12 / degree;
- /* Use AngNormalize2 because longitude might have wrapped multiple
- * times. */
lon2 = flags & GEOD_LONG_UNROLL ? l->lon1 + lon12 :
- AngNormalize(AngNormalize(l->lon1) + AngNormalize2(lon12));
+ AngNormalize(AngNormalize(l->lon1) + AngNormalize(lon12));
}
if (outmask & GEOD_LATITUDE)
- lat2 = atan2(sbet2, l->f1 * cbet2) / degree;
+ lat2 = atan2dx(sbet2, l->f1 * cbet2);
if (outmask & GEOD_AZIMUTH)
- /* minus signs give range [-180, 180). 0- converts -0 to +0. */
- azi2 = 0 - atan2(-salp2, calp2) / degree;
+ azi2 = atan2dx(salp2, calp2);
if (outmask & (GEOD_REDUCEDLENGTH | GEOD_GEODESICSCALE)) {
real
@@ -602,11 +637,10 @@ real geod_geninverse(const struct geod_geodesic* g,
real s12 = 0, azi1 = 0, azi2 = 0, m12 = 0, M12 = 0, M21 = 0, S12 = 0;
real lon12;
int latsign, lonsign, swapp;
- real phi, sbet1, cbet1, sbet2, cbet2, s12x = 0, m12x = 0;
+ real sbet1, cbet1, sbet2, cbet2, s12x = 0, m12x = 0;
real dn1, dn2, lam12, slam12, clam12;
real a12 = 0, sig12, calp1 = 0, salp1 = 0, calp2 = 0, salp2 = 0;
- /* index zero elements of these arrays are unused */
- real C1a[nC1 + 1], C2a[nC2 + 1], C3a[nC3];
+ real Ca[nC];
boolx meridian;
real omg12 = 0;
@@ -621,15 +655,14 @@ real geod_geninverse(const struct geod_geodesic* g,
/* Compute longitude difference (AngDiff does this carefully). Result is
* in [-180, 180] but -180 is only for west-going geodesics. 180 is for
* east-going and meridional geodesics. */
- lon12 = AngDiff(AngNormalize(lon1), AngNormalize(lon2));
/* If very close to being on the same half-meridian, then make it so. */
- lon12 = AngRound(lon12);
+ lon12 = AngRound(AngDiff(lon1, lon2));
/* Make longitude difference positive. */
lonsign = lon12 >= 0 ? 1 : -1;
lon12 *= lonsign;
/* If really close to the equator, treat as on equator. */
- lat1 = AngRound(lat1);
- lat2 = AngRound(lat2);
+ lat1 = AngRound(LatFix(lat1));
+ lat2 = AngRound(LatFix(lat2));
/* Swap points so that point with higher (abs) latitude is point 1 */
swapp = fabs(lat1) >= fabs(lat2) ? 1 : -1;
if (swapp < 0) {
@@ -652,17 +685,13 @@ real geod_geninverse(const struct geod_geodesic* g,
* check, e.g., on verifying quadrants in atan2. In addition, this
* enforces some symmetries in the results returned. */
- phi = lat1 * degree;
+ sincosdx(lat1, &sbet1, &cbet1); sbet1 *= g->f1;
/* Ensure cbet1 = +epsilon at poles */
- sbet1 = g->f1 * sin(phi);
- cbet1 = lat1 == -90 ? tiny : cos(phi);
- norm2(&sbet1, &cbet1);
+ norm2(&sbet1, &cbet1); cbet1 = maxx(tiny, cbet1);
- phi = lat2 * degree;
+ sincosdx(lat2, &sbet2, &cbet2); sbet2 *= g->f1;
/* Ensure cbet2 = +epsilon at poles */
- sbet2 = g->f1 * sin(phi);
- cbet2 = fabs(lat2) == 90 ? tiny : cos(phi);
- norm2(&sbet2, &cbet2);
+ norm2(&sbet2, &cbet2); cbet2 = maxx(tiny, cbet2);
/* If cbet1 < -sbet1, then cbet2 - cbet1 is a sensitive measure of the
* |bet1| - |bet2|. Alternatively (cbet1 >= -sbet1), abs(sbet2) + sbet1 is
@@ -684,8 +713,7 @@ real geod_geninverse(const struct geod_geodesic* g,
dn2 = sqrt(1 + g->ep2 * sq(sbet2));
lam12 = lon12 * degree;
- slam12 = lon12 == 180 ? 0 : sin(lam12);
- clam12 = cos(lam12); /* lon12 == 90 isn't interesting */
+ sincosdx(lon12, &slam12, &clam12);
meridian = lat1 == -90 || slam12 == 0;
@@ -705,12 +733,11 @@ real geod_geninverse(const struct geod_geodesic* g,
/* sig12 = sig2 - sig1 */
sig12 = atan2(maxx(csig1 * ssig2 - ssig1 * csig2, (real)(0)),
csig1 * csig2 + ssig1 * ssig2);
- {
- real dummy;
- Lengths(g, g->n, sig12, ssig1, csig1, dn1, ssig2, csig2, dn2,
- cbet1, cbet2, &s12x, &m12x, &dummy,
- (outmask & GEOD_GEODESICSCALE) != 0U, &M12, &M21, C1a, C2a);
- }
+ Lengths(g, g->n, sig12, ssig1, csig1, dn1, ssig2, csig2, dn2,
+ cbet1, cbet2, &s12x, &m12x, 0,
+ outmask & GEOD_GEODESICSCALE ? &M12 : 0,
+ outmask & GEOD_GEODESICSCALE ? &M21 : 0,
+ Ca);
/* Add the check for sig12 since zero length geodesics might yield m12 <
* 0. Test case was
*
@@ -719,6 +746,9 @@ real geod_geninverse(const struct geod_geodesic* g,
* In fact, we will have sig12 > pi/2 for meridional geodesic which is
* not a shortest path. */
if (sig12 < 1 || m12x >= 0) {
+ /* Need at least 2, to handle 90 0 90 180 */
+ if (sig12 < 3 * tiny)
+ sig12 = m12x = s12x = 0;
m12x *= g->b;
s12x *= g->b;
a12 = sig12 / degree;
@@ -751,7 +781,7 @@ real geod_geninverse(const struct geod_geodesic* g,
sig12 = InverseStart(g, sbet1, cbet1, dn1, sbet2, cbet2, dn2,
lam12,
&salp1, &calp1, &salp2, &calp2, &dnm,
- C1a, C2a);
+ Ca);
if (sig12 >= 0) {
/* Short lines (InverseStart sets salp2, calp2, dnm) */
@@ -785,7 +815,7 @@ real geod_geninverse(const struct geod_geodesic* g,
real dv = 0,
v = (Lambda12(g, sbet1, cbet1, dn1, sbet2, cbet2, dn2, salp1, calp1,
&salp2, &calp2, &sig12, &ssig1, &csig1, &ssig2, &csig2,
- &eps, &omg12, numit < maxit1, &dv, C1a, C2a, C3a)
+ &eps, &omg12, numit < maxit1, &dv, Ca)
- lam12);
/* 2 * tol0 is approximately 1 ulp for a number in [0, pi]. */
/* Reversed test to allow escape with NaNs */
@@ -827,12 +857,10 @@ real geod_geninverse(const struct geod_geodesic* g,
tripb = (fabs(salp1a - salp1) + (calp1a - calp1) < tolb ||
fabs(salp1 - salp1b) + (calp1 - calp1b) < tolb);
}
- {
- real dummy;
- Lengths(g, eps, sig12, ssig1, csig1, dn1, ssig2, csig2, dn2,
- cbet1, cbet2, &s12x, &m12x, &dummy,
- (outmask & GEOD_GEODESICSCALE) != 0U, &M12, &M21, C1a, C2a);
- }
+ Lengths(g, eps, sig12, ssig1, csig1, dn1, ssig2, csig2, dn2,
+ cbet1, cbet2, &s12x, &m12x, 0,
+ outmask & GEOD_GEODESICSCALE ? &M12 : 0,
+ outmask & GEOD_GEODESICSCALE ? &M21 : 0, Ca);
m12x *= g->b;
s12x *= g->b;
a12 = sig12 / degree;
@@ -861,13 +889,12 @@ real geod_geninverse(const struct geod_geodesic* g,
eps = k2 / (2 * (1 + sqrt(1 + k2)) + k2),
/* Multiplier = a^2 * e^2 * cos(alpha0) * sin(alpha0). */
A4 = sq(g->a) * calp0 * salp0 * g->e2;
- real C4a[nC4];
real B41, B42;
norm2(&ssig1, &csig1);
norm2(&ssig2, &csig2);
- C4f(g, eps, C4a);
- B41 = SinCosSeries(FALSE, ssig1, csig1, C4a, nC4);
- B42 = SinCosSeries(FALSE, ssig2, csig2, C4a, nC4);
+ C4f(g, eps, Ca);
+ B41 = SinCosSeries(FALSE, ssig1, csig1, Ca, nC4);
+ B42 = SinCosSeries(FALSE, ssig2, csig2, Ca, nC4);
S12 = A4 * (B42 - B41);
} else
/* Avoid problems with indeterminate sig1, sig2 on equator */
@@ -918,8 +945,8 @@ real geod_geninverse(const struct geod_geodesic* g,
if (outmask & GEOD_AZIMUTH) {
/* minus signs give range [-180, 180). 0- converts -0 to +0. */
- azi1 = 0 - atan2(-salp1, calp1) / degree;
- azi2 = 0 - atan2(-salp2, calp2) / degree;
+ azi1 = atan2dx(salp1, calp1);
+ azi2 = atan2dx(salp2, calp2);
}
if (outmask & GEOD_DISTANCE)
@@ -975,42 +1002,58 @@ void Lengths(const struct geod_geodesic* g,
real ssig2, real csig2, real dn2,
real cbet1, real cbet2,
real* ps12b, real* pm12b, real* pm0,
- boolx scalep, real* pM12, real* pM21,
- /* Scratch areas of the right size */
- real C1a[], real C2a[]) {
- real s12b = 0, m12b = 0, m0 = 0, M12 = 0, M21 = 0;
- real A1m1, AB1, A2m1, AB2, J12;
+ real* pM12, real* pM21,
+ /* Scratch area of the right size */
+ real Ca[]) {
+ real m0 = 0, J12 = 0, A1 = 0, A2 = 0;
+ real Cb[nC];
/* Return m12b = (reduced length)/b; also calculate s12b = distance/b,
* and m0 = coefficient of secular term in expression for reduced length. */
- C1f(eps, C1a);
- C2f(eps, C2a);
- A1m1 = A1m1f(eps);
- AB1 = (1 + A1m1) * (SinCosSeries(TRUE, ssig2, csig2, C1a, nC1) -
- SinCosSeries(TRUE, ssig1, csig1, C1a, nC1));
- A2m1 = A2m1f(eps);
- AB2 = (1 + A2m1) * (SinCosSeries(TRUE, ssig2, csig2, C2a, nC2) -
- SinCosSeries(TRUE, ssig1, csig1, C2a, nC2));
- m0 = A1m1 - A2m1;
- J12 = m0 * sig12 + (AB1 - AB2);
- /* Missing a factor of b.
- * Add parens around (csig1 * ssig2) and (ssig1 * csig2) to ensure accurate
- * cancellation in the case of coincident points. */
- m12b = dn2 * (csig1 * ssig2) - dn1 * (ssig1 * csig2) - csig1 * csig2 * J12;
- /* Missing a factor of b */
- s12b = (1 + A1m1) * sig12 + AB1;
- if (scalep) {
+ boolx redlp = pm12b || pm0 || pM12 || pM21;
+ if (ps12b || redlp) {
+ A1 = A1m1f(eps);
+ C1f(eps, Ca);
+ if (redlp) {
+ A2 = A2m1f(eps);
+ C2f(eps, Cb);
+ m0 = A1 - A2;
+ A2 = 1 + A2;
+ }
+ A1 = 1 + A1;
+ }
+ if (ps12b) {
+ real B1 = SinCosSeries(TRUE, ssig2, csig2, Ca, nC1) -
+ SinCosSeries(TRUE, ssig1, csig1, Ca, nC1);
+ /* Missing a factor of b */
+ *ps12b = A1 * (sig12 + B1);
+ if (redlp) {
+ real B2 = SinCosSeries(TRUE, ssig2, csig2, Cb, nC2) -
+ SinCosSeries(TRUE, ssig1, csig1, Cb, nC2);
+ J12 = m0 * sig12 + (A1 * B1 - A2 * B2);
+ }
+ } else if (redlp) {
+ /* Assume here that nC1 >= nC2 */
+ int l;
+ for (l = 1; l <= nC2; ++l)
+ Cb[l] = A1 * Ca[l] - A2 * Cb[l];
+ J12 = m0 * sig12 + (SinCosSeries(TRUE, ssig2, csig2, Cb, nC2) -
+ SinCosSeries(TRUE, ssig1, csig1, Cb, nC2));
+ }
+ if (pm0) *pm0 = m0;
+ if (pm12b)
+ /* Missing a factor of b.
+ * Add parens around (csig1 * ssig2) and (ssig1 * csig2) to ensure
+ * accurate cancellation in the case of coincident points. */
+ *pm12b = dn2 * (csig1 * ssig2) - dn1 * (ssig1 * csig2) -
+ csig1 * csig2 * J12;
+ if (pM12 || pM21) {
real csig12 = csig1 * csig2 + ssig1 * ssig2;
real t = g->ep2 * (cbet1 - cbet2) * (cbet1 + cbet2) / (dn1 + dn2);
- M12 = csig12 + (t * ssig2 - csig2 * J12) * ssig1 / dn1;
- M21 = csig12 - (t * ssig1 - csig1 * J12) * ssig2 / dn2;
- }
- *ps12b = s12b;
- *pm12b = m12b;
- *pm0 = m0;
- if (scalep) {
- *pM12 = M12;
- *pM21 = M21;
+ if (pM12)
+ *pM12 = csig12 + (t * ssig2 - csig2 * J12) * ssig1 / dn1;
+ if (pM21)
+ *pM21 = csig12 - (t * ssig1 - csig1 * J12) * ssig2 / dn2;
}
}
@@ -1029,7 +1072,7 @@ real Astroid(real x, real y) {
S = p * q / 4, /* S = r^3 * s */
r2 = sq(r),
r3 = r * r2,
- /* The discrimant of the quadratic equation for T3. This is zero on
+ /* The discriminant of the quadratic equation for T3. This is zero on
* the evolute curve p^(1/3)+q^(1/3) = 1 */
disc = S * (S + 2 * r3);
real u = r;
@@ -1075,8 +1118,8 @@ real InverseStart(const struct geod_geodesic* g,
real* psalp2, real* pcalp2,
/* Only updated for short lines */
real* pdnm,
- /* Scratch areas of the right size */
- real C1a[], real C2a[]) {
+ /* Scratch area of the right size */
+ real Ca[]) {
real salp1 = 0, calp1 = 0, salp2 = 0, calp2 = 0, dnm = 0;
/* Return a starting point for Newton's method in salp1 and calp1 (function
@@ -1087,6 +1130,7 @@ real InverseStart(const struct geod_geodesic* g,
/* bet12 = bet2 - bet1 in [0, pi); bet12a = bet2 + bet1 in (-pi, 0] */
sbet12 = sbet2 * cbet1 - cbet2 * sbet1,
cbet12 = cbet2 * cbet1 + sbet2 * sbet1;
+ real sbet12a;
boolx shortline = cbet12 >= 0 && sbet12 < (real)(0.5) &&
cbet2 * lam12 < (real)(0.5);
real omg12 = lam12, somg12, comg12, ssig12, csig12;
@@ -1098,14 +1142,13 @@ real InverseStart(const struct geod_geodesic* g,
* 89.333123580033 0 -89.333123580032997687 179.99295812360148422
* which otherwise fail with g++ 4.4.4 x86 -O3 (Linux)
* and g++ 4.4.0 (mingw) and g++ 4.6.1 (tdm mingw). */
- real sbet12a;
{
volatile real xx1 = sbet2 * cbet1;
volatile real xx2 = cbet2 * sbet1;
sbet12a = xx1 + xx2;
}
#else
- real sbet12a = sbet2 * cbet1 + cbet2 * sbet1;
+ sbet12a = sbet2 * cbet1 + cbet2 * sbet1;
#endif
if (shortline) {
real sbetm2 = sq(sbet1 + sbet2);
@@ -1162,13 +1205,12 @@ real InverseStart(const struct geod_geodesic* g,
real
cbet12a = cbet2 * cbet1 - sbet2 * sbet1,
bet12a = atan2(sbet12a, cbet12a);
- real m12b, m0, dummy;
+ real m12b, m0;
/* In the case of lon12 = 180, this repeats a calculation made in
* Inverse. */
Lengths(g, g->n, pi + bet12a,
sbet1, -cbet1, dn1, sbet2, cbet2, dn2,
- cbet1, cbet2, &dummy, &m12b, &m0, FALSE,
- &dummy, &dummy, C1a, C2a);
+ cbet1, cbet2, 0, &m12b, &m0, 0, 0, Ca);
x = -1 + m12b / (cbet1 * cbet2 * m0 * pi);
betscale = x < -(real)(0.01) ? sbet12a / x :
-g->f * sq(cbet1) * pi;
@@ -1256,8 +1298,8 @@ real Lambda12(const struct geod_geodesic* g,
real* pssig2, real* pcsig2,
real* peps, real* pdomg12,
boolx diffp, real* pdlam12,
- /* Scratch areas of the right size */
- real C1a[], real C2a[], real C3a[]) {
+ /* Scratch area of the right size */
+ real Ca[]) {
real salp2 = 0, calp2 = 0, sig12 = 0,
ssig1 = 0, csig1 = 0, ssig2 = 0, csig2 = 0, eps = 0, domg12 = 0, dlam12 = 0;
real salp0, calp0;
@@ -1311,9 +1353,9 @@ real Lambda12(const struct geod_geodesic* g,
comg1 * comg2 + somg1 * somg2);
k2 = sq(calp0) * g->ep2;
eps = k2 / (2 * (1 + sqrt(1 + k2)) + k2);
- C3f(g, eps, C3a);
- B312 = (SinCosSeries(TRUE, ssig2, csig2, C3a, nC3-1) -
- SinCosSeries(TRUE, ssig1, csig1, C3a, nC3-1));
+ C3f(g, eps, Ca);
+ B312 = (SinCosSeries(TRUE, ssig2, csig2, Ca, nC3-1) -
+ SinCosSeries(TRUE, ssig1, csig1, Ca, nC3-1));
h0 = -g->f * A3f(g, eps);
domg12 = salp0 * h0 * (sig12 + B312);
lam12 = omg12 + domg12;
@@ -1322,10 +1364,8 @@ real Lambda12(const struct geod_geodesic* g,
if (calp2 == 0)
dlam12 = - 2 * g->f1 * dn1 / sbet1;
else {
- real dummy;
Lengths(g, eps, sig12, ssig1, csig1, dn1, ssig2, csig2, dn2,
- cbet1, cbet2, &dummy, &dlam12, &dummy,
- FALSE, &dummy, &dummy, C1a, C2a);
+ cbet1, cbet2, 0, &dlam12, 0, 0, 0, Ca);
dlam12 *= g->f1 / (calp2 * cbet2);
}
}
@@ -1446,12 +1486,12 @@ void C1pf(real eps, real c[]) {
/* The scale factor A2-1 = mean value of (d/dsigma)I2 - 1 */
real A2m1f(real eps) {
static const real coeff[] = {
- /* A2/(1-eps)-1, polynomial in eps2 of order 3 */
- 25, 36, 64, 0, 256,
+ /* (eps+1)*A2-1, polynomial in eps2 of order 3 */
+ -11, -28, -192, 0, 256,
};
int m = nA2/2;
real t = polyval(m, coeff, sq(eps)) / coeff[m + 1];
- return t * (1 - eps) - eps;
+ return (t - eps) / (1 + eps);
}
/* The coefficients C2[l] in the Fourier expansion of B2 */
diff --git a/src/geodesic.h b/src/geodesic.h
index 1a1892a7..7bd8270f 100644
--- a/src/geodesic.h
+++ b/src/geodesic.h
@@ -113,7 +113,7 @@
* http://geographiclib.sourceforge.net/
*
* This library was distributed with
- * <a href="../index.html">GeographicLib</a> 1.43.
+ * <a href="../index.html">GeographicLib</a> 1.44.
**********************************************************************/
#if !defined(GEODESIC_H)
@@ -128,7 +128,7 @@
* The minor version of the geodesic library. (This tracks the version of
* GeographicLib.)
**********************************************************************/
-#define GEODESIC_VERSION_MINOR 43
+#define GEODESIC_VERSION_MINOR 44
/**
* The patch level of the geodesic library. (This tracks the version of
* GeographicLib.)
@@ -147,11 +147,11 @@
* where MM is the major version, mmmm is the minor version, and pp is the
* patch level. Users should not rely on this particular packing of the
* components of the version number. Instead they should use a test such as
- * \code
+ * @code{.c}
#if GEODESIC_VERSION >= GEODESIC_VERSION_NUM(1,40,0)
...
#endif
- * \endcode
+ * @endcode
**********************************************************************/
#define GEODESIC_VERSION \
GEODESIC_VERSION_NUM(GEODESIC_VERSION_MAJOR, \
@@ -237,8 +237,7 @@ extern "C" {
* geod_genposition().
*
* \e g must have been initialized with a call to geod_init(). \e lat1
- * should be in the range [&minus;90&deg;, 90&deg;]; \e lon1 and \e azi1
- * should be in the range [&minus;540&deg;, 540&deg;).
+ * should be in the range [&minus;90&deg;, 90&deg;].
*
* The geod_mask values are [see geod_mask()]:
* - \e caps |= GEOD_LATITUDE for the latitude \e lat2; this is
@@ -278,8 +277,7 @@ extern "C" {
* @param[out] pazi2 pointer to the (forward) azimuth at point 2 (degrees).
*
* \e g must have been initialized with a call to geod_init(). \e lat1
- * should be in the range [&minus;90&deg;, 90&deg;]; \e lon1 and \e azi1
- * should be in the range [&minus;540&deg;, 540&deg;). The values of \e lon2
+ * should be in the range [&minus;90&deg;, 90&deg;]. The values of \e lon2
* and \e azi2 returned are in the range [&minus;180&deg;, 180&deg;). Any of
* the "return" arguments \e plat2, etc., may be replaced by 0, if you do not
* need some quantities computed.
@@ -292,7 +290,7 @@ extern "C" {
* longitudinal extent must not exceed of 180&deg;.)
*
* Example, determine the point 10000 km NE of JFK:
- @code
+ @code{.c}
struct geod_geodesic g;
double lat, lon;
geod_init(&g, 6378137, 1/298.257223563);
@@ -318,11 +316,10 @@ extern "C" {
* @param[out] pazi1 pointer to the azimuth at point 1 (degrees).
* @param[out] pazi2 pointer to the (forward) azimuth at point 2 (degrees).
*
- * \e g must have been initialized with a call to geod_init(). \e lat1
- * and \e lat2 should be in the range [&minus;90&deg;, 90&deg;]; \e lon1 and
- * \e lon2 should be in the range [&minus;540&deg;, 540&deg;). The values of
+ * \e g must have been initialized with a call to geod_init(). \e lat1 and
+ * \e lat2 should be in the range [&minus;90&deg;, 90&deg;]. The values of
* \e azi1 and \e azi2 returned are in the range [&minus;180&deg;, 180&deg;).
- * Any of the "return" arguments \e ps12, etc., may be replaced by 0, if you
+ * Any of the "return" arguments, \e ps12, etc., may be replaced by 0, if you
* do not need some quantities computed.
*
* If either point is at a pole, the azimuth is defined by keeping the
@@ -335,7 +332,7 @@ extern "C" {
* is used to refine the solution.
*
* Example, determine the distance between JFK and Singapore Changi Airport:
- @code
+ @code{.c}
struct geod_geodesic g;
double s12;
geod_init(&g, 6378137, 1/298.257223563);
@@ -367,7 +364,7 @@ extern "C" {
*
* Example, compute way points between JFK and Singapore Changi Airport
* the "obvious" way using geod_direct():
- @code
+ @code{.c}
struct geod_geodesic g;
double s12, azi1, lat[101],lon[101];
int i;
@@ -379,7 +376,7 @@ extern "C" {
}
@endcode
* A faster way using geod_position():
- @code
+ @code{.c}
struct geod_geodesic g;
struct geod_geodesicline l;
double s12, azi1, lat[101],lon[101];
@@ -425,18 +422,14 @@ extern "C" {
* @return \e a12 arc length of between point 1 and point 2 (degrees).
*
* \e g must have been initialized with a call to geod_init(). \e lat1
- * should be in the range [&minus;90&deg;, 90&deg;]; \e lon1 and \e azi1
- * should be in the range [&minus;540&deg;, 540&deg;). The function
- * value \e a12 equals \e s12_a12 if \e flags & GEOD_ARCMODE. Any of the
- * "return" arguments \e plat2, etc., may be replaced by 0, if you do not
- * need some quantities computed.
+ * should be in the range [&minus;90&deg;, 90&deg;]. The function value \e
+ * a12 equals \e s12_a12 if \e flags & GEOD_ARCMODE. Any of the "return"
+ * arguments, \e plat2, etc., may be replaced by 0, if you do not need some
+ * quantities computed.
*
* With \e flags & GEOD_LONG_UNROLL bit set, the longitude is "unrolled" so
* that the quantity \e lon2 &minus; \e lon1 indicates how many times and in
- * what sense the geodesic encircles the ellipsoid. Because \e lon2 might be
- * outside the normal allowed range for longitudes, [&minus;540&deg;,
- * 540&deg;), be sure to normalize it, e.g., with fmod(\e lon2, 360.0) before
- * using it in subsequent calculations
+ * what sense the geodesic encircles the ellipsoid.
**********************************************************************/
double geod_gendirect(const struct geod_geodesic* g,
double lat1, double lon1, double azi1,
@@ -467,9 +460,8 @@ extern "C" {
* (meters<sup>2</sup>).
* @return \e a12 arc length of between point 1 and point 2 (degrees).
*
- * \e g must have been initialized with a call to geod_init(). \e lat1
- * and \e lat2 should be in the range [&minus;90&deg;, 90&deg;]; \e lon1 and
- * \e lon2 should be in the range [&minus;540&deg;, 540&deg;). Any of the
+ * \e g must have been initialized with a call to geod_init(). \e lat1 and
+ * \e lat2 should be in the range [&minus;90&deg;, 90&deg;]. Any of the
* "return" arguments \e ps12, etc., may be replaced by 0, if you do not need
* some quantities computed.
**********************************************************************/
@@ -521,17 +513,14 @@ extern "C" {
*
* With \e flags & GEOD_LONG_UNROLL bit set, the longitude is "unrolled" so
* that the quantity \e lon2 &minus; \e lon1 indicates how many times and in
- * what sense the geodesic encircles the ellipsoid. Because \e lon2 might be
- * outside the normal allowed range for longitudes, [&minus;540&deg;,
- * 540&deg;), be sure to normalize it, e.g., with fmod(\e lon2, 360.0) before
- * using it in subsequent calculations
+ * what sense the geodesic encircles the ellipsoid.
*
* Example, compute way points between JFK and Singapore Changi Airport
* using geod_genposition(). In this example, the points are evenly space in
* arc length (and so only approximately equally space in distance). This is
* faster than using geod_position() would be appropriate if drawing the path
* on a map.
- @code
+ @code{.c}
struct geod_geodesic g;
struct geod_geodesicline l;
double a12, azi1, lat[101], lon[101];
@@ -588,8 +577,7 @@ extern "C" {
* \e g and \e p must have been initialized with calls to geod_init() and
* geod_polygon_init(), respectively. The same \e g must be used for all the
* points and edges in a polygon. \e lat should be in the range
- * [&minus;90&deg;, 90&deg;] and \e lon should be in the range
- * [&minus;540&deg;, 540&deg;).
+ * [&minus;90&deg;, 90&deg;].
*
* An example of the use of this function is given in the documentation for
* geod_polygon_compute().
@@ -610,10 +598,9 @@ extern "C" {
*
* \e g and \e p must have been initialized with calls to geod_init() and
* geod_polygon_init(), respectively. The same \e g must be used for all the
- * points and edges in a polygon. \e azi should be in the range
- * [&minus;540&deg;, 540&deg;). This does nothing if no points have been
- * added yet. The \e lat and \e lon fields of \e p give the location of
- * the new vertex.
+ * points and edges in a polygon. This does nothing if no points have been
+ * added yet. The \e lat and \e lon fields of \e p give the location of the
+ * new vertex.
**********************************************************************/
void geod_polygon_addedge(const struct geod_geodesic* g,
struct geod_polygon* p,
@@ -645,7 +632,7 @@ extern "C" {
*
* Example, compute the perimeter and area of the geodesic triangle with
* vertices (0&deg;N,0&deg;E), (0&deg;N,90&deg;E), (90&deg;N,0&deg;E).
- @code
+ @code{.c}
double A, P;
int n;
struct geod_geodesic g;
@@ -689,8 +676,7 @@ extern "C" {
* polyline (meters).
* @return the number of points.
*
- * \e lat should be in the range [&minus;90&deg;, 90&deg;] and \e
- * lon should be in the range [&minus;540&deg;, 540&deg;).
+ * \e lat should be in the range [&minus;90&deg;, 90&deg;].
**********************************************************************/
unsigned geod_polygon_testpoint(const struct geod_geodesic* g,
const struct geod_polygon* p,
@@ -722,8 +708,6 @@ extern "C" {
* @param[out] pP pointer to the perimeter of the polygon or length of the
* polyline (meters).
* @return the number of points.
- *
- * \e azi should be in the range [&minus;540&deg;, 540&deg;).
**********************************************************************/
unsigned geod_polygon_testedge(const struct geod_geodesic* g,
const struct geod_polygon* p,
@@ -742,8 +726,7 @@ extern "C" {
* @param[out] pA pointer to the area of the polygon (meters<sup>2</sup>).
* @param[out] pP pointer to the perimeter of the polygon (meters).
*
- * \e lats should be in the range [&minus;90&deg;, 90&deg;]; \e lons should
- * be in the range [&minus;540&deg;, 540&deg;).
+ * \e lats should be in the range [&minus;90&deg;, 90&deg;].
*
* Only simple polygons (which are not self-intersecting) are allowed.
* There's no need to "close" the polygon by repeating the first vertex. The
@@ -751,7 +734,7 @@ extern "C" {
* positive.
*
* Example, compute the area of Antarctica:
- @code
+ @code{.c}
double
lats[] = {-72.9, -71.9, -74.9, -74.3, -77.5, -77.4, -71.7, -65.9, -65.7,
-66.6, -66.9, -69.8, -70.0, -71.0, -77.3, -77.9, -74.7},
diff --git a/src/pj_mutex.c b/src/pj_mutex.c
index 349537c8..dc484c69 100644
--- a/src/pj_mutex.c
+++ b/src/pj_mutex.c
@@ -33,7 +33,9 @@
#define _XOPEN_SOURCE 500
#endif
+
#ifndef _WIN32
+#include "proj_config.h"
#include <projects.h>
#else
#include <proj_api.h>
@@ -120,10 +122,10 @@ void pj_acquire_lock()
pthread_mutex_lock( &pj_precreated_lock);
pthread_mutexattr_init(&mutex_attr);
-#ifndef PTHREAD_MUTEX_RECURSIVE
- pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_NP);
-#else
+#ifdef HAVE_PTHREAD_MUTEX_RECURSIVE
pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE);
+#else
+ pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_NP);
#endif
pthread_mutex_init(&pj_core_lock, &mutex_attr);
pj_core_lock_created = 1;
diff --git a/src/pj_param.c b/src/pj_param.c
index ed6ce27c..434d4535 100644
--- a/src/pj_param.c
+++ b/src/pj_param.c
@@ -23,22 +23,22 @@ pj_mkparam(char *str) {
/* character in `opt' is a parameter type which can take the */
/* values: */
/* */
-/* `t' - test for presence, return TRUE/FALSE in PVALUE.i */
-/* `i' - integer value returned in PVALUE.i */
-/* `d' - simple valued real input returned in PVALUE.f */
+/* `t' - test for presence, return TRUE/FALSE in PROJVALUE.i */
+/* `i' - integer value returned in PROJVALUE.i */
+/* `d' - simple valued real input returned in PROJVALUE.f */
/* `r' - degrees (DMS translation applied), returned as */
-/* radians in PVALUE.f */
-/* `s' - string returned in PVALUE.s */
-/* `b' - test for t/T/f/F, return in PVALUE.i */
+/* radians in PROJVALUE.f */
+/* `s' - string returned in PROJVALUE.s */
+/* `b' - test for t/T/f/F, return in PROJVALUE.i */
/* */
/************************************************************************/
- PVALUE /* test for presence or get parameter value */
+ PROJVALUE /* test for presence or get parameter value */
pj_param(projCtx ctx, paralist *pl, const char *opt) {
int type;
unsigned l;
- PVALUE value;
+ PROJVALUE value;
if( ctx == NULL )
ctx = pj_get_default_ctx();
diff --git a/src/pj_release.c b/src/pj_release.c
index f60b2204..c3736b44 100644
--- a/src/pj_release.c
+++ b/src/pj_release.c
@@ -2,7 +2,7 @@
#include <projects.h>
-char const pj_release[]="Rel. 4.9.1, 04 March 2015";
+char const pj_release[]="Rel. 4.9.2, 08 September 2015";
const char *pj_get_release()
diff --git a/src/pj_transform.c b/src/pj_transform.c
index c8b68281..6fe571c6 100644
--- a/src/pj_transform.c
+++ b/src/pj_transform.c
@@ -208,7 +208,7 @@ int pj_transform( PJ *srcdefn, PJ *dstdefn, long point_count, int point_offset,
/* Do we need to translate from geoid to ellipsoidal vertical */
/* datum? */
/* -------------------------------------------------------------------- */
- if( srcdefn->has_geoid_vgrids )
+ if( srcdefn->has_geoid_vgrids && z != NULL )
{
if( pj_apply_vgridshift( srcdefn, "sgeoidgrids",
&(srcdefn->vgridlist_geoid),
@@ -233,7 +233,7 @@ int pj_transform( PJ *srcdefn, PJ *dstdefn, long point_count, int point_offset,
/* Do we need to translate from geoid to ellipsoidal vertical */
/* datum? */
/* -------------------------------------------------------------------- */
- if( dstdefn->has_geoid_vgrids )
+ if( dstdefn->has_geoid_vgrids && z != NULL )
{
if( pj_apply_vgridshift( dstdefn, "sgeoidgrids",
&(dstdefn->vgridlist_geoid),
diff --git a/src/proj_api.h b/src/proj_api.h
index ed11d6a4..99faeafb 100644
--- a/src/proj_api.h
+++ b/src/proj_api.h
@@ -38,7 +38,7 @@ extern "C" {
#endif
/* Try to update this every version! */
-#define PJ_VERSION 491
+#define PJ_VERSION 492
/* pj_init() and similar functions can be used with a non-C locale */
/* Can be detected too at runtime if the symbol pj_atof exists */
@@ -91,7 +91,7 @@ int pj_geodetic_to_geocentric( double a, double es,
long point_count, int point_offset,
double *x, double *y, double *z );
int pj_compare_datums( projPJ srcdefn, projPJ dstdefn );
-int pj_apply_gridshift( projCtx, const char *, int,
+int pj_apply_gridshift( projCtx, const char *, int,
long point_count, int point_offset,
double *x, double *y, double *z );
void pj_deallocate_grids(void);
diff --git a/src/proj_config.h.in b/src/proj_config.h.in
deleted file mode 100644
index 7a8d6943..00000000
--- a/src/proj_config.h.in
+++ /dev/null
@@ -1,77 +0,0 @@
-/* src/proj_config.h.in. Generated from configure.in by autoheader. */
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the <jni.h> header file. */
-#undef HAVE_JNI_H
-
-/* Define to 1 if you have the `m' library (-lm). */
-#undef HAVE_LIBM
-
-/* Define to 1 if you have the `pthread' library (-lpthread). */
-#undef HAVE_LIBPTHREAD
-
-/* Define to 1 if you have localeconv */
-#undef HAVE_LOCALECONV
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Enabled for Java/JNI Support */
-#undef JNI_ENABLED
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
-#undef LT_OBJDIR
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#undef VERSION
diff --git a/src/projects.h b/src/projects.h
index ac95f69d..fe6a44c6 100644
--- a/src/projects.h
+++ b/src/projects.h
@@ -156,7 +156,7 @@ typedef struct { double x, y; } XY;
typedef struct { double lam, phi; } LP;
#endif
-typedef union { double f; int i; char *s; } PVALUE;
+typedef union { double f; int i; char *s; } PROJVALUE;
struct PJconsts;
struct PJ_LIST {
@@ -395,7 +395,7 @@ void set_rtodms(int, int);
char *rtodms(char *, double, int, int);
double adjlon(double);
double aacos(projCtx,double), aasin(projCtx,double), asqrt(double), aatan2(double, double);
-PVALUE pj_param(projCtx ctx, paralist *, const char *);
+PROJVALUE pj_param(projCtx ctx, paralist *, const char *);
paralist *pj_mkparam(char *);
int pj_ell_set(projCtx ctx, paralist *, double *, double *);
int pj_datum_set(projCtx,paralist *, PJ *);