/**/#
/**/#	This is an Imakefile for the XGobi program.  The only changes that
/**/#	should need to be made is for the XGOBID variable and sometimes
/**/#	the random number generator.
/**/#
/**/#  Set XGOBID to the directory containing 
/**/#  the xgobi directories src, help, ps, etc.
         #XGOBID = $(PWD)/..
# I'm defining DEFAULTDIR without using XGOBID; I suddenly
# starting having a weird problem with PWD.  If you're not
# building xgobi as we hand it out, this shouldn't bother
# you at all.
             CC = cc
             LD = 
     CDEBUGFLAGS = -g
#EXTRA_LDOPTIONS = -static
/**/# These were added as part of the DCE effort; they don't
/**/# seem to be used by my compiler.
       CCOPTIONS = -xansi -w -DDEBUG


/**/#  Choose a random number generator, random or drand48
               R = USE_RANDOM
              #R = USE_DRAND48

/**/#
/**/# RPC: Remote Procedure Calls
/**/#

/**/# If you plan to use RPC, uncomment this #define
/**/# RPC is the define for any kind of RPC
/* #define RPC */

/**/# Special RPCs
/* #define DCE_RPC */
/**/# If you plan to use XPLORE, uncomment this #define
/* #define XPLORE */

#ifdef HPArchitecture
               R = USE_DRAND48
       CCOPTIONS = -Aa -D_HPUX_SOURCE -DXLIB_ILLEGAL_ACCESS 
#endif

 LOCAL_LIBRARIES = XawClientLibs
#ifdef DCE_RPC
   SYS_LIBRARIES = -lm -ldce -lpthread
#else
   SYS_LIBRARIES = -lm
#endif
         DEFINES = -D$(R) -DDEFAULTDIR=\"$(PWD)/..\"
        #DEFINES = -D$(R) -DDEFAULTDIR=\"$(XGOBID)/..\"

JOINTSRC = xgobi_init.c pipeline.c read_array.c \
	initialize.c widgets.c callbacks.c getfname.c \
	xyplot.c make_axes.c line_editor.c missing.c  \
	spin_cbacks.c spin.c scaling.c scale_cbacks.c \
	identify.c var_panel.c transform.c transformw.c inference.c \
	brush_init.c brush_cbacks.c brush.c paint.c brush_send.c \
	help.c prt_plotwin.c subset.c vc_lists.c exclusion.c \
	plot_once.c dotplot.c texture.c move_points.c \
	show_message.c smooth.c smooth_fns.c smoothsk.c pspline.c \
	save_data.c new_data.c read_data.c jitter.c parcoords.c utils.c \
	tour_init.c tour_util.c tour.c tour_cbacks.c tour_send.c gt_ctls.c \
	tour_pp.c svd.c kernel.c \
	legendre.c hermite.c natrl_hermite.c de_indices.c \
	central_mass.c holes.c skewness.c \
	tour_section.c corr.c corr_index.c corr_pursuit.c corr_util.c \
	DrawingA.c
JOINTOBJ = xgobi_init.o pipeline.o read_array.o \
	initialize.o widgets.o callbacks.o getfname.o \
	xyplot.o make_axes.o line_editor.o missing.o  \
	spin_cbacks.o spin.o scaling.o scale_cbacks.o \
	identify.o var_panel.o transform.o transformw.o inference.o \
	brush_init.o brush_cbacks.o brush.o paint.o brush_send.o \
	help.o prt_plotwin.o subset.o vc_lists.o exclusion.o \
	plot_once.o dotplot.o texture.o move_points.o \
	show_message.o smooth.o smooth_fns.o smoothsk.o pspline.o \
	save_data.o new_data.o read_data.o jitter.o parcoords.o utils.o \
	tour_init.o tour_util.o tour.o tour_cbacks.o tour_send.o gt_ctls.o \
	tour_pp.o svd.o kernel.o \
	legendre.o hermite.o natrl_hermite.o de_indices.o \
	central_mass.o holes.o skewness.o \
	tour_section.o corr.o corr_index.o corr_pursuit.o corr_util.o \
	DrawingA.o

#ifdef RPC

