summaryrefslogtreecommitdiffstats
path: root/sys/modules/cloudabi32/Makefile
blob: 61e5142824e763a70558763ec130fd5253e0728c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# $FreeBSD$

SYSDIR?=${.CURDIR}/../..

.PATH: ${SYSDIR}/compat/cloudabi32
.PATH: ${SYSDIR}/${MACHINE_CPUARCH}/cloudabi32
.PATH: ${SYSDIR}/${MACHINE}/cloudabi32

KMOD=	cloudabi32
SRCS=	cloudabi32_fd.c cloudabi32_module.c cloudabi32_poll.c \
	cloudabi32_sock.c cloudabi32_syscalls.c cloudabi32_sysent.c \
	cloudabi32_sysvec.c cloudabi32_thread.c

OBJS=	cloudabi32_vdso_blob.o
CLEANFILES=cloudabi32_vdso.o

.if ${MACHINE_CPUARCH} == "amd64"
VDSO_SRCS=${SYSDIR}/contrib/cloudabi/cloudabi_vdso_i686_on_64bit.S
OUTPUT_TARGET=elf64-x86-64-freebsd
BINARY_ARCHITECTURE=i386
.elif ${MACHINE_ARCH} == "armv6"
VDSO_SRCS=${SYSDIR}/contrib/cloudabi/cloudabi_vdso_armv6.S
OUTPUT_TARGET=elf32-littlearm
BINARY_ARCHITECTURE=arm
.elif ${MACHINE_CPUARCH} == "i386"
VDSO_SRCS=${SYSDIR}/contrib/cloudabi/cloudabi_vdso_i686.S
OUTPUT_TARGET=elf32-i386-freebsd
BINARY_ARCHITECTURE=i386
.endif

cloudabi32_vdso.o: ${VDSO_SRCS}
	${CC} -x assembler-with-cpp -m32 -shared -nostdinc -nostdlib \
	    -Wl,-T${SYSDIR}/compat/cloudabi/cloudabi_vdso.lds \
	    ${VDSO_SRCS} -o ${.TARGET}

cloudabi32_vdso_blob.o: cloudabi32_vdso.o
	${OBJCOPY} --input-target binary \
	    --output-target ${OUTPUT_TARGET} \
	    --binary-architecture ${BINARY_ARCHITECTURE} \
	    cloudabi32_vdso.o ${.TARGET}

.include <bsd.kmod.mk>
OpenPOWER on IntegriCloud