TARGET_NAME = ntoskrnl
-TARGET_BASE = 0xc0000000
-
TARGET_BOOTSTRAP = yes
CONFIG :=
LINKER_SCRIPT := ntoskrnl.lnk
STRIP_FLAGS := -Wl,-s
-ifeq ($(OPTIMIZED), 1)
-CFLAGS_OPT := -O2 -Wno-strict-aliasing
-else
-CFLAGS_OPT :=
-endif
-
-ifeq ($(KDBG), 1)
-OBJECTS_KDBG := dbg/kdb.o dbg/kdb_serial.o dbg/kdb_keyboard.o dbg/rdebug.o \
- dbg/i386/kdb_help.o \
- ../dk/w32/lib/libkjs.a dbg/i386/i386-dis.o
-CFLAGS_KDBG := -I../lib/kjs/include
-preall: all
-
-../dk/w32/lib/libkjs.a:
- $(MAKE) -C ../lib/kjs
-else
-OBJECTS_KDBG :=
-endif
-ifeq ($(DBG_OR_KDBG), 1)
-OBJECTS_KDBG := $(OBJECTS_KDBG) dbg/kdb_stabs.o dbg/kdb_symbols.o dbg/profile.o
-endif
-
TARGET_ASFLAGS = -I./include
TARGET_CFLAGS = -I./include $(CFLAGS_KDBG) -Wall -Werror $(CFLAGS_OPT)
TARGET_BASE = 0x80000000
endif
+ifneq ($(DBG), 0)
+TARGET_CFLAGS += -DDBG
+endif
+
# enable thread event pair features (NT4 only!)
# TARGET_CFLAGS += -D_ENABLE_THRDEVTPAIR
#
include Makefile.$(ARCH)
-# System API (Nt/Zw)
-OBJECTS_NT = \
- nt/channel.o \
- nt/efi.o \
- nt/evtpair.o \
- nt/mutant.o \
- nt/misc.o \
- nt/nt.o \
- nt/ntevent.o \
- nt/ntsem.o \
- nt/nttimer.o \
- nt/plugplay.o \
- nt/profile.o \
- nt/vdm.o \
- nt/zw.o
-
# Run-Time Library (Rtl)
OBJECTS_RTL = \
rtl/atom.o \
rtl/capture.o \
rtl/ctype.o \
+ rtl/debug.o \
rtl/handle.o \
rtl/message.o \
rtl/misc.o \
ke/apc.o \
ke/bug.o \
ke/catch.o \
- ke/critical.o \
+ ke/clock.o \
ke/dpc.o \
ke/device.o \
- ke/error.o \
ke/event.o \
+ ke/gate.o \
+ ke/gmutex.o \
ke/kqueue.o \
ke/kthread.o \
ke/ipi.o \
ke/sem.o \
ke/spinlock.o \
ke/timer.o \
+ ke/usercall.o \
ke/wait.o
# Memory Manager (Mm)
mm/pool.o \
mm/ppool.o \
mm/physical.o \
+ mm/process.o \
mm/region.o \
mm/rmap.o \
mm/section.o \
- mm/slab.o \
mm/verifier.o \
mm/virtual.o \
mm/wset.o
io/deviface.o \
io/dir.o \
io/driver.o \
+ io/efi.o \
io/errlog.o \
io/error.o \
io/event.o \
io/npipe.o \
io/page.o \
io/parttab.o \
+ io/plugplay.o \
io/process.o \
- io/pnpnotify.o \
io/pnpdma.o \
io/pnpmgr.o \
+ io/pnpnotify.o \
io/pnpreport.o \
io/pnproot.o \
io/queue.o \
ob/object.o \
ob/sdcache.o \
ob/security.o \
- ob/symlink.o
+ ob/symlink.o \
+ ob/wait.o
# Process Manager (Ps)
OBJECTS_PS = \
ps/cid.o \
- ps/create.o \
ps/debug.o \
ps/idle.o \
ps/job.o \
ps/locale.o \
ps/process.o \
ps/psmgr.o \
+ ps/notify.o \
+ ps/quota.o \
+ ps/query.o \
+ ps/security.o \
ps/suspend.o \
ps/thread.o \
- ps/tinfo.o \
- ps/win32.o \
- ps/w32call.o
+ ps/win32.o
# Executive Subsystem (Ex)
OBJECTS_EX = \
- ex/btree.o \
ex/callback.o \
+ ex/dbgctrl.o \
+ ex/error.o \
+ ex/event.o \
+ ex/evtpair.o \
ex/fmutex.o \
- ex/hashtab.o \
+ ex/handle.o \
ex/init.o \
ex/interlck.o \
ex/list.o \
ex/lookas.o \
- ex/napi.o \
+ ex/mutant.o \
ex/power.o \
+ ex/profile.o \
ex/resource.o \
ex/rundown.o \
- ex/stree.o \
+ ex/sem.o \
ex/synch.o \
ex/sysinfo.o \
ex/time.o \
+ ex/timer.o \
ex/util.o \
ex/uuid.o \
ex/win32k.o \
ex/work.o \
- ex/zone.o
+ ex/zone.o \
+ ex/zw.o
# Installable File System Run-Time Library (FsRtl)
OBJECTS_FS = \
cm/regfile.o \
cm/registry.o \
cm/regobj.o \
- cm/rtlfunc.o
-
-# Debugger Support (Dbg)
-OBJECTS_DBG = \
- dbg/dbgctrl.o \
- dbg/errinfo.o \
- dbg/print.o \
- dbg/user.o \
- $(OBJECTS_KDBG)
# Loader
OBJECTS_LDR = \
# Kernel Debugger Support (Kd)
OBJECTS_KD = \
- kd/dlog.o \
- kd/gdbstub.o \
- kd/kdebug.o \
- kd/mda.o \
- kd/service.o
+ kd/kdinit.o \
+ kd/kdmain.o \
+ kd/kdio.o \
+ kd/service.o \
+ kd/wrappers/gdbstub.o \
+ kd/wrappers/bochs.o
+
+# User-Mode Debugging (Dbgk)
+OBJECTS_DBGK = \
+ dbgk/dbgkutil.o \
+ dbgk/debug.o
+
+ifeq ($(KDBG), 1)
+OBJECTS_KDBG := \
+ kdbg/kdb.o \
+ kdbg/kdb_cli.o \
+ kdbg/kdb_expr.o \
+ kdbg/kdb_keyboard.o \
+ kdbg/kdb_serial.o \
+ kdbg/kdb_string.o
+preall: all
+else
+OBJECTS_KDBG :=
+endif
+ifeq ($(DBG_OR_KDBG), 1)
+OBJECTS_KDBG := \
+ $(OBJECTS_KDBG) \
+ kdbg/kdb_symbols.o
+endif
# Boot video (Inbv)
OBJECTS_INBV = \
inbv/inbv.o
-DEP_OBJECTS := $(OBJECTS_NT) $(OBJECTS_MM) $(OBJECTS_ARCH) \
+DEP_OBJECTS := $(OBJECTS_MM) $(OBJECTS_ARCH) \
$(OBJECTS_IO) $(OBJECTS_KE) $(OBJECTS_OB) \
$(OBJECTS_PS) $(OBJECTS_EX) $(OBJECTS_CC) $(OBJECTS_FS) $(OBJECTS_SE) \
- $(OBJECTS_DBG) $(OBJECTS_CM) $(OBJECTS_LDR) $(OBJECTS_LPC) \
+ $(OBJECTS_KDBG) $(OBJECTS_DBGK) $(OBJECTS_CM) $(OBJECTS_LDR) $(OBJECTS_LPC) \
$(OBJECTS_PO) $(OBJECTS_KD) $(OBJECTS_RTL) $(OBJECTS_INBV)
TAG_OBJECTS := $(join $(dir $(DEP_OBJECTS)),$(patsubst %.o, .%.TAG, $(notdir $(DEP_OBJECTS))))
$(OBJECTS_RESOURCE): $(TARGET_NAME).rc bugcodes.rc $(PATH_TO_TOP)/include/reactos/resource.h
-#
-# Build subsystem intermediate objects
-#
-$(OBJECTS_PATH)/arch.o: $(OBJECTS_ARCH)
- $(LD) -r -o $(OBJECTS_PATH)/arch.o $(OBJECTS_ARCH)
-
-$(OBJECTS_PATH)/io.o: $(OBJECTS_IO)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/io.o \
- $(OBJECTS_IO)
-
-$(OBJECTS_PATH)/ke.o: $(OBJECTS_KE)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/ke.o \
- $(OBJECTS_KE)
-
-$(OBJECTS_PATH)/rtl.o: $(OBJECTS_RTL)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/rtl.o \
- $(OBJECTS_RTL)
-
-$(OBJECTS_PATH)/mm.o: $(OBJECTS_MM)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/mm.o \
- $(OBJECTS_MM)
-
-$(OBJECTS_PATH)/ob.o: $(OBJECTS_OB)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/ob.o \
- $(OBJECTS_OB)
-
-$(OBJECTS_PATH)/ps.o: $(OBJECTS_PS)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/ps.o \
- $(OBJECTS_PS)
-
-$(OBJECTS_PATH)/ex.o: $(OBJECTS_EX)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/ex.o \
- $(OBJECTS_EX)
-
-$(OBJECTS_PATH)/fs.o: $(OBJECTS_FS)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/fs.o \
- $(OBJECTS_FS)
-
-$(OBJECTS_PATH)/se.o: $(OBJECTS_SE)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/se.o \
- $(OBJECTS_SE)
-
-$(OBJECTS_PATH)/cm.o: $(OBJECTS_CM)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/cm.o \
- $(OBJECTS_CM)
-
-$(OBJECTS_PATH)/dbg.o: $(OBJECTS_DBG)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/dbg.o \
- $(OBJECTS_DBG)
-
-$(OBJECTS_PATH)/ldr.o: $(OBJECTS_LDR)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/ldr.o \
- $(OBJECTS_LDR)
-
-$(OBJECTS_PATH)/lpc.o: $(OBJECTS_LPC)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/lpc.o \
- $(OBJECTS_LPC)
-
-$(OBJECTS_PATH)/nt.o: $(OBJECTS_NT)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/nt.o \
- $(OBJECTS_NT)
-
-$(OBJECTS_PATH)/po.o: $(OBJECTS_PO)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/po.o \
- $(OBJECTS_PO)
-
-$(OBJECTS_PATH)/cc.o: $(OBJECTS_CC)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/cc.o \
- $(OBJECTS_CC)
-
-$(OBJECTS_PATH)/kd.o: $(OBJECTS_KD)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/kd.o \
- $(OBJECTS_KD)
-
-$(OBJECTS_PATH)/inbv.o: $(OBJECTS_INBV)
- $(LD) \
- -r \
- -o $(OBJECTS_PATH)/inbv.o \
- $(OBJECTS_INBV)
-
# Note: arch.o MUST be the first file!!!
OBJECTS := \
- $(OBJECTS_PATH)/arch.o \
- $(OBJECTS_PATH)/ke.o \
- $(OBJECTS_PATH)/cc.o \
- $(OBJECTS_PATH)/cm.o \
- $(OBJECTS_PATH)/dbg.o \
- $(OBJECTS_PATH)/ex.o \
- $(OBJECTS_PATH)/lpc.o \
- $(OBJECTS_PATH)/fs.o \
- $(OBJECTS_PATH)/io.o \
- $(OBJECTS_PATH)/kd.o \
- $(OBJECTS_PATH)/ldr.o \
- $(OBJECTS_PATH)/mm.o \
- $(OBJECTS_PATH)/nt.o \
- $(OBJECTS_PATH)/ob.o \
- $(OBJECTS_PATH)/po.o \
- $(OBJECTS_PATH)/ps.o \
- $(OBJECTS_PATH)/rtl.o \
- $(OBJECTS_PATH)/se.o \
- $(OBJECTS_PATH)/inbv.o \
+ $(OBJECTS_ARCH) \
+ $(OBJECTS_KE) \
+ $(OBJECTS_CC) \
+ $(OBJECTS_CM) \
+ $(OBJECTS_EX) \
+ $(OBJECTS_LPC) \
+ $(OBJECTS_FS) \
+ $(OBJECTS_IO) \
+ $(OBJECTS_KD) \
+ $(OBJECTS_DBGK) \
+ $(OBJECTS_LDR) \
+ $(OBJECTS_MM) \
+ $(OBJECTS_OB) \
+ $(OBJECTS_PO) \
+ $(OBJECTS_PS) \
+ $(OBJECTS_RTL) \
+ $(OBJECTS_SE) \
+ $(OBJECTS_KDBG) \
+ $(OBJECTS_INBV) \
$(OBJECTS_RESOURCE)
EXTRA_OBJECTS = $(PATH_TO_TOP)/include/reactos/bugcodes.h
TARGET_LIBS = \
$(DDK_PATH_LIB)/libhal.a \
$(SDK_PATH_LIB)/librtl.a \
+ $(SDK_PATH_LIB)/librossym.a \
$(SDK_PATH_LIB)/libstring.a \
$(SDK_PATH_LIB)/librosrtl.a \
$(SDK_PATH_LIB)/libpseh.a \
+ $(SDK_PATH_LIB)/libwdmguid.a \
$(PATH_TO_TOP)/drivers/lib/csq/csq.o
TARGET_LFLAGS = \
-Wl,--image-base,$(TARGET_BASE) \
-Wl,--file-alignment,0x1000 \
-Wl,--section-alignment,0x1000 \
- -Wl,--entry,_NtProcessStartup
+ -Wl,--entry,_NtProcessStartup \
+ -nostdlib
+
+TARGET_GCCLIBS = gcc
TAGS: $(TAG_OBJECTS)
etags $(addprefix -i , $(TAG_OBJECTS))
TARGET_CLEAN = \
$(PATH_TO_TOP)/include/reactos/bugcodes.h \
- $(DEP_OBJECTS) $(DEP_FILES) MSG00409.bin bugcodes.rc
+ $(DEP_OBJECTS) $(DEP_FILES) MSG00409.bin bugcodes.rc
-ex/napi.o: ex/napi.c $(PATH_TO_TOP)/include/ntdll/napi.h
ke/main.o: ke/main.c $(PATH_TO_TOP)/include/reactos/buildno.h