Serenity Operating System
1OBJS = \
2 ../AK/FileSystemPath.o \
3 ../AK/FlyString.o \
4 ../AK/JsonParser.o \
5 ../AK/JsonValue.o \
6 ../AK/LogStream.o \
7 ../AK/String.o \
8 ../AK/StringBuilder.o \
9 ../AK/StringImpl.o \
10 ../AK/StringUtils.o \
11 ../AK/StringView.o \
12 ../Libraries/LibELF/ELFImage.o \
13 ../Libraries/LibELF/ELFLoader.o \
14 ../Libraries/LibBareMetal/Output/Console.o \
15 ../Libraries/LibBareMetal/Output/kprintf.o \
16 ../Libraries/LibBareMetal/StdLib.o \
17 Arch/i386/CPU.o \
18 CommandLine.o \
19 Interrupts/InterruptManagement.o \
20 Interrupts/APIC.o \
21 Interrupts/IOAPIC.o \
22 Interrupts/PIC.o \
23 Interrupts/GenericInterruptHandler.o \
24 Interrupts/UnhandledInterruptHandler.o \
25 Interrupts/SpuriousInterruptHandler.o \
26 Interrupts/IRQHandler.o \
27 Interrupts/SharedIRQHandler.o \
28 CMOS.o \
29 Time/PIT.o \
30 Time/TimeManagement.o \
31 Time/HardwareTimer.o \
32 Time/RTC.o \
33 Time/HPET.o \
34 Time/HPETComparator.o \
35 Devices/BXVGADevice.o \
36 Devices/BlockDevice.o \
37 Devices/CharacterDevice.o \
38 Devices/Device.o \
39 Devices/DiskPartition.o \
40 Devices/FullDevice.o \
41 Devices/GPTPartitionTable.o \
42 Devices/EBRPartitionTable.o \
43 Devices/KeyboardDevice.o \
44 Devices/MBRPartitionTable.o \
45 Devices/MBVGADevice.o \
46 Devices/NullDevice.o \
47 Devices/PATAChannel.o \
48 Devices/PATADiskDevice.o \
49 Devices/PCSpeaker.o \
50 Devices/PS2MouseDevice.o \
51 Devices/RandomDevice.o \
52 Devices/SB16.o \
53 Devices/SerialDevice.o \
54 Devices/ZeroDevice.o \
55 Devices/VMWareBackdoor.o \
56 DoubleBuffer.o \
57 FileSystem/Custody.o \
58 FileSystem/DevPtsFS.o \
59 FileSystem/Ext2FileSystem.o \
60 FileSystem/FileBackedFileSystem.o \
61 FileSystem/FIFO.o \
62 FileSystem/File.o \
63 FileSystem/FileDescription.o \
64 FileSystem/FileSystem.o \
65 FileSystem/Inode.o \
66 FileSystem/InodeFile.o \
67 FileSystem/InodeWatcher.o \
68 FileSystem/ProcFS.o \
69 FileSystem/TmpFS.o \
70 FileSystem/VirtualFileSystem.o \
71 Heap/SlabAllocator.o \
72 Heap/kmalloc.o \
73 KBufferBuilder.o \
74 KSyms.o \
75 Lock.o \
76 Net/E1000NetworkAdapter.o \
77 Net/IPv4Socket.o \
78 Net/LocalSocket.o \
79 Net/LoopbackAdapter.o \
80 Net/NetworkAdapter.o \
81 Net/NetworkTask.o \
82 Net/RTL8139NetworkAdapter.o \
83 Net/Routing.o \
84 Net/Socket.o \
85 Net/TCPSocket.o \
86 Net/UDPSocket.o \
87 PCI/Access.o \
88 PCI/IOAccess.o \
89 PCI/MMIOAccess.o \
90 PCI/Initializer.o \
91 PCI/Device.o \
92 PerformanceEventBuffer.o \
93 Process.o \
94 ThreadTracer.o \
95 Profiling.o \
96 RTC.o \
97 Random.o \
98 Scheduler.o \
99 SharedBuffer.o \
100 Syscall.o \
101 Tasks/FinalizerTask.o \
102 Tasks/SyncTask.o \
103 TimerQueue.o \
104 TTY/MasterPTY.o \
105 TTY/PTYMultiplexer.o \
106 TTY/SlavePTY.o \
107 TTY/TTY.o \
108 TTY/VirtualConsole.o \
109 Thread.o \
110 VM/AnonymousVMObject.o \
111 VM/ContiguousVMObject.o \
112 VM/InodeVMObject.o \
113 VM/MemoryManager.o \
114 VM/PageDirectory.o \
115 VM/PhysicalPage.o \
116 VM/PhysicalRegion.o \
117 VM/PurgeableVMObject.o \
118 VM/PrivateInodeVMObject.o \
119 VM/ProcessPagingScope.o \
120 VM/RangeAllocator.o \
121 VM/Region.o \
122 VM/SharedInodeVMObject.o \
123 VM/VMObject.o \
124 ACPI/DMIDecoder.o \
125 ACPI/DynamicParser.o \
126 ACPI/Initialize.o \
127 ACPI/MultiProcessorParser.o \
128 ACPI/Parser.o \
129 WaitQueue.o \
130 init.o
131
132OBJ_SUFFIX = .kernel
133
134MODULE_OBJS = TestModule$(OBJ_SUFFIX).o
135
136EXTRA_OBJS = Arch/i386/Boot/boot.ao
137
138KERNEL = 1
139
140PROGRAM = kernel
141
142SUBPROJECT_CXXFLAGS += -pie -fPIE -ffreestanding -fbuiltin -mno-80387 -mno-mmx -mno-sse -mno-sse2 -fno-asynchronous-unwind-tables
143SUBPROJECT_CXXFLAGS += -nostdlib -nostdinc -nostdinc++
144SUBPROJECT_CXXFLAGS += -I../Toolchain/Local/i686-pc-serenity/include/c++/9.3.0/
145SUBPROJECT_CXXFLAGS += -I../Toolchain/Local/i686-pc-serenity/include/c++/9.3.0/i686-pc-serenity/
146
147LDFLAGS += -Wl,-T linker.ld -nostdlib -lgcc -lstdc++
148
149all: $(PROGRAM) $(MODULE_OBJS) kernel.map
150
151kernel.map: kernel
152 @echo "MKMAP $@"
153 $(QUIET) sh mkmap.sh
154
155EXTRA_CLEAN += kernel.map
156
157install:
158 mkdir -p $(SERENITY_BASE_DIR)/Root/usr/include/Kernel/
159 cp *.h $(SERENITY_BASE_DIR)/Root/usr/include/Kernel/
160
161include ../Makefile.common