Skip to content
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

Feature "minor" environment additions #444

Merged
merged 6 commits into from
Sep 21, 2018
Merged

Conversation

mainegra
Copy link
Contributor

@mainegra mainegra commented May 9, 2018

This pull request introduces the tool used at NRC to create compressed and uncompressed archives with files to be distributed with the EGSnrc system. Since the move to github it only includes statically built Qt GUIs and required libraries, although in the past it was used to distribute the whole EGSnrc system.

Several fixes were made to make the process as straightforward as possible. However, one still has to build the Windows component on a Windows machine. Here are the fixes:

  • Added or corrected Makefile targets 'realclean' for egspp and the GUIs
  • Expanded 'clean' Makefile target for iaea_phsp to include all object files
  • Fixed bug in file HEN_HOUSE/distribution/egs_guis_list whereby the egs_track_scoring.dll was not added to the pre-compiled egspp library making track visualization crash on Windows.

@mainegra
Copy link
Contributor Author

Resolved conflict in file $HEN_HOUSE/specs/windows.spec due the definition of gui_make. It was set to mingw32-make which is the most likely make utility, but users should not be restricted to MinGW. Using now
gui_make = $(make_prog)
variable make_prog is set during the configuration phase.

@rtownson
Copy link
Collaborator

Great work, this will save a lot of future hair-pulling! The c++ codes should be run through astyle.

@mainegra
Copy link
Contributor Author

Good idea @rtownson !

Add a 'realclean' phony target which removes all objects files and
libraries from the dso/config folder that belong to the egs++ library
including sources and geometries. Useful when one wants to recompile the
full library.

The 'clean' target only removes object files in the egs++ folder without
cleaning objects for geometries, sources, etc. It is meant to only
rebuild the basic part of egs++.

Note that libiaea_phsp.so (iaea_phsp.lib on Windows) is preserved.

Fix the 'realclean' target for guis as well, to make it general for
Linux and Windows and use the proper Makefile name.

Also expand the 'clean' rule in the iaea_phsp makefile to remove all
object files.
- Call target 'realclean' for egs++
- Build only geometry, shapes and ausgab objects in 'egspp' target:
  those are the only ones needed for egs_view
- Remove iaea_phsp dependency from 'egspp' target
- Remove variable 'cleanup'
- Add comments
- Add call to 'realclean' egspp
- Use 'realclean' for egs_view
- Updated output message to reflect library cleaning
- builds only geometry, shapes and ausgab objects as those are the only
  ones needed for egs_view
- Removed iaea_phsp build
- Add variable the_config
@ftessier
Copy link
Member

The distribution tools were moved to a new admin branch, in which develop can be merged before building distribution files.

Define the variable the_config in windows makefiles, allowing the use of
an existing configuration. Previously, this was hard-coded in the build
paths as win-static.
Set the gui_make command name to the make utility used during the
configuration, which is available in the configuration file via the
variable make_prog.
@ftessier ftessier merged commit b0b25c1 into develop Sep 21, 2018
@ftessier ftessier deleted the feature-minor-env-additions branch September 21, 2018 23:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants