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