9dc41bf8ef90ba49e339ffa668d4d84948da8ab3
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_serial.o dbg
/kdb_keyboard.o dbg
/rdebug.o \
30 ..
/dk
/w32
/lib
/libkjs.a dbg
/i386
/i386-dis.o
31 CFLAGS_KDBG
:= -I..
/lib
/kjs
/include
34 ..
/dk
/w32
/lib
/libkjs.a
:
39 ifeq ($(DBG_OR_KDBG
), 1)
40 OBJECTS_KDBG
:= $(OBJECTS_KDBG
) dbg
/kdb_symbols.o dbg
/profile.o
43 TARGET_ASFLAGS
= -I.
/include
44 TARGET_CFLAGS
= -I.
/include $(CFLAGS_KDBG
) -Wall
-Werror
$(CFLAGS_OPT
)
46 # require os code to explicitly request A/W version of structs/functions
47 TARGET_CFLAGS
+= -D_DISABLE_TIDENTS
49 # 3GB User Mode Memory Space support
51 TARGET_CFLAGS
+= -D__3GB__
52 TARGET_BASE
= 0xC0000000
54 TARGET_BASE
= 0x80000000
58 TARGET_CFLAGS
+= -DDBG
61 # enable thread event pair features (NT4 only!)
62 # TARGET_CFLAGS += -D_ENABLE_THRDEVTPAIR
65 # Javascript extension for kdb
68 OBJECTS_PATH
= objects
71 # Architecture specific Makefile
72 # Defines $(OBJECTS_ARCH)
74 include Makefile.
$(ARCH
)
76 # Run-Time Library (Rtl)
95 OBJECTS_RTL
:= $(filter-out $(RTL_EXCLUDE_FILTER
), $(OBJECTS_RTL
))
123 # Memory Manager (Mm)
213 # Object Manager (Ob)
224 # Process Manager (Ps)
241 # Executive Subsystem (Ex)
272 # Installable File System Run-Time Library (FsRtl)
299 # Configuration Manager (Registry)
307 # Debugger Support (Dbg)
324 # Local Procedure Call (Lpc)
338 # Power Management (Po)
351 # Kernel Debugger Support (Kd)
363 DEP_OBJECTS
:= $(OBJECTS_MM
) $(OBJECTS_ARCH
) \
364 $(OBJECTS_IO
) $(OBJECTS_KE
) $(OBJECTS_OB
) \
365 $(OBJECTS_PS
) $(OBJECTS_EX
) $(OBJECTS_CC
) $(OBJECTS_FS
) $(OBJECTS_SE
) \
366 $(OBJECTS_DBG
) $(OBJECTS_CM
) $(OBJECTS_LDR
) $(OBJECTS_LPC
) \
367 $(OBJECTS_PO
) $(OBJECTS_KD
) $(OBJECTS_RTL
) $(OBJECTS_INBV
)
369 TAG_OBJECTS
:= $(join $(dir $(DEP_OBJECTS
)),$(patsubst %.o
, .
%.TAG
, $(notdir $(DEP_OBJECTS
))))
371 TARGET_PCH
= include/ntoskrnl.h
379 mkdir
$(OBJECTS_PATH
)
381 $(OBJECTS_RESOURCE
): $(TARGET_NAME
).rc bugcodes.rc
$(PATH_TO_TOP
)/include/reactos
/resource.h
384 # Build subsystem intermediate objects
386 $(OBJECTS_PATH
)/arch.o
: $(OBJECTS_ARCH
)
387 $(LD
) -r
-o
$(OBJECTS_PATH
)/arch.o
$(OBJECTS_ARCH
)
389 $(OBJECTS_PATH
)/io.o
: $(OBJECTS_IO
)
392 -o
$(OBJECTS_PATH
)/io.o \
395 $(OBJECTS_PATH
)/ke.o
: $(OBJECTS_KE
)
398 -o
$(OBJECTS_PATH
)/ke.o \
401 $(OBJECTS_PATH
)/rtl.o
: $(OBJECTS_RTL
)
404 -o
$(OBJECTS_PATH
)/rtl.o \
407 $(OBJECTS_PATH
)/mm.o
: $(OBJECTS_MM
)
410 -o
$(OBJECTS_PATH
)/mm.o \
413 $(OBJECTS_PATH
)/ob.o
: $(OBJECTS_OB
)
416 -o
$(OBJECTS_PATH
)/ob.o \
419 $(OBJECTS_PATH
)/ps.o
: $(OBJECTS_PS
)
422 -o
$(OBJECTS_PATH
)/ps.o \
425 $(OBJECTS_PATH
)/ex.o
: $(OBJECTS_EX
)
428 -o
$(OBJECTS_PATH
)/ex.o \
431 $(OBJECTS_PATH
)/fs.o
: $(OBJECTS_FS
)
434 -o
$(OBJECTS_PATH
)/fs.o \
437 $(OBJECTS_PATH
)/se.o
: $(OBJECTS_SE
)
440 -o
$(OBJECTS_PATH
)/se.o \
443 $(OBJECTS_PATH
)/cm.o
: $(OBJECTS_CM
)
446 -o
$(OBJECTS_PATH
)/cm.o \
449 $(OBJECTS_PATH
)/dbg.o
: $(OBJECTS_DBG
)
452 -o
$(OBJECTS_PATH
)/dbg.o \
455 $(OBJECTS_PATH
)/ldr.o
: $(OBJECTS_LDR
)
458 -o
$(OBJECTS_PATH
)/ldr.o \
461 $(OBJECTS_PATH
)/lpc.o
: $(OBJECTS_LPC
)
464 -o
$(OBJECTS_PATH
)/lpc.o \
467 $(OBJECTS_PATH
)/po.o
: $(OBJECTS_PO
)
470 -o
$(OBJECTS_PATH
)/po.o \
473 $(OBJECTS_PATH
)/cc.o
: $(OBJECTS_CC
)
476 -o
$(OBJECTS_PATH
)/cc.o \
479 $(OBJECTS_PATH
)/kd.o
: $(OBJECTS_KD
)
482 -o
$(OBJECTS_PATH
)/kd.o \
485 $(OBJECTS_PATH
)/inbv.o
: $(OBJECTS_INBV
)
488 -o
$(OBJECTS_PATH
)/inbv.o \
491 # Note: arch.o MUST be the first file!!!
493 $(OBJECTS_PATH
)/arch.o \
494 $(OBJECTS_PATH
)/ke.o \
495 $(OBJECTS_PATH
)/cc.o \
496 $(OBJECTS_PATH
)/cm.o \
497 $(OBJECTS_PATH
)/dbg.o \
498 $(OBJECTS_PATH
)/ex.o \
499 $(OBJECTS_PATH
)/lpc.o \
500 $(OBJECTS_PATH
)/fs.o \
501 $(OBJECTS_PATH
)/io.o \
502 $(OBJECTS_PATH
)/kd.o \
503 $(OBJECTS_PATH
)/ldr.o \
504 $(OBJECTS_PATH
)/mm.o \
505 $(OBJECTS_PATH
)/ob.o \
506 $(OBJECTS_PATH
)/po.o \
507 $(OBJECTS_PATH
)/ps.o \
508 $(OBJECTS_PATH
)/rtl.o \
509 $(OBJECTS_PATH
)/se.o \
510 $(OBJECTS_PATH
)/inbv.o \
513 EXTRA_OBJECTS
= $(PATH_TO_TOP
)/include/reactos
/bugcodes.h
515 TARGET_OBJECTS
= $(EXTRA_OBJECTS
) $(OBJECTS
)
518 $(DDK_PATH_LIB
)/libhal.a \
519 $(SDK_PATH_LIB
)/librtl.a \
520 $(SDK_PATH_LIB
)/librossym.a \
521 $(SDK_PATH_LIB
)/libstring.a \
522 $(SDK_PATH_LIB
)/librosrtl.a \
523 $(SDK_PATH_LIB
)/libpseh.a \
524 $(SDK_PATH_LIB
)/libwdmguid.a \
525 $(PATH_TO_TOP
)/drivers
/lib
/csq
/csq.o
528 -Wl
,-T
,ntoskrnl.lnk \
529 -Wl
,--subsystem
,native \
530 -Wl
,--image-base
,$(TARGET_BASE
) \
531 -Wl
,--file-alignment
,0x1000 \
532 -Wl
,--section-alignment
,0x1000 \
533 -Wl
,--entry
,_NtProcessStartup \
539 etags
$(addprefix -i
, $(TAG_OBJECTS
))
541 GENERATED_HEADER_FILES
:= $(PATH_TO_TOP
)/include/reactos
/bugcodes.h
543 $(PATH_TO_TOP
)/include/reactos
/bugcodes.h bugcodes.rc
: ntoskrnl.mc
545 -H
$(PATH_TO_TOP
)/include/reactos
/bugcodes.h \
550 $(PATH_TO_TOP
)/include/reactos
/bugcodes.h \
551 $(DEP_OBJECTS
) $(DEP_FILES
) MSG00409.bin bugcodes.rc
553 ex
/napi.o
: ex
/zw.S
$(PATH_TO_TOP
)/include/ntdll
/napi.h
555 ke
/main.o
: ke
/main.c
$(PATH_TO_TOP
)/include/reactos
/buildno.h
557 $(TARGET_PCH
): $(PATH_TO_TOP
)/include/reactos
/bugcodes.h
575 include $(PATH_TO_TOP
)/rules.mak
577 include $(TOOLS_PATH
)/helper.mk
579 include $(TOOLS_PATH
)/depend.mk