Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1376 lines
37 KiB

!ifdef NTMAKEENV
all:
clean:
!else
####
#libw32 - release scheme for CRT projects
#
# Copyright (c) 1991-1994, 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:
#
# crtw32 = LIBC components (not including floating-point math)
# fpw32 = 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.
# 03-22-93 SKS Clone FP32 project (now VCFP32) for Visual C++ for NT
# 04-20-93 SKS Remove oldname alias for alloca(). It must be #define-d
# in the source since _alloca is a compiler intrinsic.
# 09-15-93 SKS VCRTLIB version modified for new project LIBWIN32
# 10-13-93 CFW Add MIPS support, msvcrt30->msvcrt20.
# 10-22-93 CFW More MIPS support, new oldnames.lib build procedure.
# 11-04-93 CFW Add EH.
# 11-05-93 CFW MIPS doesn't build EH.
# 11-15-93 CFW Add to oldnames.lib.
# 11-24-93 CFW Wide argv.
# 11-29-93 GJF Put in support for Alpha target. Deleted definition
# of COMPONENT_OBJECTS (not used) and old ntcrt.lib
# support (obsolete). Grab linkopt objects from
# crtwin32.st tree instead of crtwin32.
# 12-07-93 SKS Add /RELEASE switch to link options when blding DLL
# 12-08-93 GJF Added #if !$(ALPHA) to the checks made before using
# a default build target.
# 12-16-93 GJF Added -opt:noref to link32 switches used to link
# msvcrt20.dll for the Alpha.
# 01-07-94 GJF Put in support for building Steve Hanson's libm (MIPS
# only). Also, put in conditionals which should
# eliminate annoying "unknown target" warnings.
# 01-10-94 GJF Cleaned up TARGETLIBS definitions. Made *_DLLBASE
# the same for all target cpus.
# 01-14-94 GJF Added 64-bit integer arithmetic helpers to msvcrt.lib
# for x86 build.
# 01-25-94 GJF Ripped out libm stuff.
# 02-28-94 CFW MIPS builds eh now.
# 03-05-94 GJF Corrected omissions in MIPS and Alpha builds of DLL.
# Changed definition of COMPONENTS_SUPPOBJS to make
# variations between targets platforms more obvious.
# 04-07-94 CFW All need charmax.
# 04-21-94 SKS Add SDKNAMES.LIB for all 3 platforms.
# Fix # of _'s on i386 oldnames.lib alias for control87.
# 04-25-94 CFW Add wcrtexew.
# 04-25-94 CFW Use lib not lib32.
# 05-05-94 GJF Build Win32s version of DLL in lib\i386\win32s under
# msvcrt20 name (instead of in lib\i386 under the name
# msvcrt19).
# 05-18-94 GJF Renamed link32 to link.
# 05-18-94 SKS Add support for LEGO-enabled objects & libraries
# 06-03-94 GJF Added ehvec* objects to the COMPONENTS_SUPPOBJS_DLL_
# FOR_WIN32 list.
# 06-04-94 GJF Fixed line-too-long bug in building Win32s version of
# msvcrt20.lib
# 07-19-94 CFW Add version resource.
# 07-20-94 CFW Add rtlmisc.obj for MIPS.
# 07-25-94 ATD Added eh for Alpha.
# 07-27-94 CFW New V3 directories.
# 08-01-94 GJF Moved several objects on to COMPONENTS_SUPPOBJS_COMM-
# ON list. This change only affects the Alpha. Also,
# moved crtlib.obj from the COMPONENTS_SUPPOBJS list
# onto COMPONENTS_CRTDLL list. This keeps it out of the
# imports library but retains the exporiting of the
# access functions. This only affects the x86.
# 08-09-94 GJF Support for client-supplied _matherr routine for
# client exe-s of msvcrt*.dll.
# 09-06-94 GJF Added errmode.obj.
# 09-13-94 GJF Merged in changes for/from DEC Alpha.
# 11-08-94 SKS Change v2.0 to v3.0; change DLL base address
#
################################################################################
!IFNDEF DLLDBG
DLLDBG=none
!ENDIF
!IFNDEF PUMA
PUMA=0
PUMADIRSUF=w
DEFLIBCV=
!ELSE
PUMA=1
PUMADIRSUF=d
DEFLIBCV=-debugtype:cv
!ENDIF
!IFNDEF 386
386=0
!ENDIF
!IFNDEF MIPS
MIPS=0
!ENDIF
!IFNDEF ALPHA
ALPHA=0
!ENDIF
#
# Default to building for i386 target, if no targets specified.
#
!IF !$(386)
!IF !$(MIPS)
!IF !$(ALPHA)
!IFDEF NTMIPSDEFAULT
MIPS=1
!ELSE
!IFDEF NTALPHADEFAULT
ALPHA=1
!ELSE
386=1
!ENDIF
!ENDIF
!ENDIF
!ENDIF
!ENDIF
#
# component files from other directories
#
# single thread
ROOT_LIBC=..\crt$(PUMADIRSUF)32.st
ROOT_FP=..\fp$(PUMADIRSUF)32.st
SRCDIR_LIBC=$(ROOT_LIBC)\obj\*
SRCDIR_FP=$(ROOT_FP)\obj\*
COMPONENTS_LIBC=\
$(SRCDIR_LIBC)\libc.lib \
$(SRCDIR_FP)\conv.lib \
$(SRCDIR_FP)\tran.lib
# multi-thread
ROOT_LIBCMT=..\crt$(PUMADIRSUF)32
ROOT_FPMT=..\fp$(PUMADIRSUF)32
SRCDIR_LIBCMT=$(ROOT_LIBCMT)\obj\*
SRCDIR_FPMT=$(ROOT_FPMT)\obj\*
COMPONENTS_LIBCMT=\
$(SRCDIR_LIBCMT)\libcmt.lib \
$(SRCDIR_FPMT)\convmt.lib \
$(SRCDIR_FPMT)\tranmt.lib
# dll
ROOT_CRTDLL=..\crt$(PUMADIRSUF)32.dll
ROOT_FPDLL=..\fp$(PUMADIRSUF)32.dll
SRCDIR_CRTDLL=$(ROOT_CRTDLL)\obj\*
SRCDIR_FPDLL=$(ROOT_FPDLL)\obj\*
!IF (386)
ROOT_DLL_FOR_WIN32S=..\crtw32.dls
ROOT_FPDLL_FOR_WIN32S=..\fpw32.dls
SRCDIR_DLL_FOR_WIN32S=$(ROOT_DLL_FOR_WIN32S)\obj\i386
SRCDIR_FPDLL_FOR_WIN32S=$(ROOT_FPDLL_FOR_WIN32S)\obj\i386
!ENDIF
COMPONENTS_SUPPOBJS_COMMON=\
$(ROOT_LIBCMT)\misc\obj\*\charmax.obj \
$(SRCDIR_CRTDLL)\crtexe.obj \
$(SRCDIR_CRTDLL)\crtexew.obj \
$(SRCDIR_CRTDLL)\crtdll.obj \
$(SRCDIR_CRTDLL)\cinitexe.obj \
$(SRCDIR_CRTDLL)\dllargv.obj \
$(SRCDIR_CRTDLL)\dll_argv.obj \
$(SRCDIR_CRTDLL)\atonexit.obj \
$(SRCDIR_CRTDLL)\dllmain.obj \
$(SRCDIR_CRTDLL)\merr.obj \
$(SRCDIR_CRTDLL)\wcrtexe.obj \
$(SRCDIR_CRTDLL)\wcrtexew.obj \
$(SRCDIR_CRTDLL)\wdllargv.obj \
$(SRCDIR_CRTDLL)\wildcard.obj \
$(ROOT_CRTDLL)\eh\obj\*\ehvecctr.obj \
$(ROOT_CRTDLL)\eh\obj\*\ehveccvb.obj \
$(ROOT_CRTDLL)\eh\obj\*\ehvecdtr.obj \
$(ROOT_LIBCMT)\lowio\obj\*\txtmode.obj \
$(ROOT_LIBCMT)\heap\obj\*\_newmode.obj \
$(ROOT_LIBCMT)\startup\obj\*\tlssup.obj \
$(ROOT_LIBCMT)\stdio\obj\*\ncommode.obj \
$(DSTDIR_OBJECTS)\chkstk.obj
!IF $(386)
COMPONENTS_SUPPOBJS=\
$(COMPONENTS_SUPPOBJS_COMMON) \
$(ROOT_LIBCMT)\startup\obj\*\atlssup.obj \
$(ROOT_FPDLL)\conv\obj\*\fp8.obj \
$(ROOT_CRTDLL)\dllstuff\obj\*\adjustfd.obj \
$(SRCDIR_CRTDLL)\dllsupp.obj
COMPONENTS_SUPPOBJS_DLL_FOR_WIN32S = \
$(ROOT_LIBCMT)\misc\obj\i386\charmax.obj \
$(ROOT_DLL_FOR_WIN32S)\eh\obj\i386\ehvecctr.obj \
$(ROOT_DLL_FOR_WIN32S)\eh\obj\i386\ehveccvb.obj \
$(ROOT_DLL_FOR_WIN32S)\eh\obj\i386\ehvecdtr.obj \
$(SRCDIR_DLL_FOR_WIN32S)\crtexe.obj \
$(SRCDIR_DLL_FOR_WIN32S)\crtexew.obj \
$(SRCDIR_DLL_FOR_WIN32S)\crtdll.obj \
$(SRCDIR_DLL_FOR_WIN32S)\cinitexe.obj \
$(SRCDIR_DLL_FOR_WIN32S)\dllargv.obj \
$(SRCDIR_DLL_FOR_WIN32S)\dll_argv.obj \
$(SRCDIR_DLL_FOR_WIN32S)\atonexit.obj \
$(SRCDIR_DLL_FOR_WIN32S)\dllmain.obj \
$(SRCDIR_DLL_FOR_WIN32S)\wcrtexe.obj \
$(SRCDIR_DLL_FOR_WIN32S)\wdllargv.obj \
$(SRCDIR_DLL_FOR_WIN32S)\wildcard.obj \
$(ROOT_LIBCMT)\lowio\obj\i386\txtmode.obj \
$(ROOT_LIBCMT)\heap\obj\i386\_newmode.obj \
$(ROOT_LIBCMT)\stdio\obj\i386\ncommode.obj \
lib\i386\chkstk.obj \
$(ROOT_LIBCMT)\startup\obj\i386\tlssup.obj \
$(ROOT_LIBCMT)\startup\obj\i386\atlssup.obj \
$(ROOT_FPDLL_FOR_WIN32S)\conv\obj\i386\fp8.obj \
$(ROOT_DLL_FOR_WIN32S)\dllstuff\obj\i386\adjustfd.obj \
$(SRCDIR_DLL_FOR_WIN32S)\dllsupp.obj
386_HELPERLIB=$(ROOT_CRTDLL)\obj\i386\helper.lib
!ENDIF
!IF $(MIPS)
COMPONENTS_SUPPOBJS=\
$(COMPONENTS_SUPPOBJS_COMMON)
!ENDIF
!IF $(ALPHA)
COMPONENTS_SUPPOBJS=\
$(COMPONENTS_SUPPOBJS_COMMON) \
$(ROOT_CRTDLL)\eh\obj\*\ehvecctr.obj \
$(ROOT_CRTDLL)\eh\obj\*\ehveccvb.obj \
$(ROOT_CRTDLL)\eh\obj\*\ehvecdtr.obj
!ENDIF
COMPONENTS_CRTDLL=\
$(SRCDIR_CRTDLL)\libcdll.lib \
$(SRCDIR_FPDLL)\convdll.lib \
$(SRCDIR_FPDLL)\trandll.lib \
!IF $(386)
$(SRCDIR_CRTDLL)\crtlib.obj \
!ENDIF
$(ROOT_CRTDLL)\heap\obj\*\handler.obj \
$(ROOT_CRTDLL)\heap\obj\*\new_mode.obj \
!IF $(386)
$(ROOT_CRTDLL)\eh\obj\*\frame.obj \
$(ROOT_CRTDLL)\eh\obj\*\hooks.obj \
$(ROOT_CRTDLL)\eh\obj\*\throw.obj \
$(ROOT_CRTDLL)\eh\obj\*\trnsctrl.obj \
$(ROOT_CRTDLL)\eh\obj\*\unhandld.obj \
$(ROOT_CRTDLL)\eh\obj\*\user.obj \
$(ROOT_CRTDLL)\eh\obj\*\validate.obj \
!ELSE
!IF $(MIPS)
$(ROOT_CRTDLL)\eh\obj\*\ehstate.obj \
$(ROOT_CRTDLL)\eh\obj\*\frame.obj \
$(ROOT_CRTDLL)\eh\obj\*\handlers.obj \
$(ROOT_CRTDLL)\eh\obj\*\hooks.obj \
$(ROOT_CRTDLL)\eh\obj\*\rtlmisc.obj \
$(ROOT_CRTDLL)\eh\obj\*\throw.obj \
$(ROOT_CRTDLL)\eh\obj\*\tmphack.obj \
$(ROOT_CRTDLL)\eh\obj\*\trnsctrl.obj \
$(ROOT_CRTDLL)\eh\obj\*\unhandld.obj \
$(ROOT_CRTDLL)\eh\obj\*\user.obj \
$(ROOT_CRTDLL)\eh\obj\*\validate.obj \
!ELSE
!IF $(ALPHA)
$(ROOT_CRTDLL)\eh\obj\*\bridge.obj \
$(ROOT_CRTDLL)\eh\obj\*\ehunwind.obj \
$(ROOT_CRTDLL)\eh\obj\*\frame.obj \
$(ROOT_CRTDLL)\eh\obj\*\hooks.obj \
$(ROOT_CRTDLL)\eh\obj\*\throw.obj \
$(ROOT_CRTDLL)\eh\obj\*\trnsctrl.obj \
$(ROOT_CRTDLL)\eh\obj\*\unhandld.obj \
$(ROOT_CRTDLL)\eh\obj\*\user.obj \
$(ROOT_CRTDLL)\eh\obj\*\validate.obj \
$(ROOT_CRTDLL)\eh\obj\*\xcptmisc.obj \
!ENDIF
!ENDIF
!ENDIF
$(ROOT_CRTDLL)\iostream\obj\*\cerrinit.obj \
$(ROOT_CRTDLL)\iostream\obj\*\cininit.obj \
$(ROOT_CRTDLL)\iostream\obj\*\cloginit.obj \
$(ROOT_CRTDLL)\iostream\obj\*\filebuf.obj \
$(ROOT_CRTDLL)\iostream\obj\*\filebuf1.obj \
$(ROOT_CRTDLL)\iostream\obj\*\fstream.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ifstream.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ios.obj \
$(ROOT_CRTDLL)\iostream\obj\*\iostream.obj \
$(ROOT_CRTDLL)\iostream\obj\*\iostrini.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istrchar.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istrdbl.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istream.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istream1.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istrflt.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istrgdbl.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istrget.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istrgetl.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istrgint.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istrint.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istrldbl.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istrlong.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istrshrt.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istruint.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istrulng.obj \
$(ROOT_CRTDLL)\iostream\obj\*\istrusht.obj \
$(ROOT_CRTDLL)\iostream\obj\*\mtlock.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ofstream.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ostrchar.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ostrdbl.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ostream.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ostream1.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ostrint.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ostrldbl.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ostrlong.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ostrptr.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ostrput.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ostrshrt.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ostruint.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ostrulng.obj \
$(ROOT_CRTDLL)\iostream\obj\*\ostrusht.obj \
$(ROOT_CRTDLL)\iostream\obj\*\stdiostr.obj \
$(ROOT_CRTDLL)\iostream\obj\*\streamb.obj \
$(ROOT_CRTDLL)\iostream\obj\*\streamb1.obj \
$(ROOT_CRTDLL)\iostream\obj\*\strmbdbp.obj \
$(ROOT_CRTDLL)\iostream\obj\*\strstrea.obj \
$(ROOT_CRTDLL)\misc\obj\*\errmode.obj \
$(ROOT_FPDLL)\tran\obj\*\matherr.obj
!IF $(386)
COMPONENTS_DLL_FOR_WIN32S=\
$(SRCDIR_DLL_FOR_WIN32S)\libcdll.lib \
$(SRCDIR_FPDLL_FOR_WIN32S)\convdll.lib \
$(SRCDIR_FPDLL_FOR_WIN32S)\trandll.lib \
$(SRCDIR_DLL_FOR_WIN32S)\crtlib.obj \
$(ROOT_DLL_FOR_WIN32S)\heap\obj\i386\handler.obj \
$(ROOT_DLL_FOR_WIN32S)\heap\obj\i386\new_mode.obj \
$(ROOT_DLL_FOR_WIN32S)\eh\obj\i386\frame.obj \
$(ROOT_DLL_FOR_WIN32S)\eh\obj\i386\hooks.obj \
$(ROOT_DLL_FOR_WIN32S)\eh\obj\i386\throw.obj \
$(ROOT_DLL_FOR_WIN32S)\eh\obj\i386\trnsctrl.obj \
$(ROOT_DLL_FOR_WIN32S)\eh\obj\i386\unhandld.obj \
$(ROOT_DLL_FOR_WIN32S)\eh\obj\i386\user.obj \
$(ROOT_DLL_FOR_WIN32S)\eh\obj\i386\validate.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\cerrinit.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\cininit.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\cloginit.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\filebuf.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\filebuf1.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\fstream.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ifstream.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ios.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\iostream.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\iostrini.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istrchar.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istrdbl.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istream.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istream1.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istrflt.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istrgdbl.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istrget.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istrgetl.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istrgint.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istrint.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istrldbl.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istrlong.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istrshrt.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istruint.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istrulng.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\istrusht.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\mtlock.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ofstream.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ostrchar.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ostrdbl.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ostream.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ostream1.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ostrint.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ostrldbl.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ostrlong.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ostrptr.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ostrput.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ostrshrt.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ostruint.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ostrulng.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\ostrusht.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\stdiostr.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\streamb.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\streamb1.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\strmbdbp.obj \
$(ROOT_DLL_FOR_WIN32S)\iostream\obj\i386\strstrea.obj \
$(ROOT_DLL_FOR_WIN32S)\misc\obj\i386\errmode.obj \
$(ROOT_FPDLL_FOR_WIN32S)\tran\obj\i386\matherr.obj
!ENDIF
# optional objects for the crt dll msvcrt30.DLL
# def file to build dll
COMPONENTS_DLLDEF=lib\*\msvcrt30.def
!IF $(386)
COMPONENTS_DLL_FOR_WIN32S_DEF=lib\i386\win32s\msvcrt30.def
!ENDIF
# include files
COMPONENTS_INCLUDES=\
$(ROOT_CRTDLL)\h\*.h \
$(ROOT_CRTDLL)\h\sys\*.h \
# nt libs
!IF "$(BASEDIR)" == ""
NTLIBPATH=$(_NTDRIVE)\nt\public\sdk\lib\*
!ELSE
NTLIBPATH=$(BASEDIR)\public\sdk\lib\*
!ENDIF
LINKLIBS=\
$(NTLIBPATH)\user32.lib \
$(NTLIBPATH)\kernel32.lib
# include paths for rc
!IF "$(BASEDIR)" == ""
RC_INCL=-I$(_NTDRIVE)\nt\public\oak\inc -I$(_NTDRIVE)\nt\public\sdk\inc \
-I$(_NTDRIVE)\nt\public\sdk\inc\crt
!ELSE
RC_INCL=-I$(BASEDIR)\public\oak\inc -I$(BASEDIR)\public\sdk\inc \
-I$(BASEDIR)\public\sdk\inc\crt
!ENDIF
# 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
#
# release targets
#
!IF $(PUMA)
DSTDIR_LIBC=lib\*\puma
DSTDIR_LIBCMT=lib\*\puma
DSTDIR_OBJECTS=lib\*\puma
DSTDIR_CRTDLL=lib\*\puma
!ELSE
DSTDIR_LIBC=lib\*
DSTDIR_LIBCMT=lib\*
DSTDIR_OBJECTS=lib\*
DSTDIR_CRTDLL=lib\*
!ENDIF
!IF $(386)
DSTDIR_DLL_FOR_WIN32S=lib\i386\win32s
!ENDIF
DSTDIR_INCLUDES=include\*
# single-thread lib
RELEASE_LIBC=\
$(DSTDIR_LIBC)\libc.lib
# multi-thread lib
RELEASE_LIBCMT=\
$(DSTDIR_LIBCMT)\libcmt.lib
# optional objects for single- and multi-thread
!IF $(386)
RELEASE_OBJECTS=\
$(DSTDIR_OBJECTS)\binmode.obj \
$(DSTDIR_OBJECTS)\commode.obj \
$(DSTDIR_OBJECTS)\newmode.obj \
$(DSTDIR_OBJECTS)\setargv.obj \
$(DSTDIR_OBJECTS)\wsetargv.obj \
$(DSTDIR_OBJECTS)\chkstk.obj \
$(DSTDIR_OBJECTS)\fp10.obj
!ELSE
RELEASE_OBJECTS=\
$(DSTDIR_OBJECTS)\binmode.obj \
$(DSTDIR_OBJECTS)\commode.obj \
$(DSTDIR_OBJECTS)\newmode.obj \
$(DSTDIR_OBJECTS)\setargv.obj \
$(DSTDIR_OBJECTS)\wsetargv.obj \
$(DSTDIR_OBJECTS)\chkstk.obj
!ENDIF
# dll
RELEASE_DLLLIB=\
$(DSTDIR_CRTDLL)\msvcrt.lib
RELEASE_DLL=\
$(DSTDIR_CRTDLL)\msvcrt30.dll
!IF $(386)
RELEASE_DLL_FOR_WIN32S_LIB=\
$(DSTDIR_DLL_FOR_WIN32S)\msvcrt.lib
RELEASE_DLL_FOR_WIN32S=\
$(DSTDIR_DLL_FOR_WIN32S)\msvcrt30.dll
!ENDIF
# dll, imports lib and optional objects
RELEASE_CRTDLL=\
$(RELEASE_DLL:.dll=.lib) \
$(RELEASE_DLL) \
$(RELEASE_DLLLIB)
!IF $(386)
RELEASE_CRTDLL_FOR_WIN32S=\
$(RELEASE_DLL_FOR_WIN32S:.dll=.lib) \
$(RELEASE_DLL_FOR_WIN32S) \
$(RELEASE_DLL_FOR_WIN32S_LIB)
!ENDIF
# include files (all models)
RELEASE_INCLUDES=\
$(DSTDIR_INCLUDES)\*.h \
$(DSTDIR_INCLUDES)\sys\*.h
!IF $(386)
!IF $(PUMA)
TARGETLIBS=$(RELEASE_OBJECTS:*=i386) \
$(RELEASE_LIBC:*=i386) \
$(RELEASE_LIBCMT:*=i386) \
$(RELEASE_CRTDLL:*=i386)
!ELSE
TARGETLIBS=$(RELEASE_OBJECTS:*=i386) \
$(RELEASE_LIBC:*=i386) \
$(RELEASE_LIBCMT:*=i386) \
$(RELEASE_CRTDLL:*=i386) \
$(RELEASE_CRTDLL_FOR_WIN32S) \
lib\i386\sdknames.lib \
lib\i386\oldnames.lib
!ENDIF
!ENDIF
!IF $(MIPS)
!IF $(PUMA)
TARGETLIBS=$(RELEASE_OBJECTS:*=mips) \
$(RELEASE_LIBC:*=mips) \
$(RELEASE_LIBCMT:*=mips) \
$(RELEASE_CRTDLL:*=mips)
!ELSE
TARGETLIBS=$(RELEASE_OBJECTS:*=mips) \
$(RELEASE_LIBC:*=mips) \
$(RELEASE_LIBCMT:*=mips) \
$(RELEASE_CRTDLL:*=mips) \
lib\mips\sdknames.lib \
lib\mips\oldnames.lib
!ENDIF
!ENDIF
!IF $(ALPHA)
!IF $(PUMA)
TARGETLIBS=$(RELEASE_OBJECTS:*=alpha) \
$(RELEASE_LIBC:*=alpha) \
$(RELEASE_LIBCMT:*=alpha) \
$(RELEASE_CRTDLL:*=alpha)
!ELSE
TARGETLIBS=$(RELEASE_OBJECTS:*=alpha) \
$(RELEASE_LIBC:*=alpha) \
$(RELEASE_LIBCMT:*=alpha) \
$(RELEASE_CRTDLL:*=alpha) \
lib\alpha\sdknames.lib \
lib\alpha\oldnames.lib
!ENDIF
!ENDIF
all: $(TARGETLIBS)
!IF "$(BUILDMSG)" != ""
echo $(BUILDMSG)
!ENDIF
includes: $(RELEASE_INCLUDES)
!IF "$(BUILDMSG)" != ""
echo $(BUILDMSG)
!ENDIF
clean: cleanlib all
cleanlib:
-erase $(TARGETLIBS)
#
# common targets
#
$(RELEASE_INCLUDES): $(COMPONENTS_INCLUDES)
set CRTDIR=$(ROOT_CRTDLL)
$(ROOT_CRTDLL)\tools\win32\relinc.cmd include
#
# i386 targets
#
!IF $(386)
$(RELEASE_LIBC:*=i386): $(COMPONENTS_LIBC:*=i386)
lib -out:$@ @<<
$(COMPONENTS_LIBC:*=i386)
<<
$(RELEASE_LIBCMT:*=i386): $(COMPONENTS_LIBCMT:*=i386)
lib -out:$@ @<<
$(COMPONENTS_LIBCMT:*=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)\newmode.obj: $(SRCDIR_LIBC:*=i386)\newmode.obj
copy $** $@
$(DSTDIR_OBJECTS:*=i386)\setargv.obj: $(SRCDIR_LIBC:*=i386)\setargv.obj
copy $** $@
$(DSTDIR_OBJECTS:*=i386)\wsetargv.obj: $(SRCDIR_LIBC:*=i386)\wsetargv.obj
copy $** $@
$(DSTDIR_OBJECTS:*=i386)\chkstk.obj: $(SRCDIR_LIBC:*=i386)\chkstk.obj
copy $** $@
$(DSTDIR_OBJECTS:*=i386)\fp10.obj: $(SRCDIR_LIBC:*=i386)\fp10.obj
copy $** $@
# DLL FOR WIN32
386_DLL=$(RELEASE_DLL:*=i386)
386_LIBCDLL=$(COMPONENTS_CRTDLL:*=i386)
386_OBJECTS=$(COMPONENTS_SUPPOBJS:*=i386)
386_DEF=$(COMPONENTS_DLLDEF:*=i386)
386_LINKLIBS=$(LINKLIBS:*=i386)
386_DLLBASE=0x10200000
$(386_DLL:.dll=.exp) $(386_DLL:.dll=.lib): $(386_DEF) $(386_OBJECTS)
lib -out:$(@R).lib $(DEFLIBCV) -def:$(386_DEF) @<<
$(386_LIBCDLL: =^
)
<<
ren $@ tmp.lib
lib @<<
-out:$(@R).lib
$(@D)\tmp.lib
$(386_HELPERLIB)
$(386_OBJECTS: =^
)
<<
del $(@D)\tmp.lib
$(386_DLL): $(386_DLL:.dll=.lib) $(386_DLL:.dll=.exp) $(386_LIBCDLL) $(386_LINKLIBS)
rc -l 409 -r -fo $(386_DLL:.dll=.tmp) $(RCX86_DEFS) -x $(RC_INCL) msvcrt30.rc
cvtres -i386 $(386_DLL:.dll=.tmp) -r -o $(386_DLL:.dll=.res)
link @<<
-dll
-release
-out:$@
-map
-debug:$(DLLDBG)
-base:$(386_DLLBASE)
-entry:_CRTDLL_INIT@12
$(386_DLL:.dll=.exp)
$(386_DLL:.dll=.res)
$(386_LIBCDLL: =^
)
$(386_LINKLIBS)
<<
$(RELEASE_DLLLIB:*=i386): $(DSTDIR_CRTDLL:*=i386)\msvcrt30.lib lib\i386\sdknames.lib
lib -out:$@ $**
# DLL FOR WIN32S
386_DLL_S=$(RELEASE_DLL_FOR_WIN32S)
386_LIBCDLL_S=$(COMPONENTS_DLL_FOR_WIN32S)
386_OBJECTS_S=$(COMPONENTS_SUPPOBJS_DLL_FOR_WIN32S)
386_DEF_S=$(COMPONENTS_DLL_FOR_WIN32S_DEF)
$(386_DLL_S:.dll=.exp) $(386_DLL_S:.dll=.lib): $(386_DEF_S) $(386_OBJECTS_S)
lib -out:$(@R).lib $(DEFLIBCV) -def:$(386_DEF_S) @<<
$(386_LIBCDLL_S: =^
)
<<
ren $@ tmp.lib
lib @<<
-out:$(@R).lib
$(@D)\tmp.lib
$(386_HELPERLIB)
$(386_OBJECTS_S: =^
)
<<
del $(@D)\tmp.lib
$(386_DLL_S): $(386_DLL_S:.dll=.lib) $(386_DLL_S:.dll=.exp) $(386_LIBCDLL_S) $(386_LINKLIBS)
rc -l 409 -r -fo $(386_DLL_S:.dll=.tmp) $(RCX86_DEFS) -x $(RC_INCL) msvcrt30.rc
cvtres -i386 $(386_DLL_S:.dll=.tmp) -r -o $(386_DLL_S:.dll=.res)
link @<<
-dll
-release
-out:$@
-map
-debug:$(DLLDBG)
-base:$(386_DLLBASE)
-entry:_CRTDLL_INIT@12
$(386_DLL_S:.dll=.exp)
$(386_DLL_S:.dll=.res)
$(386_LIBCDLL_S: =^
)
$(386_LINKLIBS)
<<
$(RELEASE_DLL_FOR_WIN32S_LIB): lib\i386\win32s\msvcrt30.lib
copy lib\i386\win32s\msvcrt30.lib $@
!ENDIF
#
# mips targets
#
!IF $(MIPS)
$(RELEASE_LIBC:*=mips): $(COMPONENTS_LIBC:*=mips)
lib -out:$@ @<<
$(COMPONENTS_LIBC:*=mips)
<<
$(RELEASE_LIBCMT:*=mips): $(COMPONENTS_LIBCMT:*=mips)
lib -out:$@ @<<
$(COMPONENTS_LIBCMT:*=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)\newmode.obj: $(SRCDIR_LIBC:*=mips)\newmode.obj
copy $** $@
$(DSTDIR_OBJECTS:*=mips)\setargv.obj: $(SRCDIR_LIBC:*=mips)\setargv.obj
copy $** $@
$(DSTDIR_OBJECTS:*=mips)\wsetargv.obj: $(SRCDIR_LIBC:*=mips)\wsetargv.obj
copy $** $@
$(DSTDIR_OBJECTS:*=mips)\chkstk.obj: $(SRCDIR_LIBC:*=mips)\chkstk.obj
copy $** $@
MIPS_DLL=$(RELEASE_DLL:*=mips)
MIPS_LIBCDLL=$(COMPONENTS_CRTDLL:*=mips)
MIPS_OBJECTS=$(COMPONENTS_SUPPOBJS:*=mips)
MIPS_DEF=$(COMPONENTS_DLLDEF:*=mips)
MIPS_LINKLIBS=$(LINKLIBS:*=mips)
MIPS_DLLBASE=0x10200000
$(MIPS_DLL:.dll=.exp) $(MIPS_DLL:.dll=.lib): $(MIPS_DEF) $(MIPS_OBJECTS)
lib -out:$(@R).lib $(DEFLIBCV) -def:$(MIPS_DEF) @<<
$(MIPS_LIBCDLL: =^
)
<<
ren $@ tmp.lib
lib -out:$(@R).lib $(@D)\tmp.lib $(MIPS_OBJECTS)
del $(@D)\tmp.lib
$(MIPS_DLL): $(MIPS_DLL:.dll=.lib) $(MIPS_DLL:.dll=.exp) $(MIPS_LIBCDLL) $(MIPS_LINKLIBS)
rc -l 409 -r -fo $(MIPS_DLL:.dll=.tmp) $(RCMIPS_DEFS) -x $(RC_INCL) msvcrt30.rc
cvtres -mips $(MIPS_DLL:.dll=.tmp) -r -o $(MIPS_DLL:.dll=.res)
link @<<
-dll
-release
-out:$@
-map
-debug:$(DLLDBG)
-base:$(MIPS_DLLBASE)
-entry:_CRTDLL_INIT
$(MIPS_DLL:.dll=.exp)
$(MIPS_DLL:.dll=.res)
$(MIPS_LIBCDLL: =^
)
$(MIPS_LINKLIBS)
<<
$(RELEASE_DLLLIB:*=mips): $(DSTDIR_CRTDLL:*=mips)\msvcrt30.lib lib\mips\sdknames.lib
lib -out:$@ $**
!ENDIF
#
# alpha targets
#
!IF $(ALPHA)
$(RELEASE_LIBC:*=alpha): $(COMPONENTS_LIBC:*=alpha)
lib -out:$@ @<<
$(COMPONENTS_LIBC:*=alpha)
<<
$(RELEASE_LIBCMT:*=alpha): $(COMPONENTS_LIBCMT:*=alpha)
lib -out:$@ @<<
$(COMPONENTS_LIBCMT:*=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)\newmode.obj: $(SRCDIR_LIBC:*=alpha)\newmode.obj
copy $** $@
$(DSTDIR_OBJECTS:*=alpha)\setargv.obj: $(SRCDIR_LIBC:*=alpha)\setargv.obj
copy $** $@
$(DSTDIR_OBJECTS:*=alpha)\wsetargv.obj: $(SRCDIR_LIBC:*=alpha)\wsetargv.obj
copy $** $@
$(DSTDIR_OBJECTS:*=alpha)\chkstk.obj: $(SRCDIR_LIBC:*=alpha)\chkstk.obj
copy $** $@
ALPHA_DLL=$(RELEASE_DLL:*=alpha)
ALPHA_LIBCDLL=$(COMPONENTS_CRTDLL:*=alpha)
ALPHA_OBJECTS=$(COMPONENTS_SUPPOBJS:*=alpha)
ALPHA_DEF=$(COMPONENTS_DLLDEF:*=alpha)
ALPHA_LINKLIBS=$(LINKLIBS:*=alpha)
ALPHA_DLLBASE=0x10200000
$(ALPHA_DLL:.dll=.exp) $(ALPHA_DLL:.dll=.lib): $(ALPHA_DEF) $(ALPHA_OBJECTS)
lib -out:$(@R).lib $(DEFLIBCV) -def:$(ALPHA_DEF) @<<
$(ALPHA_LIBCDLL: =^
)
<<
ren $@ tmp.lib
lib -out:$(@R).lib $(@D)\tmp.lib $(ALPHA_OBJECTS)
del $(@D)\tmp.lib
$(ALPHA_DLL): $(ALPHA_DLL:.dll=.lib) $(ALPHA_DLL:.dll=.exp) $(ALPHA_LIBCDLL) $(ALPHA_LINKLIBS)
link @<<
-dll
-release
-out:$@
-map
-debug:$(DLLDBG)
-base:$(ALPHA_DLLBASE)
-entry:_CRTDLL_INIT
$(ALPHA_DLL:.dll=.exp)
$(ALPHA_LIBCDLL: =^
)
$(ALPHA_LINKLIBS)
<<
$(RELEASE_DLLLIB:*=alpha): $(DSTDIR_CRTDLL:*=alpha)\msvcrt30.lib lib\alpha\sdknames.lib
lib -out:$@ $**
!ENDIF
# -----------------------------------------------------------------------
# OLDNAMES.LIB build rules
# -----------------------------------------------------------------------
# For each of these .obj files there will also be an .obi file which
# contains an alias for the indirect (import) form.
#
# Break up OLDNAMES_SHORT_OBJECTS into two macros since nmake macro substitution chokes on long macro
OLDNAMES_SHORT_OBJECTS1 = \
oldnames\obj\*\cgets.obj \
oldnames\obj\*\clear87.obj \
oldnames\obj\*\cprintf.obj \
oldnames\obj\*\cputs.obj \
oldnames\obj\*\cscanf.obj \
oldnames\obj\*\daylight.obj \
oldnames\obj\*\environ.obj \
oldnames\obj\*\getch.obj \
oldnames\obj\*\fpreset.obj \
oldnames\obj\*\getche.obj \
oldnames\obj\*\kbhit.obj \
oldnames\obj\*\putch.obj \
oldnames\obj\*\ungetch.obj \
oldnames\obj\*\chdir.obj \
oldnames\obj\*\getcwd.obj \
oldnames\obj\*\mkdir.obj \
oldnames\obj\*\rmdir.obj \
oldnames\obj\*\access.obj \
oldnames\obj\*\chmod.obj \
oldnames\obj\*\chsize.obj \
oldnames\obj\*\close.obj \
oldnames\obj\*\creat.obj \
oldnames\obj\*\dup2.obj \
oldnames\obj\*\eof.obj \
oldnames\obj\*\isatty.obj \
oldnames\obj\*\locking.obj \
oldnames\obj\*\lseek.obj \
oldnames\obj\*\mktemp.obj \
oldnames\obj\*\open.obj \
oldnames\obj\*\read.obj \
oldnames\obj\*\setmode.obj \
oldnames\obj\*\sopen.obj \
oldnames\obj\*\status87.obj \
oldnames\obj\*\sys_nerr.obj \
oldnames\obj\*\tell.obj \
oldnames\obj\*\umask.obj \
oldnames\obj\*\unlink.obj \
oldnames\obj\*\write.obj \
oldnames\obj\*\memccpy.obj \
oldnames\obj\*\memicmp.obj \
oldnames\obj\*\cwait.obj
OLDNAMES_SHORT_OBJECTS2 = \
oldnames\obj\*\execl.obj \
oldnames\obj\*\execle.obj \
oldnames\obj\*\execlp.obj \
oldnames\obj\*\execlpe.obj \
oldnames\obj\*\execv.obj \
oldnames\obj\*\execve.obj \
oldnames\obj\*\execvp.obj \
oldnames\obj\*\execvpe.obj \
oldnames\obj\*\getpid.obj \
oldnames\obj\*\spawnl.obj \
oldnames\obj\*\spawnle.obj \
oldnames\obj\*\spawnlp.obj \
oldnames\obj\*\spawnlpe.obj \
oldnames\obj\*\spawnv.obj \
oldnames\obj\*\spawnve.obj \
oldnames\obj\*\spawnvp.obj \
oldnames\obj\*\spawnvpe.obj \
oldnames\obj\*\lfind.obj \
oldnames\obj\*\lsearch.obj \
oldnames\obj\*\ecvt.obj \
oldnames\obj\*\fcvt.obj \
oldnames\obj\*\gcvt.obj \
oldnames\obj\*\HUGE.obj \
oldnames\obj\*\hypot.obj \
oldnames\obj\*\j0.obj \
oldnames\obj\*\j1.obj \
oldnames\obj\*\jn.obj \
oldnames\obj\*\y0.obj \
oldnames\obj\*\y1.obj \
oldnames\obj\*\yn.obj \
oldnames\obj\*\itoa.obj \
oldnames\obj\*\ltoa.obj \
oldnames\obj\*\onexit.obj \
oldnames\obj\*\putenv.obj \
oldnames\obj\*\swab.obj \
oldnames\obj\*\ultoa.obj \
oldnames\obj\*\fdopen.obj \
oldnames\obj\*\fgetchar.obj \
oldnames\obj\*\fileno.obj \
oldnames\obj\*\flushall.obj \
oldnames\obj\*\fputchar.obj \
oldnames\obj\*\getw.obj \
oldnames\obj\*\putw.obj \
oldnames\obj\*\rmtmp.obj \
oldnames\obj\*\tempnam.obj \
oldnames\obj\*\strcmpi.obj \
oldnames\obj\*\stricmp.obj \
oldnames\obj\*\strdup.obj \
oldnames\obj\*\strlwr.obj \
oldnames\obj\*\strnicmp.obj \
oldnames\obj\*\strnset.obj \
oldnames\obj\*\strrev.obj \
oldnames\obj\*\strset.obj \
oldnames\obj\*\strupr.obj \
oldnames\obj\*\fstat.obj \
oldnames\obj\*\stat.obj \
oldnames\obj\*\ftime.obj \
oldnames\obj\*\timezone.obj \
oldnames\obj\*\tzname.obj \
oldnames\obj\*\tzset.obj \
oldnames\obj\*\utime.obj \
oldnames\obj\*\dup.obj \
oldnames\obj\*\wcsdup.obj \
oldnames\obj\*\wcsicmp.obj \
oldnames\obj\*\wcsnicmp.obj \
oldnames\obj\*\wcsnset.obj \
oldnames\obj\*\wcsrev.obj \
oldnames\obj\*\wcsset.obj \
oldnames\obj\*\wcslwr.obj \
oldnames\obj\*\wcsupr.obj \
oldnames\obj\*\wcsicoll.obj \
oldnames\obj\*\wait.obj
OLDNAMES_LONG_OBJECTS = \
oldnames\obj\*\fileleng.obj \
oldnames\obj\*\serrlist.obj \
oldnames\obj\*\ctrl87.obj \
oldnames\obj\*\fcloseal.obj
!IF $(386)
OLDNAMES_SHORT_OBJECTS = $(OLDNAMES_SHORT_OBJECTS1:*=i386) $(OLDNAMES_SHORT_OBJECTS2:*=i386)
$(OLDNAMES_SHORT_OBJECTS): tools\i386\aliasobj.exe
tools\i386\aliasobj _$(@B) __$(@B) $@
tools\i386\aliasobj __imp__$(@B) __imp___$(@B) $*.obi
#
# special handling of ones with names longer than a valid FAT filename ...
#
oldnames\obj\i386\fileleng.obj: tools\i386\aliasobj.exe
tools\i386\aliasobj _filelength __filelength $@
tools\i386\aliasobj __imp__filelength __imp___filelength $*.obi
oldnames\obj\i386\fcloseal.obj: tools\i386\aliasobj.exe
tools\i386\aliasobj _fcloseall __fcloseall $@
tools\i386\aliasobj __imp__fcloseall __imp___fcloseall $*.obi
oldnames\obj\i386\ctrl87.obj: tools\i386\aliasobj.exe
tools\i386\aliasobj _control87 __control87 $@
tools\i386\aliasobj __imp_control87 __imp___control87 $*.obi
oldnames\obj\i386\serrlist.obj: tools\i386\aliasobj.exe
tools\i386\aliasobj _sys_errlist __sys_errlist $@
tools\i386\aliasobj __imp__sys_errlist __imp___sys_errlist $*.obi
OLDNAMES_OBJECTS = $(OLDNAMES_SHORT_OBJECTS) $(OLDNAMES_LONG_OBJECTS:*=i386)
OLDNAMES_OBIS = $(OLDNAMES_OBJECTS:.obj=.obi)
lib\i386\oldnames.lib: $(OLDNAMES_OBJECTS) $(OLDNAMES_OBIS)
link -lib @<<
-nologo
-out:$@
$(OLDNAMES_OBJECTS: =^
)
$(OLDNAMES_OBIS: =^
)
<<
!ELSE
!IF $(MIPS)
OLDNAMES_SHORT_OBJECTS = $(OLDNAMES_SHORT_OBJECTS1:*=mips) $(OLDNAMES_SHORT_OBJECTS2:*=mips)
$(OLDNAMES_SHORT_OBJECTS): tools\mips\aliasobj.exe
tools\mips\aliasobj $(@B) _$(@B) $@
tools\mips\aliasobj __imp_$(@B) __imp__$(@B) $*.obi
#
# special handling of ones with names longer than a valid FAT filename ...
#
oldnames\obj\mips\fileleng.obj: tools\mips\aliasobj.exe
tools\mips\aliasobj filelength _filelength $@
tools\mips\aliasobj __imp_filelength __imp__filelength $*.obi
oldnames\obj\mips\fcloseal.obj: tools\mips\aliasobj.exe
tools\mips\aliasobj fcloseall _fcloseall $@
tools\mips\aliasobj __imp_fcloseall __imp__fcloseall $*.obi
oldnames\obj\mips\ctrl87.obj: tools\mips\aliasobj.exe
tools\mips\aliasobj control87 _control87 $@
tools\mips\aliasobj __imp_control87 __imp__control87 $*.obi
oldnames\obj\mips\serrlist.obj: tools\mips\aliasobj.exe
tools\mips\aliasobj sys_errlist _sys_errlist $@
tools\mips\aliasobj __imp_sys_errlist __imp__sys_errlist $*.obi
OLDNAMES_OBJECTS = $(OLDNAMES_SHORT_OBJECTS) $(OLDNAMES_LONG_OBJECTS:*=mips)
OLDNAMES_OBIS = $(OLDNAMES_OBJECTS:.obj=.obi)
lib\mips\oldnames.lib: $(OLDNAMES_OBJECTS) $(OLDNAMES_OBIS)
link -lib @<<
-nologo
-out:$@
$(OLDNAMES_OBJECTS: =^
)
$(OLDNAMES_OBIS: =^
)
<<
!ELSE
# ALPHA
OLDNAMES_SHORT_OBJECTS = $(OLDNAMES_SHORT_OBJECTS1:*=alpha) $(OLDNAMES_SHORT_OBJECTS2:*=alpha)
$(OLDNAMES_SHORT_OBJECTS): tools\alpha\aliasobj.exe
tools\alpha\aliasobj $(@B) _$(@B) $@
tools\alpha\aliasobj __imp_$(@B) __imp__$(@B) $*.obi
#
# special handling of ones with names longer than a valid FAT filename ...
#
oldnames\obj\alpha\fileleng.obj: tools\alpha\aliasobj.exe
tools\alpha\aliasobj filelength _filelength $@
tools\alpha\aliasobj __imp_filelength __imp__filelength $*.obi
oldnames\obj\alpha\fcloseal.obj: tools\alpha\aliasobj.exe
tools\alpha\aliasobj fcloseall _fcloseall $@
tools\alpha\aliasobj __imp_fcloseall __imp__fcloseall $*.obi
oldnames\obj\alpha\ctrl87.obj: tools\alpha\aliasobj.exe
tools\alpha\aliasobj control87 _control87 $@
tools\alpha\aliasobj __imp_control87 __imp__control87 $*.obi
oldnames\obj\alpha\serrlist.obj: tools\alpha\aliasobj.exe
tools\alpha\aliasobj sys_errlist _sys_errlist $@
tools\alpha\aliasobj __imp_sys_errlist __imp__sys_errlist $*.obi
OLDNAMES_OBJECTS = $(OLDNAMES_SHORT_OBJECTS) $(OLDNAMES_LONG_OBJECTS:*=alpha)
OLDNAMES_OBIS = $(OLDNAMES_OBJECTS:.obj=.obi)
lib\alpha\oldnames.lib: $(OLDNAMES_OBJECTS) $(OLDNAMES_OBIS)
link -lib @<<
-nologo
-out:$@
$(OLDNAMES_OBJECTS: =^
)
$(OLDNAMES_OBIS: =^
)
<<
!ENDIF
!ENDIF
# these were originally in oldnames but were commented out
# inp
# inpw
# outp
# outpw
# _isascii
# _toascii
# _iscsymf
# _iscsym
# dosexterr
# halloc
# hfree
# stackavail
# cabs
# dieeetomsbin
# dmsbintoieee
# fieeetomsbin
# fmsbintoieee
# hypot
# j0
# j1
# jn
# y0
# y1
# yn
# cabsl
# hypotl
# CABS
# HYPOT
# J0
# J1
# JN
# Y0
# Y1
# YN
# movedata
# -----------------------------------------------------------------------
# end of OLDNAMES.LIB build rules
# -----------------------------------------------------------------------
# -----------------------------------------------------------------------
# SDKNAMES.LIB build rules - SDKNAMES contains aliases for
# variables exported by CRTDLL.DLL (most with _dll suffixes)
# which have _imp__ prefixes instead in MSVCRT10.DLL.
# -----------------------------------------------------------------------
SDKNAMES_SHORT_STAR_OBJECTS= \
sdknames\obj\*\_argc.obj \
sdknames\obj\*\_argv.obj \
sdknames\obj\*\daylight.obj \
sdknames\obj\*\environ.obj \
sdknames\obj\*\fmode.obj \
sdknames\obj\*\HUGE.obj \
sdknames\obj\*\osver.obj \
sdknames\obj\*\pctype.obj \
sdknames\obj\*\pwctype.obj \
sdknames\obj\*\pgmptr.obj \
sdknames\obj\*\sys_nerr.obj \
sdknames\obj\*\timezone.obj \
sdknames\obj\*\winver.obj \
sdknames\obj\*\winmajor.obj \
sdknames\obj\*\winminor.obj
SDKNAMES_LONG_STAR_OBJECTS = \
sdknames\obj\*\mbcurmax.obj \
sdknames\obj\*\syserlst.obj
SDKNAMES_SPECIAL_STAR_CASES = \
sdknames\obj\*\ctype.obj \
sdknames\obj\*\iob.obj \
sdknames\obj\*\tzname.obj
!IF $(386)
SDKNAMES_SHORT_OBJECTS = $(SDKNAMES_SHORT_STAR_OBJECTS:*=i386)
SDKNAMES_LONG_OBJECTS = $(SDKNAMES_LONG_STAR_OBJECTS:*=i386)
SDKNAMES_SPECIAL_CASES = $(SDKNAMES_SPECIAL_STAR_CASES:*=i386)
$(SDKNAMES_SHORT_OBJECTS): tools\i386\aliasobj.exe
tools\i386\aliasobj __$(@B)_dll __imp___$(@B) $@
#
# special handling of symbol names with more than 8 letters
#
sdknames\obj\i386\mbcurmax.obj:
tools\i386\aliasobj ___mb_cur_max_dll __imp____mb_cur_max $@
# __sys_errlist is also a "SPECIAL_CASE"
sdknames\obj\i386\syserlst.obj:
tools\i386\aliasobj __sys_errlist __imp___sys_errlist $@
#
# special handling of symbols without a "_dll" suffix in the NT SDK Headers
#
$(SDKNAMES_SPECIAL_CASES): tools\i386\aliasobj.exe
tools\i386\aliasobj __$(@B) __imp___$(@B) $@
SDKNAMES_OBJECTS = $(SDKNAMES_SHORT_OBJECTS) $(SDKNAMES_LONG_OBJECTS) \
$(SDKNAMES_SPECIAL_CASES)
SDKNAME_OBJS = $(SDKNAMES_OBJECTS:*=i386)
lib\i386\sdknames.lib: $(SDKNAMES_OBJECTS)
link -lib @<<
-nologo
-out:$@
$(SDKNAME_OBJS: =^
)
<<
!ELSE
!IF $(MIPS)
SDKNAMES_SHORT_OBJECTS = $(SDKNAMES_SHORT_STAR_OBJECTS:*=mips)
SDKNAMES_LONG_OBJECTS = $(SDKNAMES_LONG_STAR_OBJECTS:*=mips)
SDKNAMES_SPECIAL_CASES = $(SDKNAMES_SPECIAL_STAR_CASES:*=mips)
$(SDKNAMES_SHORT_OBJECTS): tools\mips\aliasobj.exe
tools\mips\aliasobj _$(@B)_dll __imp__$(@B) $@
#
# special handling of symbol names with more than 8 letters
#
sdknames\obj\mips\mbcurmax.obj:
tools\mips\aliasobj __mb_cur_max_dll __imp___mb_cur_max $@
# __sys_errlist is also a "SPECIAL_CASE"
sdknames\obj\mips\syserlst.obj:
tools\mips\aliasobj _sys_errlist __imp__sys_errlist $@
#
# special handling of symbols without a "_dll" suffix in the NT SDK Headers
#
$(SDKNAMES_SPECIAL_CASES): tools\mips\aliasobj.exe
tools\mips\aliasobj _$(@B) __imp__$(@B) $@
SDKNAMES_OBJECTS = $(SDKNAMES_SHORT_OBJECTS) $(SDKNAMES_LONG_OBJECTS) \
$(SDKNAMES_SPECIAL_CASES)
SDKNAME_OBJS = $(SDKNAMES_OBJECTS:*=mips)
lib\mips\sdknames.lib: $(SDKNAMES_OBJECTS)
link -lib @<<
-nologo
-out:$@
$(SDKNAME_OBJS: =^
)
<<
!ELSE
# ALPHA
SDKNAMES_SHORT_OBJECTS = $(SDKNAMES_SHORT_STAR_OBJECTS:*=alpha)
SDKNAMES_LONG_OBJECTS = $(SDKNAMES_LONG_STAR_OBJECTS:*=alpha)
SDKNAMES_SPECIAL_CASES = $(SDKNAMES_SPECIAL_STAR_CASES:*=alpha)
$(SDKNAMES_SHORT_OBJECTS): tools\alpha\aliasobj.exe
tools\alpha\aliasobj _$(@B)_dll __imp__$(@B) $@
#
# special handling of symbol names with more than 8 letters
#
sdknames\obj\alpha\mbcurmax.obj:
tools\alpha\aliasobj __mb_cur_max_dll __imp___mb_cur_max $@
# __sys_errlist is also a "SPECIAL_CASE"
sdknames\obj\alpha\syserlst.obj:
tools\alpha\aliasobj _sys_errlist __imp__sys_errlist $@
#
# special handling of symbols without a "_dll" suffix in the NT SDK Headers
#
$(SDKNAMES_SPECIAL_CASES): tools\alpha\aliasobj.exe
tools\alpha\aliasobj _$(@B) __imp__$(@B) $@
SDKNAMES_OBJECTS = $(SDKNAMES_SHORT_OBJECTS) $(SDKNAMES_LONG_OBJECTS) \
$(SDKNAMES_SPECIAL_CASES)
SDKNAME_OBJS = $(SDKNAMES_OBJECTS:*=alpha)
lib\alpha\sdknames.lib: $(SDKNAMES_OBJECTS)
link -lib @<<
-nologo
-out:$@
$(SDKNAME_OBJS: =^
)
<<
!ENDIF
!ENDIF
# -----------------------------------------------------------------------
# end of SDKNAMES.LIB build rules
# -----------------------------------------------------------------------
!endif # NTMAKEENV