commit | author | age
|
65f501
|
1 |
# |
F |
2 |
# This file and its contents are supplied under the terms of the |
|
3 |
# Common Development and Distribution License ("CDDL"), version 1.0. |
|
4 |
# You may only use this file in accordance with the terms of version |
|
5 |
# 1.0 of the CDDL. |
|
6 |
# |
|
7 |
# A full copy of the text of the CDDL should have accompanied this |
|
8 |
# source. A copy of the CDDL is also available via the Internet at |
|
9 |
# http://www.illumos.org/license/CDDL. |
|
10 |
# |
|
11 |
|
|
12 |
# |
|
13 |
# Copyright 2016 Aurelien Larcher. All rights reserved. |
|
14 |
# Copyright 2019 Alexander Pyhalov |
|
15 |
# Copyright 2019 Michal Nowak |
|
16 |
# Copyright 2019 Till Wegmüller |
|
17 |
# Copyright 2022 Klaus Ziegler |
|
18 |
# Copyright 2024 Friedrich Kink |
|
19 |
# |
|
20 |
|
|
21 |
BUILD_BITS= 64 |
|
22 |
BUILD_STYLE= cmake |
73c51c
|
23 |
USE_PARALLEL_BUILD= yes |
F |
24 |
|
65f501
|
25 |
include ../../../make-rules/shared-macros.mk |
F |
26 |
|
|
27 |
COMPONENT_MJR_VERSION= 18 |
|
28 |
COMPONENT_BASE_VERSION= $(COMPONENT_MJR_VERSION).1 |
|
29 |
COMPONENT_NAME= clang-$(COMPONENT_MJR_VERSION) |
8d583c
|
30 |
COMPONENT_VERSION= $(COMPONENT_BASE_VERSION).2 |
65f501
|
31 |
COMPONENT_SUMMARY= LLVM tools and Clang compiler |
F |
32 |
COMPONENT_PROJECT_URL= https://llvm.org/ |
|
33 |
COMPONENT_SRC= $(LLVM_NAME)-$(COMPONENT_VERSION).src |
|
34 |
COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.xz |
8d583c
|
35 |
COMPONENT_ARCHIVE_HASH= sha256:13ef90fa598a239222ecadd64a63d81e4db59813aa5f255cbb5e9d3e0cf927d0 |
65f501
|
36 |
COMPONENT_ARCHIVE_URL= https://github.com/llvm/llvm-project/releases/download/llvmorg-$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE) |
F |
37 |
COMPONENT_FMRI= developer/$(COMPONENT_NAME) |
|
38 |
COMPONENT_CLASSIFICATION= Development/C |
|
39 |
COMPONENT_LICENSE= BSD |
|
40 |
COMPONENT_LICENSE_FILE= LICENSE.TXT |
|
41 |
|
|
42 |
LLVM_NAME= llvm |
|
43 |
CLANG_NAME= clang |
|
44 |
|
|
45 |
COMPONENT_ARCHIVE_1= $(CLANG_NAME)-$(COMPONENT_VERSION).src.tar.xz |
8d583c
|
46 |
COMPONENT_ARCHIVE_HASH_1= sha256:80a5fbb936089360c5adff018df7bf5f2fbf2143b1d9102916717bb282142503 |
65f501
|
47 |
COMPONENT_ARCHIVE_URL_1=https://github.com/llvm/llvm-project/releases/download/llvmorg-$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE_1) |
F |
48 |
|
|
49 |
COMPONENT_ARCHIVE_2= cmake-$(COMPONENT_VERSION).src.tar.xz |
8d583c
|
50 |
COMPONENT_ARCHIVE_HASH_2= sha256:b55a1eed9fe9c5d86c9f73c8aabde3e2407e603e737e1555545c3d136655955b |
65f501
|
51 |
COMPONENT_ARCHIVE_URL_2=https://github.com/llvm/llvm-project/releases/download/llvmorg-$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE_2) |
F |
52 |
|
|
53 |
COMPONENT_ARCHIVE_3= third-party-$(COMPONENT_VERSION).src.tar.xz |
8d583c
|
54 |
COMPONENT_ARCHIVE_HASH_3= sha256:d3f2ded8386c590c2ba26770df573b13ec3215182c7b15baba546edfeb182565 |
65f501
|
55 |
COMPONENT_ARCHIVE_URL_3=https://github.com/llvm/llvm-project/releases/download/llvmorg-$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE_3) |
F |
56 |
|
|
57 |
include $(WS_MAKE_RULES)/common.mk |
|
58 |
|
|
59 |
CMAKE_PREFIX= /usr/clang/$(COMPONENT_BASE_VERSION) |
|
60 |
|
|
61 |
PKG_MACROS += GCC_VERSION=$(GCC_VERSION) |
|
62 |
|
|
63 |
COMPONENT_POST_UNPACK_ACTION += \ |
|
64 |
$(UNPACK) $(USERLAND_ARCHIVES)$(COMPONENT_ARCHIVE_1) && \ |
|
65 |
$(MV) $(CLANG_NAME)-$(COMPONENT_VERSION).src $(COMPONENT_SRC)/tools/clang && \ |
|
66 |
$(UNPACK) $(USERLAND_ARCHIVES)$(COMPONENT_ARCHIVE_2) && \ |
|
67 |
$(MV) cmake-$(COMPONENT_VERSION).src/Modules $(COMPONENT_SRC)/cmake/ && \ |
|
68 |
$(RM) -r cmake-$(COMPONENT_VERSION).src && \ |
|
69 |
$(UNPACK) $(USERLAND_ARCHIVES)$(COMPONENT_ARCHIVE_3) && \ |
|
70 |
$(MKDIR) $(COMPONENT_SRC)/third-party && \ |
|
71 |
$(MV) third-party-$(COMPONENT_VERSION).src/unittest $(COMPONENT_SRC)/third-party && \ |
|
72 |
$(MV) third-party-$(COMPONENT_VERSION).src/benchmark $(COMPONENT_SRC)/third-party && \ |
|
73 |
$(RM) -r third-party-$(COMPONENT_VERSION).src |
|
74 |
|
|
75 |
COMPONENT_PRE_CONFIGURE_ACTION = ( $(CLONEY) $(SOURCE_DIR) $(@D); ) |
|
76 |
|
|
77 |
COMPONENT_POST_INSTALL_ACTION = \ |
|
78 |
for file in `echo $(PROTO_DIR)/$(CMAKE_PREFIX)/bin/*`; do \ |
|
79 |
/usr/bin/elfedit -e 'dyn:runpath $(GCC_LIBDIR):$(CMAKE_PREFIX)/lib' $$file ; \ |
|
80 |
done && \ |
|
81 |
for file in \ |
|
82 |
`ggrep -rlh '^\#!*/usr/bin/env python' $(PROTO_DIR)/$(CMAKE_PREFIX)`; do \ |
|
83 |
sed -i -e 's:\#!/usr/bin/env.*:\#!$(PYTHON):' $$file; \ |
|
84 |
done |
|
85 |
|
|
86 |
CMAKE_OPTIONS += -DCMAKE_C_COMPILER=$(CC) |
|
87 |
CMAKE_OPTIONS += -DCMAKE_CXX_COMPILER=$(CXX) |
|
88 |
CMAKE_OPTIONS += -DGCC_INSTALL_PREFIX=$(GCC_ROOT) |
|
89 |
CMAKE_OPTIONS += -DCMAKE_CXX_LINK_FLAGS="-L$(GCC_LIBDIR) -Wl,-rpath,$(GCC_LIBDIR)" |
|
90 |
CMAKE_OPTIONS += -DCMAKE_BUILD_TYPE=Release |
|
91 |
CMAKE_OPTIONS += -DCLANG_DEFAULT_LINKER="/usr/bin/ld" |
|
92 |
CMAKE_OPTIONS += -DLLVM_ENABLE_EH=ON |
|
93 |
CMAKE_OPTIONS += -DLLVM_ENABLE_RTTI=ON |
|
94 |
CMAKE_OPTIONS += -DLLVM_LINK_LLVM_DYLIB=ON |
|
95 |
CMAKE_OPTIONS += -DLLVM_INCLUDE_BENCHMARKS=OFF |
|
96 |
CMAKE_OPTIONS += -DLLVM_INSTALL_UTILS=ON |
|
97 |
CMAKE_OPTIONS += -DCLANG_DEFAULT_RTLIB=libgcc |
|
98 |
CMAKE_OPTIONS += -DCLANG_DEFAULT_CXX_STDLIB=libstdc++ |
|
99 |
CMAKE_OPTIONS += -DPYTHON_EXECUTABLE="$(PYTHON)" |
|
100 |
CMAKE_OPTIONS += -DCMAKE_MODULE_PATH="$(SOURCE_DIR)/$(COMPONENT_SRC)/cmake/Modules" |
|
101 |
|
|
102 |
unexport SHELLOPTS |
|
103 |
|
|
104 |
COMPONENT_TEST_CMD = $(GMAKE) |
|
105 |
COMPONENT_TEST_TARGETS = check-all |
|
106 |
COMPONENT_TEST_ENV += PATH=$(PATH.gnu) |
|
107 |
|
|
108 |
# Do not change the order of these regexp transforms. |
|
109 |
COMPONENT_TEST_TRANSFORMS += \ |
|
110 |
'-e "/^Testing Time: .*$$/d" ' \ |
|
111 |
'-e "/^make.*$$/d" ' \ |
|
112 |
'-e "/^Failed Tests /,/Unexpected Passed:/p" ' \ |
|
113 |
'-e "" ' \ |
|
114 |
'-e "/.*/d" ' |
|
115 |
|
|
116 |
TESTSUITE_MAKE = $(GMAKE) |
|
117 |
|
|
118 |
# Auto-generated dependencies |
|
119 |
PYTHON_REQUIRED_PACKAGES += runtime/python |
|
120 |
REQUIRED_PACKAGES += $(GCC_RUNTIME_PKG) |
|
121 |
REQUIRED_PACKAGES += $(GXX_RUNTIME_PKG) |
|
122 |
REQUIRED_PACKAGES += SUNWcs |
|
123 |
REQUIRED_PACKAGES += compress/zstd |
|
124 |
REQUIRED_PACKAGES += library/libedit |
|
125 |
REQUIRED_PACKAGES += library/libxml2 |
|
126 |
REQUIRED_PACKAGES += library/zlib |
|
127 |
REQUIRED_PACKAGES += system/library |
|
128 |
REQUIRED_PACKAGES += system/library/math |