# The CRT can't be built with link-time code generation because of
# LNK1237: "code gen introduced reference to non-native symbol" for intrinsics.
FORCENATIVEOBJECT = 1

TARGETPATH=obj
SOURCES =

LINKER_FLAGS=-ignore:4006
LIBRARIAN_FLAGS=-ignore:4006

!if 0
!if $(FREEBUILD)
D=
!else
D=d
!endif
!endif

RTDLLNAME=msvcrt$(D)

SYNCHRONIZE_DRAIN=1

!IF "$(CRTLIBTYPE)" == "DLL"

TARGETNAME=$(RTDLLNAME)
TARGETTYPE=DYNLINK
TARGETPATHLIB=obj

LIBRARIAN_FLAGS=$(LIBRARIAN_FLAGS) -ignore:4102

DLLBASE=0x10100000
DLLENTRY=_CRTDLL_INIT
UMTYPE=windows

USE_NOLIBS=1

C_DEFINES = "-DDLLNAME="$(RTDLLNAME).dll"" -DNT_BUILD

DLLDEF = $(O)\ntcrt.def

CONVERT_OBJS  = ..\..\..\crtw32\convert\dll\$O\convert.lib
DIRECT_OBJS   = ..\..\..\crtw32\direct\dll\$O\direct.lib
DLLSTUFF_OBJS = ..\..\..\crtw32\dllstuff\dll\$O\dllstuff.lib
DOS_OBJS      = ..\..\..\crtw32\dos\dll\$O\dos.lib
EH_OBJS       = ..\..\..\crtw32\eh\dll\$O\eh.lib
EXEC_OBJS     = ..\..\..\crtw32\exec\dll\$O\exec.lib
HEAP_OBJS     = ..\..\..\crtw32\heap\dll\$O\heap.lib
HELPER_OBJS   = ..\..\..\crtw32\helper\dll\$O\helper.lib
LOWIO_OBJS    = ..\..\..\crtw32\lowio\dll\$O\lowio.lib
MBSTRING_OBJS = ..\..\..\crtw32\mbstring\dll\$O\mbstring.lib
MISC_OBJS     = ..\..\..\crtw32\misc\dll\$O\misc.lib
STARTUP_OBJS  = ..\..\..\crtw32\startup\dll\$O\startup.lib
STDIO_OBJS    = ..\..\..\crtw32\stdio\dll\$O\stdio.lib
STRING_OBJS   = ..\..\..\crtw32\string\dll\$O\string.lib
TIME_OBJS     = ..\..\..\crtw32\time\dll\$O\time.lib

LINKLIBS = \
    $(CONVERT_OBJS) \
    $(DIRECT_OBJS) \
    $(DLLSTUFF_OBJS) \
    $(DOS_OBJS) \
    $(EH_OBJS) \
    $(EXEC_OBJS) \
    $(HEAP_OBJS) \
    $(HELPER_OBJS) \
    $(LOWIO_OBJS) \
    $(MBSTRING_OBJS) \
    $(MISC_OBJS) \
    $(STARTUP_OBJS) \
    $(STDIO_OBJS) \
    $(STRING_OBJS) \
    $(TIME_OBJS) \
    ..\..\..\fpw32\conv\dll\$O\conv.lib \
    ..\..\..\fpw32\tran\dll\$O\tran.lib

TARGETLIBS = \
    $(SDK_LIB_PATH)\kernel32.lib \
    $(SDK_LIB_PATH)\ntdll.lib

!ELSEIF "$(CRTLIBTYPE)" == "DLLLIB"

TARGETNAME=$(RTDLLNAME)
TARGETTYPE=LIBRARY

OBJLIBFILES = \
    ..\..\..\crtw32\dllstuff\dlllib\$O\dllstuff.lib \
    ..\..\..\crtw32\eh\dlllib\$O\eh.lib \
    ..\..\..\crtw32\helper\dlllib\$O\helper.lib \
    ..\..\..\crtw32\lowio\dlllib\$O\lowio.lib \
    ..\..\..\crtw32\misc\dlllib\$O\misc.lib \
    ..\..\..\crtw32\startup\dlllib\$O\startup.lib \
    ..\..\..\crtw32\stdio\dlllib\$O\stdio.lib \
!if $(IA64)
    ..\..\..\crtw32\string\dll\$(O)\_memmove.obj \
    ..\..\..\crtw32\string\dll\$(O)\_memset.obj \
    ..\..\..\crtw32\string\dll\$(O)\_memcpy.obj \
!endif
    ..\..\..\crtw32\heap\dlllib\$O\heap.lib \
    ..\dll\$O\$(RTDLLNAME).lib

!ELSEIF "$(CRTLIBTYPE)" == "MT"

TARGETNAME=libcmt$D
TARGETTYPE=LIBRARY

OBJLIBFILES = \
    ..\..\..\crtw32\convert\mt\$O\convert.lib \
    ..\..\..\crtw32\direct\mt\$O\direct.lib \
    ..\..\..\crtw32\dos\mt\$O\dos.lib \
    ..\..\..\crtw32\eh\mt\$O\eh.lib \
    ..\..\..\crtw32\exec\mt\$O\exec.lib \
    ..\..\..\crtw32\helper\mt\$O\helper.lib \
    ..\..\..\crtw32\lowio\mt\$O\lowio.lib \
    ..\..\..\crtw32\mbstring\mt\$O\mbstring.lib \
    ..\..\..\crtw32\misc\mt\$O\misc.lib \
    ..\..\..\crtw32\startup\mt\$O\startup.lib \
    ..\..\..\crtw32\stdio\mt\$O\stdio.lib \
    ..\..\..\crtw32\string\mt\$O\string.lib \
    ..\..\..\crtw32\time\mt\$O\time.lib \
    ..\..\..\crtw32\heap\mt\$O\heap.lib \
    ..\..\..\fpw32\conv\mt\$O\conv.lib \
    ..\..\..\fpw32\tran\mt\$O\tran.lib

!ELSEIF "$(CRTLIBTYPE)" == "ST"

TARGETNAME=libc$D
TARGETTYPE=LIBRARY

OBJLIBFILES = \
    ..\..\..\crtw32\convert\st\$O\convert.lib \
    ..\..\..\crtw32\direct\st\$O\direct.lib \
    ..\..\..\crtw32\dos\st\$O\dos.lib \
    ..\..\..\crtw32\eh\st\$O\eh.lib \
    ..\..\..\crtw32\exec\st\$O\exec.lib \
    ..\..\..\crtw32\helper\st\$O\helper.lib \
    ..\..\..\crtw32\lowio\st\$O\lowio.lib \
    ..\..\..\crtw32\mbstring\st\$O\mbstring.lib \
    ..\..\..\crtw32\misc\st\$O\misc.lib \
    ..\..\..\crtw32\startup\st\$O\startup.lib \
    ..\..\..\crtw32\stdio\st\$O\stdio.lib \
    ..\..\..\crtw32\string\st\$O\string.lib \
    ..\..\..\crtw32\time\st\$O\time.lib \
    ..\..\..\crtw32\heap\st\$O\heap.lib \
    ..\..\..\fpw32\conv\st\$O\conv.lib \
    ..\..\..\fpw32\tran\st\$O\tran.lib

!ELSEIF "$(CRTLIBTYPE)" == "STP"

TARGETNAME=libcp$D
TARGETTYPE=LIBRARY

OBJLIBFILES = \
    ..\..\..\crtw32\stdcpp\stp\$O\stdcpp.lib

!ELSEIF "$(CRTLIBTYPE)" == "NT"

TARGETNAME=libcntpr
TARGETTYPE=LIBRARY

OBJLIBFILES = \
    ..\..\..\crtw32\convert\nt\$O\convert.lib \
    ..\..\..\crtw32\hack\nt\$O\hack.lib    \
    ..\..\..\crtw32\helper\nt\$O\helper.lib  \
    ..\..\..\crtw32\misc\nt\$O\misc.lib    \
    ..\..\..\crtw32\startup\nt\$O\startup.lib \
    ..\..\..\crtw32\stdio\nt\$O\stdio.lib   \
    ..\..\..\crtw32\string\nt\$O\string.lib  \
    ..\..\..\fpw32\tran\nt\$O\tran.lib

!ELSEIF "$(CRTLIBTYPE)" == "POSIX"

TARGETNAME=libcpsx
TARGETTYPE=LIBRARY

OBJLIBFILES = \
    ..\..\..\crtw32\convert\psx\$O\convert.lib \
    ..\..\..\crtw32\helper\psx\$O\helper.lib \
    ..\..\..\crtw32\mbstring\psx\$O\mbstring.lib \
    ..\..\..\crtw32\misc\psx\$O\misc.lib \
    ..\..\..\crtw32\startup\psx\$O\startup.lib \
    ..\..\..\crtw32\stdio\psx\$O\stdio.lib \
    ..\..\..\crtw32\string\psx\$O\string.lib \
    ..\..\..\crtw32\time\psx\$O\time.lib \
    ..\..\..\crtw32\heap\psx\$O\heap.lib \
    ..\..\..\fpw32\conv\psx\$O\conv.lib \
    ..\..\..\fpw32\tran\psx\$O\tran.lib

!ELSEIF "$(CRTLIBTYPE)" == "EXSUP"

TARGETNAME=exsup
TARGETTYPE=LIBRARY

OBJLIBFILES = \
    ..\..\..\crtw32\misc\nt\$(O)\exsup.obj \
    ..\..\..\crtw32\misc\nt\$(O)\exsup2.obj \
    ..\..\..\crtw32\misc\nt\$(O)\exsup3.obj \
    ..\..\..\crtw32\misc\nt\$(O)\sehsupp.obj \
    ..\..\..\crtw32\misc\nt\$(O)\setjmp.obj \
    ..\..\..\crtw32\misc\nt\$(O)\setjmp3.obj \
    ..\..\..\crtw32\misc\nt\$(O)\setjmpex.obj \
    ..\..\..\crtw32\misc\nt\$(O)\longjmp.obj

!ELSE
!ERROR Unsupported Library CRTLIBTYPE: $(CRTLIBTYPE)
!ENDIF

TARGETEXEFILES = $(TARGETPATH)\$(TARGET_DIRECTORY)\$(TARGETNAME).$(TARGETEXT)

!if "$(CRTLIBTYPE)" != "DLL"
PASS1_PUBLISH= \
!if $(IA64) && "$(CRTLIBTYPE)" == "NT"
    {$(PROJECT_ROOT)\crts\libw32\lib\nt\ia64\libcntpr.lib=$(SDK_LIB_PATH)\libcntpr.lib}
!else 
    {$(TARGETPATH)\$(TARGET_DIRECTORY)\$(TARGETNAME).lib=$(SDK_LIB_PATH)\$(TARGETNAME).lib}
!endif
!endif