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

Clean up the makefiles #47

Closed
tswilliams opened this issue Jul 12, 2017 · 1 comment
Closed

Clean up the makefiles #47

tswilliams opened this issue Jul 12, 2017 · 1 comment
Assignees

Comments

@tswilliams
Copy link
Collaborator

The structure of the makefiles - and the majority of their contents - has stayed constant since about 2012. However, 5 years later, the software now supports more OSes which motivates new build-tool functionality (e.g. possibility of disabling build of certain externals). Also over the past few years, various minor modifications have been made. Finally, a large fraction of the build rules for uHAL are duplicated across the different packages - these common rules & config could be moved into common files.

So the makefiles are overdue for some improvements and cleaning, which will be split up into several pull requests / issues that are referenced from this issue.

Non-exhaustive TODO/wish list:

  1. Specify which 'extern' packages are built using environment variables
  • Motivation: Different 'extern' packages need to be built on different operating systems, but ideally, the command for building the software should be the same on each OS (simply make for uHAL + ControlHub)
  • Initial idea:
    • Include/exclude build of each of the 'extern' packages based on value of new environment variables BUILD_BOOST, BUILD_PUGIXML and BUILD_ERLANG
    • Set the default value of these variables based on the OS (i.e. CACTUS_OS env var)
    • ... but still allow user to override these default values (e.g. by running make BUILD_BOOST=1 on centos7)
  1. Move duplicate rules/config from the several uHAL package makefiles into a common set of files
  • E.g. the src -> obj, and obj -> lib rules, g++ flags, and RPM-related rules/config
  • Can use similar work in SWATCH & MP7 as reference here
  1. Review what g++ flags are used on each OS
  • In order to have as strict checks as possible on the source code, while being wary of enabling warning messages that the source code will unavoidably produce.
@tswilliams tswilliams added this to the v2.6.0 release milestone Jul 12, 2017
tswilliams added a commit that referenced this issue Jul 12, 2017
… not, and set default values based on OS; refs issue #47
tswilliams added a commit that referenced this issue Jul 12, 2017
…kages that are not being built from source; refs issue #47
tswilliams added a commit that referenced this issue Jan 10, 2018
… empty file to prevent files from being regenerated, and library recompiled, in 'make rpm'; refs #47
@tswilliams
Copy link
Collaborator Author

All done. However, it would be useful to have a 2nd round of minor cleanup in the near future. Closing.

@tswilliams tswilliams self-assigned this Jan 28, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant