1# 2# Copyright (C) 2002 Erik Latoshek [forester] (laterk@inbox.lv) 3# Copyright (C) 2001 _type_in_ 4# 5# This program is free software; you can redistribute it and/or 6# modify it under the terms of the GNU General Public License 7# as published by the Free Software Foundation; either version 2 8# of the License, or (at your option) any later version. 9# 10# This program is distributed in the hope that it will be useful, 11# but WITHOUT ANY WARRANTY; without even the implied warranty of 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13# GNU General Public License for more details. 14# 15# You should have received a copy of the GNU General Public License 16# along with this program; if not, write to the Free Software 17# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18# 19 20# Makefile.BORLAND - 21# Makefile for Borland's/Inprise's free command-line win32 tools 22# Tested with Version 5.5 23 24# attention! 25# on some win95 systems even if there are valid ilink32.cfg file, 26# ilink32 does not find objects in lib dir! notice, that on NT all works fine 27# so if you get a error that c0x32.obj cannot be found uncomment this macro 28#LINK_LIBS_PATH = "c:\program files\bcc55\lib" 29# -> ofcourse set path to your path 30# -> this was detected in 5.5 31 32srcdir = . 33 34# prefix is the directory where the bnetd binary 35# distribution will be installed 36prefix = . 37exec_prefix = .\bnetd 38 39bindir = ${exec_prefix}\bin 40sbindir = ${exec_prefix}\sbin 41mandir = ${prefix}\man 42confdir = ${prefix}\conf 43sharedir = ${prefix}\var 44filesdir = ${sharedir}\files 45usersdir = ${sharedir}\users 46clandir = ${sharedir}\clans 47teamdir = ${sharedir}\teams 48reportsdir = ${sharedir}\reports 49chanlogsdir = ${sharedir}\chanlogs 50 51TOPDIR = ${srcdir}\.. 52INSTALLDIR = ${prefix} 53 54OBJDIR = ${srcdir}\..\obj\bcc\ 55 56SRC_SRCDIR = ${srcdir} 57SRC_BINDIR = ${srcdir}\..\bin 58SRC_SBINDIR = ${srcdir}\..\sbin 59SRC_MANDIR = ${srcdir}\..\man 60SRC_CONFDIR = ${SRCDIR}\..\conf 61SRC_SHAREDIR = ${SRCDIR}\..\files 62 63SRC_ACDIR = ${SRC_SRCDIR}\autoconf 64SRC_BNETDDIR = ${SRC_SRCDIR}\bnetd 65SRC_D2CSDIR = ${SRC_SRCDIR}\d2cs 66SRC_D2DBSDIR = ${SRC_SRCDIR}\d2dbs 67SRC_BNIUTILSDIR = ${SRC_SRCDIR}\bniutils 68SRC_BNPASSDIR = ${SRC_SRCDIR}\bnpass 69SRC_BNPROXYDIR = ${SRC_SRCDIR}\bnproxy 70SRC_BNTRACKDDIR = ${SRC_SRCDIR}\bntrackd 71SRC_CLIENTDIR = ${SRC_SRCDIR}\client 72SRC_COMMONDIR = ${SRC_SRCDIR}\common 73SRC_COMPATDIR = ${SRC_SRCDIR}\compat 74SRC_DEBUGDIR = ${SRC_SRCDIR}\debug 75SRC_WIN32DIR = ${SRC_SRCDIR}\win32 76SRC_CDBDIR = ${SRC_SRCDIR}\tinycdb 77SRC_ZLIBDIR = ${SRC_SRCDIR}\zlib 78 79MKDIR = md 80 81RMF = del 82 83#del /q is better if available, as it works on a non-english OS 84!if ${OS}==Windows_NT 85RMFALL = del /Q 86!else 87RMFALL = echo y|del 88!endif 89 90RMDIR = rmdir 91 92ECHO = echo 93 94SED = notavailable 95 96INSTALL = notavailable 97INSTALL_PROGRAM = notavailable 98INSTALL_DATA = notavailable 99INSTALL_SCRIPT = notavailable 100INSTALL_DIRS = mkdir 101 102CC = bcc32 103RC = brc32 104# Grr... warning 8060 complains about if (!(var = create())) and the compiler stops 105# working correctly after 20 or 30 warnings so we have to disable it. 106# Warning 8057 is that a function parameter is unused... this is probably intentional so 107# this only makes the compile noisy. 108 109#Note on MYSQL support: 110#libmySQL.lib has to be converted to work with borland, use this borland tool: 111#COFF2OMF libmySQL.lib libmySQL_bc.lib 112#Or create it from the dll file: 113#IMPLIB libmysql_bc.lib libmysql.dll 114#However the data alignment has to be set to "quad word", thus the -a8 in SQLFLAGS 115#This might not work flawless, MYSQL suggests to use their static libs from http://www.mysql.com/downloads/os-win32.html 116 117!ifdef WITH_GUI 118bnetd_RESOURCES = ${SRC_WIN32DIR}\resource.res 119d2cs_RESOURCES = ${SRC_WIN32DIR}\d2cs_resource.res 120d2dbs_RESOURCES = ${SRC_WIN32DIR}\d2dbs_resource.res 121GUIBCCFLAGS = -tWM -DWIN32_GUI 122LINKPREFIX = /aa c0w32 123LINKPOSTFIX = cw32mt import32 , , 124!else 125LINKPREFIX = /ap c0x32 126LINKPOSTFIX = cw32 import32 127!endif 128 129!ifdef WITH_SQL_MYSQL 130SQLFLAGS = -DWITH_SQL_MYSQL -a8 131!endif 132 133!ifdef WITH_SQL_ODBC 134SQLFLAGS = -DWITH_SQL_ODBC 135!endif 136 137!ifdef WITH_CDB 138CDBFLAGS = -DWITH_CDB 139!endif 140 141CFLAGS = -v -y -O2 -d -j2 -w-8060 -w-8057 142CPPFLAGS = -DWIN32 -I${SRC_SRCDIR} \ 143 -DBNETD_DEFAULT_CONF_FILE=\"${bnetd_DEFCONFFILE:\=\\}\" \ 144 -DD2CS_DEFAULT_CONF_FILE=\"${d2cs_DEFCONFFILE:\=\\}\" \ 145 -DD2DBS_DEFAULT_CONF_FILE=\"${d2dbs_DEFCONFFILE:\=\\}\" \ 146 ${SQLFLAGS} ${CDBFLAGS} ${GUIBCCFLAGS} 147COMPILE = ${CC} ${CFLAGS} ${CPPFLAGS} -c 148LINK = ilink32 -v -L${LINK_LIBS_PATH} -I${OBJDIR} 149!ifdef WITH_SQL_MYSQL 150!ifdef WITH_SQL_ODBC 151LINK_LIBS = libmySQL_bc.lib odbc32.lib 152!else 153LINK_LIBS = libmySQL_bc.lib 154!endif 155!else 156!ifdef WITH_SQL_ODBC 157LINK_LIBS = odbc32.lib 158!else 159LINK_LIBS = 160!endif 161!endif 162 163bnetd_DEFCONFFILE = ${confdir}\bnetd.conf 164bnetd_SBIN = ${SRC_SBINDIR}\bnetd.exe 165bnetd_OBJECTS = \ 166 ${SRC_BNETDDIR}\main.obj \ 167 ${SRC_BNETDDIR}\server.obj \ 168 ${SRC_BNETDDIR}\connection.obj \ 169 ${SRC_BNETDDIR}\message.obj \ 170 ${SRC_BNETDDIR}\handle_init.obj \ 171 ${SRC_BNETDDIR}\handle_bnet.obj \ 172 ${SRC_BNETDDIR}\handle_file.obj \ 173 ${SRC_BNETDDIR}\handle_bot.obj \ 174 ${SRC_BNETDDIR}\handle_telnet.obj \ 175 ${SRC_BNETDDIR}\handle_irc.obj \ 176 ${SRC_BNETDDIR}\handle_udp.obj \ 177 ${SRC_BNETDDIR}\handle_anongame.obj \ 178 ${SRC_BNETDDIR}\channel.obj \ 179 ${SRC_BNETDDIR}\channel_conv.obj \ 180 ${SRC_BNETDDIR}\game.obj \ 181 ${SRC_BNETDDIR}\anongame.obj \ 182 ${SRC_BNETDDIR}\friends.obj \ 183 ${SRC_BNETDDIR}\command.obj \ 184 ${SRC_BNETDDIR}\account.obj \ 185 ${SRC_BNETDDIR}\account_wrap.obj \ 186 ${SRC_BNETDDIR}\prefs.obj \ 187 ${SRC_BNETDDIR}\tick.obj \ 188 ${SRC_BNETDDIR}\file.obj \ 189 ${SRC_BNETDDIR}\watch.obj \ 190 ${SRC_BNETDDIR}\ladder.obj \ 191 ${SRC_BNETDDIR}\ladder_calc.obj \ 192 ${SRC_BNETDDIR}\adbanner.obj \ 193 ${SRC_BNETDDIR}\timer.obj \ 194 ${SRC_BNETDDIR}\tracker.obj \ 195 ${SRC_BNETDDIR}\ipban.obj \ 196 ${SRC_BNETDDIR}\game_conv.obj \ 197 ${SRC_BNETDDIR}\autoupdate.obj \ 198 ${SRC_BNETDDIR}\helpfile.obj \ 199 ${SRC_BNETDDIR}\mail.obj \ 200 ${SRC_BNETDDIR}\anongame_infos.obj \ 201 ${SRC_BNETDDIR}\anongame_gameresult.obj \ 202 ${SRC_BNETDDIR}\storage.obj \ 203 ${SRC_BNETDDIR}\runprog.obj \ 204 ${SRC_BNETDDIR}\realm.obj \ 205 ${SRC_BNETDDIR}\character.obj \ 206 ${SRC_BNETDDIR}\udptest_send.obj \ 207 ${SRC_BNETDDIR}\versioncheck.obj \ 208 ${SRC_BNETDDIR}\handle_d2cs.obj \ 209 ${SRC_BNETDDIR}\news.obj \ 210 ${SRC_BNETDDIR}\irc.obj \ 211 ${SRC_BNETDDIR}\alias_command.obj \ 212 ${SRC_BNETDDIR}\storage_file.obj \ 213 ${SRC_BNETDDIR}\file_plain.obj \ 214 ${SRC_BNETDDIR}\file_cdb.obj \ 215 ${SRC_BNETDDIR}\storage_sql.obj \ 216 ${SRC_BNETDDIR}\sql_mysql.obj \ 217 ${SRC_BNETDDIR}\sql_odbc.obj \ 218 ${SRC_BNETDDIR}\sql_dbcreator.obj \ 219 ${SRC_BNETDDIR}\command_groups.obj \ 220 ${SRC_BNETDDIR}\output.obj \ 221 ${SRC_BNETDDIR}\tournament.obj \ 222 ${SRC_BNETDDIR}\anongame_maplists.obj \ 223 ${SRC_BNETDDIR}\clan.obj \ 224 ${SRC_BNETDDIR}\topic.obj \ 225 ${SRC_BNETDDIR}\ladder_binary.obj \ 226 ${SRC_BNETDDIR}\support.obj \ 227 ${SRC_BNETDDIR}\team.obj \ 228 ${SRC_BNETDDIR}\attrgroup.obj \ 229 ${SRC_BNETDDIR}\attrlayer.obj \ 230 ${SRC_BNETDDIR}\cmdline.obj \ 231 ${SRC_WIN32DIR}\service.obj \ 232 ${SRC_COMMONDIR}\hexdump.obj \ 233 ${SRC_COMMONDIR}\bn_type.obj \ 234 ${SRC_COMMONDIR}\packet.obj \ 235 ${SRC_COMMONDIR}\queue.obj \ 236 ${SRC_COMMONDIR}\util.obj \ 237 ${SRC_COMMONDIR}\network.obj \ 238 ${SRC_COMMONDIR}\list.obj \ 239 ${SRC_COMMONDIR}\eventlog.obj \ 240 ${SRC_COMMONDIR}\bnettime.obj \ 241 ${SRC_COMMONDIR}\bnethash.obj \ 242 ${SRC_COMMONDIR}\bnethashconv.obj \ 243 ${SRC_COMMONDIR}\addr.obj \ 244 ${SRC_COMMONDIR}\hashtable.obj \ 245 ${SRC_COMMONDIR}\give_up_root_privileges.obj \ 246 ${SRC_COMMONDIR}\token.obj \ 247 ${SRC_COMMONDIR}\proginfo.obj \ 248 ${SRC_COMMONDIR}\rlimit.obj \ 249 ${SRC_COMMONDIR}\tag.obj \ 250 ${SRC_COMMONDIR}\trans.obj \ 251 ${SRC_COMMONDIR}\fdwatch.obj \ 252 ${SRC_COMMONDIR}\fdwatch_poll.obj \ 253 ${SRC_COMMONDIR}\fdwatch_select.obj \ 254 ${SRC_COMMONDIR}\xalloc.obj \ 255 ${SRC_COMMONDIR}\rcm.obj \ 256 ${SRC_COMMONDIR}\conf.obj \ 257 ${SRC_COMPATDIR}\pdir.obj \ 258 ${SRC_COMPATDIR}\inet_aton.obj \ 259 ${SRC_COMPATDIR}\inet_ntoa.obj \ 260 ${SRC_COMPATDIR}\strdup.obj \ 261 ${SRC_COMPATDIR}\strerror.obj \ 262 ${SRC_COMPATDIR}\strtoul.obj \ 263 ${SRC_COMPATDIR}\strftime.obj \ 264 ${SRC_COMPATDIR}\strcasecmp.obj \ 265 ${SRC_COMPATDIR}\strncasecmp.obj \ 266 ${SRC_COMPATDIR}\strsep.obj \ 267 ${SRC_COMPATDIR}\psock.obj \ 268 ${SRC_COMPATDIR}\uname.obj \ 269 ${SRC_COMPATDIR}\gettimeofday.obj \ 270 ${SRC_COMPATDIR}\difftime.obj \ 271 ${SRC_COMPATDIR}\memset.obj \ 272 ${SRC_COMPATDIR}\memcpy.obj \ 273 ${SRC_COMPATDIR}\mmap.obj \ 274 ${SRC_COMPATDIR}\getopt.obj \ 275 ${SRC_CDBDIR}\cdb_init.obj \ 276 ${SRC_CDBDIR}\cdb_find.obj \ 277 ${SRC_CDBDIR}\cdb_findnext.obj \ 278 ${SRC_CDBDIR}\cdb_seek.obj \ 279 ${SRC_CDBDIR}\cdb_seq.obj \ 280 ${SRC_CDBDIR}\cdb_unpack.obj \ 281 ${SRC_CDBDIR}\cdb_make_add.obj \ 282 ${SRC_CDBDIR}\cdb_make_put.obj \ 283 ${SRC_CDBDIR}\cdb_make_find.obj \ 284 ${SRC_CDBDIR}\cdb_make.obj \ 285 ${SRC_CDBDIR}\cdb_hash.obj \ 286 $(SRC_ZLIBDIR)\pvpgn_adler32.obj \ 287 $(SRC_ZLIBDIR)\pvpgn_deflate.obj \ 288 $(SRC_ZLIBDIR)\pvpgn_trees.obj \ 289 $(SRC_ZLIBDIR)\pvpgn_zutil.obj \ 290 ${SRC_WIN32DIR}\winmain.obj 291 292 293sbnetd_SBIN = ${SRC_SBINDIR}\sbnetd.exe 294sbnetd_OBJECTS = ${SRC_DEBUGDIR}\sbnetd.obj \ 295 ${SRC_COMPATDIR}\strerror.obj 296 297d2cs_DEFCONFFILE = ${confdir}\d2cs.conf 298d2cs_SBIN = ${SRC_SBINDIR}\d2cs.exe 299d2cs_OBJECTS = \ 300 ${SRC_D2CSDIR}\main.obj \ 301 ${SRC_D2CSDIR}\d2gs.obj \ 302 ${SRC_D2CSDIR}\handle_d2gs.obj \ 303 ${SRC_D2CSDIR}\serverqueue.obj \ 304 ${SRC_D2CSDIR}\connection.obj \ 305 ${SRC_D2CSDIR}\game.obj \ 306 ${SRC_D2CSDIR}\server.obj \ 307 ${SRC_D2CSDIR}\handle_init.obj \ 308 ${SRC_D2CSDIR}\handle_d2cs.obj \ 309 ${SRC_D2CSDIR}\d2charfile.obj \ 310 ${SRC_D2CSDIR}\d2charlist.obj \ 311 ${SRC_D2CSDIR}\gamequeue.obj \ 312 ${SRC_D2CSDIR}\prefs.obj \ 313 ${SRC_D2CSDIR}\cmdline.obj \ 314 ${SRC_D2CSDIR}\bnetd.obj \ 315 ${SRC_D2CSDIR}\handle_bnetd.obj \ 316 ${SRC_D2CSDIR}\handle_signal.obj \ 317 ${SRC_D2CSDIR}\s2s.obj \ 318 ${SRC_D2CSDIR}\net.obj \ 319 ${SRC_D2CSDIR}\d2ladder.obj \ 320 ${SRC_COMMONDIR}\conf.obj \ 321 ${SRC_COMMONDIR}\hashtable.obj \ 322 ${SRC_COMMONDIR}\hexdump.obj \ 323 ${SRC_COMMONDIR}\eventlog.obj \ 324 ${SRC_COMMONDIR}\fdwatch.obj \ 325 ${SRC_COMMONDIR}\fdwatch_poll.obj \ 326 ${SRC_COMMONDIR}\fdwatch_select.obj \ 327 ${SRC_COMMONDIR}\list.obj \ 328 ${SRC_COMMONDIR}\packet.obj \ 329 ${SRC_COMMONDIR}\bn_type.obj \ 330 ${SRC_COMMONDIR}\addr.obj \ 331 ${SRC_COMMONDIR}\util.obj \ 332 ${SRC_COMMONDIR}\queue.obj \ 333 ${SRC_COMMONDIR}\network.obj \ 334 ${SRC_COMMONDIR}\rlimit.obj \ 335 ${SRC_COMMONDIR}\trans.obj \ 336 ${SRC_COMMONDIR}\d2char_checksum.obj \ 337 ${SRC_COMMONDIR}\fdwatch_select.obj \ 338 ${SRC_COMMONDIR}\xalloc.obj \ 339 ${SRC_COMMONDIR}\xstring.obj \ 340 ${SRC_COMPATDIR}\inet_aton.obj \ 341 ${SRC_COMPATDIR}\inet_ntoa.obj \ 342 ${SRC_COMPATDIR}\strdup.obj \ 343 ${SRC_COMPATDIR}\strerror.obj \ 344 ${SRC_COMPATDIR}\strtoul.obj \ 345 ${SRC_COMPATDIR}\strftime.obj \ 346 ${SRC_COMPATDIR}\strcasecmp.obj \ 347 ${SRC_COMPATDIR}\strncasecmp.obj \ 348 ${SRC_COMPATDIR}\psock.obj \ 349 ${SRC_COMPATDIR}\uname.obj \ 350 ${SRC_COMPATDIR}\gettimeofday.obj \ 351 ${SRC_COMPATDIR}\difftime.obj \ 352 ${SRC_COMPATDIR}\pdir.obj \ 353 ${SRC_COMPATDIR}\strsep.obj \ 354 ${SRC_WIN32DIR}\service.obj \ 355 ${SRC_WIN32DIR}\d2cs_winmain.obj 356 357d2dbs_DEFCONFFILE = ${confdir}\d2dbs.conf 358d2dbs_SBIN = ${SRC_SBINDIR}\d2dbs.exe 359d2dbs_OBJECTS = \ 360 ${SRC_D2DBSDIR}\main.obj \ 361 ${SRC_D2DBSDIR}\charlock.obj \ 362 ${SRC_D2DBSDIR}\d2ladder.obj \ 363 ${SRC_D2DBSDIR}\dbserver.obj \ 364 ${SRC_D2DBSDIR}\dbspacket.obj \ 365 ${SRC_D2DBSDIR}\cmdline.obj \ 366 ${SRC_D2DBSDIR}\prefs.obj \ 367 ${SRC_D2DBSDIR}\dbsdupecheck.obj \ 368 ${SRC_D2DBSDIR}\handle_signal.obj \ 369 ${SRC_COMMONDIR}\conf.obj \ 370 ${SRC_COMMONDIR}\list.obj \ 371 ${SRC_COMMONDIR}\eventlog.obj \ 372 ${SRC_COMMONDIR}\hexdump.obj \ 373 ${SRC_COMMONDIR}\bn_type.obj \ 374 ${SRC_COMMONDIR}\util.obj \ 375 ${SRC_COMMONDIR}\addr.obj \ 376 ${SRC_COMMONDIR}\d2char_checksum.obj \ 377 ${SRC_COMMONDIR}\xalloc.obj \ 378 ${SRC_COMMONDIR}\packet.obj \ 379 ${SRC_COMMONDIR}\network.obj \ 380 ${SRC_COMMONDIR}\xstring.obj \ 381 ${SRC_COMPATDIR}\inet_aton.obj \ 382 ${SRC_COMPATDIR}\psock.obj \ 383 ${SRC_COMPATDIR}\strerror.obj \ 384 ${SRC_COMPATDIR}\strsep.obj \ 385 ${SRC_WIN32DIR}\service.obj \ 386 ${SRC_WIN32DIR}\d2dbs_winmain.obj 387 388bnproxy_SBIN = ${SRC_SBINDIR}\bnproxy.exe 389bnproxy_OBJECTS = ${SRC_BNPROXYDIR}\bnproxy.obj \ 390${SRC_BNPROXYDIR}\virtconn.obj \ 391${SRC_COMMONDIR}\hexdump.obj \ 392${SRC_COMMONDIR}\packet.obj \ 393${SRC_COMMONDIR}\queue.obj \ 394${SRC_COMMONDIR}\list.obj \ 395${SRC_COMMONDIR}\bn_type.obj \ 396${SRC_COMMONDIR}\network.obj \ 397${SRC_COMMONDIR}\eventlog.obj \ 398${SRC_COMMONDIR}\util.obj \ 399${SRC_COMMONDIR}\xalloc.obj \ 400${SRC_COMPATDIR}\inet_ntoa.obj \ 401${SRC_COMPATDIR}\strerror.obj \ 402${SRC_COMPATDIR}\psock.obj 403 404bntrackd_SBIN = ${SRC_SBINDIR}\bntrackd.exe 405bntrackd_OBJECTS= ${SRC_BNTRACKDDIR}\bntrackd.obj \ 406${SRC_COMMONDIR}\util.obj \ 407${SRC_COMMONDIR}\list.obj \ 408${SRC_COMMONDIR}\eventlog.obj \ 409${SRC_COMMONDIR}\hexdump.obj \ 410${SRC_COMMONDIR}\xalloc.obj \ 411${SRC_COMPATDIR}\inet_ntoa.obj \ 412${SRC_COMPATDIR}\strerror.obj \ 413${SRC_COMPATDIR}\psock.obj 414 415bnchat_BIN = ${SRC_BINDIR}\bnchat.exe 416bnchat_OBJECTS = ${SRC_CLIENTDIR}\bnchat.obj \ 417${SRC_CLIENTDIR}\client.obj \ 418${SRC_CLIENTDIR}\client_connect.obj \ 419${SRC_CLIENTDIR}\udptest.obj \ 420${SRC_COMMONDIR}\packet.obj \ 421${SRC_COMMONDIR}\queue.obj \ 422${SRC_COMMONDIR}\bn_type.obj \ 423${SRC_COMMONDIR}\network.obj \ 424${SRC_COMMONDIR}\eventlog.obj \ 425${SRC_COMMONDIR}\hexdump.obj \ 426${SRC_COMMONDIR}\bnethash.obj \ 427${SRC_COMMONDIR}\bnethashconv.obj \ 428${SRC_COMMONDIR}\util.obj \ 429${SRC_COMMONDIR}\bnettime.obj \ 430${SRC_COMMONDIR}\proginfo.obj \ 431${SRC_COMMONDIR}\xalloc.obj \ 432${SRC_COMPATDIR}\inet_ntoa.obj \ 433${SRC_COMPATDIR}\strerror.obj \ 434${SRC_COMPATDIR}\psock.obj \ 435${SRC_COMPATDIR}\vsnprintf.obj \ 436${SRC_COMPATDIR}\gettimeofday.obj 437 438bnpass_BIN = ${SRC_BINDIR}\bnpass.exe 439bnpass_OBJECTS = ${SRC_BNPASSDIR}\bnpass.obj \ 440${SRC_COMMONDIR}\bnethash.obj \ 441${SRC_COMMONDIR}\eventlog.obj \ 442${SRC_COMMONDIR}\hexdump.obj \ 443${SRC_COMPATDIR}\strerror.obj 444 445bnftp_BIN = ${SRC_BINDIR}\bnftp.exe 446bnftp_OBJECTS = ${SRC_CLIENTDIR}\bnftp.obj \ 447${SRC_CLIENTDIR}\client.obj \ 448${SRC_COMMONDIR}\hexdump.obj \ 449${SRC_COMMONDIR}\packet.obj \ 450${SRC_COMMONDIR}\queue.obj \ 451${SRC_COMMONDIR}\bn_type.obj \ 452${SRC_COMMONDIR}\network.obj \ 453${SRC_COMMONDIR}\eventlog.obj \ 454${SRC_COMMONDIR}\bnettime.obj \ 455${SRC_COMMONDIR}\util.obj \ 456${SRC_COMMONDIR}\xalloc.obj \ 457${SRC_COMPATDIR}\inet_ntoa.obj \ 458${SRC_COMPATDIR}\strerror.obj \ 459${SRC_COMPATDIR}\strftime.obj \ 460${SRC_COMPATDIR}\psock.obj \ 461${SRC_COMPATDIR}\gettimeofday.obj 462 463bnbot_BIN = ${SRC_BINDIR}\bnbot.exe 464bnbot_OBJECTS = ${SRC_CLIENTDIR}\bnbot.obj \ 465${SRC_CLIENTDIR}\client.obj \ 466${SRC_COMMONDIR}\packet.obj \ 467${SRC_COMMONDIR}\bn_type.obj \ 468${SRC_COMMONDIR}\network.obj \ 469${SRC_COMMONDIR}\eventlog.obj \ 470${SRC_COMMONDIR}\hexdump.obj \ 471${SRC_COMMONDIR}\util.obj \ 472${SRC_COMMONDIR}\xalloc.obj \ 473${SRC_COMPATDIR}\inet_ntoa.obj \ 474${SRC_COMPATDIR}\strerror.obj \ 475${SRC_COMPATDIR}\psock.obj 476 477bnstat_BIN = ${SRC_BINDIR}\bnstat.exe 478bnstat_OBJECTS = ${SRC_CLIENTDIR}\bnstat.obj \ 479${SRC_CLIENTDIR}\client.obj \ 480${SRC_CLIENTDIR}\client_connect.obj \ 481${SRC_CLIENTDIR}\udptest.obj \ 482${SRC_COMMONDIR}\packet.obj \ 483${SRC_COMMONDIR}\queue.obj \ 484${SRC_COMMONDIR}\bn_type.obj \ 485${SRC_COMMONDIR}\network.obj \ 486${SRC_COMMONDIR}\eventlog.obj \ 487${SRC_COMMONDIR}\hexdump.obj \ 488${SRC_COMMONDIR}\bnethash.obj \ 489${SRC_COMMONDIR}\bnethashconv.obj \ 490${SRC_COMMONDIR}\util.obj \ 491${SRC_COMMONDIR}\bnettime.obj \ 492${SRC_COMMONDIR}\proginfo.obj \ 493${SRC_COMMONDIR}\xalloc.obj \ 494${SRC_COMPATDIR}\inet_ntoa.obj \ 495${SRC_COMPATDIR}\strerror.obj \ 496${SRC_COMPATDIR}\strftime.obj \ 497${SRC_COMPATDIR}\psock.obj \ 498${SRC_COMPATDIR}\gettimeofday.obj 499 500bnilist_BIN = ${SRC_BINDIR}\bnilist.exe 501bnilist_OBJECTS = ${SRC_BNIUTILSDIR}\bnilist.obj \ 502${SRC_BNIUTILSDIR}\fileio.obj \ 503${SRC_BNIUTILSDIR}\tga.obj \ 504${SRC_COMPATDIR}\strerror.obj 505 506bni2tga_BIN = ${SRC_BINDIR}\bni2tga.exe 507bni2tga_OBJECTS = ${SRC_BNIUTILSDIR}\bni2tga.obj \ 508${SRC_BNIUTILSDIR}\fileio.obj \ 509${SRC_COMPATDIR}\strerror.obj 510 511bniextract_BIN = ${SRC_BINDIR}\bniextract.exe 512bniextract_OBJECTS= ${SRC_BNIUTILSDIR}\bniextract.obj \ 513${SRC_BNIUTILSDIR}\fileio.obj \ 514${SRC_BNIUTILSDIR}\tga.obj \ 515${SRC_BNIUTILSDIR}\bni.obj \ 516${SRC_COMPATDIR}\strerror.obj 517 518bnibuild_BIN = ${SRC_BINDIR}\bnibuild.exe 519bnibuild_OBJECTS= ${SRC_BNIUTILSDIR}\bnibuild.obj \ 520${SRC_BNIUTILSDIR}\fileio.obj \ 521${SRC_BNIUTILSDIR}\tga.obj \ 522${SRC_BNIUTILSDIR}\bni.obj \ 523${SRC_COMPATDIR}\strerror.obj 524 525tgainfo_BIN = ${SRC_BINDIR}\tgainfo.exe 526tgainfo_OBJECTS = ${SRC_BNIUTILSDIR}\tgainfo.obj \ 527${SRC_BNIUTILSDIR}\fileio.obj \ 528${SRC_BNIUTILSDIR}\tga.obj \ 529${SRC_COMPATDIR}\strerror.obj 530 531timetest_BIN = ${SRC_BINDIR}\timetest.exe 532timetest_OBJECTS = ${SRC_DEBUGDIR}\timetest.obj \ 533${SRC_COMMONDIR}\bn_type.obj \ 534${SRC_COMMONDIR}\eventlog.obj \ 535${SRC_COMMONDIR}\hexdump.obj \ 536${SRC_COMMONDIR}\bnettime.obj \ 537${SRC_COMPATDIR}\strerror.obj \ 538${SRC_COMPATDIR}\gettimeofday.obj 539 540listtest_BIN = ${SRC_BINDIR}\listtest.exe 541listtest_OBJECTS = ${SRC_DEBUGDIR}\listtest.obj \ 542${SRC_COMMONDIR}\list.obj \ 543${SRC_COMMONDIR}\eventlog.obj \ 544${SRC_COMMONDIR}\hexdump.obj \ 545${SRC_COMPATDIR}\strerror.obj \ 546${SRC_COMPATDIR}\strdup.obj 547 548hashtabletest_BIN = ${SRC_BINDIR}\hashtabletest.exe 549hashtabletest_OBJECTS = ${SRC_DEBUGDIR}\hashtabletest.obj \ 550${SRC_COMMONDIR}\hashtable.obj \ 551${SRC_COMMONDIR}\eventlog.obj \ 552${SRC_COMMONDIR}\hexdump.obj \ 553${SRC_COMPATDIR}\strerror.obj \ 554${SRC_COMPATDIR}\strdup.obj 555 556addrtest_BIN = ${SRC_BINDIR}\addrtest.exe 557addrtest_OBJECTS = ${SRC_DEBUGDIR}\addrtest.obj \ 558${SRC_COMMONDIR}\addr.obj \ 559${SRC_COMMONDIR}\util.obj \ 560${SRC_COMMONDIR}\list.obj \ 561${SRC_COMMONDIR}\eventlog.obj \ 562${SRC_COMMONDIR}\hexdump.obj \ 563${SRC_COMPATDIR}\inet_aton.obj \ 564${SRC_COMPATDIR}\inet_ntoa.obj \ 565${SRC_COMPATDIR}\strerror.obj \ 566${SRC_COMPATDIR}\psock.obj \ 567${SRC_COMPATDIR}\memset.obj \ 568${SRC_COMPATDIR}\memcpy.obj \ 569${SRC_COMPATDIR}\strdup.obj 570 571cdb_BIN = ${SRC_BINDIR}\bncdb.exe 572cdb_OBJECTS = ${SRC_CDBDIR}\cdb.obj \ 573${SRC_CDBDIR}\cdb_init.obj \ 574${SRC_CDBDIR}\cdb_seek.obj \ 575${SRC_CDBDIR}\cdb_seq.obj \ 576${SRC_CDBDIR}\cdb_find.obj \ 577${SRC_CDBDIR}\cdb_findnext.obj \ 578${SRC_CDBDIR}\cdb_unpack.obj \ 579${SRC_CDBDIR}\cdb_make_add.obj \ 580${SRC_CDBDIR}\cdb_make_put.obj \ 581${SRC_CDBDIR}\cdb_make_find.obj \ 582${SRC_CDBDIR}\cdb_make.obj \ 583${SRC_CDBDIR}\cdb_hash.obj \ 584${SRC_COMMONDIR}\eventlog.obj \ 585${SRC_COMMONDIR}\hexdump.obj \ 586${SRC_COMMONDIR}\xalloc.obj \ 587${SRC_COMPATDIR}\mmap.obj \ 588${SRC_COMPATDIR}\getopt.obj \ 589${SRC_COMPATDIR}\strerror.obj 590 591OBJECTS = ${bnetd_OBJECTS} ${d2cs_OBJECTS} ${d2dbs_OBJECTS} ${bntrackd_OBJECTS} ${bnchat_OBJECTS} ${bnpass_OBJECTS} ${bnbot_OBJECTS} ${bnftp_OBJECTS} ${bnstat_OBJECTS} ${bnilist_OBJECTS} ${bni2tga_OBJECTS} ${bniextract_OBJECTS} ${bnibuild_OBJECTS} ${tgainfo_OBJECTS} ${timetest_OBJECTS} ${listtest_OBJECTS} ${hashtabletest_OBJECTS} ${addrtest_OBJECTS} ${cdb_OBJECTS} 592GUISBINS = ${bnetd_SBIN} ${d2cs_SBIN} ${d2dbs_SBIN} 593SBINS = ${bnproxy_SBIN} ${bntrackd_SBIN} 594BINS = ${bnchat_BIN} ${bnpass_BIN} ${bnftp_BIN} ${bnbot_BIN} ${bnstat_BIN} ${bnilist_BIN} ${bni2tga_BIN} ${bniextract_BIN} ${bnibuild_BIN} ${tgainfo_BIN} ${cdb_BIN} 595CONFS = ad.conf bnetd.conf bnetd_default_user.plain bnetd_default_user.cdb bnmotd.txt channel.conf news.txt bnban.conf bnhelp.conf autoupdate.conf realm.conf bnmaps.conf bnxplevel.conf bnxpcalc.conf news.txt command_groups.conf bnban.conf bnhelp.conf bnalias.conf anongame_infos.conf tournament.conf topics.conf sql_DB_layout.conf address_translation.conf supportfile.conf 596SHARES = ad000001.smk tos.txt 597OTHERBINS = ${sbnetd_OBJECTS} ${sbnetd_SBIN} 598DIRS = ${SRC_BINDIR} ${SRC_SBINDIR} 599 600!ifdef WITH_GUI 601all: config objdir ${GUISBINS} 602 603 @echo =================================================================== 604 @echo Build GUI versions of bnetd, d2cs and d2dbs. 605 @echo Now building non GUI stuff. 606 @-${RMF} ${SRC_COMMONDIR}\eventlog.obj 607 @make_borland console 608!else 609all: config objdir ${GUISBINS} ${SBINS} ${BINS} 610 -${RMF} ${SRC_COMMONDIR}\eventlog.obj 611 @echo =================================================================== 612 @echo All applications build. 613 @echo =================================================================== 614!endif 615 616!ifndef WITH_GUI 617console: config objdir ${SBINS} ${BINS} 618 -${RMF} ${SRC_COMMONDIR}\eventlog.obj 619 @echo =================================================================== 620 @echo remaining sbin and bin applications build. 621 @echo =================================================================== 622!endif 623 624 625objdir: 626 if not exist ${OBJDIR} ${INSTALL_DIRS} ${OBJDIR} 627 628clean: 629# win95 supports only 1 parameter to 'del' & 'rmdir' 630# and wants 'y' for *.* 631 -${RMF} ${SRC_BNTRACKDDIR}\*.obj 632 -${RMF} ${SRC_CLIENTDIR}\*.obj 633 -${RMF} ${SRC_BNIUTILSDIR}\*.obj 634 -${RMF} ${SRC_BNPASSDIR}\*.obj 635 -${RMF} ${SRC_BNPROXYDIR}\*.obj 636 -${RMF} ${SRC_COMPATDIR}\*.obj 637 -${RMF} ${SRC_COMMONDIR}\*.obj 638 -${RMF} ${SRC_WIN32DIR}\*.obj 639 -${RMF} ${SRC_BNETDDIR}\*.obj 640 -${RMF} ${SRC_D2DBSDIR}\*.obj 641 -${RMF} ${SRC_D2CSDIR}\*.obj 642 -${RMF} ${SRC_CDBDIR}\*.obj 643 -${RMF} ${SRC_ZLIBDIR}\*.obj 644 -${RMF} ${SRC_BNETDDIR}\*.res 645 -${RMF} ${SRC_COMPATDIR}\*.g_obj 646 -${RMF} ${SRC_COMMONDIR}\*.g_obj 647 -${RMF} ${SRC_WIN32DIR}\*.g_obj 648 -${RMF} ${SRC_BNETDDIR}\*.g_obj 649 -${RMF} ${SRC_CDBDIR}\*.g_obj 650 -${RMF} ${SRC_ZLIBDIR}\*.g_obj 651 -${RMFALL} ${SRC_BINDIR}\*.* 652 -${RMFALL} ${SRC_SBINDIR}\*.* 653 -${RMFALL} ${OBJDIR}\*.* 654 -${RMDIR} ${SRC_BINDIR} 655 -${RMDIR} ${SRC_SBINDIR} 656 -${RMDIR} ${OBJDIR} 657 658distclean: clean 659 -${RMF} ${SRC_CONFDIR}\bnetd.conf 660 -${RMF} ${SRC_CONFDIR}\d2dbs.conf 661 -${RMF} ${SRC_SRCDIR}\config.cache 662 -${RMF} ${SRC_SRCDIR}\config.log 663 -${RMF} ${SRC_SRCDIR}\config.status 664 -${RMF} ${SRC_SRCDIR}\Makefile 665 -${RMF} ${SRC_SRCDIR}\config.h 666 -${RMDIR} ${SRC_BINDIR} 667 -${RMDIR} ${SRC_SBINDIR} 668 669clean-compile: clean all 670 671config: ${SRC_SRCDIR}\Makefile 672 673${SRC_SRCDIR}\Makefile: Makefile.BORLAND 674 copy Makefile.BORLAND ${SRC_SRCDIR}\Makefile 675 676${SRC_BINDIR}: 677 if not exist $@ ${INSTALL_DIRS} $@ 678 679${SRC_SBINDIR}: 680 if not exist $@ ${INSTALL_DIRS} $@ 681 682install: config all 683 -${INSTALL_DIRS} ${INSTALLDIR} 684 -${INSTALL_DIRS} ${INSTALLDIR}\bin 685 -${INSTALL_DIRS} ${INSTALLDIR}\sbin 686 -${INSTALL_DIRS} ${INSTALLDIR}\var 687 -${INSTALL_DIRS} ${INSTALLDIR}\var\files 688 -${INSTALL_DIRS} ${INSTALLDIR}\var\users 689 -${INSTALL_DIRS} ${INSTALLDIR}\var\reports 690 -${INSTALL_DIRS} ${INSTALLDIR}\var\chanlogs 691 -${INSTALL_DIRS} ${INSTALLDIR}\etc 692 copy ${TOPDIR}\files\*.* ${INSTALLDIR}\var\files 693 copy ${TOPDIR}\conf\*.* ${INSTALLDIR}\etc 694 copy ${INSTALLDIR}\etc\bnetd.conf.win32 ${INSTALLDIR}\etc\bnetd.conf 695 copy ${INSTALLDIR}\etc\d2cs.conf.win32 ${INSTALLDIR}\etc\d2cs.conf 696 copy ${INSTALLDIR}\etc\d2dbs.conf.win32 ${INSTALLDIR}\etc\d2dbs.conf 697 copy ${TOPDIR}\sbin\*.exe ${INSTALLDIR}\sbin 698 copy ${TOPDIR}\bin\*.exe ${INSTALLDIR}\bin 699 copy ${TOPDIR}\*.* ${INSTALLDIR} 700 echo @cd ${INSTALLDIR} > ${INSTALLDIR}\bnetd.bat 701 echo @.\sbin\bnetd.exe -c .\etc\bnetd.conf >> ${INSTALLDIR}\bnetd.bat 702 703# The Borland compiler silently ignores -ofilename if it is after the source file 704# The Borland compiler silently ignores -efilename if it is after the object file 705 706.rc.res: 707 ${RC} -r -i${srcdir} -fo$@ $< 708 709.c.obj: 710 ${COMPILE} -o$@ $< 711 712${bnetd_SBIN}: ${bnetd_OBJECTS} ${bnetd_RESOURCES} ${SRC_SBINDIR} 713 ${LINK} ${LINKPREFIX} ${bnetd_OBJECTS}, $@, , ${LINK_LIBS} ${LINKPOSTFIX} ${bnetd_RESOURCES} 714 715${d2cs_SBIN}: ${d2cs_OBJECTS} ${d2cs_RESOURCES} ${SRC_SBINDIR} 716 ${LINK} ${LINKPREFIX} ${d2cs_OBJECTS}, $@, , ${LINK_LIBS} ${LINKPOSTFIX} ${d2cs_RESOURCES} 717 718${d2dbs_SBIN}: ${d2dbs_OBJECTS} ${d2dbs_RESOURCES} ${SRC_SBINDIR} 719 ${LINK} ${LINKPREFIX} ${d2dbs_OBJECTS}, $@, , ${LINK_LIBS} ${LINKPOSTFIX} ${d2dbs_RESOURCES} 720 721${bnproxy_SBIN}: ${bnproxy_OBJECTS} ${SRC_SBINDIR} 722 ${LINK} /ap c0x32 ${bnproxy_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 723 724${bntrackd_SBIN}: ${bntrackd_OBJECTS} ${SRC_SBINDIR} 725 ${LINK} /ap c0x32 ${bntrackd_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 726 727${bnchat_BIN}: ${bnchat_OBJECTS} ${SRC_BINDIR} 728 ${LINK} /ap c0x32 ${bnchat_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 729 730${bnpass_BIN}: ${bnpass_OBJECTS} ${SRC_BINDIR} 731 ${LINK} /ap c0x32 ${bnpass_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 732 733${bnftp_BIN}: ${bnftp_OBJECTS} ${SRC_BINDIR} 734 ${LINK} /ap c0x32 ${bnftp_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 735 736${bnbot_BIN}: ${bnbot_OBJECTS} ${SRC_BINDIR} 737 ${LINK} /ap c0x32 ${bnbot_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 738 739${bnstat_BIN}: ${bnstat_OBJECTS} ${SRC_BINDIR} 740 ${LINK} /ap c0x32 ${bnstat_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 741 742${bnilist_BIN}: ${bnilist_OBJECTS} 743 ${LINK} /ap c0x32 ${bnilist_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 744 745${bni2tga_BIN}: ${bni2tga_OBJECTS} ${SRC_BINDIR} 746 ${LINK} /ap c0x32 ${bni2tga_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 747 748${bniextract_BIN}: ${bniextract_OBJECTS} ${SRC_BINDIR} 749 ${LINK} /ap c0x32 ${bniextract_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 750 751${bnibuild_BIN}: ${bnibuild_OBJECTS} ${SRC_BINDIR} 752 ${LINK} /ap c0x32 ${bnibuild_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 753 754${tgainfo_BIN}: ${tgainfo_OBJECTS} ${SRC_BINDIR} 755 ${LINK} /ap c0x32 ${tgainfo_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 756 757${timetest_BIN}: ${timetest_OBJECTS} ${SRC_BINDIR} 758 ${LINK} /ap c0x32 ${timetest_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 759 760${listtest_BIN}: ${listtest_OBJECTS} ${SRC_BINDIR} 761 ${LINK} /ap c0x32 ${listtest_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 762 763${hashtabletest_BIN}: ${hashtabletest_OBJECTS} ${SRC_BINDIR} 764 ${LINK} /ap c0x32 ${hashtabletest_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 765 766${addrtest_BIN}: ${addrtest_OBJECTS} ${SRC_BINDIR} 767 ${LINK} /ap c0x32 ${addrtest_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 768 769${cdb_BIN}: ${cdb_OBJECTS} ${SRC_BINDIR} 770 ${LINK} /ap c0x32 ${cdb_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32 771