Merged mingw32 branch into main trunk
[reactos.git] / reactos / ntoskrnl / makefile_rex
1 all: ntoskrnl.exe utils/pe2bin/pe2bin$(EXE_POSTFIX)
2
3 #
4 # Defines $(HAL_OBJECTS)
5 #
6 include hal/x86/sources
7
8 NT_OBJECTS = nt/port.o nt/channel.o nt/ntevent.o nt/nttimer.o nt/atom.o \
9 nt/evtpair.o nt/ntsem.o nt/mutant.o nt/misc.o nt/plugplay.o \
10 nt/profile.o nt/nt.o
11
12 RTL_OBJECTS = rtl/vsprintf.o rtl/lookas.o rtl/unicode.o rtl/strtok.o \
13 rtl/time.o rtl/unalign.o rtl/mem.o rtl/largeint.o rtl/ctype.o \
14 rtl/list.o rtl/slist.o rtl/interlck.o rtl/return.o \
15 rtl/wstring.o rtl/memcpy.o
16
17 KE_OBJECTS = ke/main.o ke/timer.o ke/error.o ke/catch.o ke/exports.o \
18 ke/dpc.o ke/wait.o ke/kqueue.o ke/dispatch.o \
19 ke/sem.o ke/critical.o ke/event.o ke/apc.o ke/bug.o \
20 ke/mutex.o ke/kernel.o ke/ldt.o ke/apchelp.o
21
22 MM_OBJECTS = mm/mm.o mm/freelist.o mm/pool.o mm/virtual.o \
23 mm/mdl.o mm/zone.o mm/special.o mm/paging.o \
24 mm/section.o mm/marea.o mm/ppool.o mm/npool.o
25
26
27 IO_OBJECTS = io/iomgr.o io/create.o io/irp.o io/device.o io/rw.o \
28 io/queue.o io/drvlck.o io/timer.o io/share.o io/errlog.o \
29 io/shutdown.o io/fdisk.o io/cancel.o io/error.o io/arc.o \
30 io/dpc.o io/symlink.o io/adapter.o io/cntrller.o io/mdl.o \
31 io/resource.o io/event.o io/process.o io/file.o io/ioctrl.o \
32 io/fs.o io/vpb.o io/buildirp.o io/flush.o io/dir.o io/iocomp.o \
33 io/mailslot.o io/npipe.o io/lock.o io/page.o io/cleanup.o
34
35 OB_OBJECTS = ob/object.o ob/handle.o ob/namespc.o ob/ntobj.o ob/dirobj.o
36
37 PS_OBJECTS = ps/psmgr.o ps/thread.o ps/process.o ps/idle.o ps/kill.o \
38 ps/tinfo.o
39
40 EX_OBJECTS = ex/work.o ex/fmutex.o ex/resource.o ex/time.o ex/interlck.o \
41 ex/callback.o ex/napi.o ex/power.o ex/sysinfo.o ex/locale.o \
42 ex/stamp.o
43
44 SE_OBJECTS = se/semgr.o
45
46 CM_OBJECTS = cm/registry.o
47
48 TST_OBJECTS = tst/test.o
49
50 DBG_OBJECTS = dbg/brkpoint.o dbg/errinfo.o
51
52 LDR_OBJECTS = ldr/loader.o
53
54 CC_OBJECTS = cc/cacheman.o cc/block.o
55
56 objects/hal.o: $(HAL_OBJECTS)
57 $(LD) -r $(HAL_OBJECTS) -o objects/hal.o
58
59 objects/io.o: $(IO_OBJECTS)
60 $(LD) -r $(IO_OBJECTS) -o objects/io.o
61
62 objects/ke.o: $(KE_OBJECTS)
63 $(LD) -r $(KE_OBJECTS) -o objects/ke.o
64
65 objects/rtl.o: $(RTL_OBJECTS)
66 $(LD) -r $(RTL_OBJECTS) -o objects/rtl.o
67
68 objects/mm.o: $(MM_OBJECTS)
69 $(LD) -r $(MM_OBJECTS) -o objects/mm.o
70
71 objects/ob.o: $(OB_OBJECTS)
72 $(LD) -r $(OB_OBJECTS) -o objects/ob.o
73
74 objects/ps.o: $(PS_OBJECTS)
75 $(LD) -r $(PS_OBJECTS) -o objects/ps.o
76
77 objects/ex.o: $(EX_OBJECTS)
78 $(LD) -r $(EX_OBJECTS) -o objects/ex.o
79
80 objects/se.o: $(SE_OBJECTS)
81 $(LD) -r $(SE_OBJECTS) -o objects/se.o
82
83 objects/cm.o: $(CM_OBJECTS)
84 $(LD) -r $(CM_OBJECTS) -o objects/cm.o
85
86 objects/tst.o: $(TST_OBJECTS)
87 $(LD) -r $(TST_OBJECTS) -o objects/tst.o
88
89 objects/dbg.o: $(DBG_OBJECTS)
90 $(LD) -r $(DBG_OBJECTS) -o objects/dbg.o
91
92 objects/ldr.o: $(LDR_OBJECTS)
93 $(LD) -r $(LDR_OBJECTS) -o objects/ldr.o
94
95 objects/nt.o: $(NT_OBJECTS)
96 $(LD) -r $(NT_OBJECTS) -o objects/nt.o
97
98 objects/cc.o: $(CC_OBJECTS)
99 $(LD) -r $(CC_OBJECTS) -o objects/cc.o
100
101 OBJECTS = objects/hal.o objects/ke.o objects/rtl.o objects/mm.o \
102 objects/io.o objects/ob.o objects/ps.o objects/ex.o \
103 objects/se.o objects/cm.o objects/tst.o objects/dbg.o\
104 objects/nt.o objects/cc.o objects/ldr.o
105
106 utils/pe2bin/pe2bin$(EXE_POSTFIX): utils/pe2bin/pe2bin.c
107 $(NATIVE_CC) -I../include -g utils/pe2bin/pe2bin.c -o utils/pe2bin/pe2bin$(EXE_POSTFIX)
108
109 utils/export/export$(EXE_POSTFIX): utils/export/export.c
110 $(NATIVE_CC) -g utils/export/export.c -o utils/export/export$(EXE_POSTFIX)
111
112 ke/exports.o: exports.lst utils/export/export$(EXE_POSTFIX)
113 ifeq ($(HOST),mingw32-windows)
114 .\\utils\\export\\export$(EXE_POSTFIX) < exports.lst > ke\\exports.c
115 else
116 utils/export/export$(EXE_POSTFIX) < exports.lst > ke/exports.c
117 endif
118 $(CC) $(CFLAGS) -c ke/exports.c -o ke/exports.o
119
120 ntoskrnl.exe: $(OBJECTS) ntoskrnl.def
121 $(LD) -r $(OBJECTS) -o ntoskrnl.o
122 $(DLLTOOL) --dllname ntoskrnl.exe --def ntoskrnl.def \
123 --output-lib ntoskrnl.a
124 $(CC) -specs=../specs -mdll -o junk.tmp \
125 -Wl,--image-base,0xc0000000 \
126 -Wl,--file-alignment,0x1000 \
127 -Wl,--section-alignment,0x1000 \
128 -Wl,--defsym,_end=end \
129 -Wl,--defsym,_edata=__data_end__ \
130 -Wl,--defsym,_etext=etext -Wl,--base-file,base.tmp ntoskrnl.o
131 - $(RM) junk.tmp
132 $(DLLTOOL) --dllname ntoskrnl.exe --base-file base.tmp \
133 --output-exp temp.exp --def ntoskrnl.def
134 - $(RM) base.tmp
135 $(CC) -specs=../specs -mdll -o ntoskrnl.exe ntoskrnl.o \
136 -Wl,--image-base,0xc0000000 \
137 -Wl,--file-alignment,0x1000 \
138 -Wl,--section-alignment,0x1000 \
139 -Wl,--defsym,_end=end \
140 -Wl,--defsym,_edata=__data_end__ \
141 -Wl,--defsym,_etext=etext -Wl,temp.exp
142 - $(RM) temp.exp
143 $(NM) --numeric-sort ntoskrnl.exe > ntoskrnl.sym
144
145 dummy:
146
147 ex/napi.o: ex/napi.c ../include/ntdll/napi.h
148
149 #WITH_DEBUGGING = yes
150 WIN32_LEAN_AND_MEAN = yes
151 include ../rules.mak