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

Created new Make 'include file', targets.mak which lists all targets for all...

Created new Make 'include file', targets.mak which lists all targets for all and adds new 'clean' rule.
Makefile.gnu now builds utilities (fixsmb, chksmb, smbutil, and baja).
parent 50715dd3
Branches
Tags
No related merge requests found
......@@ -16,10 +16,13 @@ CC = bcc32
LD = ilink32
SLASH = \\
OFILE = obj
LIBFILE = .dll
EXEFILE = .exe
LIBODIR = bcc.win32.dll # Library output directory
EXEODIR = bcc.win32.exe # Executable output directory
CFLAGS = -M
LFLAGS = -m -s -c -Tpd -Gi -I$(LIBODIR)
DELETE = echo y | del
# Optional compile flags (disable banner, warnings and such)
CFLAGS = $(CFLAGS) -q -d -H -X- -w-csu -w-pch
......@@ -35,22 +38,13 @@ LIBODIR = $(LIBODIR).release
EXEODIR = $(EXEODIR).release
!endif
SBBS = $(LIBODIR)\sbbs.dll
FTPSRVR = $(LIBODIR)\ftpsrvr.dll
MAILSRVR= $(LIBODIR)\mailsrvr.dll
BAJA = $(EXEODIR)\baja.exe
FIXSMB = $(EXEODIR)\fixsmb.exe
CHKSMB = $(EXEODIR)\chksmb.exe
SMBUTIL = $(EXEODIR)\smbutil.exe
ALL: $(LIBODIR) $(EXEODIR) \
$(SBBS) $(FTPSRVR) $(MAILSRVR) \
$(FIXSMB) $(CHKSMB) $(SMBUTIL) $(BAJA)
!include targets.mak # defines all targets
!include objects.mak # defines $(OBJS)
!include headers.mak # defines $(HEADERS)
!include sbbsdefs.mak # defines $(SBBSDEFS)
SBBSLIB = $(LIBODIR)\sbbs.lib
# Implicit C Compile Rule for SBBS.DLL
{.}.c.$(OFILE):
@echo Compiling (I) $< to $@ ...
......@@ -68,20 +62,20 @@ $(EXEODIR):
mkdir $(EXEODIR)
# SBBS DLL Link Rule
$(SBBS): $(OBJS) $(LIBODIR)\ver.$(OFILE)
$(SBBS) $(SBBSLIB): $(OBJS) $(LIBODIR)\ver.$(OFILE)
@echo Linking $< ...
$(LD) $(LFLAGS) c0d32.obj $(OBJS) $(LIBODIR)\ver.$(OFILE), $*, $*, \
import32.lib cw32mt.lib ws2_32.lib
# Mail Server DLL Link Rule
$(MAILSRVR): mailsrvr.c mxlookup.c
$(MAILSRVR): mailsrvr.c mxlookup.c $(SBBSLIB)
@echo Compiling $** ...
$(CC) $(CFLAGS) -WD -WM -lGi -n$(LIBODIR) -DMAILSRVR_EXPORTS $** $(LIBODIR)\sbbs.lib
$(CC) $(CFLAGS) -WD -WM -lGi -n$(LIBODIR) -DMAILSRVR_EXPORTS -DSMBDLL $**
# FTP Server DLL Link Rule
$(FTPSRVR): ftpsrvr.c
$(FTPSRVR): ftpsrvr.c $(SBBSLIB)
@echo Compiling $** ...
$(CC) $(CFLAGS) -WD -WM -lGi -n$(LIBODIR) -DFTPSRVR_EXPORTS $** $(LIBODIR)\sbbs.lib
$(CC) $(CFLAGS) -WD -WM -lGi -n$(LIBODIR) -DFTPSRVR_EXPORTS $**
# Baja Utility
$(BAJA): baja.c ars.c
......
......@@ -20,22 +20,26 @@ OFILE = o
ifeq ($(os),win32) # Windows
LD = dllwrap
LFILE = dll
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
else # Linux
LD = ld
LFILE = a
LIBFILE = .a
EXEFILE =
LIBODIR := gcc.linux.lib
EXEODIR := gcc.linux.exe
LIBDIR := /usr/lib
CFLAGS :=
LFLAGS :=
DELETE = rm -f -v
endif
......@@ -49,19 +53,12 @@ LIBODIR := $(LIBODIR).release
EXEODIR := $(EXEODIR).release
endif
SBBS = $(LIBODIR)/sbbs.$(LFILE)
FTPSRVR = $(LIBODIR)/ftpsrvr.$(LFILE)
MAILSRVR= $(LIBODIR)/mailsrvr.$(LFILE)
SBBSLIB = $(LIBODIR)/sbbs.a
ALL: $(LIBODIR) $(SBBS) $(FTPSRVR) $(MAILSRVR)
include targets.mak # defines all targets
include objects.mak # defines $(OBJS)
include headers.mak # defines $(HEADERS)
include sbbsdefs.mak # defines $(SBBSDEFS)
SBBSLIB = $(LIBODIR)/sbbs.a
LIBS = $(LIBDIR)/libwsock32.a $(LIBDIR)/libwinmm.a
......@@ -73,13 +70,17 @@ $(LIBODIR)/%.o : %.c
$(LIBODIR)/%.o : %.cpp
$(CC) $(CFLAGS) -c $(SBBSDEFS) $< -o $@
# Create output directory
# Create output directories
$(LIBODIR):
mkdir $(LIBODIR)
$(EXEODIR):
mkdir $(EXEODIR)
# SBBS Link Rule
$(SBBS): $(OBJS) $(LIBODIR)/ver.o
$(LD) $(LFLAGS) -o $@ $^ $(LIBS) --output-lib $(SBBSLIB)
$(SBBS) $(SBBSLIB): $(OBJS) $(LIBODIR)/ver.o
$(LD) $(LFLAGS) -o $(SBBS) $^ $(LIBS) --output-lib $(SBBSLIB)
# FTP Server Link Rule
$(FTPSRVR): $(LIBODIR)/ftpsrvr.o $(SBBSLIB)
......@@ -99,4 +100,21 @@ $(LIBODIR)/mailsrvr.o: mailsrvr.c mailsrvr.h
$(LIBODIR)/mxlookup.o: mxlookup.c
$(CC) $(CFLAGS) -c -DMAILSRVR_EXPORTS $< -o $@
# Baja Utility
$(BAJA): baja.c ars.c
$(CC) $(CFLAGS) -o $@ $^
# FIXSMB Utility
$(FIXSMB): fixsmb.c smblib.c smbwrap.c
$(CC) $(CFLAGS) -o $@ $^
# CHKSMB Utility
$(CHKSMB): chksmb.c smblib.c smbwrap.c
$(CC) $(CFLAGS) -o $@ $^
# SMB Utility
$(SMBUTIL): smbutil.c smblib.c smbwrap.c smbtxt.c lzh.c
$(CC) $(CFLAGS) -o $@ $^
include depends.mak
\ No newline at end of file
# targets.mak
# Make 'include file' defining targets for Synchronet project
# $Id$
# LIBODIR, EXEODIR, SLASH, LIBFILE, EXEFILE, and DELETE must be pre-defined
SBBS = $(LIBODIR)$(SLASH)sbbs$(LIBFILE)
FTPSRVR = $(LIBODIR)$(SLASH)ftpsrvr$(LIBFILE)
MAILSRVR= $(LIBODIR)$(SLASH)mailsrvr$(LIBFILE)
BAJA = $(EXEODIR)$(SLASH)baja$(EXEFILE)
FIXSMB = $(EXEODIR)$(SLASH)fixsmb$(EXEFILE)
CHKSMB = $(EXEODIR)$(SLASH)chksmb$(EXEFILE)
SMBUTIL = $(EXEODIR)$(SLASH)smbutil$(EXEFILE)
all: $(LIBODIR) $(EXEODIR) \
$(SBBS) $(FTPSRVR) $(MAILSRVR) \
$(FIXSMB) $(CHKSMB) $(SMBUTIL) $(BAJA)
clean:
$(DELETE) $(LIBODIR)
$(DELETE) $(EXEODIR)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment