# FILE NAME: Makefile
# Makefile for the inventory client that uses an ACF and implicit binding
#
# definitions for this make file
#
APPL=inventory
IDLCMD=idl -v
CHECK=../../arithmetic    # directory containing check_status.h
LIBS = -ldce -lpthreads -lc_r -lmach -lm		# DEC Alpha OSF/1
CFLAGS= -D_SHARED_LIBRARIES -Dalpha -D_REENTRANT	# DEC Alpha OSF/1
CC= cc

#
# COMPLETE BUILD of this application.
#
all:	local interface client server 


#
# LOCAL BUILD of the implicit client to test locally.
#
local:	interface implicit_client.c ../i_procedures.c ../implement_inventory.c
	   $(CC) $(CFLAGS) -I../ -I$(CHECK) -DLOCAL -o local_implicit_client.exe \
		   implicit_client.c ../i_procedures.c ../implement_inventory.c 
#remove object files so they do not interfere with the distributed build
	   rm implicit_client.o i_procedures.o implement_inventory.o


#
# INTERFACE BUILD that uses an ACF for implicit binding.
# Notice this builds only the client stub and the header files.
#
interface:	$(APPL).acf $(APPL).h $(APPL)_cstub.o
$(APPL).h $(APPL)_cstub.o:	../$(APPL).idl $(APPL).acf
	   $(IDLCMD) -I../ -server none ../$(APPL).idl


#
# CLIENT BUILD
#
client:	implicit_client
implicit_client:	interface implicit_client.o \
   do_import_binding.o do_interpret_binding.o 
	   $(CC) $(CFLAGS) -I../ -o implicit_client.exe implicit_client.o \
		   do_import_binding.o do_interpret_binding.o $(APPL)_cstub.o $(LIBS)

do_import_binding.o:	do_import_binding.c
	   $(CC) $(CFLAGS) -I../ -I$(CHECK) -c do_import_binding.c

do_interpret_binding.o:	do_interpret_binding.c
	   $(CC) $(CFLAGS) -I../ -I$(CHECK) -c do_interpret_binding.c


#
# SERVER BUILD 
#
server:
	   @echo make server in directory ../


#
# files needed from other directories  
#
i_procedures.o:	../i_procedures.c
	   $(CC) $(CFLAGS) -I../ -c ../i_procedures.c

implement_inventory.o:	../implement_inventory.c
	   $(CC) $(CFLAGS) -I../ -c ../implement_inventory.c

