*** empty log message ***
[reactos.git] / reactos / ntoskrnl / makefile_rex
index c93d0a7..44f3a2b 100644 (file)
@@ -1,4 +1,12 @@
-all: kimage
+# $Id: makefile_rex,v 1.52 2000/02/24 23:31:27 ea Exp $
+#
+# ReactOS Operating System
+#
+TARGET=ntoskrnl
+
+BASE_CFLAGS = -I../include -D__NTOSKRNL__
+
+all: objects $(TARGET).exe
 
 #
 # Defines $(HAL_OBJECTS)
@@ -7,22 +15,28 @@ include hal/x86/sources
 
 NT_OBJECTS = nt/port.o nt/channel.o nt/ntevent.o nt/nttimer.o nt/atom.o \
              nt/evtpair.o nt/ntsem.o nt/mutant.o nt/misc.o nt/plugplay.o \
-            nt/profile.o
+             nt/profile.o nt/nt.o nt/zw.o
 
-RTL_OBJECTS = rtl/vsprintf.o rtl/lookas.o rtl/unicode.o rtl/strtok.o \
-              rtl/time.o rtl/unalign.o rtl/mem.o rtl/largeint.o rtl/ctype.o \
-             rtl/list.o rtl/slist.o rtl/interlck.o rtl/return.o \
-             rtl/wstring.o
+RTL_OBJECTS = rtl/ctype.o rtl/interlck.o rtl/largeint.o  rtl/list.o \
+              rtl/lookas.o rtl/mem.o rtl/memchr.o rtl/memcpy.o \
+              rtl/memmove.o rtl/memset.o  rtl/nls.o rtl/regio.o \
+              rtl/return.o rtl/slist.o rtl/sprintf.o rtl/swprintf.o \
+              rtl/stdlib.o rtl/string.o rtl/time.o rtl/unalign.o \
+              rtl/unicode.o rtl/wstring.o
 
-KE_OBJECTS = ke/main.o ke/timer.o ke/error.o ke/catch.o ke/exports.o \
-             ke/module.o ke/dpc.o ke/wait.o ke/kqueue.o ke/dispatch.o \
+KE_OBJECTS = ke/main.o ke/timer.o ke/error.o ke/catch.o \
+             ke/dpc.o ke/wait.o ke/kqueue.o ke/dispatch.o \
             ke/sem.o ke/critical.o ke/event.o ke/apc.o ke/bug.o \
-            ke/mutex.o ke/kernel.o ke/ldt.o ke/apchelp.o
+            ke/mutex.o ke/kernel.o ke/ldt.o \
+            ke/process.o ke/gdt.o ke/idt.o ke/udelay.o
 
+KE_I386_OBJECTS = ke/i386/thread.o ke/i386/usercall.o ke/i386/exp.o
 MM_OBJECTS = mm/mm.o mm/freelist.o mm/pool.o mm/virtual.o \
              mm/mdl.o mm/zone.o mm/special.o mm/paging.o \
-            mm/section.o mm/marea.o mm/ppool.o mm/npool.o
+            mm/section.o mm/marea.o mm/ppool.o mm/npool.o mm/pagefile.o
 
+MM_I386_OBJECTS = mm/i386/page.o mm/i386/memsafe.o
 
 IO_OBJECTS = io/iomgr.o io/create.o io/irp.o io/device.o io/rw.o \
              io/queue.o io/drvlck.o io/timer.o io/share.o io/errlog.o \
@@ -32,26 +46,40 @@ IO_OBJECTS = io/iomgr.o io/create.o io/irp.o io/device.o io/rw.o \
             io/fs.o io/vpb.o io/buildirp.o io/flush.o io/dir.o io/iocomp.o \
             io/mailslot.o io/npipe.o io/lock.o io/page.o io/cleanup.o
 
-OB_OBJECTS = ob/object.o ob/handle.o ob/namespc.o
+OB_OBJECTS = ob/object.o ob/handle.o ob/namespc.o ob/ntobj.o ob/dirobj.o \
+             ob/security.o
 
 PS_OBJECTS = ps/psmgr.o ps/thread.o ps/process.o ps/idle.o ps/kill.o \
-             ps/tinfo.o
+             ps/tinfo.o ps/create.o
 
 EX_OBJECTS = ex/work.o ex/fmutex.o ex/resource.o ex/time.o ex/interlck.o \
              ex/callback.o ex/napi.o ex/power.o ex/sysinfo.o ex/locale.o \
-            ex/stamp.o
+             ex/stamp.o ex/init.o
+
+FS_OBJECTS = fs/name.o fs/mcb.o fs/unc.o fs/util.o
 
-SE_OBJECTS = se/semgr.o
+SE_OBJECTS = se/semgr.o se/acl.o se/sid.o se/sd.o se/token.o se/luid.o \
+             se/priv.o
 
 CM_OBJECTS = cm/registry.o
 
-TST_OBJECTS = tst/test.o tst/sshell.o tst/readline.o
+DBG_OBJECTS = dbg/brkpoint.o dbg/errinfo.o dbg/print.o
+
+LDR_OBJECTS = ldr/loader.o ldr/init.o ldr/syspath.o ldr/sysdll.o ldr/rtl.o \
+              ldr/userldr.o
 
-DBG_OBJECTS = dbg/brkpoint.o
+NLS_OBJECTS = nls/nls.o
 
-LDR_OBJECTS = ldr/loader.o
+PO_OBJECTS = po/power.o
 
-CC_OBJECTS = cc/cacheman.o cc/block.o
+CC_OBJECTS = cc/cacheman.o cc/view.o
+
+KD_OBJECTS = kd/kdebug.o kd/service.o
+
+RESOURCE_OBJECT = $(TARGET).coff
+
+objects:
+       mkdir objects
 
 objects/hal.o: $(HAL_OBJECTS)
        $(LD) -r $(HAL_OBJECTS) -o objects/hal.o
@@ -59,14 +87,14 @@ objects/hal.o: $(HAL_OBJECTS)
 objects/io.o: $(IO_OBJECTS)
        $(LD) -r $(IO_OBJECTS) -o objects/io.o
 
-objects/ke.o: $(KE_OBJECTS)
-       $(LD) -r $(KE_OBJECTS) -o objects/ke.o
+objects/ke.o: $(KE_OBJECTS) $(KE_I386_OBJECTS)
+       $(LD) -r $(KE_OBJECTS) $(KE_I386_OBJECTS) -o objects/ke.o
 
 objects/rtl.o: $(RTL_OBJECTS)
        $(LD) -r $(RTL_OBJECTS) -o objects/rtl.o
 
-objects/mm.o: $(MM_OBJECTS)
-       $(LD) -r $(MM_OBJECTS) -o objects/mm.o
+objects/mm.o: $(MM_OBJECTS) $(MM_I386_OBJECTS)
+       $(LD) -r $(MM_OBJECTS) $(MM_I386_OBJECTS) -o objects/mm.o
 
 objects/ob.o: $(OB_OBJECTS)
        $(LD) -r $(OB_OBJECTS) -o objects/ob.o
@@ -77,51 +105,149 @@ objects/ps.o: $(PS_OBJECTS)
 objects/ex.o: $(EX_OBJECTS)
        $(LD) -r $(EX_OBJECTS) -o objects/ex.o
 
+objects/fs.o: $(FS_OBJECTS)
+       $(LD) -r $(FS_OBJECTS) -o objects/fs.o
+
 objects/se.o: $(SE_OBJECTS)
        $(LD) -r $(SE_OBJECTS) -o objects/se.o
 
 objects/cm.o: $(CM_OBJECTS)
        $(LD) -r $(CM_OBJECTS) -o objects/cm.o
 
-objects/tst.o: $(TST_OBJECTS)
-       $(LD) -r $(TST_OBJECTS) -o objects/tst.o
-
 objects/dbg.o: $(DBG_OBJECTS)
        $(LD) -r $(DBG_OBJECTS) -o objects/dbg.o
 
