1 1.19.2.2 pgoyette # $NetBSD: Makefile,v 1.19.2.2 2019/01/26 21:59:46 pgoyette Exp $ 2 1.1 mrg 3 1.1 mrg # build GCC's libgomp, so that -fopenmp works. 4 1.1 mrg 5 1.3 mrg # XXX 6 1.3 mrg NOLINT= # defined 7 1.3 mrg 8 1.1 mrg .include <bsd.own.mk> 9 1.4 mrg 10 1.4 mrg .if !defined(NO_LIBGOMP) # { 11 1.4 mrg 12 1.12 mrg DIST= ${GCCDIST} 13 1.1 mrg 14 1.1 mrg LIB= gomp 15 1.1 mrg SRCS= \ 16 1.1 mrg alloc.c \ 17 1.1 mrg barrier.c \ 18 1.1 mrg critical.c \ 19 1.1 mrg env.c \ 20 1.1 mrg error.c \ 21 1.1 mrg iter.c \ 22 1.1 mrg iter_ull.c \ 23 1.1 mrg loop.c \ 24 1.1 mrg loop_ull.c \ 25 1.1 mrg ordered.c \ 26 1.1 mrg parallel.c \ 27 1.1 mrg sections.c \ 28 1.1 mrg single.c \ 29 1.1 mrg task.c \ 30 1.1 mrg team.c \ 31 1.1 mrg work.c \ 32 1.1 mrg lock.c \ 33 1.1 mrg mutex.c \ 34 1.1 mrg proc.c \ 35 1.1 mrg sem.c \ 36 1.1 mrg bar.c \ 37 1.1 mrg ptrlock.c \ 38 1.1 mrg time.c \ 39 1.1 mrg fortran.c \ 40 1.15 mrg affinity.c \ 41 1.15 mrg target.c \ 42 1.15 mrg splay-tree.c \ 43 1.15 mrg libgomp-plugin.c \ 44 1.15 mrg oacc-parallel.c \ 45 1.15 mrg oacc-host.c \ 46 1.15 mrg oacc-init.c \ 47 1.15 mrg oacc-mem.c \ 48 1.15 mrg oacc-async.c \ 49 1.15 mrg oacc-plugin.c \ 50 1.18 mrg oacc-cuda.c \ 51 1.18 mrg priority_queue.c 52 1.15 mrg 53 1.1 mrg 54 1.8 matt GOMP_MACHINE_ARCH?= ${MACHINE_ARCH:S/earmv5/earm/} 55 1.3 mrg ARCHDIR= ${.CURDIR}/arch/${GOMP_MACHINE_ARCH} 56 1.2 mrg 57 1.1 mrg CPPFLAGS+= \ 58 1.1 mrg -DHAVE_CONFIG_H \ 59 1.1 mrg -I${DIST}/libgomp \ 60 1.1 mrg -I${DIST}/libgomp/config/posix \ 61 1.1 mrg -I${DIST}/libgcc \ 62 1.15 mrg -I${DIST}/include \ 63 1.3 mrg -I${ARCHDIR} 64 1.1 mrg CFLAGS+=-pthread 65 1.1 mrg 66 1.6 joerg CWARNFLAGS.clang+= -Wno-conversion 67 1.6 joerg 68 1.11 mrg # libgomp is 1.0 is in GCC 4.5, and 1.1 in 4.8 since it added more symbols 69 1.15 mrg # XXXGCC5 -- marking 1.2 for GCC 5.3 for now 70 1.19 mrg # XXXGCC6 -- marking 1.3 for GCC 6 for now 71 1.1 mrg SHLIB_MAJOR= 1 72 1.19 mrg SHLIB_MINOR= 3 73 1.1 mrg 74 1.1 mrg LDFLAGS+= -Wl,--version-script,${DIST}/libgomp/libgomp.map 75 1.1 mrg 76 1.9 matt .if ${GOMP_MACHINE_ARCH} == ${MACHINE_ARCH:S/earmv5/earm/} 77 1.3 mrg # This is where GCC looks for it. 78 1.3 mrg FILES= libgomp.spec 79 1.3 mrg FILESDIR= ${LIBDIR} 80 1.4 mrg 81 1.15 mrg INCS= omp.h openacc.h 82 1.19.2.1 pgoyette INCSDIR= ${GCC_INCSDIR} 83 1.3 mrg .endif 84 1.3 mrg 85 1.7 nonaka .else # } else { 86 1.7 nonaka libinstall:: 87 1.4 mrg .endif # } 88 1.4 mrg 89 1.4 mrg .include <bsd.lib.mk> 90 1.5 tron 91 1.16 christos COPTS+= -Wno-stack-protector -Wno-missing-prototypes 92 1.16 christos COPTS.oacc-mem.c+= -Wno-pointer-arith 93 1.13 tron 94 1.19.2.2 pgoyette COPTS.lock.c+= -Wno-error=incompatible-pointer-types 95 1.19.2.2 pgoyette 96 1.19.2.2 pgoyette 97 1.12 mrg .PATH: ${ARCHDIR} ${DIST}/libgomp ${DIST}/libgomp/config/posix 98