1 # $Id: makefile_rex,v 1.71 2000/06/04 17:27:35 ea Exp $
3 # ReactOS Operating System
9 BASE_CFLAGS = -I../include -D__NTOSKRNL__
14 $(TARGETNAME).nostrip.exe \
17 # Hardware Abstraction Layer (Hal)
18 # Defines $(OBJECTS_HAL)
20 include hal/x86/sources
37 # Run-Time Library (Rtl)
65 # Note: head.o MUST be the fist file!!!
157 # Object Manager (Ob)
166 # Process Manager (Ps)
176 # Executive Subsystem (Ex)
191 # Installable File System Run-Time Library (FsRtl)
216 # Configuration Manager (Registry)
220 # Debugger Support (Dbg)
235 # Local Procedure Call (Lpc)
249 # Nation Language Support Library (Nls)
250 OBJECTS_NLS = nls/nls.o
252 # Power Management (Po)
253 OBJECTS_PO = po/power.o
260 # Kernel Debugger Support (Kd)
275 mkdir $(OBJECTS_PATH)
278 # Build subsystem intermediate objects
280 $(OBJECTS_PATH)/hal.o: $(OBJECTS_HAL)
283 -o $(OBJECTS_PATH)/hal.o \
286 $(OBJECTS_PATH)/io.o: $(OBJECTS_IO)
289 -o $(OBJECTS_PATH)/io.o \
292 $(OBJECTS_PATH)/ke.o: $(OBJECTS_KE) $(OBJECTS_KE_I386)
295 -o $(OBJECTS_PATH)/ke.o \
299 $(OBJECTS_PATH)/rtl.o: $(OBJECTS_RTL)
302 -o $(OBJECTS_PATH)/rtl.o \
305 $(OBJECTS_PATH)/mm.o: $(OBJECTS_MM) $(OBJECTS_MM_I386)
308 -o $(OBJECTS_PATH)/mm.o \
312 $(OBJECTS_PATH)/ob.o: $(OBJECTS_OB)
315 -o $(OBJECTS_PATH)/ob.o \
318 $(OBJECTS_PATH)/ps.o: $(OBJECTS_PS)
321 -o $(OBJECTS_PATH)/ps.o \
324 $(OBJECTS_PATH)/ex.o: $(OBJECTS_EX)
327 -o $(OBJECTS_PATH)/ex.o \
330 $(OBJECTS_PATH)/fs.o: $(OBJECTS_FS)
333 -o $(OBJECTS_PATH)/fs.o \
336 $(OBJECTS_PATH)/se.o: $(OBJECTS_SE)
339 -o $(OBJECTS_PATH)/se.o \
342 $(OBJECTS_PATH)/cm.o: $(OBJECTS_CM)
345 -o $(OBJECTS_PATH)/cm.o \
348 $(OBJECTS_PATH)/dbg.o: $(OBJECTS_DBG)
351 -o $(OBJECTS_PATH)/dbg.o \
354 $(OBJECTS_PATH)/ldr.o: $(OBJECTS_LDR)
357 -o $(OBJECTS_PATH)/ldr.o \
360 $(OBJECTS_PATH)/lpc.o: $(OBJECTS_LPC)
363 -o $(OBJECTS_PATH)/lpc.o \
366 $(OBJECTS_PATH)/nls.o: $(OBJECTS_NLS)
369 -o $(OBJECTS_PATH)/nls.o \
372 $(OBJECTS_PATH)/nt.o: $(OBJECTS_NT)
375 -o $(OBJECTS_PATH)/nt.o \
378 $(OBJECTS_PATH)/po.o: $(OBJECTS_PO)
381 -o $(OBJECTS_PATH)/po.o \
384 $(OBJECTS_PATH)/cc.o: $(OBJECTS_CC)
387 -o $(OBJECTS_PATH)/cc.o \
390 $(OBJECTS_PATH)/kd.o: $(OBJECTS_KD)
393 -o $(OBJECTS_PATH)/kd.o \
396 $(TARGETNAME).coff: $(TARGETNAME).rc ../include/reactos/resource.h
399 # Note: ke.o MUST be the fist file!!!
401 $(OBJECTS_PATH)/ke.o \
402 $(OBJECTS_PATH)/hal.o \
403 $(OBJECTS_PATH)/cc.o \
404 $(OBJECTS_PATH)/cm.o \
405 $(OBJECTS_PATH)/dbg.o \
406 $(OBJECTS_PATH)/ex.o \
407 $(OBJECTS_PATH)/lpc.o \
408 $(OBJECTS_PATH)/fs.o \
409 $(OBJECTS_PATH)/io.o \
410 $(OBJECTS_PATH)/kd.o \
411 $(OBJECTS_PATH)/ldr.o \
412 $(OBJECTS_PATH)/mm.o \
413 $(OBJECTS_PATH)/nls.o \
414 $(OBJECTS_PATH)/nt.o \
415 $(OBJECTS_PATH)/ob.o \
416 $(OBJECTS_PATH)/po.o \
417 $(OBJECTS_PATH)/ps.o \
418 $(OBJECTS_PATH)/rtl.o \
419 $(OBJECTS_PATH)/se.o \
424 CLEAN_FILES = $(OBJECTS_PATH)\*.o cc\*.o cm\*.o dbg\*.o ex\*.o hal\x86\*.o io\*.o \
425 ke\*.o ldr\*.o mm\*.o nt\*.o ob\*.o ps\*.o rtl\*.o se\*.o \
426 ke\i386\*.o mm\i386\*.o fs\*.o po\*.o nls\*.o lpc\*.o \
427 kd\*.o utils\export\export.exe $(TARGETNAME).o $(TARGETNAME).a junk.tmp \
428 base.tmp temp.exp $(TARGETNAME).exe $(TARGETNAME).sym $(TARGETNAME).coff
430 CLEAN_FILES = $(OBJECTS_PATH)/*.o cc/*.o cm/*.o dbg/*.o ex/*.o hal/x86/*.o io/*.o \
431 ke/*.o ldr/*.o mm/*.o nt/*.o ob/*.o ps/*.o rtl/*.o se/*.o \
432 ke/i386/*.o mm/i386/*.o fs/*.o po/*.o nls/*.o lpc/*.o \
433 kd/*.o utils/export/export $(TARGETNAME).o $(TARGETNAME).a junk.tmp \
434 base.tmp temp.exp $(TARGETNAME).exe $(TARGETNAME).sym $(TARGETNAME).coff
438 $(TARGETNAME).nostrip.exe: $(TARGETNAME).o $(TARGETNAME).a $(IE_DATA)
440 -Wl,-d -specs=../specs \
443 -Wl,--image-base,0xc0000000 \
444 -Wl,--file-alignment,0x1000 \
445 -Wl,--section-alignment,0x1000 \
446 -Wl,--defsym,_edata=__data_end__ \
447 -Wl,--defsym,_end=__bss_end__ \
448 -Wl,--defsym,_etext=etext \
449 -Wl,--base-file,base.tmp \
453 --dllname $(TARGETNAME).exe \
454 --base-file base.tmp \
455 --output-exp temp.exp \
456 --def $(TARGETNAME).edf \
460 -Wl,-d -specs=../specs \
462 -o $(TARGETNAME).nostrip.exe \
463 -Wl,--image-base,0xc0000000 \
464 -Wl,--file-alignment,0x1000 \
465 -Wl,--section-alignment,0x1000 \
466 -Wl,--defsym,_end=__bss_end__ \
467 -Wl,--defsym,_edata=__data_end__ \
468 -Wl,--defsym,_etext=etext \
473 $(TARGETNAME).exe: $(TARGETNAME).o $(TARGETNAME).a
478 -Wl,-d -specs=../specs \
481 -Wl,--image-base,0xc0000000 \
482 -Wl,--file-alignment,0x1000 \
483 -Wl,--section-alignment,0x1000 \
484 -Wl,--defsym,_edata=__data_end__ \
485 -Wl,--defsym,_end=__bss_end__ \
486 -Wl,--defsym,_etext=etext \
487 -Wl,--base-file,base.tmp \
491 --dllname $(TARGETNAME).exe \
492 --base-file base.tmp \
493 --output-exp temp.exp \
494 --def $(TARGETNAME).edf \
498 -Wl,-d -specs=../specs \
500 -o $(TARGETNAME).exe \
501 -Wl,--image-base,0xc0000000 \
502 -Wl,--file-alignment,0x1000 \
503 -Wl,--section-alignment,0x1000 \
504 -Wl,--defsym,_end=__bss_end__ \
505 -Wl,--defsym,_edata=__data_end__ \
506 -Wl,--defsym,_etext=etext \
510 $(NM) --numeric-sort $(TARGETNAME).exe > $(TARGETNAME).sym
513 $(TARGETNAME).o: $(OBJECTS)
519 $(TARGETNAME).a: $(TARGETNAME).def
521 --dllname $(TARGETNAME).exe \
522 --def $(TARGETNAME).def \
523 --output-lib $(TARGETNAME).a \
526 clean: $(CLEAN_FILES:%=%_clean)
528 $(CLEAN_FILES:%=%_clean): %_clean:
531 .PHONY: clean $(CLEAN_FILES:%=%_clean)
533 floppy: $(FLOPPY_DIR)/$(TARGETNAME).exe
535 $(FLOPPY_DIR)/$(TARGETNAME).exe: $(TARGETNAME).exe
537 $(CP) $(TARGETNAME).exe $(FLOPPY_DIR)\$(TARGETNAME).exe
539 $(CP) $(TARGETNAME).exe $(FLOPPY_DIR)/$(TARGETNAME).exe
544 dist: ../$(DIST_DIR)/$(TARGETNAME).exe
546 ../$(DIST_DIR)/$(TARGETNAME).exe: $(TARGETNAME).exe
548 $(CP) $(TARGETNAME).exe ..\$(DIST_DIR)\$(TARGETNAME).exe
550 $(CP) $(TARGETNAME).exe ../$(DIST_DIR)/$(TARGETNAME).exe
555 ex/napi.o: ex/napi.c ../include/ntdll/napi.h
557 ke/main.o: ke/main.c ../include/reactos/buildno.h
560 WIN32_LEAN_AND_MEAN = yes
561 WARNINGS_ARE_ERRORS = yes