1 # $Id: makefile_rex,v 1.81 2000/07/07 10:30:54 dwelch Exp $
3 # ReactOS Operating System
9 AS_BASEFLAGS = -Iinclude
10 BASE_CFLAGS = -I../include -Iinclude -D__NTOSKRNL__
15 $(TARGETNAME).nostrip.exe \
18 # Hardware Abstraction Layer (Hal)
19 # Defines $(OBJECTS_HAL)
21 include hal/x86/sources
38 # Run-Time Library (Rtl)
62 # Note: head.o MUST be the first file!!!
160 # Object Manager (Ob)
169 # Process Manager (Ps)
179 # Executive Subsystem (Ex)
196 # Installable File System Run-Time Library (FsRtl)
221 # Configuration Manager (Registry)
225 # Debugger Support (Dbg)
239 # Local Procedure Call (Lpc)
253 # Nation Language Support Library (Nls)
254 OBJECTS_NLS = nls/nls.o
256 # Power Management (Po)
257 OBJECTS_PO = po/power.o
264 # Kernel Debugger Support (Kd)
279 mkdir $(OBJECTS_PATH)
282 # Build subsystem intermediate objects
284 $(OBJECTS_PATH)/hal.o: $(OBJECTS_HAL)
287 -o $(OBJECTS_PATH)/hal.o \
290 $(OBJECTS_PATH)/io.o: $(OBJECTS_IO)
293 -o $(OBJECTS_PATH)/io.o \
296 $(OBJECTS_PATH)/ke.o: $(OBJECTS_KE) $(OBJECTS_KE_I386)
299 -o $(OBJECTS_PATH)/ke.o \
303 $(OBJECTS_PATH)/rtl.o: $(OBJECTS_RTL)
306 -o $(OBJECTS_PATH)/rtl.o \
309 $(OBJECTS_PATH)/mm.o: $(OBJECTS_MM) $(OBJECTS_MM_I386)
312 -o $(OBJECTS_PATH)/mm.o \
316 $(OBJECTS_PATH)/ob.o: $(OBJECTS_OB)
319 -o $(OBJECTS_PATH)/ob.o \
322 $(OBJECTS_PATH)/ps.o: $(OBJECTS_PS)
325 -o $(OBJECTS_PATH)/ps.o \
328 $(OBJECTS_PATH)/ex.o: $(OBJECTS_EX)
331 -o $(OBJECTS_PATH)/ex.o \
334 $(OBJECTS_PATH)/fs.o: $(OBJECTS_FS)
337 -o $(OBJECTS_PATH)/fs.o \
340 $(OBJECTS_PATH)/se.o: $(OBJECTS_SE)
343 -o $(OBJECTS_PATH)/se.o \
346 $(OBJECTS_PATH)/cm.o: $(OBJECTS_CM)
349 -o $(OBJECTS_PATH)/cm.o \
352 $(OBJECTS_PATH)/dbg.o: $(OBJECTS_DBG)
355 -o $(OBJECTS_PATH)/dbg.o \
358 $(OBJECTS_PATH)/ldr.o: $(OBJECTS_LDR)
361 -o $(OBJECTS_PATH)/ldr.o \
364 $(OBJECTS_PATH)/lpc.o: $(OBJECTS_LPC)
367 -o $(OBJECTS_PATH)/lpc.o \
370 $(OBJECTS_PATH)/nls.o: $(OBJECTS_NLS)
373 -o $(OBJECTS_PATH)/nls.o \
376 $(OBJECTS_PATH)/nt.o: $(OBJECTS_NT)
379 -o $(OBJECTS_PATH)/nt.o \
382 $(OBJECTS_PATH)/po.o: $(OBJECTS_PO)
385 -o $(OBJECTS_PATH)/po.o \
388 $(OBJECTS_PATH)/cc.o: $(OBJECTS_CC)
391 -o $(OBJECTS_PATH)/cc.o \
394 $(OBJECTS_PATH)/kd.o: $(OBJECTS_KD)
397 -o $(OBJECTS_PATH)/kd.o \
400 $(TARGETNAME).coff: $(TARGETNAME).rc ../include/reactos/resource.h
403 # Note: ke.o MUST be the fist file!!!
405 $(OBJECTS_PATH)/ke.o \
406 $(OBJECTS_PATH)/hal.o \
407 $(OBJECTS_PATH)/cc.o \
408 $(OBJECTS_PATH)/cm.o \
409 $(OBJECTS_PATH)/dbg.o \
410 $(OBJECTS_PATH)/ex.o \
411 $(OBJECTS_PATH)/lpc.o \
412 $(OBJECTS_PATH)/fs.o \
413 $(OBJECTS_PATH)/io.o \
414 $(OBJECTS_PATH)/kd.o \
415 $(OBJECTS_PATH)/ldr.o \
416 $(OBJECTS_PATH)/mm.o \
417 $(OBJECTS_PATH)/nls.o \
418 $(OBJECTS_PATH)/nt.o \
419 $(OBJECTS_PATH)/ob.o \
420 $(OBJECTS_PATH)/po.o \
421 $(OBJECTS_PATH)/ps.o \
422 $(OBJECTS_PATH)/rtl.o \
423 $(OBJECTS_PATH)/se.o \
428 CLEAN_FILES = $(OBJECTS_PATH)\*.o cc\*.o cm\*.o dbg\*.o ex\*.o hal\x86\*.o io\*.o \
429 ke\*.o ldr\*.o mm\*.o nt\*.o ob\*.o ps\*.o rtl\*.o se\*.o \
430 ke\i386\*.o mm\i386\*.o fs\*.o po\*.o nls\*.o lpc\*.o \
431 kd\*.o $(TARGETNAME).o $(TARGETNAME).a junk.tmp base.tmp temp.exp \
432 $(TARGETNAME).exe $(TARGETNAME).nostrip.exe $(TARGETNAME).sym $(TARGETNAME).coff
434 CLEAN_FILES = $(OBJECTS_PATH)/*.o cc/*.o cm/*.o dbg/*.o ex/*.o hal/x86/*.o io/*.o \
435 ke/*.o ldr/*.o mm/*.o nt/*.o ob/*.o ps/*.o rtl/*.o se/*.o \
436 ke/i386/*.o mm/i386/*.o fs/*.o po/*.o nls/*.o lpc/*.o \
437 kd/*.o $(TARGETNAME).o $(TARGETNAME).a junk.tmp base.tmp temp.exp \
438 $(TARGETNAME).exe $(TARGETNAME).nostrip.exe $(TARGETNAME).sym $(TARGETNAME).coff
442 $(TARGETNAME).nostrip.exe: $(TARGETNAME).o $(TARGETNAME).a $(IE_DATA)
444 -Wl,-d -specs=../specs \
447 -Wl,--image-base,0xc0000000 \
448 -Wl,--file-alignment,0x1000 \
449 -Wl,--section-alignment,0x1000 \
450 -Wl,--defsym,_edata=__data_end__ \
451 -Wl,--defsym,_end=__bss_end__ \
452 -Wl,--defsym,_etext=etext \
453 -Wl,--base-file,base.tmp \
457 --dllname $(TARGETNAME).exe \
458 --base-file base.tmp \
459 --output-exp temp.exp \
460 --def $(TARGETNAME).edf \
464 -Wl,-d -specs=../specs \
466 -o $(TARGETNAME).nostrip.exe \
467 -Wl,--image-base,0xc0000000 \
468 -Wl,--file-alignment,0x1000 \
469 -Wl,--section-alignment,0x1000 \
470 -Wl,--defsym,_end=__bss_end__ \
471 -Wl,--defsym,_edata=__data_end__ \
472 -Wl,--defsym,_etext=etext \
477 $(TARGETNAME).exe: $(TARGETNAME).o $(TARGETNAME).a
482 -Wl,-d -specs=../specs \
485 -Wl,--image-base,0xc0000000 \
486 -Wl,--file-alignment,0x1000 \
487 -Wl,--section-alignment,0x1000 \
488 -Wl,--defsym,_edata=__data_end__ \
489 -Wl,--defsym,_end=__bss_end__ \
490 -Wl,--defsym,_etext=etext \
491 -Wl,--base-file,base.tmp \
495 --dllname $(TARGETNAME).exe \
496 --base-file base.tmp \
497 --output-exp temp.exp \
498 --def $(TARGETNAME).edf \
502 -Wl,-d -specs=../specs \
504 -o $(TARGETNAME).exe \
505 -Wl,--image-base,0xc0000000 \
506 -Wl,--file-alignment,0x1000 \
507 -Wl,--section-alignment,0x1000 \
508 -Wl,--defsym,_end=__bss_end__ \
509 -Wl,--defsym,_edata=__data_end__ \
510 -Wl,--defsym,_etext=etext \
514 $(NM) --numeric-sort $(TARGETNAME).exe > $(TARGETNAME).sym
517 $(TARGETNAME).o: $(OBJECTS)
523 $(TARGETNAME).a: $(TARGETNAME).def
525 --dllname $(TARGETNAME).exe \
526 --def $(TARGETNAME).def \
527 --output-lib $(TARGETNAME).a \
530 clean: $(CLEAN_FILES:%=%_clean)
532 $(CLEAN_FILES:%=%_clean): %_clean:
535 .PHONY: clean $(CLEAN_FILES:%=%_clean)
537 floppy: $(FLOPPY_DIR)/$(TARGETNAME).exe
539 $(FLOPPY_DIR)/$(TARGETNAME).exe: $(TARGETNAME).exe
541 $(CP) $(TARGETNAME).exe $(FLOPPY_DIR)\$(TARGETNAME).exe
543 $(CP) $(TARGETNAME).exe $(FLOPPY_DIR)/$(TARGETNAME).exe
548 dist: ../$(DIST_DIR)/$(TARGETNAME).exe
550 ../$(DIST_DIR)/$(TARGETNAME).exe: $(TARGETNAME).exe
552 $(CP) $(TARGETNAME).exe ..\$(DIST_DIR)\$(TARGETNAME).exe
554 $(CP) $(TARGETNAME).exe ../$(DIST_DIR)/$(TARGETNAME).exe
559 ex/napi.o: ex/napi.c ../include/ntdll/napi.h
561 ke/main.o: ke/main.c ../include/reactos/buildno.h
564 WIN32_LEAN_AND_MEAN = yes
565 WARNINGS_ARE_ERRORS = yes