# @(#)78        1.12  src/examples/type_mgr/makefile.os2, examples.src, os2dce21.dss, 960602a.1  1/10/96  16:47:11
#
#/********************************************************************
# COMPONENT_NAME:  examples.src
#
# FUNCTIONS: makefile for type_mgr sample application [IBM CSet++] [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 <DCE_DIRS>

# Libraries
LIBS         = $(LDLIBS) $(MPTN_lib)\so32dll

# 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
# 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)

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

.obj.exe:
    $(LD) $(LDFLAGS) $**, $*.exe, $*.map, $(LIBS), $*.def

default: all

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

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

$(GETHOSTO): $(GETHOSTC)
    $(CC) -Fo$@ $(CFLAGS) $(EXAMPLES_com)\os2\gethost.c

$(GETOPTO): $(GETOPTC)
    $(CC) -Fo$@ $(CFLAGS) $(EXAMPLES_com)\os2\getopt.c

$(UTILO): $(UTILC)
    $(CC) -Fo$@ -I$(MPTN_inc) $(CFLAGS) $(EXAMPLES_com)\util.c

$(CUSTOBJ): $(CUSTC) $(CUSTH)

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

$(CUSTEXE): $(CUST_OBJS)
    $(LD) $(LDFLAGS) $(CUST_OBJS), $(CUSTEXE),, $(LIBS), client.def ;

$(SERVEREXE): $(SERVER_OBJ)
  @REM @<<server.@0
      $(LDFLAGS) +
    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) +
    $(GETOPTO) $(GETHOSTO)
    $(SERVEREXE)

    $(LIBS)
    server.def ;
<<
    $(LD) @server.@0

$(ADMINEXE): $(ADMIN_OBJ)
    $(LD) $(LDFLAGS) $(ADMIN_OBJ), $(ADMINEXE),, $(LIBS), tm_admin.def ;

$(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 *.obj *.map $(FROMIDLC)

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

clobber: clean rmtargets
