Fix parallel build of examples/charm++/user-driven-interop 19/5119/3
authorEvan Ramos <evan@hpccharm.com>
Thu, 25 Apr 2019 17:46:44 +0000 (12:46 -0500)
committerEvan Ramos <evan@hpccharm.com>
Thu, 25 Apr 2019 18:04:05 +0000 (13:04 -0500)
Change-Id: Ia61e62b7e01a15308241250468918c1b79652085

examples/charm++/user-driven-interop/Makefile
examples/charm++/user-driven-interop/hello_user.ci
examples/charm++/user-driven-interop/hello_user.cpp

index 9e1d00813d5fbdacf3e11ca7b8f6d940186df333..494193d00b1ffbfd5fe2bbad97f03dbcccdbda63 100644 (file)
@@ -4,13 +4,23 @@ CHARMC=../../../bin/charmc $(OPTS)
 
 all: hello_user hello_user_with_main
 
-hello_user: hello_user.cpp
-       $(CHARMC) hello_user.ci
-       $(CHARMC) -c hello_user.cpp -o hello_user
+hello_user.decl.h: hello_user.ci
+       $(CHARMC) $<
 
-hello_user_with_main: hello_user.cpp
-       $(CHARMC) -DHELLO_USE_MAINCHARE hello_user.ci
-       $(CHARMC) -DHELLO_USE_MAINCHARE -c hello_user.cpp -o hello_user_with_main
+hello_user.o: hello_user.cpp hello_user.decl.h
+       $(CHARMC) -c $< -o $@
+
+hello_user: hello_user.o
+       $(CHARMC) -c $^ -o $@
+
+hello_user_with_main.decl.h: hello_user.ci
+       $(CHARMC) -DHELLO_USE_MAINCHARE $<
+
+hello_user_with_main.o: hello_user.cpp hello_user_with_main.decl.h
+       $(CHARMC) -DHELLO_USE_MAINCHARE -c $< -o $@
+
+hello_user_with_main: hello_user_with_main.o
+       $(CHARMC) -DHELLO_USE_MAINCHARE -c $^ -o $@
 
 clean:
        rm -f hello_user hello_user_with_main *.o charmrun *.decl.h *.def.h
index 36d1e369907e88aebccad42f0193bb64ecad950d..d8c6f4f6229b40d4bfc75952561e6524a56c67e4 100644 (file)
@@ -1,4 +1,10 @@
+/* Using the preprocessor in this way is non-idiomatic, but it is here
+ * to keep the test case compact while allowing parallel building. */
+#ifdef HELLO_USE_MAINCHARE
+mainmodule hello_user_with_main {
+#else
 mainmodule hello_user {
+#endif
   readonly CProxy_Hello helloProxy;
 
 #ifdef HELLO_USE_MAINCHARE
index 19d9ddbfd0e12684e5eb02a1c01753b1968961ae..2b072c946987c43c434724ff8d38657b83094eca 100644 (file)
@@ -1,4 +1,8 @@
+#ifdef HELLO_USE_MAINCHARE
+#include "hello_user_with_main.decl.h"
+#else
 #include "hello_user.decl.h"
+#endif
 #include "mpi-interoperate.h"
 
 CProxy_Hello helloProxy;
@@ -100,4 +104,8 @@ int main(int argc, char** argv) {
   return 0;
 }
 
+#ifdef HELLO_USE_MAINCHARE
+#include "hello_user_with_main.def.h"
+#else
 #include "hello_user.def.h"
+#endif