|
|
1.1 ! root 1: # GNUmakefile ! 2: ! 3: ######################################################################### ! 4: # Makefile for Synchronet BBS for Unix # ! 5: # For use with GNU make and GNU C Compiler or Borland Kylix C++ # ! 6: # @format.tab-size 4, @format.use-tabs true # ! 7: # # ! 8: # gcc: gmake # ! 9: # Borland (still in testing/debuging stage): gmake bcc=1 # ! 10: # # ! 11: # Optional build targets: dlls, utils, mono, all (default) # ! 12: ######################################################################### ! 13: ! 14: # $Id: GNUmakefile,v 1.200 2006/12/31 00:14:04 deuce Exp $ ! 15: ! 16: SRC_ROOT = .. ! 17: include $(SRC_ROOT)/build/Common.gmake ! 18: ! 19: UTIL_LDFLAGS := $(LDFLAGS) ! 20: UTIL_LDFLAGS += $(SMBLIB_LDFLAGS) $(UIFC-MT_LDFLAGS) $(CIOLIB-MT_LDFLAGS) $(XPDEV_LDFLAGS) ! 21: UTIL_LIBS += $(SMBLIB_LIBS) ! 22: ! 23: ifndef bcc ! 24: ifneq ($(os),sunos) ! 25: LDFLAGS += -lutil ! 26: endif ! 27: endif ! 28: ! 29: ifeq ($(os),sunos) # Solaris ! 30: LDFLAGS += -lnsl -lrt ! 31: endif ! 32: ! 33: # So far, only QNX has sem_timedwait() ! 34: ifeq ($(os),qnx) ! 35: LDFLAGS += -lsocket ! 36: endif ! 37: ! 38: SBBS_LIBS += -lcl ! 39: ! 40: ifdef PREFIX ! 41: CFLAGS += -DPREFIX=$(PREFIX) ! 42: endif ! 43: ! 44: ifdef USE_DOSEMU ! 45: CFLAGS += -DUSE_DOSEMU ! 46: endif ! 47: ! 48: ifdef DONT_BLAME_SYNCHRONET ! 49: CFLAGS += -DDONT_BLAME_SYNCHRONET ! 50: endif ! 51: ! 52: # JS and NSPR setup stuff... ! 53: ! 54: ifeq ($(os),sunos) ! 55: ifeq ($(shell test -f /usr/sfw/lib/mozilla/libmozjs.so && echo "yes"),yes) ! 56: JSLIBDIR ?= /usr/sfw/lib/mozilla ! 57: JSLIB ?= mozjs ! 58: endif ! 59: ifeq ($(shell test -f /usr/sfw/lib/mozilla/libnspr4.so && echo "yes"),yes) ! 60: NSPRDIR ?= /usr/sfw/lib/mozilla ! 61: ifeq ($(shell test -d /usr/sfw/include/mozilla/nspr && echo "yes"),yes) ! 62: NSPRINCLUDE ?= /usr/sfw/include/mozilla/nspr ! 63: endif ! 64: endif ! 65: endif ! 66: ! 67: CFLAGS += -DJAVASCRIPT ! 68: ifdef JSINCLUDE ! 69: CFLAGS += -I$(JSINCLUDE) ! 70: else ! 71: CFLAGS += -I$(SRC_ROOT)$(DIRSEP)..$(DIRSEP)include$(DIRSEP)mozilla$(DIRSEP)js ! 72: endif ! 73: ifdef NSPRINCLUDE ! 74: CFLAGS += -I$(NSPRINCLUDE) ! 75: else ! 76: # Use local NSPR first... ! 77: CFLAGS += -I/usr/local/include -I$(SRC_ROOT)$(DIRSEP)..$(DIRSEP)include$(DIRSEP)mozilla$(DIRSEP)nspr ! 78: endif ! 79: ifdef CRYPTLIBINCLUDE ! 80: CFLAGS += -I$(CRYPTLIBINCLUDE) ! 81: else ! 82: CFLAGS += -I$(SRC_ROOT)/../include/cryptlib ! 83: endif ! 84: ifndef JSLIBDIR ! 85: JSLIBDIR := $(SRC_ROOT)$(DIRSEP)..$(DIRSEP)lib$(DIRSEP)mozilla$(DIRSEP)js$(DIRSEP)$(machine).$(BUILD) ! 86: endif ! 87: ifndef JSLIB ! 88: JSLIB := js ! 89: endif ! 90: ifndef NSPRDIR ! 91: NSPRDIR := $(SRC_ROOT)$(DIRSEP)..$(DIRSEP)lib$(DIRSEP)mozilla$(DIRSEP)nspr$(DIRSEP)$(machine).$(BUILD) ! 92: endif ! 93: JS_LDFLAGS += -L$(JSLIBDIR) -l$(JSLIB) ! 94: #The following is needed for nspr support on Linux ! 95: ifeq ($(os),linux) ! 96: JS_LDFLAGS += -ldl ! 97: endif ! 98: JS_LDFLAGS += -L/usr/local/lib -L$(NSPRDIR) -lnspr4 ! 99: CFLAGS += $(JS_CFLAGS) ! 100: LDFLAGS += $(JS_LDFLAGS) ! 101: ! 102: ifndef CRYPTLIBDIR ! 103: CRYPTLIBDIR := $(SRC_ROOT)/../lib/cryptlib/$(os).release ! 104: endif ! 105: LDFLAGS += -L$(CRYPTLIBDIR) ! 106: ! 107: include sbbsdefs.mk ! 108: MT_CFLAGS += $(SBBSDEFS) ! 109: ! 110: # Set up LD_RUN_PATH for run-time locating of the .so files ! 111: PWD := $(shell pwd) ! 112: ifdef SBBSDIR ! 113: ifeq ($(os),sunos) ! 114: LD_RUN_PATH := $(SBBSDIR)/exec:$(PWD)/$(LIBODIR):$(PWD)/$(JSLIBDIR):$(PWD)/$(NSPRDIR):$(PWD)/$(CRYPTLIBDIR):/opt/sfw/gcc-3/lib ! 115: else ! 116: LD_RUN_PATH := $(SBBSDIR)/exec:$(PWD)/$(LIBODIR):$(PWD)/$(JSLIBDIR):$(PWD)/$(NSPRDIR):$(PWD)/$(CRYPTLIBDIR) ! 117: endif ! 118: else ! 119: ifeq ($(os),sunos) ! 120: LD_RUN_PATH := $(PWD)/$(LIBODIR):$(PWD)/$(JSLIBDIR):$(PWD)/$(NSPRDIR):$(PWD)/$(CRYPTLIBDIR):/opt/sfw/gcc-3/lib ! 121: else ! 122: LD_RUN_PATH := $(PWD)/$(LIBODIR):$(PWD)/$(JSLIBDIR):$(PWD)/$(NSPRDIR):$(PWD)/$(CRYPTLIBDIR) ! 123: endif ! 124: endif ! 125: export LD_RUN_PATH ! 126: ! 127: CON_LIBS := -lsbbs -lftpsrvr -lwebsrvr -lmailsrvr -lservices ! 128: SHLIBOPTS := -shared ! 129: ifeq ($(os),darwin) ! 130: MKSHLIB := libtool -dynamic -framework System -lcc_dynamic ! 131: MKSHPPLIB := libtool -dynamic -framework System -lcc_dynamic -lstdc++ ! 132: SHLIBOPTS := ! 133: else ! 134: ifeq ($(os),sunos) ! 135: MKSHLIB := /usr/ccs/bin/ld -G ! 136: MKSHPPLIB := /usr/ccs/bin/ld -G ! 137: SHLIBOPTS := ! 138: else ! 139: MKSHLIB := $(CC) ! 140: MKSHPPLIB := $(CXX) ! 141: endif ! 142: endif ! 143: ! 144: CFLAGS += $(UIFC-MT_CFLAGS) $(XPDEV-MT_CFLAGS) $(SMBLIB_CFLAGS) $(CIOLIB-MT_CFLAGS) ! 145: LDFLAGS += $(UIFC-MT_LDFLAGS) $(XPDEV-MT_LDFLAGS) $(SMBLIB_LDFLAGS) $(CIOLIB-MT_LDFLAGS) ! 146: ! 147: # Monolithic Synchronet executable Build Rule ! 148: $(SBBSMONO): $(MONO_OBJS) $(OBJS) ! 149: @echo Linking $@ ! 150: $(QUIET)$(CXX) -o $@ $(LDFLAGS) $(MT_LDFLAGS) $(MONO_OBJS) $(OBJS) $(SBBS_LIBS) $(SMBLIB_LIBS) $(XPDEV-MT_LIBS) ! 151: ! 152: # Synchronet BBS library Link Rule ! 153: $(SBBS): $(OBJS) $(LIBS) ! 154: @echo Linking $@ ! 155: $(QUIET)$(MKSHPPLIB) $(LDFLAGS) -o $@ $(OBJS) $(SBBS_LIBS) $(LIBS) $(SHLIBOPTS) ! 156: ! 157: # FTP Server Link Rule ! 158: $(FTPSRVR): $(MTOBJODIR)/ftpsrvr.o ! 159: @echo Linking $@ ! 160: $(QUIET)$(MKSHLIB) $(LDFLAGS) $(MTOBJODIR)/ftpsrvr.o $(SHLIBOPTS) -o $@ ! 161: ! 162: # Mail Server Link Rule ! 163: $(MAILSRVR): $(MAIL_OBJS) ! 164: @echo Linking $@ ! 165: $(QUIET)$(MKSHLIB) $(LDFLAGS) $(MAIL_OBJS) $(SHLIBOPTS) -o $@ ! 166: ! 167: # Web Server Link Rule ! 168: $(WEBSRVR): $(WEB_OBJS) ! 169: @echo Linking $@ ! 170: $(QUIET)$(MKSHLIB) $(LDFLAGS) $(WEB_OBJS) $(SHLIBOPTS) -o $@ ! 171: ! 172: # Services Link Rule ! 173: $(SERVICES): $(SERVICE_OBJS) ! 174: @echo Linking $@ ! 175: $(QUIET)$(MKSHLIB) $(LDFLAGS) $(SERVICE_OBJS) $(SHLIBOPTS) -o $@ ! 176: ! 177: # Synchronet Console Build Rule ! 178: $(SBBSCON): $(CON_OBJS) $(SBBS) $(FTPSRVR) $(WEBSRVR) $(MAILSRVR) $(SERVICES) ! 179: @echo Linking $@ ! 180: $(QUIET)$(CXX) $(LDFLAGS) $(MT_LDFLAGS) -o $@ $(CON_OBJS) $(CON_LIBS) $(SMBLIB_LIBS) $(XPDEV-MT_LIBS) ! 181: ! 182: # Baja Utility ! 183: $(BAJA): $(BAJA_OBJS) ! 184: @echo Linking $@ ! 185: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(BAJA_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS) ! 186: ! 187: # UnBaja Utility ! 188: $(UNBAJA): $(OBJODIR) $(EXEODIR) $(UNBAJA_OBJS) ! 189: @echo Linking $@ ! 190: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(UNBAJA_OBJS) $(XPDEV_LIBS) $(UTIL_LIBS) ! 191: ! 192: # Node Utility ! 193: $(NODE): $(NODE_OBJS) ! 194: @echo Linking $@ ! 195: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(NODE_OBJS) $(XPDEV_LIBS) ! 196: ! 197: # FIXSMB Utility ! 198: $(FIXSMB): $(FIXSMB_OBJS) ! 199: @echo Linking $@ ! 200: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(FIXSMB_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS) ! 201: ! 202: # CHKSMB Utility ! 203: $(CHKSMB): $(CHKSMB_OBJS) ! 204: @echo Linking $@ ! 205: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(CHKSMB_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS) ! 206: ! 207: # SMB Utility ! 208: $(SMBUTIL): $(SMBUTIL_OBJS) ! 209: @echo Linking $@ ! 210: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(SMBUTIL_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS) ! 211: ! 212: # SBBSecho (FidoNet Packet Tosser) ! 213: $(SBBSECHO): $(SBBSECHO_OBJS) ! 214: @echo Linking $@ ! 215: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(SBBSECHO_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS) ! 216: ! 217: # SBBSecho Configuration Program ! 218: $(ECHOCFG): $(ECHOCFG_OBJS) ! 219: @echo Linking $@ ! 220: $(QUIET)$(CC) $(UTIL_LDFLAGS) $(MT_LDFLAGS) -o $@ $(ECHOCFG_OBJS) $(UIFC-MT_LDFLAGS) $(SMBLIB_LIBS) $(UIFC-MT_LIBS) $(CIOLIB-MT_LIBS) $(XPDEV-MT_LIBS) ! 221: ! 222: # ADDFILES ! 223: $(ADDFILES): $(ADDFILES_OBJS) ! 224: @echo Linking $@ ! 225: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(ADDFILES_OBJS) $(XPDEV_LIBS) ! 226: ! 227: # FILELIST ! 228: $(FILELIST): $(FILELIST_OBJS) ! 229: @echo Linking $@ ! 230: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(FILELIST_OBJS) $(XPDEV_LIBS) ! 231: ! 232: # MAKEUSER ! 233: $(MAKEUSER): $(MAKEUSER_OBJS) ! 234: @echo Linking $@ ! 235: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(MAKEUSER_OBJS) $(XPDEV_LIBS) ! 236: ! 237: # JSEXEC ! 238: $(JSEXEC): $(JSEXEC_OBJS) $(SBBS) ! 239: @echo Linking $@ ! 240: $(QUIET)$(CXX) $(LDFLAGS) $(MT_LDFLAGS) -o $@ $(JSEXEC_OBJS) -lsbbs $(SMBLIB_LIBS) $(UIFC-MT_LIBS) $(CIOLIB-MT_LIBS) $(XPDEV-MT_LIBS) ! 241: ! 242: # ANS2ASC ! 243: $(ANS2ASC): $(OBJODIR)/ans2asc.o ! 244: @echo Linking $@ ! 245: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(OBJODIR)/ans2asc.o ! 246: ! 247: # ASC2ANS ! 248: $(ASC2ANS): $(OBJODIR)/asc2ans.o ! 249: @echo Linking $@ ! 250: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(OBJODIR)/asc2ans.o ! 251: ! 252: # SEXYZ ! 253: $(SEXYZ): $(SEXYZ_OBJS) ! 254: @echo Linking $@ ! 255: $(QUIET)$(CC) $(UTIL_LDFLAGS) $(MT_LDFLAGS) -o $@ $(SEXYZ_OBJS) $(SMBLIB_LIBS) $(XPDEV-MT_LIBS) ! 256: ! 257: # QWKNODES ! 258: $(QWKNODES): $(QWKNODES_OBJS) ! 259: @echo Linking $@ ! 260: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(QWKNODES_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS) ! 261: ! 262: # SLOG ! 263: $(SLOG): $(SLOG_OBJS) ! 264: @echo Linking $@ ! 265: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(SLOG_OBJS) $(XPDEV_LIBS) ! 266: ! 267: # ALLUSERS ! 268: $(ALLUSERS): $(ALLUSERS_OBJS) ! 269: @echo Linking $@ ! 270: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(ALLUSERS_OBJS) $(XPDEV_LIBS) ! 271: ! 272: # DELFILES ! 273: $(DELFILES): $(DELFILES_OBJS) ! 274: @echo Linking $@ ! 275: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(DELFILES_OBJS) $(XPDEV_LIBS) ! 276: ! 277: # DUPEFIND ! 278: $(DUPEFIND): $(DUPEFIND_OBJS) ! 279: @echo Linking $@ ! 280: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(DUPEFIND_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS) ! 281: ! 282: # SMBACTIV ! 283: $(SMBACTIV): $(SMBACTIV_OBJS) ! 284: @echo Linking $@ ! 285: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(SMBACTIV_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.