-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)
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
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
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) \
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