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 dbg
/profile.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
))
119 # Memory Manager (Mm)
209 # Object Manager (Ob)
220 # Process Manager (Ps)
237 # Executive Subsystem (Ex)
267 # Installable File System Run-Time Library (FsRtl)
294 # Configuration Manager (Registry)
302 # Debugger Support (Dbg)
319 # Local Procedure Call (Lpc)
333 # Power Management (Po)
346 # Kernel Debugger Support (Kd)
358 DEP_OBJECTS
:= $(OBJECTS_MM
) $(OBJECTS_ARCH
) \
359 $(OBJECTS_IO
) $(OBJECTS_KE
) $(OBJECTS_OB
) \
360 $(OBJECTS_PS
) $(OBJECTS_EX
) $(OBJECTS_CC
) $(OBJECTS_FS
) $(OBJECTS_SE
) \
361 $(OBJECTS_DBG
) $(OBJECTS_CM
) $(OBJECTS_LDR
) $(OBJECTS_LPC
) \
362 $(OBJECTS_PO
) $(OBJECTS_KD
) $(OBJECTS_RTL
) $(OBJECTS_INBV
)
364 TAG_OBJECTS
:= $(join $(dir $(DEP_OBJECTS
)),$(patsubst %.o
, .
%.TAG
, $(notdir $(DEP_OBJECTS
))))
366 TARGET_PCH
= include/ntoskrnl.h
374 mkdir
$(OBJECTS_PATH
)
376 $(OBJECTS_RESOURCE
): $(TARGET_NAME
).rc bugcodes.rc
$(PATH_TO_TOP
)/include/reactos
/resource.h
378 # Note: arch.o MUST be the first file!!!
400 EXTRA_OBJECTS
= $(PATH_TO_TOP
)/include/reactos
/bugcodes.h
402 TARGET_OBJECTS
= $(EXTRA_OBJECTS
) $(OBJECTS
)
405 $(DDK_PATH_LIB
)/libhal.a \
406 $(SDK_PATH_LIB
)/librtl.a \
407 $(SDK_PATH_LIB
)/librossym.a \
408 $(SDK_PATH_LIB
)/libstring.a \
409 $(SDK_PATH_LIB
)/librosrtl.a \
410 $(SDK_PATH_LIB
)/libpseh.a \
411 $(SDK_PATH_LIB
)/libwdmguid.a \
412 $(PATH_TO_TOP
)/drivers
/lib
/csq
/csq.o
415 -Wl
,-T
,ntoskrnl.lnk \
416 -Wl
,--subsystem
,native \
417 -Wl
,--image-base
,$(TARGET_BASE
) \
418 -Wl
,--file-alignment
,0x1000 \
419 -Wl
,--section-alignment
,0x1000 \
420 -Wl
,--entry
,_NtProcessStartup \
426 etags
$(addprefix -i
, $(TAG_OBJECTS
))
428 GENERATED_HEADER_FILES
:= $(PATH_TO_TOP
)/include/reactos
/bugcodes.h
430 $(PATH_TO_TOP
)/include/reactos
/bugcodes.h bugcodes.rc
: ntoskrnl.mc
432 -H
$(PATH_TO_TOP
)/include/reactos
/bugcodes.h \
437 $(PATH_TO_TOP
)/include/reactos
/bugcodes.h \
438 $(DEP_OBJECTS
) $(DEP_FILES
) MSG00409.bin bugcodes.rc
441 ke
/main.o
: ke
/main.c
$(PATH_TO_TOP
)/include/reactos
/buildno.h
443 $(TARGET_PCH
): $(PATH_TO_TOP
)/include/reactos
/bugcodes.h
461 include $(PATH_TO_TOP
)/rules.mak
463 include $(TOOLS_PATH
)/helper.mk
465 include $(TOOLS_PATH
)/depend.mk