Lines 1-67
Link Here
|
1 |
# Created by: siasia |
|
|
2 |
# $FreeBSD$ |
1 |
# $FreeBSD$ |
3 |
|
2 |
|
4 |
PORTNAME= v8 |
3 |
PORTNAME= v8 |
5 |
PORTVERSION= 3.18.5 |
4 |
DISTVERSION= 8.6.39 |
6 |
PORTREVISION= 8 |
|
|
7 |
CATEGORIES= lang |
5 |
CATEGORIES= lang |
8 |
MASTER_SITES= LOCAL/vanilla |
6 |
MASTER_SITES= LOCAL/mikael/v8/:build \ |
|
|
7 |
LOCAL/mikael/v8/:buildtools \ |
8 |
LOCAL/mikael/v8/:clang \ |
9 |
LOCAL/mikael/v8/:common \ |
10 |
LOCAL/mikael/v8/:googletest \ |
11 |
LOCAL/mikael/v8/:icu \ |
12 |
LOCAL/mikael/v8/:zlib |
13 |
DISTFILES= build-${BUILD_REV}.tar.gz:build \ |
14 |
buildtools-${BUILDTOOLS_REV}.tar.gz:buildtools \ |
15 |
clang-${CLANG_REV}.tar.gz:clang \ |
16 |
common-${COMMON_REV}.tar.gz:common \ |
17 |
googletest-${GOOGLETEST_REV}.tar.gz:googletest \ |
18 |
icu-${ICU_REV}.tar.gz:icu \ |
19 |
zlib-${ZLIB_REV}.tar.gz:zlib |
20 |
EXTRACT_ONLY= ${DISTNAME}.tar.gz |
9 |
|
21 |
|
10 |
MAINTAINER= sunpoet@FreeBSD.org |
22 |
MAINTAINER= sunpoet@FreeBSD.org |
11 |
COMMENT= Open source JavaScript engine by Google |
23 |
COMMENT= Open source JavaScript engine by Google |
12 |
|
24 |
|
13 |
LICENSE= BSD3CLAUSE |
25 |
LICENSE= BSD3CLAUSE |
|
|
26 |
LICENSE_FILE= ${WRKSRC}/LICENSE |
14 |
|
27 |
|
15 |
CONFLICTS_INSTALL= v8-devel-[0-9]* |
28 |
BUILD_DEPENDS= binutils>0:devel/binutils \ |
|
|
29 |
gn:devel/chromium-gn \ |
30 |
glib>0:devel/glib20 \ |
31 |
${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR} \ |
16 |
|
32 |
|
17 |
ONLY_FOR_ARCHS= i386 amd64 |
33 |
.include <bsd.port.options.mk> |
18 |
|
34 |
|
19 |
PORTSCOUT= limit:^3.18.* |
35 |
# clang10+ is required, this conditionnal can be dropped when |
|
|
36 |
# 11.3 and 12.1 are EOL |
37 |
.if (${OSVERSION} >= 1100000 && ${OSVERSION} < 1103511) || \ |
38 |
(${OSVERSION} >= 1200000 && ${OSVERSION} < 1201515) |
39 |
BUILD_DEPENDS+= llvm10>0:devel/llvm10 |
40 |
.endif |
20 |
|
41 |
|
21 |
ALL_TARGET= native |
42 |
USES= pkgconfig ninja python:2.7,build tar:xz |
22 |
MAKE_ARGS= library=shared |
43 |
USE_GITHUB= yes |
23 |
MAKE_ENV= CC.host=${CC} CXX.host=${CXX} LINK.host=${CXX} LINK.target=${CXX} |
|
|
24 |
USE_LDCONFIG= yes |
44 |
USE_LDCONFIG= yes |
25 |
USES= alias compiler cpe gmake python:2.7 shebangfix tar:xz |
|
|
26 |
|
45 |
|
27 |
CPE_VENDOR= google |
46 |
# new release every minutes |
|
|
47 |
PORTSCOUT= ignore |
28 |
|
48 |
|
29 |
SHEBANG_FILES= build/gyp/gyp |
49 |
# see ${WRKSRC}/DEPS |
|
|
50 |
BUILD_REV= cee6c15d0d8d2e92de1a6c1291cb9dfe984820b5 |
51 |
BUILDTOOLS_REV= 6b2a302b65baf729e0dc026bf2f0bfdb593a2366 |
52 |
CLANG_REV= b49c12a8f3fb25181855d0ea641bbcc2b2e95213 |
53 |
COMMON_REV= 23ef5333a357fc7314630ef88b44c3a545881dee |
54 |
GOOGLETEST_REV= 4fe018038f87675c083d0cfb6a6b57c274fb1753 |
55 |
ICU_REV= 79326efe26e5440f530963704c3c0ff965b3a4ac |
56 |
ZLIB_REV= 8603eee37c4f4dd3e033d06fa18ea34ed9b41f41 |
30 |
|
57 |
|
31 |
.include <bsd.port.pre.mk> |
58 |
BUILDTYPE= Release |
32 |
|
59 |
|
33 |
.if ${COMPILER_TYPE} == clang |
60 |
BINARY_ALIAS= python=${PYTHON_CMD} |
34 |
CXXFLAGS+= -Wno-nested-anon-types -Wno-unused-function -Wno-unused-private-field |
|
|
35 |
MAKE_ENV+= LINK=clang++ |
36 |
.if ${COMPILER_VERSION} >= 34 |
37 |
CXXFLAGS+= -Wno-unused-const-variable |
38 |
.if ${COMPILER_VERSION} >= 35 |
39 |
CXXFLAGS+= -Wno-tautological-undefined-compare |
40 |
.if ${COMPILER_VERSION} >= 36 |
41 |
CXXFLAGS+= -Wno-unused-local-typedef |
42 |
.if ${COMPILER_VERSION} >= 60 |
43 |
CXXFLAGS+= -Wno-null-pointer-arithmetic -Wno-vexing-parse |
44 |
EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-src-stub-cache.cc |
45 |
.endif |
46 |
.endif |
47 |
.endif |
48 |
.endif |
49 |
.else |
50 |
MAKE_ARGS+= strictaliasing=off |
51 |
USE_GCC= any |
52 |
.endif |
53 |
|
61 |
|
|
|
62 |
# Run "gn args out/Release --list" for all variables. |
63 |
# Some parts don't have use_system_* flag, and can be turned on/off by using |
64 |
# replace_gn_files.py script, some parts just turned on/off for target host |
65 |
# OS "target_os == is_bsd", like libusb, libpci. |
66 |
GN_ARGS+= clang_use_chrome_plugins=false \ |
67 |
is_clang=true \ |
68 |
treat_warnings_as_errors=false \ |
69 |
use_aura=true \ |
70 |
use_lld=true \ |
71 |
extra_cxxflags="${CXXFLAGS}" \ |
72 |
extra_ldflags="${LDFLAGS}" |
73 |
|
74 |
MAKE_ARGS= -C out/${BUILDTYPE} |
75 |
|
76 |
# |
77 |
# sha256 changes everytime you download the archive, need to host them on |
78 |
# freefall |
79 |
# To download distfiles : as sunpoet: make MAINTAINER_MODE=yes fetch |
80 |
# |
81 |
.if defined(MAINTAINER_MODE) |
82 |
do-fetch: |
83 |
${FETCH_CMD} -o ${DISTDIR}/build-${BUILD_REV}.tar.gz \ |
84 |
https://chromium.googlesource.com/chromium/src/build.git/+archive/${BUILD_REV}.tar.gz |
85 |
${FETCH_CMD} -o ${DISTDIR}/buildtools-${BUILDTOOLS_REV}.tar.gz \ |
86 |
https://chromium.googlesource.com/chromium/src/buildtools.git/+archive/${BUILDTOOLS_REV}.tar.gz |
87 |
${FETCH_CMD} -o ${DISTDIR}/clang-${CLANG_REV}.tar.gz \ |
88 |
https://chromium.googlesource.com/chromium/src/tools/clang.git/+archive/${CLANG_REV}.tar.gz |
89 |
${FETCH_CMD} -o ${DISTDIR}/common-${COMMON_REV}.tar.gz \ |
90 |
https://chromium.googlesource.com/chromium/src/base/trace_event/common.git/+archive/${COMMON_REV}.tar.gz |
91 |
${FETCH_CMD} -o ${DISTDIR}/googletest-${GOOGLETEST_REV}.tar.gz \ |
92 |
https://chromium.googlesource.com/external/github.com/google/googletest.git/+archive/${GOOGLETEST_REV}.tar.gz |
93 |
${FETCH_CMD} -o ${DISTDIR}/icu-${ICU_REV}.tar.gz \ |
94 |
https://chromium.googlesource.com/chromium/deps/icu.git/+archive/${ICU_REV}.tar.gz |
95 |
${FETCH_CMD} -o ${DISTDIR}/zlib-${ZLIB_REV}.tar.gz \ |
96 |
https://chromium.googlesource.com/chromium/src/third_party/zlib.git/+archive/${ZLIB_REV}.tar.gz |
97 |
. if ${USER} == ${MAINTAINER:C/@.*//} |
98 |
. for f in build-${BUILD_REV}.tar.gz buildtools-${BUILDTOOLS_REV}.tar.gz \ |
99 |
clang-${CLANG_REV}.tar.gz common-${COMMON_REV}.tar.gz \ |
100 |
googletest-${GOOGLETEST_REV}.tar.gz icu-${ICU_REV}.tar.gz \ |
101 |
zlib-${ZLIB_REV}.tar.gz |
102 |
scp ${DISTDIR}/${f} \ |
103 |
freefall.freebsd.org:public_distfiles/v8 |
104 |
. endfor |
105 |
. endif |
106 |
.endif # defined(MAINTAINER_MODE) |
107 |
|
108 |
post-extract: |
109 |
${MKDIR} \ |
110 |
${WRKSRC}/base/trace_event/common \ |
111 |
${WRKSRC}/build \ |
112 |
${WRKSRC}/buildtools \ |
113 |
${WRKSRC}/third_party/googletest/src \ |
114 |
${WRKSRC}/third_party/icu \ |
115 |
${WRKSRC}/third_party/zlib \ |
116 |
${WRKSRC}/tools/clang |
117 |
${TAR} -xf ${DISTDIR}/build-${BUILD_REV}.tar.gz -C ${WRKSRC}/build |
118 |
${TAR} -xf ${DISTDIR}/buildtools-${BUILDTOOLS_REV}.tar.gz -C ${WRKSRC}/buildtools |
119 |
${TAR} -xf ${DISTDIR}/clang-${CLANG_REV}.tar.gz -C ${WRKSRC}/tools/clang |
120 |
${TAR} -xf ${DISTDIR}/common-${COMMON_REV}.tar.gz -C ${WRKSRC}/base/trace_event/common |
121 |
${TAR} -xf ${DISTDIR}/googletest-${GOOGLETEST_REV}.tar.gz -C ${WRKSRC}/third_party/googletest/src |
122 |
${TAR} -xf ${DISTDIR}/icu-${ICU_REV}.tar.gz -C ${WRKSRC}/third_party/icu |
123 |
${TAR} -xf ${DISTDIR}/zlib-${ZLIB_REV}.tar.gz -C ${WRKSRC}/third_party/zlib |
124 |
|
54 |
post-patch: |
125 |
post-patch: |
55 |
@${REINPLACE_CMD} -e 's|test/cctest/cctest.gyp||' ${WRKSRC}/Makefile |
126 |
${REINPLACE_CMD} "s|%%LOCALBASE%%|${LOCALBASE}|" \ |
56 |
@${REINPLACE_CMD} -e '/test\/cctest\/cctest.gyp/d' ${WRKSRC}/build/all.gyp |
127 |
${WRKSRC}/build/toolchain/gcc_toolchain.gni |
57 |
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' ${WRKSRC}/build/common.gypi ${WRKSRC}/tools/gyp/v8.gyp |
128 |
# clang10+ is required, this conditionnal can be dropped when |
58 |
@${REINPLACE_CMD} -e 's, | MAP_NORESERVE,,' ${WRKSRC}/src/platform-freebsd.cc |
129 |
# 11.3 and 12.1 are EOL |
59 |
@${REINPLACE_CMD} -e 's|python|${PYTHON_CMD}|' ${WRKSRC}/tools/gyp/v8.gyp |
130 |
.if (${OSVERSION} >= 1100000 && ${OSVERSION} < 1103511) || \ |
|
|
131 |
(${OSVERSION} >= 1200000 && ${OSVERSION} < 1201515) |
132 |
@${PATCH} -d ${PATCH_WRKSRC} ${PATCH_ARGS} < ${FILESDIR}/extrapatch-clang10 |
133 |
.endif |
60 |
|
134 |
|
|
|
135 |
do-configure: |
136 |
@${ECHO_CMD} 'is_clang=true' > ${WRKSRC}/build/args/release.gn |
137 |
@${ECHO_CMD} 'treat_warnings_as_errors=false' >> ${WRKSRC}/build/args/release.gn |
138 |
@${ECHO_CMD} 'use_custom_libcxx=false' >> ${WRKSRC}/build/args/release.gn |
139 |
@${ECHO_CMD} 'use_lld=true' >> ${WRKSRC}/build/args/release.gn |
140 |
@${ECHO_CMD} 'extra_cxxflags="-I${PREFIX}/include"' >> ${WRKSRC}/build/args/release.gn |
141 |
@${ECHO_CMD} 'extra_ldflags="-L${PREFIX}/lib"' >> ${WRKSRC}/build/args/release.gn |
142 |
cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} gn gen out/${BUILDTYPE} \ |
143 |
--args='import("//build/args/release.gn") ${GN_ARGS}' |
144 |
|
61 |
do-install: |
145 |
do-install: |
62 |
${INSTALL_PROGRAM} ${WRKSRC}/out/native/d8 ${STAGEDIR}${PREFIX}/bin/d8 |
146 |
${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/d8 ${STAGEDIR}${PREFIX}/bin/d8 |
63 |
cd ${WRKSRC}/include/ && ${INSTALL_DATA} *.h ${STAGEDIR}${PREFIX}/include/ |
147 |
# ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/d8 ${STAGEDIR}${PREFIX}/bin/cctest |
64 |
${INSTALL_LIB} ${WRKSRC}/out/native/lib.target/libv8.so ${STAGEDIR}${PREFIX}/lib/libv8.so.1 |
148 |
# ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/mksnapshot ${STAGEDIR}${PREFIX}/bin/mksnapshot |
65 |
${LN} -fs ${PREFIX}/lib/libv8.so.1 ${STAGEDIR}${PREFIX}/lib/libv8.so |
149 |
# ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/mkgrokdump ${STAGEDIR}${PREFIX}/bin/mkgrokdump |
|
|
150 |
${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/libv8.so ${STAGEDIR}${PREFIX}/lib/libv8.so |
151 |
${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/libv8_libbase.so ${STAGEDIR}${PREFIX}/lib/libv8_libbase.so |
152 |
${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/libv8_libplatform.so ${STAGEDIR}${PREFIX}/lib/libv8_libplatform.so |
66 |
|
153 |
|
67 |
.include <bsd.port.post.mk> |
154 |
${INSTALL_DATA} ${WRKSRC}/include/*.h ${STAGEDIR}${PREFIX}/include/ |
|
|
155 |
${MKDIR} ${STAGEDIR}${PREFIX}/include/libplatform \ |
156 |
${STAGEDIR}${PREFIX}/include/cppgc |
157 |
${INSTALL_DATA} ${WRKSRC}/include/libplatform/*.h ${STAGEDIR}${PREFIX}/include/libplatform/ |
158 |
cd ${WRKSRC}/include/cppgc && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/include/cppgc " -name *\.h" |
159 |
${INSTALL_DATA} ${FILESDIR}/*.pc ${STAGEDIR}${PREFIX}/libdata/pkgconfig |
160 |
${REINPLACE_CMD} "s|%%PREFIX%%|${PREFIX}|" \ |
161 |
${STAGEDIR}${PREFIX}/libdata/pkgconfig/* |
162 |
|
163 |
.include <bsd.port.mk> |