microperl: fix MICROPERL_INSTALL_TARGET_CMDS
The MICROPERL_INSTALL_TARGET_CMDS used the following construct in a for loop: [ -d $(@D)/lib/$$j ] && cp -af $(@D)/lib/$$j \ $(TARGET_DIR)/$(MICROPERL_MODS_DIR) ; \ [ -f $(@D)/lib/$$i ] && $(INSTALL) -m 0644 -D $(@D)/lib/$$i \ $(TARGET_DIR)/$(MICROPERL_MODS_DIR)/$$i; \ The problem is that when at the last iteration, the second test (-f) fails, then the whole loop ends with a non-zero error code, and makes aborts the build. This happens for example if the last Perl modules in the list is Time::Local, because such modules are taken care of by the first condition (that copies a complete directory). By moving to full if statements, we ensure that the return code is zero even if the condition was false. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
parent
9127ab6eaa
commit
7a70788a22
@ -132,10 +132,12 @@ define MICROPERL_INSTALL_TARGET_CMDS
|
||||
$(MICROPERL_BUILD_EXTENSIONS)
|
||||
for i in $(MICROPERL_MODS); do \
|
||||
j=`echo $$i|cut -d : -f 1` ; \
|
||||
[ -d $(@D)/lib/$$j ] && cp -af $(@D)/lib/$$j \
|
||||
$(TARGET_DIR)/$(MICROPERL_MODS_DIR) ; \
|
||||
[ -f $(@D)/lib/$$i ] && $(INSTALL) -m 0644 -D $(@D)/lib/$$i \
|
||||
$(TARGET_DIR)/$(MICROPERL_MODS_DIR)/$$i; \
|
||||
if [ -d $(@D)/lib/$$j ] ; then \
|
||||
cp -af $(@D)/lib/$$j $(TARGET_DIR)/$(MICROPERL_MODS_DIR) ; \
|
||||
fi ; \
|
||||
if [ -f $(@D)/lib/$$i ] ; then \
|
||||
$(INSTALL) -m 0644 -D $(@D)/lib/$$i $(TARGET_DIR)/$(MICROPERL_MODS_DIR)/$$i; \
|
||||
fi ; \
|
||||
done
|
||||
# Remove test files
|
||||
find $(TARGET_DIR)/$(MICROPERL_MODS_DIR) -type f -name *.t \
|
||||
|
Loading…
Reference in New Issue
Block a user