From 96a24f72c2667b05d7740669c5f76e3ca9033bcf Mon Sep 17 00:00:00 2001 From: deuce <> Date: Thu, 12 Aug 2004 23:41:18 +0000 Subject: [PATCH] Initial Win32 stuff... compile and damn near runs on Win32 now. Current issues: - Starting it with an existing syncterm.lst causes a GPF - Runs dog slow --- src/syncterm/Makefile | 74 +++++++++++++++++++++++++++++++++++++++++ src/syncterm/objects.mk | 27 +++++++-------- src/syncterm/rlogin.c | 5 ++- src/syncterm/syncterm.c | 1 + src/syncterm/targets.mk | 2 +- src/syncterm/uifcinit.c | 2 +- 6 files changed, 95 insertions(+), 16 deletions(-) create mode 100644 src/syncterm/Makefile diff --git a/src/syncterm/Makefile b/src/syncterm/Makefile new file mode 100644 index 0000000000..69dd49ac82 --- /dev/null +++ b/src/syncterm/Makefile @@ -0,0 +1,74 @@ +# Makefile + +######################################################################### +# Makefile for Synchronet BBS Configuration Utility (SCFG) # +# For use with Borland C++ Builder 5+ or Borland C++ 5.5 for Win32 # +# @format.tab-size 4 # +######################################################################### + +# $Id$ + +# Macros +#DEBUG = 1 # Comment out for release (non-debug) version +#USE_FLTK= 1 +USE_UIFC32= 1 +CC = bcc32 +LD = ilink32 +SLASH = \\ +OFILE = obj +EXEFILE = .exe +EXEODIR = bcc.win32 # Executable output directory +XPDEV = ..\xpdev +UIFC = ..\uifc +CIOLIB = ..\conio +CFLAGS = -DSCFG -M -I..;$(UIFC);$(XPDEV);$(CIOLIB) +DELETE = -@echo y | del + +.path.c = .;$(UIFC);$(XPDEV);$(CIOLIB) +.path.cpp = $(UIFC) + +# Enable auto-dependency checking +.autodepend +.cacheautodepend + +# Optional compile flags (disable banner, warnings and such) +CFLAGS = $(CFLAGS) -q -d -H -X- -w-csu -w-pch -w-ccc -w-rch -w-par -w-pro -w-8004 +#-w-aus + +# Debug or release build? +!ifdef DEBUG +CFLAGS = $(CFLAGS) -v -Od -D_DEBUG +LFLAGS = $(LFLAGS) -v +EXEODIR = $(EXEODIR).debug +!else +EXEODIR = $(EXEODIR).release +!endif +LIBODIR = $(EXEODIR) + +# Cross platform/compiler definitions +!include targets.mk # defines all targets +!include objects.mk # defines $(OBJS) + +OBJS = $(OBJS) $(EXEODIR)\uifc32.$(OFILE) \ + $(EXEODIR)\ciolib.$(OFILE) $(EXEODIR)\ansi_cio.$(OFILE) $(EXEODIR)\win32cio.$(OFILE) +CFLAGS = $(CFLAGS) -DUSE_UIFC32 -WM + +# Implicit C Compile Rule for SCFG +.c.$(OFILE): + @$(CC) $(CFLAGS) -n$(EXEODIR) -c $< + +.cpp.$(OFILE): + @$(CC) $(CFLAGS) -n$(EXEODIR) -c $< + +# Create output directory if it doesn't exist +$(EXEODIR): + @if not exist $(EXEODIR) mkdir $(EXEODIR) + +# Monolithic executable Build Rule +$(EXEODIR)/syncterm.exe: $(OBJS) + @echo Linking $@ + $(CC) $(CFLAGS) -e$@ $** + +clean: + @echo Deleting $(EXEODIR) + $(QUIET)$(DELETE) $(EXEODIR)\* diff --git a/src/syncterm/objects.mk b/src/syncterm/objects.mk index 7f2c7f7cbf..3d48daa02b 100644 --- a/src/syncterm/objects.mk +++ b/src/syncterm/objects.mk @@ -1,13 +1,14 @@ -OBJS := ${LIBODIR}/syncterm.${OFILE} \ - ${LIBODIR}/bbslist.${OFILE} \ - ${LIBODIR}/uifcinit.${OFILE} \ - ${LIBODIR}/rlogin.${OFILE} \ - ${LIBODIR}/sockwrap.${OFILE} \ - ${LIBODIR}/dirwrap.${OFILE} \ - ${LIBODIR}/filewrap.${OFILE} \ - ${LIBODIR}/term.${OFILE} \ - ${LIBODIR}/genwrap.${OFILE} \ - ${LIBODIR}/ini_file.${OFILE} \ - ${LIBODIR}/str_list.${OFILE} \ - ${LIBODIR}/window.${OFILE} \ - ${LIBODIR}/menu.${OFILE} +OBJS = $(LIBODIR)/syncterm.$(OFILE) \ + $(LIBODIR)/bbslist.$(OFILE) \ + $(LIBODIR)/uifcinit.$(OFILE) \ + $(LIBODIR)/rlogin.$(OFILE) \ + $(LIBODIR)/sockwrap.$(OFILE) \ + $(LIBODIR)/dirwrap.$(OFILE) \ + $(LIBODIR)/filewrap.$(OFILE) \ + $(LIBODIR)/cterm.$(OFILE) \ + $(LIBODIR)/term.$(OFILE) \ + $(LIBODIR)/genwrap.$(OFILE) \ + $(LIBODIR)/ini_file.$(OFILE) \ + $(LIBODIR)/str_list.$(OFILE) \ + $(LIBODIR)/window.$(OFILE) \ + $(LIBODIR)/menu.$(OFILE) diff --git a/src/syncterm/rlogin.c b/src/syncterm/rlogin.c index e914c8d872..0ae44b150c 100644 --- a/src/syncterm/rlogin.c +++ b/src/syncterm/rlogin.c @@ -51,6 +51,7 @@ int rlogin_connect(char *addr, int port, char *ruser, char *passwd, int bedumb) char nil=0; char *p; unsigned int neta; + unsigned long l; for(p=addr;*p;p++) if(*p!='.' && !isdigit(*p)) @@ -92,7 +93,9 @@ int rlogin_connect(char *addr, int port, char *ruser, char *passwd, int bedumb) return(-1); } - fcntl(rlogin_socket, F_SETFL, fcntl(rlogin_socket, F_GETFL)|O_NONBLOCK); + l=1; + ioctlsocket(rlogin_socket, FIONBIO,&l); + /* fcntl(rlogin_socket, F_SETFL, fcntl(rlogin_socket, F_GETFL)|O_NONBLOCK); */ if(!bedumb) { rlogin_send("",1,1000); diff --git a/src/syncterm/syncterm.c b/src/syncterm/syncterm.c index 51866551a8..ecde88d944 100644 --- a/src/syncterm/syncterm.c +++ b/src/syncterm/syncterm.c @@ -71,4 +71,5 @@ int main(int argc, char **argv) if(WSAInitialized && WSACleanup()!=0) fprintf(stderr,"!WSACleanup ERROR %d",ERROR_VALUE); #endif + return(0); } diff --git a/src/syncterm/targets.mk b/src/syncterm/targets.mk index daba4416a6..5f07f586dd 100644 --- a/src/syncterm/targets.mk +++ b/src/syncterm/targets.mk @@ -1 +1 @@ -all: $(LIBODIR) $(BUILD_DEPENDS) ${EXEODIR}/syncterm +all: $(LIBODIR) $(BUILD_DEPENDS) $(EXEODIR)/syncterm$(EXEFILE) diff --git a/src/syncterm/uifcinit.c b/src/syncterm/uifcinit.c index e81ec0f661..ed3def1f3b 100644 --- a/src/syncterm/uifcinit.c +++ b/src/syncterm/uifcinit.c @@ -15,7 +15,7 @@ int init_uifc(void) { return(0); uifc.size=sizeof(uifc); uifc.mode=UIFC_IBM|UIFC_COLOR; - if(i=uifcini32(&uifc)) { + if((i=uifcini32(&uifc))!=0) { fprintf(stderr,"uifc library init returned error %d\n",i); return(-1); } -- GitLab