1SubDir HAIKU_TOP src system kernel ; 2 3{ 4 local defines = 5 HAIKU_ARCH=\\\"$(TARGET_ARCH)\\\" 6 ; 7 8 defines = [ FDefines $(defines) ] ; 9 SubDirCcFlags $(defines) ; 10 SubDirC++Flags $(defines) ; 11} 12 13UsePrivateHeaders shared ; 14UsePrivateHeaders runtime_loader ; 15 16AddResources kernel_$(TARGET_ARCH) : kernel.rdef ; 17 18KernelMergeObject kernel_core.o : 19 boot_item.cpp 20 commpage.cpp 21 condition_variable.cpp 22 cpu.c 23 elf.cpp 24 heap.c 25 image.c 26 int.c 27 kernel_daemon.c 28 linkhack.c 29 lock.c 30 main.c 31 module.cpp 32 Notifications.cpp 33 port.cpp 34 real_time_clock.c 35 scheduler.cpp 36 sem.cpp 37 shutdown.c 38 signal.cpp 39 system_info.c 40 smp.c 41 syscalls.cpp 42 team.cpp 43 thread.cpp 44 timer.c 45 wait_for_objects.cpp 46 47 : $(TARGET_KERNEL_PIC_CCFLAGS) 48; 49 50# We need to specify the dependency on the generated syscalls files explicitly. 51Includes [ FGristFiles syscalls.cpp ] 52 : <syscalls>syscall_dispatcher.h <syscalls>syscall_table.h ; 53 54KernelLd linkhack.so : 55 <$(SOURCE_GRIST)>linkhack.o 56 : 57 : 58 -shared -Bdynamic 59; 60 61KernelLd kernel_$(TARGET_ARCH) : 62 kernel_core.o 63 kernel_fs.o 64 kernel_vm.o 65 kernel_cache.o 66 kernel_device_manager.o 67 kernel_disk_device_manager.o 68 kernel_util.o 69 kernel_messaging.o 70 kernel_debug.o 71 kernel_slab.o 72 73 lib$(TARGET_ARCH).a 74 kernel_platform_$(TARGET_BOOT_PLATFORM).o 75 76 linkhack.so 77 78 # kernel parts borrowed from libroot and others 79 kernel_os_main.o 80 kernel_os_arch_$(TARGET_ARCH).o 81 kernel_posix.o 82 kernel_posix_arch_$(TARGET_ARCH).o 83 kernel_misc.o 84 85 $(HAIKU_STATIC_LIBSUPC++) 86 87 : $(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/kernel.ld 88 : -Bdynamic -export-dynamic -dynamic-linker /foo/bar 89 $(TARGET_KERNEL_PIC_LINKFLAGS) 90 : 91; 92 93KernelLd kernel.so : 94 kernel_core.o 95 kernel_fs.o 96 kernel_vm.o 97 kernel_cache.o 98 kernel_device_manager.o 99 kernel_disk_device_manager.o 100 kernel_util.o 101 kernel_messaging.o 102 kernel_debug.o 103 kernel_slab.o 104 105 lib$(TARGET_ARCH).a 106 kernel_platform_$(TARGET_BOOT_PLATFORM).o 107 108 linkhack.so 109 110 # kernel libroot parts 111 kernel_os_main.o 112 kernel_os_arch_$(TARGET_ARCH).o 113 kernel_posix.o 114 kernel_posix_arch_$(TARGET_ARCH).o 115 116 $(HAIKU_STATIC_LIBSUPC++) 117 118 : $(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/kernel.ld 119 : -Bdynamic -shared -export-dynamic -dynamic-linker /foo/bar 120 $(TARGET_KERNEL_PIC_LINKFLAGS) 121; 122 123NotFile kernel ; 124Depends kernel : kernel_$(TARGET_ARCH) ; 125Depends kernel.so : kernel ; 126 # kernel.so will be rebuilt with the kernel 127 128# propagate HAIKU_INCLUDE_IN_IMAGE variable from kernel to kernel_$(TARGET_ARCH) 129HAIKU_INCLUDE_IN_IMAGE on kernel_$(TARGET_ARCH) 130 = [ on kernel return $(HAIKU_INCLUDE_IN_IMAGE) ] ; 131 132# Copy kernel and update the copy's revision section. We link everything 133# against the original, but the copy will end up on the disk image (this way 134# we avoid unnecessary dependencies). The copy will be located in a subdirectory. 135if $(TARGET_PLATFORM) = haiku { 136 MakeLocate <revisioned>kernel_$(TARGET_ARCH) 137 : [ FDirName $(TARGET_DEBUG_$(DEBUG)_LOCATE_TARGET) revisioned ] ; 138 CopySetHaikuRevision <revisioned>kernel_$(TARGET_ARCH) 139 : kernel_$(TARGET_ARCH) ; 140} 141 142 143SubInclude HAIKU_TOP src system kernel arch ; 144SubInclude HAIKU_TOP src system kernel cache ; 145SubInclude HAIKU_TOP src system kernel device_manager ; 146SubInclude HAIKU_TOP src system kernel debug ; 147SubInclude HAIKU_TOP src system kernel disk_device_manager ; 148SubInclude HAIKU_TOP src system kernel fs ; 149SubInclude HAIKU_TOP src system kernel lib ; 150SubInclude HAIKU_TOP src system kernel messaging ; 151SubInclude HAIKU_TOP src system kernel slab ; 152SubInclude HAIKU_TOP src system kernel util ; 153SubInclude HAIKU_TOP src system kernel vm ; 154 155if $(TARGET_BOOT_PLATFORM) { 156 SubInclude HAIKU_TOP src system kernel platform $(TARGET_BOOT_PLATFORM) ; 157} 158