IOCS_APPL_TOP must be absolute path
Fix a recently introduced problem where cdCommands and envParams had TOP as a relative path (which actually worked by chance). Also fixed a problem with convertRelease hanging when the -t argument matched the absolute path to TOP.
This commit is contained in:
@ -79,8 +79,8 @@ INSTALL_JAVA = $(INSTALL_LOCATION)/javalib
|
|||||||
# Directory for OS independant build created files
|
# Directory for OS independant build created files
|
||||||
COMMON_DIR = ../O.Common
|
COMMON_DIR = ../O.Common
|
||||||
|
|
||||||
# The IOC's path to $(TOP), may be overridden inside the application
|
# IOC's absolute path to $(TOP), may be overridden inside the application
|
||||||
IOCS_APPL_TOP = $(INSTALL_LOCATION)
|
IOCS_APPL_TOP = $(shell $(FULLPATHNAME) $(INSTALL_LOCATION))
|
||||||
|
|
||||||
#-------------------------------------------------------
|
#-------------------------------------------------------
|
||||||
# Make echo output - suppress echoing if make's '-s' flag is set
|
# Make echo output - suppress echoing if make's '-s' flag is set
|
||||||
|
@ -368,16 +368,14 @@ $(foreach file, $(DB_INSTALLS), $(eval $(call DB_INSTALLS_template, $(file))))
|
|||||||
|
|
||||||
##################################################### register record,device,driver support
|
##################################################### register record,device,driver support
|
||||||
|
|
||||||
IOC_INST_TOP := $(shell $(PERL) $(TOOLS)/fullPathName.pl $(IOCS_APPL_TOP) )
|
|
||||||
|
|
||||||
%_registerRecordDeviceDriver.cpp: $(COMMON_DIR)/%.dbd
|
%_registerRecordDeviceDriver.cpp: $(COMMON_DIR)/%.dbd
|
||||||
@$(RM) $@ $*.tmp
|
@$(RM) $@ $*.tmp
|
||||||
$(REGISTERRECORDDEVICEDRIVER) $< $(basename $@) $(IOC_INST_TOP) > $*.tmp
|
$(REGISTERRECORDDEVICEDRIVER) $< $(basename $@) $(IOCS_APPL_TOP) > $*.tmp
|
||||||
$(MV) $*.tmp $@
|
$(MV) $*.tmp $@
|
||||||
|
|
||||||
%_registerRecordDeviceDriver.cpp: %.dbd
|
%_registerRecordDeviceDriver.cpp: %.dbd
|
||||||
@$(RM) $@ $*.tmp
|
@$(RM) $@ $*.tmp
|
||||||
$(REGISTERRECORDDEVICEDRIVER) $< $(basename $@) $(IOC_INST_TOP) > $*.tmp
|
$(REGISTERRECORDDEVICEDRIVER) $< $(basename $@) $(IOCS_APPL_TOP) > $*.tmp
|
||||||
$(MV) $*.tmp $@
|
$(MV) $*.tmp $@
|
||||||
|
|
||||||
.PRECIOUS: %_registerRecordDeviceDriver.cpp
|
.PRECIOUS: %_registerRecordDeviceDriver.cpp
|
||||||
|
@ -26,7 +26,7 @@ endif
|
|||||||
|
|
||||||
cdCommands envPaths dllPath.bat: $(wildcard $(TOP)/configure/RELEASE*) \
|
cdCommands envPaths dllPath.bat: $(wildcard $(TOP)/configure/RELEASE*) \
|
||||||
$(wildcard $(TOP)/configure/CONFIG_SITE*) $(INSTALL_BIN)
|
$(wildcard $(TOP)/configure/CONFIG_SITE*) $(INSTALL_BIN)
|
||||||
$(PERL) $(TOOLS)/convertRelease.pl -a $(ARCH) -t $(IOCS_APPL_TOP) $@
|
$(CONVERTRELEASE) -a $(ARCH) -t $(IOCS_APPL_TOP) $@
|
||||||
|
|
||||||
realclean:
|
realclean:
|
||||||
$(RM) cdCommands envPaths dllPath.bat
|
$(RM) cdCommands envPaths dllPath.bat
|
||||||
|
@ -13,21 +13,19 @@
|
|||||||
# Normally CHECK_RELEASE should be set to YES.
|
# Normally CHECK_RELEASE should be set to YES.
|
||||||
# Set CHECK_RELEASE to NO to disable checking completely.
|
# Set CHECK_RELEASE to NO to disable checking completely.
|
||||||
# Set CHECK_RELEASE to WARN to perform consistency checking but
|
# Set CHECK_RELEASE to WARN to perform consistency checking but
|
||||||
# continue building anyway if conflicts are found.
|
# continue building even if conflicts are found.
|
||||||
CHECK_RELEASE = YES
|
CHECK_RELEASE = YES
|
||||||
|
|
||||||
# Set this when you only want to compile this application
|
# Set this when you only want to compile this application
|
||||||
# for a subset of the cross-compiled target architectures
|
# for a subset of the cross-compiled target architectures
|
||||||
# that Base is built for.
|
# that Base is built for.
|
||||||
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040
|
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc32
|
||||||
|
|
||||||
# To install files into a location other than $(TOP) define
|
# To install files into a location other than $(TOP) define
|
||||||
# INSTALL_LOCATION here.
|
# INSTALL_LOCATION here.
|
||||||
#INSTALL_LOCATION=</path/name/to/install/top>
|
#INSTALL_LOCATION=</absolute/path/to/install/top>
|
||||||
|
|
||||||
# Set this when your IOC and the host use different paths
|
# Set this when the IOC and build host use different paths
|
||||||
# to access the application. This will be needed to boot
|
# to the install location. This may be needed to boot from
|
||||||
# from a Microsoft FTP server or with some NFS mounts.
|
# a Microsoft FTP server say, or on some NFS configurations.
|
||||||
# You must rebuild in the iocBoot directory for this to
|
#IOCS_APPL_TOP = </IOC's/absolute/path/to/install/top>
|
||||||
# take effect.
|
|
||||||
#IOCS_APPL_TOP = </IOC/path/to/application/top>
|
|
||||||
|
@ -52,9 +52,14 @@ if ($opt_T) {
|
|||||||
if ($opt_t) {
|
if ($opt_t) {
|
||||||
$iocroot = $opt_t;
|
$iocroot = $opt_t;
|
||||||
$root = $top;
|
$root = $top;
|
||||||
while (substr($iocroot, -1, 1) eq substr($root, -1, 1)) {
|
if ($iocroot eq $root) {
|
||||||
chop $iocroot;
|
# Identical paths, -t not needed
|
||||||
chop $root;
|
undef $opt_t;
|
||||||
|
} else {
|
||||||
|
while (substr($iocroot, -1, 1) eq substr($root, -1, 1)) {
|
||||||
|
chop $iocroot;
|
||||||
|
chop $root;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user