xref: /freebsd/sys/modules/linux64/Makefile (revision b2f587918da62b013eb5fc4fc36cf747a6394a3f)
1*b2f58791SDmitry Chagin# $FreeBSD$
2*b2f58791SDmitry Chagin
3*b2f58791SDmitry Chagin.PATH: ${.CURDIR}/../../compat/linux ${.CURDIR}/../../${MACHINE_ARCH}/linux
4*b2f58791SDmitry Chagin
5*b2f58791SDmitry ChaginVDSO=	linux_vdso
6*b2f58791SDmitry Chagin
7*b2f58791SDmitry ChaginKMOD=	linux64
8*b2f58791SDmitry ChaginSRCS=	linux_fork.c linux_dummy.c linux_file.c \
9*b2f58791SDmitry Chagin	linux_futex.c linux_getcwd.c linux_ioctl.c linux_ipc.c \
10*b2f58791SDmitry Chagin	linux_machdep.c linux_misc.c linux_signal.c \
11*b2f58791SDmitry Chagin	linux_socket.c linux_stats.c linux_sysctl.c linux_sysent.c \
12*b2f58791SDmitry Chagin	linux_sysvec.c linux_time.c linux_vdso.c linux_timer.c \
13*b2f58791SDmitry Chagin	opt_inet6.h opt_compat.h opt_kdtrace.h opt_posix.h opt_usb.h \
14*b2f58791SDmitry Chagin	vnode_if.h device_if.h bus_if.h assym.s \
15*b2f58791SDmitry Chagin	linux_support.s
16*b2f58791SDmitry ChaginDPSRCS=	linux_genassym.c
17*b2f58791SDmitry Chagin
18*b2f58791SDmitry Chagin# XXX: for assym.s
19*b2f58791SDmitry ChaginSRCS+=  opt_kstack_pages.h opt_nfs.h opt_apic.h opt_hwpmc_hooks.h
20*b2f58791SDmitry Chagin
21*b2f58791SDmitry ChaginCLEANFILES=	linux_assym.h linux_genassym.o linux_locore.o
22*b2f58791SDmitry Chagin
23*b2f58791SDmitry ChaginOBJS=	${VDSO}.so
24*b2f58791SDmitry Chagin
25*b2f58791SDmitry Chaginlinux_assym.h: linux_genassym.o
26*b2f58791SDmitry Chagin	sh ${SYSDIR}/kern/genassym.sh linux_genassym.o > ${.TARGET}
27*b2f58791SDmitry Chagin
28*b2f58791SDmitry Chaginlinux_locore.o: linux_locore.s linux_assym.h
29*b2f58791SDmitry Chagin	${CC} -x assembler-with-cpp -DLOCORE -shared -mcmodel=small	\
30*b2f58791SDmitry Chagin	-pipe -I. -I${SYSDIR} -Werror -Wall -fno-common -nostdinc 	\
31*b2f58791SDmitry Chagin	-Wl,-T${.CURDIR}/../../${MACHINE_CPUARCH}/linux/${VDSO}.lds.s	\
32*b2f58791SDmitry Chagin	-Wl,-soname=${VDSO}.so.1,-fPIC,-warn-common -nostdlib		\
33*b2f58791SDmitry Chagin	    ${.IMPSRC} -o ${.TARGET}
34*b2f58791SDmitry Chagin
35*b2f58791SDmitry Chagin${VDSO}.so: linux_locore.o
36*b2f58791SDmitry Chagin	${OBJCOPY} --input binary --output elf64-x86-64-freebsd		\
37*b2f58791SDmitry Chagin	    -S -g --binary-architecture i386:x86-64 linux_locore.o ${.TARGET}
38*b2f58791SDmitry Chagin
39*b2f58791SDmitry Chaginlinux_support.o: assym.s linux_assym.h
40*b2f58791SDmitry Chagin	${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
41*b2f58791SDmitry Chagin	    ${.IMPSRC} -o ${.TARGET}
42*b2f58791SDmitry Chagin
43*b2f58791SDmitry Chaginlinux_genassym.o:
44*b2f58791SDmitry Chagin	${CC} -c ${CFLAGS:N-fno-common} ${.IMPSRC}
45*b2f58791SDmitry Chagin
46*b2f58791SDmitry Chagin.if !defined(KERNBUILDDIR)
47*b2f58791SDmitry Chagin.if defined(DEBUG)
48*b2f58791SDmitry ChaginCFLAGS+=-DDEBUG
49*b2f58791SDmitry Chagin.endif
50*b2f58791SDmitry Chagin.if defined(KTR)
51*b2f58791SDmitry ChaginCFLAGS+=-DKTR
52*b2f58791SDmitry Chagin.endif
53*b2f58791SDmitry Chagin.endif
54*b2f58791SDmitry Chagin
55*b2f58791SDmitry Chagin.include <bsd.kmod.mk>
56