Kaydet (Commit) 5c37960d authored tarafından Tor Lillqvist's avatar Tor Lillqvist

First attempt at building NSS for iOS, too

Let's hope that the various static archives that get built by the NSS
build machinery contain what an iOS app that needs NSS services
requires. I patch out the construction of any dylibs and executables
in nss. We don't use any dylibs on iOS anyway, and of course don't
need any NSS executables either.

Change-Id: Ic977c6e3d6c4e953202e78f8e08c4e61f6c9cb1b
üst aacdc61b
...@@ -42,6 +42,7 @@ ANDROID) ...@@ -42,6 +42,7 @@ ANDROID)
;; ;;
IOS) IOS)
oslibs="$WORKDIR/UnpackedTarball/icu/source/stubdata/*.a" oslibs="$WORKDIR/UnpackedTarball/icu/source/stubdata/*.a"
nsslibs=`find $WORKDIR/UnpackedTarball/nss -name 'lib*.a'`
;; ;;
*) *)
oslibs= oslibs=
...@@ -52,6 +53,7 @@ echo $INSTDIR/$LIBO_LIB_FOLDER/lib*.a \ ...@@ -52,6 +53,7 @@ echo $INSTDIR/$LIBO_LIB_FOLDER/lib*.a \
$foolibs \ $foolibs \
$WORKDIR/LinkTarget/StaticLibrary/lib*.a \ $WORKDIR/LinkTarget/StaticLibrary/lib*.a \
$oslibs \ $oslibs \
$nsslibs \
$WORKDIR/UnpackedTarball/coinmp/Cbc/src/.libs/*.a \ $WORKDIR/UnpackedTarball/coinmp/Cbc/src/.libs/*.a \
$WORKDIR/UnpackedTarball/coinmp/Cgl/src/.libs/*.a \ $WORKDIR/UnpackedTarball/coinmp/Cgl/src/.libs/*.a \
$WORKDIR/UnpackedTarball/coinmp/Clp/src/.libs/*.a \ $WORKDIR/UnpackedTarball/coinmp/Clp/src/.libs/*.a \
......
...@@ -11,7 +11,9 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,nss,nss)) ...@@ -11,7 +11,9 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,nss,nss))
$(eval $(call gb_ExternalPackage_use_external_project,nss,nss)) $(eval $(call gb_ExternalPackage_use_external_project,nss,nss))
ifeq ($(OS),MACOSX) ifeq ($(OS),IOS)
# nothing...
else ifeq ($(OS),MACOSX)
$(eval $(call gb_ExternalPackage_add_files,nss,$(LIBO_LIB_FOLDER),\ $(eval $(call gb_ExternalPackage_add_files,nss,$(LIBO_LIB_FOLDER),\
dist/out/lib/libfreebl3.dylib \ dist/out/lib/libfreebl3.dylib \
dist/out/lib/libnspr4.dylib \ dist/out/lib/libnspr4.dylib \
...@@ -59,7 +61,9 @@ $(eval $(call gb_ExternalPackage_add_files,nss,$(LIBO_LIB_FOLDER),\ ...@@ -59,7 +61,9 @@ $(eval $(call gb_ExternalPackage_add_files,nss,$(LIBO_LIB_FOLDER),\
endif endif
ifeq ($(SYSTEM_CURL),) ifeq ($(SYSTEM_CURL),)
ifeq ($(OS),MACOSX) ifeq ($(OS),IOS)
# nothing
else ifeq ($(OS),MACOSX)
$(eval $(call gb_ExternalPackage_add_files,nss,$(LIBO_LIB_FOLDER),\ $(eval $(call gb_ExternalPackage_add_files,nss,$(LIBO_LIB_FOLDER),\
dist/out/lib/libnsspem.dylib \ dist/out/lib/libnsspem.dylib \
)) ))
......
...@@ -17,6 +17,8 @@ $(eval $(call gb_ExternalProject_register_targets,nss,\ ...@@ -17,6 +17,8 @@ $(eval $(call gb_ExternalProject_register_targets,nss,\
$(call gb_ExternalProject_get_state_target,nss,configure): $(call gb_ExternalProject_get_state_target,nss,configure):
$(call gb_ExternalProject_run,configure,\ $(call gb_ExternalProject_run,configure,\
$(if $(filter MSC,$(COM)),LIB="$(ILIB)") \ $(if $(filter MSC,$(COM)),LIB="$(ILIB)") \
$(if $(CROSS_COMPILING),\
NSINSTALL="$(call gb_ExternalExecutable_get_command,python) $(SRCDIR)/external/nss/nsinstall.py") \
nspr/configure --includedir=$(call gb_UnpackedTarball_get_dir,nss)/mozilla/dist/out/include \ nspr/configure --includedir=$(call gb_UnpackedTarball_get_dir,nss)/mozilla/dist/out/include \
$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \ $(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
$(if $(filter MSC-X86_64,$(COM)-$(CPUNAME)),--enable-64bit) \ $(if $(filter MSC-X86_64,$(COM)-$(CPUNAME)),--enable-64bit) \
...@@ -64,8 +66,9 @@ $(call gb_ExternalProject_get_state_target,nss,build): $(call gb_ExternalProject ...@@ -64,8 +66,9 @@ $(call gb_ExternalProject_get_state_target,nss,build): $(call gb_ExternalProject
$(if $(filter-out 1050,$(MAC_OS_X_VERSION_MIN_REQUIRED)),NSS_USE_SYSTEM_SQLITE=1)) \ $(if $(filter-out 1050,$(MAC_OS_X_VERSION_MIN_REQUIRED)),NSS_USE_SYSTEM_SQLITE=1)) \
$(if $(filter SOLARIS,$(OS)),NS_USE_GCC=1) \ $(if $(filter SOLARIS,$(OS)),NS_USE_GCC=1) \
$(if $(CROSS_COMPILING),\ $(if $(CROSS_COMPILING),\
$(if $(filter MACOSXPOWERPC,$(OS)$(CPUNAME)),CPU_ARCH=ppc) \ $(if $(filter MACOSXPOWERPC,$(OS)$(CPUNAME)),CPU_ARCH=ppc) \
NSINSTALL="$(call gb_ExternalExecutable_get_command,python) $(SRCDIR)/external/nss/nsinstall.py") \ $(if $(filter IOS-ARM,$(OS)-$(CPUNAME)),CPU_ARCH=arm) \
NSINSTALL="$(call gb_ExternalExecutable_get_command,python) $(SRCDIR)/external/nss/nsinstall.py") \
NSDISTMODE=copy \ NSDISTMODE=copy \
$(MAKE) -j1 AR="$(AR)" RANLIB="$(RANLIB)" NMEDIT="$(NM)edit" nss_build_all \ $(MAKE) -j1 AR="$(AR)" RANLIB="$(RANLIB)" NMEDIT="$(NM)edit" nss_build_all \
&& rm -f $(call gb_UnpackedTarball_get_dir,nss)/dist/out/lib/*.a \ && rm -f $(call gb_UnpackedTarball_get_dir,nss)/dist/out/lib/*.a \
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
$(eval $(call gb_Module_Module,nss)) $(eval $(call gb_Module_Module,nss))
ifeq ($(SYSTEM_NSS),) ifeq ($(SYSTEM_NSS),)
ifeq ($(filter ANDROID IOS,$(OS)),) ifeq ($(filter ANDROID,$(OS)),)
$(eval $(call gb_Module_add_targets,nss,\ $(eval $(call gb_Module_add_targets,nss,\
UnpackedTarball_nss \ UnpackedTarball_nss \
ExternalPackage_nss \ ExternalPackage_nss \
......
...@@ -24,6 +24,8 @@ $(eval $(call gb_UnpackedTarball_add_patches,nss,\ ...@@ -24,6 +24,8 @@ $(eval $(call gb_UnpackedTarball_add_patches,nss,\
external/nss/nss.mingw.patch.3) \ external/nss/nss.mingw.patch.3) \
external/nss/nspr-build-config.patch \ external/nss/nspr-build-config.patch \
external/nss/ubsan.patch.0 \ external/nss/ubsan.patch.0 \
$(if $(filter IOS,$(OS)), \
external/nss/nss-ios.patch) \
)) ))
# nss-pem is only needed for internal curl to read the NSS CA database # nss-pem is only needed for internal curl to read the NSS CA database
......
--- a/a/nspr/config/autoconf.mk.in
+++ a/a/nspr/config/autoconf.mk.in
@@ -67,7 +67,7 @@
MSC_VER = @MSC_VER@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
-LD = @LD@
+LD = echo
RANLIB = @RANLIB@
PERL = @PERL@
RC = @RC@
--- a/a/nspr/configure
+++ a/a/nspr/configure
@@ -755,7 +755,7 @@
OBJDIR='$(OBJDIR_NAME)'
OBJDIR_NAME=.
OBJDIR_SUFFIX=OBJ
-NSINSTALL='$(MOD_DEPTH)/config/$(OBJDIR_NAME)/nsinstall'
+NSINSTALL=${NSINSTALL?'$(MOD_DEPTH)/config/$(OBJDIR_NAME)/nsinstall'}
NOSUCHFILE=/no-such-file
LIBNSPR='-L$(dist_libdir) -lnspr$(MOD_MAJOR_VERSION)'
LIBPLC='-L$(dist_libdir) -lplc$(MOD_MAJOR_VERSION)'
@@ -3060,7 +3060,7 @@
LIB_SUFFIX=a
DLL_SUFFIX=so
ASM_SUFFIX=s
-MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
+MKSHLIB='touch $@; echo'
PR_MD_ASFILES=
PR_MD_CSRCS=
PR_MD_ARCH_DIR=unix
@@ -3904,7 +3904,7 @@
DSO_CFLAGS=-fPIC
DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load -install_name @__________________________________________________OOO/$@ -headerpad_max_install_names'
_OPTIMIZE_FLAGS=-O2
- MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
+ MKSHLIB=touch $@
STRIP="$STRIP -x -S"
DLL_SUFFIX=dylib
USE_PTHREADS=1
--- a/a/nss/coreconf/ruleset.mk
+++ a/a/nss/coreconf/ruleset.mk
@@ -68,7 +68,7 @@
endif
ifeq ($(MKPROG),)
- MKPROG = $(CC)
+ MKPROG = touch $@; echo
endif
#
--- a/a/nss/coreconf/Darwin.mk
+++ a/a/nss/coreconf/Darwin.mk
@@ -124,7 +124,7 @@
# May override this with -bundle to create a loadable module.
DSO_LDOPTS = -dynamiclib $(DARWIN_DYLIB_VERSIONS) -install_name @__________________________________________________OOO/$(notdir $@) -headerpad_max_install_names
-MKSHLIB = $(CC) $(DSO_LDOPTS) $(DARWIN_SDK_SHLIBFLAGS)
+MKSHLIB = touch $@; echo
DLL_SUFFIX = dylib
ifdef MAPFILE
MKSHLIB += -exported_symbols_list $(MAPFILE)
--- a/a/nss/coreconf/UNIX.mk
+++ a/a/nss/coreconf/UNIX.mk
@@ -21,10 +21,14 @@
ifdef BUILD_TREE
NSINSTALL_DIR = $(BUILD_TREE)/nss
+ifndef NSINSTALL
NSINSTALL = $(BUILD_TREE)/nss/nsinstall
+endif
else
NSINSTALL_DIR = $(CORE_DEPTH)/coreconf/nsinstall
+ifndef NSINSTALL
NSINSTALL = $(NSINSTALL_DIR)/$(OBJDIR_NAME)/nsinstall
+endif
endif
MKDEPEND_DIR = $(CORE_DEPTH)/coreconf/mkdepend
--- a/a/nspr/pr/src/Makefile.in
+++ a/a/nspr/pr/src/Makefile.in
@@ -180,7 +180,7 @@
endif
ifeq ($(OS_TARGET),MacOSX)
-OS_LIBS = -framework CoreServices -framework CoreFoundation
+OS_LIBS = -framework CoreFoundation
endif
EXTRA_LIBS += $(OS_LIBS)
--- a/a/nss/cmd/shlibsign/sign.sh
+++ a/a/nss/cmd/shlibsign/sign.sh
@@ -2,6 +2,8 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+exit 0
# arguments:
# 1: full path to DIST/OBJDIR (parent dir of "lib")
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment