/***********************************************************************
 First, include common settings across all compiler-specific Imakefiles
************************************************************************/
#include "Imakefile.common"
#include "Imakefile.common.compiler"


/***********************************************************************
 Now, define make variables that are specific to this compiler
************************************************************************/
CC = CPP_COMPILER
CPlusPlus = CPP_COMPILER
CFLAGS	= $(BUILD_FLAGS) $(INCLUDE_FLAGS) -g 
C_PLUS_FLAGS = $(CFLAGS)


/***********************************************************************
 Next, define tests that are specific to C++
************************************************************************/

/****************************
 * Core C++ Functionality 
 ***************************/

#if !defined(IS_HPUX10)
DESC(job_core-cpp_exception_std,"C++ exception handling")
CBUILD($(CC),job_core-cpp_exception_std,cpp)
DEP_SYMLINK_EXT(job_core-cpp_exception_std,cmd)
RUN(job_core-cpp_exception_std)
TESTCLASS(job_core-cpp_exception_std,framework)
TESTCLASS(job_core-cpp_exception_std,quick)
TESTCLASS(job_core-cpp_exception_std,full)
#endif

DESC(job_core-cpp_mem-alloc_std,"Memory allocation and constructors")
CBUILD($(CC),job_core-cpp_mem-alloc_std,cpp)
DEP_SYMLINK_EXT(job_core-cpp_mem-alloc_std,cmd)
RUN(job_core-cpp_mem-alloc_std)
TESTCLASS(job_core-cpp_mem-alloc_std,framework)
TESTCLASS(job_core-cpp_mem-alloc_std,quick)
TESTCLASS(job_core-cpp_mem-alloc_std,full)


/****************************
 * Remote System Calls
 ***************************/

DESC(job_rsc_fstream_std,"Does the C++ fstream() interface work?")
CBUILD($(CC),job_rsc_fstream_std,cpp)
DEPS(job_rsc_fstream_std,x_data.in)
DEP_SYMLINK_EXT(job_rsc_fstream_std,cmd)
RUN(job_rsc_fstream_std)
TESTCLASS(job_rsc_fstream_std,stduniv)
TESTCLASS(job_rsc_fstream_std,framework)
TESTCLASS(job_rsc_fstream_std,quick)
TESTCLASS(job_rsc_fstream_std,full)
TESTCLASS(job_rsc_fstream_std,rsc)


/****************************
 * Checkpointing
 ***************************/

DESC(job_ckpt_constructor_std,"Test C++ global and local constructors")
CBUILD($(CC),job_ckpt_constructor_std,cpp)
DEP_SYMLINK_EXT(job_ckpt_constructor_std,cmd)
RUN(job_ckpt_constructor_std)
TESTCLASS(job_ckpt_constructor_std,stduniv)
TESTCLASS(job_ckpt_constructor_std,framework)
TESTCLASS(job_ckpt_constructor_std,quick)
TESTCLASS(job_ckpt_constructor_std,full)
TESTCLASS(job_ckpt_constructor_std,ckpt)

DESC(job_ckpt_env_std,"Is the environment restored after ckpt?")
CBUILD($(CC),job_ckpt_env_std,cpp)
DEP_SYMLINK_EXT(job_ckpt_env_std,cmd)
RUN(job_ckpt_env_std)
TESTCLASS(job_ckpt_env_std,stduniv)
TESTCLASS(job_ckpt_env_std,framework)
TESTCLASS(job_ckpt_env_std,quick)
TESTCLASS(job_ckpt_env_std,full)
TESTCLASS(job_ckpt_env_std,ckpt)

DESC(job_ckpt_memory-file_std,"Does the memory_file class work across ckpts?")
CBUILD($(CC),job_ckpt_memory-file_std,cpp)
DEP_SYMLINK_EXT(job_ckpt_memory-file_std,cmd)
RUN(job_ckpt_memory-file_std)
TESTCLASS(job_ckpt_memory-file_std,stduniv)
TESTCLASS(job_ckpt_memory-file_std,framework)
TESTCLASS(job_ckpt_memory-file_std,long)
TESTCLASS(job_ckpt_memory-file_std,full)
TESTCLASS(job_ckpt_memory-file_std,ckpt)


/***********************************************************************
  Finally, include all the tests that are common to both C and C++
************************************************************************/
#include "CImakefile.common"

