|
|
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.