#### #crtlib - release scheme for CRT projects # # Copyright (c) 1991-1992, Microsoft Corporation. All rights reserved. # #Purpose: # This makefile collects and creates all the various libs/objs/etc # that compose the C Run-Time (CRT) delivery files. Before building # this project, you must have built the following projects: # # crt32 = LIBC components # fp32 = floating-point math components # # This makefile is sensitive to the various CRT project names and # directory layout. # #Revision History: # 09-30-91 JCR Project created. # 01-25-92 GJF Added DLL support. # 02-27-92 GJF Fixed recursive macro def. Removed build of emulator. # 05-26-92 DJM POSIX support. # ################################################################################ !IFNDEF 386 386=0 !ENDIF !IFNDEF MIPS MIPS=0 !ENDIF !IFNDEF ALPHA ALPHA=0 !ENDIF !IFNDEF PPC PPC=0 !ENDIF # # Default to building for i386 target, if no targets specified. # !IF !$(386) ! IF !$(MIPS) ! IF !$(PPC) ! IFDEF NTMIPSDEFAULT MIPS=1 ! ELSE ! IFDEF NTALPHADEFAULT ALPHA=1 ! ELSE ! IFDEF NTPPCDEFAULT PPC=1 ! ELSE 386=1 ! ENDIF ! ENDIF ! ENDIF ! ENDIF ! ENDIF !ENDIF # # component files from other directories # # single thread ROOT_SMALL=..\crt32st\small SRCDIR_SMALL=$(ROOT_SMALL)\obj\* COMPONENTS_SMALL=\ $(SRCDIR_SMALL)\small.lib ROOT_LIBC=..\crt32st ROOT_FP=..\fp32st SRCDIR_LIBC=$(ROOT_LIBC)\obj\* SRCDIR_FP=$(ROOT_FP)\obj\* COMPONENTS_LIBC=\ $(SRCDIR_LIBC)\libc.lib \ $(SRCDIR_FP)\conv.lib \ $(SRCDIR_FP)\tran.lib ROOT_CRTNT=..\crt32nt ROOT_FPNT=..\fp32nt SRCDIR_CRTNT=$(ROOT_CRTNT)\obj\* SRCDIR_FPNT=$(ROOT_FPNT)\obj\* COMPONENTS_CRTNT=\ $(SRCDIR_CRTNT)\libcnt.lib \ $(SRCDIR_FPNT)\trannt.lib # multi-thread ROOT_LIBCMT=..\crt32 ROOT_FPMT=..\fp32 SRCDIR_LIBCMT=$(ROOT_LIBCMT)\obj\* SRCDIR_FPMT=$(ROOT_FPMT)\obj\* COMPONENTS_LIBCMT=\ $(SRCDIR_LIBCMT)\libcmt.lib \ $(SRCDIR_FPMT)\convmt.lib \ $(SRCDIR_FPMT)\tranmt.lib # posix single thread ROOT_LIBCPSX=..\crt32psx ROOT_FPPSX=..\fp32st SRCDIR_LIBCPSX=$(ROOT_LIBCPSX)\obj\* SRCDIR_FPPSX=$(ROOT_FPPSX)\obj\* COMPONENTS_LIBCPSX=\ $(SRCDIR_LIBCPSX)\libcpsx.lib \ $(SRCDIR_FPPSX)\conv.lib \ $(SRCDIR_FPPSX)\tran.lib # optional objects for single- or multi-thread FILES_OBJECTS=binmode.obj commode.obj setargv.obj chkstk.obj COMPONENTS_OBJECTS=\ $(SRCDIR_LIBC)\binmode.obj \ $(SRCDIR_LIBC)\commode.obj \ $(SRCDIR_LIBC)\setargv.obj \ $(SRCDIR_LIBC)\chkstk.obj # dll ROOT_CRTDLL=..\crt32dll ROOT_FPDLL=..\fp32dll SRCDIR_CRTDLL=$(ROOT_CRTDLL)\obj\* SRCDIR_FPDLL=$(ROOT_FPDLL)\obj\* #COMPONENTS_CRTDLL=\ # $(SRCDIR_CRTDLL)\libcdll.lib \ # $(SRCDIR_FPMT)\convmt.lib \ # $(SRCDIR_FPMT)\tranmt.lib !IF $(386) EXSUP_OBJECTS=\ $(ROOT_LIBCMT)\misc\obj\*\exsup.obj \ $(ROOT_LIBCMT)\misc\obj\*\exsup2.obj \ $(ROOT_LIBCMT)\misc\obj\*\exsup3.obj \ $(ROOT_LIBCMT)\misc\obj\*\sehsupp.obj \ $(ROOT_LIBCMT)\misc\obj\*\setjmp.obj \ $(ROOT_LIBCMT)\misc\obj\*\setjmp3.obj \ $(ROOT_LIBCMT)\misc\obj\*\setjmpex.obj \ $(ROOT_LIBCMT)\misc\obj\*\longjmp.obj RELEASE_EXSUP=lib\*\exsup.lib COMPONENTS_SUPPOBJS=\ $(SRCDIR_CRTDLL)\crtexe.obj \ $(SRCDIR_CRTDLL)\crtexew.obj \ $(SRCDIR_CRTDLL)\crtdll.obj \ $(SRCDIR_CRTDLL)\dllargv.obj \ $(SRCDIR_CRTDLL)\dllmain.obj \ $(ROOT_LIBCMT)\misc\obj\*\exsup3.obj \ $(ROOT_LIBCMT)\misc\obj\*\setjmp3.obj \ $(ROOT_LIBCMT)\lowio\obj\*\txtmode.obj \ $(ROOT_LIBCMT)\stdio\obj\*\ncommode.obj \ $(ROOT_LIBCMT)\startup\obj\*\tlssup.obj \ $(ROOT_LIBCMT)\startup\obj\*\atlssup.obj \ $(ROOT_CRTDLL)\dllstuff\obj\*\cinitexe.obj \ $(SRCDIR_CRTDLL)\dllsupp.obj \ lib\*\chkstk.obj !ELSEIF $(ALPHA) || $(MIPS) EXSUP_OBJECTS= RELEASE_EXSUP= COMPONENTS_SUPPOBJS=\ $(SRCDIR_CRTDLL)\crtexe.obj \ $(SRCDIR_CRTDLL)\crtexew.obj \ $(SRCDIR_CRTDLL)\crtdll.obj \ $(SRCDIR_CRTDLL)\dllargv.obj \ $(SRCDIR_CRTDLL)\dllmain.obj \ $(ROOT_LIBCMT)\lowio\obj\*\txtmode.obj \ $(ROOT_LIBCMT)\stdio\obj\*\ncommode.obj \ $(ROOT_LIBCMT)\startup\obj\*\tlssup.obj \ $(ROOT_CRTDLL)\dllstuff\obj\*\cinitexe.obj \ lib\*\chkstk.obj !ELSE EXSUP_OBJECTS= RELEASE_EXSUP= COMPONENTS_SUPPOBJS=\ $(SRCDIR_CRTDLL)\crtexe.obj \ $(SRCDIR_CRTDLL)\crtexew.obj \ $(SRCDIR_CRTDLL)\crtdll.obj \ $(SRCDIR_CRTDLL)\dllargv.obj \ $(SRCDIR_CRTDLL)\dllmain.obj \ $(ROOT_LIBCMT)\lowio\obj\*\txtmode.obj \ $(ROOT_LIBCMT)\stdio\obj\*\ncommode.obj \ $(ROOT_LIBCMT)\startup\obj\*\tlssup.obj \ $(ROOT_CRTDLL)\dllstuff\obj\*\cinitexe.obj \ $(ROOT_CRTDLL)\helper\obj\*\*.obj \ lib\*\chkstk.obj !ENDIF COMPONENTS_CRTDLL=\ $(SRCDIR_CRTDLL)\libcdll.lib \ $(SRCDIR_FPDLL)\convdll.lib \ $(SRCDIR_FPDLL)\trandll.lib # optional objects for crtdll # include files COMPONENTS_INCLUDES=\ $(ROOT_CRTDLL)\h\*.h \ $(ROOT_CRTDLL)\h\sys\*.h \ COMPONENTS_DLLDEF=lib\*\crtdll.def # nt libs !IF "$(BASEDIR)" == "" NTLIBPATH=$(_NTDRIVE)\nt\public\sdk\lib\* !ELSE NTLIBPATH=$(BASEDIR)\public\sdk\lib\* !ENDIF LINKLIBS=$(NTLIBPATH)\kernel32.lib # include paths for rc RC_INCL=-I$(_NTDRIVE)\nt\public\oak\inc -I$(_NTDRIVE)\nt\public\sdk\inc \ -I$(_NTDRIVE)\nt\public\sdk\inc\crt # command-line defs for rc RCX86_DEFS=-D_X86_=1 -Di386=1 -DCONDITION_HANDLING=1 -DWIN32_LEAN_AND_MEAN=1 \ -DNT_UP=1 -DNT_INST=0 -DDBG=0 -DDEVL=1 -DNOFIREWALLS -DFPO=1 \ -DNDEBUG -D_WIN32_=1 -D_INTL RCMIPS_DEFS=-DMIPS=1 -D_MIPS_=1 -DNO_EXT_KEYS -DWIN32_LEAN_AND_MEAN=1 \ -DMIPSEL -DCONDITION_HANDLING=1 -DNT_INST=0 -DJAZZ -DNT_UP=1 \ -DR3000 -D_M_MRX000=3000 -DDBG=0 -DDEVL=1 -DNOFIREWALLS \ -DNDEBUG -D_WIN32_=1 -D__stdcall= -D__cdecl= -D_INTL RCPPC_DEFS=-D_PPC_=1 -DNO_EXT_KEYS -DWIN32_LEAN_AND_MEAN=1 \ -DPPCEL -DCONDITION_HANDLING=1 -DNT_INST=0 -DNT_UP=1 \ -D_M_PPC=601 -DDBG=0 -DDEVL=1 -DNOFIREWALLS \ -DNDEBUG -D_WIN32_=1 -D__stdcall= -D__cdecl= -D_INTL # # release targets # DSTDIR_CRT=lib\* DSTDIR_LIBC=lib\* DSTDIR_LIBCMT=lib\* DSTDIR_LIBCPSX=lib\* DSTDIR_OBJECTS=lib\* DSTDIR_CRTDLL=lib\* DSTDIR_INCLUDES=include\* RELEASE_CRTNT=\ $(DSTDIR_LIBC)\libcntpr.lib RELEASE_SMALL=\ $(DSTDIR_LIBC)\SMALL.lib # single-thread lib RELEASE_LIBC=\ $(DSTDIR_LIBC)\libc.lib # multi-thread lib RELEASE_LIBCMT=\ $(DSTDIR_LIBCMT)\libcmt.lib # posix single-thread lib RELEASE_LIBCPSX=\ $(DSTDIR_LIBCPSX)\libcpsx.lib # optional objects for single- and multi-thread RELEASE_OBJECTS=\ $(DSTDIR_OBJECTS)\binmode.obj \ $(DSTDIR_OBJECTS)\commode.obj \ $(DSTDIR_OBJECTS)\setargv.obj \ $(DSTDIR_OBJECTS)\chkstk.obj # dll RELEASE_DLL=\ $(DSTDIR_CRTDLL)\crtdll.dll # dll, imports lib and optional objects RELEASE_CRTDLL=\ $(RELEASE_DLL:.dll=.lib) \ $(RELEASE_DLL) # include files (all models) RELEASE_INCLUDES=\ $(DSTDIR_INCLUDES)\*.h \ $(DSTDIR_INCLUDES)\sys\*.h !IF $(386) TARGETLIBS=$(TARGETLIBS) \ $(RELEASE_OBJECTS:*=i386) \ $(RELEASE_CRTNT:*=i386) \ $(RELEASE_EXSUP:*=i386) \ $(RELEASE_LIBC:*=i386) \ $(RELEASE_LIBCMT:*=i386) \ $(RELEASE_LIBCPSX:*=i386) \ $(RELEASE_CRTDLL:*=i386) # TARGETLIBS=$(RELEASE_CRTDLL:*=i386) !ELSEIF $(MIPS) TARGETLIBS=$(TARGETLIBS) \ $(RELEASE_OBJECTS:*=mips) \ $(RELEASE_CRTNT:*=mips) \ $(RELEASE_SMALL:*=mips) \ $(RELEASE_LIBC:*=mips) \ $(RELEASE_LIBCMT:*=mips) \ $(RELEASE_LIBCPSX:*=mips) \ $(RELEASE_CRTDLL:*=mips) !ELSEIF $(ALPHA) TARGETLIBS=$(TARGETLIBS) \ $(RELEASE_OBJECTS:*=alpha) \ $(RELEASE_CRTNT:*=alpha) \ $(RELEASE_SMALL:*=alpha) \ $(RELEASE_LIBC:*=alpha) \ $(RELEASE_LIBCMT:*=alpha) \ $(RELEASE_LIBCPSX:*=alpha) \ $(RELEASE_CRTDLL:*=alpha) !ELSEIF $(PPC) TARGETLIBS=$(TARGETLIBS) \ $(RELEASE_OBJECTS:*=ppc) \ $(RELEASE_CRTNT:*=ppc) \ $(RELEASE_SMALL:*=ppc) \ $(RELEASE_LIBC:*=ppc) \ $(RELEASE_LIBCMT:*=ppc) \ $(RELEASE_LIBCPSX:*=ppc) \ $(RELEASE_CRTDLL:*=ppc) !ENDIF all: $(TARGETLIBS) !IF "$(BUILDMSG)" != "" echo $(BUILDMSG) !ENDIF includes: $(RELEASE_INCLUDES) !IF "$(BUILDMSG)" != "" echo $(BUILDMSG) !ENDIF clean: cleanlib all cleanlib: -erase $(TARGETLIBS) in: $(_NTDRIVE) cd \nt\public\sdk\lib in -c "Rebuilt from current sources" $(TARGETLIBS:lib\=) out: $(_NTDRIVE) cd \nt\public\sdk\lib out -f $(TARGETLIBS:lib\=) outdel: out del $(TARGETLIBS:lib\=) resync: $(_NTDRIVE) cd \nt\public\sdk\lib in -vi $(TARGETLIBS:lib\=) ssync $(TARGETLIBS:lib\=) !IF $(386) release: -copy $(DSTDIR_OBJECTS:*=i386)\*.obj $(_NTDRIVE)\nt\public\sdk\lib\i386 -copy $(DSTDIR_OBJECTS:*=i386)\*.lib $(_NTDRIVE)\nt\public\sdk\lib\i386 -copy $(DSTDIR_OBJECTS:*=i386)\*.dll $(_NTDRIVE)\nt\public\sdk\lib\i386 !ELSEIF $(MIPS) release: -copy $(DSTDIR_OBJECTS:*=mips)\*.obj $(_NTDRIVE)\nt\public\sdk\lib\mips -copy $(DSTDIR_OBJECTS:*=mips)\*.lib $(_NTDRIVE)\nt\public\sdk\lib\mips -copy $(DSTDIR_OBJECTS:*=mips)\*.dll $(_NTDRIVE)\nt\public\sdk\lib\mips !ELSEIF $(ALPHA) release: -copy $(DSTDIR_OBJECTS:*=alpha)\*.obj $(_NTDRIVE)\nt\public\sdk\lib\alpha -copy $(DSTDIR_OBJECTS:*=alpha)\*.lib $(_NTDRIVE)\nt\public\sdk\lib\alpha -copy $(DSTDIR_OBJECTS:*=alpha)\*.dll $(_NTDRIVE)\nt\public\sdk\lib\alpha !ELSEIF $(PPC) release: -copy $(DSTDIR_OBJECTS:*=ppc)\*.obj $(_NTDRIVE)\nt\public\sdk\lib\ppc -copy $(DSTDIR_OBJECTS:*=ppc)\*.lib $(_NTDRIVE)\nt\public\sdk\lib\ppc -copy $(DSTDIR_OBJECTS:*=ppc)\*.dll $(_NTDRIVE)\nt\public\sdk\lib\ppc !ENDIF srcrel: chmode -r $(TARGETLIBS:lib\=^%_NTDRIVE^%\nt\public\sdk\lib\) !IF $(386) upd /anfe $(DSTDIR_OBJECTS:*=i386) $(_NTDRIVE)\nt\public\sdk\lib\i386$(TARGETLIBS:lib\i386\=) !ELSEIF $(MIPS) upd /anfe $(DSTDIR_OBJECTS:*=mips) $(_NTDRIVE)\nt\public\sdk\lib\mips$(TARGETLIBS:lib\mips\=) !ELSEIF $(ALPHA) upd /anfe $(DSTDIR_OBJECTS:*=alpha) $(_NTDRIVE)\nt\public\sdk\lib\alpha$(TARGETLIBS:lib\alpha\=) !ELSEIF $(PPC) upd /anfe $(DSTDIR_OBJECTS:*=ppc) $(_NTDRIVE)\nt\public\sdk\lib\ppc$(TARGETLIBS:lib\ppc\=) !ENDIF chmode +r $(TARGETLIBS:lib\=^%_NTDRIVE^%\nt\public\sdk\lib\) # # common targets # $(RELEASE_INCLUDES): $(COMPONENTS_INCLUDES) set CRTDIR=$(ROOT_CRTDLL) $(ROOT_CRTDLL)\tools\win32\relinc include # # i386 targets # $(RELEASE_CRTNT:*=i386): $(COMPONENTS_CRTNT:*=i386) link -lib -out:$@ @<< $(COMPONENTS_CRTNT:*=i386) << $(RELEASE_LIBC:*=i386): $(COMPONENTS_LIBC:*=i386) link -lib -out:$@ @<< $(COMPONENTS_LIBC:*=i386) << $(RELEASE_LIBCMT:*=i386): $(COMPONENTS_LIBCMT:*=i386) link -lib -out:$@ @<< $(COMPONENTS_LIBCMT:*=i386) << $(RELEASE_LIBCPSX:*=i386): $(COMPONENTS_LIBCPSX:*=i386) link -lib -out:$@ @<< $(COMPONENTS_LIBCPSX:*=i386) << $(DSTDIR_OBJECTS:*=i386)\binmode.obj: $(SRCDIR_LIBC:*=i386)\binmode.obj copy $** $@ $(DSTDIR_OBJECTS:*=i386)\commode.obj: $(SRCDIR_LIBC:*=i386)\commode.obj copy $** $@ $(DSTDIR_OBJECTS:*=i386)\setargv.obj: $(SRCDIR_LIBC:*=i386)\setargv.obj copy $** $@ $(DSTDIR_OBJECTS:*=i386)\chkstk.obj: $(SRCDIR_LIBC:*=i386)\chkstk.obj copy $** $@ 386_DLL=$(RELEASE_DLL:*=i386) 386_DLL=$(386_DLL: =) 386_LIBCDLL=$(COMPONENTS_CRTDLL:*=i386) 386_OBJECTS=$(COMPONENTS_SUPPOBJS:*=i386) 386_DEF=$(COMPONENTS_DLLDEF:*=i386) 386_LINKLIBS=$(LINKLIBS:*=i386) 386_DLLBASE=0x10010000 lib\i386\exsup.lib: $(EXSUP_OBJECTS:*=i386) link -lib -out:$(@R).lib $(EXSUP_OBJECTS:*=i386) $(386_DEF): lib\crtdll.def $(386_DEF:.def=.x86) copy lib\crtdll.def+$(386_DEF:.def=.x86) $(386_DEF) $(386_DLL:.dll=.exp) $(386_DLL:.dll=.lib): $(386_DEF) $(386_OBJECTS) link -lib -out:$(@R).lib -machine:i386 -debugtype:cv -def:$(386_DEF) $(386_LIBCDLL) ren $(386_DLL:.dll=.lib) tmp.lib link -lib -out:$(@R).lib -machine:i386 $(@D)\tmp.lib $(386_OBJECTS) del $(@D)\tmp.lib $(386_DLL): $(386_DLL:.dll=.lib) $(386_DLL:.dll=.exp) $(386_LIBCDLL) $(386_LINKLIBS) crtdll.rc rc -l 409 -r -fo $(386_DLL:.dll=.tmp) $(RCX86_DEFS) -x $(RC_INCL) crtdll.rc cvtres -machine:x86 $(386_DLL:.dll=.tmp) -readonly -out:$(386_DLL:.dll=.res) link @<< -dll -out:$@ -machine:i386 -debugtype:both -debug:full -release -pdb:none -opt:ref -optidata -merge:.rdata=.text -subsystem:console,4.00 -osversion:4.00 -version:4.00 -base:$(386_DLLBASE) -entry:_CRTDLL_INIT@12 $(386_DLL:.dll=.res) $(386_DLL:.dll=.exp) $(386_LIBCDLL) $(386_LINKLIBS) << # # mips targets # $(RELEASE_CRTNT:*=mips): $(COMPONENTS_CRTNT:*=mips) link -lib -out:$@ @<< $(COMPONENTS_CRTNT:*=mips) << $(RELEASE_SMALL:*=mips): $(COMPONENTS_SMALL:*=mips) copy $** $@ $(RELEASE_LIBC:*=mips): $(COMPONENTS_LIBC:*=mips) link -lib -out:$@ @<< $(COMPONENTS_LIBC:*=mips) << $(RELEASE_LIBCMT:*=mips): $(COMPONENTS_LIBCMT:*=mips) link -lib -out:$@ @<< $(COMPONENTS_LIBCMT:*=mips) << $(RELEASE_LIBCPSX:*=mips): $(COMPONENTS_LIBCPSX:*=mips) link -lib -out:$@ @<< $(COMPONENTS_LIBCPSX:*=mips) << $(DSTDIR_OBJECTS:*=mips)\binmode.obj: $(SRCDIR_LIBC:*=mips)\binmode.obj copy $** $@ $(DSTDIR_OBJECTS:*=mips)\commode.obj: $(SRCDIR_LIBC:*=mips)\commode.obj copy $** $@ $(DSTDIR_OBJECTS:*=mips)\setargv.obj: $(SRCDIR_LIBC:*=mips)\setargv.obj copy $** $@ $(DSTDIR_OBJECTS:*=mips)\chkstk.obj: $(SRCDIR_LIBC:*=mips)\chkstk.obj copy $** $@ MIPS_DLL=$(RELEASE_DLL:*=mips) MIPS_DLL=$(MIPS_DLL: =) MIPS_LIBCDLL=$(COMPONENTS_CRTDLL:*=mips) MIPS_OBJECTS=$(COMPONENTS_SUPPOBJS:*=mips) MIPS_DEF=$(COMPONENTS_DLLDEF:*=mips) MIPS_LINKLIBS=$(LINKLIBS:*=mips) MIPS_DLLBASE=0x10010000 $(MIPS_DLL:.dll=.lib) $(MIPS_DLL:.dll=.exp): $(MIPS_DEF) link -lib -out:$(@R).lib -machine:mips -debugtype:cv -def:$(MIPS_DEF) ren $(MIPS_DLL:.dll=.lib) tmp.lib link -lib -out:$(@R).lib -machine:mips $(@D)\tmp.lib $(MIPS_OBJECTS) del $(@D)\tmp.lib $(MIPS_DEF): lib\crtdll.def $(MIPS_DEF:.def=.mip) copy lib\crtdll.def+$(MIPS_DEF:.def=.mip) $(MIPS_DEF) $(MIPS_DLL): $(MIPS_DLL:.dll=.lib) $(MIPS_DLL:.dll=.exp) $(MIPS_LIBCDLL) $(MIPS_LINKLIBS) crtdll.rc rc -l 409 -r -fo $(MIPS_DLL:.dll=.tmp) $(RCMIPS_DEFS) -x $(RC_INCL) crtdll.rc cvtres -machine:mips $(MIPS_DLL:.dll=.tmp) -readonly -out:$(MIPS_DLL:.dll=.res) link @<< -dll -out:$@ -debugtype:both -debug:full -machine:mips -release -pdb:none -opt:ref -optidata -merge:.rdata=.text -subsystem:console,4.00 -osversion:4.00 -version:4.00 -base:$(MIPS_DLLBASE) -entry:_CRTDLL_INIT -merge:asincosm=.text -merge:atanm=.text -merge:floorm=.text -merge:fmodm=.text -merge:trigm=.text $(MIPS_DLL:.dll=.exp) $(MIPS_DLL:.dll=.res) $(MIPS_LIBCDLL) $(MIPS_LINKLIBS) << # BUGBUG: The merge directives can be removed if v-rogerl determines a src change can # be made. BryanT - 3/7/95 # # alpha targets # $(RELEASE_CRTNT:*=alpha): $(COMPONENTS_CRTNT:*=alpha) link -lib -out:$@ @<< $(COMPONENTS_CRTNT:*=alpha) << $(RELEASE_SMALL:*=alpha): $(COMPONENTS_SMALL:*=alpha) copy $** $@ $(RELEASE_LIBC:*=alpha): $(COMPONENTS_LIBC:*=alpha) link -lib -out:$@ @<< $(COMPONENTS_LIBC:*=alpha) << $(RELEASE_LIBCMT:*=alpha): $(COMPONENTS_LIBCMT:*=alpha) link -lib -out:$@ @<< $(COMPONENTS_LIBCMT:*=alpha) << $(RELEASE_LIBCPSX:*=alpha): $(COMPONENTS_LIBCPSX:*=alpha) link -lib -out:$@ @<< $(COMPONENTS_LIBCPSX:*=alpha) << $(DSTDIR_OBJECTS:*=alpha)\binmode.obj: $(SRCDIR_LIBC:*=alpha)\binmode.obj copy $** $@ $(DSTDIR_OBJECTS:*=alpha)\commode.obj: $(SRCDIR_LIBC:*=alpha)\commode.obj copy $** $@ $(DSTDIR_OBJECTS:*=alpha)\setargv.obj: $(SRCDIR_LIBC:*=alpha)\setargv.obj copy $** $@ $(DSTDIR_OBJECTS:*=alpha)\chkstk.obj: $(SRCDIR_LIBC:*=alpha)\chkstk.obj copy $** $@ ALPHA_DLL=$(RELEASE_DLL:*=alpha) ALPHA_DLL=$(ALPHA_DLL: =) ALPHA_LIBCDLL=$(COMPONENTS_CRTDLL:*=alpha) ALPHA_OBJECTS=$(COMPONENTS_SUPPOBJS:*=alpha) ALPHA_DEF=$(COMPONENTS_DLLDEF:*=alpha) ALPHA_LINKLIBS=$(LINKLIBS:*=alpha) ALPHA_DLLBASE=0x10010000 $(ALPHA_DLL:.dll=.lib) $(ALPHA_DLL:.dll=.exp): $(ALPHA_DEF) link -lib -out:$(@R).lib -machine:alpha -debugtype:cv -def:$(ALPHA_DEF) ren $(ALPHA_DLL:.dll=.lib) tmp.lib link -lib -out:$(@R).lib -machine:alpha $(@D)\tmp.lib $(ALPHA_OBJECTS) del $(@D)\tmp.lib $(ALPHA_DEF): lib\crtdll.def $(ALPHA_DEF:.def=.alp) copy lib\crtdll.def+$(ALPHA_DEF:.def=.alp) $(ALPHA_DEF) $(ALPHA_DLL): $(ALPHA_DLL:.dll=.lib) $(ALPHA_DLL:.dll=.exp) $(ALPHA_LIBCDLL) $(ALPHA_LINKLIBS) crtdll.rc rc -l 409 -r -fo $(ALPHA_DLL:.dll=.tmp) $(RCALPHA_DEFS) -x $(RC_INCL) crtdll.rc cvtres -machine:alpha $(ALPHA_DLL:.dll=.tmp) -readonly -out:$(ALPHA_DLL:.dll=.res) link @<< -dll -out:$@ -machine:alpha -base:$(ALPHA_DLLBASE) -debugtype:both -debug:full -release -pdb:none -opt:ref -optidata -merge:.rdata=.text -subsystem:console,4.00 -osversion:4.00 -version:4.00 -entry:_CRTDLL_INIT $(ALPHA_DLL:.dll=.res) $(ALPHA_DLL:.dll=.exp) $(ALPHA_LIBCDLL) $(ALPHA_LINKLIBS) << # # ppc targets # $(RELEASE_CRTNT:*=ppc): $(COMPONENTS_CRTNT:*=ppc) link -lib -out:$@ @<< -machine:ppc $(COMPONENTS_CRTNT:*=ppc) << $(RELEASE_SMALL:*=ppc): $(COMPONENTS_SMALL:*=ppc) copy $** $@ $(RELEASE_LIBC:*=ppc): $(COMPONENTS_LIBC:*=ppc) link -lib -out:$@ @<< -machine:ppc $(COMPONENTS_LIBC:*=ppc) << $(RELEASE_LIBCMT:*=ppc): $(COMPONENTS_LIBCMT:*=ppc) link -lib -out:$@ @<< -machine:ppc $(COMPONENTS_LIBCMT:*=ppc) << $(RELEASE_LIBCPSX:*=ppc): $(COMPONENTS_LIBCPSX:*=ppc) link -lib -out:$@ @<< -machine:ppc $(COMPONENTS_LIBCPSX:*=ppc) << $(DSTDIR_OBJECTS:*=ppc)\binmode.obj: $(SRCDIR_LIBC:*=ppc)\binmode.obj copy $** $@ $(DSTDIR_OBJECTS:*=ppc)\commode.obj: $(SRCDIR_LIBC:*=ppc)\commode.obj copy $** $@ $(DSTDIR_OBJECTS:*=ppc)\setargv.obj: $(SRCDIR_LIBC:*=ppc)\setargv.obj copy $** $@ $(DSTDIR_OBJECTS:*=ppc)\chkstk.obj: $(SRCDIR_LIBC:*=ppc)\chkstk.obj copy $** $@ PPC_DLL=$(RELEASE_DLL:*=ppc) PPC_DLL=$(PPC_DLL: =) PPC_LIBCDLL=$(COMPONENTS_CRTDLL:*=ppc) PPC_OBJECTS=$(COMPONENTS_SUPPOBJS:*\=ppc\) PPC_DEF=$(COMPONENTS_DLLDEF:*=ppc) PPC_LINKLIBS=$(LINKLIBS:*=ppc) PPC_DLLBASE=0x10010000 $(PPC_DLL:.dll=.lib) $(PPC_DLL:.dll=.exp): $(PPC_DEF) link -lib -out:$(@R).lib -machine:ppc -debugtype:cv -def:$(PPC_DEF) ren $(PPC_DLL:.dll=.lib) tmp.lib link -lib -out:$(@R).lib -machine:ppc $(@D)\tmp.lib $(PPC_OBJECTS) del $(@D)\tmp.lib $(PPC_DEF): lib\crtdll.def $(PPC_DEF:.def=.ppc) copy lib\crtdll.def+$(PPC_DEF:.def=.ppc) $(PPC_DEF) $(PPC_DLL): $(PPC_DLL:.dll=.lib) $(PPC_DLL:.dll=.exp) $(PPC_LIBCDLL) $(PPC_LINKLIBS) crtdll.rc rc -l 409 -r -fo $(PPC_DLL:.dll=.tmp) $(RCPPC_DEFS) -x $(RC_INCL) crtdll.rc cvtres -machine:ppc $(PPC_DLL:.dll=.tmp) -readonly -out:$(PPC_DLL:.dll=.res) link @<< -dll -out:$@ -debugtype:both -debug:full -machine:ppc -base:$(PPC_DLLBASE) -release -pdb:none -opt:ref -optidata -merge:.rdata=.text -subsystem:console,4.00 -osversion:4.00 -version:4.00 -entry:_CRTDLL_INIT -NODEFAULTLIB $(PPC_DLL:.dll=.exp) $(PPC_DLL:.dll=.res) $(PPC_LIBCDLL) $(PPC_LINKLIBS) <<