-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deprecate serial_cable
and parallel_cable
scripts
#193
Deprecate serial_cable
and parallel_cable
scripts
#193
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@harshula has tools for checking binary equivalence between executable files, these should be used so we can verify we haven't introduced any unwanted changes from refactoring.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Docs on building might need corresponding revision
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me. A couple of minor suggestions on the comments in the Makefile to make them more descriptive.
4db3a87
to
6b1a2f7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
Just curious: why were added dependencies needed at this point of the work? To fix the order of compilation?
Changes to
|
serial_cable
and parallel_cable
scripts
The changes to dependencies was a result of using the |
This change simplifies the CABLE offline build system by deprecating the `serial_cable` and `parallel_cable` build scripts and moving their functionality into the Makefile. Replace `ls *.o` in `serial_cable` and `parallel_cable` scripts with `$(OBJS)` in the Makefile where `OBJS` is a list of object files common to both serial and MPI. This is done so that: 1. We leverage `make` syntax to simplify the rules for `serial` and `mpi` targets. 2. We can replace the `all` target (which contains a list of object files as dependencies) with `$(OBJS)`. 3. We clean up the existing definition of `LSRC` in the Makefile and use this to generate a list of the required object files. See [#193][PR] for a sorted diff of the new `LSRC` variable against the previous `LSRC` and against the list of object file dependencies in the `all` target. Tools for testing binary equivalence of executables (see `ldd`, `nm` and `objdump` tools), show that the serial and MPI executables are equivalent to their respective executable in the main branch. Fixes #189 [PR]: #193
2ae8556
to
4926bb1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well done! Good work simplifying the build system and making it more maintainable.
The `serial_cable` and `parallel_cable` scripts were deprecated in CABLE-LSM/CABLE#193. This change does the same in the benchcab source code. For code branches that require the serial_cable and parallel_cable scripts can use the `build_script` key as a work around. Fixes #223
This pull request has been mentioned on ACCESS Hive Community Forum. There might be relevant details there: https://forum.access-hive.org.au/t/benchcab-python-based-software-for-the-evaluation-of-cable/873/7 |
This change simplifies the CABLE offline build system by deprecating the
serial_cable
andparallel_cable
build scripts and moving their functionality into the Makefile.Replace
ls *.o
inserial_cable
andparallel_cable
scripts with$(OBJS)
in the Makefile whereOBJS
is a list of object files common to both serial and MPI. This is done so that:make
syntax to simplify the rules forserial
andmpi
targets.all
target (which contains a list of object files as dependencies) with$(OBJS)
.LSRC
in the Makefile and use this to generate a list of the required object files.See #193 for a sorted diff of the new
LSRC
variable against the previousLSRC
and against the list of object file dependencies in theall
target.Tools for testing binary equivalence of executables (see
ldd
,nm
andobjdump
tools), show that the serial and MPI executables are equivalent to their respective executable in the main branch.Fixes #189
📚 Documentation preview 📚: https://cable--193.org.readthedocs.build/en/193/