_itow, _ltow, _ultow added to crtdll.
[reactos.git] / reactos / lib / crtdll / makefile
index 6148568..83e8375 100644 (file)
@@ -1,12 +1,14 @@
-ifneq ($(HOST),mingw32-windows)
-  ifneq ($(HOST),mingw32-linux)
-    DLLTARGET=crtdll.a
-  else
-    DLLTARGET=crtdll.dll
-  endif
-else
-  DLLTARGET=crtdll.dll
-endif
+# $Id: makefile,v 1.42 2000/12/22 23:15:18 ea Exp $
+#
+# ReactOS Operating System
+#
+PATH_TO_TOP = ../..
+
+TARGET=crtdll
+DLLTARGET=$(TARGET).dll
+
+
+CFLAGS = 
 
 all: $(DLLTARGET)
 
@@ -83,7 +85,7 @@ STDIO_OBJECTS = stdio/getenv.o stdio/filbuf.o  \
                stdio/stdiohk.o stdio/stdhnd.o stdio/tempnam.o stdio/tmpfile.o stdio/tmpnam.o \
                stdio/ungetc.o stdio/printf.o stdio/vfprintf.o stdio/vprintf.o stdio/sprintf.o\
                stdio/fdopen.o stdio/vsprintf.o stdio/frlist.o stdio/fgetchar.o stdio/rmtmp.o\
-               stdio/fsopen.o stdio/popen.o
+               stdio/fsopen.o stdio/popen.o stdio/vfwprint.o
  
 QUAD_OBJECTS =  quad/qdivrem.o quad/divdi3.o quad/moddi3.o quad/udivdi3.o quad/umoddi3.o
 
@@ -101,7 +103,7 @@ STDLIB_OBJECTS = stdlib/abort.o stdlib/abs.o stdlib/atexit.o stdlib/atof.o stdli
                 stdlib/rand.o stdlib/senv.o stdlib/splitp.o stdlib/strtod.o stdlib/strtol.o \
                 stdlib/strtoul.o stdlib/swab.o stdlib/atol.o stdlib/rot.o stdlib/wcstomb.o\
                 stdlib/ecvt.o stdlib/ecvtbuf.o stdlib/gcvt.o  stdlib/fcvt.o stdlib/fcvtbuf.o\
-                stdlib/mbstowcs.o 
+                stdlib/mbstowcs.o stdlib/itow.o
 
 SIGNAL_OBJECTS = signal/signal.o signal/xcptfil.o signal/xcptinfo.o
 
@@ -132,7 +134,7 @@ MATH_OBJECTS = math/acos.o math/acosh.o math/asin.o math/asinh.o math/atan.o mat
                math/tanh.o math/stubs.o math/j0_y0.o math/j1_y1.o math/jn_yn.o\
                math/cabs.o math/ftol.o
 
-RESOURCE_OBJECT = crtdll.coff
+RESOURCE_OBJECT = $(TARGET).coff
 
 OBJECTS = $(MISC_OBJECTS) $(STDLIB_OBJECTS) $(IO_OBJECTS) \
          $(FLOAT_OBJECTS) $(ASSERT_OBJECTS) $(PROCESS_OBJECTS) \
@@ -148,45 +150,71 @@ CLEAN_FILES = assert\*.o conio\*.o ctype\*.o direct\*.o dirent\*.o \
        except\*.o float\*.o io\*.o libc\*.o locale\*.o malloc\*.o \
        math\*.o mbstring\*.o misc\*.o process\*.o quad\*.o search\*.o \
        setjmp\*.o stdio\*.o stdlib\*.o string\*.o sys_stat\*.o tchar\*.o \
