# master makefile
 
-include make/versions.mk
 include make/environment.mk
+include make/versions.mk
 include make/prerequisites.mk
 include make/bootstrap.mk
 include make/crosstool.mk
 
 $(ARCHIVE)/libsigc++-2.3.1.tar.xz:
        $(WGET) http://www.fhloston-paradise.de/libsigc++-2.3.1.tar.xz
 
-$(ARCHIVE)/openssl-1.0.1f.tar.gz:
-       $(WGET) http://www.fhloston-paradise.de/openssl-1.0.1f.tar.gz
+$(ARCHIVE)/openssl-$(OPENSSL_VER)$(OPENSSL_SUBVER).tar.gz:
+       $(WGET) http://www.openssl.org/source/openssl-$(OPENSSL_VER)$(OPENSSL_SUBVER).tar.gz
 
 $(ARCHIVE)/libogg-1.3.1.tar.gz:
        $(WGET) http://www.fhloston-paradise.de/libogg-1.3.1.tar.gz
 
        $(REMOVE)/libungif-4.1.4
        touch $@
 
-$(D)/openssl: $(ARCHIVE)/openssl-1.0.1f.tar.gz | $(TARGETPREFIX)
-       $(UNTAR)/openssl-1.0.1f.tar.gz
-       pushd $(BUILD_TMP)/openssl-1.0.1f && \
+$(D)/openssl: $(ARCHIVE)/openssl-$(OPENSSL_VER)$(OPENSSL_SUBVER).tar.gz | $(TARGETPREFIX)
+       $(UNTAR)/openssl-$(OPENSSL_VER)$(OPENSSL_SUBVER).tar.gz
+       pushd $(BUILD_TMP)/openssl-$(OPENSSL_VER)$(OPENSSL_SUBVER) && \
                CC=$(TARGET)-gcc \
                ./Configure shared no-hw no-engine linux-generic32 --prefix=/ --openssldir=/.remove && \
                $(MAKE) all && \
        $(REWRITE_PKGCONF) $(PKG_CONFIG_PATH)/libcrypto.pc
        $(REWRITE_PKGCONF) $(PKG_CONFIG_PATH)/libssl.pc
        rm -r $(TARGETPREFIX)/.remove $(TARGETPREFIX)/bin/openssl $(TARGETPREFIX)/bin/c_rehash
-       $(REMOVE)/openssl-1.0.1f
+       $(REMOVE)/openssl-$(OPENSSL_VER)$(OPENSSL_SUBVER)
        pushd $(TARGETPREFIX)/lib && \
-       ln -sf libcrypto.so.1.0.0 libcrypto.so.0 && \
-       ln -sf libcrypto.so.1.0.0 libcrypto.so.0.9.8 && \
-       ln -sf libcrypto.so.1.0.0 libcrypto.so.0.9.7 && \
-       ln -sf libssl.so.1.0.0 libssl.so.0.9.8 && \
-       ln -sf libssl.so.1.0.0 libssl.so.0.9.7 && \
+               if [ "$(OPENSSL_VER)" = "1.0.1" -o "$(OPENSSL_VER)" = "1.0.2" ]; then \
+                       OPENSSL_VER_X=1.0.0; \
+               else \
+                       OPENSSL_VER_X=$(OPENSSL_VER); \
+               fi; \
+               ln -sf libcrypto.so.$$OPENSSL_VER_X libcrypto.so.0.9.7; \
+               ln -sf libssl.so.$$OPENSSL_VER_X libssl.so.0.9.7; \
+               if [ ! "$(OPENSSL_VER)" = "0.9.8" ]; then \
+                       ln -sf libcrypto.so.$$OPENSSL_VER_X libcrypto.so.0.9.8; \
+                       ln -sf libssl.so.$$OPENSSL_VER_X libssl.so.0.9.8; \
+               else \
+                       ln -sf libcrypto.so.$$OPENSSL_VER_X libcrypto.so.1.0.0; \
+                       ln -sf libssl.so.$$OPENSSL_VER_X libssl.so.1.0.0; \
+               fi;
        chmod 0755 $(TARGETPREFIX)/lib/libcrypto.so.* $(TARGETPREFIX)/lib/libssl.so.*
        touch $@