# @(#)20        1.7  src/examples/type_mgr/makefile.wat, examples.src, os2dce21.dss, 960602a.1  1/10/96  16:58:08
#
#/********************************************************************
# COMPONENT_NAME:  examples.src
#
# FUNCTIONS: makefile for type_mgr sample application [Watcom] [HPFS]
#
# ORIGINS: 27
#
# (C) COPYRIGHT International Business Machines Corp. 1995
#  All Rights Reserved
#  Licensed Materials - Property of IBM
#
#  US Government Users Restricted Rights - Use, duplication or
#  disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
#
#********************************************************************/

# See README.EXAMPLES in order to configure the Examples command files.
!INCLUDE $(%STEM)\DCE_DIRS.wat

# inference rules
.c.obj:
    $(CC) $(CFLAGS) $*.c

# customer idl stuff
CUST_IDLFLAGS   = $(NO_EPV_IDL) -header $(CUST_HEADER)
CUSTIF          = cust
CUSTIDL         = $(CUSTIF).idl
CUSTACF         = $(CUSTIF).acf
CUST_HEADER     = $(CUSTIF)_if.h

# admin idl stuff
ADMIN_IDLFLAGS  = $(EPV_IDL) -header $(ADMIN_HEADER)
ADMINIF         = tm_admin
ADMINIDL        = $(ADMINIF).idl
ADMIN_HEADER    = $(ADMINIF)_if.h

# utility stuff for all of the programs
UTIL            = util
UTILH           = $(EXAMPLES_com)\$(UTIL).h
UTILC           = $(EXAMPLES_com)\$(UTIL).c
UTILO           = $(UTIL).obj

GETOPT          = getopt
GETOPTC         = $(EXAMPLES_com)\os2\$(GETOPT).c
GETOPTO         = $(GETOPT).obj

GETHOST         = gethost
GETHOSTC        = $(EXAMPLES_com)\os2\$(GETHOST).c
GETHOSTO        = $(GETHOST).obj

# client stuff
CUST            = client
CUSTC           = $(CUST).c
CUSTH           = $(CUST).h
CUSTOBJ         = $(CUST).obj
CUSTEXE         = $(CUST).exe
CUST_C_STUB     = $(CUSTIF)_cstub
CUST_C_STUBC    = $(CUST_C_STUB).c
CUST_C_STUBO    = $(CUST_C_STUB).obj
CUST_OBJS       = $(CUSTOBJ) $(CUST_C_STUB).obj bind_util.obj client_args.obj &
                  client_calls.obj $(UTILO) $(GETOPTO)

# server stuff
SERVER          = server
SERVEREXE       = $(SERVER).exe
CUST_S_STUB     = $(CUSTIF)_sstub
CUST_S_STUBC    = $(CUST_S_STUB).c
CUST_S_STUBO    = $(CUST_S_STUB).obj
ADM_S_STUB      = $(ADMINIF)_sstub
ADM_S_STUBC     = $(ADM_S_STUB).c
ADM_S_STUBO     = $(ADM_S_STUB).obj
SERVER_OBJ      = server.obj server_args.obj server_type1_ops.obj server_type2_ops.obj &
                  server_setup_object.obj server_admin_ops.obj server_shutdown.obj     &
                  server_setup_admin.obj server_util.obj server_object_db.obj          &
                  $(CUST_S_STUBO) $(ADM_S_STUBO) $(UTILO) $(GETOTO) $(GETHOSTO)

# admin stuff
ADMIN           = tm_admin
ADMINEXE        = $(ADMIN).exe
ADM_C_STUB      = $(ADMINIF)_cstub
ADM_C_STUBC     = $(ADM_C_STUB).c
ADM_C_STUBO     = $(ADM_C_STUB).obj
ADMIN_OBJ       = tm_admin.obj tm_admin_args.obj bind_util.obj tm_admin_calls.obj &
                  $(GETOPTO) $(ADM_C_STUBO) $(UTILO)

# stuff that IDLC creates
FROMIDLC        = $(CUST_HEADER) $(CUST_S_STUBC) $(CUST_C_STUBC) &
                  $(ADMIN_HEADER) $(ADM_S_STUBC) $(ADM_C_STUBC)


all: $(CUSTEXE) $(SERVEREXE) $(ADMINEXE)

bind_util.obj: $(EXAMPLES_com)\bind_util.c
    $(CC) $(CFLAGS)  $(EXAMPLES_com)\bind_util.c

$(GETHOSTO): $(GETHOSTC)
    $(CC) $(CFLAGS)  $(GETHOSTC)

$(GETOPTO): $(GETOPTC)
    $(CC) $(CFLAGS)  $(GETOPTC)

$(UTILO): $(UTILC)
    $(CC) -I$(MPTN_inc) $(CFLAGS)  $(UTILC)

$(CUSTOBJ): $(CUSTC) $(CUSTH)
    $(CC) $(CFLAGS)  $(CUSTC)

client_args.obj: client_args.c type_mgr.h
client_calls.obj: client_calls.c type_mgr.h
server_args.obj: server_args.c
server_type1_ops.obj: server_type1_ops.c
server_type2_ops.obj: server_type2_ops.c
server_setup_object.obj: server_setup_object.c
server_admin_ops.obj: server_admin_ops.c
server_shutdown.obj: server_shutdown.c
server_setup_admin.obj: server_setup_admin.c
server_util.obj: server_util.c
server_object_db.obj: server_object_db.c

WORKSPACE = OPTION STACK=120k OPTION HEAPSIZE=64k

CLIENT    = FILE client.obj      FILE cust_cstub.obj   FILE bind_util.obj &
            FILE client_args.obj FILE client_calls.obj FILE util.obj      &
            FILE getopt.obj

TM_SERVER = FILE server.obj              FILE server_args.obj        &
            FILE server_type1_ops.obj    FILE server_type2_ops.obj   &
            FILE server_setup_object.obj FILE server_admin_ops.obj   &
            FILE server_shutdown.obj     FILE server_setup_admin.obj &
            FILE server_util.obj         FILE server_object_db.obj   &
            FILE cust_sstub.obj          FILE tm_admin_sstub.obj     &
            FILE gethost.obj             FILE util.obj               &
            FILE getopt.obj

TM_ADMIN  = FILE tm_admin.obj       FILE tm_admin_args.obj  FILE bind_util.obj &
            FILE tm_admin_calls.obj FILE tm_admin_cstub.obj FILE util.obj      &
            FILE getopt.obj

$(CUSTEXE): $(CUST_OBJS)
   $(LD) $(LDFLAGS) $(CLIENT) NAME $*.exe $(WORKSPACE) OPTION MAP=$*.map LIBRARY $(LDLIBS) LIBRARY $(MPTN_lib)\so32dll

$(SERVEREXE): $(SERVER_OBJ)
   $(LD) $(LDFLAGS) $(TM_SERVER) NAME $*.exe $(WORKSPACE) OPTION MAP=$*.map LIBRARY $(LDLIBS) LIBRARY $(MPTN_lib)\so32dll

$(ADMINEXE): $(ADMIN_OBJ)
   $(LD) $(LDFLAGS) $(TM_ADMIN) NAME $*.exe $(WORKSPACE) OPTION MAP=$*.map LIBRARY $(LDLIBS) LIBRARY $(MPTN_lib)\so32dll


$(CUST_OBJS): $(CUST_HEADER) $(UTILH)

$(SERVER_OBJ): $(CUST_HEADER) $(ADMIN_HEADER) $(UTILH) &
           server_util.h server_object_db.h

$(ADMIN_OBJ): $(ADMIN_HEADER) $(UTILH)

$(CUST_HEADER): $(CUSTIDL)
    $(IDL) $(CUSTIDL) $(CUST_IDLFLAGS)

$(ADMIN_HEADER): $(ADMINIDL)
    $(IDL) $(ADMINIDL) $(ADMIN_IDLFLAGS)

clean:
    -del $(FROMIDLC) $(CUST_OBJS) $(SERVER_OBJ) $(ADMIN_OBJ)
    -del *.err *.map

rmtargets:
    -del $(CUSTEXE) $(SERVEREXE) $(ADMINEXE)

clobber:
    -del $(FROMIDLC) $(CUST_OBJS) $(SERVER_OBJ) $(ADMIN_OBJ)
    -del *.err *.map
    -del $(CUSTEXE) $(SERVEREXE) $(ADMINEXE)

