#
+# ReactOS makefile for CMD
#
-LIB=../../lib
-COMMON=../common
+PATH_TO_TOP=..
+TARGET=cmd.exe
-# target: raw binary (does not work right now)
-#all: cmd.bin
+all: $(TARGET)
-# target: executable (not tested/experimental)
-all: cmd.exe
+OBJECTS = cmd.o attrib.o alias.o batch.o beep.o call.o chcp.o choice.o \
+ cls.o cmdinput.o cmdtable.o color.o console.o copy.o date.o del.o \
+ delay.o dir.o dirstack.o echo.o error.o filecomp.o for.o free.o \
+ goto.o history.o if.o internal.o label.o locale.o memory.o misc.o \
+ move.o msgbox.o path.o pause.o prompt.o redir.o ren.o screen.o \
+ set.o shift.o start.o strtoclr.o time.o timer.o title.o type.o \
+ ver.o verify.o vol.o where.o window.o cmd.coff
-OBJECTS = $(COMMON)/crt0.o cmd.o attrib.o alias.o batch.o beep.o call.o cls.o cmdinput.o cmdtable.o\
- color.o date.o del.o dir.o echo.o err_hand.o error.o filecomp.o for.o goto.o history.o if.o\
- internal.o label.o misc.o path.o pause.o redir.o ren.o set.o shift.o tempfile.o time.o type.o ver.o\
- verify.o where.o
+CLEAN_FILES = *.o cmd.exe cmd.sym cmd.coff
-LIBS = $(LIB)/mingw32/mingw32.a $(LIB)/crtdll/crtdll.a \
- $(LIB)/kernel32/kernel32.a $(LIB)/ntdll/ntdll.a
-
-cmd.bin: $(OBJECTS)
- $(LD) -Ttext 0x10000 $(OBJECTS) $(LIBS) -o cmd.exe
- $(OBJCOPY) -O binary cmd.exe cmd.bin
cmd.exe: $(OBJECTS)
- $(LD) $(OBJECTS) $(LIBS) -o cmd.exe
+ $(CC) $(OBJECTS) -lkernel32 -lmsvcrt -luser32 -o cmd.exe
+ $(NM) --numeric-sort cmd.exe > cmd.sym
+
+
+clean: $(CLEAN_FILES:%=%_clean)
+
+$(CLEAN_FILES:%=%_clean): %_clean:
+ - $(RM) $*
+
+.phony: clean $(CLEAN_FILES:%=%_clean)
+
+
+floppy: $(TARGET:%=$(FLOPPY_DIR)/apps/%)
+
+$(TARGET:%=$(FLOPPY_DIR)/apps/%): $(FLOPPY_DIR)/apps/%: %
+ifeq ($(DOSCLI),yes)
+ $(CP) $* $(FLOPPY_DIR)\apps\$*
+else
+ $(CP) $* $(FLOPPY_DIR)/apps/$*
+endif
+
+
+dist: $(TARGET:%=$(PATH_TO_TOP)/$(DIST_DIR)/apps/%)
+
+$(TARGET:%=$(PATH_TO_TOP)/$(DIST_DIR)/apps/%): $(PATH_TO_TOP)/$(DIST_DIR)/apps/%: %
+ifeq ($(DOSCLI),yes)
+ $(CP) $* $(PATH_TO_TOP)\$(DIST_DIR)\apps\$*
+else
+ $(CP) $* $(PATH_TO_TOP)/$(DIST_DIR)/apps/$*
+endif
-include ../../rules.mak
+include $(PATH_TO_TOP)/rules.mak
+# EOF