xref: /freebsd-13.1/lib/libomp/Makefile (revision 3eaa9deb)
13c6bb671SDimitry Andric# $FreeBSD$
23c6bb671SDimitry Andric
3022d9287SDimitry Andric.include <bsd.compiler.mk>
4022d9287SDimitry Andric
53c6bb671SDimitry AndricSHLIB_NAME=	libomp.so
63c6bb671SDimitry Andric
70b57cec5SDimitry AndricOMPSRC=		${SRCTOP}/contrib/llvm-project/openmp/runtime/src
83c6bb671SDimitry AndricITTSRC=		${OMPSRC}/thirdparty/ittnotify
93c6bb671SDimitry Andric.PATH:		${OMPSRC}
103c6bb671SDimitry Andric.PATH:		${ITTSRC}
113c6bb671SDimitry Andric
12*3eaa9debSDimitry AndricSRCS+=		ittnotify_static.cpp
133c6bb671SDimitry AndricSRCS+=		kmp_affinity.cpp
143c6bb671SDimitry AndricSRCS+=		kmp_alloc.cpp
153c6bb671SDimitry AndricSRCS+=		kmp_atomic.cpp
163c6bb671SDimitry AndricSRCS+=		kmp_barrier.cpp
173c6bb671SDimitry AndricSRCS+=		kmp_cancel.cpp
183c6bb671SDimitry AndricSRCS+=		kmp_csupport.cpp
193c6bb671SDimitry AndricSRCS+=		kmp_debug.cpp
203c6bb671SDimitry AndricSRCS+=		kmp_dispatch.cpp
213c6bb671SDimitry AndricSRCS+=		kmp_environment.cpp
223c6bb671SDimitry AndricSRCS+=		kmp_error.cpp
233c6bb671SDimitry AndricSRCS+=		kmp_ftn_cdecl.cpp
243c6bb671SDimitry AndricSRCS+=		kmp_ftn_extra.cpp
253c6bb671SDimitry AndricSRCS+=		kmp_global.cpp
263c6bb671SDimitry AndricSRCS+=		kmp_gsupport.cpp
273c6bb671SDimitry AndricSRCS+=		kmp_i18n.cpp
283c6bb671SDimitry AndricSRCS+=		kmp_io.cpp
293c6bb671SDimitry AndricSRCS+=		kmp_itt.cpp
303c6bb671SDimitry AndricSRCS+=		kmp_lock.cpp
313c6bb671SDimitry AndricSRCS+=		kmp_runtime.cpp
323c6bb671SDimitry AndricSRCS+=		kmp_sched.cpp
333c6bb671SDimitry AndricSRCS+=		kmp_settings.cpp
343c6bb671SDimitry AndricSRCS+=		kmp_str.cpp
353c6bb671SDimitry AndricSRCS+=		kmp_taskdeps.cpp
363c6bb671SDimitry AndricSRCS+=		kmp_tasking.cpp
373c6bb671SDimitry AndricSRCS+=		kmp_threadprivate.cpp
383c6bb671SDimitry AndricSRCS+=		kmp_utility.cpp
393c6bb671SDimitry AndricSRCS+=		kmp_version.cpp
403c6bb671SDimitry AndricSRCS+=		kmp_wait_release.cpp
413c6bb671SDimitry AndricSRCS+=		ompt-general.cpp
423c6bb671SDimitry AndricSRCS+=		z_Linux_asm.S
433c6bb671SDimitry AndricSRCS+=		z_Linux_util.cpp
443c6bb671SDimitry AndricINCS+=		omp.h
453c6bb671SDimitry Andric
463c6bb671SDimitry AndricWARNS?=		1
473c6bb671SDimitry Andric
483c6bb671SDimitry AndricCFLAGS+=	-D__STDC_CONSTANT_MACROS
493c6bb671SDimitry AndricCFLAGS+=	-D__STDC_FORMAT_MACROS
503c6bb671SDimitry AndricCFLAGS+=	-D__STDC_LIMIT_MACROS
513c6bb671SDimitry AndricCFLAGS+=	-I${.CURDIR}
523c6bb671SDimitry AndricCFLAGS+=	-I${OMPSRC}
533c6bb671SDimitry AndricCFLAGS+=	-I${ITTSRC}
543c6bb671SDimitry AndricCFLAGS+=	-ffunction-sections
553c6bb671SDimitry AndricCFLAGS+=	-fdata-sections
563c6bb671SDimitry AndricCXXFLAGS+=	-fvisibility-inlines-hidden
573c6bb671SDimitry AndricCXXFLAGS+=	-fno-exceptions
583c6bb671SDimitry AndricCXXFLAGS+=	-fno-rtti
59e8067928SEnji CooperCXXSTD=		c++11
603c6bb671SDimitry Andric
61022d9287SDimitry Andric.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 90000
62022d9287SDimitry Andric# When targeting i386, clang 9.0.0 produces a new warning about large atomic
63022d9287SDimitry Andric# operations "possibly incurring significant performance penalties", but there
64022d9287SDimitry Andric# is not much we can do about it.
65022d9287SDimitry AndricCWARNFLAGS+=	-Wno-atomic-alignment
66022d9287SDimitry Andric.endif
67022d9287SDimitry Andric
683c6bb671SDimitry AndricLDFLAGS+=	-Wl,--warn-shared-textrel
693c6bb671SDimitry AndricLDFLAGS+=	-Wl,--gc-sections
703c6bb671SDimitry AndricLDFLAGS+=	-Wl,-z,noexecstack
713c6bb671SDimitry AndricLDFLAGS+=	-Wl,-fini=__kmp_internal_end_fini
723c6bb671SDimitry AndricLDFLAGS+=	-Wl,-soname,libomp.so
733c6bb671SDimitry Andric
743c6bb671SDimitry AndricVERSION_MAP=	${OMPSRC}/exports_so.txt
753c6bb671SDimitry Andric
761d0078a2SDimitry AndricLIBADD+=	pthread
77db7591a8SDimitry AndricLIBADD+=	m
781d0078a2SDimitry Andric
79001ec17eSDimitry AndricSYMLINKS+=	${SHLIB_NAME} ${LIBDIR}/libgomp.so
80001ec17eSDimitry Andric
813c6bb671SDimitry Andric.include <bsd.lib.mk>
82