5 CFLAGS = -D__NTDRIVER__ -I./include -I./ospm/include
7 LIBS = $(PATH_TO_TOP)/ntoskrnl/ntoskrnl.a
12 OBJECTS_OSPM_BUSMGR = \
14 ospm/busmgr/bmnotify.o \
16 ospm/busmgr/bmpower.o \
17 ospm/busmgr/bmrequest.o \
18 ospm/busmgr/bmsearch.o \
19 ospm/busmgr/bmutils.o \
23 $(OBJECTS_OSPM_BUSMGR) \
29 OBJECTS_DISPATCHER = \
30 dispatcher/dsfield.o \
31 dispatcher/dsmethod.o \
32 dispatcher/dsmthdat.o \
33 dispatcher/dsobject.o \
34 dispatcher/dsopcode.o \
35 dispatcher/dsutils.o \
36 dispatcher/dswexec.o \
37 dispatcher/dswload.o \
38 dispatcher/dswscope.o \
83 namespace/nsaccess.o \
89 namespace/nsobject.o \
90 namespace/nssearch.o \
93 namespace/nsxfname.o \
109 resource/rscreate.o \
114 resource/rsmemory.o \
147 mkdir $(OBJECTS_PATH)
151 # Build intermediate objects
153 $(OBJECTS_PATH)/ospm.o: $(OBJECTS_PATH) $(OBJECTS_OSPM)
156 -o $(OBJECTS_PATH)/ospm.o \
159 $(OBJECTS_PATH)/dispatcher.o: $(OBJECTS_PATH) $(OBJECTS_DISPATCHER)
162 -o $(OBJECTS_PATH)/dispatcher.o \
163 $(OBJECTS_DISPATCHER)
165 $(OBJECTS_PATH)/events.o: $(OBJECTS_PATH) $(OBJECTS_EVENTS)
168 -o $(OBJECTS_PATH)/events.o \
171 $(OBJECTS_PATH)/executer.o: $(OBJECTS_PATH) $(OBJECTS_EXECUTER)
174 -o $(OBJECTS_PATH)/executer.o \
177 $(OBJECTS_PATH)/hardware.o: $(OBJECTS_PATH) $(OBJECTS_HARDWARE)
180 -o $(OBJECTS_PATH)/hardware.o \
183 $(OBJECTS_PATH)/namespace.o: $(OBJECTS_PATH) $(OBJECTS_NAMESPACE)
186 -o $(OBJECTS_PATH)/namespace.o \
189 $(OBJECTS_PATH)/parser.o: $(OBJECTS_PATH) $(OBJECTS_PARSER)
192 -o $(OBJECTS_PATH)/parser.o \
195 $(OBJECTS_PATH)/resource.o: $(OBJECTS_PATH) $(OBJECTS_RESOURCE)
198 -o $(OBJECTS_PATH)/resource.o \
201 $(OBJECTS_PATH)/tables.o: $(OBJECTS_PATH) $(OBJECTS_TABLES)
204 -o $(OBJECTS_PATH)/tables.o \
207 $(OBJECTS_PATH)/utils.o: $(OBJECTS_PATH) $(OBJECTS_UTILS)
210 -o $(OBJECTS_PATH)/utils.o \
215 $(OBJECTS_PATH)/ospm.o \
216 $(OBJECTS_PATH)/dispatcher.o \
217 $(OBJECTS_PATH)/events.o \
218 $(OBJECTS_PATH)/executer.o \
219 $(OBJECTS_PATH)/hardware.o \
220 $(OBJECTS_PATH)/namespace.o \
221 $(OBJECTS_PATH)/parser.o \
222 $(OBJECTS_PATH)/resource.o \
223 $(OBJECTS_PATH)/tables.o \
224 $(OBJECTS_PATH)/utils.o \
228 $(TARGET).coff: $(TARGET).rc $(PATH_TO_TOP)/include/reactos/resource.h
230 $(TARGET).sys: $(OBJECTS_PATH) $(OBJECTS) $(LIBS)
232 -nostartfiles -nostdlib \
236 -Wl,-e,_DriverEntry@8 \
237 -Wl,--base-file,base.tmp \
238 -Wl,--defsym,_end=end \
239 -Wl,--defsym,_edata=__data_end__ \
240 -Wl,--defsym,_etext=etext \
245 --dllname $(TARGET).sys \
246 --base-file base.tmp \
247 --output-exp temp.exp \
251 -nostartfiles -nostdlib \
255 -Wl,--image-base,0x10000 \
256 -Wl,-e,_DriverEntry@8 \
261 - $(NM) --numeric-sort $(TARGET).sys > $(TARGET).sym
263 # $(STRIP) --strip-debug $(TARGET).sys
266 CLEAN_FILES = $(OBJECTS_PATH)/*.o dispatcher/*.o events/*.o executer/*.o hardware/*.o \
267 namespace/*.o ospm/*.o ospm/busmgr/*.o parser/*.o resource/*.o tables/*.o \
269 $(TARGET).o $(TARGET).a junk.tmp base.tmp temp.exp \
270 $(TARGET).sys $(TARGET).sym $(TARGET).coff
273 - $(RM) $(CLEAN_FILES)
277 install: $(FLOPPY_DIR)/drivers/$(TARGET).sys
279 $(FLOPPY_DIR)/drivers/$(TARGET).sys: $(TARGET).sys
280 $(CP) $(TARGET).sys $(FLOPPY_DIR)/drivers/$(TARGET).sys
282 dist: $(PATH_TO_TOP)/$(DIST_DIR)/drivers/$(TARGET).sys
284 $(PATH_TO_TOP)/$(DIST_DIR)/drivers/$(TARGET).sys: $(TARGET).sys
285 $(CP) $(TARGET).sys $(PATH_TO_TOP)/$(DIST_DIR)/drivers/$(TARGET).sys
288 WARNINGS_ARE_ERRORS = yes
290 include $(PATH_TO_TOP)/rules.mak