diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2012-03-27 09:06:17 +0200 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2012-03-27 10:30:31 +0200 |
commit | 7a70788a2207af8ed97bbd26effaf5e461faf8af (patch) | |
tree | e7b09458bfd1f35675265035fc8589b5bb1c5cb1 /package | |
parent | 9127ab6eaa8ed4477850dd62470ac3c80f440eef (diff) | |
download | buildroot-novena-7a70788a2207af8ed97bbd26effaf5e461faf8af.tar.gz buildroot-novena-7a70788a2207af8ed97bbd26effaf5e461faf8af.zip |
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>
Diffstat (limited to 'package')
-rw-r--r-- | package/microperl/microperl.mk | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/package/microperl/microperl.mk b/package/microperl/microperl.mk index d5b5a7c4e..5bf4a2e4d 100644 --- a/package/microperl/microperl.mk +++ b/package/microperl/microperl.mk @@ -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 \ |