Whamcloud - gitweb
LU-1199 build: fix for configure args with space inside 74/7574/4
authorDmitry Eremin <dmitry.eremin@intel.com>
Fri, 6 Sep 2013 14:42:21 +0000 (18:42 +0400)
committerOleg Drokin <oleg.drokin@intel.com>
Tue, 17 Sep 2013 14:56:51 +0000 (14:56 +0000)
Fix passing arguments with space inside to configure script.
The following example demostrate this issue:
  sh ./autogen.sh
  CFLAGS=" -g -O2 -Werror" ./configure
  make rpms
configure: error: unrecognized option: -g
Try `./configure --help' for more information.
error: Bad exit status from /var/tmp/rpm-tmp.M5V8zv (%build)
RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.M5V8zv (%build)
make[1]: *** [rpms-real] Error 1
make: *** [rpms] Error 2

Signed-off-by: Dmitry Eremin <dmitry.eremin@intel.com>
Change-Id: I65fab13d8ef97f0c48a159d77500b66253947aa9
Reviewed-on: http://review.whamcloud.com/7574
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Minh Diep <minh.diep@intel.com>
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
autoMakefile.am

index 3889253..efd73e7 100644 (file)
@@ -97,14 +97,18 @@ EXTRA_DIST += build/gen_filelist.sh
 endif
 
 rpms-real: @PACKAGE_TARNAME@.spec dist Makefile
-       CONFIGURE_ARGS=$$(echo $$(eval echo $(ac_configure_args)) | \
-               sed -re 's/--(en|dis)able-tests//'); \
-       if [ -n "@LINUX@" ]; then \
-               CONFIGURE_ARGS=$$(echo $$(eval echo $$CONFIGURE_ARGS) | \
-                       sed -re 's/--with-linux=[^ ][^ ]*//'); \
-               RPMARGS="--define \"kdir @LINUX@\""; \
-               CONFIGURE_ARGS=$$(echo $$(eval echo $$CONFIGURE_ARGS) | \
-                       sed -re 's/--with-linux-obj=[^ ][^ ]*//'); \
+       @CONFIGURE_ARGS=""; \
+       for arg in $(ac_configure_args); do \
+               case $$arg in \
+                       --with-release=* ) ;; \
+                       --enable-tests | --disable-tests ) ;; \
+                       --with-linux=* | --with-linux-obj=* ) ;; \
+                       * ) CONFIGURE_ARGS="$$CONFIGURE_ARGS '$$arg'" ;; \
+               esac; \
+       done; \
+       RPMARGS="--define \"configure_args $$CONFIGURE_ARGS\""; \
+       if [ -n "@LINUX@" ]; then  \
+               RPMARGS="$$RPMARGS --define \"kdir @LINUX@\""; \
                if [ -n "@LINUX_OBJ@" -a "@LINUX_OBJ@" != "@LINUX@" ]; then \
                        RPMARGS="$$RPMARGS --define \"kobjdir @LINUX_OBJ@\""; \
                fi; \
@@ -130,15 +134,12 @@ rpms-real: @PACKAGE_TARNAME@.spec dist Makefile
                        fi; \
                fi; \
        fi; \
-       CONFIGURE_ARGS=$$(echo $$(eval echo $$CONFIGURE_ARGS) | \
-               sed -re 's/--with-release=[^ ][^ ]*//'); \
-       RPMARGS="$$RPMARGS --define \"configure_args $$CONFIGURE_ARGS\""; \
        if [[ "X$(BUILD_TESTS)" = Xfalse ]]; then \
                RPMARGS="$$RPMARGS --without lustre_tests"; \
        fi; \
        if [[ "X$(BUILD_SERVER)" = Xfalse ]]; then \
                RPMARGS="$$RPMARGS --without servers"; \
-               if [ -n "@CROSS_PATH@" ]; then \
+               if [ -n "$$CROSS_SUFFIX" ]; then \
                        RPMARGS="$$RPMARGS --define \"lustre_name lustre-client$$CROSS_SUFFIX\""; \
                fi; \
        fi; \