2 # This file and its contents are supplied under the terms of the
3 # Common Development and Distribution License ("CDDL)". You may
4 # only use this file in accordance with the terms of the CDDL.
6 # A full copy of the text of the CDDL should have accompanied this
7 # source. A copy of the CDDL is also available via the Internet at
8 # http://www.illumos.org/license/CDDL.
12 # Copyright 2011, Andrzej Szeszo
13 # Copyright 2013, Jon Tibble
14 # Copyright 2014, Alexander Pyhalov
15 # Copyright 2019, Michal Nowak
16 # Copyright 2024, Goetz Fischer
19 include ..
/..
/..
/make-rules
/shared-macros.mk
22 COMPONENT_VERSION
= 3.98
23 COMPONENT_PROJECT_URL
= https
://developer.mozilla.org
/en-US
/docs
/Mozilla
/Projects
/NSS
24 COMPONENT_SRC
= $(COMPONENT_NAME
)-$(COMPONENT_VERSION
)
25 COMPONENT_ARCHIVE
= $(COMPONENT_SRC
).
tar.gz
26 COMPONENT_ARCHIVE_HASH
= sha256
:f549cc33d35c0601674bfacf7c6ad683c187595eb4125b423238d3e9aa4209ce
27 COMPONENT_ARCHIVE_URL
= https
://ftp.mozilla.org
/pub
/security
/nss
/releases
/NSS_3_98_RTM
/src
/$(COMPONENT_ARCHIVE
)
28 COMPONENT_LICENSE
= MPLv2
29 COMPONENT_LICENSER_FILE
= nss
/COPYING
33 MPS
.64=/usr
/lib
/mps
/$(MACH64
)
35 COMPONENT_BUILD_ENV
+= $(COMPONENT_BUILD_ENV.
$(BITS
))
36 COMPONENT_BUILD_ENV
+= BUILD_OPT
=1
37 COMPONENT_BUILD_ENV
+= NO_MDUPDATE
=1
38 COMPONENT_BUILD_ENV
+= NS_USE_GCC
=1
39 COMPONENT_BUILD_ENV
+= NSPR_INCLUDE_DIR
=/usr
/include/mps
40 COMPONENT_BUILD_ENV
+= NSPR_LIB_DIR
=$(MPS.
$(BITS
))
41 COMPONENT_BUILD_ENV
+= NSS_ENABLE_WERROR
=0
42 COMPONENT_BUILD_ENV
+= NSS_INCLUDE_DIR
=/usr
/include/mps
43 COMPONENT_BUILD_ENV
+= NSS_LIB_DIR
=$(MPS.
$(BITS
))
44 COMPONENT_BUILD_ENV
+= NSS_USE_SYSTEM_SQLITE
=1
45 COMPONENT_BUILD_ENV
+= PATH
=$(GCC_ROOT
)/bin
:$(PATH
)
46 COMPONENT_BUILD_ENV
+= PKG_CONFIG_ALLOW_SYSTEM_CFLAGS
=1
47 COMPONENT_BUILD_ENV
+= PKG_CONFIG_ALLOW_SYSTEM_LIBS
=1
48 COMPONENT_BUILD_ENV
.64 += USE_64
=1
50 COMPONENT_TEST_ENV
+= $(COMPONENT_BUILD_ENV
)
51 COMPONENT_TEST_ENV
+= HOST
=127.0.0.1
52 COMPONENT_TEST_DIR
= $(BUILD_DIR_
$(BITS
))/nss
/tests
54 include $(WS_MAKE_RULES
)/prep.mk
55 include $(WS_MAKE_RULES
)/justmake.mk
56 include $(WS_MAKE_RULES
)/ips.mk
59 $(BUILD_DIR
)/%/.built
: $(SOURCE_DIR
)/.prep
60 $(RM
) -r
$(@D
) ; $(MKDIR
) $(@D
)
61 $(CLONEY
) $(SOURCE_DIR
) $(@D
)
62 $(COMPONENT_PRE_BUILD_ACTION
)
63 (cd
$(@D
); $(ENV
) $(COMPONENT_BUILD_ENV
) $(GMAKE
) -C nss
)
64 $(COMPONENT_POST_BUILD_ACTION
)
67 build
: $(BUILD_32_and_64
)
71 $(MKDIR
) -p
$(PROTO_DIR
)/usr
/sfw
/bin
72 $(MKDIR
) -p
$(PROTO_DIR
)/usr
/sfw
/bin
/$(MACH64
)
73 $(MKDIR
) -p
$(PROTO_DIR
)/usr
/lib
/mps
74 $(MKDIR
) -p
$(PROTO_DIR
)/usr
/lib
/mps
/$(MACH64
)
75 $(MKDIR
) -p
$(PROTO_DIR
)/usr
/include/mps
76 $(MKDIR
) -p
$(PROTO_DIR
)/usr
/lib
/pkgconfig
77 $(MKDIR
) -p
$(PROTO_DIR
)/usr
/lib
/$(MACH64
)/pkgconfig
78 cp
$(BUILD_DIR_32
)/dist/public
/nss
/*.h
$(PROTO_DIR
)/usr
/include/mps
79 cp
$(BUILD_DIR_32
)/dist/public
/dbm
/*.h
$(PROTO_DIR
)/usr
/include/mps
80 cp
$(BUILD_DIR_32
)/dist/SunOS5.11_
*_OPT.OBJ
/lib
/*.so
$(PROTO_DIR
)/usr
/lib
/mps
81 cp
$(BUILD_DIR_32
)/dist/SunOS5.11_
*_OPT.OBJ
/lib
/*.chk
$(PROTO_DIR
)/usr
/lib
/mps
82 cp
$(BUILD_DIR_64
)/dist/SunOS5.11_
*_OPT.OBJ
/lib
/*.so
$(PROTO_DIR
)/usr
/lib
/mps
/$(MACH64
)
83 cp
$(BUILD_DIR_64
)/dist/SunOS5.11_
*_OPT.OBJ
/lib
/*.chk
$(PROTO_DIR
)/usr
/lib
/mps
/$(MACH64
)
84 for i in addbuiltin certutil cmsutil crlutil modutil pk12util signtool signver ssltap
; do \
85 cp
$(BUILD_DIR_32
)/dist/SunOS5.11_
*_OPT.OBJ
/bin
/$$i $(PROTO_DIR
)/usr
/sfw
/bin
; \
86 cp
$(BUILD_DIR_64
)/dist/SunOS5.11_
*_OPT.OBJ
/bin
/$$i $(PROTO_DIR
)/usr
/sfw
/bin
/$(MACH64
); \
88 cat
$(COMPONENT_DIR
)/files
/nss.
pc | sed s
/^Version
:/Version
:\
$(COMPONENT_VERSION
)/ \
89 > $(PROTO_DIR
)/usr
/lib
/pkgconfig
/nss.
pc
90 cat
$(COMPONENT_DIR
)/files
/nss.
pc | sed
-e
"s/^Version:/Version:\ $(COMPONENT_VERSION)/" \
91 -e
"s:/usr/lib/mps:/usr/lib/mps/$(MACH64):g" > $(PROTO_DIR
)/usr
/lib
/$(MACH64
)/pkgconfig
/nss.
pc
92 for i in
$(PROTO_DIR
)/usr
/lib
/mps
/*.so
; do \
93 /usr
/bin
/elfedit
-e
'dyn:value -s RPATH "/usr/lib/mps"' $$i ;\
95 for i in
$(PROTO_DIR
)/usr
/lib
/mps
/*.so
; do \
96 /usr
/bin
/elfedit
-e
'dyn:value -s RUNPATH "/usr/lib/mps"' $$i ;\
98 for i in
$(PROTO_DIR
)/usr
/lib
/mps
/$(MACH64
)/*.so
; do \
99 /usr
/bin
/elfedit
-e
'dyn:value -s RPATH "/usr/lib/mps/$(MACH64)"' $$i ;\
101 for i in
$(PROTO_DIR
)/usr
/lib
/mps
/$(MACH64
)/*.so
; do \
102 /usr
/bin
/elfedit
-e
'dyn:value -s RUNPATH "/usr/lib/mps/$(MACH64)"' $$i ;\
104 $(MKDIR
) $(PROTO_DIR
)/$(USRBINDIR
)/ ;\
105 $(MKDIR
) $(PROTO_DIR
)/$(USRBINDIR
)/$(MACH64
) ;\
106 NSS_VMAJOR
=`cat $(PROTO_DIR)/usr/include/mps/nss.h | grep "#define.*NSS_VMAJOR" | gawk '{print $$3}'` ;\
107 NSS_VMINOR
=`cat $(PROTO_DIR)/usr/include/mps/nss.h | grep "#define.*NSS_VMINOR" | gawk '{print $$3}'` ;\
108 NSS_VPATCH
=`cat $(PROTO_DIR)/usr/include/mps/nss.h | grep "#define.*NSS_VPATCH" | gawk '{print $$3}'` ;\
109 cat
$(SOURCE_DIR
)/nss
/pkg
/pkg-config
/nss-config.in |
$(GSED
) \
110 -e
"s,@prefix@,/usr,g" \
111 -e
"s,pkg-config,/usr/bin/pkg-config,g" \
112 -e
"s,@MOD_MAJOR_VERSION@,$$NSS_VMAJOR,g" \
113 -e
"s,@MOD_MINOR_VERSION@,$$NSS_VMINOR,g" \
114 -e
"s,@MOD_PATCH_VERSION@,$$NSS_VPATCH,g" \
115 > $(PROTO_DIR
)$(USRBINDIR
)/nss-config
;\
116 cat
$(SOURCE_DIR
)/nss
/pkg
/pkg-config
/nss-config.in |
$(GSED
) \
117 -e
"s,@prefix@,/usr,g" \
118 -e
"s,pkg-config,/usr/bin/$(MACH64)/pkg-config,g" \
119 -e
"s,@MOD_MAJOR_VERSION@,$$NSS_VMAJOR,g" \
120 -e
"s,@MOD_MINOR_VERSION@,$$NSS_VMINOR,g" \
121 -e
"s,@MOD_PATCH_VERSION@,$$NSS_VPATCH,g" \
122 > $(PROTO_DIR
)$(USRBINDIR
)/$(MACH64
)/nss-config
;\
123 $(MKDIR
) $(PROTO_DIR
)/$(USRSHAREMAN1DIR
) ;\
124 $(GSED
) -e
"s/@date@/`date +'%e %B %Y' | tr -d '\n'`/" -e
"s/@version@/$(COMPONENT_VERSION)/" $(COMPONENT_DIR
)/files
/nss-config.xml
> nss-config.xml
;\
125 xmlto man nss-config.xml
;\
126 $(RM
) nss-config.xml
;\
127 $(MV
) nss-config
.1 $(PROTO_DIR
)/$(USRSHAREMAN1DIR
) ;\
128 $(TOUCH
) $(BUILD_DIR_32
)/.installed
$(BUILD_DIR_64
)/.installed
;
131 test: $(TEST_32_and_64
)
133 $(TEST_32
): $(BUILD_32
)
134 cd
$(COMPONENT_TEST_DIR
) && \
135 $(ENV
) $(COMPONENT_TEST_ENV
) $(CONFIG_SHELL
) all.sh
&&\
136 $(TOUCH
) $(BUILD_DIR_
$(BITS
))/.tested
138 $(TEST_64
): $(BUILD_64
)
139 cd
$(COMPONENT_TEST_DIR
) && \
140 $(ENV
) $(COMPONENT_TEST_ENV
) $(CONFIG_SHELL
) all.sh
&&\
141 $(TOUCH
) $(BUILD_DIR_
$(BITS
))/.tested
143 # Manually added build dependencies
144 REQUIRED_PACKAGES
+= text
/xmlto
146 # Auto-generated dependencies
147 REQUIRED_PACKAGES
+= database
/sqlite-3
148 REQUIRED_PACKAGES
+= library
/nspr
149 REQUIRED_PACKAGES
+= shell/ksh93
150 REQUIRED_PACKAGES
+= system
/library