Skip to content
Snippets Groups Projects
Commit 59c43483 authored by rodolakis's avatar rodolakis
Browse files

4.4 explanation

parent 21167d07
No related branches found
No related tags found
1 merge request!2Fanny whatdoesitmean
...@@ -73,6 +73,7 @@ make: *** No rule to make target '/configure/RULES_TOP'. Stop. ...@@ -73,6 +73,7 @@ make: *** No rule to make target '/configure/RULES_TOP'. Stop.
``` ```
</details> </details>
### 4.4 Resolve build error #1 ### 4.4 Resolve build error #1
This build error occurs for the same reason the build error occurred in [step 2.4](2-IOC-deployment.md#24-build-the-ioc-attempt-1): `EPICS_BASE` isn't defined. This build error occurs for the same reason the build error occurred in [step 2.4](2-IOC-deployment.md#24-build-the-ioc-attempt-1): `EPICS_BASE` isn't defined.
...@@ -82,10 +83,15 @@ The error was much more helpful in step 2.4 because [xxx's CONFIG file prints th ...@@ -82,10 +83,15 @@ The error was much more helpful in step 2.4 because [xxx's CONFIG file prints th
<details> <details>
<summary>hint</summary> <summary>hint</summary>
The README.md file indicates: *"The definitions of `MOTOR` and `EPICS_BASE` need to be corrected in `motorVMC/configure/RELEASE` before motorVMC can be built."*
The **motorVMC/configure/RELEASE** file doesn't contain any definitions, but it does include other files **if they exist**. The **motorVMC/configure/RELEASE** file doesn't contain any definitions, but it does include other files **if they exist**.
</details> </details>
<details> <details>
<summary>solution</summary> <summary>solution</summary>
...@@ -120,6 +126,68 @@ MOTOR_VMC=/home/beams/USERNAME/PET-S2/epics/synApps/support/motorVMC ...@@ -120,6 +126,68 @@ MOTOR_VMC=/home/beams/USERNAME/PET-S2/epics/synApps/support/motorVMC
``` ```
</details> </details>
<details>
<summary>where is EPICS_BASE defined?</summary>
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 file `-include $(MOTOR)/modules/RELEASE.$(EPICS_HOST_ARCH).local`:
```
$ cat ${MOTOR}/modules/RELEASE.${EPICS_HOST_ARCH}.local
MOTOR = /net/aquila/export/APSmaster/gateway/epics/synApps_6_2_1/support/motor-R7-2-2
ASYN = /APSshare/epics/synApps_6_2_1/support/asyn-R4-42
SNCSEQ = /APSshare/epics/synApps_6_2_1/support/seq-2-2-9
BUSY = /APSshare/epics/synApps_6_2_1/support/busy-R1-7-3
IPAC = /APSshare/epics/synApps_6_2_1/support/ipac-2-16
LUA = /APSshare/epics/synApps_6_2_1/support/lua-R3-0-2
EPICS_BASE = /APSshare/epics/base-7.0.4.1
SUPPORT = /APSshare/epics/synApps_6_2_1/support
```
</details>
<details>
<summary>what is the difference between RELEASE and RELEASE.local?</summary>
In the motorVMC module's configure folder, the presence of two RELEASE files, RELEASE and RELEASE.local, suggests that there are two levels of configuration that can be applied when building the IOC. Here's the difference between the two:
- RELEASE file:
The RELEASE file contains the default configuration for the motorVMC module. It specifies the paths to external support modules or libraries required by the motorVMC module. This file provides a standard configuration that is used by default when building the IOC.
- RELEASE.local file:
The RELEASE.local file is intended for local customization of the configuration. It allows you to override or modify the default configuration specified in the RELEASE file. By including the RELEASE.local file in the configure/RELEASE file, you can provide additional or alternative configuration settings specific to your local environment or requirements.
</details>
<details>
<summary>what is the difference between "building inside motor" and "building outside motor"?</summary>
The RELEASE file contains the following:
```
$ cat configure/RELEASE
# RELEASE - Location of external support modules
# Use motor/module's generated release file when buidling inside motor
-include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local
# Use motorVMC's RELEASE.local when building outside motor
-include $(TOP)/configure/RELEASE.local
```
"building inside motor" and "building outside motor" refer to different scenarios or environments for compiling or building the IOC.
- Building inside motor:
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 the motor 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 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 configuration information specific to the motor module, such as paths to external support modules or libraries.
- Building outside motor:
When building outside motor, it means you are not within the motor module's directory structure. It implies that you are building the IOC separately from the motor module: 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 configure/RELEASE file. This line instructs the build system to include the RELEASE.local file from the motorVMC module. The RELEASE.local file typically contains configuration information specific to the IOC being built outside the motor module.
</details>
### 4.5 Build motorVMC (Attempt #2) ### 4.5 Build motorVMC (Attempt #2)
If the following build succeeds, proceed to [step 4.8](4-Deploy-motorVMC.md#48-confirm-build-products-exist). If the following build succeeds, proceed to [step 4.8](4-Deploy-motorVMC.md#48-confirm-build-products-exist).
......
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