From b617bec4479efdeddd25b0eb1869974bf60b46b8 Mon Sep 17 00:00:00 2001
From: David Hendriks <davidhendriks93@gmail.com>
Date: Fri, 8 Nov 2019 12:39:01 +0000
Subject: [PATCH] shared Library generation works now

---
 binaryc/custom_logging.c      |   6 ++----
 binaryc/functions.py          |  22 ++++++++++++++--------
 binaryc/lib_custom_logging.so | Bin 0 -> 9160 bytes
 3 files changed, 16 insertions(+), 12 deletions(-)
 create mode 100755 binaryc/lib_custom_logging.so

diff --git a/binaryc/custom_logging.c b/binaryc/custom_logging.c
index 22c19e9..e25c5fb 100644
--- a/binaryc/custom_logging.c
+++ b/binaryc/custom_logging.c
@@ -8,10 +8,8 @@ void custom_output_function(struct stardata_t * stardata);
 void custom_output_function(struct stardata_t * stardata)
 {
     // struct stardata_t * stardata = (struct stardata_t *)x;
-    PRINTF("MY_STELLAR_DATA %g %g
-",((double)stardata->model.time),((double)stardata->star[0].mass));
-PRINTF("my_sss2 %g %g
-",((double)stardata->model.time),((double)stardata->star[1].mass));;
+    PRINTF("MY_STELLAR_DATA %g %g\n",((double)stardata->model.time),((double)stardata->star[0].mass));
+PRINTF("my_sss2 %g %g\n",((double)stardata->model.time),((double)stardata->star[1].mass));;
 }
 
 #undef MAX 
diff --git a/binaryc/functions.py b/binaryc/functions.py
index b9d635e..207f757 100644
--- a/binaryc/functions.py
+++ b/binaryc/functions.py
@@ -39,7 +39,7 @@ def autogen_C_logging_code(logging_dict):
             code += 'PRINTF("{}'.format(key)
             code += ' {}'.format('%g '*len(logging_dict_entry))
             code = code.strip()
-            code += '\n"'
+            code += '\\n"'
 
             # Add format keys
             for param in logging_dict_entry:
@@ -118,7 +118,9 @@ def return_compilation_dict():
     inspired by binary_c_inline_config command in perl
 
     TODO: this function still has some cleaning up to do wrt default values for the compile command
-    
+    # https://developers.redhat.com/blog/2018/03/21/compiler-and-linker-flags-gcc/
+
+
     returns:
      - string containing the command to build the shared library
     """    
@@ -171,7 +173,7 @@ def return_compilation_dict():
     ccflags = defaults['ccflags'] #  = $ENV{BINARY_GRID2_CCFLAGS} // ($defaults{ccflags}) . ($ENV{BINARY_GRID2_EXTRACCFLAGS} // '');
   
     # you must define _SEARCH_H to prevent it being loaded twice
-    ccflags += ' -D_SEARCH_H'
+    ccflags += ' -shared -D_SEARCH_H'
 
     # ensure library paths to the front of the libs:
     libs_content = libs.split(' ')
@@ -204,6 +206,7 @@ def compile_shared_lib(code, sourcefile_name, outfile_name):
     # create compilation command
     compilation_dict = return_compilation_dict()
 
+    # Construct full command
     command = "{cc} {ccflags} {libs} -o {outfile_name} {sourcefile_name} {inc}".format(
         cc=compilation_dict['cc'],
         ccflags=compilation_dict['ccflags'],
@@ -216,13 +219,12 @@ def compile_shared_lib(code, sourcefile_name, outfile_name):
     command = ' '.join(command.split())
 
     # Execute compilation
+    print('Executing following command:\n{command}'.format(command=command))
     res = subprocess.check_output('{command}'.format(command=command),
-        shell=True, stderr=subprocess.STDOUT)
-    print(res)    
-
+        shell=True)
 
-
-    # return command
+    if res:
+        print('Output of compilation command:\n{}'.format(res))
 
 # generate logging lines
 logging_line = autogen_C_logging_code(
@@ -235,4 +237,8 @@ logging_line = autogen_C_logging_code(
 # Generate code around logging lines
 created_code = binary_c_log_code(logging_line)
 
+
+# print(created_code)
+# quit()
+
 compile_shared_lib(created_code, sourcefile_name='custom_logging.c', outfile_name='lib_custom_logging.so')
\ No newline at end of file
diff --git a/binaryc/lib_custom_logging.so b/binaryc/lib_custom_logging.so
new file mode 100755
index 0000000000000000000000000000000000000000..b2c0fa24f9f8a708aa4a26ff82f63ae200029d10
GIT binary patch
literal 9160
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

literal 0
HcmV?d00001

-- 
GitLab