Skip to content
Snippets Groups Projects
Commit 04f3a045 authored by rswindell's avatar rswindell
Browse files

Makefiles for SCFGX (currently tested on FreeBSD only).

parent 9de10f78
No related branches found
No related tags found
No related merge requests found
# Makefile.gnu
#########################################################################
# Makefile for Synchronet BBS #
# For use with GNU make and GNU C Compiler #
# @format.tab-size 4, @format.use-tabs true #
# #
# Linux: make -f Makefile.gnu #
# Win32: make -f Makefile.gnu os=win32 #
# FreeBSD: make -f Makefile.gnu os=freebsd #
# #
# Optional build targets: dlls, utils, mono, all (default) #
#########################################################################
# $Id$
# Macros
# DEBUG = 1 # Comment out for release (non-debug) version
CC = gcc
SLASH = /
OFILE = o
ifeq ($(os),win32) # Windows
LD = dllwrap
LIBFILE = .dll
EXEFILE = .exe
LIBODIR := gcc.win32.dll
EXEODIR := gcc.win32.exe
LIBDIR := /gcc/i386-mingw32/lib
CFLAGS := -mno-cygwin
LFLAGS := --target=i386-mingw32 -mno-cygwin
DELETE = echo y | del
OUTLIB = --output-lib
LIBS = $(LIBDIR)/libwinmm.a
else # Unix (begin)
LD = ld
LIBFILE = .a
EXEFILE =
ifeq ($(os),freebsd) # FreeBSD
LIBODIR := gcc.freebsd.lib
EXEODIR := gcc.freebsd.exe
else # Linux
LIBODIR := gcc.linux.lib
EXEODIR := gcc.linux.exe
endif
LIBDIR := /usr/lib
LFLAGS :=
DELETE = rm -f -v
OUTLIB = -o
CFLAGS := -I../../uifc -I/usr/local/include -I../
ifeq ($(os),freebsd) # FreeBSD
CFLAGS := $(CFLAGS)
LIBS := -L/usr/local/lib
else # Linux / Other UNIX
LIBS := -L/usr/local/lib
endif
endif # Unix (end)
# Math library needed
LIBS := $(LIBS) -lm
ifdef DEBUG
CFLAGS := $(CFLAGS) -g -O0 -D_DEBUG
LIBODIR := $(LIBODIR).debug
EXEODIR := $(EXEODIR).debug
else # RELEASE
LFLAGS := $(LFLAGS) -S
LIBODIR := $(LIBODIR).release
EXEODIR := $(EXEODIR).release
endif
include targets.mak # defines all targets
include objects.mak # defines $(OBJS)
include headers.mak # defines $(HEADERS)
SBBSLIB = $(LIBODIR)/sbbs.a
SBBSDEFS =
# Implicit C Compile Rule for SBBS
$(LIBODIR)/%.o : %.c
$(CC) $(CFLAGS) -c $(SBBSDEFS) $< -o $@
# Implicit C++ Compile Rule for SBBS
$(LIBODIR)/%.o : %.cpp
$(CC) $(CFLAGS) -c $(SBBSDEFS) $< -o $@
# uifc Rule
../../uifc/uifcx.$(OFILE):
$(CC) $(CFLAGS) -c $(SBBSDEFS) ../../uifc/uifcx.c -o ../../uifc/uifcx.$(OFILE)
# Create output directories
$(LIBODIR):
mkdir $(LIBODIR)
$(EXEODIR):
mkdir $(EXEODIR)
# Monolithic Synchronet executable Build Rule
$(SCFG): $(OBJS)
$(CC) -o $(SCFG) $^ $(LIBS)
#indlude depends.mak
# depends.mak
# Make 'include file' defining dependencies for Synchronet SBBS.DLL
# $Id$
# LIBODIR, EXEODIR, SLASH, and OFILE must be pre-defined
$(LIBODIR)$(SLASH)scfg.$(OFILE): $(HEADERS)
$(LIBODIR)$(SLASH)scfgxtrn.$(OFILE): $(HEADERS)
$(LIBODIR)$(SLASH)scfgmsg.$(OFILE): $(HEADERS)
$(LIBODIR)$(SLASH)scfgnet.$(OFILE): $(HEADERS)
$(LIBODIR)$(SLASH)scfgnode.$(OFILE): $(HEADERS)
$(LIBODIR)$(SLASH)scfgsub.$(OFILE): $(HEADERS)
$(LIBODIR)$(SLASH)scfgsys.$(OFILE): $(HEADERS)
$(LIBODIR)$(SLASH)scfgxfr1.$(OFILE): $(HEADERS)
$(LIBODIR)$(SLASH)scfgxfr2.$(OFILE): $(HEADERS)
$(LIBODIR)$(SLASH)scfgchat.$(OFILE): $(HEADERS)
$(LIBODIR)$(SLASH)scfgx.$(OFILE): $(HEADERS) $(OBJS)
# headers.mak
# Make 'include file' for building Synchronet DLLs
# Used with GNU and Borland compilers
# $Id$
HEADERS = scfgx.h ars_defs.h sbbs.h sbbswrap.h scfgdefs.h smbdefs.h userdat.h\
gen_defs.h sbbsdefs.h scfglib.h smblib.h
# objects.mak
# Make 'include file' listing object files for SBBS.DLL
# $Id$
# LIBODIR, SLASH, and OFILE must be pre-defined
OBJS = $(LIBODIR)$(SLASH)scfg.$(OFILE)\
$(LIBODIR)$(SLASH)scfgxtrn.$(OFILE)\
$(LIBODIR)$(SLASH)scfgmsg.$(OFILE)\
$(LIBODIR)$(SLASH)scfgnet.$(OFILE)\
$(LIBODIR)$(SLASH)scfgnode.$(OFILE)\
$(LIBODIR)$(SLASH)scfgsub.$(OFILE)\
$(LIBODIR)$(SLASH)scfgsys.$(OFILE)\
$(LIBODIR)$(SLASH)scfgxfr1.$(OFILE)\
$(LIBODIR)$(SLASH)scfgxfr2.$(OFILE)\
$(LIBODIR)$(SLASH)scfgchat.$(OFILE)\
../../uifc/uifcx.$(OFILE)\
..$(SLASH)$(LIBODIR)$(SLASH)scfgsave.$(OFILE)\
..$(SLASH)$(LIBODIR)$(SLASH)scfglib1.$(OFILE)\
..$(SLASH)$(LIBODIR)$(SLASH)smblib.$(OFILE)\
..$(SLASH)$(LIBODIR)$(SLASH)scfglib2.$(OFILE)\
..$(SLASH)$(LIBODIR)$(SLASH)smbwrap.$(OFILE)\
..$(SLASH)$(LIBODIR)$(SLASH)ars.$(OFILE)\
..$(SLASH)$(LIBODIR)$(SLASH)load_cfg.$(OFILE)\
..$(SLASH)$(LIBODIR)$(SLASH)misc.$(OFILE)\
..$(SLASH)$(LIBODIR)$(SLASH)crc32.$(OFILE)\
..$(SLASH)$(LIBODIR)$(SLASH)userdat.$(OFILE)\
..$(SLASH)$(LIBODIR)$(SLASH)date_str.$(OFILE)
# targets.mak
# Make 'include file' defining targets for Synchronet project
# $Id$
# LIBODIR, EXEODIR, SLASH, LIBFILE, EXEFILE, and DELETE must be pre-defined
SCFG = $(EXEODIR)$(SLASH)scfgx$(EXEFILE)
SCFGOBJ = $(OBJODIR)$(SLASH)scfgx$(OBJFILE)
all: $(LIBODIR) $(EXEODIR) \
$(OBJS)\
$(SCFG)
clean:
$(DELETE) $(LIBODIR)/*
$(DELETE) $(EXEODIR)/*
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment