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