Skip to content

Commit 0be2ea5

Browse files
committed
py/py.mk: Build axtls library directly from its source files.
This removes the need for a separate axtls build stage, and builds all axtls object files along with other code. This simplifies and cleans up the build process, automatically builds axtls when needed, and puts the axtls object files in the correct $(BUILD) location. The MicroPython axtls configuration file is provided in extmod/axtls-include/config.h
1 parent e814db5 commit 0be2ea5

File tree

3 files changed

+136
-2
lines changed

3 files changed

+136
-2
lines changed

extmod/axtls-include/config.h

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
/*
2+
* Automatically generated header file: don't edit
3+
*/
4+
5+
#define HAVE_DOT_CONFIG 1
6+
#define CONFIG_PLATFORM_LINUX 1
7+
#undef CONFIG_PLATFORM_CYGWIN
8+
#undef CONFIG_PLATFORM_WIN32
9+
10+
/*
11+
* General Configuration
12+
*/
13+
#define PREFIX "/usr/local"
14+
#undef CONFIG_DEBUG
15+
#undef CONFIG_STRIP_UNWANTED_SECTIONS
16+
#undef CONFIG_VISUAL_STUDIO_7_0
17+
#undef CONFIG_VISUAL_STUDIO_8_0
18+
#undef CONFIG_VISUAL_STUDIO_10_0
19+
#define CONFIG_VISUAL_STUDIO_7_0_BASE ""
20+
#define CONFIG_VISUAL_STUDIO_8_0_BASE ""
21+
#define CONFIG_VISUAL_STUDIO_10_0_BASE ""
22+
#define CONFIG_EXTRA_CFLAGS_OPTIONS ""
23+
#define CONFIG_EXTRA_LDFLAGS_OPTIONS ""
24+
25+
/*
26+
* SSL Library
27+
*/
28+
#undef CONFIG_SSL_SERVER_ONLY
29+
#undef CONFIG_SSL_CERT_VERIFICATION
30+
#undef CONFIG_SSL_FULL_MODE
31+
#define CONFIG_SSL_SKELETON_MODE 1
32+
#define CONFIG_SSL_ENABLE_SERVER 1
33+
#define CONFIG_SSL_ENABLE_CLIENT 1
34+
#undef CONFIG_SSL_DIAGNOSTICS
35+
#define CONFIG_SSL_PROT_LOW 1
36+
#undef CONFIG_SSL_PROT_MEDIUM
37+
#undef CONFIG_SSL_PROT_HIGH
38+
#define CONFIG_SSL_AES 1
39+
#define CONFIG_SSL_USE_DEFAULT_KEY 1
40+
#define CONFIG_SSL_PRIVATE_KEY_LOCATION ""
41+
#define CONFIG_SSL_PRIVATE_KEY_PASSWORD ""
42+
#define CONFIG_SSL_X509_CERT_LOCATION ""
43+
#undef CONFIG_SSL_GENERATE_X509_CERT
44+
#define CONFIG_SSL_X509_COMMON_NAME ""
45+
#define CONFIG_SSL_X509_ORGANIZATION_NAME ""
46+
#define CONFIG_SSL_X509_ORGANIZATION_UNIT_NAME ""
47+
#undef CONFIG_SSL_HAS_PEM
48+
#undef CONFIG_SSL_USE_PKCS12
49+
#define CONFIG_SSL_EXPIRY_TIME
50+
#define CONFIG_X509_MAX_CA_CERTS 0
51+
#define CONFIG_SSL_MAX_CERTS 3
52+
#undef CONFIG_SSL_CTX_MUTEXING
53+
#undef CONFIG_USE_DEV_URANDOM
54+
#undef CONFIG_WIN32_USE_CRYPTO_LIB
55+
#undef CONFIG_OPENSSL_COMPATIBLE
56+
#undef CONFIG_PERFORMANCE_TESTING
57+
#undef CONFIG_SSL_TEST
58+
#undef CONFIG_AXTLSWRAP
59+
#undef CONFIG_AXHTTPD
60+
#undef CONFIG_HTTP_STATIC_BUILD
61+
#define CONFIG_HTTP_PORT
62+
#define CONFIG_HTTP_HTTPS_PORT
63+
#define CONFIG_HTTP_SESSION_CACHE_SIZE
64+
#define CONFIG_HTTP_WEBROOT ""
65+
#define CONFIG_HTTP_TIMEOUT
66+
#undef CONFIG_HTTP_HAS_CGI
67+
#define CONFIG_HTTP_CGI_EXTENSIONS ""
68+
#undef CONFIG_HTTP_ENABLE_LUA
69+
#define CONFIG_HTTP_LUA_PREFIX ""
70+
#undef CONFIG_HTTP_BUILD_LUA
71+
#define CONFIG_HTTP_CGI_LAUNCHER ""
72+
#undef CONFIG_HTTP_DIRECTORIES
73+
#undef CONFIG_HTTP_HAS_AUTHORIZATION
74+
#undef CONFIG_HTTP_HAS_IPV6
75+
#undef CONFIG_HTTP_ENABLE_DIFFERENT_USER
76+
#define CONFIG_HTTP_USER ""
77+
#undef CONFIG_HTTP_VERBOSE
78+
#undef CONFIG_HTTP_IS_DAEMON
79+
80+
/*
81+
* Language Bindings
82+
*/
83+
#undef CONFIG_BINDINGS
84+
#undef CONFIG_CSHARP_BINDINGS
85+
#undef CONFIG_VBNET_BINDINGS
86+
#define CONFIG_DOT_NET_FRAMEWORK_BASE ""
87+
#undef CONFIG_JAVA_BINDINGS
88+
#define CONFIG_JAVA_HOME ""
89+
#undef CONFIG_PERL_BINDINGS
90+
#define CONFIG_PERL_CORE ""
91+
#define CONFIG_PERL_LIB ""
92+
#undef CONFIG_LUA_BINDINGS
93+
#define CONFIG_LUA_CORE ""
94+
95+
/*
96+
* Samples
97+
*/
98+
#undef CONFIG_SAMPLES
99+
#undef CONFIG_C_SAMPLES
100+
#undef CONFIG_CSHARP_SAMPLES
101+
#undef CONFIG_VBNET_SAMPLES
102+
#undef CONFIG_JAVA_SAMPLES
103+
#undef CONFIG_PERL_SAMPLES
104+
#undef CONFIG_LUA_SAMPLES
105+
#undef CONFIG_BIGINT_CLASSICAL
106+
#undef CONFIG_BIGINT_MONTGOMERY
107+
#undef CONFIG_BIGINT_BARRETT
108+
#undef CONFIG_BIGINT_CRT
109+
#undef CONFIG_BIGINT_KARATSUBA
110+
#define MUL_KARATSUBA_THRESH
111+
#define SQU_KARATSUBA_THRESH
112+
#undef CONFIG_BIGINT_SLIDING_WINDOW
113+
#undef CONFIG_BIGINT_SQUARE
114+
#undef CONFIG_BIGINT_CHECK_ON
115+
#undef CONFIG_INTEGER_32BIT
116+
#undef CONFIG_INTEGER_16BIT
117+
#undef CONFIG_INTEGER_8BIT

