LIBFLOAT_DIR:=$(BUILD_DIR)/libfloat
 
 LIBFLOAT_TARGET=
-ifneq ("$(strip $(TARGET_SOFT_FLOAT))","")
+ifeq ($(strip $(SOFT_FLOAT)),true)
 ifeq ("$(strip $(ARCH))","arm")
 LIBFLOAT_TARGET+=$(STAGING_DIR)/lib/libfloat.so
 endif
        $(SOURCE_DIR)/patch-kernel.sh $(LIBFLOAT_DIR) $(SOURCE_DIR) libfloat.patch
        touch $(LIBFLOAT_DIR)/.unpacked
 
-$(LIBFLOAT_DIR)/libfloat.so.1: $(LIBFLOAT_DIR)/.unpacked \
-               $(STAGING_DIR)/bin/$(ARCH)-linux-gcc
+$(LIBFLOAT_DIR)/libfloat.so.1: $(LIBFLOAT_DIR)/.unpacked $(TARGET_CC)
        $(MAKE) CC=$(TARGET_CC) LD=$(TARGET_CROSS)ld -C $(LIBFLOAT_DIR)
 
 $(STAGING_DIR)/lib/libfloat.so: $(LIBFLOAT_DIR)/libfloat.so.1
 
        $(SED) 's,^.*UCLIBC_HAS_LFS.*,UCLIBC_HAS_LFS=n,g' $(UCLIBC_DIR)/.config
 endif
        $(SED) 's,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g' $(UCLIBC_DIR)/.config
-       if [ -n "$(strip $(TARGET_SOFT_FLOAT))" ] ; then \
-               $(SED) 's,.*HAS_FPU.*,HAS_FPU=n\nUCLIBC_HAS_FLOATS=y\nUCLIBC_HAS_SOFT_FLOAT=y,g' \
-                       $(UCLIBC_DIR)/.config; \
-       fi
+ifeq ($(strip $(SOFT_FLOAT)),true)
+       $(SED) 's,.*HAS_FPU.*,HAS_FPU=n\nUCLIBC_HAS_FLOATS=y\nUCLIBC_HAS_SOFT_FLOAT=y,g' $(UCLIBC_DIR)/.config
+endif
        $(MAKE) -C $(UCLIBC_DIR) \
                PREFIX=$(STAGING_DIR)/ \
                DEVEL_PREFIX=$(REAL_GNU_TARGET_NAME)/ \