Annotation of pkgsrc/devel/nss/Makefile, Revision 1.242
1.242 ! wiz 1: # $NetBSD: Makefile,v 1.241 2023/01/05 23:17:49 wiz Exp $
1.213 wiz 2: #
3: # release notes
4: # https://firefox-source-docs.mozilla.org/security/nss/releases/index.html
1.1 jschauma 5:
1.78 ryoon 6: DISTNAME= nss-${NSS_RELEASE:S/.0$//}
1.242 ! wiz 7: NSS_RELEASE= 3.88.0
1.193 wiz 8: CATEGORIES= devel security
1.127 ryoon 9: MASTER_SITES= ${MASTER_SITE_MOZILLA_ALL:=security/nss/releases/NSS_${NSS_DIST_DIR_VERSION:S/_0$//}_RTM/src/}
1.1 jschauma 10:
1.65 wiz 11: MAINTAINER= pkgsrc-users@NetBSD.org
1.170 ryoon 12: HOMEPAGE= https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS
1.1 jschauma 13: COMMENT= Libraries to support development of security-enabled applications
1.62 ryoon 14: LICENSE= mpl-2.0
1.1 jschauma 15:
1.211 tnn 16: CHECK_PORTABILITY_SKIP+= nss/tests/*/*.sh
1.165 ryoon 17: CHECK_PORTABILITY_SKIP+= js/src/configure
18: CHECK_PORTABILITY_SKIP+= configure
1.28 jlam 19:
1.159 jperkin 20: CTF_SUPPORTED= no # https://smartos.org/bugview/OS-6510
21:
1.77 jperkin 22: USE_GCC_RUNTIME= yes
1.141 leot 23: USE_LANGUAGES= c99
1.35 tnn 24: USE_TOOLS+= gmake perl pax pkg-config
1.234 tnn 25: # Fails to detect jobserver on systems where /bin/make and /bin/gmake both
26: # exist. This is because nss uses "gmake" explicitly rather than $MAKE to
27: # launch subprocesses.
28: MAKE_JOBS_SAFE= no
1.24 gdt 29:
1.114 wiz 30: BUILD_DIRS= nss
31:
1.74 ryoon 32: .include "../../mk/bsd.prefs.mk"
1.1 jschauma 33:
1.240 wiz 34: .if ${USE_CROSS_COMPILE:U:tl} == yes
1.225 riastrad 35:
36: # nss doesn't really depend on nspr as a tool, but the
37: # EXTRA_SHARED_LIBS we set there get passed through to the build of a
38: # tool `nsinstall' and getting them to not be passed through is more
39: # trouble than it is worth to nix this dependency. (But if you feel
40: # like going to the trouble to patch around it -- go for it!)
41: TOOL_DEPENDS+= nspr>=0:../../devel/nspr
42:
43: MAKE_FLAGS+= CROSS_COMPILE=1
44: MAKE_FLAGS+= NATIVE_CC=${NATIVE_CC:Q}
45:
46: NSS_CPU_ARCH.aarch64eb= aarch64
47: NSS_CPU_ARCH.amd64= x86_64
48: NSS_CPU_ARCH.arm26?= arm
49: NSS_CPU_ARCH.arm32?= arm
50: NSS_CPU_ARCH.earm?= arm
51: NSS_CPU_ARCH.earmeb?= arm
52: NSS_CPU_ARCH.earmhf?= arm
53: NSS_CPU_ARCH.earmhfeb?= arm
54: NSS_CPU_ARCH.earmv4?= arm
55: NSS_CPU_ARCH.earmv4eb?= arm
56: NSS_CPU_ARCH.earmv5?= arm
57: NSS_CPU_ARCH.earmv5eb?= arm
58: NSS_CPU_ARCH.earmv6?= arm
59: NSS_CPU_ARCH.earmv6eb?= arm
60: NSS_CPU_ARCH.earmv6hf?= arm
61: NSS_CPU_ARCH.earmv6hfeb?= arm
62: NSS_CPU_ARCH.earmv7?= arm
63: NSS_CPU_ARCH.earmv7eb?= arm
64: NSS_CPU_ARCH.earmv7hf?= arm
65: NSS_CPU_ARCH.earmv7hfeb?= arm
66: NSS_CPU_ARCH.i386= x86
67: NSS_CPU_ARCH.i486= x86
68: NSS_CPU_ARCH.i586= x86
69: NSS_CPU_ARCH.i686= x86
70: NSS_CPU_ARCH.powerpc64= ppc64
71: NSS_CPU_ARCH.powerpc= ppc
72:
73: NSS_CPU_ARCH= ${NSS_CPU_ARCH.${MACHINE_ARCH}:U${MACHINE_ARCH}}
74: MAKE_FLAGS+= CPU_ARCH=${NSS_CPU_ARCH:Q}
75:
76: .endif
77:
1.108 jperkin 78: SUBST_CLASSES.Darwin+= exec_path
1.58 ryoon 79: SUBST_STAGE.exec_path= pre-configure
80: SUBST_MESSAGE.exec_path= Fixing @executable_path
1.82 pho 81: SUBST_FILES.exec_path= nss/coreconf/Darwin.mk
1.58 ryoon 82: SUBST_SED.exec_path= -e 's,@executable_path,${PREFIX}/lib/nss,g'
83:
1.110 tnn 84: SUBST_CLASSES+= zlib
85: SUBST_STAGE.zlib= pre-configure
86: SUBST_MESSAGE.zlib= Use ZLIB_LIBS from environment
87: SUBST_FILES.zlib= nss/coreconf/*.mk
88: SUBST_SED.zlib= -e 's,^ZLIB_LIBS,\#ZLIB_LIBS,g'
89:
1.109 ryoon 90: BUILDLINK_TRANSFORM+= rm:-Werror
91: BUILDLINK_TRANSFORM+= rm:-ansi
1.181 ryoon 92: LDFLAGS.NetBSD+= -lrt # sem_wait(3)
1.109 ryoon 93:
1.108 jperkin 94: MAKE_ENV.Linux+= FREEBL_NO_DEPEND=0
1.40 markd 95:
1.1 jschauma 96: .if ${OBJECT_FMT} == "ELF"
97: SO_SUFFIX= so
98: .elif ${OBJECT_FMT} == "Mach-O"
99: SO_SUFFIX= dylib
100: .else
101: SO_SUFFIX= so.1.0
102: .endif
1.11 rillig 103: PLIST_SUBST+= SO_SUFFIX=${SO_SUFFIX:Q}
1.1 jschauma 104:
1.145 jperkin 105: .if !empty(PKGSRC_COMPILER:Mclang) || !empty(PKGSRC_COMPILER:Mgcc)
1.190 tnn 106: MAKE_ENV+= NS_USE_GCC=YES
1.145 jperkin 107: .endif
108:
109: .if !empty(PKGSRC_COMPILER:Mclang)
1.190 tnn 110: MAKE_ENV+= CC_IS_CLANG=YES
1.9 dmcmahil 111: .endif
112:
1.119 maya 113: SUBST_CLASSES+= 64bit
1.154 jperkin 114: SUBST_STAGE.64bit= pre-configure
1.119 maya 115: SUBST_FILES.64bit= nss/lib/freebl/*
116: SUBST_SED.64bit= -e 's,NSS_USE_64,_LP64,g'
1.165 ryoon 117: SUBST_MESSAGE.64bit= Use a generic 64bit check
1.119 maya 118:
119: # Just to be safe, do this as well as the _LP64 replacement
120: # NSS has a lot more logic for USE_64
1.34 tnn 121: .for platform in ${LP64PLATFORMS}
122: . if ${MACHINE_PLATFORM:M${platform}}
123: MAKE_ENV+= USE_64=1
1.33 joerg 124: . endif
1.34 tnn 125: .endfor
126:
127: MAKE_ENV+= BUILD_OPT=1
128: #MAKE_ENV+= OPTIMIZER=${CFLAGS:Q}
129: MAKE_ENV+= INCLUDES=-I${BUILDLINK_PREFIX.nspr}/include/nspr
1.128 ryoon 130: MAKE_ENV+= NSS_USE_SYSTEM_SQLITE=1
1.110 tnn 131: MAKE_ENV+= ZLIB_LIBS="${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.zlib}/lib -L${BUILDLINK_PREFIX.zlib}/lib -lz"
132: MAKE_ENV+= USE_SYSTEM_ZLIB=1
1.137 wiz 133: MAKE_ENV+= EXTRA_SHARED_LIBS="${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.nspr}/lib/nspr ${COMPILER_RPATH_FLAG}${PREFIX}/lib/nss -L${BUILDLINK_PREFIX.nspr}/lib/nspr -lplc4 -lplds4 -lnspr4 "${LDFLAGS:Q}
1.104 ryoon 134: MAKE_ENV+= NSS_DISABLE_GTESTS=yes
1.127 ryoon 135: MAKE_ENV+= NSS_ENABLE_TLS_1_3=1
1.105 ryoon 136: .include "../../mk/compiler.mk"
137: .if !empty(CC_VERSION:Mgcc-4.[0-7]*)
138: CFLAGS+= -DNSS_NO_GCC48
139: .endif
1.33 joerg 140:
1.200 wiz 141: MOD_MAJOR_VERSION= ${NSS_RELEASE:C/\.[0-9.]*//}
142: MOD_MINOR_VERSION= ${NSS_RELEASE:S/3.//:C/\.[0-9]*//}
143: MOD_PATCH_VERSION= ${NSS_RELEASE:C/[0-9.]*\.//}
144: NSS_DIST_DIR_VERSION= ${MOD_MAJOR_VERSION}_${MOD_MINOR_VERSION}_${MOD_PATCH_VERSION}
1.127 ryoon 145:
1.237 wiz 146: NSPR_MINIMUM_VERSION= 4.35
1.200 wiz 147:
148: PKGCONFIG_OVERRIDE= nss.pc
1.114 wiz 149:
150: SUBST_CLASSES+= config
1.200 wiz 151: # nss.pc
1.114 wiz 152: SUBST_SED.config+= -e "s,@PTHREAD@,${BUILDLINK_LIBS.pthread:Q},"
1.200 wiz 153: SUBST_SED.config+= -e "s,%prefix%,${PREFIX},"
154: SUBST_SED.config+= -e "s,%exec_prefix%,${PREFIX},"
155: SUBST_SED.config+= -e "s,%libdir%,${PREFIX}/lib/nss,"
156: SUBST_SED.config+= -e "s,%includedir%,${PREFIX}/include/nss,"
157: SUBST_SED.config+= -e "s,%NSS_VERSION%,${PKGVERSION_NOREV},"
158: SUBST_SED.config+= -e "s,%NSPR_VERSION%,${NSPR_MINIMUM_VERSION},"
159: # nss-config
160: SUBST_SED.config+= -e "s,@prefix@,${PREFIX},"
161: SUBST_VARS.config+= MOD_MAJOR_VERSION
162: SUBST_VARS.config+= MOD_MINOR_VERSION
163: SUBST_VARS.config+= MOD_PATCH_VERSION
1.114 wiz 164: SUBST_STAGE.config= pre-build
165: SUBST_MESSAGE.config= Preparing *-config files.
166: SUBST_FILES.config+= nss.pc nss-config
167:
168: INSTALLATION_DIRS= bin include/nss lib/nss lib/pkgconfig
169:
1.148 ryoon 170: INSTALL_CMDS+= certutil cmsutil crlutil derdump makepqg \
1.121 ryoon 171: mangle modutil ocspclnt oidcalc p7content p7env p7sign \
172: p7verify pk12util rsaperf shlibsign signtool signver \
173: ssltap strsclnt symkeyutil vfychain vfyserv
174:
1.55 ryoon 175: post-extract:
1.57 ryoon 176: find ${WRKSRC} -type f | xargs ${CHMOD} 644
177: find ${WRKSRC} -type d | xargs ${CHMOD} 755
1.200 wiz 178: ${CP} ${WRKSRC}/nss/pkg/pkg-config/nss.pc.in ${WRKSRC}/nss.pc
179: ${CP} ${WRKSRC}/nss/pkg/pkg-config/nss-config.in ${WRKSRC}/nss-config
1.7 reed 180:
1.1 jschauma 181: do-install:
1.200 wiz 182: (cd ${WRKSRC}/dist/public/nss && pax -Lrw . ${DESTDIR}${PREFIX}/include/nss )
183: (cd ${WRKSRC}/dist/*_OPT.OBJ/lib && \
1.58 ryoon 184: pax -Lrw *.${SO_SUFFIX} ${DESTDIR}${PREFIX}/lib/nss/ )
1.200 wiz 185: ${INSTALL_DATA} ${WRKSRC}/dist/*_OPT.OBJ/lib/libcrmf.a \
1.47 ryoon 186: ${DESTDIR}${PREFIX}/lib/nss/
1.114 wiz 187: ${INSTALL_DATA} ${WRKSRC}/nss.pc ${DESTDIR}${PREFIX}/lib/pkgconfig/nss.pc
188: ${INSTALL_SCRIPT} ${WRKSRC}/nss-config ${DESTDIR}${PREFIX}/bin/nss-config
1.121 ryoon 189: .for cmd in ${INSTALL_CMDS}
1.200 wiz 190: ${INSTALL_PROGRAM} ${WRKSRC}/dist/*_OPT.OBJ/bin/${cmd} ${DESTDIR}${PREFIX}/bin
1.121 ryoon 191: .endfor
1.10 jmmv 192:
1.91 ryoon 193: # For consistency of libxul.so link in www/firefox.
1.115 ryoon 194: BUILDLINK_API_DEPENDS.sqlite3+= sqlite3>=3.8.4.2
1.37 dsainty 195: .include "../../databases/sqlite3/buildlink3.mk"
1.200 wiz 196: BUILDLINK_API_DEPENDS.nspr+= nspr>=${NSPR_MINIMUM_VERSION}
1.1 jschauma 197: .include "../../devel/nspr/buildlink3.mk"
1.37 dsainty 198: .include "../../devel/zlib/buildlink3.mk"
1.1 jschauma 199: .include "../../mk/pthread.buildlink3.mk"
200: .include "../../mk/bsd.pkg.mk"
CVSweb <webmaster@jp.NetBSD.org>