extmod/axtls-include/version.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#define AXTLS_VERSION "(no version)"

py/py.mk

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,24 @@ CFLAGS_MOD += -DFFCONF_H=\"lib/oofatfs/ffconf.h\"
2525
ifeq ($(MICROPY_PY_USSL),1)
2626
CFLAGS_MOD += -DMICROPY_PY_USSL=1
2727
ifeq ($(MICROPY_SSL_AXTLS),1)
28-
CFLAGS_MOD += -DMICROPY_SSL_AXTLS=1 -I$(TOP)/lib/axtls/ssl -I$(TOP)/lib/axtls/crypto -I$(TOP)/lib/axtls/config
29-
LDFLAGS_MOD += -L$(BUILD) -laxtls
28+
CFLAGS_MOD += -DMICROPY_SSL_AXTLS=1 -I$(TOP)/lib/axtls/ssl -I$(TOP)/lib/axtls/crypto -I$(TOP)/extmod/axtls-include
29+
AXTLS_DIR = lib/axtls
30+
$(BUILD)/$(AXTLS_DIR)/%.o: CFLAGS += -Wno-unused-parameter -Wno-unused-variable -Wno-unused-const-variable -Wno-unused-but-set-variable -Wno-array-bounds -Wno-uninitialized -Wno-sign-compare -Wno-old-style-definition $(AXTLS_DEFS_EXTRA)
31+
SRC_MOD += $(addprefix $(AXTLS_DIR)/,\
32+
ssl/asn1.c \
33+
ssl/loader.c \
34+
ssl/tls1.c \
35+
ssl/tls1_svr.c \
36+
ssl/tls1_clnt.c \
37+
ssl/x509.c \
38+
crypto/aes.c \
39+
crypto/bigint.c \
40+
crypto/crypto_misc.c \
41+
crypto/hmac.c \
42+
crypto/md5.c \
43+
crypto/rsa.c \
44+
crypto/sha1.c \
45+
)
3046
else ifeq ($(MICROPY_SSL_MBEDTLS),1)
3147
# Can be overridden by ports which have "builtin" mbedTLS
3248
MICROPY_SSL_MBEDTLS_INCLUDE ?= $(TOP)/lib/mbedtls/include

0 commit comments

Comments
 (0)