1b2f58791SDmitry Chagin# $FreeBSD$ 2b2f58791SDmitry Chagin 348bc159fSEd Maste.PATH: ${SRCTOP}/sys/compat/linux ${SRCTOP}/sys/${MACHINE}/linux 4b2f58791SDmitry Chagin 5b2f58791SDmitry ChaginVDSO= linux_vdso 6b2f58791SDmitry Chagin 7b2f58791SDmitry ChaginKMOD= linux64 8e16fe1c7SDmitry ChaginSRCS= linux_fork.c linux_dummy.c linux_file.c linux_event.c \ 9b2f58791SDmitry Chagin linux_futex.c linux_getcwd.c linux_ioctl.c linux_ipc.c \ 10d82de054SEdward Tomasz Napierala linux_machdep.c linux_misc.c linux_ptrace.c linux_signal.c \ 11b2f58791SDmitry Chagin linux_socket.c linux_stats.c linux_sysctl.c linux_sysent.c \ 12b2f58791SDmitry Chagin linux_sysvec.c linux_time.c linux_vdso.c linux_timer.c \ 13*6469bdcdSBrooks Davis opt_compat.h opt_inet6.h opt_posix.h opt_usb.h \ 1485059bc4SEd Maste vnode_if.h device_if.h bus_if.h \ 15b2f58791SDmitry Chagin linux_support.s 16fc2a8776SEd MasteDPSRCS= assym.inc linux_genassym.c 17b2f58791SDmitry Chagin 18fc2a8776SEd Maste# XXX: for assym.inc 19ce859641SBryan DrewerySRCS+= opt_kstack_pages.h opt_nfs.h opt_hwpmc_hooks.h 20ce859641SBryan Drewery.if ${MACHINE_CPUARCH} == "i386" 21ce859641SBryan DrewerySRCS+= opt_apic.h 22ce859641SBryan Drewery.endif 23b2f58791SDmitry Chagin 24b2f58791SDmitry ChaginCLEANFILES= linux_assym.h linux_genassym.o linux_locore.o 25b2f58791SDmitry Chagin 26b2f58791SDmitry ChaginOBJS= ${VDSO}.so 27b2f58791SDmitry Chagin 28b2f58791SDmitry Chaginlinux_assym.h: linux_genassym.o 29b2f58791SDmitry Chagin sh ${SYSDIR}/kern/genassym.sh linux_genassym.o > ${.TARGET} 30b2f58791SDmitry Chagin 31b2f58791SDmitry Chaginlinux_locore.o: linux_locore.s linux_assym.h 32b2f58791SDmitry Chagin ${CC} -x assembler-with-cpp -DLOCORE -shared -mcmodel=small \ 33621a9c54SEd Maste -pipe -I. -I${SYSDIR} -Werror -Wall -fno-common -fPIC -nostdinc \ 3448bc159fSEd Maste -Wl,-T${SRCTOP}/sys/${MACHINE}/linux/${VDSO}.lds.s \ 35621a9c54SEd Maste -Wl,-soname=${VDSO}.so.1,-warn-common -nostdlib \ 36b2f58791SDmitry Chagin ${.IMPSRC} -o ${.TARGET} 37b2f58791SDmitry Chagin 38b2f58791SDmitry Chagin${VDSO}.so: linux_locore.o 39c5d87f33SCraig Rodrigues ${OBJCOPY} --input-target binary --output-target elf64-x86-64-freebsd \ 40b2f58791SDmitry Chagin -S -g --binary-architecture i386:x86-64 linux_locore.o ${.TARGET} 411a8ea9fbSDmitry Chagin strip -N _binary_linux_locore_o_size ${.TARGET} 42b2f58791SDmitry Chagin 43fc2a8776SEd Mastelinux_support.o: assym.inc linux_assym.h 44b2f58791SDmitry Chagin ${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \ 45b2f58791SDmitry Chagin ${.IMPSRC} -o ${.TARGET} 46b2f58791SDmitry Chagin 47b2f58791SDmitry Chaginlinux_genassym.o: 480e8b3ab3SEd Maste ${CC} -c ${CFLAGS:N-flto:N-fno-common} ${.IMPSRC} 49b2f58791SDmitry Chagin 50b2f58791SDmitry Chagin.if !defined(KERNBUILDDIR) 51b2f58791SDmitry Chagin.if defined(DEBUG) 52b2f58791SDmitry ChaginCFLAGS+=-DDEBUG 53b2f58791SDmitry Chagin.endif 54b2f58791SDmitry Chagin.if defined(KTR) 55b2f58791SDmitry ChaginCFLAGS+=-DKTR 56b2f58791SDmitry Chagin.endif 57b2f58791SDmitry Chagin.endif 58b2f58791SDmitry Chagin 59b2f58791SDmitry Chagin.include <bsd.kmod.mk> 60