Sat Sep 16 13:21:23 2023 UTC ()
meson/build.mk: apply qemu fix here too for benefit of other packages


(tnn)
diff -r1.18 -r1.19 pkgsrc/devel/meson/build.mk

cvs diff -r1.18 -r1.19 pkgsrc/devel/meson/build.mk (switch to unified diff)

--- pkgsrc/devel/meson/build.mk 2023/06/27 10:41:25 1.18
+++ pkgsrc/devel/meson/build.mk 2023/09/16 13:21:23 1.19
@@ -1,176 +1,180 @@ @@ -1,176 +1,180 @@
1# $NetBSD: build.mk,v 1.18 2023/06/27 10:41:25 riastradh Exp $ 1# $NetBSD: build.mk,v 1.19 2023/09/16 13:21:23 tnn Exp $
2 2
3MESON_REQD?= 0 3MESON_REQD?= 0
4.for version in ${MESON_REQD} 4.for version in ${MESON_REQD}
5TOOL_DEPENDS+= meson>=${version}:../../devel/meson 5TOOL_DEPENDS+= meson>=${version}:../../devel/meson
6.endfor 6.endfor
7 7
8CONFIGURE_DIRS?= . 8CONFIGURE_DIRS?= .
9BUILD_DIRS?= ${CONFIGURE_DIRS} 9BUILD_DIRS?= ${CONFIGURE_DIRS}
10INSTALL_DIRS?= ${CONFIGURE_DIRS} 10INSTALL_DIRS?= ${CONFIGURE_DIRS}
11TEST_DIRS?= ${CONFIGURE_DIRS} 11TEST_DIRS?= ${CONFIGURE_DIRS}
12 12
13.PHONY: meson-configure meson-build meson-install meson-test 13.PHONY: meson-configure meson-build meson-install meson-test
14 14
15# pkgsrc contains multiple llvm-config executables at multiple locations. 15# pkgsrc contains multiple llvm-config executables at multiple locations.
16.if !empty(LLVM_CONFIG_PATH) 16.if !empty(LLVM_CONFIG_PATH)
17MAKE_ENV+= LLVM_CONFIG_PATH=${LLVM_CONFIG_PATH:Q} 17MAKE_ENV+= LLVM_CONFIG_PATH=${LLVM_CONFIG_PATH:Q}
18.endif 18.endif
19 19
 20# Prevent use of "response files" that break pkgsrc wrappers.
 21# The default threshold of 64k is too low for pkgsrc.
 22MAKE_ENV+= MESON_RSP_THRESHOLD=262144
 23
