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