Added CRT submodules, updated autoconf (#3)

* Added CRT submodules

* Added automake config

* Use Makefile.frag
This commit is contained in:
Justin Boswell
2020-10-27 14:26:35 -07:00
committed by GitHub
parent ee1448f560
commit 2934fc63fe
11 changed files with 118 additions and 19 deletions
+1
View File
@@ -192,3 +192,4 @@ config.h
config.nice config.nice
*.la *.la
Makefile* Makefile*
!Makefile.am
+21
View File
@@ -0,0 +1,21 @@
[submodule "aws-c-common"]
path = crt/aws-c-common
url = https://github.com/awslabs/aws-c-common.git
[submodule "aws-c-io"]
path = crt/aws-c-io
url = https://github.com/awslabs/aws-c-io.git
[submodule "aws-c-http"]
path = crt/aws-c-http
url = https://github.com/awslabs/aws-c-http.git
[submodule "aws-c-compression"]
path = crt/aws-c-compression
url = https://github.com/awslabs/aws-c-compression.git
[submodule "aws-c-auth"]
path = crt/aws-c-auth
url = https://github.com/awslabs/aws-c-auth.git
[submodule "aws-c-cal"]
path = crt/aws-c-cal
url = https://github.com/awslabs/aws-c-cal.git
[submodule "s2n"]
path = crt/s2n
url = https://github.com/awslabs/s2n.git
+77
View File
@@ -0,0 +1,77 @@
INSTALL_DIR=$(shell pwd)/build/install
crt_libs=$(INSTALL_DIR)/lib/libaws-c-common.a \
$(INSTALL_DIR)/lib/libaws-c-cal.a \
$(INSTALL_DIR)/lib/libaws-c-io.a \
$(INSTALL_DIR)/lib/libaws-c-compression.a \
$(INSTALL_DIR)/lib/libaws-c-http.a \
$(INSTALL_DIR)/lib/libaws-c-auth.a \
$(INSTALL_DIR)/lib/libs2n.a
crt-static: $(crt_libs) $(INSTALL_DIR)/lib/libcrypto.a
build/deps/openssl:
@echo Fetching libcrypto source
git clone --depth=1 --single-branch --branch OpenSSL_1_1_1-stable https://github.com/openssl/openssl.git build/deps/openssl
$(INSTALL_DIR)/lib/libcrypto.a: build/deps/openssl
@echo Building libcrypto
cd build/deps/openssl && \
./config -fPIC no-md2 no-rc5 no-rfc3779 no-sctp no-ssl-trace no-zlib no-hw no-mdc2 no-seed no-idea \
no-camellia no-bf no-dsa no-ssl3 no-capieng \
-DSSL_FORBID_ENULL -DOPENSSL_NO_DTLS1 -DOPENSSL_NO_HEARTBEATS \
--prefix=$(INSTALL_DIR) --openssldir=$(INSTALL_DIR) && \
make -j && \
make install_sw
CMAKE_CONFIGURE = cmake -DCMAKE_INSTALL_PREFIX=$(INSTALL_DIR) -DCMAKE_PREFIX_PATH=$(INSTALL_DIR) -DBUILD_TESTING=OFF
CMAKE_BUILD = cmake --build
CMAKE_BUILD_TYPE ?= RelWithDebInfo
CMAKE_TARGET = --config $CMAKE_BUILD_TYPE --target install
build/aws-c-common/CMakeCache.txt: $(INSTALL_DIR)/lib/libcrypto.a
$(CMAKE_CONFIGURE) -Hcrt/aws-c-common -Bbuild/aws-c-common
$(INSTALL_DIR)/lib/libaws-c-common.a: build/aws-c-common/CMakeCache.txt
$(CMAKE_BUILD) build/aws-c-common $(CMAKE_TARGET)
build/s2n/CMakeCache.txt: $(INSTALL_DIR)/lib/libcrypto.a
$(CMAKE_CONFIGURE) -Hcrt/s2n -Bbuild/s2n
$(INSTALL_DIR)/lib/libs2n.a: build/s2n/CMakeCache.txt
$(CMAKE_BUILD) build/s2n $(CMAKE_TARGET)
build/aws-c-io/CMakeCache.txt: $(INSTALL_DIR)/lib/libaws-c-common.a $(INSTALL_DIR)/lib/libcrypto.a $(INSTALL_DIR)/lib/libs2n.a
$(CMAKE_CONFIGURE) -Hcrt/aws-c-io -Bbuild/aws-c-io
$(INSTALL_DIR)/lib/libaws-c-io.a: build/aws-c-io/CMakeCache.txt
$(CMAKE_BUILD) build/aws-c-io $(CMAKE_TARGET)
build/aws-c-cal/CMakeCache.txt: $(INSTALL_DIR)/lib/libaws-c-common.a
$(CMAKE_CONFIGURE) -Hcrt/aws-c-cal -Bbuild/aws-c-cal
$(INSTALL_DIR)/lib/libaws-c-cal.a: build/aws-c-cal/CMakeCache.txt
$(CMAKE_BUILD) build/aws-c-cal $(CMAKE_TARGET)
build/aws-c-compression/CMakeCache.txt: $(INSTALL_DIR)/lib/libaws-c-common.a
$(CMAKE_CONFIGURE) -Hcrt/aws-c-compression -Bbuild/aws-c-compression
$(INSTALL_DIR)/lib/libaws-c-compression.a: build/aws-c-compression/CMakeCache.txt
$(CMAKE_BUILD) build/aws-c-compression $(CMAKE_TARGET)
build/aws-c-http/CMakeCache.txt: $(INSTALL_DIR)/lib/libaws-c-compression.a $(INSTALL_DIR)/lib/libaws-c-io.a
$(CMAKE_CONFIGURE) -Hcrt/aws-c-http -Bbuild/aws-c-http
$(INSTALL_DIR)/lib/libaws-c-http.a: build/aws-c-http/CMakeCache.txt
$(CMAKE_BUILD) build/aws-c-http $(CMAKE_TARGET)
build/aws-c-auth/CMakeCache.txt: $(INSTALL_DIR)/lib/libaws-c-http.a
$(CMAKE_CONFIGURE) -Hcrt/aws-c-auth -Bbuild/aws-c-auth
$(INSTALL_DIR)/lib/libaws-c-auth.a: build/aws-c-auth/CMakeCache.txt
$(CMAKE_BUILD) build/aws-c-auth $(CMAKE_TARGET)
# Force the crt object target to depend on all of the libraries above
src/crt.lo: crt-static
+12 -19
View File
@@ -6,25 +6,18 @@ dnl
PHP_ARG_WITH(awscrt) PHP_ARG_WITH(awscrt)
if test "$PHP_AWSCRT" != "no"; then if test "$PHP_AWSCRT" != "no"; then
AC_MSG_CHECKING([for libcrypto]) # force lib paths to be absolute, or PHP will mangle them
for search_path in "$AWS_LIBCRYTO_INSTALL" "$PHP_AWSCRT/build/deps/openssl" /opt/openssl /usr/local /usr; do cwd=`pwd`
if test -f "$search_path/include/openssl/crypto.h"; then CRT_LIBPATHS="-L${cwd}/build/install/lib64 -L${cwd}/build/install/lib"
LIBCRYPTO_PATH=$search_path CRT_LIBS="-laws-c-auth -laws-c-http -laws-c-cal -laws-c-io -laws-c-compression -laws-c-common -ls2n -l:libcrypto.a"
break PHP_EVAL_LIBLINE([$CRT_LIBPATHS $CRT_LIBS], AWSCRT_SHARED_LIBADD)
fi
done
if test -z "$LIBCRYPTO_PATH"; then
AC_MSG_ERROR([not found])
fi
AC_MSG_RESULT([found at $LIBCRYPTO_PATH]) # Shoves the linker line into the Makefile
PHP_ADD_INCLUDE($LIBCRYPTO_PATH/include)
dnl PHP_ADD_LIBPATH($LIBCRYPTO_PATH/lib)
PHP_ADD_LIBRARY_WITH_PATH(:libcrypto.a, $LIBCRYPTO_PATH/lib, AWSCRT_SHARED_LIBADD)
AWSCRT_SOURCES=src/*.c
PHP_NEW_EXTENSION(awscrt, $AWSCRT_SOURCES, $ext_shared)
PHP_SUBST(AWSCRT_SHARED_LIBADD) PHP_SUBST(AWSCRT_SHARED_LIBADD)
# Sources for the PHP extension itself
AWSCRT_SOURCES=src/*.c
PHP_NEW_EXTENSION(awscrt, $AWSCRT_SOURCES, $ext_shared)
fi fi
PHP_ADD_MAKEFILE_FRAGMENT
+1
Submodule crt/aws-c-auth added at a492570cfd
Submodule
+1
Submodule crt/aws-c-cal added at df5da3af5b
+1
Submodule crt/aws-c-common added at 1efe886005
+1
Submodule crt/aws-c-http added at cad62791f1
Submodule
+1
Submodule crt/aws-c-io added at 701279844a
Submodule
+1
Submodule crt/s2n added at 2a7cebb0d7