Skip to content
Snippets Groups Projects
Commit 8163d904 authored by kpetersn's avatar kpetersn
Browse files

Minor tweaks and corrections

parent b9a293da
No related branches found
No related tags found
1 merge request!2Fanny whatdoesitmean
...@@ -167,13 +167,14 @@ $ ...@@ -167,13 +167,14 @@ $
<details> <details>
<summary>what does this mean?</summary> <summary>what does this mean?</summary>
We are using a synApps release of EPICS, which is a set of pre-built support modules for EPICS. The ``SUPPORT`` variable is defined to point to the directory where the synApps support modules are installed: We are using the 6.2.1 release of synApps, which is a collection of EPICS modules that are deployed and tested at the APS. The ``SUPPORT`` variable is defined to point to the directory where the synApps support modules are installed:
**/APSshare/epics/synApps_6_2_1/support**. **/APSshare/epics/synApps_6_2_1/support**.
The ``-include`` directive is used to include the **configure/RELEASE** file from the synApps support module directory, which sets various EPICS-related environment variables, including ``EPICS_BASE``, as needed for building the IOC. The ``-include`` directive is used to include the **configure/RELEASE** file from the synApps support module directory, which sets various EPICS-related environment variables, including ``EPICS_BASE``, as needed for building the IOC.
Therefore, we do not need to explicitly set the ``EPICS_BASE`` variable in your **configure/RELEASE** file because it is already set in the synApps support module's **configure/RELEASE** file. Therefore, we do not need to explicitly set the ``EPICS_BASE`` variable in your **configure/RELEASE** file because it is already set in the synApps support module's **configure/RELEASE** file.
Note: The ``include`` directive specifies a required file; an error occurs if the file doesn't exist. The ``-include`` directive specifies an optional file that is included if it exists and ignored if it doesn't.
</details> </details>
### 2.6 Build the IOC (attempt #2) ### 2.6 Build the IOC (attempt #2)
...@@ -225,7 +226,7 @@ The **configure/CONFIG_SITE.local** file is used to specify local configuration ...@@ -225,7 +226,7 @@ The **configure/CONFIG_SITE.local** file is used to specify local configuration
The IOC build system will now use an alternative networking library instead of libnet, allowing the IOC to be built without requiring the installation of the net library. The IOC build system will now use an alternative networking library instead of libnet, allowing the IOC to be built without requiring the installation of the net library.
**Note:** the linux command ``$ echo "LINUX_NET_INSTALLED = NO" > configure/CONFIG_SITE.local`` writes the text "LINUX_NET_INSTALLED = NO" to the **configure/CONFIG_SITE.local** file. If the file does not exist, the ``>`` sign creates the file and writes the output to it. If the file already exists, the ``>`` sign overwrites its contents with the new output. **Note:** the linux command ``$ echo "LINUX_NET_INSTALLED = NO" > configure/CONFIG_SITE.local`` writes the text "LINUX_NET_INSTALLED = NO" to the **configure/CONFIG_SITE.local** file. If the file does not exist, the ``>`` sign creates the file and writes the output to it. If the file already exists, behavior is dependent on which shell is used. For bash, the ``>`` sign overwrites its contents with the new output. For tcsh, the ``>`` sign results in an error because the file already exists.
</details> </details>
...@@ -318,7 +319,7 @@ perl -CSD /APSshare/epics/base-7.0.4.1/bin/rhel8-x86_64/convertRelease.pl -t /ho ...@@ -318,7 +319,7 @@ perl -CSD /APSshare/epics/base-7.0.4.1/bin/rhel8-x86_64/convertRelease.pl -t /ho
<details> <details>
<summary>what does this mean?</summary> <summary>what does this mean?</summary>
Perl is a programming language commonly used for scripting and text processing. The command is essentially invoking the convertRelease.pl script and passing the path to the envPaths file as an argument. The script will process the envPaths file and perform any necessary conversions to set up the necessary environment variables. Perl is a programming language commonly used for scripting and text processing. The command is essentially invoking the convertRelease.pl script and passing the path to the IOC's top-level directory as an argument. The script will process the IOC's configure/RELEASE file and use the contents to create the envPaths file.
</details> </details>
......
...@@ -58,7 +58,7 @@ index 34998d9..273bea4 100644 ...@@ -58,7 +58,7 @@ index 34998d9..273bea4 100644
<details><summary>what does this mean?</summary> <details><summary>what does this mean?</summary>
The `motorSim.iocsh` script will be loaded when the `motors.iocsh` script is run, and the motor instance defined in the `motorSim.iocsh` script will be set up with the specified parameters (instance name, home position, number of axes, high and low limits, and substitution definitions). Thisis useful for running a simulation of your motor system for testing or development purposes. The `motorSim.iocsh` script will be loaded when the `motors.iocsh` script is run, and the controller instance defined in the `motorSim.iocsh` script will be set up with the specified parameters (instance name, home position, number of axes, high and low limits, and substitution definitions). This is useful for running a simulation of your motor system for testing or development purposes.
</details> </details>
...@@ -151,7 +151,7 @@ index 588dda7..8fddfc1 100644 ...@@ -151,7 +151,7 @@ index 588dda7..8fddfc1 100644
<summary>what does this mean?</summary> <summary>what does this mean?</summary>
The `st.cmd.Linux` file is the IOC startup script which is responsible for initializing the EPICS environment, loading database definitions, and starting the IOC. The `st.cmd.Linux` file is the IOC startup script which is responsible for initializing the EPICS environment, loading database definitions, and starting the IOC.
The command `source iocsh/motors.iocsh` is used to execute the `motors.iocsh` script in the current shell environment. The command `< iocsh/motors.iocsh` is used to execute the `motors.iocsh` script in the current shell environment.
After you make this modification and run the startup script, it will execute the commands in `motors.iocsh` as part of the IOC startup process, setting up the motor instance as specified in the `motors.iocsh` file. After you make this modification and run the startup script, it will execute the commands in `motors.iocsh` as part of the IOC startup process, setting up the motor instance as specified in the `motors.iocsh` file.
</details> </details>
......
...@@ -135,8 +135,7 @@ MOTOR_VMC=/home/beams/USERNAME/PET-S2/epics/synApps/support/motorVMC ...@@ -135,8 +135,7 @@ MOTOR_VMC=/home/beams/USERNAME/PET-S2/epics/synApps/support/motorVMC
<summary>where is EPICS_BASE defined?</summary> <summary>where is EPICS_BASE defined?</summary>
The `EPICS_BASE` variable is not explicitly defined: it is defined in the motor The `EPICS_BASE` variable is not explicitly defined: it is defined in the motor
configuration file that is included with on line 2 of the **configure/RELEASE.local** configuration file that is included with on line 2 of the **configure/RELEASE.local**:
file `-include $(MOTOR)/modules/RELEASE.$(EPICS_HOST_ARCH).local`:
``` ```
$ cat ${MOTOR}/modules/RELEASE.${EPICS_HOST_ARCH}.local $ cat ${MOTOR}/modules/RELEASE.${EPICS_HOST_ARCH}.local
...@@ -197,7 +196,7 @@ for compiling or building the IOC. ...@@ -197,7 +196,7 @@ for compiling or building the IOC.
- Building inside motor: - Building inside motor:
When building inside motor, it implies that you are within the motor module's When building inside motor, it implies that you are within the motor module's
directory structure. The `$(TOP)` variable represents the top-level directory of directory structure. The `$(TOP)` variable represents the top-level directory of
the motor module. In this case, the IOC is being built as part of the motor module the motorVMC module. In this case, the IOC is being built as part of the motor module
itself. The line `-include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local` is included itself. The line `-include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local` is included
in the configure/RELEASE file. This line instructs the build system to include in the configure/RELEASE file. This line instructs the build system to include
the generated release file from the motor module. The release file contains the generated release file from the motor module. The release file contains
...@@ -210,9 +209,8 @@ structure. It implies that you are building the IOC separately from the motor mo ...@@ -210,9 +209,8 @@ structure. It implies that you are building the IOC separately from the motor mo
the `make` command is issued in the ${SUPPORT_DIR}/motorVMC directory. the `make` command is issued in the ${SUPPORT_DIR}/motorVMC directory.
In this case, the line `-include $(TOP)/configure/RELEASE.local` is included in the In this case, the line `-include $(TOP)/configure/RELEASE.local` is included in the
**configure/RELEASE** file. This line instructs the build system to include the **configure/RELEASE** file. This line instructs the build system to include the
**RELEASE.local** file from the motorVMC module. The **RELEASE.local** file typically **RELEASE.local** file from the motorVMC module. The **RELEASE.local** file contains
contains configuration information specific to the IOC being built outside the motor paths to EPICS modules that are required to build motorVMC.
module.
</details> </details>
...@@ -301,7 +299,7 @@ mounting configuration or symbolic links between different machines. ...@@ -301,7 +299,7 @@ mounting configuration or symbolic links between different machines.
To resolve this error, you can modify the `CHECK_RELEASE` setting to either `NO` To resolve this error, you can modify the `CHECK_RELEASE` setting to either `NO`
or `WARN` in the **configure/CONFIG_SITE** file. This will disable or allow the build or `WARN` in the **configure/CONFIG_SITE** file. This will disable or allow the build
to continue despite the inconsistency detected. However, please note that it's to continue despite the inconsistency detected. However, please note that it's
important to ensure the paths in the **RELEASE*** files accurately reflect the correct important to ensure the paths in the **RELEASE** files accurately reflect the correct
locations of the support applications to avoid potential issues during runtime. locations of the support applications to avoid potential issues during runtime.
Just like the **RELEASE.local** file, the **CONFIG_SITE.local** file allows for local Just like the **RELEASE.local** file, the **CONFIG_SITE.local** file allows for local
...@@ -309,13 +307,14 @@ customization of the build configuration. The lines ...@@ -309,13 +307,14 @@ customization of the build configuration. The lines
`-include $(TOP)/../CONFIG_SITE.local` and `-include $(TOP)/configure/CONFIG_SITE.local` `-include $(TOP)/../CONFIG_SITE.local` and `-include $(TOP)/configure/CONFIG_SITE.local`
in the **configure/CONFIG_SITE** file instruct the build system to include the in the **configure/CONFIG_SITE** file instruct the build system to include the
**CONFIG_SITE.local** files if they exist in the specified locations. The `$(TOP)` **CONFIG_SITE.local** files if they exist in the specified locations. The `$(TOP)`
variable represents the top-level directory of the IOC. variable represents the top-level directory of motorVMC.
Note: the linux command `$ echo "CHECK_RELEASE = NO" > configure/CONFIG_SITE.local` Note: the linux command `$ echo "CHECK_RELEASE = NO" > configure/CONFIG_SITE.local`
writes the text "CHECK_RELEASE = NO" to the **configure/CONFIG_SITE.local** file. writes the text "CHECK_RELEASE = NO" to the **configure/CONFIG_SITE.local** file.
If the file does not exist, the `>` sign creates the file and writes the output to it. If the file does not exist, the `>` sign creates the file and writes the output to it.
If the file already exists, the `>` sign overwrites its contents with the new output If the file already exists, the `>` sign overwrites its contents with the new output
(bash) or returns an error because the file already exists (tcsh).
</details> </details>
......
...@@ -126,7 +126,7 @@ endif ...@@ -126,7 +126,7 @@ endif
- `$(PROD_NAME)_LIBS := vmc $($(PROD_NAME)_LIBS)`: - `$(PROD_NAME)_LIBS := vmc $($(PROD_NAME)_LIBS)`:
- This expression assigns the value `vmc` as the first element in the `$(PROD_NAME)_LIBS` variable, and it appends the existing value of `$(PROD_NAME)_LIBS` after `vmc`. - This expression assigns the value `vmc` as the first element in the `$(PROD_NAME)_LIBS` variable, and it appends the existing value of `$(PROD_NAME)_LIBS` after `vmc`.
- `$(PROD_NAME)_LIBS` is a variable that holds the names of libraries the IOC application depends on. - `$(PROD_NAME)_LIBS` is a variable that holds the names of libraries the IOC application depends on.
- Note: the convention is to omit the `lib` prefix and the `.a` extension (this is requirement from the `gcc -l` [flag](https://stackoverflow.com/questions/6231206/lib-prefix-on-libraries)). - Note: the convention is to omit the `lib` prefix and the `.a` extension (this is requirement from the **gcc** `-l` [flag](https://stackoverflow.com/questions/6231206/lib-prefix-on-libraries)).
</details> </details>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment