# $Header: c:/curses/RCS/makefile.%v 2.0 1992/11/16 22:40:49 MH Rel $
#================ PDCurses makefile for DMAKE 3.8 ======================
# This makefile is for DMAKE, either under DOS or OS/2
# The fowwoing OS/Compiler combinations are supported:
#
# Target       Compiler    Command                Compiler
# Operating    Mnemoic     Line
# System                   
#-----------------------------------------------------------------------
# DOS            BCC       OS=DOS COMP=BCC        Borland C++
# DOS            TCC       OS=DOS COMP=TCC        Borland Turbo C++
# DOS            TC        OS=DOS COMP=TC         Borland Turbo C
# DOS            MSC       OS=DOS COMP=MSC        Microsoft C
# DOS            QC        OS=DOS COMP=QC         Microsoft Quick C
# OS2            MSC       OS=OS2 COMP=MSC        Microsoft C
# OS2            CSET2     OS=OS2 COMP=CSET2      IBM C Set/2
# OS2            EMX       OS=OS2 COMP=EMX        emx/gcc
# OS2            TSC       OS=OS2 COMP=TSC        TopSpeed C
# OS2            WATCOMC   OS=OS2 COMP=WATCOMC    Watcom C
#-----------------------------------------------------------------------
# Special case for Microsoft Compiler when the host OS is DOS and the
# target OS is OS2:
# Command line will be OS=DOS COMP=MSC TOS=OS2
#-----------------------------------------------------------------------
MODEL = L
model = l
#-----------------------------------------------------------------------
# default setup for BCC under DOS, optimised version
# change values below or override with -e switch on command line
#-----------------------------------------------------------------------
OS=DOS
COMP=BCC
OPT=Y
#-----------------------------------------------------------------------
.IF $(TOS) == $(NULL)
    TOS = $(OS)
.END
.IF $(OS) == OS2
#========================================================================
#========================= OS2 - CSET2 ==================================
#========================================================================
    .IF $(COMP) == CSET2
        LINK      = link386
        CC        = icc
        LIB_EXE   = lib
        LIB_DIR   = g:\ibmc\lib
        SETARGV   = $(LIB_DIR)\setargv
        .IF $(OPT) == N
            CDEBUG = -Q+ -O- -Ti -I$(CC_INC)
            LDEBUG = /NOE /SE:160 /PMTYPE:VIO
            DBG    =d
        .ELSE
            CDEBUG  = -Q+ -O+ -DNDEBUG -I$(CC_INC)
            LDEBUG  = /NOE /SE:160 /PMTYPE:VIO
            DBG     =o
        .END
        OBJ      = obj
        OBJ_DIR  = o$(DBG)
        PDCLIB   = curses$(DBG).lib
        LIBRSP   =,lib.map;
        CFLAGS   = $(CDEBUG) -Fo$@ -c -I$(CC_INC)
        MAKE_LIB = $(LIB_EXE) $(PDCLIB) $(LIBFLAGS) @$(LRF)
        DLFLAGS  = $(LDEBUG) $*.obj,,,$(PDCLIB);
        UTLFLAGS = $(LDEBUG) $*.obj;
        MANFLAGS = $(LDEBUG) $*.obj+$(SETARGV);
#========================================================================
#========================= OS2 - MSC ====================================
#========================================================================
    .ELIF $(COMP) == MSC
        LINK      = link
        CC        = cl
        LIB_EXE   = lib
        LIB_DIR   = $(LIB)
        SETARGV   = $(LIB_DIR)\setargv
        DEFINES   = -D__OS2__
        .IF $(OPT) == N
            CDEBUG =-nologo -Od -Zi -A$(MODEL)
            LDEBUG =/CO /NOE /SE:160 /PMTYPE:VIO
            DBG    =d
        .ELSE
            CDEBUG  =-nologo -Ox -A$(MODEL) -DNDEBUG
            LDEBUG  = /NOE /SE:160 /PMTYPE:VIO
            DBG     =o
        .END
        OBJ      = obj
        OBJ_DIR  = o$(DBG)$(MODEL)
        PDCLIB   = $(MODEL)curses$(DBG).lib
        LIBRSP   =,lib.map;
        CFLAGS   = $(CDEBUG) $(DEFINES) -Fo$@ -c -I$(CC_INC)
        MAKE_LIB = $(LIB_EXE) $(PDCLIB) $(LIBFLAGS) @$(LRF)
        DLFLAGS  = $(LDEBUG) $*.obj,,,$(PDCLIB);
        UTLFLAGS  = $(LDEBUG) $*.obj;
        MANFLAGS = $(LDEBUG) $*.obj+$(SETARGV);
