head	1.10;
access;
symbols
	charm6_1:1.10
	charm_6_0_1:1.10
	charm6_0_1:1.10
	charm6_0:1.7
	ChaNGa_1-0:1.7
	charm5_9:1.5;
locks; strict;
comment	@# @;


1.10
date	2008.04.29.18.51.51;	author gioachin;	state Exp;
branches;
next	1.9;
commitid	Rk95uQVnRiWDj21t;

1.9
date	2008.04.22.20.51.44;	author idooley2;	state Exp;
branches;
next	1.8;
commitid	FE8ThtAfmXcCc90t;

1.8
date	2008.03.26.03.21.32;	author gioachin;	state Exp;
branches;
next	1.7;
commitid	YnBbeF1U3aMggAWs;

1.7
date	2005.09.26.16.03.55;	author gzheng;	state Exp;
branches;
next	1.6;

1.6
date	2005.09.03.00.37.05;	author gioachin;	state Exp;
branches;
next	1.5;

1.5
date	2005.03.08.05.39.01;	author gioachin;	state Exp;
branches;
next	1.4;

1.4
date	2004.11.21.01.05.27;	author gioachin;	state Exp;
branches;
next	1.3;

1.3
date	2004.10.05.20.24.54;	author gioachin;	state Exp;
branches;
next	1.2;

1.2
date	2004.09.24.22.13.46;	author gioachin;	state Exp;
branches;
next	1.1;

1.1
date	2004.06.02.00.39.00;	author gioachin;	state Exp;
branches;
next	;


desc
@@


1.10
log
@fixed include problem
@
text
@CDIR=../../../..
OPTS=-g -Wall
CHARMC=$(CDIR)/bin/charmc $(OPTS)
CHARMXI=$(CHARMC) -intrinsic

HEADERS=PythonCCS.h PythonCCS-client.h PythonCCS.decl.h pythonIncludes.h
HEADDEP=$(HEADERS) PythonCCS.def.h charmdebug_python.def.h
OBJS=PythonCCS.o PythonCCS-client.o
OBJS_DEBUG=charmdebug-python.o
DEST=$(CDIR)/lib/libmodulePythonCCS.a
DEST_DEBUG=$(CDIR)/lib/libmodulecharmdebug_python.a

all:
	-(CHARMINC=../../../../include;. $$CHARMINC/conv-config.sh; \
	if test "$$CMK_BUILD_PYTHON" != ""; then ($(MAKE) conditional OPTS='$(OPTS)' || exit 1); fi)

conditional: $(DEST) $(DEST_DEBUG) headers

$(DEST): $(OBJS)
	$(CHARMC) $(OBJS) -o $@@

$(DEST_DEBUG): $(OBJS_DEBUG)
	$(CHARMC) $(OBJS_DEBUG) -o $@@

headers: $(HEADERS)
	cp $(HEADERS) $(CDIR)/include/
	touch headers

PythonCCS.o: PythonCCS.C $(HEADDEP)
	$(CHARMC) -c $(FLAGS) PythonCCS.C

PythonCCS-client.o: PythonCCS-client.C $(HEADDEP)
	$(CHARMC) -c $(FLAGS) PythonCCS-client.C

PythonCCS.decl.h PythonCCS.def.h: PythonCCS.ci
	$(CHARMXI) PythonCCS.ci

charmdebug-python.o: charmdebug-python.C $(HEADDEP)
	$(CHARMC) -c $(FLAGS) -I. charmdebug-python.C

charmdebug_python.decl.h charmdebug_python.def.h: charmdebug-python.ci
	$(CHARMXI) charmdebug-python.ci

pythonIncludes.h:
	(CHARMINC=../../../../include;. $$CHARMINC/conv-config.sh; \
	echo "#include \"python$$CMK_BUILD_PYTHON/Python.h\"" > pythonIncludes.h; \
	echo "#include \"python$$CMK_BUILD_PYTHON/compile.h\"" >> pythonIncludes.h; \
	echo "#include \"python$$CMK_BUILD_PYTHON/eval.h\"" >> pythonIncludes.h; \
	echo "#include \"python$$CMK_BUILD_PYTHON/node.h\"" >> pythonIncludes.h \
	) 

clean:
	rm -rf *.a *~ *.def.h *.decl.h *.o SunWS_cache $(DEST) $(DEST_DEBUG) pythonIncludes.h headers
