5 include $(PATH_TO_TOP
)/config
11 TARGET_NAME
= ntoskrnl
13 TARGET_BOOTSTRAP
= yes
24 LINKER_SCRIPT
:= ntoskrnl.lnk
28 OBJECTS_KDBG
:= dbg
/kdb.o dbg
/kdb_cli.o dbg
/kdb_expr.o dbg
/kdb_keyboard.o \
29 dbg
/kdb_serial.o dbg
/kdb_string.o dbg
/rdebug.o dbg
/i386
/kdb_help.o \
30 dbg
/i386
/i386-dis.o dbg
/i386
/longjmp.o dbg
/i386
/setjmp.o
35 ifeq ($(DBG_OR_KDBG
), 1)
36 OBJECTS_KDBG
:= $(OBJECTS_KDBG
) dbg
/kdb_symbols.o
39 TARGET_ASFLAGS
= -I.
/include
40 TARGET_CFLAGS
= -I.
/include $(CFLAGS_KDBG
) -Wall
-Werror
$(CFLAGS_OPT
)
42 # require os code to explicitly request A/W version of structs/functions
43 TARGET_CFLAGS
+= -D_DISABLE_TIDENTS
45 # 3GB User Mode Memory Space support
47 TARGET_CFLAGS
+= -D__3GB__
48 TARGET_BASE
= 0xC0000000
50 TARGET_BASE
= 0x80000000
54 TARGET_CFLAGS
+= -DDBG
57 # enable thread event pair features (NT4 only!)
58 # TARGET_CFLAGS += -D_ENABLE_THRDEVTPAIR
61 # Javascript extension for kdb
64 OBJECTS_PATH
= objects
67 # Architecture specific Makefile
68 # Defines $(OBJECTS_ARCH)
70 include Makefile.
$(ARCH
)
72 # Run-Time Library (Rtl)
91 OBJECTS_RTL
:= $(filter-out $(RTL_EXCLUDE_FILTER
), $(OBJECTS_RTL
))
117 # Memory Manager (Mm)
207 # Object Manager (Ob)
219 # Process Manager (Ps)
236 # Executive Subsystem (Ex)
265 # Installable File System Run-Time Library (FsRtl)
292 # Configuration Manager (Registry)
300 # Debugger Support (Dbg)
317 # Local Procedure Call (Lpc)
331 # Power Management (Po)
344 # Kernel Debugger Support (Kd)
356 DEP_OBJECTS
:= $(OBJECTS_MM
) $(OBJECTS_ARCH
) \
357 $(OBJECTS_IO
) $(OBJECTS_KE
) $(OBJECTS_OB
) \
358 $(OBJECTS_PS
) $(OBJECTS_EX
) $(OBJECTS_CC
) $(OBJECTS_FS
) $(OBJECTS_SE
) \
359 $(OBJECTS_DBG
) $(OBJECTS_CM
) $(OBJECTS_LDR
) $(OBJECTS_LPC
) \
360 $(OBJECTS_PO
) $(OBJECTS_KD
) $(OBJECTS_RTL
) $(OBJECTS_INBV
)
362 TAG_OBJECTS
:= $(join $(dir $(DEP_OBJECTS
)),$(patsubst %.o
, .
%.TAG
, $(notdir $(DEP_OBJECTS
))))
364 TARGET_PCH
= include/ntoskrnl.h
372 mkdir
$(OBJECTS_PATH
)
374 $(OBJECTS_RESOURCE
): $(TARGET_NAME
).rc bugcodes.rc
$(PATH_TO_TOP
)/include/reactos
/resource.h
376 # Note: arch.o MUST be the first file!!!
398 EXTRA_OBJECTS
= $(PATH_TO_TOP
)/include/reactos
/bugcodes.h
400 TARGET_OBJECTS
= $(EXTRA_OBJECTS
) $(OBJECTS
)
403 $(DDK_PATH_LIB
)/libhal.a \
404 $(SDK_PATH_LIB
)/librtl.a \
405 $(SDK_PATH_LIB
)/librossym.a \
406 $(SDK_PATH_LIB
)/libstring.a \
407 $(SDK_PATH_LIB
)/librosrtl.a \
408 $(SDK_PATH_LIB
)/libpseh.a \
409 $(SDK_PATH_LIB
)/libwdmguid.a \
410 $(PATH_TO_TOP
)/drivers
/lib
/csq
/csq.o
413 -Wl
,-T
,ntoskrnl.lnk \
414 -Wl
,--subsystem
,native \
415 -Wl
,--image-base
,$(TARGET_BASE
) \
416 -Wl
,--file-alignment
,0x1000 \
417 -Wl
,--section-alignment
,0x1000 \
418 -Wl
,--entry
,_NtProcessStartup \
424 etags
$(addprefix -i
, $(TAG_OBJECTS
))
426 GENERATED_HEADER_FILES
:= $(PATH_TO_TOP
)/include/reactos
/bugcodes.h
428 $(PATH_TO_TOP
)/include/reactos
/bugcodes.h bugcodes.rc
: ntoskrnl.mc
430 -H
$(PATH_TO_TOP
)/include/reactos
/bugcodes.h \
435 $(PATH_TO_TOP
)/include/reactos
/bugcodes.h \
436 $(DEP_OBJECTS
) $(DEP_FILES
) MSG00409.bin bugcodes.rc
439 ke
/main.o
: ke
/main.c
$(PATH_TO_TOP
)/include/reactos
/buildno.h
441 $(TARGET_PCH
): $(PATH_TO_TOP
)/include/reactos
/bugcodes.h
459 include $(PATH_TO_TOP
)/rules.mak
461 include $(TOOLS_PATH
)/helper.mk
463 include $(TOOLS_PATH
)/depend.mk