20.if !defined(USE_CMAKE) 24.if !defined(USE_CMAKE)
21MAKE_ENV+= CMAKE=${TOOLS_PATH.false} 25MAKE_ENV+= CMAKE=${TOOLS_PATH.false}
22.endif 26.endif
23 27
24.include "../../mk/bsd.prefs.mk" 28.include "../../mk/bsd.prefs.mk"
25 29
26.if ${USE_CROSS_COMPILE:U:tl} == yes 30.if ${USE_CROSS_COMPILE:U:tl} == yes
27MESON_CPU_FAMILY.amd64= x86_64 31MESON_CPU_FAMILY.amd64= x86_64
28MESON_CPU_FAMILY.arm26?= arm 32MESON_CPU_FAMILY.arm26?= arm
29MESON_CPU_FAMILY.arm32?= arm 33MESON_CPU_FAMILY.arm32?= arm
30MESON_CPU_FAMILY.earm?= arm 34MESON_CPU_FAMILY.earm?= arm
31MESON_CPU_FAMILY.earmeb?= arm 35MESON_CPU_FAMILY.earmeb?= arm
32MESON_CPU_FAMILY.earmhf?= arm 36MESON_CPU_FAMILY.earmhf?= arm
33MESON_CPU_FAMILY.earmhfeb?= arm 37MESON_CPU_FAMILY.earmhfeb?= arm
34MESON_CPU_FAMILY.earmv4?= arm 38MESON_CPU_FAMILY.earmv4?= arm
35MESON_CPU_FAMILY.earmv4eb?= arm 39MESON_CPU_FAMILY.earmv4eb?= arm
36MESON_CPU_FAMILY.earmv5?= arm 40MESON_CPU_FAMILY.earmv5?= arm
37MESON_CPU_FAMILY.earmv5eb?= arm 41MESON_CPU_FAMILY.earmv5eb?= arm
38MESON_CPU_FAMILY.earmv6?= arm 42MESON_CPU_FAMILY.earmv6?= arm
39MESON_CPU_FAMILY.earmv6eb?= arm 43MESON_CPU_FAMILY.earmv6eb?= arm
40MESON_CPU_FAMILY.earmv6hf?= arm 44MESON_CPU_FAMILY.earmv6hf?= arm
41MESON_CPU_FAMILY.earmv6hfeb?= arm 45MESON_CPU_FAMILY.earmv6hfeb?= arm
42MESON_CPU_FAMILY.earmv7?= arm 46MESON_CPU_FAMILY.earmv7?= arm
43MESON_CPU_FAMILY.earmv7eb?= arm 47MESON_CPU_FAMILY.earmv7eb?= arm
44MESON_CPU_FAMILY.earmv7hf?= arm 48MESON_CPU_FAMILY.earmv7hf?= arm
45MESON_CPU_FAMILY.earmv7hfeb?= arm 49MESON_CPU_FAMILY.earmv7hfeb?= arm
46MESON_CPU_FAMILY.i386= x86 50MESON_CPU_FAMILY.i386= x86
47MESON_CPU_FAMILY.i486= x86 51MESON_CPU_FAMILY.i486= x86
48MESON_CPU_FAMILY.i586= x86 52MESON_CPU_FAMILY.i586= x86
49MESON_CPU_FAMILY.i686= x86 53MESON_CPU_FAMILY.i686= x86
50MESON_CPU_FAMILY.hppa= parisc 54MESON_CPU_FAMILY.hppa= parisc
51MESON_CPU_FAMILY.m68000= m68k 55MESON_CPU_FAMILY.m68000= m68k
52MESON_CPU_FAMILY.mips64eb= mips 56MESON_CPU_FAMILY.mips64eb= mips
53MESON_CPU_FAMILY.mips64el= mips 57MESON_CPU_FAMILY.mips64el= mips
54MESON_CPU_FAMILY.mipseb= mips 58MESON_CPU_FAMILY.mipseb= mips
55MESON_CPU_FAMILY.mipsel= mips 59MESON_CPU_FAMILY.mipsel= mips
56MESON_CPU_FAMILY.powerpc64= ppc64 60MESON_CPU_FAMILY.powerpc64= ppc64
57MESON_CPU_FAMILY.powerpc= ppc 61MESON_CPU_FAMILY.powerpc= ppc
58MESON_CPU_FAMILY.sh3eb= sh3 62MESON_CPU_FAMILY.sh3eb= sh3
59MESON_CPU_FAMILY.sh3el= sh3 63MESON_CPU_FAMILY.sh3el= sh3
60 64
61MESON_CPU_ENDIAN.earmeb?= big 65MESON_CPU_ENDIAN.earmeb?= big
62MESON_CPU_ENDIAN.earmhfeb?= big 66MESON_CPU_ENDIAN.earmhfeb?= big
63MESON_CPU_ENDIAN.earmv4eb?= big 67MESON_CPU_ENDIAN.earmv4eb?= big
64MESON_CPU_ENDIAN.earmv5eb?= big 68MESON_CPU_ENDIAN.earmv5eb?= big
65MESON_CPU_ENDIAN.earmv6eb?= big 69MESON_CPU_ENDIAN.earmv6eb?= big
66MESON_CPU_ENDIAN.earmv6hfeb?= big 70MESON_CPU_ENDIAN.earmv6hfeb?= big
67MESON_CPU_ENDIAN.earmv7eb?= big 71MESON_CPU_ENDIAN.earmv7eb?= big
68MESON_CPU_ENDIAN.earmv7hfeb?= big 72MESON_CPU_ENDIAN.earmv7hfeb?= big
69MESON_CPU_ENDIAN.mips64eb= big 73MESON_CPU_ENDIAN.mips64eb= big
70MESON_CPU_ENDIAN.mipseb= big 74MESON_CPU_ENDIAN.mipseb= big
71MESON_CPU_ENDIAN.powerpc64= big 75MESON_CPU_ENDIAN.powerpc64= big
72MESON_CPU_ENDIAN.powerpc= big 76MESON_CPU_ENDIAN.powerpc= big
73MESON_CPU_ENDIAN.sh3eb= big 77MESON_CPU_ENDIAN.sh3eb= big
74MESON_CPU_ENDIAN.sparc64= big 78MESON_CPU_ENDIAN.sparc64= big
75MESON_CPU_ENDIAN.sparc= big 79MESON_CPU_ENDIAN.sparc= big
76 80
77MESON_CPU_FAMILY= ${MESON_CPU_FAMILY.${MACHINE_ARCH}:U${MACHINE_ARCH}} 81MESON_CPU_FAMILY= ${MESON_CPU_FAMILY.${MACHINE_ARCH}:U${MACHINE_ARCH}}
78MESON_CPU= ${MACHINE_ARCH} 82MESON_CPU= ${MACHINE_ARCH}
79MESON_CPU_ENDIAN= ${MESON_CPU_ENDIAN.${MACHINE_ARCH}:Ulittle} 83MESON_CPU_ENDIAN= ${MESON_CPU_ENDIAN.${MACHINE_ARCH}:Ulittle}
80 84
81MESON_CROSS_VARS+= sys_root 85MESON_CROSS_VARS+= sys_root
82MESON_CROSS.sys_root= '${_CROSS_DESTDIR}' 86MESON_CROSS.sys_root= '${_CROSS_DESTDIR}'
83 87
84MESON_CROSS_FILE= ${WRKDIR}/.meson_cross 88MESON_CROSS_FILE= ${WRKDIR}/.meson_cross
85meson-configure: ${MESON_CROSS_FILE} 89meson-configure: ${MESON_CROSS_FILE}
86${MESON_CROSS_FILE}: 90${MESON_CROSS_FILE}:
87 @${STEP_MSG} Creating meson cross file 91 @${STEP_MSG} Creating meson cross file
88 ${RUN}${ECHO} '[properties]' >$@.tmp 92 ${RUN}${ECHO} '[properties]' >$@.tmp
89. for _v_ in ${MESON_CROSS_VARS} 93. for _v_ in ${MESON_CROSS_VARS}
90. if defined(MESON_CROSS.${_v_}) 94. if defined(MESON_CROSS.${_v_})
91 ${RUN}${ECHO} ${_v_} = ${MESON_CROSS.${_v_}:Q} >>$@.tmp 95 ${RUN}${ECHO} ${_v_} = ${MESON_CROSS.${_v_}:Q} >>$@.tmp
92. endif 96. endif
93. endfor 97. endfor
94. for _v_ in ${MESON_CROSS_OPSYS_VARS} 98. for _v_ in ${MESON_CROSS_OPSYS_VARS}
95. if defined(MESON_CROSS.${OPSYS}.${_v_}) 99. if defined(MESON_CROSS.${OPSYS}.${_v_})
96 ${RUN}${ECHO} ${_v_} = ${MESON_CROSS.${OPSYS}.${_v_}:Q} >>$@.tmp 100 ${RUN}${ECHO} ${_v_} = ${MESON_CROSS.${OPSYS}.${_v_}:Q} >>$@.tmp
97. endif 101. endif
98. endfor 102. endfor
99. for _v_ in ${MESON_CROSS_ARCH_VARS} 103. for _v_ in ${MESON_CROSS_ARCH_VARS}
100. if defined(MESON_CROSS.${MACHINE_ARCH}.${_v_}) 104. if defined(MESON_CROSS.${MACHINE_ARCH}.${_v_})
101 ${RUN}${ECHO} ${_v_} = ${MESON_CROSS.${MACHINE_ARCH}.${_v_}:Q} >>$@.tmp 105 ${RUN}${ECHO} ${_v_} = ${MESON_CROSS.${MACHINE_ARCH}.${_v_}:Q} >>$@.tmp
102. endif 106. endif
103. endfor 107. endfor
104 ${RUN}${ECHO} '[host_machine]' >>$@.tmp 108 ${RUN}${ECHO} '[host_machine]' >>$@.tmp
105 ${RUN}${ECHO} "system = '${LOWER_OPSYS}'" >>$@.tmp 109 ${RUN}${ECHO} "system = '${LOWER_OPSYS}'" >>$@.tmp
106 ${RUN}${ECHO} "cpu_family = '${MESON_CPU_FAMILY}'" >>$@.tmp 110 ${RUN}${ECHO} "cpu_family = '${MESON_CPU_FAMILY}'" >>$@.tmp
107 ${RUN}${ECHO} "cpu = '${MESON_CPU}'" >>$@.tmp 111 ${RUN}${ECHO} "cpu = '${MESON_CPU}'" >>$@.tmp
108 ${RUN}${ECHO} "endian = '${MESON_CPU_ENDIAN}'" >>$@.tmp 112 ${RUN}${ECHO} "endian = '${MESON_CPU_ENDIAN}'" >>$@.tmp
109 ${RUN}${MV} -f $@.tmp $@ 113 ${RUN}${MV} -f $@.tmp $@
110MESON_CROSS_ARGS+= --cross-file ${MESON_CROSS_FILE:Q} 114MESON_CROSS_ARGS+= --cross-file ${MESON_CROSS_FILE:Q}
111 115
112.endif 116.endif
113 117
114do-configure: meson-configure 118do-configure: meson-configure
115meson-configure: 119meson-configure:
116.for d in ${CONFIGURE_DIRS} 120.for d in ${CONFIGURE_DIRS}
117. if ${CONFIGURE_DIRS:[#]} != 1 121. if ${CONFIGURE_DIRS:[#]} != 1
118 @${STEP_MSG} Configuring meson in ${d} 122 @${STEP_MSG} Configuring meson in ${d}
119. endif 123. endif
120 ${RUN}cd ${WRKSRC} && cd ${d} && ${SETENV} ${MAKE_ENV} meson setup \ 124 ${RUN}cd ${WRKSRC} && cd ${d} && ${SETENV} ${MAKE_ENV} meson setup \
121 --prefix ${PREFIX} \ 125 --prefix ${PREFIX} \
122 --libdir lib \ 126 --libdir lib \
123 --libexecdir libexec \ 127 --libexecdir libexec \
124 --mandir ${PKGMANDIR} \ 128 --mandir ${PKGMANDIR} \
125 --sysconfdir ${PKG_SYSCONFDIR} \ 129 --sysconfdir ${PKG_SYSCONFDIR} \
126 ${MESON_CROSS_ARGS} \ 130 ${MESON_CROSS_ARGS} \
127 --buildtype=plain ${MESON_ARGS} . output 131 --buildtype=plain ${MESON_ARGS} . output
128.endfor 132.endfor
129 133
130do-build: meson-build 134do-build: meson-build
131meson-build: 135meson-build:
132.for d in ${BUILD_DIRS} 136.for d in ${BUILD_DIRS}
133. if ${BUILD_DIRS:[#]} != 1 137. if ${BUILD_DIRS:[#]} != 1
134 @${STEP_MSG} Building with ninja in ${d} 138 @${STEP_MSG} Building with ninja in ${d}
135. endif 139. endif
136 ${RUN}cd ${WRKSRC} && cd ${d} && ${SETENV} ${MAKE_ENV} \ 140 ${RUN}cd ${WRKSRC} && cd ${d} && ${SETENV} ${MAKE_ENV} \
137 ninja -j ${_MAKE_JOBS_N:U1} -C output 141 ninja -j ${_MAKE_JOBS_N:U1} -C output
138.endfor 142.endfor
139 143
140do-install: meson-install 144do-install: meson-install
141meson-install: 145meson-install:
142.for d in ${INSTALL_DIRS} 146.for d in ${INSTALL_DIRS}
143 ${RUN}if [ -f ${WRKSRC}/meson_post_install.py ]; then \ 147 ${RUN}if [ -f ${WRKSRC}/meson_post_install.py ]; then \
144 ${CHMOD} +x ${WRKSRC}/meson_post_install.py; \ 148 ${CHMOD} +x ${WRKSRC}/meson_post_install.py; \
145 fi 149 fi
146. if ${INSTALL_DIRS:[#]} != 1 150. if ${INSTALL_DIRS:[#]} != 1
147 @${STEP_MSG} Installing with ninja in ${d} 151 @${STEP_MSG} Installing with ninja in ${d}
148. endif 152. endif
149 ${RUN}cd ${WRKSRC} && cd ${d} && ${SETENV} ${INSTALL_ENV} ${MAKE_ENV} \ 153 ${RUN}cd ${WRKSRC} && cd ${d} && ${SETENV} ${INSTALL_ENV} ${MAKE_ENV} \
150 ninja -j ${_MAKE_JOBS_N:U1} -C output install 154 ninja -j ${_MAKE_JOBS_N:U1} -C output install
151.endfor 155.endfor
152 156
153do-test: meson-test 157do-test: meson-test
154meson-test: 158meson-test:
155.for d in ${TEST_DIRS} 159.for d in ${TEST_DIRS}
156. if ${TEST_DIRS:[#]} != 1 160. if ${TEST_DIRS:[#]} != 1
157 @${STEP_MSG} Testing with ninja in ${d} 161 @${STEP_MSG} Testing with ninja in ${d}
158. endif 162. endif
159 ${RUN}cd ${WRKSRC} && cd ${d} && ${SETENV} ${TEST_ENV} \ 163 ${RUN}cd ${WRKSRC} && cd ${d} && ${SETENV} ${TEST_ENV} \
160 ninja -j ${_MAKE_JOBS_N:U1} -C output test 164 ninja -j ${_MAKE_JOBS_N:U1} -C output test
161.endfor 165.endfor
162 166
163_VARGROUPS+= meson 167_VARGROUPS+= meson
164_PKG_VARS.meson= MESON_REQD 168_PKG_VARS.meson= MESON_REQD
165_PKG_VARS.meson+= CONFIGURE_DIRS 169_PKG_VARS.meson+= CONFIGURE_DIRS
166_PKG_VARS.meson+= BUILD_DIRS MAKE_ENV 170_PKG_VARS.meson+= BUILD_DIRS MAKE_ENV
167_PKG_VARS.meson+= TEST_DIRS TEST_ENV 171_PKG_VARS.meson+= TEST_DIRS TEST_ENV
168_PKG_VARS.meson+= INSTALL_DIRS INSTALL_ENV 172_PKG_VARS.meson+= INSTALL_DIRS INSTALL_ENV
169_PKG_VARS.meson+= LLVM_CONFIG_PATH 173_PKG_VARS.meson+= LLVM_CONFIG_PATH
170_PKG_VARS.meson+= USE_CMAKE MESON_ARGS 174_PKG_VARS.meson+= USE_CMAKE MESON_ARGS
171_USER_VARS.meson= MAKE_JOBS PKG_SYSCONFDIR 175_USER_VARS.meson= MAKE_JOBS PKG_SYSCONFDIR
172_USE_VARS.meson= TOOLS_PATH.false WRKSRC PREFIX PKGMANDIR 176_USE_VARS.meson= TOOLS_PATH.false WRKSRC PREFIX PKGMANDIR
173_USE_VARS.meson+= _MAKE_JOBS_N 177_USE_VARS.meson+= _MAKE_JOBS_N
174_DEF_VARS.meson= TOOL_DEPENDS 178_DEF_VARS.meson= TOOL_DEPENDS
175_LISTED_VARS.meson= *_ARGS *_DEPENDS 179_LISTED_VARS.meson= *_ARGS *_DEPENDS
176_SORTED_VARS.meson= *_ENV 180_SORTED_VARS.meson= *_ENV