|
|
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.167 2004/12/12 09:25:08 deuce Exp $ ! 15: ! 16: SRC_ROOT = .. ! 17: include $(SRC_ROOT)/build/Common.gmake ! 18: ! 19: UTIL_LDFLAGS += $(SMBLIB_LDFLAGS) $(UIFC-MT_LDFLAGS) $(CIOLIB-MT_LDFLAGS) $(XPDEV_LDFLAGS) ! 20: UTIL_LIBS += $(SMBLIB_LIBS) ! 21: ! 22: ifndef bcc ! 23: LDFLAGS += -lm ! 24: ifneq ($(os),sunos) ! 25: LDFLAGS += -lutil ! 26: endif ! 27: endif ! 28: ! 29: ifeq ($(os),sunos) # Solaris ! 30: LDFLAGS += -lsocket -lnsl -lrt ! 31: endif ! 32: ! 33: # So far, only QNX has sem_timedwait() ! 34: ifeq ($(os),qnx) ! 35: LDFLAGS += -lsocket ! 36: endif ! 37: ! 38: ifdef PREFIX ! 39: CFLAGS += -DPREFIX=$(PREFIX) ! 40: endif ! 41: ! 42: ifdef USE_DOSEMU ! 43: CFLAGS += -DUSE_DOSEMU ! 44: endif ! 45: ! 46: ifdef DONT_BLAME_SYNCHRONET ! 47: CFLAGS += -DDONT_BLAME_SYNCHRONET ! 48: endif ! 49: ! 50: # JS and NSPR setup stuff... ! 51: CFLAGS += -DJAVASCRIPT ! 52: ifdef JSINCLUDE ! 53: CFLAGS += -I$(JSINCLUDE) ! 54: else ! 55: CFLAGS += -I$(SRC_ROOT)$(DIRSEP)..$(DIRSEP)include$(DIRSEP)mozilla$(DIRSEP)js ! 56: endif ! 57: ifdef NSPRINCLUDE ! 58: CFLAGS += -I$(NSPRINCLUDE) ! 59: else ! 60: # Use local NSPR first... ! 61: CFLAGS += -I/usr/local/include -I$(SRC_ROOT)$(DIRSEP)..$(DIRSEP)include$(DIRSEP)mozilla$(DIRSEP)nspr ! 62: endif ! 63: ifndef JSLIBDIR ! 64: JSLIBDIR := $(SRC_ROOT)$(DIRSEP)..$(DIRSEP)lib$(DIRSEP)mozilla$(DIRSEP)js$(DIRSEP)$(machine).$(BUILD) ! 65: endif ! 66: ifndef JSLIB ! 67: JSLIB := js ! 68: endif ! 69: ifndef NSPRDIR ! 70: NSPRDIR := $(SRC_ROOT)$(DIRSEP)..$(DIRSEP)lib$(DIRSEP)mozilla$(DIRSEP)nspr$(DIRSEP)$(machine).$(BUILD) ! 71: endif ! 72: JS_LDFLAGS += -L$(JSLIBDIR) -l$(JSLIB) ! 73: #The following is needed for nspr support on Linux ! 74: ifeq ($(os),linux) ! 75: JS_LDFLAGS += -ldl ! 76: endif ! 77: JS_LDFLAGS += -L/usr/local/lib -L$(NSPRDIR) -lnspr4 ! 78: ! 79: CFLAGS += $(JS_CFLAGS) ! 80: LDFLAGS += $(JS_LDFLAGS) ! 81: ! 82: include sbbsdefs.mk ! 83: MT_CFLAGS += $(SBBSDEFS) ! 84: ! 85: # Set up LD_RUN_PATH for run-time locating of the .so files ! 86: PWD := $(shell pwd) ! 87: LD_RUN_PATH := .:$(PWD)/$(LIBODIR):$(PWD)/$(JSLIBDIR):$(PWD)/$(NSPRDIR) ! 88: export LD_RUN_PATH ! 89: ! 90: CON_LIBS = -lsbbs -lftpsrvr -lwebsrvr -lmailsrvr -lservices ! 91: SHLIBOPTS := -shared ! 92: ifeq ($(os),darwin) ! 93: MKSHLIB := libtool -dynamic -framework System -lcc_dynamic ! 94: MKSHPPLIB := libtool -dynamic -framework System -lcc_dynamic -lstdc++ ! 95: SHLIBOPTS := ! 96: else ! 97: ifeq ($(os),sunos) ! 98: MKSHLIB := /usr/ccs/bin/ld -G ! 99: MKSHPPLIB := /usr/ccs/bin/ld -G -L/usr/local/lib -lstdc++ ! 100: SHLIBOPTS := ! 101: else ! 102: MKSHLIB := $(CC) ! 103: MKSHPPLIB := $(CXX) ! 104: endif ! 105: endif ! 106: ! 107: CFLAGS += $(UIFC-MT_CFLAGS) $(XPDEV-MT_CFLAGS) $(SMBLIB_CFLAGS) $(CIOLIB-MT_CFLAGS) ! 108: LDFLAGS += $(UIFC-MT_LDFLAGS) $(XPDEV-MT_LDFLAGS) $(SMBLIB_LDFLAGS) $(CIOLIB-MT_LDFLAGS) ! 109: ! 110: # Monolithic Synchronet executable Build Rule ! 111: $(SBBSMONO): $(MONO_OBJS) $(OBJS) ! 112: @echo Linking $@ ! 113: $(QUIET)$(CXX) -o $@ $(LDFLAGS) $(MT_LDFLAGS) $(MONO_OBJS) $(OBJS) $(SMBLIB_LIBS) $(XPDEV-MT_LIBS) ! 114: ! 115: # Synchronet BBS library Link Rule ! 116: $(SBBS): $(OBJS) $(LIBS) ! 117: @echo Linking $@ ! 118: $(QUIET)$(MKSHPPLIB) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) $(SHLIBOPTS) ! 119: ! 120: # FTP Server Link Rule ! 121: $(FTPSRVR): $(MTOBJODIR)/ftpsrvr.o ! 122: @echo Linking $@ ! 123: $(QUIET)$(MKSHLIB) $(LDFLAGS) $(MTOBJODIR)/ftpsrvr.o $(SHLIBOPTS) -o $@ ! 124: ! 125: # Mail Server Link Rule ! 126: $(MAILSRVR): $(MAIL_OBJS) ! 127: @echo Linking $@ ! 128: $(QUIET)$(MKSHLIB) $(LDFLAGS) $(MAIL_OBJS) $(SHLIBOPTS) -o $@ ! 129: ! 130: # Mail Server Link Rule ! 131: $(WEBSRVR): $(WEB_OBJS) ! 132: @echo Linking $@ ! 133: $(QUIET)$(MKSHLIB) $(LDFLAGS) $(WEB_OBJS) $(SHLIBOPTS) -o $@ ! 134: ! 135: # Services Link Rule ! 136: $(SERVICES): $(SERVICE_OBJS) ! 137: @echo Linking $@ ! 138: $(QUIET)$(MKSHLIB) $(LDFLAGS) $(SERVICE_OBJS) $(SHLIBOPTS) -o $@ ! 139: ! 140: # Synchronet Console Build Rule ! 141: $(SBBSCON): $(CON_OBJS) $(SBBS) $(FTPSRVR) $(WEBSRVR) $(MAILSRVR) $(SERVICES) ! 142: @echo Linking $@ ! 143: $(QUIET)$(CC) $(LDFLAGS) $(MT_LDFLAGS) -o $@ $(CON_OBJS) $(CON_LIBS) $(SMBLIB_LIBS) $(XPDEV-MT_LIBS) ! 144: ! 145: # Baja Utility ! 146: $(BAJA): $(BAJA_OBJS) ! 147: @echo Linking $@ ! 148: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(BAJA_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS) ! 149: ! 150: # Node Utility ! 151: $(NODE): $(NODE_OBJS) ! 152: @echo Linking $@ ! 153: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(NODE_OBJS) $(XPDEV_LIBS) ! 154: ! 155: # FIXSMB Utility ! 156: $(FIXSMB): $(FIXSMB_OBJS) ! 157: @echo Linking $@ ! 158: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(FIXSMB_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS) ! 159: ! 160: # CHKSMB Utility ! 161: $(CHKSMB): $(CHKSMB_OBJS) ! 162: @echo Linking $@ ! 163: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(CHKSMB_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS) ! 164: ! 165: # SMB Utility ! 166: $(SMBUTIL): $(SMBUTIL_OBJS) ! 167: @echo Linking $@ ! 168: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(SMBUTIL_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS) ! 169: ! 170: # SBBSecho (FidoNet Packet Tosser) ! 171: $(SBBSECHO): $(SBBSECHO_OBJS) ! 172: @echo Linking $@ ! 173: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(SBBSECHO_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS) ! 174: ! 175: # SBBSecho Configuration Program ! 176: $(ECHOCFG): $(ECHOCFG_OBJS) ! 177: @echo Linking $@ ! 178: $(QUIET)$(CC) $(UTIL_LDFLAGS) $(MT_LDFLAGS) -o $@ $(ECHOCFG_OBJS) $(UIFC-MT_LDFLAGS) $(SMBLIB_LIBS) $(UIFC-MT_LIBS) $(CIOLIB-MT_LIBS) $(XPDEV-MT_LIBS) ! 179: ! 180: # ADDFILES ! 181: $(ADDFILES): $(ADDFILES_OBJS) ! 182: @echo Linking $@ ! 183: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(ADDFILES_OBJS) $(XPDEV_LIBS) ! 184: ! 185: # FILELIST ! 186: $(FILELIST): $(FILELIST_OBJS) ! 187: @echo Linking $@ ! 188: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(FILELIST_OBJS) $(XPDEV_LIBS) ! 189: ! 190: # MAKEUSER ! 191: $(MAKEUSER): $(MAKEUSER_OBJS) ! 192: @echo Linking $@ ! 193: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(MAKEUSER_OBJS) $(XPDEV_LIBS) ! 194: ! 195: # JSEXEC ! 196: $(JSEXEC): $(JSEXEC_OBJS) $(SBBS) ! 197: @echo Linking $@ ! 198: $(QUIET)$(CXX) $(LDFLAGS) $(MT_LDFLAGS) -o $@ $(JSEXEC_OBJS) -lsbbs $(SMBLIB_LIBS) $(XPDEV-MT_LIBS) ! 199: ! 200: # ANS2ASC ! 201: $(ANS2ASC): $(OBJODIR)/ans2asc.o ! 202: @echo Linking $@ ! 203: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(OBJODIR)/ans2asc.o ! 204: ! 205: # ASC2ANS ! 206: $(ASC2ANS): $(OBJODIR)/asc2ans.o ! 207: @echo Linking $@ ! 208: $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(OBJODIR)/asc2ans.o
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.