diff --git a/src/build/Common.bmake b/src/build/Common.bmake
new file mode 100644
index 0000000000000000000000000000000000000000..d10e29838e5f93d891a35502fc39a67b889c1601
--- /dev/null
+++ b/src/build/Common.bmake
@@ -0,0 +1,176 @@
+# build/Common.bmake
+#
+# Global build system setup file for Borland Make/BCC
+#
+# $Id$
+#
+#############################################################################
+# @format.tab-size 4		(Plain Text/Source Code File Header)			#
+# @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)			#
+#																			#
+# Copyright 2004 Rob Swindell - http://www.synchro.net/copyright.html		#
+#																			#
+# This program is free software; you can redistribute it and/or				#
+# modify it under the terms of the GNU General Public License				#
+# as published by the Free Software Foundation; either version 2			#
+# of the License, or (at your option) any later version.					#
+# See the GNU General Public License for more details: gpl.txt or			#
+# http://www.fsf.org/copyleft/gpl.html										#
+#																			#
+# Anonymous FTP access to the most recent released source is available at	#
+# ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	#
+#																			#
+# Anonymous CVS access to the development source and modification history	#
+# is available at cvs.synchro.net:/cvsroot/sbbs, example:					#
+# cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login				#
+#     (just hit return, no password is necessary)							#
+# cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		#
+#																			#
+# For Synchronet coding style and modification guidelines, see				#
+# http://www.synchro.net/source.html										#
+#																			#
+# You are encouraged to submit any modifications (preferably in Unix diff	#
+# format) via e-mail to mods@synchro.net									#
+#																			#
+# Note: If this box doesn't appear square, then you need to fix your tabs.	#
+#############################################################################
+#																			#
+#############################################################################
+#																			#
+# Common macro setup for Borland make										#
+#																			#
+# Common Build Macros REQUIRED:												#
+#  SRC_ROOT			- *MUST* be set to the src dir							#
+#																			#
+# Common Build Macros Used:													#
+#  DEBUG			- Create a debug build									#
+#  RELEASE			- Create a release build								#
+#					  (Mutually exclusive, if both are set, RELEASE 		#
+#						is cleared)											#
+#  DONT_CLOBBER_CC	- Do not change the default setting of CC				#
+#  OBJPATH_SUFFIX	- Suffix appended to OBJPATH usefull for compiling 		#
+#					  different options of the same source file				#
+#																			#
+# Common Build Macros Defined:												#
+#  DELETE			- Delete files (Preferrably verbose)					#
+#  OBJODIR			- Object output dir										#
+#  LIBODIR			- Library output dir									#
+#  EXEODIR			- Executable output dir									#
+#  DEBUG			- Set for debug builds									#
+#  RELEASE			- Set for release builds								#
+#					  One of DEBUG or RELEASE is always set!				#
+#  QUIET			- Target command prefix to show/not show commands		#
+#  					  (Toggled off by setting VERBOSE)						#
+#  CFLAGS			- Common C and C++ compiler flags						#
+#  CCFLAGS			- C specific compiler flags								#
+#  CXXFLAGS			- C++ specific compiler flags							#
+#  LDFLAGS			- Linker flags											#
+#  CC				- C compiler											#
+#  CXX				- C++ compiler											#
+#  EXEFILE			- Executable file extension (Includes .)				#
+#  OFILE			- Object file extension (Includes .)					#
+#  SOFILE			- Shared object (DLL) file extension (Includes .)		#
+#  LIBFILE			- Static library file extension (Include .)				#
+#  LIBPREFIX		- Prefix to library filename							#
+#  LIBS				- Library names	(Appropriate for dependencies)			#
+#  LIB_LDFLAGS		- Libraries appropriate for link command-line usage		#
+#  COMPILE_MSG		- Message saying a target is being compiled				#
+#  DIRSEP			- The directory seperator this system likes most		#
+#  VERSION			- Synchronet version number in MAJOR.MINOR format		#
+#					  (Numeric ONLY)										#
+#																			#
+# Common Targets Defined:													#
+#  Implicit C and C++ targets												#
+#  "clean" target															# 
+#  Output directory targets													#
+#																			#
+#############################################################################
+
+# Macros
+# Set VERSION
+!ifndef VERSION
+ VERSION	=	3.12
+!endif
+
+# Set DEBUG
+!ifdef DEBUG
+ !ifdef RELEASE
+  !undef RELEASE
+ !endif
+!endif
+
+!ifndef DEBUG
+ !ifndef RELEASE
+  DEBUG	=	1
+ !endif
+!endif
+
+# VERBOSE/QUIET
+!ifndef VERBOSE
+ QUIET	=	@
+!endif
+
+# OS-specific
+DIRSEP	=	\	# This comment is necessary
+EXEFILE	=	.exe
+OFILE	=	.obj
+SOFILE	=	.dll
+LIBFILE	=	.lib
+DELETE	=	echo y | del 
+
+# Compiler-specific
+!ifdef msc	# Microsoft Visual C++
+CC		=	cl
+LD		=	link
+CCPRE	=	msvc.Win32
+OUTPUT	=	-Fo
+LOUTPUT	=	-Fe
+CFLAGS  =	-nologo -MTd
+LDFLAGS	=	$(CFLAGS)
+!ifdef DEBUG
+CFLAGS	=	$(CFLAGS) -Yd
+!endif
+
+!else		# Borland C++
+
+CC		=	bcc32
+CCPRE	=	bcc
+LD		=	ilink32
+OUTPUT	=	-o
+LOUTPUT	=	$(OUTPUT)
+CFLAGS	=	-n$(LIBODIR) -WM -q 
+LDFLAGS	=	$(CFLAGS)
+CFLAGS  =	$(CFLAGS) -M -WD -WM -X-
+!ifdef DEBUG
+CFLAGS	=	$(CFLAGS) -v
+!endif
+!endif
+
+# Common compiler flags
+!ifdef DEBUG
+CFLAGS	=	$(CFLAGS) -Od -D_DEBUG 
+!endif
+
+# Debug or release build?
+!ifdef DEBUG
+BUILDPATH	=	debug
+!else
+BUILDPATH	=	release
+!endif
+
+LIBODIR :=	$(CCPRE).win32.lib.$(BUILDPATH)
+OBJODIR :=	$(CCPRE).win32.obj.$(BUILDPATH)$(OBJPATH_SUFFIX)
+EXEODIR :=	$(CCPRE).win32.$(machine).exe.$(BUILDPATH)
+
+!include targets.mk
+!include $(SRC_ROOT)/build/rules.mk
+!include objects.mk		# defines $(OBJS)
+!include libobjs.mk		# defines $(LIB_OBJS)
+
+# Implicit C Compile Rule
+{.}.c$(OFILE):
+	@$(CC) $(CFLAGS) $(CCFLAGS) -c $< $(OUTPUT)$@
+
+# Implicit C++ Compile Rule
+{.}.cpp$(OFILE):
+	@$(CC) $(CFLAGS) $(CXXFLAGS) -c $< $(OUTPUT)$@
diff --git a/src/build/Common.gmake b/src/build/Common.gmake
index 86d5ec0ebcb2b8cda706339723f305aa9f3cefc0..8753e2a2368456faa99356ee973391387e7ec553 100644
--- a/src/build/Common.gmake
+++ b/src/build/Common.gmake
@@ -78,6 +78,13 @@
 #  DIRSEP			- The directory seperator this system likes most		#
 #  VERSION			- Synchronet version number in MAJOR.MINOR format		#
 #					  (Numeric ONLY)										#
+#  OUTPUT			- Compiler flag specifying output filename				#
+#  LOUTPUT			- Linker flag specifying output filename				#
+#																			#
+# Common Targets Defined:													#
+#  Implicit C and C++ targets												#
+#  "clean" target															# 
+#  Output directory targets													#
 #																			#
 #############################################################################
 
@@ -178,6 +185,9 @@ EXEFILE		:=
 SOFILE		:= .so
 LIBFILE		:= .a
 
+OUTPUT		:=	-o
+LOUTPUT		:=	-o
+
 ifeq ($(os),openbsd)
  SOFILE	:=	$(SOFILE)$(VERSION)
 else