|
|
1.1 root 1: # Makefile.gnu
2:
3: #########################################################################
4: # Makefile for Synchronet BBS #
5: # For use with GNU make and GNU C Compiler #
6: # @format.tab-size 4, @format.use-tabs true #
7: # #
8: # Linux: make -f Makefile.gnu #
9: # Win32: make -f Makefile.gnu os=win32 #
10: # #
11: # Optional build targets: dlls, utils, mono, all (default) #
12: #########################################################################
13:
14: # $Id: Makefile.gnu,v 1.22 2000/11/14 00:16:15 rswindell Exp $
15:
16: # Macros
17: DEBUG = 1 # Comment out for release (non-debug) version
18: CC = gcc
19: SLASH = /
20: OFILE = o
21:
22: ifeq ($(os),win32) # Windows
23:
24: LD = dllwrap
25: LIBFILE = .dll
26: EXEFILE = .exe
27: LIBODIR := gcc.win32.dll
28: EXEODIR := gcc.win32.exe
29: LIBDIR := /gcc/i386-mingw32/lib
30: CFLAGS := -mno-cygwin
31: LFLAGS := --target=i386-mingw32 -mno-cygwin
32: DELETE = echo y | del
33: OUTLIB = --output-lib
34: LIBS = $(LIBDIR)/libwsock32.a $(LIBDIR)/libwinmm.a
35:
36: else # Linux
37:
38: LD = ld
39: LIBFILE = .a
40: EXEFILE =
41: LIBODIR := gcc.linux.lib
42: EXEODIR := gcc.linux.exe
43: LIBDIR := /usr/lib
44: CFLAGS :=
45: LFLAGS :=
46: DELETE = rm -f -v
47: OUTLIB = -o
48: LIBS = $(LIBDIR)/libpthread.a
49:
50: endif
51:
52: ifdef DEBUG
53: CFLAGS := $(CFLAGS) -g -O0 -D_DEBUG
54: LIBODIR := $(LIBODIR).debug
55: EXEODIR := $(EXEODIR).debug
56: else
57: LFLAGS := $(LFLAGS) -S
58: LIBODIR := $(LIBODIR).release
59: EXEODIR := $(EXEODIR).release
60: endif
61:
62: include targets.mak # defines all targets
63: include objects.mak # defines $(OBJS)
64: include headers.mak # defines $(HEADERS)
65: include sbbsdefs.mak # defines $(SBBSDEFS)
66:
67: SBBSLIB = $(LIBODIR)/sbbs.a
68:
69:
70: # Implicit C Compile Rule for SBBS
71: $(LIBODIR)/%.o : %.c
72: $(CC) $(CFLAGS) -c $(SBBSDEFS) $< -o $@
73:
74: # Implicit C++ Compile Rule for SBBS
75: $(LIBODIR)/%.o : %.cpp
76: $(CC) $(CFLAGS) -c $(SBBSDEFS) $< -o $@
77:
78: # Create output directories
79: $(LIBODIR):
80: mkdir $(LIBODIR)
81:
82: $(EXEODIR):
83: mkdir $(EXEODIR)
84:
85: # Monolithic Synchronet executable Build Rule
86: $(SBBSMONO): sbbscon.c conwrap.c $(OBJS) $(LIBODIR)/ver.o $(LIBODIR)/ftpsrvr.o $(LIBODIR)/mailsrvr.o $(LIBODIR)/mxlookup.o
87: $(CC) -o $(SBBSMONO) $^ $(LIBS)
88:
89: # Synchronet BBS library Link Rule
90: $(SBBS): $(OBJS) $(LIBODIR)/ver.o
91: $(LD) $(LFLAGS) -o $(SBBS) $^ $(LIBS) $(OUTLIB) $(SBBSLIB)
92:
93: # FTP Server Link Rule
94: $(FTPSRVR): $(LIBODIR)/ftpsrvr.o $(SBBSLIB)
95: $(LD) $(LFLAGS) -o $@ $^ $(LIBS) $(OUTLIB) $(LIBODIR)/ftpsrvr.a
96:
97: # Mail Server Link Rule
98: $(MAILSRVR): $(LIBODIR)/mailsrvr.o $(LIBODIR)/mxlookup.o $(SBBSLIB)
99: $(LD) $(LFLAGS) -o $@ $^ $(LIBS) $(OUTLIB) $(LIBODIR)/mailsrvr.a
100:
101: # Synchronet Console Build Rule
102: $(SBBSCON): sbbscon.c $(SBBSLIB)
103: $(CC) $(CFLAGS) -o $@ $^
104:
105: # Specifc Compile Rules
106: $(LIBODIR)/ftpsrvr.o: ftpsrvr.c ftpsrvr.h
107: $(CC) $(CFLAGS) -c -DFTPSRVR_EXPORTS $< -o $@
108:
109: $(LIBODIR)/mailsrvr.o: mailsrvr.c mailsrvr.h
110: $(CC) $(CFLAGS) -c -DMAILSRVR_EXPORTS $< -o $@
111:
112: $(LIBODIR)/mxlookup.o: mxlookup.c
113: $(CC) $(CFLAGS) -c -DMAILSRVR_EXPORTS $< -o $@
114:
115: # Baja Utility
116: $(BAJA): baja.c ars.c smbwrap.c crc32.c
117: $(CC) $(CFLAGS) -o $@ $^
118:
119: # Node Utility
120: $(NODE): node.c smbwrap.c
121: $(CC) $(CFLAGS) -o $@ $^
122:
123: # FIXSMB Utility
124: $(FIXSMB): fixsmb.c smblib.c smbwrap.c
125: $(CC) $(CFLAGS) -o $@ $^
126:
127: # CHKSMB Utility
128: $(CHKSMB): chksmb.c smblib.c smbwrap.c conwrap.c
129: $(CC) $(CFLAGS) -o $@ $^
130:
131: # SMB Utility
132: $(SMBUTIL): smbutil.c smblib.c smbwrap.c conwrap.c smbtxt.c crc32.c lzh.c
133: $(CC) $(CFLAGS) -o $@ $^
134:
135:
136: include depends.mak
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.