150477Speter# $FreeBSD$ 29313Ssos 3211690Simp.if ${MACHINE_CPUARCH} == "amd64" 4161312SnetchildSFX= 32 5205014SnwhitehornCFLAGS+=-DCOMPAT_FREEBSD32 -DCOMPAT_LINUX32 6161312Snetchild.endif 770711Sobrien 8211690Simp.PATH: ${.CURDIR}/../../compat/linux ${.CURDIR}/../../${MACHINE_CPUARCH}/linux${SFX} 9161312Snetchild 10293514SdchaginVDSO= linux${SFX}_vdso 11293514Sdchagin 1240440SpeterKMOD= linux 13293546SdchaginSRCS= linux_fork.c linux${SFX}_dummy.c linux_file.c linux_event.c \ 14255675Srdivacky linux_futex.c linux_getcwd.c linux_ioctl.c linux_ipc.c \ 15293527Sdchagin linux${SFX}_machdep.c linux_misc.c linux_signal.c \ 16163379Snetchild linux_socket.c linux_stats.c linux_sysctl.c linux${SFX}_sysent.c \ 17293527Sdchagin linux${SFX}_sysvec.c linux_uid16.c linux_time.c \ 18293514Sdchagin linux_timer.c linux_vdso.c \ 19235078Suqs opt_inet6.h opt_compat.h opt_kdtrace.h opt_posix.h opt_usb.h \ 20293514Sdchagin vnode_if.h device_if.h bus_if.h assym.s \ 21293514Sdchagin linux${SFX}_support.s 22276429SneelDPSRCS= linux${SFX}_genassym.c 239313Ssos 24169895Skib# XXX: for assym.s 25192852SdesSRCS+= opt_kstack_pages.h opt_nfs.h opt_compat.h opt_hwpmc_hooks.h 26211690Simp.if ${MACHINE_CPUARCH} == "i386" 27192855SdesSRCS+= opt_apic.h 28192855Sdes.endif 29169895Skib 30293514SdchaginOBJS= ${VDSO}.so 31169895Skib 32211690Simp.if ${MACHINE_CPUARCH} == "i386" 33302964SdchaginSRCS+= linux_ptrace.c imgact_linux.c linux_util.c linux_mib.c linux_mmap.c \ 34293575Sdchagin linux_emul.c opt_cpu.h linux.c 3565547Sobrien.endif 3665547Sobrien 37293527Sdchagin.if ${MACHINE_CPUARCH} == "i386" 3891072SdesEXPORT_SYMS= 3991072SdesEXPORT_SYMS+= linux_emul_path 4091072SdesEXPORT_SYMS+= linux_get_osname 4191072SdesEXPORT_SYMS+= linux_get_osrelease 4291072SdesEXPORT_SYMS+= linux_ioctl_register_handler 4391072SdesEXPORT_SYMS+= linux_ioctl_unregister_handler 44293527Sdchagin.endif 4591072Sdes 46293514SdchaginCLEANFILES= linux${SFX}_assym.h linux${SFX}_genassym.o linux${SFX}_locore.o 4714333Speter 48161312Snetchildlinux${SFX}_assym.h: linux${SFX}_genassym.o 49293514Sdchagin sh ${SYSDIR}/kern/genassym.sh linux${SFX}_genassym.o > ${.TARGET} 5037461Sbde 51293514Sdchaginlinux${SFX}_locore.o: linux${SFX}_assym.h assym.s 52293514Sdchagin ${CC} -x assembler-with-cpp -DLOCORE -m32 -shared -s \ 53293514Sdchagin -pipe -I. -I${SYSDIR} -Werror -Wall -fno-common -nostdinc -nostdlib \ 54293514Sdchagin -fno-omit-frame-pointer \ 55293514Sdchagin -Wl,-T${.CURDIR}/../../${MACHINE_CPUARCH}/linux${SFX}/${VDSO}.lds.s \ 56293514Sdchagin -Wl,-soname=${VDSO}.so.1,--eh-frame-hdr,-fPIC,-warn-common \ 5770711Sobrien ${.IMPSRC} -o ${.TARGET} 5814333Speter 59293514Sdchaginlinux${SFX}_support.o: linux${SFX}_assym.h assym.s 60169895Skib ${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \ 61169895Skib ${.IMPSRC} -o ${.TARGET} 62169895Skib 63293514Sdchagin.if ${MACHINE_CPUARCH} == "amd64" 64293514Sdchagin${VDSO}.so: linux${SFX}_locore.o 65293599Sdchagin ${OBJCOPY} --input-target binary --output-target elf64-x86-64-freebsd \ 66293514Sdchagin --binary-architecture i386 linux${SFX}_locore.o ${.TARGET} 67293514Sdchagin.else 68293514Sdchagin${VDSO}.so: linux${SFX}_locore.o 69293599Sdchagin ${OBJCOPY} --input-target binary --output-target elf32-i386-freebsd \ 70293514Sdchagin --binary-architecture i386 linux${SFX}_locore.o ${.TARGET} 71293514Sdchagin.endif 72293514Sdchagin 73293514Sdchaginlinux${SFX}_genassym.o: 7489181Smsmith ${CC} -c ${CFLAGS:N-fno-common} ${.IMPSRC} 7514333Speter 76151350Syar.if !defined(KERNBUILDDIR) 77110295Sumeopt_inet6.h: 78182668Simp echo "#define INET6 1" > ${.TARGET} 79191877Sdchagin.if defined(KTR) 80191877SdchaginCFLAGS+= -DKTR 81151350Syar.endif 82293514Sdchagin.if defined(DEBUG) 83293514SdchaginCFLAGS+= -DDEBUG 84191877Sdchagin.endif 85293514Sdchagin.endif 86110295Sume 8760966Speter.include <bsd.kmod.mk> 88