aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/starlink-ast
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/starlink-ast
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/starlink-ast')
-rw-r--r--vcpkg/ports/starlink-ast/cminpack.diff46
-rw-r--r--vcpkg/ports/starlink-ast/install-errors.diff13
-rw-r--r--vcpkg/ports/starlink-ast/portfile.cmake95
-rw-r--r--vcpkg/ports/starlink-ast/vcpkg.json24
4 files changed, 178 insertions, 0 deletions
diff --git a/vcpkg/ports/starlink-ast/cminpack.diff b/vcpkg/ports/starlink-ast/cminpack.diff
new file mode 100644
index 0000000..deb5e2d
--- /dev/null
+++ b/vcpkg/ports/starlink-ast/cminpack.diff
@@ -0,0 +1,46 @@
+diff --git a/Makefile.in b/Makefile.in
+index a935107..51c5e07 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -1572,13 +1572,13 @@ libast_la_SOURCES = \
+ libast_la_LDFLAGS = -version-info @version_info@
+ @EXTERNAL_CMINPACK_FALSE@@EXTERNAL_PAL_FALSE@libast_la_LIBADD = libast_pal.la libast_cminpack.la
+ @EXTERNAL_CMINPACK_FALSE@@EXTERNAL_PAL_TRUE@libast_la_LIBADD = -lpal libast_cminpack.la
+-@EXTERNAL_CMINPACK_TRUE@@EXTERNAL_PAL_FALSE@libast_la_LIBADD = libast_pal.la -lcminpack
++@EXTERNAL_CMINPACK_TRUE@@EXTERNAL_PAL_FALSE@libast_la_LIBADD = libast_pal.la $(LIBCMINPACK)
+
+ # Ensure libast links against libraries containing functions used within
+ # libast. If AST is configured --with-external-pal, then the internal
+ # libast_pal library will be empty, and we link to an external PAL
+ # library instead. Do the same for cminpack
+-@EXTERNAL_CMINPACK_TRUE@@EXTERNAL_PAL_TRUE@libast_la_LIBADD = -lpal -lcminpack
++@EXTERNAL_CMINPACK_TRUE@@EXTERNAL_PAL_TRUE@libast_la_LIBADD = -lpal $(LIBCMINPACK)
+
+ # AST_PAR is really part of GRP_F_INCLUDE_FILES, but it must not be
+ # distributed, so list it separately.
+diff --git a/configure b/configure
+index d9db3ee..f3d3fc0 100755
+--- a/configure
++++ b/configure
+@@ -15763,7 +15763,7 @@ fi
+ EXTERNAL_CMINPACK=$external_cminpack
+
+ if test "$external_cminpack" = "1"; then
+- LIBCMINPACK="-lcminpack"
++ LIBCMINPACK="-lcminpack$CMINPACK_DEBUG_SUFFIX"
+
+
+ $as_echo "#define EXTERNAL_CMINPACK 1" >>confdefs.h
+diff --git a/src/polymap.c b/src/polymap.c
+index 0b436cc..1aee268 100644
+--- a/src/polymap.c
++++ b/src/polymap.c
+@@ -165,7 +165,7 @@ f - AST_POLYTRAN: Fit a PolyMap inverse or forward transformation
+ #include "cmpmap.h" /* Compound mappings */
+ #include "polymap.h" /* Interface definition for this class */
+ #include "unitmap.h" /* Unit mappings */
+-#include "cminpack/cminpack.h" /* Levenberg - Marquardt minimization */
++#include "cminpack-1/cminpack.h" /* Levenberg - Marquardt minimization */
+ #include "pal.h" /* SLALIB function definitions */
+
+ /* Error code definitions. */
diff --git a/vcpkg/ports/starlink-ast/install-errors.diff b/vcpkg/ports/starlink-ast/install-errors.diff
new file mode 100644
index 0000000..ed82f80
--- /dev/null
+++ b/vcpkg/ports/starlink-ast/install-errors.diff
@@ -0,0 +1,13 @@
+diff --git a/Makefile.in b/Makefile.in
+index a935107..dbc590d 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -1772,7 +1772,7 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ 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)"; \
++ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)" || exit 1; \
+ if $(MANIFEST); then \
+ for p in $$list2; do \
+ echo "MANIFEST:$(DESTDIR)$(libdir)/$$p"; \
diff --git a/vcpkg/ports/starlink-ast/portfile.cmake b/vcpkg/ports/starlink-ast/portfile.cmake
new file mode 100644
index 0000000..243dc33
--- /dev/null
+++ b/vcpkg/ports/starlink-ast/portfile.cmake
@@ -0,0 +1,95 @@
+if(VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+endif()
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/Starlink/ast/releases/download/v${VERSION}/ast-${VERSION}.tar.gz"
+ FILENAME "starlink-ast-${VERSION}.tar.gz"
+ SHA512 44f837a17eaf2d959bde49982927f09bcd527ce9cb1418df5b2ef1e10b85387b40aa3099be08102f7fdfa6037ec95d3d49158c96a94b0a8b9e0495b3b9d40bf6
+)
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+ PATCHES
+ cminpack.diff
+ install-errors.diff
+)
+file(REMOVE_RECURSE "${SOURCE_PATH}/cminpack")
+
+set(CONFIGURE_OPTIONS
+ --without-fortran
+ --with-external-cminpack
+ "--with-starlink=${CURRENT_INSTALLED_DIR}"
+ FC=false
+)
+
+if ("yaml" IN_LIST FEATURES)
+ list(APPEND CONFIGURE_OPTIONS --with-yaml)
+else()
+ list(APPEND CONFIGURE_OPTIONS --without-yaml)
+endif()
+
+if ("pthreads" IN_LIST FEATURES)
+ list(APPEND CONFIGURE_OPTIONS --with-pthreads)
+else()
+ list(APPEND CONFIGURE_OPTIONS --without-pthreads)
+endif()
+
+vcpkg_configure_make(
+ SOURCE_PATH "${SOURCE_PATH}"
+ USE_WRAPPERS
+ DETERMINE_BUILD_TRIPLET
+ ADDITIONAL_MSYS_PACKAGES perl
+ OPTIONS
+ ${CONFIGURE_OPTIONS}
+ OPTIONS_DEBUG
+ CMINPACK_DEBUG_SUFFIX=_d
+)
+vcpkg_install_make(
+ OPTIONS
+ STAR_LDFLAGS= # Do not override build type's lib dirs
+)
+
+# Avoid vcpkg artifact issues with symlinks
+foreach(ast_lib IN ITEMS "${CURRENT_PACKAGES_DIR}/lib/libast" "${CURRENT_PACKAGES_DIR}/debug/lib/libast")
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" AND EXISTS "${ast_lib}${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}")
+ file(REMOVE "${ast_lib}_pass2${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}")
+ file(COPY_FILE "${ast_lib}${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" "${ast_lib}_pass2${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}")
+ endif()
+endforeach()
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/docs"
+ "${CURRENT_PACKAGES_DIR}/debug/help"
+ "${CURRENT_PACKAGES_DIR}/debug/manifests"
+ "${CURRENT_PACKAGES_DIR}/debug/news"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+ "${CURRENT_PACKAGES_DIR}/docs"
+ "${CURRENT_PACKAGES_DIR}/help"
+ "${CURRENT_PACKAGES_DIR}/manifests"
+ "${CURRENT_PACKAGES_DIR}/news"
+ "${CURRENT_PACKAGES_DIR}/share/${PORT}/ast"
+)
+
+# Remove cl preprocessing comments
+foreach(file IN ITEMS "include/ast.h" "include/star/ast.h")
+ file(READ "${CURRENT_PACKAGES_DIR}/${file}" cpp_output)
+ string(REGEX REPLACE "#line [^ ]+ \"[^\"]*\"" "" cpp_output "${cpp_output}")
+ file(WRITE "${CURRENT_PACKAGES_DIR}/${file}" "${cpp_output}")
+endforeach()
+
+vcpkg_install_copyright(
+ FILE_LIST
+ "${SOURCE_PATH}/COPYING.LESSER"
+ "${SOURCE_PATH}/COPYING"
+ "${SOURCE_PATH}/erfa/LICENSE"
+ COMMENT [[
+AST is distributed under the Lesser GPL licence (LGPL).
+
+The AST distribution includes a cut down subset of the C version of the SLALIB library written
+by Pat Wallace. This subset contains only the functions needed by the AST library. It is built as
+part of the process of building AST and is distributed under GPL.
+
+The AST distribution includes the ERFA library. See LICENSE below.
+]])
diff --git a/vcpkg/ports/starlink-ast/vcpkg.json b/vcpkg/ports/starlink-ast/vcpkg.json
new file mode 100644
index 0000000..aa2ab37
--- /dev/null
+++ b/vcpkg/ports/starlink-ast/vcpkg.json
@@ -0,0 +1,24 @@
+{
+ "name": "starlink-ast",
+ "version": "9.2.12",
+ "description": "The AST library provides a comprehensive range of facilities for attaching world coordinate systems to astronomical data, for retrieving and interpreting that information and for generating graphical output based on it",
+ "homepage": "https://starlink.eao.hawaii.edu/starlink/AST",
+ "license": null,
+ "dependencies": [
+ "cminpack"
+ ],
+ "features": {
+ "pthreads": {
+ "description": "Build with POSIX threads support",
+ "dependencies": [
+ "pthreads"
+ ]
+ },
+ "yaml": {
+ "description": "Build with YAML support",
+ "dependencies": [
+ "libyaml"
+ ]
+ }
+ }
+}