Commit c70c9432 authored by deuce's avatar deuce
Browse files

New build system! (*nix only, bcc builds are mostly likely horribly broken now)

parent 1ae5515c
......@@ -13,28 +13,14 @@
# $Id$
#USE_DIALOG = 1 # Dialog vesrion of UIFC
#USE_FLTK = 1 # Use Windowed version
#USE_CURSES = 1 # Use *nix curses version
ifndef NO_CURSES
USE_UIFC32 = 1 # Curses version of UIFC
endif
UIFC_SRC = ../uifc/
XPDEV = ../xpdev/
SMBLIB_SRC = ../smblib/
NEED_SMBLIB := 1
SBBS_SRC = ./
NEED_JAVASCRIPT := 1
NEED_THREADS := 1
SRC_ROOT = ..
include $(SRC_ROOT)/build/Common.gmake
include $(XPDEV)/Common.gmake
include $(SBBS_SRC)/Common.gmake
include $(UIFC_SRC)/Common.gmake
include $(SMBLIB_SRC)/Common.gmake
vpath %.c $(SMBLIB_SRC)
vpath %.cpp $(SMBLIB_SRC)
UTIL_LDFLAGS += $(SMBLIB_LDFLAGS)
UTIL_LDFLAGS += $(SMBLIB_LDFLAGS) $(UIFC-MT_LDFLAGS) $(CIOLIB-MT_LDFLAGS) $(XPDEV_LDFLAGS)
UTIL_LIBS += $(SMBLIB_LIBS)
ifeq ($(os),freebsd)
BSD = 1
......@@ -44,8 +30,6 @@ else
endif
endif
CFLAGS += $(UIFC_CFLAGS)
ifndef bcc
LDFLAGS += -lm
ifneq ($(os),sunos)
......@@ -79,29 +63,41 @@ ifdef DONT_BLAME_SYNCHRONET
CFLAGS += -DDONT_BLAME_SYNCHRONET
endif
#SBBSLIB = $(LIBODIR)$(SLASH)libsbbs.so
SBBSLIB = -lsbbs
# JS and NSPR setup stuff...
CFLAGS += -DJAVASCRIPT
ifdef JSINCLUDE
CFLAGS += -I$(JSINCLUDE)
else
CFLAGS += -I$(SRC_ROOT)$(DIRSEP)..$(DIRSEP)include$(DIRSEP)mozilla$(DIRSEP)js
endif
ifndef JSLIBDIR
JSLIBDIR := $(SRC_ROOT)$(DIRSEP)..$(DIRSEP)lib$(DIRSEP)mozilla$(DIRSEP)js$(DIRSEP)$(machine).$(BUILD)
endif
ifndef JSLIB
JSLIB := js
endif
ifndef NSPRDIR
NSPRDIR := $(SRC_ROOT)$(DIRSEP)..$(DIRSEP)lib$(DIRSEP)mozilla$(DIRSEP)nspr$(DIRSEP)$(machine).$(BUILD)
endif
JS_LDFLAGS += -L$(JSLIBDIR) -l$(JSLIB)
#The following is needed for nspr support on Linux
ifeq ($(os),linux)
JS_LDFLAGS += -ldl
endif
JS_LDFLAGS += -L$(NSPRDIR) -lnspr4
CFLAGS += $(JS_CFLAGS)
LDFLAGS += $(JS_LDFLAGS)
#dummy rule
$(SBBSLIB) : $(SBBS)
$(QUIET)touch -- '$(SBBSLIB)'
include sbbsdefs.mk
CFLAGS += $(SBBSDEFS)
# Set up LD_RUN_PATH for run-time locating of the .so files
PWD := $(shell pwd)
LD_RUN_PATH := .:$(PWD)/$(LIBODIR):$(PWD)/$(JSLIBDIR):$(PWD)/$(NSPRDIR)
export LD_RUN_PATH
CON_OBJS = $(LIBODIR)/sbbscon.o $(LIBODIR)/conwrap.o \
$(LIBODIR)/sbbs_ini.o
CON_LDFLAGS = -lftpsrvr -lwebsrvr -lmailsrvr -lservices
FTP_OBJS = $(LIBODIR)/ftpsrvr.o
MAIL_OBJS = $(LIBODIR)/mailsrvr.o $(LIBODIR)/mxlookup.o \
$(LIBODIR)/mime.o $(LIBODIR)/base64.o $(LIBODIR)/ini_file.o \
$(LIBODIR)/str_list.o
WEB_OBJS = $(LIBODIR)/websrvr.o $(LIBODIR)/sockwrap.o $(LIBODIR)/base64.o
SERVICE_OBJS = $(LIBODIR)/services.o $(LIBODIR)/ini_file.o $(LIBODIR)/str_list.o
MONO_OBJS = $(CON_OBJS) $(FTP_OBJS) $(WEB_OBJS) \
$(MAIL_OBJS) $(SERVICE_OBJS)
CON_LIBS = -lsbbs -lftpsrvr -lwebsrvr -lmailsrvr -lservices
SHLIBOPTS := -shared
ifeq ($(os),darwin)
MKSHLIB := libtool -dynamic -framework System -lcc_dynamic
......@@ -118,289 +114,105 @@ else
endif
endif
# Monolithic Synchronet executable Build Rule
FORCE$(SBBSMONO): $(MONO_OBJS) $(OBJS) $(LIBS)
CFLAGS += $(UIFC-MT_CFLAGS) $(XPDEV-MT_CFLAGS) $(SMBLIB_CFLAGS) $(CIOLIB-MT_CFLAGS)
LDFLAGS += $(UIFC-MT_LDFLAGS) $(XPDEV-MT_LDFLAGS) $(SMBLIB_LDFLAGS) $(CIOLIB-MT_LDFLAGS)
$(SBBSMONO): $(MONO_OBJS) $(OBJS) $(LIBS)
# Monolithic Synchronet executable Build Rule
$(SBBSMONO): $(MONO_OBJS) $(OBJS)
@echo Linking $@
$(QUIET)$(CXX) -o $@ $(LDFLAGS) $^ $(ADD_LIBS)
$(QUIET)$(CXX) -o $@ $(LDFLAGS) $(MT_LDFLAGS) $^ $(SMBLIB_LIBS) $(XPDEV-MT_LIBS)
# Synchronet BBS library Link Rule
FORCE$(SBBS): $(OBJS) $(LIBS)
$(SBBS): $(OBJS) $(LIBS)
@echo Linking $@
$(QUIET)$(MKSHPPLIB) $(LDFLAGS) -o $@ $^ $(SHLIBOPTS) $(ADD_LIBS)
$(QUIET)$(MKSHPPLIB) $(LDFLAGS) -o $@ $^ $(SHLIBOPTS)
# FTP Server Link Rule
FORCE$(FTPSRVR): $(LIBODIR)/ftpsrvr.o $(SBBSLIB)
$(FTPSRVR): $(LIBODIR)/ftpsrvr.o $(SBBSLIB)
$(FTPSRVR): $(MTOBJODIR)/ftpsrvr.o
@echo Linking $@
$(QUIET)$(MKSHLIB) $(LDFLAGS) $^ $(SHLIBOPTS) -o $@ $(ADD_LIBS)
$(QUIET)$(MKSHLIB) $(LDFLAGS) $^ $(SHLIBOPTS) -o $@
# Mail Server Link Rule
FORCE$(MAILSRVR): $(MAIL_OBJS) $(LIBODIR)$(SLASH)$(SBBSLIB)
$(MAILSRVR): $(MAIL_OBJS) $(SBBSLIB)
$(MAILSRVR): $(MAIL_OBJS)
@echo Linking $@
$(QUIET)$(MKSHLIB) $(LDFLAGS) $^ $(SHLIBOPTS) -o $@ $(ADD_LIBS)
$(QUIET)$(MKSHLIB) $(LDFLAGS) $^ $(SHLIBOPTS) -o $@
# Mail Server Link Rule
FORCE$(WEBSRVR): $(WEB_OBJS) $(SBBSLIB)
$(WEBSRVR): $(WEB_OBJS) $(SBBSLIB)
$(WEBSRVR): $(WEB_OBJS)
@echo Linking $@
$(QUIET)$(MKSHLIB) $(LDFLAGS) $^ $(SHLIBOPTS) -o $@ $(ADD_LIBS)
$(QUIET)$(MKSHLIB) $(LDFLAGS) $^ $(SHLIBOPTS) -o $@
# Services Link Rule
FORCE$(SERVICES): $(WEB_OBJS) $(SBBSLIB)
$(SERVICES): $(SERVICE_OBJS) $(SBBSLIB)
$(SERVICES): $(SERVICE_OBJS)
@echo Linking $@
$(QUIET)$(MKSHLIB) $(LDFLAGS) $^ $(SHLIBOPTS) -o $@ $(ADD_LIBS)
$(QUIET)$(MKSHLIB) $(LDFLAGS) $^ $(SHLIBOPTS) -o $@
# Synchronet Console Build Rule
FORCE$(SBBSCON): $(CON_OBJS) $(SBBSLIB) $(FTP_OBJS) $(MAIL_OBJS) $(WEB_OBJS) $(SERVICE_OBJS)
$(SBBSCON): $(CON_OBJS) $(SBBSLIB) $(FTPSRVR) $(WEBSRVR) $(MAILSRVR) $(SERVICES)
$(SBBSCON): $(CON_OBJS) $(SBBS) $(FTPSRVR) $(WEBSRVR) $(MAILSRVR) $(SERVICES)
@echo Linking $@
$(QUIET)$(CC) $(CFLAGS) $(LDFLAGS) $(CON_LDFLAGS) -o $@ $(CON_OBJS) $(SBBSLIB) $(ADD_LIBS)
# Specifc Compile Rules
$(LIBODIR)/ftpsrvr.o: ftpsrvr.c ftpsrvr.h $(BUILD_DEPENDS)
@echo $(COMPILE_MSG) $<
$(QUIET)$(CC) $(CFLAGS) -DFTPSRVR_EXPORTS -o $@ -c $<
$(LIBODIR)/mailsrvr.o: mailsrvr.c mailsrvr.h $(BUILD_DEPENDS)
@echo $(COMPILE_MSG) $<
$(QUIET)$(CC) $(CFLAGS) -DMAILSRVR_EXPORTS -o $@ -c $<
$(LIBODIR)/mxlookup.o: mxlookup.c $(BUILD_DEPENDS)
@echo $(COMPILE_MSG) $<
$(QUIET)$(CC) $(CFLAGS) -DMAILSRVR_EXPORTS -o $@ -c $<
$(LIBODIR)/mime.o: mime.c $(BUILD_DEPENDS)
@echo $(COMPILE_MSG) $<
$(QUIET)$(CC) $(CFLAGS) -DMAILSRVR_EXPORTS -o $@ -c $<
$(LIBODIR)/websrvr.o: websrvr.c websrvr.h $(BUILD_DEPENDS)
@echo $(COMPILE_MSG) $<
$(QUIET)$(CC) $(CFLAGS) -DWEBSRVR_EXPORTS -o $@ -c $<
$(LIBODIR)/base64.o: base64.c base64.h $(BUILD_DEPENDS)
@echo $(COMPILE_MSG) $<
$(QUIET)$(CC) $(CFLAGS) -DWEBSRVR_EXPORTS -o $@ -c $<
$(LIBODIR)/services.o: services.c services.h $(BUILD_DEPENDS)
@echo $(COMPILE_MSG) $<
$(QUIET)$(CC) $(CFLAGS) -DSERVICES_EXPORTS -o $@ -c $<
$(QUIET)$(CC) $(LDFLAGS) $(MT_LDFLAGS) -o $@ $(CON_OBJS) $(CON_LIBS) $(SMBLIB_LIBS) $(XPDEV-MT_LIBS)
# Baja Utility
BAJA_OBJS = \
$(LIBODIR)/baja.o \
$(LIBODIR)/ars.o \
$(LIBODIR)/crc32.o \
$(LIBODIR)/genwrap.o \
$(LIBODIR)/dirwrap.o \
$(LIBODIR)/filewrap.o
FORCE$(BAJA): $(BAJA_OBJS)
$(BAJA): $(BAJA_OBJS)
@echo Linking $@
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(ADD_LIBS)
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(SMBLIB_LIBS) $(XPDEV_LIBS)
# Node Utility
NODE_OBJS = \
$(LIBODIR)/node.o \
$(LIBODIR)/genwrap.o \
$(LIBODIR)/filewrap.o
FORCE$(NODE): $(NODE_OBJS)
$(NODE): $(NODE_OBJS)
@echo Linking $@
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(ADD_LIBS)
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(XPDEV_LIBS)
# FIXSMB Utility
FIXSMB_OBJS = \
$(LIBODIR)/filewrap.o \
$(LIBODIR)/fixsmb.o \
$(LIBODIR)/genwrap.o \
$(LIBODIR)/dirwrap.o \
$(LIBODIR)/str_list.o \
$(LIBODIR)/str_util.o
FORCE$(FIXSMB): $(FIXSMB_OBJS)
$(FIXSMB): $(FIXSMB_OBJS)
@echo Linking $@
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(ADD_LIBS)
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(SMBLIB_LIBS) $(XPDEV_LIBS)
# CHKSMB Utility
CHKSMB_OBJS = \
$(LIBODIR)/chksmb.o \
$(LIBODIR)/smbdump.o \
$(LIBODIR)/conwrap.o \
$(LIBODIR)/dirwrap.o \
$(LIBODIR)/filewrap.o \
$(LIBODIR)/genwrap.o
FORCE$(CHKSMB): $(CHKSMB_OBJS)
$(CHKSMB): $(CHKSMB_OBJS)
@echo Linking $@
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(ADD_LIBS)
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(SMBLIB_LIBS) $(XPDEV_LIBS)
# SMB Utility
SMBUTIL_OBJS = \
$(LIBODIR)/smbutil.o \
$(LIBODIR)/conwrap.o \
$(LIBODIR)/dirwrap.o \
$(LIBODIR)/filewrap.o \
$(LIBODIR)/genwrap.o \
$(LIBODIR)/str_util.o
FORCE$(SMBUTIL): $(SMBUTIL_OBJS)
$(SMBUTIL): $(SMBUTIL_OBJS)
@echo Linking $@
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(ADD_LIBS)
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(SMBLIB_LIBS) $(XPDEV_LIBS)
# SBBSecho (FidoNet Packet Tosser)
SBBSECHO_OBJS = \
$(LIBODIR)/sbbsecho.o \
$(LIBODIR)/ars.o \
$(LIBODIR)/date_str.o \
$(LIBODIR)/load_cfg.o \
$(LIBODIR)/scfglib1.o \
$(LIBODIR)/scfglib2.o \
$(LIBODIR)/nopen.o \
$(LIBODIR)/str_util.o \
$(LIBODIR)/dat_rec.o \
$(LIBODIR)/userdat.o \
$(LIBODIR)/rechocfg.o \
$(LIBODIR)/conwrap.o \
$(LIBODIR)/filewrap.o \
$(LIBODIR)/dirwrap.o \
$(LIBODIR)/genwrap.o \
$(LIBODIR)/msg_id.o \
$(SMB_OBJS)
FORCE$(SBBSECHO): $(SBBSECHO_OBJS)
$(SBBSECHO): $(SBBSECHO_OBJS)
@echo Linking $@
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(ADD_LIBS)
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(SMBLIB_LIBS) $(XPDEV_LIBS)
# SBBSecho Configuration Program
ECHOCFG_OBJS = \
$(LIBODIR)/echocfg.o \
$(LIBODIR)/rechocfg.o \
$(UIFC_OBJS) \
$(LIBODIR)/uifcx.o \
$(LIBODIR)/nopen.o \
$(LIBODIR)/crc16.o \
$(LIBODIR)/str_util.o \
$(LIBODIR)/filewrap.o \
$(LIBODIR)/genwrap.o \
$(LIBODIR)/dirwrap.o
FORCE$(ECHOCFG): $(ECHOCFG_OBJS)
$(ECHOCFG): $(ECHOCFG_OBJS)
@echo Linking $@
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(UIFC_LDFLAGS) $(ADD_LIBS)
$(QUIET)$(CC) $(UTIL_LDFLAGS) $(MT_LDFLAGS) -o $@ $^ $(UIFC-MT_LDFLAGS) $(SMBLIB_LIBS) $(UIFC-MT_LIBS) $(CIOLIB-MT_LIBS) $(XPDEV-MT_LIBS)
# ADDFILES
ADDFILES_OBJS = \
$(LIBODIR)/addfiles.o \
$(LIBODIR)/ars.o \
$(LIBODIR)/date_str.o \
$(LIBODIR)/load_cfg.o \
$(LIBODIR)/scfglib1.o \
$(LIBODIR)/scfglib2.o \
$(LIBODIR)/nopen.o \
$(LIBODIR)/str_util.o \
$(LIBODIR)/dat_rec.o \
$(LIBODIR)/userdat.o \
$(LIBODIR)/filedat.o \
$(LIBODIR)/filewrap.o \
$(LIBODIR)/dirwrap.o \
$(LIBODIR)/genwrap.o \
FORCE$(ADDFILES): $(ADDFILES_OBJS)
$(ADDFILES): $(ADDFILES_OBJS)
@echo Linking $@
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(ADD_LIBS)
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(XPDEV_LIBS)
# FILELIST
FILELIST_OBJS = \
$(LIBODIR)/filelist.o \
$(LIBODIR)/ars.o \
$(LIBODIR)/date_str.o \
$(LIBODIR)/load_cfg.o \
$(LIBODIR)/scfglib1.o \
$(LIBODIR)/scfglib2.o \
$(LIBODIR)/nopen.o \
$(LIBODIR)/str_util.o \
$(LIBODIR)/dat_rec.o \
$(LIBODIR)/filedat.o \
$(LIBODIR)/filewrap.o \
$(LIBODIR)/dirwrap.o \
$(LIBODIR)/genwrap.o \
FORCE$(FILELIST): $(FILELIST_OBJS)
$(FILELIST): $(FILELIST_OBJS)
@echo Linking $@
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(ADD_LIBS)
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(XPDEV_LIBS)
# MAKEUSER
MAKEUSER_OBJS = \
$(LIBODIR)/makeuser.o \
$(LIBODIR)/ars.o \
$(LIBODIR)/date_str.o \
$(LIBODIR)/load_cfg.o \
$(LIBODIR)/scfglib1.o \
$(LIBODIR)/scfglib2.o \
$(LIBODIR)/nopen.o \
$(LIBODIR)/str_util.o \
$(LIBODIR)/dat_rec.o \
$(LIBODIR)/userdat.o \
$(LIBODIR)/filewrap.o \
$(LIBODIR)/dirwrap.o \
$(LIBODIR)/genwrap.o \
FORCE$(MAKEUSER): $(MAKEUSER_OBJS)
$(MAKEUSER): $(MAKEUSER_OBJS)
@echo Linking $@
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(ADD_LIBS)
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(XPDEV_LIBS)
# JSEXEC
JSEXEC_OBJS = \
$(LIBODIR)/jsexec.o \
$(SBBSLIB)
FORCE$(JSEXEC): $(JSEXEC_OBJS)
$(JSEXEC): $(JSEXEC_OBJS)
$(JSEXEC): $(JSEXEC_OBJS) $(SBBS)
@echo Linking $@
$(QUIET)$(CXX) $(UTIL_LDFLAGS) -o $@ $^ $(LDFLAGS) $(ADD_LIBS)
# ANS2ASC
FORCE$(ANS2ASC): $(LIBODIR)/ans2asc.o
$(QUIET)$(CXX) $(LDFLAGS) $(MT_LDFLAGS) -o $@ $(JSEXEC_OBJS) -lsbbs $(SMBLIB_LIBS) $(XPDEV-MT_LIBS)
$(ANS2ASC): $(LIBODIR)/ans2asc.o
# ANS2ASC
$(ANS2ASC): $(OBJODIR)/ans2asc.o
@echo Linking $@
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(ADD_LIBS)
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^
# ASC2ANS
FORCE$(ASC2ANS): $(LIBODIR)/asc2ans.o
$(ASC2ANS): $(LIBODIR)/asc2ans.o
$(ASC2ANS): $(OBJODIR)/asc2ans.o
@echo Linking $@
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^ $(ADD_LIBS)
FORCE:
SMBLIB: $(SMBLIB_TARGET)
$(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $^
......@@ -2,113 +2,202 @@
# Make 'include file' listing object files for SBBS.DLL
# $Id$
# LIBODIR, SLASH, and OFILE must be pre-defined
OBJS = $(LIBODIR)$(SLASH)ansiterm.$(OFILE)\
$(LIBODIR)$(SLASH)answer.$(OFILE)\
$(LIBODIR)$(SLASH)ars.$(OFILE)\
$(LIBODIR)$(SLASH)atcodes.$(OFILE)\
$(LIBODIR)$(SLASH)bat_xfer.$(OFILE)\
$(LIBODIR)$(SLASH)base64.$(OFILE)\
$(LIBODIR)$(SLASH)bulkmail.$(OFILE)\
$(LIBODIR)$(SLASH)chat.$(OFILE)\
$(LIBODIR)$(SLASH)chk_ar.$(OFILE)\
$(LIBODIR)$(SLASH)con_hi.$(OFILE)\
$(LIBODIR)$(SLASH)con_out.$(OFILE)\
$(LIBODIR)$(SLASH)dat_rec.$(OFILE)\
$(LIBODIR)$(SLASH)data.$(OFILE)\
$(LIBODIR)$(SLASH)data_ovl.$(OFILE)\
$(LIBODIR)$(SLASH)date_str.$(OFILE)\
$(LIBODIR)$(SLASH)download.$(OFILE)\
$(LIBODIR)$(SLASH)email.$(OFILE)\
$(LIBODIR)$(SLASH)exec.$(OFILE)\
$(LIBODIR)$(SLASH)execfile.$(OFILE)\
$(LIBODIR)$(SLASH)execfunc.$(OFILE)\
$(LIBODIR)$(SLASH)execmisc.$(OFILE)\
$(LIBODIR)$(SLASH)execmsg.$(OFILE)\
$(LIBODIR)$(SLASH)execnet.$(OFILE)\
$(LIBODIR)$(SLASH)fido.$(OFILE)\
$(LIBODIR)$(SLASH)file.$(OFILE)\
$(LIBODIR)$(SLASH)filedat.$(OFILE)\
$(LIBODIR)$(SLASH)getkey.$(OFILE)\
$(LIBODIR)$(SLASH)getmail.$(OFILE)\
$(LIBODIR)$(SLASH)getmsg.$(OFILE)\
$(LIBODIR)$(SLASH)getnode.$(OFILE)\
$(LIBODIR)$(SLASH)getstats.$(OFILE)\
$(LIBODIR)$(SLASH)getstr.$(OFILE)\
$(LIBODIR)$(SLASH)ini_file.$(OFILE)\
$(LIBODIR)$(SLASH)inkey.$(OFILE)\
$(LIBODIR)$(SLASH)ident.$(OFILE)\
$(LIBODIR)$(SLASH)js_bbs.$(OFILE)\
$(LIBODIR)$(SLASH)js_client.$(OFILE)\
$(LIBODIR)$(SLASH)js_console.$(OFILE)\
$(LIBODIR)$(SLASH)js_file.$(OFILE)\
$(LIBODIR)$(SLASH)js_file_area.$(OFILE)\
$(LIBODIR)$(SLASH)js_global.$(OFILE)\
$(LIBODIR)$(SLASH)js_internal.$(OFILE)\
$(LIBODIR)$(SLASH)js_msg_area.$(OFILE)\
$(LIBODIR)$(SLASH)js_msgbase.$(OFILE)\
$(LIBODIR)$(SLASH)js_server.$(OFILE)\
$(LIBODIR)$(SLASH)js_socket.$(OFILE)\
$(LIBODIR)$(SLASH)js_system.$(OFILE)\
$(LIBODIR)$(SLASH)js_user.$(OFILE)\
$(LIBODIR)$(SLASH)js_xtrn_area.$(OFILE)\
$(LIBODIR)$(SLASH)listfile.$(OFILE)\
$(LIBODIR)$(SLASH)load_cfg.$(OFILE)\
$(LIBODIR)$(SLASH)logfile.$(OFILE)\
$(LIBODIR)$(SLASH)login.$(OFILE)\
$(LIBODIR)$(SLASH)logon.$(OFILE)\
$(LIBODIR)$(SLASH)logout.$(OFILE)\
$(LIBODIR)$(SLASH)mail.$(OFILE)\
$(LIBODIR)$(SLASH)main.$(OFILE)\
$(LIBODIR)$(SLASH)msg_id.$(OFILE)\
$(LIBODIR)$(SLASH)msgdate.$(OFILE)\
$(LIBODIR)$(SLASH)msgtoqwk.$(OFILE)\
$(LIBODIR)$(SLASH)netmail.$(OFILE)\
$(LIBODIR)$(SLASH)newuser.$(OFILE)\
$(LIBODIR)$(SLASH)nopen.$(OFILE)\
$(LIBODIR)$(SLASH)pack_qwk.$(OFILE)\
$(LIBODIR)$(SLASH)pack_rep.$(OFILE)\
$(LIBODIR)$(SLASH)postmsg.$(OFILE)\
$(LIBODIR)$(SLASH)prntfile.$(OFILE)\
$(LIBODIR)$(SLASH)putmsg.$(OFILE)\
$(LIBODIR)$(SLASH)putnode.$(OFILE)\
$(LIBODIR)$(SLASH)qwk.$(OFILE)\
$(LIBODIR)$(SLASH)qwktomsg.$(OFILE)\
$(LIBODIR)$(SLASH)readmail.$(OFILE)\
$(LIBODIR)$(SLASH)readmsgs.$(OFILE)\
$(LIBODIR)$(SLASH)ringbuf.$(OFILE)\
$(LIBODIR)$(SLASH)scandirs.$(OFILE)\
$(LIBODIR)$(SLASH)scansubs.$(OFILE)\
$(LIBODIR)$(SLASH)scfglib1.$(OFILE)\
$(LIBODIR)$(SLASH)scfglib2.$(OFILE)\
$(LIBODIR)$(SLASH)scfgsave.$(OFILE)\
$(LIBODIR)$(SLASH)sockopts.$(OFILE)\
$(LIBODIR)$(SLASH)sortdir.$(OFILE)\
$(LIBODIR)$(SLASH)str.$(OFILE)\
$(LIBODIR)$(SLASH)str_list.$(OFILE)\
$(LIBODIR)$(SLASH)str_util.$(OFILE)\
$(LIBODIR)$(SLASH)telgate.$(OFILE)\
$(LIBODIR)$(SLASH)telnet.$(OFILE)\
$(LIBODIR)$(SLASH)text_sec.$(OFILE)\
$(LIBODIR)$(SLASH)tmp_xfer.$(OFILE)\
$(LIBODIR)$(SLASH)un_qwk.$(OFILE)\
$(LIBODIR)$(SLASH)un_rep.$(OFILE)\
$(LIBODIR)$(SLASH)upload.$(OFILE)\
$(LIBODIR)$(SLASH)userdat.$(OFILE)\
$(LIBODIR)$(SLASH)useredit.$(OFILE)\
$(LIBODIR)$(SLASH)uucode.$(OFILE)\
$(LIBODIR)$(SLASH)viewfile.$(OFILE)\
$(LIBODIR)$(SLASH)writemsg.$(OFILE)\
$(LIBODIR)$(SLASH)xtrn.$(OFILE)\
$(LIBODIR)$(SLASH)xtrn_sec.$(OFILE)\
$(LIBODIR)$(SLASH)yenc.$(OFILE)\
$(LIBODIR)$(SLASH)genwrap.$(OFILE)\
$(LIBODIR)$(SLASH)dirwrap.$(OFILE)\
$(LIBODIR)$(SLASH)filewrap.$(OFILE)\
$(LIBODIR)$(SLASH)threadwrap.$(OFILE)\
$(LIBODIR)$(SLASH)semwrap.$(OFILE)\
$(LIBODIR)$(SLASH)sockwrap.$(OFILE)\
$(LIBODIR)$(SLASH)ver.$(OFILE)
# $Id$(DIRSEP)09$(DIRSEP)08 07:23:54 deuce Exp $
# OBJODIR, SLASH, and OFILE must be pre-defined
OBJS = $(MTOBJODIR)$(DIRSEP)ansiterm$(OFILE)\
$(MTOBJODIR)$(DIRSEP)answer$(OFILE)\
$(MTOBJODIR)$(DIRSEP)ars$(OFILE)\
$(MTOBJODIR)$(DIRSEP)atcodes$(OFILE)\
$(MTOBJODIR)$(DIRSEP)bat_xfer$(OFILE)\
$(MTOBJODIR)$(DIRSEP)base64$(OFILE)\
$(MTOBJODIR)$(DIRSEP)bulkmail$(OFILE)\
$(MTOBJODIR)$(DIRSEP)chat$(OFILE)\
$(MTOBJODIR)$(DIRSEP)chk_ar$(OFILE)\
$(MTOBJODIR)$(DIRSEP)con_hi$(OFILE)\
$(MTOBJODIR)$(DIRSEP)con_out$(OFILE)\
$(MTOBJODIR)$(DIRSEP)dat_rec$(OFILE)\
$(MTOBJODIR)$(DIRSEP)data$(OFILE)\
$(MTOBJODIR)$(DIRSEP)data_ovl$(OFILE)\
$(MTOBJODIR)$(DIRSEP)date_str$(OFILE)\
$(MTOBJODIR)$(DIRSEP)download$(OFILE)\
$(MTOBJODIR)$(DIRSEP)email$(OFILE)\
$(MTOBJODIR)$(DIRSEP)exec$(OFILE)\
$(MTOBJODIR)$(DIRSEP)execfile$(OFILE)\
$(MTOBJODIR)$(DIRSEP)execfunc$(OFILE)\
$(MTOBJODIR)$(DIRSEP)execmisc$(OFILE)\
$(MTOBJODIR)$(DIRSEP)execmsg$(OFILE)\
$(MTOBJODIR)$(DIRSEP)execnet$(OFILE)\
$(MTOBJODIR)$(DIRSEP)fido$(OFILE)\
$(MTOBJODIR)$(DIRSEP)file$(OFILE)\
$(MTOBJODIR)$(DIRSEP)filedat$(OFILE)\
$(MTOBJODIR)$(DIRSEP)getkey$(OFILE)\
$(MTOBJODIR)$(DIRSEP)getmail$(OFILE)\
$(MTOBJODIR)$(DIRSEP)getmsg$(OFILE)\
$(MTOBJODIR)$(DIRSEP)getnode$(OFILE)\
$(MTOBJODIR)$(DIRSEP)getstats$(OFILE)\
$(MTOBJODIR)$(DIRSEP)getstr$(OFILE)\
$(MTOBJODIR)$(DIRSEP)inkey$(OFILE)\
$(MTOBJODIR)$(DIRSEP)ident$(OFILE)\
$(MTOBJODIR)$(DIRSEP)js_bbs$(OFILE)\
$(MTOBJODIR)$(DIRSEP)js_client$(OFILE)\
$(MTOBJODIR)$(DIRSEP)js_console$(OFILE)\
$(MTOBJODIR)$(DIRSEP)js_file$(OFILE)\
$(MTOBJODIR)$(DIRSEP)js_file_area$(OFILE)\
$(MTOBJODIR)$(DIRSEP)js_global$(OFILE)\
$(MTOBJODIR)$(DIRSEP)js_internal$(OFILE)\
$(MTOBJODIR)$(DIRSEP)js_msg_area$(OFILE)\
$(MTOBJODIR)$(DIRSEP)js_msgbase$(OFILE)\
$(MTOBJODIR)$(DIRSEP)js_server$(OFILE)\
$(MTOBJODIR)$(DIRSEP)js_socket$(OFILE)\
$(MTOBJODIR)$(DIRSEP)js_system$(OFILE)\
$(MTOBJODIR)$(DIRSEP)js_user$(OFILE)\
$(MTOBJODIR)$(DIRSEP)js_xtrn_area$(OFILE)\
$(MTOBJODIR)$(DIRSEP)listfile$(OFILE)\
$(MTOBJODIR)$(DIRSEP)load_cfg$(OFILE)\
$(MTOBJODIR)$(DIRSEP)logfile$(OFILE)\
$(MTOBJODIR)$(DIRSEP)login$(OFILE)\
$(MTOBJODIR)$(DIRSEP)logon$(OFILE)\
$(MTOBJODIR)$(DIRSEP)logout$(OFILE)\
$(MTOBJODIR)$(DIRSEP)mail$(OFILE)\
$(MTOBJODIR)$(DIRSEP)main$(OFILE)\
$(MTOBJODIR)$(DIRSEP)msg_id$(OFILE)\
$(MTOBJODIR)$(DIRSEP)msgdate$(OFILE)\
$(MTOBJODIR)$(DIRSEP)msgtoqwk$(OFILE)\
$(MTOBJODIR)$(DIRSEP)netmail$(OFILE)\
$(MTOBJODIR)$(DIRSEP)newuser$(OFILE)\
$(MTOBJODIR)$(DIRSEP)nopen$(OFILE)\
$(MTOBJODIR)$(DIRSEP)pack_qwk$(OFILE)\
$(MTOBJODIR)$(DIRSEP)pack_rep$(OFILE)\
$(MTOBJODIR)$(DIRSEP)postmsg$(OFILE)\
$(MTOBJODIR)$(DIRSEP)prntfile$(OFILE)\
$(MTOBJODIR)$(DIRSEP)putmsg$(OFILE)\
$(MTOBJODIR)$(DIRSEP)putnode$(OFILE)\
$(MTOBJODIR)$(DIRSEP)qwk$(OFILE)\
$(MTOBJODIR)$(DIRSEP)qwktomsg$(OFILE)\
$(MTOBJODIR)$(DIRSEP)readmail$(OFILE)\
$(MTOBJODIR)$(DIRSEP)readmsgs$(OFILE)\
$(MTOBJODIR)$(DIRSEP)ringbuf$(OFILE)\
$(MTOBJODIR)$(DIRSEP)scandirs$(OFILE)\
$(MTOBJODIR)$(DIRSEP)scansubs$(OFILE)\
$(MTOBJODIR)$(DIRSEP)scfglib1$(OFILE)\
$(MTOBJODIR)$(DIRSEP)scfglib2$(OFILE)\
$(MTOBJODIR)$(DIRSEP)scfgsave$(OFILE)\
$(MTOBJODIR)$(DIRSEP)sockopts$(OFILE)\
$(MTOBJODIR)$(DIRSEP)sortdir$(OFILE)\
$(MTOBJODIR)$(DIRSEP)str$(OFILE)\
$(MTOBJODIR)$(DIRSEP)str_util$(OFILE)\
$(MTOBJODIR)$(DIRSEP)telgate$(OFILE)\
$(MTOBJODIR)$(DIRSEP)telnet$(OFILE)\
$(MTOBJODIR)$(DIRSEP)text_sec$(OFILE)\
$(MTOBJODIR)$(DIRSEP)tmp_xfer$(OFILE)\
$(MTOBJODIR)$(DIRSEP)un_qwk$(OFILE)\
$(MTOBJODIR)$(DIRSEP)un_rep$(OFILE)\
$(MTOBJODIR)$(DIRSEP)upload$(OFILE)\
$(MTOBJODIR)$(DIRSEP)userdat$(OFILE)\