+objects/ldr.o: $(LDR_OBJECTS)
+       $(LD) -r $(LDR_OBJECTS) -o objects/ldr.o
+
+objects/nls.o: $(NLS_OBJECTS)
+       $(LD) -r $(NLS_OBJECTS) -o objects/nls.o
+
 objects/nt.o: $(NT_OBJECTS)
        $(LD) -r $(NT_OBJECTS) -o objects/nt.o
 
+objects/po.o: $(PO_OBJECTS)
+       $(LD) -r $(PO_OBJECTS) -o objects/po.o
+
 objects/cc.o: $(CC_OBJECTS)
        $(LD) -r $(CC_OBJECTS) -o objects/cc.o
 
-OBJECTS = objects/hal.o objects/ke.o objects/rtl.o objects/mm.o \
-          objects/io.o objects/ob.o objects/ps.o objects/ex.o \
-         objects/se.o objects/cm.o objects/tst.o objects/dbg.o\
-         objects/nt.o objects/cc.o
-                 
-         
-utils/export/export$(EXE_POSTFIX): utils/export/export.c
-       $(NATIVE_CC) -g utils/export/export.c -o utils/export/export$(EXE_POSTFIX)
-
-ke/exports.o: exports.lst utils/export/export$(EXE_POSTFIX)
-       utils/export/export$(EXE_POSTFIX) < exports.lst > ke/exports.c
-       $(CC) $(CFLAGS) -c ke/exports.c -o ke/exports.o
+objects/kd.o: $(KD_OBJECTS)
+       $(LD) -r $(KD_OBJECTS) -o objects/kd.o
 
-kimage: $(OBJECTS)
-       $(LD) --defsym _end=end --defsym _etext=etext $(KERNEL_BFD_TARGET) -Ttext c0000000 $(LDFLAGS) $(OBJECTS) $(LIBGCC) -o kimage
-       $(NM) --numeric-sort kimage > kernel.sym
-       $(OBJCOPY) -S --gap-fill=0 -O binary kimage kimage.bin
+$(TARGET).coff: $(TARGET).rc ../include/reactos/resource.h
 
-old_kimage: $(OBJECTS)
-       $(LD) --defsym _end=end --defsym _etext=etext --oformat=$(KERNEL_BFD_TARGET) -Ttext c0000000 $(LDFLAGS) $(OBJECTS) $(LIBGCC) -o kimage
-       $(NM) --numeric-sort kimage > kernel.sym
-       $(OBJCOPY) -S --gap-fill=0 -O binary kimage kimage.bin
 
