#*****************************************************************************
# FILE           : $Source: /usr/local/bv/SNNS/SNNSv4.1/configuration/RCS/header,v $
# SHORTNAME      : Makefile header
# SNNS VERSION   : 4.1
#
# PURPOSE        : Header of all SNNS Makefiles
# NOTES          : Do not change Makefiles manually
#
# AUTHOR         : Markus Huettel, Guenter Mamier, Ralf Huebner, Michael Vogt
# DATE           : 25.4.94
#
# CHANGED BY     : 
# IDENTIFICATION : $State: Exp $ $Locker:  $
# RCS VERSION    : $Revision: 2.4 $
# LAST CHANGE    : $Date: 1995/07/03 10:20:59 $
#
#            Copyright (c) 1990-1995  SNNS Group, IPVR, Univ. Stuttgart, FRG
#
#*****************************************************************************

# Created by mamier at Tue Nov 21 15:10:13 MET 1995

# -- SNNS  Installation  Directories  &  Libraries --
SNNSDIR = /usr/local/bv/SNNS/SNNSv4.1
MACHINE = sun4
LEX = flex
MACHINENAME= sun_solaris
COMPILER = gcc
CCFLAGS = -O4
FPOPTIONS = 
LEXLIB = -ll
RLIB = echo
XDIR = /usr/local/X11R6/lib
XH = /usr/local/X11R6/include
LDOPTIONS = -R$(XDIR) -ldl -lc -lw -lnsl -L$(XDIR) -lXaw -lXmu -lXt -lSM -lICE -lXext -lX11 -lm -lsocket -ll

#*****************************************************************************
# FILE           : $Source: /usr/local/bv/SNNS/SNNSv4.0/configuration/RCS/rpcstuff,v $
# SHORTNAME      : Makefile body
# SNNS VERSION   : 4.0
#
# PURPOSE        : Body of the SNNS rpcxgui Makefile
# NOTES          : Do not change Makefiles manually
#
# AUTHOR         : Sven Doering
# DATE           : 20.02.1995
#
# CHANGED BY     : 
# IDENTIFICATION : $State: Exp $ $Locker:  $
# RCS VERSION    : $Revision: 1.6 $
# LAST CHANGE    : $Date: 1995/05/12 11:54:02 $
#
#            Copyright (c) 1990-1995  SNNS Group, IPVR, Univ. Stuttgart, FRG
#
#*****************************************************************************

RPCCCFLAGS = $(CCFLAGS) -DRPC_SVC_FG -DRPCSNNS -DRPCXGUI
RPCCKFLAGS = $(CCFLAGS) -DRPC_SVC_FG -DRPCSNNS -DRPCKERNEL

FPOPTIONS = 
LDOPTIONSX = $(LDOPTIONS)
LDOPTIONSK = -lm $(LEXLIB)
XGUIBINDIR= $(SNNSDIR)/xgui/bin/$(MACHINENAME)
XGUILIBDIR= $(SNNSDIR)/xgui/bin/$(MACHINENAME)
XGUIRPCBINDIR= $(SNNSDIR)/rpc/bin/$(MACHINENAME)
XGUIRPCLIBDIR= $(SNNSDIR)/rpc/bin/$(MACHINENAME)
PROGRAMXGUI   = xguirpc
PROGRAMKERNEL = kernelrpc 
LIBFUNC = $(SNNSDIR)/kernel/bin/$(MACHINENAME)/libfunc.a
LIBKERNEL = $(SNNSDIR)/kernel/bin/$(MACHINENAME)/libkernel.a
LIBXGUI1 = $(SNNSDIR)/xgui/bin/$(MACHINENAME)/libxgui1.a 
LIBXGUI2 = $(SNNSDIR)/xgui/bin/$(MACHINENAME)/libxgui2.a 
BN3DLIB  = $(SNNSDIR)/xgui/bin/$(MACHINENAME)/lib3d.a


LIBKERNELMODI = libkernel.a 

LIBXGUIMODI1 = libxgui1.a 
LIBXGUIMODI2 = libxgui2.a 
BN3DLIBMODI  = lib3d.a


# -- C-Compiler Configuration --

CC= $(COMPILER)
CFLAGS= $(RPCCCFLAGS) $(FPOPTIONS) -I$(SNNSDIR)/kernel/sources \
       -I$(SNNSDIR)/xgui/iconsXgui -I$(SNNSDIR)/xgui/sources -I$(XH)
CKKFLAGS = $(RPCCKFLAGS) $(FPOPTIONS) -I$(SNNSDIR)/kernel/sources \
       -I$(SNNSDIR)/xgui/iconsXgui -I$(SNNSDIR)/xgui/sources -I$(XH)
CPPFLAGS = -I$(SNNSDIR)/kernel/sources \
       -I$(SNNSDIR)/xgui/iconsXgui -I$(SNNSDIR)/xgui/sources -I$(XH)
CDEPFLG           = -MM

# -- Archive Configuration --