#ifdef XPLORE
EXTRA_DEFINES = -DRPC_USED -DXPLORE
RPCSRC = rpc_client.c rpc_functions.c rpc_server_proc.c \
	rpc_server_svc.c rpc_spatial.c rpc_xgobi.c rpc_xpl.c
RPCOBJ = rpc_client.o rpc_functions.o rpc_server_proc.o \
	rpc_server_svc.o rpc_spatial.o rpc_xgobi.o rpc_xpl.o

#else
#ifdef DCE_RPC
EXTRA_DEFINES = -DDCE_RPC_USED
RPCSRC = rpc_client.c rpc_functions.c rpc_server_proc.c \
	rpc_server_svc.c rpc_spatial.c rpc_xgobi.c rpc_xpl.c
RPCOBJ = rpc_client.o rpc_functions.o rpc_server_proc.o \
	rpc_server_svc.o rpc_spatial.o rpc_xgobi.o rpc_xpl.o \
	rpc_dce_sstub.o rpc_dceclient_cstub.o

rpc_dceclient_sstub.o : rpc_dceclient_sstub.c
	$(CC) -c -o rpc_dceclient_sstub.o rpc_dceclient_sstub.c $(CFLAGS) -I.

rpc_dceclient_cstub.o : rpc_dceclient_cstub.c
	$(CC) -c -o rpc_dceclient_cstub.o rpc_dceclient_cstub.c $(CFLAGS) -I.

rpc_dceclient.h rpc_dceclient_cstub.c rpc_dceclient_sstub.c : rpc_dceclient.idl rpc_dceclient.acf
	idl rpc_dceclient.idl -keep c_source

rpc_dce_sstub.o : rpc_dce_sstub.c
	$(CC) -c -o rpc_dce_sstub.o rpc_dce_sstub.c $(CFLAGS) -I.

rpc_dce_cstub.o : rpc_dce_cstub.c
	$(CC) -c -o rpc_dce_cstub.o rpc_dce_cstub.c $(CFLAGS) -I.

rpc_dce.h rpc_dce_cstub.c rpc_dce_sstub.c : rpc_dce.idl rpc_dce.acf
	idl rpc_dce.idl -keep c_source

#else
EXTRA_DEFINES = -DRPC_USED
RPCSRC = rpc_client.c rpc_functions.c rpc_server_proc.c \
	rpc_server_svc.c rpc_spatial.c rpc_xgobi.c rpc_xpl.c
RPCOBJ = rpc_client.o rpc_functions.o rpc_server_proc.o \
	rpc_server_svc.o rpc_spatial.o rpc_xgobi.o rpc_xpl.o
#endif
#endif


#else
XGOBISRC = xgobi.c $(JOINTSRC)
XGOBIOBJ = xgobi.o $(JOINTOBJ)
#endif

XGVISSRC = xgvis.c xgv_dissim.c xgv_mds.c \
	xgv_molecule.c xgv_read_data.c xgv_help.c \
	xgv_stress.c xgv_cbacks.c xgv_widgets.c $(JOINTSRC)
XGVISOBJ = xgvis.o xgv_dissim.o xgv_mds.o \
	xgv_molecule.o xgv_read_data.o xgv_help.o \
	xgv_stress.o xgv_cbacks.o xgv_widgets.o $(JOINTOBJ)

all:: xgvis xgobi

SingleProgramTarget(xgobi, $(XGOBIOBJ), NullParameter, $(LOCAL_LIBRARIES))
SingleProgramTarget(xgvis, $(XGVISOBJ), NullParameter, $(LOCAL_LIBRARIES))

purexgobi: xgobi.o $(JOINTOBJ)
	purify -cache-dir=/tmp  -always-use-cache-dir=yes \
	${CC} ${CFLAGS} ${LD} ${LDOPTIONS} -o xgobi ${XGOBIOBJ} ${LOCAL_LIBRARIES} \
	${SYS_LIBRARIES}

purexgvis: xgvis.o $(XGVISOBJ)
	purify -cache-dir=/tmp  -always-use-cache-dir=yes \
	${CC} ${CFLAGS} ${LD} ${LDOPTIONS} -o xgvis ${XGVISOBJ} ${LOCAL_LIBRARIES} \
	${SYS_LIBRARIES}
