#==============================================================================
# Makefile
#
# OS/2 Makefile for use with IBM C/C++ Set/2 to build the CLI for mSQL
#
# (c) 1996 by Dirk Ohme - all rights reserved
#==============================================================================
# includes
#==============================================================================
include ..\Config.mk
include ..\Version.mk
#==============================================================================
# Site specific configuration (OS/2) -> normally set by autoconf (Config.mk)
#==============================================================================
## [BEGIN]
#
# option switches
# (do not remove the lines starting with "##" !!!)
#
# debug mode: select this to enable debugging of the software
##-DEBUG_MODE=Y
#
# list mode: select this (and DEBUG_MODE) to create a list file of each *.c
##-LIST_MODE=Y
#
## [END]
#==============================================================================

#---| definitions |------------------------------------------------------------
NAME     = cli
DLLNAME  = lib$(NAME).dll
OBJECTS  = catalog.obj cli.obj connect.obj execute.obj info.obj log.obj\
 options.obj prepare.obj results.obj transact.obj

#---| compiler |---------------------------------------------------------------
CC       = icc
!ifndef BCPP
!  ifdef VACPP
CFLAGS   = /c /DOS2 /D$(DBENV) /G4 /Gd- /Ge+ /Gf /Gi /Gm /Gs- /I.\
/I..\..\include /O /Ol /Q /Se /Ss+ /W1
DFLAGS   = /c /DOS2 /D$(DBENV) /G4 /Gd- /Ge- /Gf /Gi /Gm /Gs- /I.\
/I..\..\include /O /Ol /Q /Se /Ss+ /W1
!  else
CFLAGS   = /c /DOS2 /D$(DBENV) /G4 /Gd- /Ge+ /Gf /Gi /Gm /Gs- /I.\
/I..\..\include /Q /Se /Ss+
DFLAGS   = /c /DOS2 /D$(DBENV) /G4 /Gd- /Ge- /Gf /Gi /Gm /Gs- /I.\
/I..\..\include /Q /Se /Ss+
!  endif
!else
CFLAGS   = /c /DOS2 /DBCPP /D$(DBENV) /I. /I..\..\include
DFLAGS   = /c /DOS2 /DBCPP /D$(DBENV) /I. /I..\..\include
!endif

CEXTRA   = /DVERSION="\"$(VERSION)$(EXTVER)\""

#---| linker |-----------------------------------------------------------------
!ifdef VACPP
LN       = ilink
LFLAGS   = /nofree /e /noi /nol /packc /packd /pm:VIO /se:1024 /st:32768
LN_END   =
!else
LN       = link386
LFLAGS   = /noi /nol /pm:VIO /se:1024 /st:32768
LN_END   = ;
!endif
!ifdef STATIC
LIBS     = so32dll.lib tcp32dll.lib ..\..\lib\msql.lib
!else
LIBS     = ..\..\lib\msql_dll.lib
!endif

#---| debugging |--------------------------------------------------------------
!ifdef DEBUG_MODE
!  ifdef LIST_MODE
DEBUG    = /DDEBUG /Le /Ls /Ti+
LDEBUG   = /deb
!  else
DEBUG    = /DDEBUG /Ti+
LDEBUG   = /deb
!  endif
!else
DEBUG    =
LDEBUG   =
!endif

#---| library tool |-----------------------------------------------------------
!ifdef VACPP
AR       = ilib
!else
AR       = lib
!endif
ARFLAGS  = /noe /noi /nol
IMPLIB   = implib
IFLAGS   = /nol

#---| global dependencies |----------------------------------------------------
all:     $(NAME).lib $(NAME)_dll.lib $(DLLNAME) install
clean:
         @if exist *.lst       del *.lst
         @if exist *.obj       del *.obj
         @if exist *.res       del *.res
delete:  clean
         @if exist *.dll       del *.dll
         @if exist *.lib       del *.lib
delete_all: delete
install:
         if exist ..\..\lib\$(NAME).lib     del ..\..\lib\$(NAME).lib
         if exist ..\..\lib\$(DLLNAME)      del ..\..\lib\$(DLLNAME)
         if exist ..\..\lib\$(NAME)_dll.lib del ..\..\lib\$(NAME)_dll.lib
         if exist ..\..\include\sqlcli_.h   del ..\..\include\sqlcli_.h
         copy /b $(NAME).lib     ..\..\lib
         copy /b $(DLLNAME)      ..\..\lib
         copy /b $(NAME)_dll.lib ..\..\lib
         copy /b sqlcli_.h       ..\..\include

#--------| inference rules |---------------------------------------------------
.SUFFIXES: .def .lib
.c.obj:
         $(CC) $(DEBUG) $(CFLAGS) $(CEXTRA) $*.c
         $(AR) $(ARFLAGS) $(NAME).lib -+$*.obj;
         $(CC) $(DEBUG) $(DFLAGS) $(CEXTRA) $*.c
.def.lib:
         $(IMPLIB) $(IFLAGS) $*.lib $*.def

#---| local dependencies |-----------------------------------------------------
$(NAME).lib:       $(OBJECTS)
         @if exist $*.bak del $*.bak

$(DLLNAME):        $(OBJECTS)
         @if exist $@ del $@
         $(LN) $(LDEBUG) $(LFLAGS) $**, $@, nul, $(LIBS),\
$(NAME)_dll.def $(LN_END)

$(NAME)_dll.lib:   $(NAME)_dll.def

#==============================================================================