-dummy:
+OBJECTS = objects/hal.o objects/ke.o objects/rtl.o objects/mm.o \
+          objects/io.o objects/ob.o objects/ps.o objects/ex.o \
+          objects/se.o objects/cm.o objects/dbg.o objects/nt.o \
+          objects/cc.o objects/kd.o objects/ldr.o objects/fs.o \
+         objects/po.o objects/nls.o \
+          $(TARGET).coff
+
+ifeq ($(DOSCLI),yes)
+CLEAN_FILES = objects\*.o cc\*.o cm\*.o dbg\*.o ex\*.o hal\x86\*.o io\*.o \
+              ke\*.o ldr\*.o mm\*.o nt\*.o ob\*.o ps\*.o rtl\*.o se\*.o \
+             ke\i386\*.o mm\i386\*.o fs\*.o po\*.o nls\*.o \
+              kd\*.o utils\export\export.exe $(TARGET).o $(TARGET).a junk.tmp \
+              base.tmp temp.exp $(TARGET).exe $(TARGET).sym $(TARGET).coff
+else
+CLEAN_FILES = objects/*.o cc/*.o cm/*.o dbg/*.o ex/*.o hal/x86/*.o io/*.o \
+              ke/*.o ldr/*.o mm/*.o nt/*.o ob/*.o ps/*.o rtl/*.o se/*.o \
+             ke/i386/*.o mm/i386/*.o fs/*.o po/*.o nls/*.o \
+              kd/*.o utils/export/export $(TARGET).o $(TARGET).a junk.tmp \
+              base.tmp temp.exp $(TARGET).exe $(TARGET).sym $(TARGET).coff
+endif
+
+$(TARGET).exe: $(OBJECTS) $(TARGET).def
+       $(LD) \
+               -r $(OBJECTS) \
+               -o $(TARGET).o
+       $(DLLTOOL) \
+               --dllname $(TARGET).exe \
+               --def $(TARGET).def \
+               --kill-at \
+               --output-lib $(TARGET).a
+       $(CC) \
+               $(TARGET).o \
+               -Wl,-d -specs=../specs \
+               -mdll \
+               -o junk.tmp \
+               -Wl,--image-base,0xc0000000 \
+               -Wl,--file-alignment,0x1000 \
+               -Wl,--section-alignment,0x1000 \
+               -Wl,--defsym,_edata=__data_end__ \
+               -Wl,--defsym,_end=__bss_end__ \
+               -Wl,--defsym,_etext=etext \
+               -Wl,--base-file,base.tmp
+       - $(RM) junk.tmp
+       $(DLLTOOL) \
+               --dllname $(TARGET).exe \
+               --base-file base.tmp \
+               --output-exp temp.exp \
+               --def $(TARGET).edf
+       - $(RM) base.tmp
+       $(CC) \
+               $(TARGET).o \
+               -Wl,-d -specs=../specs \
+               -mdll \
+               -o $(TARGET).exe \
+               -Wl,--image-base,0xc0000000 \
+               -Wl,--file-alignment,0x1000 \
+               -Wl,--section-alignment,0x1000 \
+               -Wl,--defsym,_end=__bss_end__ \
+               -Wl,--defsym,_edata=__data_end__ \
+               -Wl,--defsym,_etext=etext \
+               -Wl,temp.exp
+       - $(RM) temp.exp
+       $(NM) --numeric-sort $(TARGET).exe > $(TARGET).sym
+
+$(TARGET).o: $(OBJECTS)
+       $(LD) \
+               -r $(OBJECTS) \
+               -o $(TARGET).o
+
+$(TARGET).a: $(TARGET).def
+       $(DLLTOOL) \
+               --dllname $(TARGET).exe \
+               --def $(TARGET).def \
+               --output-lib $(TARGET).a
+
+clean: $(CLEAN_FILES:%=%_clean)
+
+$(CLEAN_FILES:%=%_clean): %_clean:
+       - $(RM) $*
+
+.PHONY: clean $(CLEAN_FILES:%=%_clean)
+
+floppy: $(FLOPPY_DIR)/$(TARGET).exe
+
+$(FLOPPY_DIR)/$(TARGET).exe: $(TARGET).exe
+ifeq ($(DOSCLI),yes)
+       $(CP) $(TARGET).exe $(FLOPPY_DIR)\$(TARGET).exe
+else
+       $(CP) $(TARGET).exe $(FLOPPY_DIR)/$(TARGET).exe
+endif
+
+.PHONY: dist
+
+dist: ../$(DIST_DIR)/$(TARGET).exe
+
+../$(DIST_DIR)/$(TARGET).exe: $(TARGET).exe
+ifeq ($(DOSCLI),yes)
+       $(CP) $(TARGET).exe ..\$(DIST_DIR)\$(TARGET).exe
+else
+       $(CP) $(TARGET).exe ../$(DIST_DIR)/$(TARGET).exe
+endif
+
+.PHONY: dist
 
 ex/napi.o: ex/napi.c ../include/ntdll/napi.h
 
-WITH_DEBUGGING = yes
+ke/main.o: ke/main.c ../include/reactos/buildno.h
+
+#WITH_DEBUGGING = yes
 WIN32_LEAN_AND_MEAN = yes
+WARNINGS_ARE_ERRORS = yes
 include ../rules.mak
+