openssl: detect configuration changes and clean build tree accordingly (fixes #15067)
[openwrt.git] / package / libs / openssl / Makefile
index f289837..38679ac 100644 (file)
@@ -24,7 +24,7 @@ PKG_LICENSE:=SSLEAY OPENSSL
 PKG_LICENSE_FILES:=LICENSE
 PKG_BUILD_DEPENDS:=ocf-crypto-headers
 PKG_CONFIG_DEPENDS:=CONFIG_OPENSSL_ENGINE_CRYPTO CONFIG_OPENSSL_ENGINE_DIGEST \
-       OPENSSL_WITH_EC OPENSSL_WITH_EC2M
+       CONFIG_OPENSSL_WITH_EC CONFIG_OPENSSL_WITH_EC2M
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -110,7 +110,13 @@ else
   endif
 endif
 
+STAMP_CONFIGURED := $(STAMP_CONFIGURED)_$(subst $(space),_,$(OPENSSL_OPTIONS))
+
 define Build/Configure
+       [ -f $(STAMP_CONFIGURED) ] || { \
+               rm -f $(PKG_BUILD_DIR)/*.so.* $(PKG_BUILD_DIR)/*.a; \
+               find $(PKG_BUILD_DIR) -name \*.o | xargs rm -f; \
+       }
        (cd $(PKG_BUILD_DIR); \
                ./Configure $(OPENSSL_TARGET) \
                        --prefix=/usr \
@@ -121,11 +127,6 @@ define Build/Configure
                        $(OPENSSL_NO_CIPHERS) \
                        $(OPENSSL_OPTIONS) \
        )
-endef
-
-TARGET_CFLAGS += $(FPIC)
-
-define Build/Compile
        # XXX: OpenSSL "make depend" will look for installed headers before its own,
        # so remove installed stuff first
        -$(SUBMAKE) -j1 clean-staging
@@ -134,6 +135,11 @@ define Build/Compile
                OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \
                $(OPENSSL_MAKEFLAGS) \
                depend
+endef
+
+TARGET_CFLAGS += $(FPIC)
+
+define Build/Compile
        +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
                CC="$(TARGET_CC)" \
                ASFLAGS="$(TARGET_ASFLAGS) -c" \