xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-oe/recipes-support/nspr/nspr_4.29.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSUMMARY = "Netscape Portable Runtime Library"
2*4882a593SmuzhiyunHOMEPAGE =  "http://www.mozilla.org/projects/nspr/"
3*4882a593SmuzhiyunLICENSE = "GPL-2.0-only | MPL-2.0 | LGPL-2.1-only"
4*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://configure.in;beginline=3;endline=6;md5=90c2fdee38e45d6302abcfe475c8b5c5 \
5*4882a593Smuzhiyun                    file://Makefile.in;beginline=4;endline=38;md5=beda1dbb98a515f557d3e58ef06bca99"
6*4882a593SmuzhiyunSECTION = "libs/network"
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunSRC_URI = "http://ftp.mozilla.org/pub/nspr/releases/v${PV}/src/nspr-${PV}.tar.gz \
9*4882a593Smuzhiyun           file://remove-rpath-from-tests.patch \
10*4882a593Smuzhiyun           file://fix-build-on-x86_64.patch \
11*4882a593Smuzhiyun           file://remove-srcdir-from-configure-in.patch \
12*4882a593Smuzhiyun           file://0002-Add-nios2-support.patch \
13*4882a593Smuzhiyun           file://0001-md-Fix-build-with-musl.patch \
14*4882a593Smuzhiyun           file://Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch \
15*4882a593Smuzhiyun           file://nspr.pc.in \
16*4882a593Smuzhiyun"
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunCACHED_CONFIGUREVARS:append:libc-musl = " CFLAGS='${CFLAGS} -D_PR_POLL_AVAILABLE \
19*4882a593Smuzhiyun                                          -D_PR_HAVE_OFF64_T -D_PR_INET6 -D_PR_HAVE_INET_NTOP \
20*4882a593Smuzhiyun                                          -D_PR_HAVE_GETHOSTBYNAME2 -D_PR_HAVE_GETADDRINFO \
21*4882a593Smuzhiyun                                          -D_PR_INET6_PROBE -DNO_DLOPEN_NULL'"
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunUPSTREAM_CHECK_URI = "http://ftp.mozilla.org/pub/nspr/releases/"
24*4882a593SmuzhiyunUPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+)/"
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunSRC_URI[md5sum] = "a546926d3c8e887be02c668c1293da92"
27*4882a593SmuzhiyunSRC_URI[sha256sum] = "22286bdb8059d74632cc7c2865c139e63953ecfb33bf4362ab58827e86e92582"
28*4882a593Smuzhiyun
29*4882a593SmuzhiyunCVE_PRODUCT = "netscape_portable_runtime"
30*4882a593Smuzhiyun
31*4882a593SmuzhiyunS = "${WORKDIR}/nspr-${PV}/nspr"
32*4882a593Smuzhiyun
33*4882a593SmuzhiyunRDEPENDS:${PN}-dev += "perl"
34*4882a593SmuzhiyunTARGET_CC_ARCH += "${LDFLAGS}"
35*4882a593Smuzhiyun
36*4882a593SmuzhiyunTESTS = " \
37*4882a593Smuzhiyun    accept \
38*4882a593Smuzhiyun    acceptread \
39*4882a593Smuzhiyun    acceptreademu \
40*4882a593Smuzhiyun    affinity \
41*4882a593Smuzhiyun    alarm \
42*4882a593Smuzhiyun    anonfm \
43*4882a593Smuzhiyun    atomic \
44*4882a593Smuzhiyun    attach \
45*4882a593Smuzhiyun    bigfile \
46*4882a593Smuzhiyun    cleanup \
47*4882a593Smuzhiyun    cltsrv  \
48*4882a593Smuzhiyun    concur \
49*4882a593Smuzhiyun    cvar \
50*4882a593Smuzhiyun    cvar2 \
51*4882a593Smuzhiyun    dlltest \
52*4882a593Smuzhiyun    dtoa \
53*4882a593Smuzhiyun    errcodes \
54*4882a593Smuzhiyun    exit \
55*4882a593Smuzhiyun    fdcach \
56*4882a593Smuzhiyun    fileio \
57*4882a593Smuzhiyun    foreign \
58*4882a593Smuzhiyun    formattm \
59*4882a593Smuzhiyun    fsync \
60*4882a593Smuzhiyun    gethost \
61*4882a593Smuzhiyun    getproto \
62*4882a593Smuzhiyun    i2l \
63*4882a593Smuzhiyun    initclk \
64*4882a593Smuzhiyun    inrval \
65*4882a593Smuzhiyun    instrumt \
66*4882a593Smuzhiyun    intrio \
67*4882a593Smuzhiyun    intrupt \
68*4882a593Smuzhiyun    io_timeout \
69*4882a593Smuzhiyun    ioconthr \
70*4882a593Smuzhiyun    join \
71*4882a593Smuzhiyun    joinkk \
72*4882a593Smuzhiyun    joinku \
73*4882a593Smuzhiyun    joinuk \
74*4882a593Smuzhiyun    joinuu \
75*4882a593Smuzhiyun    layer \
76*4882a593Smuzhiyun    lazyinit \
77*4882a593Smuzhiyun    libfilename \
78*4882a593Smuzhiyun    lltest \
79*4882a593Smuzhiyun    lock \
80*4882a593Smuzhiyun    lockfile \
81*4882a593Smuzhiyun    logfile \
82*4882a593Smuzhiyun    logger \
83*4882a593Smuzhiyun    many_cv \
84*4882a593Smuzhiyun    multiwait \
85*4882a593Smuzhiyun    nameshm1 \
86*4882a593Smuzhiyun    nblayer \
87*4882a593Smuzhiyun    nonblock \
88*4882a593Smuzhiyun    ntioto \
89*4882a593Smuzhiyun    ntoh \
90*4882a593Smuzhiyun    op_2long \
91*4882a593Smuzhiyun    op_excl \
92*4882a593Smuzhiyun    op_filnf \
93*4882a593Smuzhiyun    op_filok \
94*4882a593Smuzhiyun    op_nofil \
95*4882a593Smuzhiyun    parent \
96*4882a593Smuzhiyun    parsetm \
97*4882a593Smuzhiyun    peek \
98*4882a593Smuzhiyun    perf \
99*4882a593Smuzhiyun    pipeping \
100*4882a593Smuzhiyun    pipeping2 \
101*4882a593Smuzhiyun    pipeself \
102*4882a593Smuzhiyun    poll_nm \
103*4882a593Smuzhiyun    poll_to \
104*4882a593Smuzhiyun    pollable \
105*4882a593Smuzhiyun    prftest \
106*4882a593Smuzhiyun    primblok \
107*4882a593Smuzhiyun    provider \
108*4882a593Smuzhiyun    prpollml \
109*4882a593Smuzhiyun    ranfile \
110*4882a593Smuzhiyun    randseed \
111*4882a593Smuzhiyun    reinit \
112*4882a593Smuzhiyun    rwlocktest \
113*4882a593Smuzhiyun    sel_spd \
114*4882a593Smuzhiyun    selct_er \
115*4882a593Smuzhiyun    selct_nm \
116*4882a593Smuzhiyun    selct_to \
117*4882a593Smuzhiyun    selintr \
118*4882a593Smuzhiyun    sema \
119*4882a593Smuzhiyun    semaerr \
120*4882a593Smuzhiyun    semaping \
121*4882a593Smuzhiyun    sendzlf \
122*4882a593Smuzhiyun    server_test \
123*4882a593Smuzhiyun    servr_kk \
124*4882a593Smuzhiyun    servr_uk \
125*4882a593Smuzhiyun    servr_ku \
126*4882a593Smuzhiyun    servr_uu \
127*4882a593Smuzhiyun    short_thread \
128*4882a593Smuzhiyun    sigpipe \
129*4882a593Smuzhiyun    socket \
130*4882a593Smuzhiyun    sockopt \
131*4882a593Smuzhiyun    sockping \
132*4882a593Smuzhiyun    sprintf \
133*4882a593Smuzhiyun    stack \
134*4882a593Smuzhiyun    stdio \
135*4882a593Smuzhiyun    str2addr \
136*4882a593Smuzhiyun    strod \
137*4882a593Smuzhiyun    switch \
138*4882a593Smuzhiyun    system \
139*4882a593Smuzhiyun    testbit \
140*4882a593Smuzhiyun    testfile \
141*4882a593Smuzhiyun    threads \
142*4882a593Smuzhiyun    timemac \
143*4882a593Smuzhiyun    timetest \
144*4882a593Smuzhiyun    tpd \
145*4882a593Smuzhiyun    udpsrv \
146*4882a593Smuzhiyun    vercheck \
147*4882a593Smuzhiyun    version \
148*4882a593Smuzhiyun    writev \
149*4882a593Smuzhiyun    xnotify \
150*4882a593Smuzhiyun    zerolen"
151*4882a593Smuzhiyun
152*4882a593Smuzhiyuninherit autotools multilib_script
153*4882a593Smuzhiyun
154*4882a593SmuzhiyunMULTILIB_SCRIPTS = "${PN}-dev:${bindir}/nspr-config"
155*4882a593Smuzhiyun
156*4882a593SmuzhiyunPACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
157*4882a593SmuzhiyunPACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun# Do not install nspr in usr/include, but in usr/include/nspr, the
160*4882a593Smuzhiyun# preferred path upstream.
161*4882a593SmuzhiyunEXTRA_OECONF += "--includedir=${includedir}/nspr"
162*4882a593Smuzhiyun
163*4882a593SmuzhiyunEXTRA_OEMAKE:append:class-native = " EXTRA_LIBS='-lpthread -lrt -ldl'"
164*4882a593Smuzhiyun
165*4882a593Smuzhiyundo_compile:prepend() {
166*4882a593Smuzhiyun	oe_runmake CROSS_COMPILE=1 CFLAGS="-DXP_UNIX ${BUILD_CFLAGS}" LDFLAGS="" CC="${BUILD_CC}" -C config export
167*4882a593Smuzhiyun}
168*4882a593Smuzhiyun
169*4882a593Smuzhiyundo_compile:append() {
170*4882a593Smuzhiyun	oe_runmake -C pr/tests
171*4882a593Smuzhiyun}
172*4882a593Smuzhiyun
173*4882a593Smuzhiyundo_install:append() {
174*4882a593Smuzhiyun    install -D ${WORKDIR}/nspr.pc.in ${D}${libdir}/pkgconfig/nspr.pc
175*4882a593Smuzhiyun    sed -i  \
176*4882a593Smuzhiyun    -e 's:NSPRVERSION:${PV}:g' \
177*4882a593Smuzhiyun    -e 's:OEPREFIX:${prefix}:g' \
178*4882a593Smuzhiyun    -e 's:OELIBDIR:${libdir}:g' \
179*4882a593Smuzhiyun    -e 's:OEINCDIR:${includedir}:g' \
180*4882a593Smuzhiyun    -e 's:OEEXECPREFIX:${exec_prefix}:g' \
181*4882a593Smuzhiyun    ${D}${libdir}/pkgconfig/nspr.pc
182*4882a593Smuzhiyun
183*4882a593Smuzhiyun    mkdir -p ${D}${libdir}/nspr/tests
184*4882a593Smuzhiyun    install -m 0755 ${S}/pr/tests/runtests.pl ${D}${libdir}/nspr/tests
185*4882a593Smuzhiyun    install -m 0755 ${S}/pr/tests/runtests.sh ${D}${libdir}/nspr/tests
186*4882a593Smuzhiyun    cd ${B}/pr/tests
187*4882a593Smuzhiyun    install -m 0755 ${TESTS} ${D}${libdir}/nspr/tests
188*4882a593Smuzhiyun
189*4882a593Smuzhiyun    # delete compile-et.pl and perr.properties from ${bindir} because these are
190*4882a593Smuzhiyun    # only used to generate prerr.c and prerr.h files from prerr.et at compile
191*4882a593Smuzhiyun    # time
192*4882a593Smuzhiyun    rm ${D}${bindir}/compile-et.pl ${D}${bindir}/prerr.properties
193*4882a593Smuzhiyun}
194*4882a593Smuzhiyun
195*4882a593SmuzhiyunFILES:${PN} = "${libdir}/lib*.so"
196*4882a593SmuzhiyunFILES:${PN}-dev = "${bindir}/* ${libdir}/nspr/tests/* ${libdir}/pkgconfig \
197*4882a593Smuzhiyun                ${includedir}/* ${datadir}/aclocal/* "
198*4882a593Smuzhiyun
199*4882a593SmuzhiyunBBCLASSEXTEND = "native nativesdk"
200