cryptcheck/Makefile

100 lines
3.6 KiB
Makefile
Raw Normal View History

2014-12-13 21:20:54 +00:00
PWD = $(shell pwd)
2016-11-11 10:03:09 +00:00
OPENSSL_LIB_VERSION = 1.0.0
OPENSSL_VERSION = 1.0.2g
OPENSSL_NAME = openssl-$(OPENSSL_VERSION)
OPENSSL_DIR = build/$(OPENSSL_NAME)
2015-11-23 23:24:34 +00:00
RUBY_MAJOR_VERSION = 2.3
2016-12-17 13:37:43 +00:00
RUBY_VERSION = $(RUBY_MAJOR_VERSION).3
RUBY_NAME = ruby-$(RUBY_VERSION)
RUBY_DIR = build/$(RUBY_NAME)
2015-07-11 19:36:54 +00:00
RUBY_OPENSSL_EXT_DIR = $(RUBY_DIR)/ext/openssl
2016-12-17 13:37:43 +00:00
RUBY_LIB_DIR = $(RBENV_ROOT)/versions/$(RUBY_VERSION)-cryptcheck/lib/ruby/$(RUBY_MAJOR_VERSION).0
RBENV_ROOT ?= ~/.rbenv
2015-07-11 19:36:54 +00:00
export LIBRARY_PATH = $(PWD)/lib
export C_INCLUDE_PATH = $(PWD)/$(OPENSSL_DIR)/include
2016-12-17 13:37:43 +00:00
export LD_LIBRARY_PATH = $(PWD)/lib
2014-12-13 21:20:54 +00:00
2015-07-11 19:36:54 +00:00
.SECONDARY:
all: libs ext
2014-12-13 21:20:54 +00:00
clean: clean-libs clean-ext
2015-08-03 22:44:52 +00:00
clean-libs:
[ -d $(OPENSSL_DIR) ] \
&& find $(OPENSSL_DIR) \( -name "*.o" -o -name "*.so" \) -delete \
|| true
rm -f lib/libcrypto.so* lib/libssl.so* $(OPENSSL_DIR)/Makefile
2015-08-03 22:44:52 +00:00
clean-ext:
[ -d $(RUBY_OPENSSL_EXT_DIR) ] \
&& find $(RUBY_OPENSSL_EXT_DIR) \( -name "*.o" -o -name "*.so" \) -delete \
|| true
2015-08-03 22:44:52 +00:00
rm -f lib/openssl.so
mr-proper:
rm -rf lib/libcrypto.so* lib/libssl.so* lib/openssl.so build
2015-07-11 19:36:54 +00:00
build/:
mkdir $@
2015-07-11 19:36:54 +00:00
build/chacha-poly.patch: | build/
wget https://github.com/cloudflare/sslconfig/raw/master/patches/openssl__chacha20_poly1305_draft_and_rfc_ossl102g.patch -O $@
2016-04-04 19:14:15 +00:00
build/$(OPENSSL_NAME).tar.gz: | build/
wget https://www.openssl.org/source/$(OPENSSL_NAME).tar.gz -O $@
$(OPENSSL_DIR)/: build/$(OPENSSL_NAME).tar.gz build/chacha-poly.patch
2016-04-04 19:14:15 +00:00
tar -C build -xf build/$(OPENSSL_NAME).tar.gz
2016-12-17 13:37:43 +00:00
#patch -d $(OPENSSL_DIR) -p1 < build/chacha-poly.patch
2014-12-13 21:20:54 +00:00
2015-08-03 22:44:52 +00:00
$(OPENSSL_DIR)/Makefile: | $(OPENSSL_DIR)/
2016-12-17 13:37:43 +00:00
#cd $(OPENSSL_DIR) && ./Configure enable-ssl2 enable-ssl3 enable-weak-ssl-ciphers enable-zlib enable-rc5 enable-rc2 enable-gost enable-md2 enable-mdc2 enable-shared linux-x86_64
#cd $(OPENSSL_DIR) && ./config enable-ssl2 enable-ssl3 enable-md2 enable-rc5 enable-weak-ssl-ciphers shared
cd $(OPENSSL_DIR) && ./config enable-ssl2 enable-ssl3 enable-ssl3-method enable-md2 enable-rc5 enable-weak-ssl-ciphers enable-shared
2014-12-13 21:20:54 +00:00
2015-09-09 19:34:04 +00:00
$(OPENSSL_DIR)/libssl.so \
$(OPENSSL_DIR)/libcrypto.so: $(OPENSSL_DIR)/Makefile
2016-11-11 10:03:09 +00:00
$(MAKE) -C $(OPENSSL_DIR)
2014-12-13 21:20:54 +00:00
2016-12-17 13:37:43 +00:00
LIBS = lib/libssl.so lib/libcrypto.so lib/libssl.so.$(OPENSSL_LIB_VERSION) lib/libcrypto.so.$(OPENSSL_LIB_VERSION)
2015-08-12 23:51:14 +00:00
lib/%.so: $(OPENSSL_DIR)/%.so
cp $< $@
2016-11-11 10:03:09 +00:00
lib/%.so.$(OPENSSL_LIB_VERSION): lib/%.so
ln -fs $(notdir $(subst .$(OPENSSL_LIB_VERSION),,$@)) $@
2016-12-17 13:37:43 +00:00
libs: $(LIBS)
2014-12-13 21:20:54 +00:00
2016-12-17 13:37:43 +00:00
build/$(RUBY_VERSION)-cryptcheck: $(RBENV_ROOT)/plugins/ruby-build/share/ruby-build/$(RUBY_VERSION)
cp $< $@
install-ruby: build/$(RUBY_VERSION)-cryptcheck $(LIBS) | $(OPENSSL_DIR)/
cat tmp_key.patch set_ecdh_curves.patch fallback_scsv.patch | \
RUBY_BUILD_CACHE_PATH=$(PWD)/build \
RUBY_BUILD_DEFINITIONS=$(PWD)/build \
rbenv install -fp $(RUBY_VERSION)-cryptcheck
rbenv sequester $(RUBY_VERSION)-cryptcheck
rbenv local $(RUBY_VERSION)-cryptcheck
gem install bundler
bundle
$(RUBY_LIB_DIR)/openssl/ssl.rb: $(RUBY_OPENSSL_EXT_DIR)/lib/openssl/ssl.rb
cp $< $@
$(RUBY_LIB_DIR)/x86_64-linux/openssl.so: $(RUBY_OPENSSL_EXT_DIR)/openssl.so
cp $< $@
sync-ruby: $(RUBY_LIB_DIR)/openssl/ssl.rb $(RUBY_LIB_DIR)/x86_64-linux/openssl.so
build/$(RUBY_NAME).tar.xz: | build/
wget http://cache.ruby-lang.org/pub/ruby/$(RUBY_MAJOR_VERSION)/$(RUBY_NAME).tar.xz -O $@
2016-04-04 19:14:15 +00:00
2016-12-17 13:37:43 +00:00
$(RUBY_DIR)/: build/$(RUBY_NAME).tar.xz
2016-04-04 19:14:15 +00:00
tar -C build -xf $<
2014-12-13 21:20:54 +00:00
2015-08-03 22:44:52 +00:00
$(RUBY_OPENSSL_EXT_DIR)/Makefile: libs | $(RUBY_DIR)/
2016-04-26 17:21:32 +00:00
patch -d $(RUBY_DIR)/ -p1 < tmp_key.patch
2016-11-11 15:36:49 +00:00
patch -d $(RUBY_DIR)/ -p1 < set_ecdh_curves.patch
2016-11-16 23:54:31 +00:00
patch -d $(RUBY_DIR)/ -p1 < fallback_scsv.patch
2016-04-26 17:21:32 +00:00
cd $(RUBY_OPENSSL_EXT_DIR) && ruby extconf.rb
2014-12-13 21:20:54 +00:00
2016-12-17 13:37:43 +00:00
$(RUBY_OPENSSL_EXT_DIR)/openssl.so: $(LIBS) $(RUBY_OPENSSL_EXT_DIR)/Makefile
2016-04-04 19:14:15 +00:00
top_srcdir=../.. $(MAKE) -C $(RUBY_OPENSSL_EXT_DIR)
2014-12-13 21:20:54 +00:00
lib/openssl.so: $(RUBY_OPENSSL_EXT_DIR)/openssl.so
cp $< $@
2015-07-11 19:36:54 +00:00
2015-08-03 22:44:52 +00:00
ext: lib/openssl.so