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