diff --git a/doc/binary_c2.lyx b/doc/binary_c2.lyx index a1eba77ece1cbd03d2814d946171b8573721779b..f02c8152d83e8eae8b5d104fe9dfbad1c8c1c067 100644 --- a/doc/binary_c2.lyx +++ b/doc/binary_c2.lyx @@ -985,7 +985,7 @@ gcc status open \begin_layout Plain Layout -make +Perl5 \end_layout \end_inset @@ -995,7 +995,7 @@ make status open \begin_layout Plain Layout -Perl +Python3 \end_layout \end_inset @@ -1144,7 +1144,27 @@ BINARY_C \end_layout \begin_layout Itemize -(Do this once) Set up LD_LIBRARY_PATH in +(Do this once) Set up +\begin_inset Flex Envvar +status open + +\begin_layout Plain Layout +LIBRARY_PATH +\end_layout + +\end_inset + + and +\begin_inset Flex Envvar +status open + +\begin_layout Plain Layout +LD_LIBRARY_PATH +\end_layout + +\end_inset + + in \begin_inset Flex File status open @@ -1185,6 +1205,15 @@ status open export LD_LIBRARY_PATH=$HOME/lib \end_layout +\begin_layout Plain Layout + +export LIBRARY_PATH=$HOME/lib +\end_layout + +\begin_layout Plain Layout + +\end_layout + \end_inset and @@ -1523,7 +1552,7 @@ cd $BINARY_C \begin_layout Plain Layout -meson builddir +meson builddir --buildtype release \end_layout \begin_layout Plain Layout @@ -1533,7 +1562,7 @@ cd builddir \begin_layout Plain Layout -ninja +ninja \end_layout \begin_layout Plain Layout @@ -3282,7 +3311,7 @@ status open \begin_layout Plain Layout -meson builddir +meson builddir --buildtype release \end_layout \begin_layout Plain Layout @@ -3292,7 +3321,7 @@ cd builddir \begin_layout Plain Layout -ninja --buildtype release +ninja \end_layout \begin_layout Plain Layout @@ -4332,12 +4361,53 @@ binary_c status open \begin_layout Plain Layout -meson +Meson +\end_layout + +\end_inset + + to make +\begin_inset Foot +status open + +\begin_layout Plain Layout +Consider installing also +\begin_inset Flex Software +status open + +\begin_layout Plain Layout +ccache \end_layout \end_inset - to make a build directory, e.g., + and bash auto-completion for +\begin_inset Flex Software +status open + +\begin_layout Plain Layout +Meson +\end_layout + +\end_inset + + +\begin_inset Flex URL +status open + +\begin_layout Plain Layout + +https://github.com/ninja-build/ninja/blob/master/misc/bash-completion +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + a build directory, e.g., \family typewriter \series bold @@ -4775,7 +4845,15 @@ ninja \end_inset -and if you already have a + +\end_layout + +\begin_layout Subsubsection +Existing builddir +\end_layout + +\begin_layout Standard +If you already have a \begin_inset Flex File status open @@ -4785,7 +4863,7 @@ builddir \end_inset -, do the following, +, instead of deleting it, do the following, \begin_inset listings lstparams "language=bash" inline false diff --git a/meson.build b/meson.build index b1f20029e548586b7a2d1bef43223c7491dc5ba6..abbebb62e232c1732d7298ce98b5579f9ca99c6a 100644 --- a/meson.build +++ b/meson.build @@ -29,7 +29,7 @@ # define the binary_c project project( 'binary_c','c', - version : '2.1.3', + version : run_command('sh','-c','meson/binary_c_version.sh').stdout().strip(), default_options : [ 'c_std=gnu99', ] @@ -388,46 +388,94 @@ cflags += warn_flags ############################################################ # make precompiled headers (PCH) # +# PCH is (sort of) supported by Meson, but not really. +# Meson supports it if you have a pre-made .pch (or .gch +# for gcc) file, but that's not the case here. We should +# generate our own pch/gch file on the file, and *also* +# its dependencies in a pch.d/gch.d file. This is a bit +# complicated, as you will see below. +# -if get_option('usepch') == true +if get_option('usepch') == true + + _opt = '-O' + get_option('optimization') # required for __OPTIMIZE__ + + # normal dep file + _depfile_path = binary_c_src + '/binary_c.h.gch.d' + + # make a list of incdirs each prefixed by -I + _incdirs = [] + foreach _i : absolute_incdirs + _I = '-I' + _i + _incdirs += _I + endforeach + _incdirs += [ '-I.' ] + + # choose your compiler... + if compiler.get_id() == 'clang' + # clang PCH + + _pch = 'binary_c.h.pch' + use_pch_cflags = [ '-include-pch', _pch ] + pch_cflags = [ + _opt, + _incdirs, + ] + pch_sourcefiles = [ _pch ] + pch_post = [ '-o', _pch ] + pch_depfile = '' + + else + # GCC PCH + + _gch = 'binary_c.h.gch' + _gchd = '../src/' + _gch + '.d' + use_pch_cflags = [ ] # -include is not required + pch_cflags = [ _opt, + _incdirs, + '-MT', 'binary_c.h.gch', + '-MMD', + '-MP', + '-MF', _depfile_path, + '-x', 'c-header' + ] + pch_sourcefiles = [ _gch ] + cflags += [ '-fpch-deps', '-fpch-preprocess' ] + pch_post = [ ] + pch_depfile = _gch + '.d' + endif -if compiler.get_id() == 'clang' - _pch = binary_c_src + '/binary_c.h.pch' # old binary_c - _pch = 'binary_c.h.pch' - use_pch_cflags = [ '-include-pch', _pch ] - _opt = '-O' + get_option('optimization') # required - pch_cflags = [ _opt ] - pch_sourcefiles = [ 'binary_c.h.pch' ] - pch_post = [ '-o', _pch ] -else - _gch = binary_c_src + '/binary_c.h.gch' # old binary_c - _gch = 'binary_c.h.gch' - use_pch_cflags = [ ] # -include is not required - _opt = '-O' + get_option('optimization') # required for __OPTIMIZE_ - pch_cflags = [ _opt, '-x', 'c-header' ] - pch_sourcefiles = [ 'binary_c.h.gch' ] - pch_post = [ ] -endif -# make cflags for pch build -pch_cflags_array = cflags + pch_cflags + # make cflags for pch build + pch_cflags_array = cflags + pch_cflags -# append usage flags -cflags += use_pch_cflags + # append usage flags + cflags += use_pch_cflags -pch_compiler = compiler.cmd_array() + pch_cflags_array + pch_compiler = compiler.cmd_array() + pch_cflags_array -precompiled_headers = custom_target( + precompiled_headers = custom_target( + 'binary_c.h.pch', + build_by_default : true, + input : ['src/binary_c.h'], + output : pch_sourcefiles, + command : [ pch_compiler, '-gdwarf-2', '@INPUT@', pch_post ], + depend_files : [h_sourcefiles], + ) + +else + # disable PCH by removing the files it would have generated + + all_pch_sourcefiles = [ 'binary_c.h.gch', 'binary_c.h.pch' ] + precompiled_headers = custom_target( 'binary_c.h.pch', build_by_default : true, input : ['src/binary_c.h'], - output : pch_sourcefiles, - command : [ pch_compiler, '-gdwarf-2', '@INPUT@', pch_post ], + output : all_pch_sourcefiles, + command : [ 'rm', '-f', all_pch_sourcefiles ], depend_files : [h_sourcefiles], ) -else - precompiled_headers = [] endif diff --git a/meson/binary_c_version.sh b/meson/binary_c_version.sh new file mode 100755 index 0000000000000000000000000000000000000000..fd7f45fe131f3a25142b86fcd5eb83079862ddd5 --- /dev/null +++ b/meson/binary_c_version.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +# script to return the binary_c version number +grep define\ BINARY_C_VERSION\ \" src/binary_c_version.h | gawk "{print \$3}"|tr -d '"' diff --git a/meson/c_sourcefiles.sh b/meson/c_sourcefiles.sh index 01dc0f584f55cf9577bdce971aa34fe1431239d6..5192c8132571eac2ccff124dcdc16bc02985eef9 100755 --- a/meson/c_sourcefiles.sh +++ b/meson/c_sourcefiles.sh @@ -1,4 +1,4 @@ #!/bin/bash # list binary_c C source files for meson -ls src/*.c src/*/*.c +ls -1 src/*.c src/*/*.c diff --git a/meson/h_sourcefiles.sh b/meson/h_sourcefiles.sh index a1707077f5599cc26db497408964ceb193ce8f9c..da72810b17943c4f88d2130e2acdb6ce7478f3dd 100755 --- a/meson/h_sourcefiles.sh +++ b/meson/h_sourcefiles.sh @@ -1,4 +1,4 @@ #!/bin/bash # list binary_c header source files for meson -ls src/*.h src/*/*.h +ls -1 src/*.h src/*/*.h diff --git a/src/binary_c_debug.h b/src/binary_c_debug.h index 2139922716f9ee9bc31f10740e36aa36ab2d637f..adee6597609a9e2b2f9a9b8da2bee0d6ca25358a 100644 --- a/src/binary_c_debug.h +++ b/src/binary_c_debug.h @@ -36,7 +36,7 @@ * * See below for further options. */ -#define DEBUG 1 +#define DEBUG 0 /* * To remove debugging possibility from the code, globally, hence @@ -100,7 +100,7 @@ * this is not shown. */ -#define Debug_show_expression " sep=%g per=%g J=%g ",stardata->common.orbit.separation,stardata->common.orbit.period,stardata->common.orbit.angular_momentum +#define Debug_show_expression " " //#undef Debug_show_expression diff --git a/src/nucsyn/nucsyn_initial_abundances.c b/src/nucsyn/nucsyn_initial_abundances.c index f4cc257a1981ddc7f3ad824c5b52ddf9536cf936..56282cf4c8b546ee64ac2cfc301817f647090adb 100644 --- a/src/nucsyn/nucsyn_initial_abundances.c +++ b/src/nucsyn/nucsyn_initial_abundances.c @@ -48,6 +48,12 @@ void nucsyn_initial_abundances(Abundance * const X, */ Isotope i; + Dprint("init abunds\n"); + Dprint("init abunds stardata=%p\n",stardata); + Dprint("init abunds X=%p\n",X); + Dprint("init abunds Z=%g\n",Z); + Dprint("init abunds mix=%u\n",mix); + Dprint("Set init abunds Z=%g, mix=%u, stardata=%p, X=%p\n", Z, mix, diff --git a/src/perl/modules_targz/Binning-0.03.tar.gz b/src/perl/modules_targz/Binning-0.03.tar.gz index dc41739ae8ab02cb56e36cd2e0273f40162d0c3e..6e030b124ac1ec20b3019ee9ad9fe5b32dcb3b86 100644 Binary files a/src/perl/modules_targz/Binning-0.03.tar.gz and b/src/perl/modules_targz/Binning-0.03.tar.gz differ diff --git a/src/perl/modules_targz/Data-Serializer-RobJSON-0.05.tar.gz b/src/perl/modules_targz/Data-Serializer-RobJSON-0.05.tar.gz index b6b5e24f96263a3e46181d1700553896e429cd9a..e65e592cdbe89f2cf117ddc8d9cb62e3bff5e9e1 100644 Binary files a/src/perl/modules_targz/Data-Serializer-RobJSON-0.05.tar.gz and b/src/perl/modules_targz/Data-Serializer-RobJSON-0.05.tar.gz differ diff --git a/src/perl/modules_targz/Hash-RobMerge-0.14.tar.gz b/src/perl/modules_targz/Hash-RobMerge-0.14.tar.gz index 479b6cbc9e01dd807f7d765543809ba4018257d2..dd0a6397ec08420e152b633d4f303eb41fef7634 100644 Binary files a/src/perl/modules_targz/Hash-RobMerge-0.14.tar.gz and b/src/perl/modules_targz/Hash-RobMerge-0.14.tar.gz differ diff --git a/src/perl/modules_targz/Histogram-0.01.tar.gz b/src/perl/modules_targz/Histogram-0.01.tar.gz index 76999d49ce9e7c55a966e3a1b63e0998bf4b6e06..82bd5dfbc911898bb3aa7caab7468e17e74702a9 100644 Binary files a/src/perl/modules_targz/Histogram-0.01.tar.gz and b/src/perl/modules_targz/Histogram-0.01.tar.gz differ diff --git a/src/perl/modules_targz/IMF-0.05.tar.gz b/src/perl/modules_targz/IMF-0.05.tar.gz index f1c5c0c08d615140fd0d384110b1d69ddf3ce188..c8766090b763296655dfb525b13a0e1259ee2a2f 100644 Binary files a/src/perl/modules_targz/IMF-0.05.tar.gz and b/src/perl/modules_targz/IMF-0.05.tar.gz differ diff --git a/src/perl/modules_targz/Maths_Double-0.01.tar.gz b/src/perl/modules_targz/Maths_Double-0.01.tar.gz index 88173a8771e4a84cd97dde4a740e36087b01f049..b89be6a8a9ce9a3229dde92956701770011ecd29 100644 Binary files a/src/perl/modules_targz/Maths_Double-0.01.tar.gz and b/src/perl/modules_targz/Maths_Double-0.01.tar.gz differ diff --git a/src/perl/modules_targz/binary_grid-v2.1.4.tar.gz b/src/perl/modules_targz/binary_grid-v2.1.4.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..7593873caa4a970fcc62d6b27bb58fb8a0d4dd86 Binary files /dev/null and b/src/perl/modules_targz/binary_grid-v2.1.4.tar.gz differ diff --git a/src/perl/modules_targz/binary_stars-0.05.tar.gz b/src/perl/modules_targz/binary_stars-0.05.tar.gz index 506f0e5518c19fa1ba9798640b4a209c538aa354..5ec6948f60f9d797edf8e9a419ac6e66e612ac72 100644 Binary files a/src/perl/modules_targz/binary_stars-0.05.tar.gz and b/src/perl/modules_targz/binary_stars-0.05.tar.gz differ diff --git a/src/perl/modules_targz/cosmology-0.01.tar.gz b/src/perl/modules_targz/cosmology-0.01.tar.gz index 6fd1f2ba5219d9b5b9c7c37c070b3ae99742fda6..ba670e1ecea4be28b985d8afd0308a1912b9f173 100644 Binary files a/src/perl/modules_targz/cosmology-0.01.tar.gz and b/src/perl/modules_targz/cosmology-0.01.tar.gz differ diff --git a/src/perl/modules_targz/distribution_functions-0.05.tar.gz b/src/perl/modules_targz/distribution_functions-0.05.tar.gz index 33676132c58cf214f1adb86213fbf2cb7065e891..80c0a48aa51dabc33c0005cc03b581090be57f66 100644 Binary files a/src/perl/modules_targz/distribution_functions-0.05.tar.gz and b/src/perl/modules_targz/distribution_functions-0.05.tar.gz differ diff --git a/src/perl/modules_targz/rob_misc-0.16.tar.gz b/src/perl/modules_targz/rob_misc-0.16.tar.gz index 851580c8ca3f8b1b5c87dcd4066deaceba4c25c8..4a8fe9cf45058f12aab0ec0a98bd756e6ab5e64a 100644 Binary files a/src/perl/modules_targz/rob_misc-0.16.tar.gz and b/src/perl/modules_targz/rob_misc-0.16.tar.gz differ diff --git a/src/perl/modules_targz/robqueue-0.05.tar.gz b/src/perl/modules_targz/robqueue-0.05.tar.gz index 369d60b935b856b0d85d7bc973e8ae38f60d8162..b958de0a40d280528d42f35ed972967404ba9545 100644 Binary files a/src/perl/modules_targz/robqueue-0.05.tar.gz and b/src/perl/modules_targz/robqueue-0.05.tar.gz differ diff --git a/src/perl/modules_targz/spacing_functions-0.02.tar.gz b/src/perl/modules_targz/spacing_functions-0.02.tar.gz index ebae5f5460bf0b12d9acb76af4850f1aabe4faf0..3b85472346c2fac4fa333857f5272d3369b7b157 100644 Binary files a/src/perl/modules_targz/spacing_functions-0.02.tar.gz and b/src/perl/modules_targz/spacing_functions-0.02.tar.gz differ diff --git a/src/setup/parse_arguments.c b/src/setup/parse_arguments.c index 100dd348c0a2c9d428f4f6b2a46ec7f5554de608..98debb16e27b12e66986d0521e647a1d431e5651 100644 --- a/src/setup/parse_arguments.c +++ b/src/setup/parse_arguments.c @@ -539,7 +539,7 @@ static void derived_arguments(struct stardata_t * const stardata) stardata->star[0].stellar_type = stardata->preferences->initial_stellar_type1; stardata->star[1].stellar_type = stardata->preferences->initial_stellar_type2; - + stardata->common.orbit.angular_momentum = 0.0; if(Is_not_zero(stardata->star[0].mass) && Is_not_zero(stardata->star[1].mass)) { @@ -589,5 +589,5 @@ static void derived_arguments(struct stardata_t * const stardata) } #endif // NUCSYN && NUCSYN_YIELDS - + Dprint("end parse arguments\n"); } diff --git a/src/zfuncs/WR_mu.c b/src/zfuncs/WR_mu.c index 47e142c43453fa4a04d57def7ff347ca79659d13..597317d61690099ee8fcf848021362c6a9a73cd8 100644 --- a/src/zfuncs/WR_mu.c +++ b/src/zfuncs/WR_mu.c @@ -1,8 +1,10 @@ +#include "../binary_c.h" + /* * The mu factor which determines whether a star is a WR star or not * according to Hurley's prescription */ -#include "../binary_c.h" + double Pure_function WR_mu(const struct star_t * RESTRICT const star) {