# makefile - MSComm VBX control for MSVC 1.52 # # Build: nmake # Clean: nmake clean # # Prerequisites: # - MSVC 1.52 (cl, link, rc in PATH) # - VBAPI.LIB (from VBX CDK, or generate with: implib vbapi.lib vbapi.def) # # High-speed serial note: # The stock Windows 3.1 COMM.DRV enables the 16550 FIFO for receive only, # with a trigger level of 14 (leaving only 2 bytes of headroom). This causes # overruns at baud rates above 9600 under load. For reliable operation at # 57600 or 115200, install CyberCom V1.1.0.0P -- a freeware drop-in # replacement included in ..\drivers\CYBERCOM.DRV. It enables both RX and TX # FIFOs with a trigger level of 8, dramatically reducing interrupt overhead. # # Install: # 1. Copy ..\drivers\CYBERCOM.DRV to \WINDOWS\SYSTEM # 2. Edit SYSTEM.INI [boot] section: comm.drv=cybercom.drv # 3. Add to [386Enh] section: COM1FIFO=1 (for each port in use) # 4. Restart Windows # # CyberCom is free for non-commercial use. (C) CyberSoft Corp 1993 CC = cl LINK = link RC = rc # Compiler flags: # -c Compile only # -W3 Warning level 3 # -ASw Small model, SS!=DS (Windows DLL) # -Gsw No stack probes, Windows prolog/epilog # -Ow Safe optimizations for Windows # -Zp2 Pack structures on 2-byte boundaries # -Ze Enable Microsoft extensions CFLAGS = -c -W3 -ASw -Gsw -Ow -Zp2 -Ze # Linker flags: # /NOD No default libraries # /NOE No extended dictionary search # /AL:16 Segment alignment 16 LFLAGS = /NOD /NOE /AL:16 # Libraries # sdllcew Small model DLL C runtime (emulated math, Windows) # libw Windows API import library # commdlg Common dialog import library # vbapi VB API import library LIBS = sdllcew libw commdlg vbapi # Output TARGET = mscomm.vbx # Objects OBJS = mscomm.obj serial.obj # ----------------------------------------------------------------------- # Build rules # ----------------------------------------------------------------------- all: $(TARGET) $(TARGET): $(OBJS) mscomm.def mscomm.res vbapi.lib $(LINK) $(LFLAGS) $(OBJS), $(TARGET),,$(LIBS), mscomm.def $(RC) mscomm.res $(TARGET) mscomm.obj: mscomm.c mscomm.h vbapi.h serial.h $(CC) $(CFLAGS) mscomm.c serial.obj: serial.c serial.h $(CC) $(CFLAGS) serial.c mscomm.res: mscomm.rc mscomm.h mscomm.bmp $(RC) -r mscomm.rc # ----------------------------------------------------------------------- # Generate VBAPI.LIB from vbapi.def if not present # ----------------------------------------------------------------------- vbapi.lib: vbapi.def implib vbapi.lib vbapi.def # ----------------------------------------------------------------------- # Clean # ----------------------------------------------------------------------- clean: -del *.obj -del *.res -del *.vbx -del *.map