import subprocess from distutils.core import setup from distutils.extension import Extension from distutils.command.build_ext import build_ext from Cython.Build import cythonize class prepare_tinydtls(build_ext): def run(self): def run_command(args): print("Running:", " ".join(args)) subprocess.check_call(args, cwd="./lowlevel/tinydtls") commands = [ ["autoconf"], ["autoheader"], ["./configure", "--without-ecc"], ] for command in commands: run_command(command) build_ext.run(self) cy_build = cythonize([ Extension("lowlevel.dtls", ["lowlevel/dtls.pyx", "lowlevel/tinydtls/dtls.c", "lowlevel/tinydtls/crypto.c", "lowlevel/tinydtls/ccm.c", "lowlevel/tinydtls/hmac.c", "lowlevel/tinydtls/netq.c", "lowlevel/tinydtls/peer.c", "lowlevel/tinydtls/dtls_time.c", "lowlevel/tinydtls/session.c", "lowlevel/tinydtls/dtls_debug.c", "lowlevel/tinydtls/aes/rijndael.c", "lowlevel/tinydtls/sha2/sha2.c"], include_dirs=['lowlevel/tinydtls'], define_macros=[('DTLSv12', '1'), ('WITH_SHA256', '1'), ('DTLS_CHECK_CONTENTTYPE', '1'), ('_GNU_SOURCE', '1')], undef_macros = [ "NDEBUG" ], )]) setup( name="DTLSSocket", version='0.1.0', description = "DTLSSocket is a cython wrapper for tinydtls with a Socket like interface", author = "Jannis Konrad", author_email= "Jannis.Konrad@h-brs.de", url = "https://git.fslab.de/jkonra2m/tinydtls-cython", py_modules = [ "DTLSSocket", ], cmdclass = {"build_ext": prepare_tinydtls}, ext_modules = cy_build, )