Makefile.inc revision 1.13
1#	$NetBSD: Makefile.inc,v 1.13 2013/08/19 03:55:12 matt Exp $
2
3ARMV6= ${CPUFLAGS:M-march=armv6*} ${CPUFLAGS:M-mcpu=arm11*}
4ARMV6+= ${CFLAGS:M-march=armv6*:} ${CFLAGS:M-mcpu=arm11*}
5ARMV6+= ${CPPFLAGS:M-march=armv6*:} ${CPPFLAGS:M-mcpu=arm11*}
6ARMV7= ${CPUFLAGS:M-march=armv7*} ${CPUFLAGS:M-mcpu=cortex*}
7ARMV7+= ${CFLAGS:M-march=armv7*:} ${CFLAGS:M-mcpu=cortex*}
8ARMV7+= ${CPPFLAGS:M-march=armv7*:} ${CPPFLAGS:M-mcpu=cortex*}
9.if empty(CPPFLAGS:M-D_STANDALONE) \
10    && empty(CFLAGS:M-march=*) && empty(CFLAGS:M-mcpu=*) \
11    && empty(CPPFLAGS:M-march=*) && empty(CPPFLAGS:M-mcpu=*) \
12    && empty(CPUFLAGS:M-march=*) && empty(CPUFLAGS:M-mcpu=*)
13ARMV6+= ${MACHINE_ARCH:Mearmv6*}
14ARMV7+= ${MACHINE_ARCH:Mearmv7*}
15.endif
16
17.if defined(LIB) && (${LIB} == "kern" || ${LIB} == "c" || ${LIB} == "pthread" \
18	|| ${LIB} == "rump")
19
20.if empty(ARMV6) && empty(ARMV7)
21SRCS.atomic+=	atomic_add_32_cas.c atomic_add_32_nv_cas.c \
22		atomic_and_32_cas.c atomic_and_32_nv_cas.c \
23		atomic_dec_32_cas.c atomic_dec_32_nv_cas.c \
24		atomic_inc_32_cas.c atomic_inc_32_nv_cas.c \
25		atomic_or_32_cas.c atomic_or_32_nv_cas.c \
26		atomic_swap_32_cas.c membar_ops_nop.c
27.else
28SRCS.atomic+=	atomic_add_32.S atomic_and_32.S atomic_cas_32.S
29SRCS.atomic+=	atomic_dec_32.S atomic_inc_32.S atomic_or_32.S
30SRCS.atomic+=	atomic_swap.S membar_ops.S
31SRCS.atomic+=	atomic_add_64.S atomic_and_64.S atomic_cas_64.S
32SRCS.atomic+=	atomic_dec_64.S atomic_inc_64.S atomic_or_64.S
33SRCS.atomic+=	atomic_swap_64.S
34.endif
35
36.endif
37
38.if defined(LIB) && (${LIB} == "c" || ${LIB} == "pthread" || ${LIB} == "rump")
39
40SRCS.atomic+=	atomic_simplelock.c
41.if empty(ARMV7)
42CPUFLAGS.atomic_simplelock.c+=	-marm
43.endif
44
45.endif
46
47.if defined(LIB) && (${LIB} == "c" || ${LIB} == "pthread")
48
49.if empty(ARMV6) && empty(ARMV7)
50SRCS.atomic+=	atomic_init_testset.c
51SRCS.atomic+=	atomic_cas_up.S
52CPPFLAGS+= -D__HAVE_ASM_ATOMIC_CAS_UP
53.else
54SRCS.atomic+=	atomic_init_cas.c
55.endif
56
57.endif
58
59.if !empty(ARMV6)
60.for f in ${SRCS.atomic:M*.S}
61CPUFLAGS.$f+=	-marm
62.endfor
63.endif
64
65SRCS+=	${SRCS.atomic}
66