-       time\*.o wchar\*.o crtdll.a crtdll.o crtdll.dll crtdll.sym
+       time\*.o wchar\*.o $(TARGET).a $(TARGET).o $(TARGET).dll $(TARGET).sym \
+       $(TARGET).coff
 else
 CLEAN_FILES = assert/*.o conio/*.o ctype/*.o direct/*.o dirent/*.o \
        except/*.o float/*.o io/*.o libc/*.o locale/*.o malloc/*.o \
        math/*.o mbstring/*.o misc/*.o process/*.o quad/*.o search/*.o \
        setjmp/*.o stdio/*.o stdlib/*.o string/*.o sys_stat/*.o tchar/*.o \
-       time/*.o wchar/*.o crtdll.a crtdll.o crtdll.dll crtdll.sym
+       time/*.o wchar/*.o $(TARGET).a $(TARGET).o $(TARGET).dll $(TARGET).sym \
+       $(TARGET).coff $(SIGNAL_OBJECTS)
 endif
 
-crtdll.coff: crtdll.rc ../../include/reactos/resource.h
-       windres crtdll.rc crtdll.coff
-
-crtdll.a: $(OBJECTS)
-       $(LD)  -r $(OBJECTS) -o crtdll.a
-
-crtdll.dll: $(DLLMAIN) $(OBJECTS) crtdll.def
-       $(LD) -r $(OBJECTS) -o crtdll.o
-       $(DLLTOOL) --dllname crtdll.dll --def crtdll.def \
-                  --output-lib crtdll.a
-       $(CC) -specs=crt_specs -mdll -o junk.tmp \
-             -Wl,--base-file,base.tmp crtdll.o  ../kernel32/kernel32.a 
+$(TARGET).coff: $(TARGET).rc ../../include/reactos/resource.h
+
+$(TARGET).a: $(OBJECTS)
+       $(LD)  -r $(OBJECTS) -o $(TARGET).a
+
+$(TARGET).dll: $(DLLMAIN) $(OBJECTS) $(TARGET).def
+       $(LD) -r $(OBJECTS) -o $(TARGET).o
+       $(DLLTOOL) \
+               --dllname $(TARGET).dll \
+               --def $(TARGET).def \
+               --output-lib $(TARGET).a
+       $(CC) \
+               -nostartfiles -nostdlib \
+               -mdll \
+               -o junk.tmp \
+               -Wl,--base-file,base.tmp \
+               -Wl,--entry=_DllMain@12 \
+               $(TARGET).o \
+               ../kernel32/kernel32.a -lgcc
        - $(RM) junk.tmp
-       $(DLLTOOL) --dllname crtdll.dll --base-file base.tmp \
-                  --output-exp temp.exp --def crtdll.def
+       $(DLLTOOL) \
+               --dllname $(TARGET).dll \
+               --base-file base.tmp \
+               --output-exp temp.exp \
+               --def $(TARGET).def
        - $(RM) base.tmp
-       $(CC) -specs=crt_specs -mdll -o crtdll.dll crtdll.o  \
-              ../kernel32/kernel32.a \
-             -Wl,--image-base,0x20000000 \
-             -Wl,--file-alignment,0x1000 \
-             -Wl,--section-alignment,0x1000 \
-             -Wl,temp.exp
+       $(CC) \
+               -nostartfiles -nostdlib \
+               -mdll \
+               -o $(TARGET).dll \
+               $(TARGET).o  \
+               ../kernel32/kernel32.a -lgcc \
+               -Wl,--image-base,0x77630000 \
+               -Wl,--file-alignment,0x1000 \
+               -Wl,--section-alignment,0x1000 \
+               -Wl,temp.exp \
+               -Wl,--entry=_DllMain@12
        - $(RM) temp.exp
-       $(NM) --numeric-sort crtdll.dll > crtdll.sym
+       $(NM) --numeric-sort $(TARGET).dll > $(TARGET).sym
 
 clean: $(CLEAN_FILES:%=%_clean)
 
 $(CLEAN_FILES:%=%_clean): %_clean:
        - $(RM) $*
 
+install: $(FLOPPY_DIR)/dlls/$(TARGET).dll
+
+$(FLOPPY_DIR)/dlls/$(TARGET).dll: $(TARGET).dll
+       $(CP) $(TARGET).dll $(FLOPPY_DIR)/dlls/$(TARGET).dll
+
+dist: $(DIST_DIR)/dlls/$(TARGET).dll
+
+$(DIST_DIR)/dlls/$(TARGET).dll: $(TARGET).dll
+       $(CP) $(TARGET).dll ../../$(DIST_DIR)/dlls/$(TARGET).dll
 
 include ../../rules.mak