@


1.9
log
@Fixed a slight problem where some shells don't interpret a \n correctly.
@
text
@d46 4
a49 4
	echo -e "#include \"python$$CMK_BUILD_PYTHON/Python.h\"\n"\
	"#include \"python$$CMK_BUILD_PYTHON/compile.h\"\n"\
	"#include \"python$$CMK_BUILD_PYTHON/eval.h\"\n"\
	"#include \"python$$CMK_BUILD_PYTHON/node.h\"" > pythonIncludes.h \
@


1.8
log
@Added flag "-debug" to charmc for usage with charmdebug.
Some work done on CmiReduce to make it possible to have concurrent reductions.
Added memory tagging by chare ID in charmdebug.
Fixed breakpointing with charmdebug: now each entry point is defined by its sequential index in the EP table (before a string match was performed).
Added stepping: delivery of a single message in the queue. Also, all the system entry methods are currently always executed, and never get buffered by charmdebug (they can still breakpoint if the user so chooses).
Fixed race condition in python interface. To do that the interface itself has been modified, in particular with regard to high-level python. Python is now more flexible and it allows any chare collection to be "python" and receive requests. The replies are reduced to a PythonCCS mainchare which will handle the socket.
The python directory has now another module (charmdebug-python) for usage by charmdebug introspection code.
@
text
@d46 1
a46 1
	echo "#include \"python$$CMK_BUILD_PYTHON/Python.h\"\n"\
@


1.7
log
@fixed syntax error in Makefile
@
text
@d4 1
d6 2
a7 2
HEADERS=PythonCCS.h PythonCCS-client.h PythonCCS.decl.h
HEADDEP=$(HEADERS) PythonCCS.def.h
d9 1
d11 1
d13 5
a17 1
all: $(DEST) headers
d22 3
d36 15
a50 1
	$(CHARMC) PythonCCS.ci
d53 1
a53 1
	rm -rf *.a *~ *.def.h *.decl.h *.o SunWS_cache $(DEST) headers
@


1.6
log
@changed mode of copying headers from ln to cp
@
text
@d16 1
a16 1
	cp ($HEADERS) $(CDIR)/include/
@


1.5
log
@updated python interface: main change is a cleanup to the semantics, and a
few bugfixes
@
text
@d16 2
a17 3
	ln -sf ../tmp/libs/ck-libs/pythonCCS/PythonCCS.h $(CDIR)/include/
	ln -sf ../tmp/libs/ck-libs/pythonCCS/PythonCCS-client.h $(CDIR)/include/
	ln -sf ../tmp/libs/ck-libs/pythonCCS/PythonCCS.decl.h $(CDIR)/include/
@


1.4
log
@new interface for python, more user friendly
@
text
@d2 1
d30 1
a30 1
	rm -rf *.a *.def.h *.decl.h *.o SunWS_cache $(DEST) headers
@


1.3
log
@added pythonCCS interface to LIBS autobuild
@
text
@d4 1
a4 1
HEADERS=PythonCCS.h PythonCCS.decl.h
d6 1
a6 1
OBJS=PythonCCS.o
d16 1
d22 3
@


1.2
log
@new interface for python. for this, the .ci parser has been improved to accept
a new parameter named [python], and generate all the support classes needed by
python interface.
still, the python interface is not built by default
@
text
@d4 2
a5 2
HEADERS=PythonCCS.h PythonCCS.decl.h PythonCCS.def.h
HEADDEP=$(HEADERS)
d9 1
a9 1
all: $(DEST)
d11 2
a12 2
$(DEST): $(OBJS) $(COMPAT)
	$(CHARMC) $(OBJS) $(COMPAT) -o $@@
d15 2
a16 2
	ln -s $(HEADERS) $(CDIR)/include/
	touch headers
@


1.1
log
@Check in CCS interface for python. This interface currently works for Chare, Group, NodeGroup, Array1D, Array2D.
It works also in the SMP version, even if the execution is serialized due to a conflict with multi-threads. This has to be fixed.
The interface provide the following methods to python code through the "ck" module:
printstr, mype, numpes, myindex (only for array1D), read, write
the last two must be reimplemented in the user code and will allow python to access data variables into the running program
@
text
@d11 1
a11 1
$(DEST): $(OBJS) $(COMPAT) headers
d15 1
a15 1
	cp $(HEADERS) $(CDIR)/include/
@

