xref: /openbsd/gnu/usr.bin/clang/Makefile.inc (revision 09467b48)
1# $OpenBSD: Makefile.inc,v 1.18 2019/11/26 10:58:23 sthen Exp $
2
3LLVM_SRCS?=	${.CURDIR}/../../../llvm
4
5.if ${COMPILER_VERSION:L} != "clang"
6CC=		clang
7CXX=		clang++
8.endif
9
10BOOTSTRAP_CLANG?=no
11.if ${BOOTSTRAP_CLANG} == "yes"
12CC=		egcc
13CXX=		eg++
14.endif
15
16DEBUG=
17NOPIE=
18
19CLANG_INCLUDES=	-I${LLVM_SRCS}/tools/clang/include
20LLDB_INCLUDES=	-I${LLVM_SRCS}/tools/lldb/include \
21		-I${LLVM_SRCS}/tools/lldb/source
22CPPFLAGS+=	-I${LLVM_SRCS}/include -I${.CURDIR}/../include -I${.OBJDIR} \
23		-I${.OBJDIR}/../include
24CPPFLAGS+=	-DNDEBUG
25
26# Disable some protections in the compiler to regain performance.
27.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" || \
28    ${MACHINE_ARCH} == "mips64" || ${MACHINE_ARCH} == "mips64el" || \
29    ${MACHINE_ARCH} == "aarch64"
30CXXFLAGS+=	-fno-ret-protector
31.endif
32.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
33CXXFLAGS+=	-mno-retpoline
34.endif
35
36# Omit frame pointer to improve performance.
37.if ${MACHINE_ARCH} == "mips64" || ${MACHINE_ARCH} == "mips64el"
38CXXFLAGS+=	-fomit-frame-pointer
39.endif
40
41# Compiling with -fno-pie doesn't work on powerpc.
42.if ${MACHINE_ARCH} == "powerpc"
43NOPIE_FLAGS=	-fPIE
44.endif
45
46CPPFLAGS+=	-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS \
47		-D__STDC_FORMAT_MACROS
48
49.if ${MACHINE_ARCH} == "arm"
50TRIPLE=		armv7-unknown-openbsd${OSREV}-gnueabi
51.else
52TRIPLE=		${MACHINE_ARCH}-unknown-openbsd${OSREV}
53.endif
54CPPFLAGS+=	-DLLVM_PREFIX=\"/usr\"
55.include "Makefile.arch"
56CPPFLAGS+=-DLLDB_DISABLE_PYTHON
57
58# upstream defaults
59CFLAGS+=	-ffunction-sections
60.if ${MACHINE_ARCH} != "powerpc"
61# XXX
62CFLAGS+=        -fdata-sections
63.endif
64CXXFLAGS+=	-std=c++11
65CXXFLAGS+=	-fvisibility-inlines-hidden
66CXXFLAGS+=	-fno-exceptions -fno-rtti
67# warnings (from upstream)
68CXXFLAGS+=	-Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual \
69		-Wno-missing-field-initializers -pedantic -Wno-long-long \
70		-Wdelete-non-virtual-dtor -Wno-comment
71
72LDADD+=-Wl,--start-group
73.for lib in ${LLVM_LIBDEPS}
74DPADD+=	${.OBJDIR}/../lib${lib}/lib${lib}.a
75LDADD+=	${.OBJDIR}/../lib${lib}/lib${lib}.a
76.endfor
77LDADD+=-Wl,--end-group
78
79.if ${MACHINE_ARCH} == "powerpc"
80LDFLAGS+=-Wl,-relax
81.endif
82