#========================================================================
#========================= OS2 - EMX ====================================
#========================================================================
    .ELIF $(COMP) == EMX
        LINK      = $(CC)
        CC        = gcc
        LIB_EXE   = ar
        LIB_DIR   = g:\emx\lib
        LIBFLAGS  = rcv
        DEFINES   = -D__OS2__ -D__EMX__
        .IF $(OPT) == N
            CDEBUG =-g
            LDEBUG = -Zomf 
            DBG    =d
        .ELSE
            CDEBUG  =-O -DNDEBUG
            LDEBUG = -Zomf 
            DBG     =o
        .END
        OBJ      = o
        OBJ_DIR  = o$(DBG)
        PDCLIB   = curses$(DBG).lib
        LIBRSP   =,lib.map;
        CFLAGS   = $(CDEBUG) $(DEFINES) -o$(@:db).o -c -I$(CC_INC)
        MAKE_LIB = $(LIB_EXE) $(LIBFLAGS) curses.a $(OBJ_DIR)/*.o
        EMX_OMF_LIB=emxomf -l -o $(PDCLIB) curses.a
        EMX_OMF_OBJ=emxomf -d -o $*.obj $*.o
        DLFLAGS  = $(LDEBUG) -L$(LIB_DIR) -lc -los2 $*.obj $(PDCLIB) $(LIB_DIR)\vio32.lib -o $* $(DEMO_DIR)\$*.def
        UTLFLAGS = $(LDEBUG) -L$(LIB_DIR) -lc -los2 $*.obj -o $* $(TOOLS_DIR)\$*.def
        MANFLAGS = $(LDEBUG) -Lg:\emx\lib -lc -los2 $*.obj -o $* $(TOOLS_DIR)\$*.def
#========================================================================
#========================= OS2 - TSC ====================================
#========================================================================
# If you can fill in the following, please let me know !
#========================================================================
    .ELIF $(COMP) == TSC
        OBJ      = obj
#========================================================================
#========================= OS2 - WATCOMC ================================
#========================================================================
# If you can fill in the following, please let me know !
#========================================================================
    .ELIF $(COMP) == WATCOMC
        CC       = cc
        OBJ      = obj
    .END
.ELSE
#========================================================================
#========================= DOS - BCC ====================================
#========================================================================
    .IF $(COMP) == BCC
        LINK      = tlink
        CC        = bcc
        LIB_EXE   = tlib
        LIB_DIR   = f:\c\lib
        WILDARGS  = $(LIB_DIR)\wildargs.obj
        LIB_FLAGS = /C /E
        CFG       = +$(ROOTDIR)\PDCURSES.CFG
        DEFINES   = 
        .IF $(OPT) == N
            CDEBUG	=-N -v -y
            LDEBUG	=-c -v -s -l -e
            DBG    =d
        .ELSE
            CDEBUG	= -O -DNDEBUG
            LDEBUG	=
            DBG     =o
        .END
        OBJ      = obj
        OBJ_DIR  = o$(DBG)$(model)
        PDCLIB   = $(model)curses$(DBG).lib
        LIBRSP   =,lib.map
        CFLAGS   = $(CFG) $(CDEBUG) $(DEFINES) -m$(model) -I$(CC_INC) -If:\c\include -o$@
        MAKE_LIB = $(LIB_EXE) $(PDCLIB) $(LIBFLAGS) @$(LRF)
        DLFLAGS  = $(LDEBUG) $(LIB_DIR)\c0$(model).obj+$*.obj,$*,,$(PDCLIB)+$(LIB_DIR)\c$(model).lib;
        UTLFLAGS = $(LDEBUG) $(LIB_DIR)\c0$(model).obj+$*.obj,$*,,$(LIB_DIR)\c$(model).lib;
        MANFLAGS = $(LDEBUG) $(LIB_DIR)\c0$(model).obj+$*.obj+$(WILDARGS),$*,,$(LIB_DIR)\c$(model).lib;
#========================================================================
#========================= DOS - TCC ====================================
#========================================================================
    .ELIF $(COMP) == TCC
        LINK      = tlink
        CC        = tcc
        LIB_EXE   = tlib
        LIB_DIR   = f:\c\lib
        WILDARGS  = $(LIB_DIR)\wildargs.obj
        LIB_FLAGS = /C /E
        CFG       = +$(ROOTDIR)\PDCURSES.CFG
        DEFINES   = 
        .IF $(OPT) == N
            CDEBUG	=-N -v -y
            LDEBUG	=-c -v -s -l -e
            DBG    =d
        .ELSE
            CDEBUG	= -O -DNDEBUG
            LDEBUG	=
            DBG     =o
        .END
        OBJ      = obj
        OBJ_DIR  = o$(DBG)$(model)
        PDCLIB   = $(model)curses$(DBG).lib
        LIBRSP   =,lib.map
        CFLAGS   = $(CFG) $(CDEBUG) $(DEFINES) -m$(model) -I$(CC_INC) -If:\c\include -o$@
        MAKE_LIB = $(LIB_EXE) $(PDCLIB) $(LIBFLAGS) @$(LRF)
        DLFLAGS  = $(LDEBUG) $(LIB_DIR)\c0$(model).obj+$*.obj,$*,,$(PDCLIB)+$(LIB_DIR)\c$(model).lib;
        UTLFLAGS = $(LDEBUG) $(LIB_DIR)\c0$(model).obj+$*.obj,$*,,$(LIB_DIR)\c$(model).lib;
        MANFLAGS = $(LDEBUG) $(LIB_DIR)\c0$(model).obj+$*.obj+$(WILDARGS),$*,,$(LIB_DIR)\c$(model).lib;
#========================================================================
#========================= DOS - MSC ====================================
#========================================================================
    .ELIF $(COMP) == MSC
        LINK      = link
        CC        = cl
        LIB_EXE   = lib
        SETARGV   = $(LIB)\setargv
        .IF $(TOS) == OS2
            OS2LD     = /PMTYPE:VIO
            DEFINES   = -D__OS2__
            OS2LIB    = $(LIB)\os2.lib
            PLUS      =+
            RUNBIND   = bind $*
        .END
        .IF $(OPT) == N
            CDEBUG =-nologo -Od -Zi -A$(MODEL)
            LDEBUG =/CO /NOE /SE:160 $(OS2LD)
            DBG    =d
        .ELSE
            CDEBUG  =-nologo -Ox -A$(MODEL) -DNDEBUG
            LDEBUG  = /NOE /SE:160 $(OS2LD)
            DBG     =o
        .END
        OBJ      = obj
        OBJ_DIR  = o$(DBG)$(MODEL)
        PDCLIB   = $(MODEL)curses$(DBG).lib
        LIBRSP   =,lib.map;
        CFLAGS   = $(CDEBUG) $(DEFINES) -Fo$@ -c -I$(CC_INC)
        MAKE_LIB = $(LIB_EXE) $(PDCLIB) $(LIBFLAGS) @$(LRF)
        DLFLAGS  = $(LDEBUG) $*.obj,,,$(PDCLIB)$(PLUS)$(OS2LIB);
        UTLFLAGS = $(LDEBUG) $*.obj,,,$(OS2LIB);
        MANFLAGS = $(LDEBUG) $*.obj+$(SETARGV),,,$(OS2LIB);
#========================================================================
#========================= DOS - QC =====================================
#========================================================================
    .ELIF $(COMP) == QC
        LINK      = link
        CC        = qcc
        LIB_EXE   = lib
        SETARGV   = $(LIB)\setargv
        .IF $(OPT) == N
            CDEBUG =-Od -Zi -A$(MODEL)
            LDEBUG =/CO /NOE /SE:160 
            DBG    =d
        .ELSE
            CDEBUG  =-Ox -A$(MODEL) -DNDEBUG
            LDEBUG  = /NOE /SE:160 
            DBG     =o
        .END
        OBJ      = obj
        OBJ_DIR  = $(DBG)$(MODEL)
        PDCLIB   = $(MODEL)curses$(DBG).lib
        LIBRSP   =,lib.map;
        CFLAGS   = $(CDEBUG) $(DEFINES) -Fo$@ -c -I$(CC_INC)
        MAKE_LIB = $(LIB_EXE) $(PDCLIB) $(LIBFLAGS) @$(LRF)
        DLFLAGS  = $(LDEBUG) $*.obj,,,$(PDCLIB);
        UTLFLAGS = $(LDEBUG) $*.obj;
        MANFLAGS = $(LDEBUG) $*.obj+$(SETARGV);
    .END
.END
#-----------------------------------------------------------------------
ROOTDIR   = c:\curses
CC_INC    = c:/curses
PORT_DIR  = $(ROOTDIR)\portable
NONP_DIR  = $(ROOTDIR)\nonport
PRIV_DIR  = $(ROOTDIR)\private
FLEX_DIR  = $(ROOTDIR)\flexos
TOOLS_DIR = $(ROOTDIR)\tools
DEMO_DIR  = $(ROOTDIR)\demos
DOC_DIR   = $(ROOTDIR)\doc
LRF       = PDCurses.lrf
#######################################################################
#<<<<<< Nothing below here should need to be changed >>>>>>>>>>>>>>>>>>
#######################################################################
#
#   Header Files
#
HEADERS = $(CC_INC)\curses.h $(CC_INC)\curspriv.h $(CC_INC)\cursos2.h

#######################################################################
########################## First (default) target #####################
#######################################################################
all:    $(PDCLIB) demos manual
#######################################################################
############################ Demo Programs Targets ####################
#######################################################################
demos:  $(PDCLIB) xmas.exe newdemo.exe testcurs.exe firework.exe

newdemo.exe:    $(PDCLIB) newdemo.obj
	        $(LINK) $(DLFLAGS)

xmas.exe:       $(PDCLIC) xmas.obj
	        $(LINK) $(DLFLAGS)

testcurs.exe:   $(PDCLIB) testcurs.obj
	        $(LINK) $(DLFLAGS)

firework.exe:   $(PDCLIB) firework.obj
	        $(LINK) $(DLFLAGS)


newdemo.obj:   $(HEADERS) $(DEMO_DIR)\newdemo.c
	        $(CC) $(CFLAGS) $(DEMO_DIR)\newdemo.c
	        $(EMX_OMF_OBJ)

xmas.obj:      $(HEADERS)  $(DEMO_DIR)\xmas.c
	        $(CC) $(CFLAGS) $(DEMO_DIR)\xmas.c
	        $(EMX_OMF_OBJ)

testcurs.obj:  $(HEADERS)  $(DEMO_DIR)\testcurs.c
	        $(CC) $(CFLAGS) $(DEMO_DIR)\testcurs.c
	        $(EMX_OMF_OBJ)

firework.obj:  $(HEADERS)  $(DEMO_DIR)\firework.c
	        $(CC) $(CFLAGS) $(DEMO_DIR)\firework.c
	        $(EMX_OMF_OBJ)

#######################################################################
######################### Utility Program  Targets ####################
#######################################################################

buildlrf.exe:   buildlrf.obj
	        $(LINK) $(UTLFLAGS)
	        $(RUNBIND)

buildlrf.obj: $(TOOLS_DIR)\buildlrf.c
	        $(CC) $(CFLAGS) $(TOOLS_DIR)\buildlrf.c
	        $(EMX_OMF_OBJ)

manext.exe:   manext.obj
	        $(LINK) $(MANFLAGS)
	        $(RUNBIND)

manext.obj: $(TOOLS_DIR)\manext.c
	        $(CC) $(CFLAGS) $(TOOLS_DIR)\manext.c
	        $(EMX_OMF_OBJ)

#######################################################################
######################### Library Program  Targets ####################
#######################################################################
#
#       Portable Curses Functions
#
PORT1 = $(OBJ_DIR)\baudrate.$(OBJ) $(OBJ_DIR)\beep.$(OBJ)     $(OBJ_DIR)\box.$(OBJ)      \
        $(OBJ_DIR)\canchang.$(OBJ) $(OBJ_DIR)\cbreak.$(OBJ)   $(OBJ_DIR)\clearok.$(OBJ)  \
        $(OBJ_DIR)\colorcon.$(OBJ) $(OBJ_DIR)\def_prog.$(OBJ) $(OBJ_DIR)\def_shel.$(OBJ) \
        $(OBJ_DIR)\delay_ou.$(OBJ) $(OBJ_DIR)\delwin.$(OBJ)   $(OBJ_DIR)\doupdate.$(OBJ) \
        $(OBJ_DIR)\echo.$(OBJ)     $(OBJ_DIR)\endwin.$(OBJ)   $(OBJ_DIR)\erasecha.$(OBJ) \
        $(OBJ_DIR)\fixterm.$(OBJ)  $(OBJ_DIR)\flash.$(OBJ)    $(OBJ_DIR)\flushinp.$(OBJ)

PORT2 = $(OBJ_DIR)\gettmode.$(OBJ) $(OBJ_DIR)\getyx.$(OBJ)    $(OBJ_DIR)\has_ic.$(OBJ)   \
        $(OBJ_DIR)\has_il.$(OBJ)   $(OBJ_DIR)\hascolor.$(OBJ) $(OBJ_DIR)\idlok.$(OBJ)    \
        $(OBJ_DIR)\initcolo.$(OBJ) $(OBJ_DIR)\initpair.$(OBJ) $(OBJ_DIR)\initscr.$(OBJ)  \
        $(OBJ_DIR)\intrflus.$(OBJ) $(OBJ_DIR)\keyname.$(OBJ)  $(OBJ_DIR)\keypad.$(OBJ)   \
        $(OBJ_DIR)\killchar.$(OBJ) $(OBJ_DIR)\leaveok.$(OBJ)  $(OBJ_DIR)\longname.$(OBJ) \
        $(OBJ_DIR)\meta.$(OBJ)     $(OBJ_DIR)\mvcur.$(OBJ)    $(OBJ_DIR)\mvprintw.$(OBJ)

PORT3 = $(OBJ_DIR)\mvscanw.$(OBJ)  $(OBJ_DIR)\mvwin.$(OBJ)    $(OBJ_DIR)\mvwprint.$(OBJ) \
        $(OBJ_DIR)\mvwscanw.$(OBJ) $(OBJ_DIR)\newpad.$(OBJ)   $(OBJ_DIR)\newterm.$(OBJ)  \
        $(OBJ_DIR)\newwin.$(OBJ)   $(OBJ_DIR)\nl.$(OBJ)       $(OBJ_DIR)\nocbreak.$(OBJ) \
        $(OBJ_DIR)\nodelay.$(OBJ)  $(OBJ_DIR)\noecho.$(OBJ)   $(OBJ_DIR)\noraw.$(OBJ)    \
        $(OBJ_DIR)\overlay.$(OBJ)  $(OBJ_DIR)\overwrit.$(OBJ) $(OBJ_DIR)\paircont.$(OBJ) \
        $(OBJ_DIR)\pnoutref.$(OBJ) $(OBJ_DIR)\prefresh.$(OBJ) $(OBJ_DIR)\printw.$(OBJ)

PORT4 = $(OBJ_DIR)\raw.$(OBJ)      $(OBJ_DIR)\refresh.$(OBJ)  $(OBJ_DIR)\reset_pr.$(OBJ) \
        $(OBJ_DIR)\reset_sh.$(OBJ) $(OBJ_DIR)\resetter.$(OBJ) $(OBJ_DIR)\resetty.$(OBJ)  \
        $(OBJ_DIR)\saveoldt.$(OBJ) $(OBJ_DIR)\saveterm.$(OBJ) $(OBJ_DIR)\savetty.$(OBJ)  \
        $(OBJ_DIR)\scanw.$(OBJ)    $(OBJ_DIR)\scroll.$(OBJ)   $(OBJ_DIR)\scrollok.$(OBJ) \
        $(OBJ_DIR)\set_term.$(OBJ) $(OBJ_DIR)\setscrrg.$(OBJ) $(OBJ_DIR)\standend.$(OBJ) \
        $(OBJ_DIR)\standout.$(OBJ) $(OBJ_DIR)\startcol.$(OBJ) $(OBJ_DIR)\subwin.$(OBJ)

PORT5 = $(OBJ_DIR)\touchlin.$(OBJ) $(OBJ_DIR)\touchwin.$(OBJ) $(OBJ_DIR)\typeahea.$(OBJ) \
        $(OBJ_DIR)\unctrl.$(OBJ)   $(OBJ_DIR)\ungetch.$(OBJ)  $(OBJ_DIR)\waddch.$(OBJ)   \
        $(OBJ_DIR)\waddstr.$(OBJ)  $(OBJ_DIR)\wattroff.$(OBJ) $(OBJ_DIR)\wattron.$(OBJ)  \
        $(OBJ_DIR)\wattrset.$(OBJ) $(OBJ_DIR)\wclear.$(OBJ)   $(OBJ_DIR)\wclrtobo.$(OBJ) \
        $(OBJ_DIR)\wclrtoeo.$(OBJ) $(OBJ_DIR)\wdelch.$(OBJ)   $(OBJ_DIR)\wdeletel.$(OBJ) \
        $(OBJ_DIR)\werase.$(OBJ)   $(OBJ_DIR)\wgetch.$(OBJ)   $(OBJ_DIR)\wgetstr.$(OBJ)

PORT6 = $(OBJ_DIR)\winch.$(OBJ)    $(OBJ_DIR)\winsch.$(OBJ)   $(OBJ_DIR)\winsertl.$(OBJ) \
        $(OBJ_DIR)\wmove.$(OBJ)    $(OBJ_DIR)\wnoutref.$(OBJ) $(OBJ_DIR)\wprintw.$(OBJ)  \
        $(OBJ_DIR)\wrefresh.$(OBJ) $(OBJ_DIR)\wscanw.$(OBJ)   $(OBJ_DIR)\wsetscrr.$(OBJ) \
        $(OBJ_DIR)\wstanden.$(OBJ) $(OBJ_DIR)\wstandou.$(OBJ) $(OBJ_DIR)\curs_set.$(OBJ)

PORTABLE = $(PORT1) $(PORT2) $(PORT3) $(PORT4) $(PORT5) $(PORT6)

#
#               Non-portable PDCurses Functions
#
NONPORT = $(OBJ_DIR)\border.$(OBJ)   $(OBJ_DIR)\breakcha.$(OBJ) $(OBJ_DIR)\cursoff.$(OBJ)  \
          $(OBJ_DIR)\curson.$(OBJ)   $(OBJ_DIR)\mvwinser.$(OBJ) $(OBJ_DIR)\rawout.$(OBJ)   \
          $(OBJ_DIR)\resize.$(OBJ)   $(OBJ_DIR)\resizew.$(OBJ)  $(OBJ_DIR)\tabsize.$(OBJ)  \
          $(OBJ_DIR)\waddraws.$(OBJ) $(OBJ_DIR)\wborder.$(OBJ)  $(OBJ_DIR)\wbox.$(OBJ)     \
          $(OBJ_DIR)\winprint.$(OBJ) $(OBJ_DIR)\wordchar.$(OBJ) $(OBJ_DIR)\wtabsize.$(OBJ)

#
#               Private (Internal) PDCurses Functions
#
PRIV1 = $(OBJ_DIR)\_addtail.$(OBJ) $(OBJ_DIR)\_addwin.$(OBJ)  $(OBJ_DIR)\_backchr.$(OBJ) \
        $(OBJ_DIR)\_cattr.$(OBJ)   $(OBJ_DIR)\_chadd.$(OBJ)   $(OBJ_DIR)\_chgattr.$(OBJ) \
        $(OBJ_DIR)\_chins.$(OBJ)   $(OBJ_DIR)\_ckbiosk.$(OBJ) $(OBJ_DIR)\_clrscr.$(OBJ)  \
        $(OBJ_DIR)\_clrupda.$(OBJ) $(OBJ_DIR)\_findwin.$(OBJ) $(OBJ_DIR)\_fixcurs.$(OBJ)

PRIV2 = $(OBJ_DIR)\_gbiosky.$(OBJ) $(OBJ_DIR)\_gcrspos.$(OBJ) $(OBJ_DIR)\_gcurcol.$(OBJ) \
        $(OBJ_DIR)\_gcurrow.$(OBJ) $(OBJ_DIR)\_getattr.$(OBJ) $(OBJ_DIR)\_getcbrk.$(OBJ) \
        $(OBJ_DIR)\_getcols.$(OBJ) $(OBJ_DIR)\_getcrsr.$(OBJ) $(OBJ_DIR)\_getfont.$(OBJ) \
        $(OBJ_DIR)\_getrows.$(OBJ) $(OBJ_DIR)\_getscrn.$(OBJ) $(OBJ_DIR)\_gotoxy.$(OBJ)

PRIV3 = $(OBJ_DIR)\_inswin.$(OBJ)  $(OBJ_DIR)\_makenew.$(OBJ) $(OBJ_DIR)\_newline.$(OBJ) \
        $(OBJ_DIR)\_print.$(OBJ)   $(OBJ_DIR)\_putc.$(OBJ)    $(OBJ_DIR)\_putctty.$(OBJ) \
        $(OBJ_DIR)\_queryad.$(OBJ) $(OBJ_DIR)\_rawgetc.$(OBJ) $(OBJ_DIR)\_rmwin.$(OBJ)   \
        $(OBJ_DIR)\_sanity.$(OBJ)  $(OBJ_DIR)\_scb.$(OBJ)     $(OBJ_DIR)\_scrclos.$(OBJ)

PRIV4 = $(OBJ_DIR)\_scrnmod.$(OBJ) $(OBJ_DIR)\_scroll.$(OBJ)  $(OBJ_DIR)\_scropen.$(OBJ) \
        $(OBJ_DIR)\_set8025.$(OBJ) $(OBJ_DIR)\_setcrsr.$(OBJ) $(OBJ_DIR)\_setfont.$(OBJ) \
        $(OBJ_DIR)\_setrows.$(OBJ) $(OBJ_DIR)\_setscrn.$(OBJ) $(OBJ_DIR)\_sgetnl.$(OBJ)  \
        $(OBJ_DIR)\_splitpl.$(OBJ) $(OBJ_DIR)\_sysgetc.$(OBJ) $(OBJ_DIR)\_validch.$(OBJ) \
        $(OBJ_DIR)\_xfrmlin.$(OBJ) $(OBJ_DIR)\_vsscanf.$(OBJ)

PRIVATE = $(PRIV1) $(PRIV2) $(PRIV3) $(PRIV4)

#
#       PDCurses function specific to the FlexOS Operating System
#
#FLEXOS = $(OBJ_DIR)\_16bitmo.$(OBJ) $(OBJ_DIR)\_8bitmod.$(OBJ) $(OBJ_DIR)\_gname.$(OBJ)


$(PDCLIB): buildlrf.exe $(HEADERS) $(PORTABLE) $(NONPORT) $(PRIVATE)
	        +echo $(LIBRSP) >> $(LRF)
	        $(MAKE_LIB)
	        $(EMX_OMF_LIB)
	        +if exist $(LRF) del $(LRF)

#
#       Refresh library response file and build library
#
lib:    $(PDCLIB)
	        +if exist $(PDCLIB) del $(PDCLIB)
	        +if exist $(LRF) del $(LRF)
	        +for %%f in ($(OBJ_DIR)\*.obj) do buildlrf +%%f $(LRF)
	        +echo $(LIBRSP) >> $(LRF)
	        $(MAKE_LIB)
	        $(EMX_OMF_LIB)
	        +if exist $(LRF) del $(LRF)

#
#       Object Module Targets
#
ADDLRF =buildlrf -+$@ $(LRF)

# PORTABLE
$(OBJ_DIR)\%.$(OBJ): $(PORT_DIR)/%.c 
	          +-mkdir $(OBJ_DIR)
	          $(CC) $(CFLAGS) $<
	          -$(ADDLRF)

# NONPORT

$(OBJ_DIR)\%.$(OBJ): $(NONP_DIR)/%.c 
	          +-mkdir $(OBJ_DIR)
	            $(CC) $(CFLAGS) $<
	            -$(ADDLRF)

# PRIVATE

$(OBJ_DIR)\%.$(OBJ): $(PRIV_DIR)/%.c 
	          +-mkdir $(OBJ_DIR)
	          $(CC) $(CFLAGS) $<
	          -$(ADDLRF)


# FLEXOS

#$(OBJ_DIR)\%.$(OBJ): $(FLEX_DIR)/%.c
#	          +-mkdir $(OBJ_DIR)
#	          $(CC) $(CFLAGS) $<
#	          -$(ADDLRF)

#######################################################################
######################### Documentation Targets #######################
#######################################################################

manual:		$(DOC_DIR)\intro.man	$(DOC_DIR)\overview.man	$(DOC_DIR)\todo.man manext.exe
	manext $(DOC_DIR)\intro.man 			> PDCurses.man
	manext $(DOC_DIR)\overview.man 			>> PDCurses.man
	+echo .......=================================== >> PDCurses.man
	+echo .......PDCurses Definitions and Variables:	>> PDCurses.man
	+echo .......=================================== >> PDCurses.man
	manext $(CC_INC)\curses.h $(FFLAGS)	>> PDCurses.man
	+echo .......============================ >> PDCurses.man
	+echo .......Portable PDCurses Functions:		>> PDCurses.man
	+echo .......============================ >> PDCurses.man
	manext $(ROOTDIR)\portable\*.c >> PDCurses.man
	+echo .......================================ >> PDCurses.man
	+echo .......Non-portable PDCurses Functions:		>> PDCurses.man
	+echo .......================================ >> PDCurses.man
	manext $(ROOTDIR)\nonport\*.c >> PDCurses.man
	+echo .......============================ >> PDCurses.man
	+echo .......Internal PDCurses Functions:		>> PDCurses.man
	+echo .......============================ >> PDCurses.man
	manext $(ROOTDIR)\private\*.c >> PDCurses.man
	+echo .......========================== >> PDCurses.man
	+echo .......PDCurses Flexos Functions:		>> PDCurses.man
	+echo .......========================== >> PDCurses.man
	manext $(ROOTDIR)\flexos\*.c >> PDCurses.man
	+echo .......======================== >> PDCurses.man
	+echo .......Functions not supported:		>> PDCurses.man
	+echo .......======================== >> PDCurses.man
	manext $(DOC_DIR)\todo.man 			>> PDCurses.man

#######################################################################
######################### Maintenance Targets #########################
#######################################################################
clean:
	+del PDCurses.ar? > NUL:
	+del $(OBJ_DIR)\*.obj

zoo:
	zoo a pdcurs20 $(ROOTDIR)\readme $(ROOTDIR)\makefile $(HEADERS)
	zoo a pdcurs20 $(DOC_DIR)\*.man
	zoo a pdcurs20 $(PORT_DIR)\*.c $(NONP_DIR)\*.c $(PRIV_DIR)\*.c
	zoo a pdcurs20 $(FLEX_DIR)\*.c $(DEMO_DIR)\*.c $(DEMO_DIR)\*.def
	zoo a pdcurs20 $(TOOLS_DIR)\*.c $(TOOLS_DIR)\*.def $(ROOTDIR)\pdcurses.cfg

zip:
	zip pdcurs20 $(ROOTDIR)\readme $(ROOTDIR)\makefile $(HEADERS) 
	zip pdcurs20 $(DOC_DIR)\*.man
	zip pdcurs20 $(PORT_DIR)\*.c $(NONP_DIR)\*.c $(PRIV_DIR)\*.c
	zip pdcurs20 $(FLEX_DIR)\*.c $(DEMO_DIR)\*.c $(DEMO_DIR)\*.def
	zip pdcurs20 $(TOOLS_DIR)\*.c $(TOOLS_DIR)\*.def $(ROOTDIR)\pdcurses.cfg
