home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
DLLTHD.ZIP
/
IBMOS2.1
Wrap
Text File
|
1991-07-14
|
60KB
|
1,980 lines
14-Jul-1991
To: Anyone interested in making DLL's with multiple threads that access
the coprocessor
From: Jeff Hitchcock (71601,260)
Applied Signal Technology, Inc.
470 Spring Park Place, Suite 700
Herndon, VA 22070
(703) 478-5619 Voice
(703) 471-8915 Fax
1. What follows is a summary of key points of my experience in splitting a
large program (1.8 MB .EXE) that uses both multiple threads and the
coprocessor into a smaller .EXE (appx. 100K) and 12 DLL's, not including the
special C Run Time Library (CRTL) DLL. I will be happy to answer any
questions that I can about this, either on CompuServ (IBMOS2 forum) or on the
phone. I check in on CompuServ as often as I can, but it is always not every
week.
2. So we are all using the same terminology, the following applies
throughout:
Term Meaning
module A DLL or EXE file, composed of multiple sources.
source A .C or .ASM file; part of a module. Can also mean
.H and .DLG files, as part of a resource.
3. The following proved to be the essential points:
a. All modules must use a dynamically linked CRTL in order to use the
coprocessor.
b. All links must use the /NOI flag, which preserves case sensitivity
(required because the CRTL functions are in lower case).
c. All module definition files (.DEF) must have the EXPENTRY functions
(the exported ones) defined in UPPERCASE, because (i) EXPENTRY
(== pascal _loadds) converts the function name to all
uppercase, and (ii) the link uses the /NOI flag so references
to the function from other modules will be unresolved if the
functions are not defined as all uppercase.
d. All calls to WinDlgBox must be preceeded with a call to
DosLoadModule to load and get the handle of the DLL and
followed by a call to DosFreeModule to free the DLL.
e. Other than (d) and eliinating references to previously global
variables, we made NO changes to any of our code.
4. The following "picture" shows, essentially, the flow from source to
finished .DLL and .LIB (import library):
┌───────┐ ┌───────┐
│ │ │ │
│ .C │ │ .H │
│ │ │ │
└───────┘ └───────┘
║ ║
║ ║
╚════════╦════════╝
║
║
╔═══════════╩═══════════╗
║ ║
║ cl -D_MT -D_DLL ... ║
║ ║
╚═══════════╦═══════════╝
║
║ ┌───────┐
║ ┌┴──────┐│
┌───────┐ ┌───────┐ ┌───────┐ ┌┴──────┐││ ┌───────┐
│ │ │ │ │ │ │ │││ │ │
│ .DLG │ │ .H │ │ .OBJ │ │ .OBJ ││┘ │ .DEF │═══╗
│ │ │ │ │ │ │ ├┘ │ │ ║
└───────┘ └───────┘ └───────┘ └───────┘ └───────┘ ║
║ ║ ║ ║ ║ ║
║ ║ ║ ║ ║ ║
╚════════╦════════╝ ╚═══════════╬═══════════╝ ║
║ ║ ║
║ ║ ║
╔══════╩═════╗ ╔══════════════╩══════════════╗ ║
║ ║ ║ ║ ║
║ rc -r .rc ╠═════╗ ║ link /NOI /NOD /NOE ... ║ ║
║ ║ ║ ║ ║ ║
╚════════════╝ ║ ╚════════════╦════════════════╝ ║
║ ║ ║
║ ║ ║
┌───────┐ ┌───────┐ ║
│ │ │ │ ║
│ .RES │ │ .DLL │ ║
│ │ │ │ ║
└───────┘ └───────┘ ║
║ ║ ║ ║
║ ║ ║ ║
╚════════╦═══════╝ ╚═════════╦═════════╝
║ ║
║ ║
╔══════╩═══════╗ ╔════════╩═════════╗
║ ║ ║ ║
║ rc .res .dll ║ ║ implib .lib .def ║
║ ║ ║ ║
╚══════╦═══════╝ ╚════════╦═════════╝
║ ║
║ ║
┌───────┐ ┌───────┐
│ │ │ │
│ .DLL │ │ .LIB │
│ │ │ │
└───────┘ └───────┘
5. Four files are included for your perusal:
(1) The makefile for use with PolyMake (by InterSolv).
(2) The ELV_CRTL.DEF file (essentially the same as cexample.def,
included with Microsoft C 6.0).
(3) ELV_DISP.DEF, to show how a DLL is defined.
(4) ELV_DISP.RC, to show how resources within a DLL are defined.
<START OF MAKEFILE>
-------------------------------------------------------------------------------
###############################################################################
# #
# ELVIRA MAKE FILE for use with PolyMake #
# #
# For the making of the Elvira .EXE and .DLL files. #
# #
# --------------------------------------------------------------------------- #
# #
# NOTE: A custom C Run Time Library is used by ELVIRA. To make it, the #
# file '\c600\lib\crtlib.obj' must be available. #
# #
# 'mlib' refers to Microsoft's Linker, which is renamed to distinguish #
# it from PolyLibrarian, which is called 'lib'. #
# #
# --------------------------------------------------------------------------- #
# #
# Command line syntax: #
# #
# >make [oldver=Va.b] [newver=Vc.d] [debug=no] [target] #
# #
# where a = old major version #
# b = old minor version #
# c = new major version #
# d = new minor version #
# #
# and "version" refers to an Elvira version, not a source revision. #
# #
# debug=no disables Codeview during compile & link #
# (Default is Codeview enabled) #
# #
# target is a makeable file (elvira3.exe or a .dll) #
# #
# --------------------------------------------------------------------------- #
# #
# Definitions of macros (alphabetically listed) #
# #
# ADEBUG Assembler debug flags #
# AFLAGS Assembler flags #
# ARCPATH Path for VCS archive files (*.??v) #
# CDEFINES Universal defines used when compiling .C files #
# CWD Current Working Directory (inherent) #
# DEBUGON "YES" if Codeview is desired; otherwise "NO" #
# DLL_SYSLIBS System libraries included in a .DLL link #
# DLL_CFLAGS C compiler flags for .DLL source #
# DLL_CDEBUG Additional C compiler flags for debugging .DLL #
# DLL_CNODEBUG Additional C compiler flags for no bebugging .DLL #
# DLL_LINKFLAGS Link flags for compiling a .EXE #
# DLL_LINKDEBUG Link flags added when using Codeview with .DL #
# ELV_DLLS List of all .DLL's used in ELVIRA #
# ELV_EXES List of all .EXE's used in ELVIRA #
# ELV_EXE_OBJS .EXE : .OBJ dependencies #
# ELV_EXE_RSRCS .EXE resources and headers #
# ELV_xxxx_OBJS .DLL : .OBJ dependencies for ELV_xxxx.DLL #
# ELV_xxxx_RSCRS .DLL resources for ELV_xxxx.DLL #
# ELV_RESS A list of all .RES files in Elvira #
# EXE_SYSLIBS System libraries included in a .EXE link #
# EXE_CFLAGS C compiler flags for .EXE source #
# EXE_CDEBUG Additional C compiler flags for debugging .EXE #
# EXE_CNODEBUG Additional C compiler flags for no bebugging .EXE #
# EXE_LINKFLAGS Link flags for compiling a .EXE #
# EXE_LINKDEBUG Link flags added when using Codeview with .EXE #
# GETOPTS Options used by VCS get command #
# INC_GROUP Functional groups to be compiled with real code #
# RCDEFINES Universal defines used when compiling .RC files #
# SOURCEPATH Paths to search for source code #
# #
###############################################################################
###############################################################################
# #
# GENERAL MACROS AND DIRECTIVES #
# #
###############################################################################
# Do not delete intermediate files (e.g., created .OBJ's)
.PRECIOUS
# Paths to files
ARCPATH = v:\elvira
SOURCEPATH = $(CWD);$(ARCPATH)
# .ASM related flags
AFLAGS =
ADEBUG = /Zi /Zd
# .C (made into a .EXE) related flags
EXE_CFLAGS = -c $(CDEFINES) -Alfw -FPi -D_MT -D_DLL -G2stw -Gt16 -Od -W3
EXE_CDEBUG = -Zi -Od
EXE_CNODEBUG = -Od
# .C (made into a .DLL) related flags
DLL_CFLAGS = -c $(CDEFINES) -ALw -FPi -D_MT -D_DLL -G2s -Gt16 -Od -W3
DLL_CDEBUG = -Zi -Od
DLL_CNODEBUG = -Od
# GET (extract from version control) flags
GETOPTS = -q
# .EXE linker flags
EXE_LINKFLAGS = /NOD /NOE /NOI /ALIGN:16 /SEGMENTS:200
EXE_LINKDEBUG = /CO
# Libraries used in linking .EXE's
EXE_SYSLIBS = elv_crtl os2 lm_dxi_o
# .DLL linker flags
DLL_LINKFLAGS = /NOD /NOE /NOI /ALIGN:16 /SEGMENTS:200
DLL_LINKDEBUG = /CO
# Libraries used in linking .DLL's
DLL_SYSLIBS = elv_crtl os2
# Utility DLL's used by ELVIRA .EXE's and .DLL's (except for the utility .DLL's)
ELV_UTILDLLS = elv_util
ELV_UTILDLLS += elv_file
###############################################################################
# #
# EXE'S AND FUNCTION #
# #
###############################################################################
ELV_EXES = elvira3.exe # The main executable
###############################################################################
# #
# EXE : OBJECT dependencies #
# #
# The following objects are statically linked to make ELVIRA3.EXE. All #
# other objects are linked into dynamic link libraries. #
# #
###############################################################################
ELV_EXE_OBJS = elvira3.obj # Must be first for .EXE file to LINK properly
ELV_EXE_OBJS += config.obj
ELV_EXE_OBJS += process.obj
ELV_EXE_SYSOBS = c:\c600\lib\crtexe.obj
###############################################################################
# #
# DLL'S AND FUNCTION #
# #
# ELV_UTIL and ELV_FILE are listed first since they are used by most other #
# .DLL's. Keeping them first forces their recompiles first during a #
# complete make. #
# #
###############################################################################
# ----------------------
# DYNAMIC LINK LIBRARIES
# ----------------------
ELV_DLLS = elv_crtl.dll # C RTL for Elvira (Required to use 80x87)
ELV_DLLS += elv_util.dll #
ELV_DLLS += elv_file.dll #
ELV_DLLS += elv_b100.dll #
ELV_DLLS += elv_clct.dll #
ELV_DLLS += elv_disp.dll #
ELV_DLLS += elv_dmod.dll #
ELV_DLLS += elv_fax.dll #
ELV_DLLS += elv_lor.dll #
ELV_DLLS += elv_mlti.dll #
ELV_DLLS += elv_naa.dll #
ELV_DLLS += elv_proc.dll #
ELV_DLLS += elv_rcgn.dll #
# ----------------
# IMPORT LIBRARIES
# ----------------
ELV_IMPLIBS = elv_crtl.lib
ELV_IMPLIBS += elv_util.lib
ELV_IMPLIBS += elv_file.lib
ELV_IMPLIBS += elv_b100.lib
ELV_IMPLIBS += elv_clct.lib
ELV_IMPLIBS += elv_disp.lib
ELV_IMPLIBS += elv_dmod.lib
ELV_IMPLIBS += elv_fax.lib
ELV_IMPLIBS += elv_lor.lib
ELV_IMPLIBS += elv_mlti.lib
ELV_IMPLIBS += elv_naa.lib
ELV_IMPLIBS += elv_proc.lib
ELV_IMPLIBS += elv_rcgn.lib
# ----------------------
# RESOURCE FILES
# ----------------------
ELV_RESS = elv_util.res #
ELV_RESS += elv_file.res #
# ELV_RESS += elv_b100.res # No B100 resources
ELV_RESS += elv_clct.res #
ELV_RESS += elv_disp.res #
ELV_RESS += elv_dmod.res #
ELV_RESS += elv_fax.res #
ELV_RESS += elv_lor.res #
ELV_RESS += elv_mlti.res #
ELV_RESS += elv_naa.res #
ELV_RESS += elv_proc.res #
ELV_RESS += elv_rcgn.res #
ELV_RESS += elvira3.res #
###############################################################################
# #
# DLL : OBJECT dependencies #
# #
# The following objects are linked into dynamic link libraries. #
# #
###############################################################################
# ------------
# ELV_B100.DLL
# ------------
ELV_B100_OBJS = b100elv3.obj
ELV_B100_OBJS += b100os2.obj
ELV_B100_OBJS += b100mdem.obj
# ------------
# ELV_CLCT.DLL
# ------------
ELV_CLCT_OBJS = datacoll.obj
ELV_CLCT_OBJS += rxctl.obj
ELV_CLCT_OBJS += scan.obj
ELV_CLCT_OBJS += scanfunc.obj
ELV_CLCT_OBJS += siggen.obj
ELV_CLCT_OBJS += sim.obj
# ------------
# ELV_DISP.DLL
# ------------
ELV_DISP_OBJS = bitplot.obj
ELV_DISP_OBJS += dataplot.obj
ELV_DISP_OBJS += text.obj
# ------------
# ELV_DMOD.DLL
# ------------
ELV_DMOD_OBJS = anlgdmod.obj
ELV_DMOD_OBJS += bpskdmod.obj
ELV_DMOD_OBJS += fskdmod.obj
ELV_DMOD_OBJS += modem.obj
# ------------
# ELV_FAX.DLL
# ------------
ELV_FAX_OBJS = decutil.obj
ELV_FAX_OBJS += fax.obj
# ------------
# ELV_FILE.DLL
# ------------
ELV_FILE_OBJS = fileio.obj
# ------------
# ELV_LOR.DLL
# ------------
ELV_LOR_OBJS = bitproc.obj
# ------------
# ELV_MLTI.DLL
# ------------
ELV_MLTI_OBJS = classify.obj
ELV_MLTI_OBJS += energy.obj
ELV_MLTI_OBJS += fsk.obj
ELV_MLTI_OBJS += searche.obj
ELV_MLTI_OBJS += spltband.obj
ELV_MLTI_OBJS += topid.obj
ELV_MLTI_OBJS += vftid.obj
# ------------
# ELV_NAA.DLL
# ------------
ELV_NAA_OBJS = casdecod.obj
ELV_NAA_OBJS += hdlc.obj
ELV_NAA_OBJS += mar.obj
ELV_NAA_OBJS += naa.obj
ELV_NAA_OBJS += naaclass.obj
ELV_NAA_OBJS += naadecod.obj
ELV_NAA_OBJS += naaevent.obj
ELV_NAA_OBJS += sif.obj
# ------------
# ELV_PROC.DLL
# ------------
ELV_PROC_OBJS = fft.obj
ELV_PROC_OBJS += filter.obj
ELV_PROC_OBJS += mathe.obj
ELV_PROC_OBJS += resample.obj
# ------------
# ELV_RCGN.DLL
# ------------
ELV_RCGN_OBJS = baudline.obj
ELV_RCGN_OBJS += carrier.obj
ELV_RCGN_OBJS += recognz.obj
# ------------
# ELV_UTIL.DLL
# ------------
ELV_UTIL_OBJS = help11.obj
ELV_UTIL_OBJS += print.obj
ELV_UTIL_OBJS += status.obj
ELV_UTIL_OBJS += util.obj
# ------------
# ELV_CRTL.DLL
# ------------
ELV_CRTL_OBJS = c:\c600\lib\crtlib.obj
###############################################################################
# #
# EXE : RESOURCE dependencies #
# #
# The following resources are linked into .EXE files. #
# #
###############################################################################
ELV_EXE_RSRCS = elvira3.rc
ELV_EXE_RSRCS += elvira3$.h
ELV_EXE_RSRCS += config$.h
ELV_EXE_RSRCS += config$.dlg
# ELV_EXE_RSRCS += elvira3.ico
# ELV_EXE_RSRCS += crosshr.ptr
###############################################################################
# #
# DLL : RESOURCE dependencies #
# #
# The following resources are linked into dynamic link libraries. #
# #
###############################################################################
# ------------
# ELV_B100.DLL
# ------------
ELV_B100_RSRCS =
# ------------
# ELV_CLCT.DLL
# ------------
ELV_CLCT_RSRCS = elv_clct.rc
ELV_CLCT_RSRCS += version.h
ELV_CLCT_RSRCS += datacol$.dlg
ELV_CLCT_RSRCS += datacol$.h
ELV_CLCT_RSRCS += rxctl$.dlg
ELV_CLCT_RSRCS += rxctl$.h
ELV_CLCT_RSRCS += scan$.dlg
ELV_CLCT_RSRCS += scan$.h
ELV_CLCT_RSRCS += siggen$.dlg
ELV_CLCT_RSRCS += siggen$.h
ELV_CLCT_RSRCS += sim$.dlg
ELV_CLCT_RSRCS += sim$.h
# ------------
# ELV_DISP.DLL
# ------------
ELV_DISP_RSRCS = elv_disp.rc
ELV_DISP_RSRCS += dataplo$.dlg
ELV_DISP_RSRCS += dataplo$.h
# ------------
# ELV_DMOD.DLL
# ------------
ELV_DMOD_RSRCS = elv_dmod.rc
ELV_DMOD_RSRCS += anlgdmo$.dlg
ELV_DMOD_RSRCS += anlgdmo$.h
ELV_DMOD_RSRCS += bpskdmo$.dlg
ELV_DMOD_RSRCS += bpskdmo$.h
ELV_DMOD_RSRCS += fskdmod$.dlg
ELV_DMOD_RSRCS += fskdmod$.h
ELV_DMOD_RSRCS += modem$.dlg
ELV_DMOD_RSRCS += modem$.h
# ------------
# ELV_FAX.DLL
# ------------
ELV_FAX_RSRCS = elv_fax.rc
ELV_FAX_RSRCS += fax$.dlg
ELV_FAX_RSRCS += fax$.h
# ------------
# ELV_FILE.DLL
# ------------
ELV_FILE_RSRCS = elv_file.rc
ELV_FILE_RSRCS += fileio$.dlg
ELV_FILE_RSRCS += fileio$.h
# ------------
# ELV_LOR.DLL
# ------------
ELV_LOR_RSRCS = elv_lor.rc
ELV_LOR_RSRCS += bitproc$.dlg
ELV_LOR_RSRCS += bitproc$.h
# ------------
# ELV_MLTI.DLL
# ------------
ELV_MLTI_RSRCS = elv_mlti.rc
ELV_MLTI_RSRCS += classif$.dlg
ELV_MLTI_RSRCS += classif$.h
ELV_MLTI_RSRCS += energy$.dlg
ELV_MLTI_RSRCS += energy$.h
ELV_MLTI_RSRCS += fsk$.dlg
ELV_MLTI_RSRCS += fsk$.h
ELV_MLTI_RSRCS += searche$.dlg
ELV_MLTI_RSRCS += searche$.h
ELV_MLTI_RSRCS += spltban$.dlg
ELV_MLTI_RSRCS += spltban$.h
ELV_MLTI_RSRCS += topid$.dlg
ELV_MLTI_RSRCS += topid$.h
ELV_MLTI_RSRCS += vftid$.dlg
ELV_MLTI_RSRCS += vftid$.h
# ------------
# ELV_NAA.DLL
# ------------
ELV_NAA_RSRCS = elv_naa.rc
ELV_NAA_RSRCS += casdeco$.dlg
ELV_NAA_RSRCS += casdeco$.h
ELV_NAA_RSRCS += hdlc$.dlg
ELV_NAA_RSRCS += hdlc$.h
ELV_NAA_RSRCS += sif$.dlg
ELV_NAA_RSRCS += sif$.h
ELV_NAA_RSRCS += naa$.dlg
ELV_NAA_RSRCS += naa$.h
ELV_NAA_RSRCS += naaeven$.dlg
ELV_NAA_RSRCS += naaeven$.h
ELV_NAA_RSRCS += mar$.dlg
ELV_NAA_RSRCS += mar$.h
# ------------
# ELV_PROC.DLL
# ------------
ELV_PROC_RSRCS = elv_proc.rc
ELV_PROC_RSRCS += fft$.dlg
ELV_PROC_RSRCS += fft$.h
ELV_PROC_RSRCS += filter$.dlg
ELV_PROC_RSRCS += filter$.h
ELV_PROC_RSRCS += mathe$.dlg
ELV_PROC_RSRCS += mathe$.h
ELV_PROC_RSRCS += resampl$.dlg
ELV_PROC_RSRCS += resampl$.h
# ------------
# ELV_RCGN.DLL
# ------------
ELV_RCGN_RSRCS = elv_rcgn.rc
ELV_RCGN_RSRCS += baudlin$.dlg
ELV_RCGN_RSRCS += baudlin$.h
ELV_RCGN_RSRCS += carrier$.dlg
ELV_RCGN_RSRCS += carrier$.h
ELV_RCGN_RSRCS += recognz$.dlg
ELV_RCGN_RSRCS += recognz$.h
# ------------
# ELV_UTIL.DLL
# ------------
ELV_UTIL_RSRCS = elv_util.rc
ELV_UTIL_RSRCS += print$.dlg
ELV_UTIL_RSRCS += print$.h
###############################################################################
# #
# ADJUST FLAGS DEPENDING UPON COMMAND LINE MACRO DEFINITIONS #
# #
###############################################################################
# If debugging is enabled (the default), add Codeview to compiles and links
DEBUGON = $[u,$(debug)]
%if "$(DEBUGON)" == "NO"
%echo ** CODEVIEW DISABLED
EXE_CFLAGS += $(CNODEBUG)
DLL_CFLAGS += $(CNODEBUG)
%else
%echo ** CODEVIEW ENABLED
AFLAGS += $(ADEBUG)
EXE_CFLAGS += $(EXE_CDEBUG)
DLL_CFLAGS += $(DLL_CDEBUG)
EXE_LINKFLAGS += $(EXE_LINKDEBUG)
DLL_LINKFLAGS += $(DLL_LINKDEBUG)
%endif
###############################################################################
# #
# DEFINE THE "VERSION" TO BE SHOWN IN "ABOUT" DIALOG BOX #
# #
###############################################################################
%if %defined(oldver)
CDEFINES = /DVERSION=$(oldver)
%endif
%if %defined(newver)
CDEFINES = /DVERSION=$(newver)
%endif
###############################################################################
# #
# DEFINE GROUP OF MODULES TO BE MADE #
# #
###############################################################################
%if %defined(group)
INC_GROUP = $[u,$(group)]
CDEFINES += /D$(INC_GROUP)
RCDEFINES += -d $(INC_GROUP)
%else
CDEFINES += /DINC_ALL
RCDEFINES += -d INC_ALL
%endif
###############################################################################
# #
# LOGFILE EXTRACTION RULES #
# #
###############################################################################
.LOGFILE .asv(.asm -R$(oldver))
.LOGFILE .c_v(.c -R$(oldver))
.LOGFILE .dev(.def -R$(oldver))
.LOGFILE .dlv(.dlg -R$(oldver))
.LOGFILE .exv(.ext -R$(oldver))
.LOGFILE .glv(.glb -R$(oldver))
.LOGFILE .h_v(.h -R$(oldver))
.LOGFILE .rcv(.rc -R$(oldver))
###############################################################################
# #
# LOGFILES ARE IN THE "ARCPATH" DIRECTORY ONLY #
# #
###############################################################################
.PATH.asv = $(ARCPATH)
.PATH.c_v = $(ARCPATH)
.PATH.dev = $(ARCPATH)
.PATH.dlv = $(ARCPATH)
.PATH.exv = $(ARCPATH)
.PATH.glv = $(ARCPATH)
.PATH.h_v = $(ARCPATH)
.PATH.rcv = $(ARCPATH)
###############################################################################
# #
# SOURCE FILES ARE IN ONE OF THE "SOURCEPATH" DIRECTORIES #
# #
###############################################################################
.PATH.asm = $(SOURCEPATH)
.PATH.c = $(SOURCEPATH)
.PATH.def = $(SOURCEPATH)
.PATH.dlg = $(SOURCEPATH)
.PATH.ext = $(SOURCEPATH)
.PATH.glb = $(SOURCEPATH)
.PATH.h = $(SOURCEPATH)
.PATH.ico = $(SOURCEPATH)
.PATH.obj = $(SOURCEPATH)
.PATH.rc = $(SOURCEPATH)
.PATH.ptr = $(SOURCEPATH)
###############################################################################
# #
# ALL .LIB, .RES, AND .DLL FILES MUST BE IN THE $(CWD) #
# #
###############################################################################
.PATH.dll = $(CWD)
.PATH.lib = $(CWD)
.PATH.res = $(CWD)
# Library files must have .LIB extension (All .DLL's have Import .LIB's)
.LIBRARY .lib
###############################################################################
# #
# EPILOG #
# #
# If a new version was specified, update the log files. #
# #
###############################################################################
%if %defined(newver)
.EPILOG:
vcs -V"$(newver)": *.??v
%endif
###############################################################################
# #
# LOG FILE EXTRACTION RULES #
# #
# $@ Target file #
# $* Target file, less extension #
# $< Depends on file #
# $? All depends on files modified more recently than target #
# $** All depends on files regardless of modification #
# #
###############################################################################
.c_v.c:
get -q $(oldver) $<($@)
.h_v.h:
get -q $(oldver) $<($@)
.asv.asm:
get -q $(oldver) $<($@)
.rcv.rc:
get -q $(oldver) $<($@)
.dlv.dlg:
get -q $(oldver) $<($@)
.exv.ext:
get -q $(oldver) $<($@)
.glv.glb:
get -q $(oldver) $<($@)
.dev.def:
get -q $(oldver) $<($@)
###############################################################################
# #
# GENERAL COMPILATION RULES #
# #
###############################################################################
.asm.obj:
masm $(AFLAGS) $< ;
.c.obj:
cl $(CFLAGS) $<
.rc.res:
rc -r $(RCDEFINES) $<
.res.dll:
rc $<
.res.exe:
rc $<
###############################################################################
###############################################################################
## ##
## DEPENDENCIES ##
## ##
## ** MAKE PROCESSING BEGINS HERE ** ##
## ##
## Sequence is to build all .DLL's, then the .EXE. ##
## ##
###############################################################################
###############################################################################
# ------------------
# HEAD PSEUDO TARGET
# ------------------
head : $(ELV_RESS) $(ELV_DLLS) $(ELV_EXES)
# ----------------------------------------------
# FILES THAT MUST EXIST BUT HAVE NO MAKE PROCESS
# ----------------------------------------------
elvira3.def :
#elvira3.ico :
#elvira3.ptr :
###############################################################################
# #
# ELVIRA3.EXE AND ELVIRA3.RES #
# #
###############################################################################
elvira3.res : $(ELV_EXE_RSRCS)
rc -r $(RCDEFINES) elvira3
elvira3.exe :: elvira3.def $(ELV_EXE_OBJS)
link $(EXE_LINKFLAGS) $(ELV_EXE_OBJS) $(ELV_EXE_SYSOBS), elvira3, NUL, $(EXE_SYSLIBS) $(ELV_IMPLIBS), elvira3 ;
rc $[f, $[d, $<], $[r, $<], .RES]
elvira3.exe :: elvira3.res
rc $<
###############################################################################
# #
# .DLL'S AND ASSOCIATED RESOURCES #
# #
###############################################################################
# ------------
# ELV_B100.DLL
# ------------
elv_b100_head : elv_b100.res elv_b100.dll
elv_b100.def :
elv_b100.dll :: elv_b100.def $(ELV_B100_OBJS)
link $(DLL_LINKFLAGS) $(ELV_B100_OBJS), elv_b100, NUL, $(DLL_SYSLIBS) $(ELV_UTILDLLS), elv_b100
implib elv_b100.lib elv_b100.def
# ------------
# ELV_CLCT.DLL
# ------------
elv_clct_head : elv_clct.res elv_clct.dll
elv_clct.def :
elv_clct.res : $(ELV_CLCT_RSRCS)
rc -r $(RCDEFINES) elv_clct.rc
elv_clct.dll :: elv_clct.def $(ELV_CLCT_OBJS)
link $(DLL_LINKFLAGS) $(ELV_CLCT_OBJS), elv_clct, NUL, $(DLL_SYSLIBS) $(ELV_UTILDLLS) elv_b100, elv_clct
implib elv_clct.lib elv_clct.def
rc $*.res $*.dll
elv_clct.dll :: elv_clct.res
rc $*.res $*.dll
# ------------
# ELV_DISP.DLL
# ------------
elv_disp_head : elv_disp.res elv_disp.dll
elv_disp.def :
elv_disp.res : $(ELV_DISP_RSRCS)
rc -r $(RCDEFINES) elv_disp.rc
elv_disp.dll :: elv_disp.def $(ELV_DISP_OBJS)
link $(DLL_LINKFLAGS) $(ELV_DISP_OBJS), elv_disp, NUL, $(DLL_SYSLIBS) $(ELV_UTILDLLS), elv_disp
implib elv_disp.lib elv_disp.def
rc $*.res $*.dll
elv_disp.dll :: elv_disp.res
rc $*.res $*.dll
# ------------
# ELV_DMOD.DLL
# ------------
elv_dmod_head : elv_dmod.res elv_dmod.dll
elv_dmod.def :
elv_dmod.res : $(ELV_DMOD_RSRCS)
rc -r $(RCDEFINES) elv_dmod.rc
elv_dmod.dll :: elv_dmod.def $(ELV_DMOD_OBJS)
link $(DLL_LINKFLAGS) $(ELV_DMOD_OBJS), elv_dmod, NUL, $(DLL_SYSLIBS) $(ELV_UTILDLLS) ELV_B100, elv_dmod
implib elv_dmod.lib elv_dmod.def
rc $*.res $*.dll
elv_dmod.dll :: elv_dmod.res
rc $*.res $*.dll
# ------------
# ELV_FAX.DLL
# ------------
elv_fax_head : elv_fax.res elv_fax.dll
elv_fax.def :
elv_fax.res : $(ELV_FAX_RSRCS)
rc -r $(RCDEFINES) elv_fax.rc
elv_fax.dll :: elv_fax.def $(ELV_FAX_OBJS)
link $(DLL_LINKFLAGS) $(ELV_FAX_OBJS), elv_fax, NUL, $(DLL_SYSLIBS) $(ELV_UTILDLLS) lm_dxi_o, elv_fax
implib elv_fax.lib elv_fax.def
rc $*.res $*.dll
elv_fax.dll :: elv_fax.res
rc $*.res $*.dll
# ------------
# ELV_FILE.DLL
# ------------
elv_file_head : elv_file.res elv_file.dll
elv_file.def :
elv_file.res : $(ELV_FILE_RSRCS)
rc -r $(RCDEFINES) elv_file.rc
elv_file.dll :: elv_file.def $(ELV_FILE_OBJS)
link $(DLL_LINKFLAGS) $(ELV_FILE_OBJS), elv_file, NUL, $(DLL_SYSLIBS) elv_util, elv_file
implib elv_file.lib elv_file.def
rc $*.res $*.dll
elv_file.dll :: elv_file.res
rc $*.res $*.dll
# ------------
# ELV_LOR.DLL
# ------------
elv_lor_head : elv_lor.res elv_lor.dll
elv_lor.def :
elv_lor.res : $(ELV_LOR_RSRCS)
rc -r $(RCDEFINES) elv_lor.rc
elv_lor.dll :: elv_lor.def $(ELV_LOR_OBJS)
link $(DLL_LINKFLAGS) $(ELV_LOR_OBJS), elv_lor, NUL, $(DLL_SYSLIBS) $(ELV_UTILDLLS), elv_lor
implib elv_lor.lib elv_lor.def
rc $*.res $*.dll
elv_lor.dll :: elv_lor.res
rc $*.res $*.dll
# ------------
# ELV_MLTI.DLL
# ------------
elv_mlti_head : elv_mlti.res elv_mlti.dll
elv_mlti.def :
elv_mlti.res : $(ELV_MLTI_RSRCS)
rc -r $(RCDEFINES) elv_mlti.rc
elv_mlti.dll :: elv_mlti.def $(ELV_MLTI_OBJS)
link $(DLL_LINKFLAGS) $(ELV_MLTI_OBJS), elv_mlti, NUL, $(DLL_SYSLIBS) $(ELV_UTILDLLS), elv_mlti
implib elv_mlti.lib elv_mlti.def
rc $*.res $*.dll
elv_mlti.dll :: elv_mlti.res
rc $*.res $*.dll
# ------------
# ELV_NAA.DLL
# ------------
elv_naa_head : elv_naa.res elv_naa.dll
elv_naa.def :
elv_naa.res : $(ELV_NAA_RSRCS)
rc -r $(RCDEFINES) elv_naa.rc
elv_naa.dll :: elv_naa.def $(ELV_NAA_OBJS)
link $(DLL_LINKFLAGS) $(ELV_NAA_OBJS), elv_naa, NUL, $(DLL_SYSLIBS) $(ELV_UTILDLLS), elv_naa
implib elv_naa.lib elv_naa.def
rc $*.res $*.dll
elv_naa.dll :: elv_naa.res
rc $*.res $*.dll
# ------------
# ELV_PROC.DLL
# ------------
elv_proc_head : elv_proc.res elv_proc.dll
elv_proc.def :
elv_proc.res : $(ELV_PROC_RSRCS)
rc -r $(RCDEFINES) elv_proc.rc
elv_proc.dll :: elv_proc.def $(ELV_PROC_OBJS)
link $(DLL_LINKFLAGS) $(ELV_PROC_OBJS), elv_proc, NUL, $(DLL_SYSLIBS) $(ELV_UTILDLLS), elv_proc
implib elv_proc.lib elv_proc.def
rc $*.res $*.dll
elv_proc.dll :: elv_proc.res
rc $*.res $*.dll
# ------------
# ELV_RCGN.DLL
# ------------
elv_rcgn_head : elv_rcgn.res elv_rcgn.dll
elv_rcgn.def :
elv_rcgn.res : $(ELV_RCGN_RSRCS)
rc -r $(RCDEFINES) elv_rcgn.rc
elv_rcgn.dll :: elv_rcgn.def $(ELV_RCGN_OBJS)
link $(DLL_LINKFLAGS) $(ELV_RCGN_OBJS), elv_rcgn, NUL, $(DLL_SYSLIBS) $(ELV_UTILDLLS), elv_rcgn
implib elv_rcgn.lib elv_rcgn.def
rc $*.res $*.dll
elv_rcgn.dll :: elv_rcgn.res
rc $*.res $*.dll
# ------------
# ELV_UTIL.DLL
# ------------
elv_util_head : elv_util.res elv_util.dll
elv_util.def :
elv_util.res : $(ELV_UTIL_RSRCS)
rc -r $(RCDEFINES) elv_util.rc
elv_util.dll :: elv_util.def $(ELV_UTIL_OBJS)
link $(DLL_LINKFLAGS) $(ELV_UTIL_OBJS), elv_util, NUL, $(DLL_SYSLIBS), elv_util
implib elv_util.lib elv_util.def
rc $*.res $*.dll
elv_util.dll :: elv_util.res
rc $*.res $*.dll
# ------------------------
# ELV_CRTL.DLL - LINK ONLY
# ------------------------
elv_crtl.dll : elv_crtl.def
link /NOD /NOE /NOI $(ELV_CRTL_OBJS),elv_crtl.dll,,cdllobjs+os2,elv_crtl.def
implib elv_crtl.lib elv_crtl.def
mlib elv_crtl.lib+c:\c600\lib\cdllsupp.lib ;
###############################################################################
# #
# .ASM SOURCE FILES #
# #
###############################################################################
# None as of 05-Jul-1991
###############################################################################
# #
# .C SOURCE FILES, GROUPED BY .EXE or .DLL #
# #
###############################################################################
# ------------
# ELVIRA3.EXE
# ------------
config.obj : config.c elv_base.h config.h config$.h elv_exe.h version.h fileio.h util.h
cl $(EXE_CFLAGS) $<
elvira3.obj : elvira3.c elv_base.h elvira3$.h elv_exe.h version.h null.h help11.h helpid11.h fileio.h print.h status.h util.h config.h processe.h
cl $(EXE_CFLAGS) $<
process.obj : process.c elv_base.h elv_exe.h version.h util.h
cl $(EXE_CFLAGS) $<
# ------------
# ELV_B100.DLL
# ------------
b100elv3.obj : b100elv3.c b100os2.h b100elv3.h b100mdem.h
cl $(DLL_CFLAGS) $<
b100os2.obj : b100os2.c b100os2.h
cl $(DLL_CFLAGS) $<
b100mdem.obj : b100mdem.c b100os2.h b100mdem.h b100psk.h
cl $(DLL_CFLAGS) $<
# ------------
# ELV_CLCT.DLL
# ------------
datacoll.obj : datacoll.c elv_base.h version.h fileio.h util.h b100os2.h b100elv3.h datacol$.h datacoll.h portia.h cmpndtbl.h
cl $(DLL_CFLAGS) $<
rxctl.obj : rxctl.c elv_base.h version.h util.h fileio.h rxctl.h rxctl$.h
cl $(DLL_CFLAGS) $<
scan.obj : scan.c elv_base.h version.h util.h fileio.h b100os2.h b100elv3.h scan$.h scanfunc.h
cl $(DLL_CFLAGS) $<
scanfunc.obj : scanfunc.c elv_base.h version.h util.h b100os2.h b100elv3.h scan$.h scanfunc.h fileio.h cmpndtbl.h
cl $(DLL_CFLAGS) $<
siggen.obj : siggen.c elv_base.h version.h util.h siggen.h siggen$.h fileio.h cmpndtbl.h
cl $(DLL_CFLAGS) $<
sim.obj : sim.c elv_base.h version.h util.h fileio.h sim.h sim$.h
cl $(DLL_CFLAGS) $<
# ------------
# ELV_DISP.DLL
# ------------
bitplot.obj : bitplot.c elv_base.h version.h fileio.h util.h
cl $(DLL_CFLAGS) $<
dataplot.obj : dataplot.c elv_base.h version.h dataplo$.h util.h cmpndtbl.h
cl $(DLL_CFLAGS) $<
text.obj : text.c elv_base.h version.h util.h
cl $(DLL_CFLAGS) $<
# ------------
# ELV_DMOD.DLL
# ------------
anlgdmod.obj : anlgdmod.c elv_base.h version.h anlgdmod.h anlgdmo$.h cmpndtbl.h b100mdem.h util.h fileio.h
cl $(DLL_CFLAGS) $<
bpskdmod.obj : bpskdmod.c elv_base.h version.h bpskdmod.h bpskdmo$.h cmpndtbl.h util.h fileio.h
cl $(DLL_CFLAGS) $<
fskdmod.obj : fskdmod.c elv_base.h version.h fskdmod.h fskdmod$.h cmpndtbl.h fileio.h util.h
cl $(DLL_CFLAGS) $<
modem.obj : modem.c elv_base.h util.h version.h b100os2.h b100elv3.h b100mdem.h b100psk.h modem.h modem$.h cmpndtbl.h fileio.h
cl $(DLL_CFLAGS) $<
# ------------
# ELV_FAX.DLL
# ------------
decutil.obj : decutil.c elv_base.h util.h version.h null.h help11.h helpid11.h fax.h decutil.h
cl $(DLL_CFLAGS) $<
fax.obj : fax.c elv_base.h util.h version.h null.h help11.h helpid11.h null.ext lm_dxi.h fax.h decutil.h fileio.h fax$.h
cl $(DLL_CFLAGS) $<
# ------------
# ELV_FILE.DLL
# ------------
fileio.obj : fileio.c easyfont.h elv_base.h util.h fileio.h fileio$.h
cl $(DLL_CFLAGS) $<
# ------------
# ELV_LOR.DLL
# ------------
bitproc.obj : bitproc.c elv_base.h version.h bitproc.h bitproc$.h util.h fileio.h
cl $(DLL_CFLAGS) $<
# ------------
# ELV_MLTI.DLL
# ------------
classify.obj : classify.c elv_base.h util.h version.h chclass.h portia.h fileio.h b100os2.h b100elv3.h classify.h classif$.h
cl $(DLL_CFLAGS) $<
energy.obj : energy.c elv_base.h version.h elv_mlti.h energy.h energy$.h fileio.h util.h
cl $(DLL_CFLAGS) $<
fsk.obj : fsk.c elv_base.h version.h elv_mlti.h fsk.h fsk$.h fileio.h util.h
cl $(DLL_CFLAGS) $<
searche.obj : searche.c elv_base.h version.h elv_mlti.h b100por.h portia.h fileio.h chclass.h searche.h searche$.h util.h
cl $(DLL_CFLAGS) $<
spltband.obj : spltband.c elv_base.h version.h elv_mlti.h spltbndf.h spltband.h spltban$.h fileio.h util.h
cl $(DLL_CFLAGS) $<
topid.obj : topid.c elv_base.h version.h elv_mlti.h topid.h topid$.h fileio.h util.h
cl $(DLL_CFLAGS) $<
vftid.obj : vftid.c elv_base.h version.h elv_mlti.h vftid.h vftid$.h fileio.h util.h
cl $(DLL_CFLAGS) $<
# ------------
# ELV_NAA.DLL
# ------------
casdecod.obj : casdecod.c elv_base.h version.h casdeco$.h util.h
cl $(DLL_CFLAGS) $<
hdlc.obj : hdlc.c elv_base.h version.h hdlc$.h cmpndtbl.h util.h
cl $(DLL_CFLAGS) $<
sif.obj : sif.c elv_base.h version.h sif$.h util.h
cl $(DLL_CFLAGS) $<
naa.obj : naa.c elv_base.h version.h naaglb.h naa$.h util.h
cl $(DLL_CFLAGS) $<
naaclass.obj : naaclass.c elv_base.h version.h naaglb.h util.h
cl $(DLL_CFLAGS) $<
naadecod.obj : naadecod.c elv_base.h version.h naaglb.h util.h
cl $(DLL_CFLAGS) $<
naaevent.obj : naaevent.c elv_base.h naaglb.h naaeven$.h version.h util.h
cl $(DLL_CFLAGS) $<
mar.obj : mar.c elv_base.h version.h mar$.h util.h
cl $(DLL_CFLAGS) $<
# ------------
# ELV_PROC.DLL
# ------------
fft.obj : fft.c elv_base.h version.h fft$.h cmpndtbl.h fileio.h util.h
cl $(DLL_CFLAGS) $<
filter.obj : filter.c elv_base.h version.h filter$.h cmpndtbl.h fileio.h util.h
cl $(DLL_CFLAGS) $<
mathe.obj : mathe.c elv_base.h version.h mathe$.h cmpndtbl.h util.h fileio.h
cl $(DLL_CFLAGS) $<
resample.obj : resample.c elv_base.h version.h util.h resampl$.h cmpndtbl.h fileio.h
cl $(DLL_CFLAGS) $<
# ------------
# ELV_RCGN.DLL
# ------------
baudline.obj : baudline.c elv_base.h version.h elv_mlti.h baudline.h baudlin$.h fileio.h util.h
cl $(DLL_CFLAGS) $<
carrier.obj : carrier.c elv_base.h version.h elv_mlti.h carrier.h carrier$.h fileio.h util.h
cl $(DLL_CFLAGS) $<
recognz.obj : recognz.c elv_base.h version.h fileio.h util.h recognz.h recognz$.h
cl $(DLL_CFLAGS) $<
# ------------
# ELV_UTIL.DLL
# ------------
help11.obj : help11.c elv_base.h version.h util.h help11.h helpid11.h
cl $(DLL_CFLAGS) $<
print.obj : print.c elv_base.h print$.h print.h version.h util.h null.h help11.h helpid11.h
cl $(DLL_CFLAGS) $<
status.obj : status.c elv_base.h status$.h status.h util.h
cl $(EXE_CFLAGS) $<
util.obj : util.c elv_base.h b100os2.h b100elv3.h elv_mlti.h util.h version.h null.h help11.h helpid11.h
cl $(DLL_CFLAGS) $<
-------------------------------------------------------------------------------
<END OF MAKEFILE>
<START OF ELV_CRTL.DEF>
-------------------------------------------------------------------------------
;////////////////////////////////////////////////////////////////////////////
;////////////////////////////////////////////////////////////////////////////
;
; ELV_CRTL.DEF
;
; Definition file for ELV_CRTL.DLL
;
;//////////////////////////////////////////////////////////////////////////////
;//////////////////////////////////////////////////////////////////////////////
LIBRARY ELV_CRTL INITINSTANCE
DESCRIPTION 'Microsoft C 6.0 Run Time Library DLL'
DATA MULTIPLE
SEGMENTS _IOSEG CLASS 'IOSEG_CODE' IOPL
PROTMODE
EXPORTS
ATOF
DIFFTIME
LDIV
STRTOD
_abort
_abs
_access
_alloca
_asctime
_atexit
_atoi
_atol
_bsearch
_calloc
_cgets
_chdir
__chdrive
_chmod
_chsize
_clearerr
_clock
_close
_cprintf
_cputs
_creat
_cscanf
_ctime
_cwait
_div
_dup
_dup2
_ecvt
_eof
_environ
__errno
_execl
_execle
_execlp
_execlpe
_execv
_execve
_execvp
_execvpe
_exit
_fclose
_fcloseall
_fcvt
_fdopen
_feof
_ferror
_fflush
_fgetc
_fgetchar
_fgetpos
_fgets
_filelength
_fileno
_flushall
_fopen
__fsopen
_fprintf
_fputc
_fputchar
_fputs
_fread
_free
_freopen
_fscanf
_fseek
_fsetpos
_fstat
_ftell
_ftime
__fullpath
_fwrite
_gcvt
_getc
_getch
_getchar
_getche
_getcwd
__getdcwd
__getdrive
_getenv
_getpid
_gets
_getw
_gmtime
_halloc
_hfree
_inp
_inpw
_isalnum
_isalpha
_isascii
_isatty
_iscntrl
_iscsym
_iscsymf
_isdigit
_isgraph
_islower
_isprint
_ispunct
_isspace
_isupper
_isxdigit
_itoa
_kbhit
_labs
_lfind
_localeconv
_localtime
_locking
_longjmp
_lsearch
_lseek
_ltoa
_malloc
_memccpy
_memchr
_memcmp
_memcpy
_memicmp
_memmove
_memset
_mkdir
_mktemp
_mktime
_movedata
_onexit
_open
_outp
_outpw
__pclose
_perror
__pipe
__popen
_printf
_putc
_putch
_putchar
_putenv
_puts
_putw
_qsort
_rand
_realloc
_read
_remove
_rename
_rewind
_rmdir
_rmtmp
_scanf
_segread
_setbuf
_setjmp
_setlocale
_setmode
_setvbuf
_signal
_sopen
_spawnl
_spawnle
_spawnlp
_spawnlpe
_spawnv
_spawnve
_spawnvp
_spawnvpe
_sprintf
_srand
_sscanf
_stackavail
_stat
_strcat
_strchr
_strcmp
_strcmpi
_strcoll
_strcpy
_strcspn
_strdup
_strerror
_strftime
_stricmp
_strlen
_strlwr
_strncat
_strncmp
_strncpy
_strnicmp
_strnset
_strpbrk
_strrchr
_strrev
_strset
_strspn
_strstr
_strtok
_strtol
_strtoul
_strupr
_strxfrm
_swab
_system
_tell
_tempnam
_time
_tmpfile
_tmpnam
_toascii
_tolower
__tolower
_toupper
__toupper
_tzset
_ultoa
_umask
_ungetc
_ungetch
_unlink
_utime
_vfprintf
_vprintf
_vsprintf
_wait
_write
_daylight
_timezone
_tzname
__aDBused
__aFchkstk
__aFrchkstk
__aFFaldiv
__aFFalmul
__aFFalrem
__aFFalshl
__aFFalshr
__aFFauldiv
__aFFaulmul
__aFFaulrem
__aFFaulshr
__aFahdiff
__aFldiv
__aFllrot
__aFlmul
__aFlrem
__aFlrrot
__aFlshl
__aFlshr
__aFNaldiv
__aFNalmul
__aFNalrem
__aFNalshl
__aFNalshr
__aFNauldiv
__aFNaulmul
__aFNaulrem
__aFNaulshr
__aFuldiv
__aFulmul
__aFulrem
__aFulshr
__amblksiz
__assert
__beginthread
__cexit
__c_exit
__chkstk
__ctype
__CRT_INIT
__dll_heapadd
__dll_ncalloc
__dll_nexpand
__dll_nfree
__dll_nfreect
__dll_nheapchk
__dll_nheapset
__dll_nheapwalk
__dll_nmalloc
__dll_nmemavl
__dll_nmemmax
__dll_nheapmin
__dll_nrealloc
__endthread
__exit
__bheapadd
__bcalloc
__bexpand
__bfree
__bfreeseg
__bheapchk
__bheapseg
__bheapset
__bheapwalk
__bmalloc
__bheapmin
__brealloc
__bmsize
__expand
__fcalloc
__fexpand
__ffree
__fheapchk
__fheapset
__fheapwalk
__fmalloc
__fheapmin
__fileinfo
__fmemccpy
__fmemchr
__fmemcmp
__fmemcpy
__fmemicmp
__fmemmove
__fmemset
__fmode
__fmsize
__frealloc
__fstrcat
__fstrchr
__fstrcmp
__fstricmp
__fstrcpy
__fstrcspn
__fstrdup
__fstrlen
__fstrlwr
__fstrncat
__fstrncmp
__fstrnicmp
__fstrncpy
__fstrnset
__fstrpbrk
__fstrrchr
__fstrrev
__fstrset
__fstrspn
__fstrstr
__fstrtok
__fstrupr
__heapchk
__heapset
__iob
__heapwalk
__lrotl
__lrotr
__makepath
__heapmin
__msize
__nmsize
__QCfptr_error
__QCnptr_error
__rotl
__rotr
__searchenv
__splitpath
__strdate
__strerror
__strtime
___doserrno
ACOS
ASIN
ATAN
ATAN2
CABS
CEIL
COS
COSH
EXP
FABS
FLOOR
FMOD
FREXP
HYPOT
J0
J1
JN
LDEXP
LOG
LOG10
MODF
POW
SIN
SINH
SQRT
TAN
TANH
Y0
Y1
YN
_dieeetomsbin
_dmsbintoieee
_fieeetomsbin
_fmsbintoieee
_HUGE
_matherr
__aFCIacos
__aFCIasin
__aFCIatan
__aFCIatan2
__aFCIceil
__aFCIcos
__aFCIcosh
__aFCIexp
__aFCIfabs
__aFCIfloor
__aFCIfmod
__aFCIlog
__aFCIlog10
__aFCImax
__aFCImin
__aFCIpow
__aFCIsin
__aFCIsinh
__aFCIsqrt
__aFCItan
__aFCItanh
__clear87
__control87
__fltused
__fpreset
__status87
__aFdcvt
__aFeaddd
__aFeadds
__aFedivd
__aFedivdr
__aFedivs
__aFedivsr
__aFeldd
__aFeldl
__aFeldq
__aFelds
__aFeldt
__aFeldw
__aFemuld
__aFemuls
__aFestd
__aFestdp
__aFests
__aFestsp
__aFesttp
__aFesubd
__aFesubdr
__aFesubs
__aFesubsr
__aFfabs
__aFfadd
__aFfaddd
__aFfadds
__aFfchs
__aFfcmp
__aFfcompp
__aFfdiv
__aFfdivd
__aFfdivdr
__aFfdivr
__aFfdivs
__aFfdivsr
__aFfdup
__aFfld1
__aFfldd
__aFfldl
__aFfldq
__aFflds
__aFfldt
__aFfldw
__aFfldz
__aFfmul
__aFfmuld
__aFfmuls
__aFfstd
__aFfstdp
__aFfsts
__aFfstsp
__aFfsttp
__aFfsub
__aFfsubd
__aFfsubdr
__aFfsubr
__aFfsubs
__aFfsubsr
__aFftol
__aFftst
__aFfxch
__aFsaddd
__aFsadds
__aFsdivd
__aFsdivdr
__aFsdivs
__aFsdivsr
__aFsldd
__aFsldl
__aFsldq
__aFslds
__aFsldt
__aFsldw
__aFsmuld
__aFsmuls
__aFsstd
__aFsstdp
__aFssts
__aFsstsp
__aFssttp
__aFssubd
__aFssubdr
__aFssubs
__aFssubsr
_acosl
_asinl
_atanl
_atan2l
_cabsl
_ceill
_cosl
_coshl
_expl
_fabsl
_floorl
_fmodl
_hypotl
_ldexpl
_logl
_log10l
_modfl
_powl
_sinl
_sinhl
_sqrtl
_tanl
_tanhl
__atold
__fac
__j0l
__j1l
__jnl
__LHUGE
__matherrl
__strtold
__y0l
__y1l
__ynl
__aFCIacosl
__aFCIasinl
__aFCIatanl
__aFCIatan2l
__aFCIceill
__aFCIcosl
__aFCIcoshl
__aFCIexpl
__aFCIfloorl
__aFCIfmodl
__aFCIlogl
__aFCIlog10l
__aFCIpowl
__aFCIsinl
__aFCIsinhl
__aFCIsqrtl
__aFCItanl
__aFCItanhl
-------------------------------------------------------------------------------
<END OF ELV_CRTL.DEF>
<START OF ELV_DISP.DEF>
-------------------------------------------------------------------------------
;////////////////////////////////////////////////////////////////////////////
;////////////////////////////////////////////////////////////////////////////
;
; ELV_DISP.DEF
;
; DEFINITION FILE FOR ELV_DISP.DLL
;
;//////////////////////////////////////////////////////////////////////////////
;//////////////////////////////////////////////////////////////////////////////
LIBRARY ELV_DISP INITINSTANCE
DESCRIPTION 'ELVIRA DISPLAY DLL'
PROTMODE
DATA MULTIPLE
HEAPSIZE 8192
EXPORTS MODULEINIT03
MODULE03
MODULEMODIFY03
BITPLOTPROC
MODULEINIT01
MODULE01
MODULEMODIFY01
MANUALSCALEDLGPROC
MODULEINIT25
MODULE25
MODULEMODIFY25
-------------------------------------------------------------------------------
<END OF ELV_DISP.DEF>
<START OF ELV_DISP.RC>
-------------------------------------------------------------------------------
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//
// ELV_DISP.RC
//
///////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
#include <os2.h>
#include "version.h" // Version specific stuff
/***********************************************************************/
/* Data Plot Files */
#ifdef INC_DATAPLOT
#include "dataplo$.h"
rcinclude dataplo$.dlg
#endif
-------------------------------------------------------------------------------
<END OF ELV_DISP.RC>