reactos/reactos/lib/msvcrt/Makefile
David Welch ddfa2017c7 Added .o -> .sys rule to simplify driver makefiles
Added PATH_TO_ROOT variable to most makefiles
Added system independant install utility
Implemented prototype system for changing individual regions without a
memory area
Added some interesting articles from usenet

svn path=/trunk/; revision=1306
2000-08-18 22:27:09 +00:00

117 lines
2.3 KiB
Makefile

# $Id: Makefile,v 1.3 2000/08/18 22:27:00 dwelch Exp $
#
# ReactOS Operating System
#
PATH_TO_TOP = ../..
TARGET_NAME=msvcrt
TARGET_DLL=$(TARGET_NAME).dll
BASE_CFLAGS = -I../../include
all: $(TARGET_DLL)
OBJECTS_MISC = \
misc/dllmain.o \
misc/msvcrt.coff
OBJECTS_PROCESS = \
process/thread.o
OBJECTS_STDLIB = \
stdlib/errno.o
OBJECTS = \
$(OBJECTS_MISC) \
$(OBJECTS_PROCESS) \
$(OBJECTS_STDLIB)
ifeq ($(DOSCLI), yes)
CLEAN_FILES = \
misc\*.o \
misc\*.coff \
process\*.o \
stdlib\*.o \
$(TARGET_NAME).a \
$(TARGET_NAME).o \
$(TARGET_NAME).dll \
$(TARGET_NAME).sym
else
CLEAN_FILES = \
misc/*.o \
misc/*.coff \
process/*.o \
stdlib/*.o \
$(TARGET_NAME).a \
$(TARGET_NAME).o \
$(TARGET_NAME).dll \
$(TARGET_NAME).sym
endif
$(TARGET_NAME).coff: $(TARGET_NAME).rc ../../include/reactos/resource.h
$(TARGET_NAME).a: $(OBJECTS)
$(LD) -r $(OBJECTS) -o $(TARGET_NAME).a
$(TARGET_NAME).dll: $(DLLMAIN) $(OBJECTS) misc/$(TARGET_NAME).def
$(LD) -r $(OBJECTS) -o $(TARGET_NAME).o
$(DLLTOOL) \
--dllname $(TARGET_NAME).dll \
--def misc/$(TARGET_NAME).def \
--output-lib misc/$(TARGET_NAME).a
$(CC) \
-specs=misc/$(TARGET_NAME)_specs \
-mdll \
-o junk.tmp \
-Wl,--base-file,base.tmp \
$(TARGET_NAME).o \
../kernel32/kernel32.a
- $(RM) junk.tmp
$(DLLTOOL) \
--dllname $(TARGET_NAME).dll \
--base-file base.tmp \
--output-exp temp.exp \
--def misc/$(TARGET_NAME).def
- $(RM) base.tmp
$(CC) \
-specs=misc/$(TARGET_NAME)_specs \
-mdll \
-o $(TARGET_NAME).dll \
$(TARGET_NAME).o \
../kernel32/kernel32.a \
-Wl,--image-base,0x77630000 \
-Wl,--file-alignment,0x1000 \
-Wl,--section-alignment,0x1000 \
-Wl,temp.exp
- $(RM) temp.exp
$(NM) --numeric-sort $(TARGET_NAME).dll > $(TARGET_NAME).sym
clean: $(CLEAN_FILES:%=%_clean)
$(CLEAN_FILES:%=%_clean): %_clean:
- $(RM) $*
install: $(FLOPPY_DIR)/dlls/$(TARGET_NAME).dll
$(FLOPPY_DIR)/dlls/$(TARGET_NAME).dll: $(TARGET_NAME).dll
ifeq ($(DOSCLI),yes)
$(CP) $(TARGET_NAME).dll $(FLOPPY_DIR)\dlls\$(TARGET_NAME).dll
else
$(CP) $(TARGET_NAME).dll $(FLOPPY_DIR)/dlls/$(TARGET_NAME).dll
endif
dist: $(DIST_DIR)/dlls/$(TARGET_NAME).dll
$(DIST_DIR)/dlls/$(TARGET_NAME).dll: $(TARGET_NAME).dll
ifeq ($(DOSCLI),yes)
$(CP) $(TARGET_NAME).dll ..\..\$(DIST_DIR)\dlls\$(TARGET_NAME).dll
else
$(CP) $(TARGET_NAME).dll ../../$(DIST_DIR)/dlls/$(TARGET_NAME).dll
endif
include ../../rules.mak