aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/nspr
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/nspr
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/nspr')
-rw-r--r--vcpkg/ports/nspr/android.diff14
-rw-r--r--vcpkg/ports/nspr/library-linkage.diff69
-rw-r--r--vcpkg/ports/nspr/nsinstall-windows.diff17
-rw-r--r--vcpkg/ports/nspr/parallel.diff12
-rw-r--r--vcpkg/ports/nspr/portfile.cmake113
-rw-r--r--vcpkg/ports/nspr/unexport-ldflags.diff13
-rw-r--r--vcpkg/ports/nspr/vcpkg.json19
7 files changed, 257 insertions, 0 deletions
diff --git a/vcpkg/ports/nspr/android.diff b/vcpkg/ports/nspr/android.diff
new file mode 100644
index 0000000..873ba12
--- /dev/null
+++ b/vcpkg/ports/nspr/android.diff
@@ -0,0 +1,14 @@
+diff --git a/nspr/configure.in b/nspr/configure.in
+index 1a3e489..59e6347 100644
+--- a/nspr/configure.in
++++ b/nspr/configure.in
+@@ -153,6 +153,9 @@ mipsel-*android*)
+ esac
+
+ case "$target" in
++*-android*)
++ AC_DEFINE(ANDROID)
++ ;;
+ *-android*|*-linuxandroid*)
+ if test -z "$android_ndk" ; then
+ AC_MSG_ERROR([You must specify --with-android-ndk=/path/to/ndk when targeting Android.])
diff --git a/vcpkg/ports/nspr/library-linkage.diff b/vcpkg/ports/nspr/library-linkage.diff
new file mode 100644
index 0000000..a80e5c7
--- /dev/null
+++ b/vcpkg/ports/nspr/library-linkage.diff
@@ -0,0 +1,69 @@
+diff --git a/nspr/config/rules.mk b/nspr/config/rules.mk
+index 8f3f926..1ddfffd 100644
+--- a/nspr/config/rules.mk
++++ b/nspr/config/rules.mk
+@@ -113,7 +113,8 @@ endif
+
+ ifndef TARGETS
+ ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
+-TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
++ifdef BUILD_SHARED_LIBS
++TARGETS = $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
+ ifdef MOZ_DEBUG_SYMBOLS
+ ifdef MSC_VER
+ ifneq (,$(filter-out 1100 1200,$(MSC_VER)))
+@@ -122,7 +123,14 @@ endif
+ endif
+ endif
+ else
+-TARGETS = $(LIBRARY) $(SHARED_LIBRARY)
++TARGETS = $(LIBRARY)
++endif
++else
++ifdef BUILD_SHARED_LIBS
++TARGETS = $(SHARED_LIBRARY)
++else
++TARGETS = $(LIBRARY)
++endif
+ endif
+ endif
+
+diff --git a/nspr/lib/ds/Makefile.in b/nspr/lib/ds/Makefile.in
+index fa8c783..b102b04 100644
+--- a/nspr/lib/ds/Makefile.in
++++ b/nspr/lib/ds/Makefile.in
+@@ -131,7 +131,7 @@ endif
+ export:: $(TARGETS)
+ $(INSTALL) -m 444 $(HEADERS) $(dist_includedir)
+ $(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
+-ifdef SHARED_LIBRARY
++ifdef BUILD_SHARED_LIBS
+ ifeq ($(OS_ARCH),HP-UX)
+ $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
+ $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
+diff --git a/nspr/lib/libc/src/Makefile.in b/nspr/lib/libc/src/Makefile.in
+index 9ef2007..4f5ddbe 100644
+--- a/nspr/lib/libc/src/Makefile.in
++++ b/nspr/lib/libc/src/Makefile.in
+@@ -132,7 +132,7 @@ endif
+
+ export:: $(TARGETS)
+ $(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
+-ifdef SHARED_LIBRARY
++ifdef BUILD_SHARED_LIBS
+ ifeq ($(OS_ARCH),HP-UX)
+ $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
+ $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
+diff --git a/nspr/pr/src/Makefile.in b/nspr/pr/src/Makefile.in
+index a9e86f5..88e626e 100644
+--- a/nspr/pr/src/Makefile.in
++++ b/nspr/pr/src/Makefile.in
+@@ -325,7 +325,7 @@ export::
+
+ build:: $(TARGETS)
+ $(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
+-ifdef SHARED_LIBRARY
++ifdef BUILD_SHARED_LIBS
+ ifeq ($(OS_ARCH),HP-UX)
+ $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
+ $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
diff --git a/vcpkg/ports/nspr/nsinstall-windows.diff b/vcpkg/ports/nspr/nsinstall-windows.diff
new file mode 100644
index 0000000..8a21214
--- /dev/null
+++ b/vcpkg/ports/nspr/nsinstall-windows.diff
@@ -0,0 +1,17 @@
+diff --git a/nspr/config/Makefile.in b/nspr/config/Makefile.in
+index 54357b7..fd59e1a 100644
+--- a/nspr/config/Makefile.in
++++ b/nspr/config/Makefile.in
+@@ -54,10 +54,10 @@ include $(topsrcdir)/config/rules.mk
+
+ PROGS = $(OBJDIR)/now$(PROG_SUFFIX)
+
+-ifeq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
++ifneq (,$(CROSS_COMPILE))
+ TARGETS = $(PROGS)
+ else
+-ifeq (,$(filter-out WINCE,$(OS_ARCH)))
++ifeq (,$(filter-out WIN95 WINCE WINMO,$(OS_TARGET)))
+ TARGETS = $(PROGS)
+ else
+ PROGS += $(OBJDIR)/nsinstall$(PROG_SUFFIX)
diff --git a/vcpkg/ports/nspr/parallel.diff b/vcpkg/ports/nspr/parallel.diff
new file mode 100644
index 0000000..f274e88
--- /dev/null
+++ b/vcpkg/ports/nspr/parallel.diff
@@ -0,0 +1,12 @@
+diff --git a/nspr/config/rules.mk b/nspr/config/rules.mk
+index 37bd49a..d6c6f6d 100644
+--- a/nspr/config/rules.mk
++++ b/nspr/config/rules.mk
+@@ -495,7 +495,6 @@ $(filter $(OBJDIR)/%.$(OBJ_SUFFIX),$(OBJS)): $(OBJDIR)/%.$(OBJ_SUFFIX): $(DUMMY_
+ # parallel.
+ #
+ ifeq (,$(filter-out 1200 1300 1310,$(MSC_VER)))
+-.NOTPARALLEL:
+ endif
+
+ #
diff --git a/vcpkg/ports/nspr/portfile.cmake b/vcpkg/ports/nspr/portfile.cmake
new file mode 100644
index 0000000..e450ba0
--- /dev/null
+++ b/vcpkg/ports/nspr/portfile.cmake
@@ -0,0 +1,113 @@
+if(VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
+endif()
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://releases.mozilla.org/pub/nspr/releases/v${VERSION}/src/nspr-${VERSION}.tar.gz"
+ FILENAME "nspr-${VERSION}.tar.gz"
+ SHA512 55d21e196508ad29a179639fc8006f44b04dc2c0b5a85895e727f0a4f0ea37aeeceb936e37ac6b271b882a18e9f06d96133a60f19cee6345f8424c1c66e270ee
+)
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+ SOURCE_BASE "${VERSION}"
+ PATCHES
+ android.diff
+ library-linkage.diff
+ nsinstall-windows.diff
+ parallel.diff
+ unexport-ldflags.diff
+)
+
+set(OPTIONS "")
+if(VCPKG_TARGET_IS_WINDOWS)
+ # https://firefox-source-docs.mozilla.org/nspr/nspr_build_instructions.html#enable-win32-target-win95
+ list(APPEND OPTIONS "--enable-win32-target=WIN95")
+ if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ list(APPEND OPTIONS "--enable-static-rtl")
+ else()
+ list(APPEND OPTIONS "--disable-static-rtl")
+ endif()
+endif()
+
+if(VCPKG_TARGET_ARCHITECTURE MATCHES "64")
+ list(APPEND OPTIONS "--enable-64bit")
+else()
+ list(APPEND OPTIONS "--disable-64bit")
+endif()
+
+set(MAKE_OPTIONS "")
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ list(APPEND MAKE_OPTIONS BUILD_SHARED_LIBS=1)
+endif()
+
+if(VCPKG_CROSSCOMPILING)
+ list(APPEND MAKE_OPTIONS "NOW=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/now${VCPKG_HOST_EXECUTABLE_SUFFIX}")
+ if(NOT CMAKE_HOST_WIN32)
+ list(APPEND MAKE_OPTIONS "NSINSTALL=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/nsinstall${VCPKG_HOST_EXECUTABLE_SUFFIX}")
+ endif()
+endif()
+if(CMAKE_HOST_WIN32)
+ vcpkg_acquire_msys(MSYS_NSINSTALL
+ NO_DEFAULT_PACKAGES
+ DIRECT_PACKAGES
+ "https://mirror.msys2.org/msys/x86_64/nsinstall-4.36-1-x86_64.pkg.tar.zst"
+ 36ceaf44db4368ef6319397cef1d82a752c68f3f7a16ca00e753ee7ae825058f22c38ccd750b53ea773212dffae838700be0d09288353db33d2f5197df9091df
+ )
+ list(APPEND MAKE_OPTIONS "NSINSTALL=${MSYS_NSINSTALL}/usr/bin/nsinstall${VCPKG_HOST_EXECUTABLE_SUFFIX}")
+endif()
+
+vcpkg_make_configure(
+ SOURCE_PATH "${SOURCE_PATH}/nspr"
+ AUTORECONF
+ OPTIONS
+ ${OPTIONS}
+ OPTIONS_DEBUG
+ --enable-debug-rtl
+ OPTIONS_RELEASE
+ --disable-debug-rtl
+)
+vcpkg_make_install(OPTIONS ${MAKE_OPTIONS})
+vcpkg_copy_pdbs()
+vcpkg_fixup_pkgconfig()
+
+set(install_dir_pattern "${CURRENT_INSTALLED_DIR}")
+if(CMAKE_HOST_WIN32)
+ string(REGEX REPLACE [[^([a-zA-Z]):/]] [[/\1/]] install_dir_pattern "${install_dir_pattern}")
+endif()
+vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/nspr-config" "${install_dir_pattern}" "`dirname $0`/../../..")
+file(GLOB BIN_RELEASE "${CURRENT_PACKAGES_DIR}/lib/*.dll" "${CURRENT_PACKAGES_DIR}/lib/*.pdb")
+if(NOT BIN_RELEASE STREQUAL "")
+ file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin")
+ foreach(path ${BIN_RELEASE})
+ get_filename_component(name "${path}" NAME)
+ file(RENAME "${CURRENT_PACKAGES_DIR}/lib/${name}" "${CURRENT_PACKAGES_DIR}/bin/${name}")
+ endforeach()
+endif()
+if(NOT VCPKG_BUILD_TYPE)
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/nspr-config" "${install_dir_pattern}/debug" "`dirname $0`/../../../..")
+ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+ file(GLOB BIN_DEBUG "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll" "${CURRENT_PACKAGES_DIR}/debug/lib/*.pdb")
+ if(NOT BIN_DEBUG STREQUAL "")
+ file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin")
+ foreach(path IN LISTS BIN_DEBUG)
+ get_filename_component(name "${path}" NAME)
+ file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/${name}" "${CURRENT_PACKAGES_DIR}/debug/bin/${name}")
+ endforeach()
+ endif()
+endif()
+
+if(NOT VCPKG_CROSSCOMPILING)
+ set(tool_names now nsinstall)
+ if(CMAKE_HOST_WIN32)
+ list(REMOVE_ITEM tool_names nsinstall)
+ endif()
+ vcpkg_copy_tools(
+ TOOL_NAMES ${tool_names}
+ SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}"
+ )
+endif()
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/nspr/LICENSE")
diff --git a/vcpkg/ports/nspr/unexport-ldflags.diff b/vcpkg/ports/nspr/unexport-ldflags.diff
new file mode 100644
index 0000000..702b875
--- /dev/null
+++ b/vcpkg/ports/nspr/unexport-ldflags.diff
@@ -0,0 +1,13 @@
+diff --git a/nspr/config/nspr-config.in b/nspr/config/nspr-config.in
+index 2cb62a0..6db7aa3 100755
+--- a/nspr/config/nspr-config.in
++++ b/nspr/config/nspr-config.in
+@@ -136,7 +136,7 @@ if test "$echo_libs" = "yes"; then
+ if test -n "$lib_nspr"; then
+ libdirs="$libdirs -lnspr${major_version}"
+ fi
+- os_ldflags="@LDFLAGS@"
++ os_ldflags=""
+ for i in $os_ldflags ; do
+ if echo $i | grep \^-L >/dev/null; then
+ libdirs="$libdirs $i"
diff --git a/vcpkg/ports/nspr/vcpkg.json b/vcpkg/ports/nspr/vcpkg.json
new file mode 100644
index 0000000..e087f5c
--- /dev/null
+++ b/vcpkg/ports/nspr/vcpkg.json
@@ -0,0 +1,19 @@
+{
+ "name": "nspr",
+ "version": "4.36",
+ "port-version": 1,
+ "description": "Netscape portable runtime",
+ "homepage": "https://releases.mozilla.org/pub/nspr/",
+ "license": "MPL-2.0",
+ "supports": "!uwp & !xbox & !(windows & static & staticcrt)",
+ "dependencies": [
+ {
+ "name": "nspr",
+ "host": true
+ },
+ {
+ "name": "vcpkg-make",
+ "host": true
+ }
+ ]
+}