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