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