Skip to content
Snippets Groups Projects
  1. Jul 03, 2023
  2. Jun 16, 2023
  3. May 25, 2023
  4. May 04, 2023
  5. Apr 06, 2023
  6. Apr 04, 2023
  7. Feb 08, 2023
  8. Nov 30, 2022
  9. Nov 21, 2022
  10. Sep 27, 2022
  11. Sep 20, 2022
    • Simon Rose's avatar
      Move Wrapper test class from conftest.py · fb9ab6d1
      Simon Rose authored
      fb9ab6d1
    • Simon Rose's avatar
      Ensure that EPICS_DRIVER_PATH is set first · afeded38
      Simon Rose authored
      Previously, it was the case that running
      ```
      $ iocsh -r module -l cellMods
      $ iocsh -l cellMods -r module
      ```
      would both work correctly, but if you looked at the IOC log it was not
      clear why that was the case; in the former case it _appeared_ like we
      were finding the module before setting `EPICS_DRIVER_PATH`. This only
      worked because this variable is exported from the shell.
      
      This change forces the `-l` flag to be processed _before_ all of the
      other flags in order to ensure that paths are determined first.
      afeded38
  12. Sep 15, 2022
  13. Sep 14, 2022
    • Simon Rose's avatar
      E3-944: Warn if building from install path · df112375
      Simon Rose authored
      If a user runs the build from the E3_SITEMODS_PATH, then it can happen that
      false dependencies get registered due to how the generated .d files are
      parsed to determine module dependencies. Specifically, if you have header
      file being used that is located at
      
      ${E3_SITEMODS_PATH}/e3-module/module/src/header.h
      
      and it is _not_ being installed, then the dependency parsing script will
      see a dependency as an absolute path, and so register that your module
      depends on the module `e3-module` version `module`, which is obviously
      not what was intended.
      
      While we don't want to stricly _prevent_ a user from building there, it
      seems wise to _warn_ a user that there may be unintended consequences.
      df112375
  14. Sep 07, 2022
  15. Aug 22, 2022
    • Simon Rose's avatar
      E3-894: Fix issue where non-existent versions would cause the build to hang · 8601a15d
      Simon Rose authored
      The ultimate issue here was that we performed a
      ```
      cat $( ... ) | sed '1d'
      ```
      and if that inner block was empty, then `cat` reverted to waiting for user input. The
      error also came up with non-specified build numbers, so we need to make sure that those
      are also being fetched correctly.
      
      The upshot is now `<module>_VERSION` will automatically fetch the correct build number;
      the only potential downside is that if we have a newer version in `${E3_SITEMODS_PATH}`
      in comparison to `${EPICS_MODULES}` (read: cellMods), then it won't pick that up. However,
      this seems to be a pretty special corner case.
      8601a15d
    • Simon Rose's avatar
      1780206d
  16. Aug 19, 2022
    • Simon Rose's avatar
    • Simon Rose's avatar
      E3-921: Add test to ensure that failed architectures cause build to fail · 818eafee
      Simon Rose authored
      This adds a test that checks that if a single architecture fails, then the build
      fails as a whole.
      
      There are some slight complications in terms of writing good tests, since we do not
      want to use real architectures. Since the source files are converted from
      `SOURCES -> SRCS -> LIBOBJS` and we finally have the dependency
      ```make
      ${DEPFILE}: ${LIBOBJS}
      ```
      we need to ensure that `LIBOBJS` is properly populated before we get to this point.
      The challenge, however, is that `LIBOBJS` is defined (in terms of `SRCS` as
      ```make
      LIBOBJS += $(addsuffix $(OBJ),$(notdir $(basename $(filter-out %.$(OBJ) %$(LIB_SUFFIX),$(sort ${SRCS})))))
      ```
      and `LIB_SUFFIX` is set in `${CONFIG}/os/CONFIG.Common.${T_A}`. This is why
      we need to do the workaround of hand-defining it at the beginning.
      818eafee
  17. Aug 03, 2022
    • Simon Rose's avatar
      Updated CHANGELOG, added comment to test · c51a6894
      Simon Rose authored
      c51a6894
    • Simon Rose's avatar
      Removed EPICSVERSION loop · 1187d3e8
      Simon Rose authored
      1187d3e8
    • Simon Rose's avatar
      Rewrote the .template/.substitution expansion · 96d2346d
      Simon Rose authored
      This is necessary for the following reason: the previous mechanism used an
      eval/call combination that required SUBS and TMPS to be exported on a previous
      pass through. This allowed us to use `vpath` for each specific file in order
      to locate the correct source files.
      
      In order to avoid that, we add two new ingredients:
      * `VPATH` instead of `vpath`, since it allows us to have variables
        that are expanded later
      * `.SECONDEXPANSION`, which allows a target (`db_internal`, in this case) to
        perform a second variable expansion at the _end_ of the pass through.
      
      All of this is necessary because the typical module makefile looks like:
      ```
      include driver.makefile
      
      SUBS += ...
      ```
      i.e. `SUBS` and `TMPS` are defined _after_ the inclusion of driver.makefile. If
      we don't want to force a re-write of every single module makefile, we needed
      to do some of the above changes.
      96d2346d
    • Simon Rose's avatar
      Add tests for architecture filtering · d666ced4
      Simon Rose authored
      Note that there is something surprising here: `EXCLUDE_ARCHS` _filters_
      the architectures (i.e. runs it as %arch%), while `ARCH_FILTER` matches
      exactly. This is exactly backwards from what the names suggest.
      
      However, I am leaving this as is for the time being since there are
      possibly existing wrappers that use these two variables in this way; a
      further investigation should be done to ensure that we can improve this
      in some sense. If we make such a change, we should regard it as breaking.
      d666ced4
    • Lucas Magalhães's avatar
      driver.Makefile: Add check for inconsistent versions between dependencies · 91ab6382
      Lucas Magalhães authored
      In a dependency chain like B->A->C and also B->C where A needs a version
      of C different than B the build should fail.
      This commit adds this check during dependency treatment on the built
      target.
      91ab6382
  18. May 30, 2022
  19. May 05, 2022
  20. Mar 24, 2022
  21. Mar 22, 2022
    • Simon Rose's avatar
      Duplicated test · 17dad862
      Simon Rose authored
      17dad862
    • Simon Rose's avatar
      Two more tests · 1f71c033
      Simon Rose authored
      * One test to catch invalid dependencies
      * One test to catch architecture-dependent dependencies. Note that this itself does depend on
        the underlying architecture, which probably should be improved. But at the moment we only
        build for linux-based architectures, so this should be ok.
      1f71c033
Loading