AR              = ar
ARFLAGS 	= rc
RANLIB          = ranlib

# -- RPCGEN Configuration -- 
RPCCOM = rpcgen 
RPCMAIN = -m
RPCOPTIONS =

# -- Libraries --

LIBRPCXGUI	= librpcxgui.a
LIBRPCKERNEL	= librpckernel.a

GENSOURCEKERN = kr_ui_rpc.x 
GENSOURCEXGUI = ui_rpcsnns.x

GENKERN =  kr_ui_rpc_clnt.c kr_ui_rpc_svc.c kr_ui_rpc_xdr.c kr_ui_rpc.h
GENXGUI =  ui_rpcsnns_clnt.c ui_rpcsnns_svc.c ui_rpcsnns_xdr.c ui_rpcsnns.h


RPCXGUI= \
	ui_rpcsnns_xdr.c \
	ui_rpcsnns_svc.c \
	ui_rpcsnns_proc.c \
	kr_ui_rpc_xdr.c \
	kr_ui_rpc_clnt.c \
	kr_ui_xgui.c \
	kom_broadcast.c 

XGUISOURCE1 = \
	ui_main.h ui_main.c \
	ui_mainP.h ui_mainP.c \
	ui_rpc.h ui_rpc.c \
	ui_xWidgets.c \
	ui_rpcP.h ui_rpcP.c \
	ui_rpcfile.c \
	ui_rpcsel.c \
	ui_transfer.c \
	ui_file.c \
	ui_controlP.c \
	ui_rpcCo.c

XGUISOURCE2 = \
	ui_funcdispl.c

BN3DSOURCE = \
	bn_TD_bignet.c

RPCKERNEL= \
	ui_rpcsnns_xdr.c \
	ui_rpcsnns_clnt.c \
	kr_ui_rpc_xdr.c \
	kr_ui_rpc_svc.c \
	kr_coop.c\
	kr_ui_rpc_main.c \
	kr_ui_rpc_proc.c 


KERNELSOURCE = kr_ui.c 


SOURCES = $(BN3DSOURCES) $(XGUISOURCES1) $(XGUISOURCES2) $(GENSOURCEXGUI) \
	  $(GENSOURCEKERN) $(RPCKERNEL) $(RPCSLAVE) $(RPCXGUI) $(KERNELSOURCE)


# -- Modul files --

TMP1                = $(RPCXGUI:%.h=)
RPCXGUIMODULE       = $(TMP1:%.ph=)

TMP2                = $(RPCKERNEL:%.h=)
RPCKERNELMODULE     = $(TMP2:%.ph=)

TMP3                = $(XGUISOURCE1:%.h=)
XGUISOURCE1MODULE   = $(TMP3:%.ph=)

TMP4                = $(XGUISOURCE2:%.h=)
XGUISOURCE2MODULE   = $(TMP4:%.ph=)

TMP5                = $(BN3DSOURCE:%.h=)
BN3DSOURCEMODULE    = $(TMP5:%.ph=)

TMP6                = $(KERNELSOURCE:%.h=)
KERNELSOURCEMODULE  = $(TMP6:%.ph=)


MODULES           = $(RPCXGUIMODULE) $(RPCKERNELMODULE) $(XGUISOURCE1MODULE)\
		    $(XGUISOURCE2MODULE) $(BN3DSOURCEMODULE) \
		    $(KERNELSOURCEMODULE) 

# -- Object files --

RPCXGUIOBJECTS     = $(RPCXGUIMODULE:.c=.o)

RPCKERNELOBJECTS   = $(RPCKERNELMODULE:.c=.o)

XGUIOBJECTS1       = $(XGUISOURCE1MODULE:.c=.o)

XGUIOBJECTS2       = $(XGUISOURCE2MODULE:.c=.o)

BN3DOBJECTS        = $(BN3DSOURCEMODULE:.c=.o)

KERNELOBJECTS      = $(KERNELSOURCEMODULE:.c=.o)

# Rules

.KEEP_STATE:

default: $(LIBRPCXGUI) $(LIBRPCKERNEL) \
	$(LIBXGUIMODI1) $(LIBXGUIMODI2) $(BN3DLIBMODI) $(LIBKERNELMODI) \
	$(PROGRAMXGUI) $(PROGRAMKERNEL)


all:	$(LIBRPCXGUI) $(LIBRPCKERNEL) \
	$(LIBXGUIMODI1) $(LIBXGUIMODI2) $(BN3DLIBMODI) $(LIBKERNELMODI) \
	$(PROGRAMXGUI) $(PROGRAMKERNEL)

rpc:	$(GENSOURCEKERN) $(GENSOURCEXGUI) $(LIBRPCXGUI) $(LIBRPCKERNEL) \
	$(LIBXGUIMODI1) $(LIBXGUIMODI2) $(BN3DLIBMODI) $(LIBKERNELMODI) \
	$(PROGRAMXGUI) $(PROGRAMKERNEL)



$(GENKERN): $(GENSOURCEKERN)
	$(RPCCOM) $(RPCOPTIONS) kr_ui_rpc.x
	$(RPCCOM) $(RPCMAIN) kr_ui_rpc.x >kr_ui_rpc_svc.c

$(GENXGUI): $(GENSOURCEXGUI)
	$(RPCCOM) $(RPCOPTIONS) ui_rpcsnns.x
	$(RPCCOM) $(RPCMAIN) ui_rpcsnns.x >ui_rpcsnns_svc.c

install: $(LIBRPCXGUI) $(LIBRPCKERNEL) \
	$(LIBXGUIMODI1) $(LIBXGUIMODI2) $(BN3DLIBMODI) $(LIBKERNELMODI) \
	$(PROGRAMXGUI) $(PROGRAMKERNEL)
	cp $(PROGRAMXGUI) $(XGUIRPCBINDIR)
	cp $(PROGRAMKERNEL) $(XGUIRPCBINDIR)
	cp $(LIBXGUIMODI1) $(XGUIRPCLIBDIR)
	cp $(LIBXGUIMODI2) $(XGUIRPCLIBDIR)
	cp $(BN3DLIBMODI)  $(XGUIRPCLIBDIR)
	$(RANLIB) $(XGUIRPCLIBDIR)/$(LIBXGUIMODI1)
	$(RANLIB) $(XGUIRPCLIBDIR)/$(LIBXGUIMODI2)
	$(RANLIB) $(XGUIRPCLIBDIR)/$(BN3DLIBMODI)

list:
	cat $(SOURCES) >  xguirpcsrc.all

clean:
	rm -f $(PROGRAMXGUI) $(PROGRAMKERNEL) \
	      *.o *.a

$(PROGRAMXGUI): $(RPCXGUIOBJECTS) $(LIBRPCXGUI) $(LIBXGUIMODI1) \
		$(LIBXGUIMODI1) $(BN3DLIBMODI) $(LIBKERNEL) $(LIBFUNC)
	$(CC) -o $(PROGRAMXGUI) $(LIBXGUIMODI1) $(LIBRPCXGUI)  \
		$(LIBXGUIMODI2) $(BN3DLIBMODI) $(LIBKERNEL) $(LIBFUNC) $(LDOPTIONSX)
	echo xguirpc linked.

$(PROGRAMKERNEL): $(RPCKERNELOBJECTS) $(LIBKERNELMODI) $(LIBRPCKERNEL) $(LIBFUNC)
	echo linking kernelrpc
	$(CC) -o $(PROGRAMKERNEL) $(LIBRPCKERNEL) $(LIBKERNELMODI) $(LIBFUNC) $(LDOPTIONSK)
	echo kernelrpc linked.
	 
$(LIBRPCXGUI): $(RPCXGUIOBJECTS) 
	$(AR) $(ARFLAGS) $(LIBRPCXGUI) $(RPCXGUIOBJECTS)
	$(RANLIB) $(LIBRPCXGUI)

$(LIBRPCKERNEL): $(RPCKERNELOBJECTS)
	$(AR) $(ARFLAGS) $(LIBRPCKERNEL) $(RPCKERNELOBJECTS)
	$(RANLIB) $(LIBRPCKERNEL)

$(LIBKERNELMODI): $(SNNSDIR)/kernel/bin/$(MACHINENAME)/libkernel.a $(LIBKERNELOBJECTS) kr_ui.c
	cp $(LIBKERNEL) $(LIBKERNELMODI)
	$(CC) $(CKKFLAGS) -c kr_ui.c
	$(AR) $(ARFLAGS) $(LIBKERNELMODI) kr_ui.o
	$(RANLIB) $(LIBKERNELMODI)

$(LIBXGUIMODI1): $(LIBXGUI1) $(XGUIOBJECTS1)
	cp $(LIBXGUI1) $(LIBXGUIMODI1)
	$(AR) $(ARFLAGS) $(LIBXGUIMODI1) $(XGUIOBJECTS1)
	$(RANLIB) $(LIBXGUIMODI1)

$(LIBXGUIMODI2): $(LIBXGUI2) $(XGUIOBJECTS2)
	cp $(LIBXGUI2) $(LIBXGUIMODI2)
	$(AR) $(ARFLAGS) $(LIBXGUIMODI2) $(XGUIOBJECTS2)
	$(RANLIB) $(LIBXGUIMODI2)

$(BN3DLIBMODI): $(BN3DLIB) $(BN3DOBJECTS)
	cp $(BN3DLIB) $(BN3DLIBMODI)
	$(AR) $(ARFLAGS) $(BN3DLIBMODI) $(BN3DOBJECTS)
	$(RANLIB) $(BN3DLIBMODI)

tarfile:
	tar cvFFf xguirpc.tar *
	compress xguirpc.tar

depend:
	$(CC) $(CDEPFLG) $(CPPFLAGS) $(MODULES) > xguirpc.ddt

# -- Dependencies --

include xguirpc.ddt


