1 # $Id: Makefile,v 1.9 2001/03/06 14:41:18 dwelch Exp $
3 # ReactOS Operating System
12 CFLAGS
= -Iinclude
-D__NTOSKRNL__
-DDBG
-g
-Wall
-Werror
13 #CFLAGS += -DDBGPRINT_FILE_LOG
17 $(TARGETNAME
).nostrip.exe \
20 # Hardware Abstraction Layer (Hal)
21 # Defines $(OBJECTS_HAL)
23 include hal
/x86
/sources
41 # Run-Time Library (Rtl)
67 # Note: head.o MUST be the first file!!!
100 ke
/i386
/tskswitch.o \
105 # Memory Manager (Mm)
172 # Object Manager (Ob)
181 # Process Manager (Ps)
193 # Executive Subsystem (Ex)
210 # Installable File System Run-Time Library (FsRtl)
235 # Configuration Manager (Registry)
239 # Debugger Support (Dbg)
254 # Local Procedure Call (Lpc)
268 # Nation Language Support Library (Nls)
269 OBJECTS_NLS
= nls
/nls.o
271 # Power Management (Po)
272 OBJECTS_PO
= po
/power.o
279 # Kernel Debugger Support (Kd)
285 C_OBJECTS
= $(OBJECTS_NT
) $(OBJECTS_HAL
) $(OBJECTS_MM
) $(OBJECTS_MM_I386
) \
286 $(OBJECTS_IO
) $(OBJECTS_KE
) $(OBJECTS_KE_I386
) $(OBJECTS_OB
) \
287 $(OBJECTS_PS
) $(OBJECTS_EX
) $(OBJECTS_CC
) $(OBJECTS_FS
) $(OBJECTS_SE
) \
288 $(OBJECTS_DBG
) $(OBJECTS_CM
) $(OBJECTS_LDR
) $(OBJECTS_LPC
) \
289 $(OBJECTS_PO
) $(OBJECTS_KD
)
301 mkdir
$(OBJECTS_PATH
)
304 # Build subsystem intermediate objects
306 $(OBJECTS_PATH
)/hal.o
: $(OBJECTS_HAL
)
309 -o
$(OBJECTS_PATH
)/hal.o \
312 $(OBJECTS_PATH
)/io.o
: $(OBJECTS_IO
)
315 -o
$(OBJECTS_PATH
)/io.o \
318 $(OBJECTS_PATH
)/ke.o
: $(OBJECTS_KE
) $(OBJECTS_KE_I386
)
321 -o
$(OBJECTS_PATH
)/ke.o \
325 $(OBJECTS_PATH
)/rtl.o
: $(OBJECTS_RTL
)
328 -o
$(OBJECTS_PATH
)/rtl.o \
331 $(OBJECTS_PATH
)/mm.o
: $(OBJECTS_MM
) $(OBJECTS_MM_I386
)
334 -o
$(OBJECTS_PATH
)/mm.o \
338 $(OBJECTS_PATH
)/ob.o
: $(OBJECTS_OB
)
341 -o
$(OBJECTS_PATH
)/ob.o \
344 $(OBJECTS_PATH
)/ps.o
: $(OBJECTS_PS
)
347 -o
$(OBJECTS_PATH
)/ps.o \
350 $(OBJECTS_PATH
)/ex.o
: $(OBJECTS_EX
)
353 -o
$(OBJECTS_PATH
)/ex.o \
356 $(OBJECTS_PATH
)/fs.o
: $(OBJECTS_FS
)
359 -o
$(OBJECTS_PATH
)/fs.o \
362 $(OBJECTS_PATH
)/se.o
: $(OBJECTS_SE
)
365 -o
$(OBJECTS_PATH
)/se.o \
368 $(OBJECTS_PATH
)/cm.o
: $(OBJECTS_CM
)
371 -o
$(OBJECTS_PATH
)/cm.o \
374 $(OBJECTS_PATH
)/dbg.o
: $(OBJECTS_DBG
)
377 -o
$(OBJECTS_PATH
)/dbg.o \
380 $(OBJECTS_PATH
)/ldr.o
: $(OBJECTS_LDR
)
383 -o
$(OBJECTS_PATH
)/ldr.o \
386 $(OBJECTS_PATH
)/lpc.o
: $(OBJECTS_LPC
)
389 -o
$(OBJECTS_PATH
)/lpc.o \
392 $(OBJECTS_PATH
)/nls.o
: $(OBJECTS_NLS
)
395 -o
$(OBJECTS_PATH
)/nls.o \
398 $(OBJECTS_PATH
)/nt.o
: $(OBJECTS_NT
)
401 -o
$(OBJECTS_PATH
)/nt.o \
404 $(OBJECTS_PATH
)/po.o
: $(OBJECTS_PO
)
407 -o
$(OBJECTS_PATH
)/po.o \
410 $(OBJECTS_PATH
)/cc.o
: $(OBJECTS_CC
)
413 -o
$(OBJECTS_PATH
)/cc.o \
416 $(OBJECTS_PATH
)/kd.o
: $(OBJECTS_KD
)
419 -o
$(OBJECTS_PATH
)/kd.o \
422 $(TARGETNAME
).coff
: $(TARGETNAME
).rc ..
/include/reactos
/resource.h
425 # Note: ke.o MUST be the first file!!!
427 $(OBJECTS_PATH
)/ke.o \
428 $(OBJECTS_PATH
)/hal.o \
429 $(OBJECTS_PATH
)/cc.o \
430 $(OBJECTS_PATH
)/cm.o \
431 $(OBJECTS_PATH
)/dbg.o \
432 $(OBJECTS_PATH
)/ex.o \
433 $(OBJECTS_PATH
)/lpc.o \
434 $(OBJECTS_PATH
)/fs.o \
435 $(OBJECTS_PATH
)/io.o \
436 $(OBJECTS_PATH
)/kd.o \
437 $(OBJECTS_PATH
)/ldr.o \
438 $(OBJECTS_PATH
)/mm.o \
439 $(OBJECTS_PATH
)/nls.o \
440 $(OBJECTS_PATH
)/nt.o \
441 $(OBJECTS_PATH
)/ob.o \
442 $(OBJECTS_PATH
)/po.o \
443 $(OBJECTS_PATH
)/ps.o \
444 $(OBJECTS_PATH
)/rtl.o \
445 $(OBJECTS_PATH
)/se.o \
450 CLEAN_FILES
= $(OBJECTS_PATH
)\
*.o
cc\
*.o cm\
*.o dbg\
*.o ex\
*.o hal
\x86\
*.o io\
*.o \
451 ke\
*.o ldr\
*.o mm\
*.o nt\
*.o ob\
*.o ps\
*.o rtl\
*.o se\
*.o \
452 ke\i386\
*.o mm\i386\
*.o fs\
*.o po\
*.o nls\
*.o lpc\
*.o \
453 kd\
*.o
$(TARGETNAME
).o
$(TARGETNAME
).a junk.tmp base.tmp temp.exp \
454 $(TARGETNAME
).exe
$(TARGETNAME
).nostrip.exe
$(TARGETNAME
).sym
$(TARGETNAME
).coff
$(filter-out nt
/zw.
%, $(C_OBJECTS
:.o
=.d
))
456 CLEAN_FILES
= $(OBJECTS_PATH
)/*.o
cc/*.o cm
/*.o dbg
/*.o ex
/*.o hal
/x86
/*.o io
/*.o \
457 ke
/*.o ldr
/*.o mm
/*.o nt
/*.o ob
/*.o ps
/*.o rtl
/*.o se
/*.o \
458 ke
/i386
/*.o mm
/i386
/*.o fs
/*.o po
/*.o nls
/*.o lpc
/*.o \
459 kd
/*.o
$(TARGETNAME
).o
$(TARGETNAME
).a junk.tmp base.tmp temp.exp \
460 $(TARGETNAME
).exe
$(TARGETNAME
).nostrip.exe
$(TARGETNAME
).sym
$(TARGETNAME
).coff
$(filter-out nt
/zw.
%, $(C_OBJECTS
:.o
=.d
))
464 $(TARGETNAME
).nostrip.exe
: $(TARGETNAME
).o
$(TARGETNAME
).a
$(IE_DATA
)
466 -Wl
,-T
,ntoskrnl.lnk \
467 -nostartfiles
-nostdlib \
470 -Wl
,--subsystem
,native \
471 -Wl
,--image-base
,0xc0000000 \
472 -Wl
,--file-alignment
,0x1000 \
473 -Wl
,--section-alignment
,0x1000 \
474 -Wl
,--base-file
,base.tmp \
475 $(TARGETNAME
).o
-lgcc
478 --dllname
$(TARGETNAME
).exe \
479 --base-file base.tmp \
480 --output-exp temp.exp \
481 --def
$(TARGETNAME
).edf \
485 -nostartfiles
-nostdlib \
486 -Wl
,-T
,ntoskrnl.lnk \
488 -o
$(TARGETNAME
).nostrip.exe \
489 -Wl
,--subsystem
,native \
490 -Wl
,--image-base
,0xc0000000 \
491 -Wl
,--file-alignment
,0x1000 \
492 -Wl
,--section-alignment
,0x1000 \
494 $(TARGETNAME
).o
-lgcc
497 $(TARGETNAME
).exe
: $(TARGETNAME
).o
$(TARGETNAME
).a
502 -Wl
,-T
,ntoskrnl.lnk \
503 -nostartfiles
-nostdlib \
506 -Wl
,--subsystem
,native \
507 -Wl
,--image-base
,0xc0000000 \
508 -Wl
,--file-alignment
,0x1000 \
509 -Wl
,--section-alignment
,0x1000 \
510 -Wl
,--base-file
,base.tmp \
511 $(TARGETNAME
).o
-lgcc
514 --dllname
$(TARGETNAME
).exe \
515 --base-file base.tmp \
516 --output-exp temp.exp \
517 --def
$(TARGETNAME
).edf \
521 -Wl
,-T
,ntoskrnl.lnk \
522 -nostartfiles
-nostdlib \
524 -o
$(TARGETNAME
).exe \
525 -Wl
,--subsystem
,native \
526 -Wl
,--image-base
,0xc0000000 \
527 -Wl
,--file-alignment
,0x1000 \
528 -Wl
,--section-alignment
,0x1000 \
530 $(TARGETNAME
).o
-lgcc
532 $(NM
) --numeric-sort
$(TARGETNAME
).exe
> $(TARGETNAME
).sym
535 $(TARGETNAME
).o
: $(OBJECTS
)
541 $(TARGETNAME
).a
: $(TARGETNAME
).def
543 --dllname
$(TARGETNAME
).exe \
544 --def
$(TARGETNAME
).def \
545 --output-lib
$(TARGETNAME
).a \
548 clean: $(CLEAN_FILES
:%=%_clean
)
550 $(CLEAN_FILES
:%=%_clean
): %_clean
:
553 .PHONY
: clean $(CLEAN_FILES
:%=%_clean
)
555 install: $(FLOPPY_DIR
)/$(TARGETNAME
).exe
557 $(FLOPPY_DIR
)/$(TARGETNAME
).exe
: $(TARGETNAME
).exe
558 $(CP
) $(TARGETNAME
).exe
$(FLOPPY_DIR
)/$(TARGETNAME
).exe
562 dist: ..
/$(DIST_DIR
)/$(TARGETNAME
).exe
564 ..
/$(DIST_DIR
)/$(TARGETNAME
).exe
: $(TARGETNAME
).exe
565 $(CP
) $(TARGETNAME
).exe ..
/$(DIST_DIR
)/$(TARGETNAME
).exe
569 ex
/napi.o
: ex
/napi.c ..
/include/ntdll
/napi.h
571 ke
/main.o
: ke
/main.c ..
/include/reactos
/buildno.h
573 #include $(filter-out nt/zw.%, $(C_OBJECTS:.o=.d))
576 $(CC
) $(CFLAGS
) -M
-MG
$< | sed
-e
's#$(*F).o#$(@D)/&#g' | sed
-e
's@ /[^ ]*@@g' -e
's@^\(.*\)\.o:@\1.d \1.o:@' > $@
579 $(CC
) $(CFLAGS
) -M
-MG
$< | sed
-e
's#$(*F).o#$(@D)/&#g' | sed
-e
's@ /[^ ]*@@g' -e
's@^\(.*\)\.o:@\1.d \1.o:@' > $@
582 $(CC
) $(CFLAGS
) -M
-MG
$< | sed
-e
's#$(*F).o#$(@D)/&#g' | sed
-e
's@ /[^ ]*@@g' -e
's@^\(.*\)\.o:@\1.d \1.o:@' > $@
584 include $(PATH_TO_TOP
)/rules.mak