##############################################
# Makefile for Synchronet BBS Config Program #
# For use with Borland C++ for DOS or OS/2   #
##############################################

# Macros
CC	= bcc
LD	= tlink
!ifdef __OS2__
OS	= OS2
INCLUDE = c:\bc\include;..;..\..\uifc
LIB     = c:\bc\lib
CFLAGS  = -d -C -I$(INCLUDE)
LFLAGS  = -c
!else
OS      = DOS
INCLUDE = n:\bc\include;..;..\..\uifc
LIB	= n:\bc\lib
MODEL	= l
CFLAGS	= -d -C -Y -m$(MODEL) -I$(INCLUDE) -DSCFG
LFLAGS	= -n -c
!endif
MAIN	= $(OS)\scfg.exe
OBJS	= $(OS)\uifc.obj ..\..\lciol\lciol$(MODEL).obj $(OS)\mswait.obj\
	  $(OS)\scfgvars.obj
OVLOBJS = $(OS)\scfg.obj $(OS)\scfgnode.obj $(OS)\scfgxfer.obj\
	$(OS)\scfgnet.obj $(OS)\scfgxtrn.obj $(OS)\scfgsys.obj\
	$(OS)\scfgmsg.obj $(OS)\scfglib.obj $(OS)\scfgmisc.obj
HEADERS = scfg.h ..\..\uifc\uifc.h ..\defs.h

# Implicit C Compile Rule
{.}.c.obj:
	@echo Compiling (I) $< to $@ ...
        $(CC) $(CFLAGS) -n$(OS) -c $<

# Main EXE Link Rule
$(MAIN): $(OBJS) $(OVLOBJS)
    	@echo Linking $< ...
!ifdef __OS2__
	$(LD) $(LFLAGS) @&&+
$(LIB)\c02.obj $(OBJS) $(OVLOBJS)
+ $*, $*, $(LIB)\os2.lib $(LIB)\c2.lib
!else
	$(LD) $(LFLAGS) @&&+
$(LIB)\c0$(MODEL).obj $(OBJS) /o $(OVLOBJS)
+ $*, $*, $(LIB)\overlay.lib $(LIB)\c$(MODEL).lib $(LIB)\math$(MODEL).lib\
	$(LIB)\emu.lib
!endif

# Global Variables
$(OS)\scfgvars.obj: ..\scfgvars.c ..\defs.h
	@echo Compiling ..\$&.c to $< ...
	$(CC) $(CFLAGS) -c -n$(OS) ..\$&.c

# Shared Functions
$(OS)\scfglib.obj: ..\sbbs.h ..\defs.h ..\scfglib.c ..\scfgvars.c
	@echo Compiling ..\$&.c to $< ...
	$(CC) $(CFLAGS) -c -n$(OS) ..\$&.c

# Local Menu Routines
$(OS)\uifc.obj: ..\..\uifc\uifc.c ..\..\uifc\uifc.h
	@echo Compiling ..\..\uifc\$&.c to $< ...
	$(CC) $(CFLAGS) -c -n$(OS) ..\..\uifc\$&.c

$(OS)\scfg.obj:       $(HEADERS)
$(OS)\scfgnode.obj:   $(HEADERS)
$(OS)\scfgmisc.obj:   $(HEADERS)
$(OS)\scfgmsg.obj:    $(HEADERS)
$(OS)\scfgnet.obj:    $(HEADERS)
$(OS)\scfgsys.obj:    $(HEADERS)
$(OS)\scfgxtrn.obj:   $(HEADERS)
$(OS)\scfgxfer.obj:   $(HEADERS)
