NT4/private/crt32/makefile
2020-09-30 17:12:29 +02:00

598 lines
16 KiB
Makefile

####
#crt32\makefile - makefile for crt32 NT build
#
# Copyright (c) 1991-1993, Microsoft Corporation. All rights reserved.
#
#Purpose:
#
#Revision History:
# 09-29-91 JCR File created.
# 10-04-91 JCR Added mt vs st build
# 01-07-92 GJF Added dll build, revised rest.
# 01-16-92 JCR use winheap (not heap)
# 01-29-92 GJF Support for link options for DLL
# 02-06-92 GJF Fixed non-dll builds.
# 06-06-92 KRS Added wchar_t printf functions, _snprintf.
# 01-18-93 KRS Integrate MBCS into standard makefile.
#
################################################################################
!INCLUDE crt32.def
!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 !$(ALPHA)
! 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
!ENDIF
!IF $(MIPS)
HELPER_OBJECTS=helper\obj\*.obj
!ELSEIF $(PPC)
HELPER_OBJECTS=helper\obj\*.obj
!ELSE
HELPER_OBJECTS=
!ENDIF
!IF "$(TARGETNAMESUFFIX)" == "nt"
INITOBJECTS=
!ELSEIF "$(TARGETNAMESUFFIX)" == "psx"
INITOBJECTS=\
startup\obj\*\crt0init.obj \
!ELSE
CRT_OBJECTS=
INITOBJECTS=\
startup\obj\*\crt0init.obj \
!ENDIF
!IF "$(TARGETNAMESUFFIX)" == "dll"
OBJECTS=startup\obj\chkstk.obj \
startup\obj\crt0dat.obj \
startup\obj\crt0fp.obj \
startup\obj\crt0msg.obj \
startup\obj\mlock.obj \
startup\obj\_setargv.obj \
startup\obj\stdargv.obj \
startup\obj\stdenvp.obj \
startup\obj\thread.obj \
startup\obj\tidtable.obj \
startup\obj\wild.obj \
convert\obj\*.obj \
direct\obj\*.obj \
dllstuff\obj\crtlib.obj \
dos\obj\*.obj \
exec\obj\*.obj \
winheap\obj\*.obj \
lowio\obj\*.obj \
mbstring\obj\*.obj \
$(HELPER_OBJECTS) \
misc\obj\*.obj \
stdio\obj\*.obj \
string\obj\*.obj \
time\obj\*.obj
!ELSEIF "$(TARGETNAMESUFFIX)" == "psx"
OBJECTS=convert\obj\*.obj \
mbstring\obj\*.obj \
$(HELPER_OBJECTS) \
misc\obj\*.obj \
startup\obj\*.obj \
stdio\obj\*.obj \
string\obj\*.obj \
time\obj\*.obj \
winheap\obj\*.obj
!ELSEIF "$(TARGETNAMESUFFIX)" == "nt"
OBJECTS=convert\obj\*.obj \
$(HELPER_OBJECTS) \
misc\obj\abs.obj \
misc\obj\bsearch.obj \
misc\obj\ctype.obj \
misc\obj\div.obj \
misc\obj\ldiv.obj \
misc\obj\labs.obj \
misc\obj\lconv.obj \
misc\obj\lfind.obj \
misc\obj\lsearch.obj \
misc\obj\makepath.obj \
misc\obj\nlsdata1.obj \
misc\obj\nlsdata2.obj \
misc\obj\qsort.obj \
misc\obj\rand.obj \
misc\obj\rotl.obj \
misc\obj\rotr.obj \
misc\obj\setlocal.obj \
misc\obj\splitpat.obj \
misc\obj\cmiscdat.obj \
startup\obj\crt0fp.obj \
string\obj\memicmp.obj \
string\obj\strcspn.obj \
string\obj\strlwr.obj \
string\obj\strupr.obj \
string\obj\strncat.obj \
string\obj\strncmp.obj \
string\obj\strncpy.obj \
string\obj\strnicmp.obj \
string\obj\strnset.obj \
string\obj\strpbrk.obj \
string\obj\strrev.obj \
string\obj\strset.obj \
string\obj\strspn.obj \
string\obj\strstr.obj \
string\obj\wcscat.obj \
string\obj\wcschr.obj \
string\obj\wcscmp.obj \
string\obj\wcsicmp.obj \
string\obj\wcscspn.obj \
string\obj\wcslen.obj \
string\obj\wcslwr.obj \
string\obj\wcsupr.obj \
string\obj\wcsncat.obj \
string\obj\wcsncmp.obj \
string\obj\wcsncpy.obj \
string\obj\wcsnicmp.obj \
string\obj\wcsnset.obj \
string\obj\wcspbrk.obj \
string\obj\wcsrchr.obj \
string\obj\wcsrev.obj \
string\obj\wcsset.obj \
string\obj\wcsspn.obj \
string\obj\wcsstr.obj \
string\obj\wcstok.obj \
stdio\obj\sprintf.obj \
stdio\obj\snprintf.obj \
stdio\obj\vsprintf.obj \
stdio\obj\vsnprint.obj \
stdio\obj\output.obj \
stdio\obj\sscanf.obj \
stdio\obj\input.obj \
stdio\obj\swprintf.obj \
stdio\obj\snwprint.obj \
stdio\obj\vswprint.obj \
stdio\obj\vsnwprnt.obj \
stdio\obj\woutput.obj \
stdio\obj\winput.obj \
stdio\obj\swscanf.obj \
stdio\obj\fgetwchr.obj \
stdio\obj\fgetwc.obj \
stdio\obj\fputwchr.obj \
stdio\obj\fputwc.obj \
stdio\obj\_filbuf.obj \
stdio\obj\_filwbuf.obj \
stdio\obj\_flsbuf.obj \
stdio\obj\_flswbuf.obj \
stdio\obj\_getbuf.obj \
stdio\obj\ungetc.obj \
hack\obj\*.obj
!IF $(386)
CRT_OBJECTS=misc\obj\*\exsup.obj \
misc\obj\*\exsup2.obj \
misc\obj\*\exsup3.obj \
misc\obj\*\longjmp.obj \
misc\obj\*\sehsupp.obj \
misc\obj\*\setjmp.obj \
misc\obj\*\setjmp3.obj \
misc\obj\*\setjmpex.obj \
startup\obj\*\chkstk.obj \
string\obj\*\memccpy.obj \
string\obj\*\memchr.obj \
string\obj\*\memcmp.obj \
string\obj\*\memcpy.obj \
string\obj\*\memmove.obj \
string\obj\*\memset.obj \
string\obj\*\strcat.obj \
string\obj\*\strchr.obj \
string\obj\*\stricmp.obj \
string\obj\*\strcmp.obj \
string\obj\*\strlen.obj \
string\obj\*\strrchr.obj
!ELSEIF $(MIPS)
CRT_OBJECTS=startup\obj\*\chkstk.obj \
misc\obj\*\chandler.obj \
misc\obj\*\jmpuwind.obj \
misc\obj\*\longjmp.obj \
misc\obj\*\setjmp.obj \
misc\obj\*\setjmpex.obj \
string\obj\*\memccpy.obj \
string\obj\*\memchr.obj \
string\obj\*\strcatm.obj \
string\obj\*\memorym.obj \
string\obj\*\strchrm.obj \
string\obj\*\stricmp.obj \
string\obj\*\strcmpm.obj \
string\obj\*\strcpym.obj \
string\obj\*\strlenm.obj \
string\obj\*\strrchrm.obj
!ELSEIF $(PPC)
CRT_OBJECTS=startup\obj\*\chkstk.obj \
misc\obj\*\chandler.obj \
misc\obj\*\jmpuwind.obj \
misc\obj\*\longjmp.obj \
misc\obj\*\setjmp.obj \
misc\obj\*\setjmpex.obj \
misc\obj\*\miscasm.obj \
string\obj\*\memccpyp.obj \
string\obj\*\memcmpp.obj \
string\obj\*\memcpy.obj \
string\obj\*\memchrp.obj \
string\obj\*\memmove.obj \
string\obj\*\memset.obj \
string\obj\*\strcatp.obj \
string\obj\*\stricmpp.obj \
string\obj\*\strchrp.obj \
string\obj\*\strcmpp.obj \
string\obj\*\strlenp.obj \
string\obj\*\strrchrp.obj
!ELSEIF $(ALPHA)
CRT_OBJECTS=startup\obj\*\chkstk.obj \
misc\obj\*\chandler.obj \
misc\obj\*\divdat.obj \
misc\obj\*\divide2.obj \
misc\obj\*\extv.obj \
misc\obj\*\extvvol.obj \
misc\obj\*\extzv.obj \
misc\obj\*\extzvvol.obj \
misc\obj\*\ghandler.obj \
misc\obj\*\insv.obj \
misc\obj\*\insvvol.obj \
misc\obj\*\jmpuwind.obj \
misc\obj\*\longjmp.obj \
misc\obj\*\otsdiv.obj \
misc\obj\*\otsdiv.obj \
misc\obj\*\otsjmp.obj \
misc\obj\*\otsjmpex.obj \
misc\obj\*\otsuwind.obj \
misc\obj\*\scmpeql.obj \
misc\obj\*\scmpeqlp.obj \
misc\obj\*\scmpleq.obj \
misc\obj\*\scmpleqp.obj \
misc\obj\*\scmplss.obj \
misc\obj\*\scmplssp.obj \
misc\obj\*\setjmp.obj \
misc\obj\*\setjmpex.obj \
misc\obj\*\sfill.obj \
misc\obj\*\sloc.obj \
misc\obj\*\smove.obj \
misc\obj\*\smovem.obj \
misc\obj\*\strans.obj \
misc\obj\*\strcmp_.obj \
misc\obj\*\strcpy_.obj \
misc\obj\*\strlen_.obj \
misc\obj\*\szero.obj \
convert\obj\*\strtoq.obj \
string\obj\*\memccpy.obj \
string\obj\*\memchr.obj \
string\obj\*\memcmp.obj \
string\obj\*\memcpy.obj \
string\obj\*\memmove.obj \
string\obj\*\memset.obj \
string\obj\*\strcat.obj \
string\obj\*\strchr.obj \
string\obj\*\stricmp.obj \
string\obj\*\strcmps.obj \
string\obj\*\strcpys.obj \
string\obj\*\strlens.obj \
string\obj\*\strrchr.obj
!ENDIF # 386/MIPS/Alpha/PPC & Target = NT
!ELSE
OBJECTS=convert\obj\*.obj \
direct\obj\*.obj \
dos\obj\*.obj \
exec\obj\*.obj \
iostream\obj\*.obj \
winheap\obj\*.obj \
lowio\obj\*.obj \
mbstring\obj\*.obj \
$(HELPER_OBJECTS) \
misc\obj\*.obj \
startup\obj\*.obj \
stdio\obj\*.obj \
string\obj\*.obj \
time\obj\*.obj
!ENDIF
TARGETLIB=
LIBC=obj\*\libc$(TARGETNAMESUFFIX).lib
#define list of extra objects (not built into lib)
!IF "$(TARGETNAMESUFFIX)" == "dll"
CRTEXE=obj\*\crtexe.obj
CRTEXEW=obj\*\crtexew.obj
CRTDLL=obj\*\crtdll.obj
DLLARGV=obj\*\dllargv.obj
DLLMAIN=obj\*\dllmain.obj
CINITEXE=obj\*\cinitexe.obj
!IF $(386)
DLLSUPP386=obj\i386\dllsupp.obj
!ELSE
DLLSUPP386=
!ENDIF
EXTRAOBJS=\
$(CRTEXE) \
$(CRTEXEW) \
$(CRTDLL) \
$(DLLARGV) \
$(DLLMAIN) \
$(CINITEXE) \
$(DLLSUPP386)
!ELSEIF "$(TARGETNAMESUFFIX)" == ""
BINMODE=obj\*\binmode.obj
COMMODE=obj\*\commode.obj
SETARGV=obj\*\setargv.obj
CHKSTK=obj\*\chkstk.obj
EXTRAOBJS=\
$(BINMODE) \
$(COMMODE) \
$(SETARGV) \
$(CHKSTK)
!ELSE
EXTRAOBJS=
!ENDIF
!IF $(386)
TARGETLIBS=$(TARGETLIBS) \
$(LIBC:*=i386) \
$(EXTRAOBJS:*=i386)
!ENDIF
!IF $(MIPS)
TARGETLIBS=$(TARGETLIBS) \
$(LIBC:*=mips) \
$(EXTRAOBJS:*=mips)
!ENDIF
!IF $(ALPHA)
TARGETLIBS=$(TARGETLIBS) \
$(LIBC:*=alpha) \
$(EXTRAOBJS:*=alpha)
!ENDIF
!IF $(PPC)
TARGETLIBS=$(TARGETLIBS) \
$(LIBC:*=ppc) \
$(EXTRAOBJS:*=ppc)
!ENDIF
all: $(TARGETLIBS)
!IF "$(BUILDMSG)" != ""
echo $(BUILDMSG)
!ENDIF
clean: cleanlib all
cleanlib:
-erase $(TARGETLIBS)
# get needed Win include files
wininc:
copy \\idwtest\sources\public\sdk\inc\winbase.h \nt\public\sdk\inc\winbase.h
copy \\idwtest\sources\public\sdk\inc\winnt.h \nt\public\sdk\inc\winnt.h
copy \\idwtest\sources\public\sdk\inc\wingdi.h \nt\public\sdk\inc\wingdi.h
copy \\idwtest\sources\public\sdk\inc\winerror.h \nt\public\sdk\inc\winerror.h
copy \\idwtest\sources\public\sdk\inc\winuser.h \nt\public\sdk\inc\winuser.h
$(LIBC:*=i386): $(OBJECTS:obj\=obj\i386\) $(HELPER_OBJECTS:obj\=obj\i386\) $(CRT_OBJECTS:*=i386) $(INITOBJECTS:*=i386) makefile.
lib -out:$@ @<<
$(OBJECTS:obj\=obj\i386\)
$(CRT_OBJECTS:*=i386)
$(INITOBJECTS:*=i386)
<<
$(LIBC:*=mips): $(OBJECTS:obj\=obj\mips\) $(HELPER_OBJECTS:obj\=obj\mips\) $(CRT_OBJECTS:*=mips) $(INITOBJECTS:*=mips) makefile.
lib -out:$@ @<<
$(OBJECTS:obj\=obj\mips\)
$(CRT_OBJECTS:*=mips)
$(INITOBJECTS:*=mips)
<<
$(LIBC:*=alpha): $(OBJECTS:obj\=obj\alpha\) $(HELPER_OBJECTS:obj\=obj\alpha\) $(CRT_OBJECTS:*=alpha) $(INITOBJECTS:*=alpha) makefile.
lib -out:$@ @<<
$(OBJECTS:obj\=obj\alpha\)
$(CRT_OBJECTS:*=alpha)
$(INITOBJECTS:*=alpha)
<<
$(LIBC:*=ppc): $(OBJECTS:obj\=obj\ppc\) $(HELPER_OBJECTS:obj\=obj\ppc\) $(CRT_OBJECTS:*=ppc) $(INITOBJECTS:*=ppc) makefile.
lib -out:$@ @<<
-machine:ppc
$(OBJECTS:obj\=obj\ppc\)
$(CRT_OBJECTS:*=ppc)
$(INITOBJECTS:*=ppc)
<<
!IF "$(TARGETNAMESUFFIX)" == "dll"
!IF $(386)
$(CRTEXE:*=i386): $(CRTEXE:obj\*=dllstuff\obj\i386)
-copy $** $@
$(CRTEXEW:*=i386): $(CRTEXEW:obj\*=dllstuff\obj\i386)
-copy $** $@
$(CRTDLL:*=i386): $(CRTDLL:obj\*=dllstuff\obj\i386)
-copy $** $@
$(CINITEXE:*=i386): $(CINITEXE:obj\*=dllstuff\obj\i386)
-copy $** $@
$(DLLARGV:*=i386): $(DLLARGV:obj\*=dllstuff\obj\i386)
-copy $** $@
$(DLLMAIN:*=i386): $(DLLMAIN:obj\*=startup\obj\i386)
-copy $** $@
$(DLLSUPP386): $(DLLSUPP386:obj\i386=dllstuff\obj\i386)
-copy $** $@
!ELSEIF $(MIPS)
$(CRTEXE:*=mips): $(CRTEXE:obj\*=dllstuff\obj\mips)
-copy $** $@
$(CRTEXEW:*=mips): $(CRTEXEW:obj\*=dllstuff\obj\mips)
-copy $** $@
$(CRTDLL:*=mips): $(CRTDLL:obj\*=dllstuff\obj\mips)
-copy $** $@
$(CINITEXE:*=mips): $(CINITEXE:obj\*=dllstuff\obj\mips)
-copy $** $@
$(DLLARGV:*=mips): $(DLLARGV:obj\*=dllstuff\obj\mips)
-copy $** $@
$(DLLMAIN:*=mips): $(DLLMAIN:obj\*=startup\obj\mips)
-copy $** $@
!ELSEIF $(PPC)
$(CRTEXE:*=ppc): $(CRTEXE:obj\*=dllstuff\obj\ppc)
-copy $** $@
$(CRTEXEW:*=ppc): $(CRTEXEW:obj\*=dllstuff\obj\ppc)
-copy $** $@
$(CRTDLL:*=ppc): $(CRTDLL:obj\*=dllstuff\obj\ppc)
-copy $** $@
$(CINITEXE:*=ppc): $(CINITEXE:obj\*=dllstuff\obj\ppc)
-copy $** $@
$(DLLARGV:*=ppc): $(DLLARGV:obj\*=dllstuff\obj\ppc)
-copy $** $@
$(DLLMAIN:*=ppc): $(DLLMAIN:obj\*=startup\obj\ppc)
-copy $** $@
!ELSE
$(CRTEXE:*=alpha): $(CRTEXE:obj\*=dllstuff\obj\alpha)
-copy $** $@
$(CRTEXEW:*=alpha): $(CRTEXEW:obj\*=dllstuff\obj\alpha)
-copy $** $@
$(CRTDLL:*=alpha): $(CRTDLL:obj\*=dllstuff\obj\alpha)
-copy $** $@
$(CINITEXE:*=alpha): $(CINITEXE:obj\*=dllstuff\obj\alpha)
-copy $** $@
$(DLLARGV:*=alpha): $(DLLARGV:obj\*=dllstuff\obj\alpha)
-copy $** $@
$(DLLMAIN:*=alpha): $(DLLMAIN:obj\*=startup\obj\alpha)
-copy $** $@
!ENDIF
!ELSEIF "$(TARGETNAMESUFFIX)" == ""
!IF $(386)
$(BINMODE:*=i386): $(BINMODE:obj\*=linkopts\obj\i386)
-copy $** $@
$(COMMODE:*=i386): $(COMMODE:obj\*=linkopts\obj\i386)
-copy $** $@
$(SETARGV:*=i386): $(SETARGV:obj\*=linkopts\obj\i386)
-copy $** $@
$(CHKSTK:*=i386): $(CHKSTK:obj\*=startup\obj\i386)
-copy $** $@
!ELSEIF $(MIPS)
$(BINMODE:*=mips): $(BINMODE:obj\*=linkopts\obj\mips)
-copy $** $@
$(COMMODE:*=mips): $(COMMODE:obj\*=linkopts\obj\mips)
-copy $** $@
$(SETARGV:*=mips): $(SETARGV:obj\*=linkopts\obj\mips)
-copy $** $@
$(CHKSTK:*=mips): $(CHKSTK:obj\*=startup\obj\mips)
-copy $** $@
!ELSEIF $(PPC)
$(BINMODE:*=ppc): $(BINMODE:obj\*=linkopts\obj\ppc)
-copy $** $@
$(COMMODE:*=ppc): $(COMMODE:obj\*=linkopts\obj\ppc)
-copy $** $@
$(SETARGV:*=ppc): $(SETARGV:obj\*=linkopts\obj\ppc)
-copy $** $@
$(CHKSTK:*=ppc): $(CHKSTK:obj\*=startup\obj\ppc)
-copy $** $@
!ELSE
$(BINMODE:*=alpha): $(BINMODE:obj\*=linkopts\obj\alpha)
-copy $** $@
$(COMMODE:*=alpha): $(COMMODE:obj\*=linkopts\obj\alpha)
-copy $** $@
$(SETARGV:*=alpha): $(SETARGV:obj\*=linkopts\obj\alpha)
-copy $** $@
$(CHKSTK:*=alpha): $(CHKSTK:obj\*=startup\obj\alpha)
-copy $** $@
!ENDIF
!ENDIF