> Date: Mon, 10 Apr 2017 21:42:11 +1000
> From: Jonathan Gray <[email protected]>
>
> On Mon, Apr 10, 2017 at 01:35:57PM +0200, Mark Kettenis wrote:
> > Looking into arm_neon.h. This header file is supposed to be generated
> > using the clang_tablegen tool, which is why we missed it.
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/src/gnu/usr.bin/clang/include/clang/intrin/Makefile,v
> retrieving revision 1.6
> diff -u -p -r1.6 Makefile
> --- Makefile 24 Jan 2017 08:44:47 -0000 1.6
> +++ Makefile 10 Apr 2017 11:39:51 -0000
> @@ -4,6 +4,8 @@
>
> LLVM_V= 4.0.0
> CLANG_INTR_INCDIR= /usr/lib/clang/${LLVM_V}/include
> +TBLGEN= ${.OBJDIR}/../../../clang-tblgen/clang-tblgen
> +CLANG_INC=${.CURDIR}/../../../../../llvm/tools/clang/include
>
> .PATH: ${.CURDIR}/../../../../../llvm/tools/clang/lib/Headers
>
> @@ -16,7 +18,8 @@ HEADERS= stdalign.h \
> module.modulemap \
>
> .if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "arm"
> -HEADERS+= arm_acle.h
> +HEADERS+= arm_acle.h \
> + arm_neon.h
> .elif ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
> HEADERS+= adxintrin.h \
> ammintrin.h \
> @@ -73,6 +76,10 @@ HEADERS+= altivec.h \
> .endif
>
> all: ${HEADERS}
> +
> +arm_neon.h: ${CLANG_INC}/clang/Basic/arm_neon.td
> + ${TBLGEN} -I${CLANG_INC} -gen-arm-neon \
> + -o ${.TARGET} ${.ALLSRC}
>
> depend:
> # Nothing here so far ...
>
Here's a slightly better version that removes the generated header
file when you do "make clean":
Index: gnu/usr.bin/clang/include/clang/intrin/Makefile
===================================================================
RCS file: /cvs/src/gnu/usr.bin/clang/include/clang/intrin/Makefile,v
retrieving revision 1.6
diff -u -p -r1.6 Makefile
--- gnu/usr.bin/clang/include/clang/intrin/Makefile 24 Jan 2017 08:44:47
-0000 1.6
+++ gnu/usr.bin/clang/include/clang/intrin/Makefile 10 Apr 2017 12:48:05
-0000
@@ -5,8 +5,12 @@
LLVM_V= 4.0.0
CLANG_INTR_INCDIR= /usr/lib/clang/${LLVM_V}/include
+TBLGEN= ${.OBJDIR}/../../../clang-tblgen/clang-tblgen
+CLANG_INC=${.CURDIR}/../../../../../llvm/tools/clang/include
+
.PATH: ${.CURDIR}/../../../../../llvm/tools/clang/lib/Headers
+GEN=
HEADERS= stdalign.h \
stdatomic.h \
stdnoreturn.h \
@@ -16,7 +20,8 @@ HEADERS= stdalign.h \
module.modulemap \
.if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "arm"
-HEADERS+= arm_acle.h
+GEN+= arm_neon.h
+HEADERS+= arm_acle.h ${GEN}
.elif ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
HEADERS+= adxintrin.h \
ammintrin.h \
@@ -78,12 +83,15 @@ depend:
# Nothing here so far ...
clean cleandir:
- # Nothing here so far ...
+ rm -f ${GEN}
install includes: ${HEADERS}
${INSTALL} -d -o ${SHAREOWN} -g ${SHAREGRP} -m ${DIRMODE} \
${DESTDIR}${CLANG_INTR_INCDIR}
${INSTALL} ${INSTALL_COPY} -m 444 ${.ALLSRC} \
${DESTDIR}${CLANG_INTR_INCDIR}
+
+arm_neon.h: ${CLANG_INC}/clang/Basic/arm_neon.td
+ ${TBLGEN} -gen-arm-neon -o ${.TARGET} ${.ALLSRC}
.include <bsd.obj.mk>