remove autotools build
Signed-off-by: Andy Green <andy.green@linaro.org>
This commit is contained in:
parent
58f214ea0c
commit
0097a99082
7 changed files with 56 additions and 2276 deletions
13
Makefile.am
13
Makefile.am
|
@ -1,13 +0,0 @@
|
|||
|
||||
if NO_TESTAPPS
|
||||
SUBDIRS=lib
|
||||
else
|
||||
SUBDIRS=lib test-server
|
||||
endif
|
||||
|
||||
EXTRA_DIST=scripts/kernel-doc
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libwebsockets.pc
|
||||
|
||||
|
292
README.build
292
README.build
|
@ -1,240 +1,5 @@
|
|||
Introduction
|
||||
------------
|
||||
Libwebsockets can be built using two different build systems
|
||||
autoconf or CMake. autoconf only works on Unix systems, or mingw/cygwin
|
||||
on Windows. CMake works differently and can generate platform specific
|
||||
project files for most popular IDEs and build systems.
|
||||
|
||||
################################### Autoconf ###################################
|
||||
|
||||
Building the library and test apps
|
||||
----------------------------------
|
||||
|
||||
You need to regenerate the autotools and libtoolize stuff for your system
|
||||
|
||||
$ ./autogen.sh
|
||||
|
||||
Then,
|
||||
|
||||
------Fedora x86_64
|
||||
|
||||
./configure --prefix=/usr --libdir=/usr/lib64 --enable-openssl
|
||||
|
||||
------Apple
|
||||
|
||||
Christopher Baker reported that this is needed
|
||||
|
||||
./configure CC="gcc -arch i386 -arch x86_64" CXX="g++ -arch i386 -arch
|
||||
x86_64" CPP="gcc -E" CXXCPP="g++ -E" --enable-nofork
|
||||
|
||||
------mingw
|
||||
|
||||
I did the following to get working build, ping test is disabled when
|
||||
building this way
|
||||
|
||||
1) install mingw64_w32 compiler packages from Fedora
|
||||
2) additionally install mingw64-zlib package
|
||||
3) ./configure --prefix=/usr --enable-mingw --host=x86_64-w64-mingw32
|
||||
4) make
|
||||
|
||||
------MIPS cross-build using OpenWRT
|
||||
|
||||
./configure --prefix=/usr --without-extensions --host mips-openwrt-linux
|
||||
|
||||
I did not try building the extensions since they need cross-zlib, but it
|
||||
should also be workable.
|
||||
|
||||
------Other uClibc
|
||||
|
||||
you may need --enable-builtin-getifaddrs if your toolchain
|
||||
doesn't have it - openWRT uclibc has it so you don't need this option.
|
||||
|
||||
------ARM cross-build
|
||||
|
||||
./configure --prefix=/usr --host=arm-linux-gnueabi --without-client --without-extensions
|
||||
|
||||
you can build cross with client and extensions perfectly well, but
|
||||
apart from the size shrink this has the nice characteristic that no
|
||||
non-toolchain libraries are needed to build it.
|
||||
|
||||
|
||||
otherwise if /usr/local/... and /usr/local/lib are OK then...
|
||||
|
||||
$ ./configure
|
||||
$ make clean
|
||||
$ make && sudo make install
|
||||
$ libwebsockets-test-server
|
||||
|
||||
should be enough to get a test server listening on port 7861.
|
||||
|
||||
|
||||
Configure script options
|
||||
------------------------
|
||||
|
||||
There are several other possible configure options
|
||||
|
||||
--enable-openssl Builds in the SSL support
|
||||
|
||||
--with-cyassl Use cyassl instead of OpenSSL... you will need CyaSSL
|
||||
to have been configured with --enable-opensslExtra
|
||||
\ when it was built.
|
||||
|
||||
--enable-libcrypto by default libwebsockets uses its own
|
||||
built-in md5 and sha-1 implementation for
|
||||
simplicity. However the libcrypto ones
|
||||
may be faster, and in a distro context it
|
||||
may be highly desirable to use a common
|
||||
library implementation for ease of security
|
||||
upgrades. Give this configure option
|
||||
to disable the built-in ones and force use
|
||||
of the libcrypto (part of openssl) ones.
|
||||
|
||||
--with-client-cert-dir=dir tells the client ssl support where to
|
||||
look for trust certificates to validate
|
||||
the remote certificate against.
|
||||
|
||||
--enable-noping Don't try to build the ping test app
|
||||
It needs some unixy environment that
|
||||
may choke in other build contexts, this
|
||||
lets you cleanly stop it being built
|
||||
|
||||
--enable-builtin-getifaddrs if your libc lacks getifaddrs, you can build an
|
||||
implementation into the library. By default your libc
|
||||
one is used.
|
||||
|
||||
--without-testapps Just build the library not the test apps
|
||||
|
||||
--without-client Don't build the client part of the library nor the
|
||||
test apps that need the client part. Useful to
|
||||
minimize library footprint for embedded server-only
|
||||
case
|
||||
|
||||
--without-server Don't build the server part of the library nor the
|
||||
test apps that need the server part. Useful to
|
||||
minimize library footprint for embedded client-only
|
||||
case
|
||||
|
||||
--without-daemonize Don't build daemonize.c / lws_daemonize
|
||||
|
||||
--disable-debug Remove all debug logging below lwsl_notice in severity
|
||||
from the code -- it's not just defeated from logging
|
||||
but removed from compilation
|
||||
|
||||
--without-extensions Remove all code and data around protocol extensions.
|
||||
This reduces the code footprint considerably but
|
||||
you will lose extension features like compression.
|
||||
However that may be irrelevant for embedded use and
|
||||
the code / data size / speed improvements may be
|
||||
critical.
|
||||
|
||||
--with-latency Builds the latency-tracking code into the library...
|
||||
this slows your library down a bit but is very useful
|
||||
to find the cause of unexpected latencies occurring
|
||||
inside the library. See README.test-apps for more
|
||||
info
|
||||
|
||||
|
||||
Externally configurable important constants
|
||||
-------------------------------------------
|
||||
|
||||
You can control these from configure by just setting them as commandline
|
||||
args throgh CFLAGS, eg
|
||||
|
||||
./configure CFLAGS="-DLWS_MAX_ZLIB_CONN_BUFFER=8192"
|
||||
|
||||
|
||||
They all have reasonable defaults usable for all use-cases except resource-
|
||||
constrained, so you only need to take care about them if you want to tune them
|
||||
to the amount of memory available.
|
||||
|
||||
- LWS_MAX_HEADER_LEN default 1024: allocated area to copy http headers that
|
||||
libwebsockets knows about into. You only need to think about increasing this
|
||||
if your application might have monster length URLs for example, or some other
|
||||
header that lws cares about will be abnormally large (headers it does not
|
||||
know about are skipped).
|
||||
|
||||
- LWS_MAX_PROTOCOLS default 5: largest amount of different protocols the
|
||||
server can serve
|
||||
|
||||
- LWS_MAX_EXTENSIONS_ACTIVE default 3: largest amount of extensions we can
|
||||
choose to have active on one connection
|
||||
|
||||
- SPEC_LATEST_SUPPORTED default 13: only change if you want to remove support
|
||||
for later protocol versions... unlikely
|
||||
|
||||
- AWAITING_TIMEOUT default 5: after this many seconds without a response, the
|
||||
server will hang up on the client
|
||||
|
||||
- SYSTEM_RANDOM_FILEPATH default "/dev/urandom": if your random device differs
|
||||
you can set it here
|
||||
|
||||
- LWS_MAX_ZLIB_CONN_BUFFER maximum size a compression buffer is allowed to
|
||||
grow to before closing the connection. Some limit is needed or any connecton
|
||||
can exhaust all server memory by sending it 4G buffers full of zeros which the
|
||||
server is expect to expand atomically. Default is 64KBytes.
|
||||
|
||||
- LWS_SOMAXCONN maximum number of pending connect requests the listening
|
||||
socket can cope with. Default is SOMAXCONN. If you need to use synthetic
|
||||
tests that just spam hundreds of connect requests at once without dropping
|
||||
any, you can try messing with these as well as ulimit (see later)
|
||||
(courtesy Edwin van der Oetelaar)
|
||||
|
||||
echo "2048 64512" > /proc/sys/net/ipv4/ip_local_port_range
|
||||
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
|
||||
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse
|
||||
echo "10" > /proc/sys/net/ipv4/tcp_fin_timeout
|
||||
echo "65536" > /proc/sys/net/core/somaxconn
|
||||
echo "65536" > /proc/sys/net/ipv4/tcp_max_syn_backlog
|
||||
echo "262144" > /proc/sys/net/netfilter/nf_conntrack_max
|
||||
|
||||
|
||||
Memory efficiency
|
||||
-----------------
|
||||
|
||||
Embedded server-only configuration without extensions (ie, no compression
|
||||
on websocket connections), but with full v13 websocket features and http
|
||||
server, built on ARM Cortex-A9:
|
||||
|
||||
Update at 8dac94d (2013-02-18)
|
||||
|
||||
./configure --without-client --without-extensions --disable-debug --without-daemonize
|
||||
|
||||
Context Creation, 1024 fd limit[2]: 16720 (includes 12 bytes per fd)
|
||||
Per-connection [3]: 72 bytes, +1328 during headers
|
||||
|
||||
.text .rodata .data .bss
|
||||
11512 2784 288 4
|
||||
|
||||
This shows the impact of the major configuration with/without options at
|
||||
13ba5bbc633ea962d46d using Ubuntu ARM on a PandaBoard ES.
|
||||
|
||||
These are accounting for static allocations from the library elf, there are
|
||||
additional dynamic allocations via malloc. These are a bit old now but give
|
||||
the right idea for relative "expense" of features.
|
||||
|
||||
Static allocations, ARM9
|
||||
.text .rodata .data .bss
|
||||
All (no without) 35024 9940 336 4104
|
||||
without client 25684 7144 336 4104
|
||||
without client, exts 21652 6288 288 4104
|
||||
without client, exts, debug[1] 19756 3768 288 4104
|
||||
without server 30304 8160 336 4104
|
||||
without server, exts 25382 7204 288 4104
|
||||
without server, exts, debug[1] 23712 4256 288 4104
|
||||
|
||||
[1] --disable-debug only removes messages below lwsl_notice. Since that is
|
||||
the default logging level the impact is not noticable, error, warn and notice
|
||||
logs are all still there.
|
||||
|
||||
[2] 1024 fd per process is the default limit (set by ulimit) in at least Fedora
|
||||
and Ubuntu. You can make significant savings tailoring this to actual expected
|
||||
peak fds, ie, at a limit of 20, context creation allocation reduces to 4432 +
|
||||
240 = 4672)
|
||||
|
||||
[3] known header content is freed after connection establishment
|
||||
|
||||
|
||||
#################################### CMake ####################################
|
||||
Introduction to CMake
|
||||
---------------------
|
||||
|
||||
CMake is a multi-platform build tool that can generate build files for many
|
||||
different target platforms. See more info at http://www.cmake.org
|
||||
|
@ -280,8 +45,8 @@ Building on Unix:
|
|||
|
||||
(NOTE: The build/ directory can have any name and be located anywhere
|
||||
on your filesystem, and that the argument ".." given to cmake is simply
|
||||
the source directory of libwebsockets containing the CMakeLists.txt project
|
||||
file. All examples in this file assumes you use "..")
|
||||
the source directory of libwebsockets containing the CMakeLists.txt
|
||||
project file. All examples in this file assumes you use "..")
|
||||
|
||||
NOTE2
|
||||
A common option you may want to give is to set the install path, same
|
||||
|
@ -413,3 +178,52 @@ Below is an example of how one of these files might look like:
|
|||
|
||||
Additional information on cross compilation with CMake:
|
||||
http://www.vtk.org/Wiki/CMake_Cross_Compiling
|
||||
|
||||
|
||||
Memory efficiency
|
||||
-----------------
|
||||
|
||||
Embedded server-only configuration without extensions (ie, no compression
|
||||
on websocket connections), but with full v13 websocket features and http
|
||||
server, built on ARM Cortex-A9:
|
||||
|
||||
Update at 8dac94d (2013-02-18)
|
||||
|
||||
./configure --without-client --without-extensions --disable-debug --without-daemonize
|
||||
|
||||
Context Creation, 1024 fd limit[2]: 16720 (includes 12 bytes per fd)
|
||||
Per-connection [3]: 72 bytes, +1328 during headers
|
||||
|
||||
.text .rodata .data .bss
|
||||
11512 2784 288 4
|
||||
|
||||
This shows the impact of the major configuration with/without options at
|
||||
13ba5bbc633ea962d46d using Ubuntu ARM on a PandaBoard ES.
|
||||
|
||||
These are accounting for static allocations from the library elf, there are
|
||||
additional dynamic allocations via malloc. These are a bit old now but give
|
||||
the right idea for relative "expense" of features.
|
||||
|
||||
Static allocations, ARM9
|
||||
.text .rodata .data .bss
|
||||
All (no without) 35024 9940 336 4104
|
||||
without client 25684 7144 336 4104
|
||||
without client, exts 21652 6288 288 4104
|
||||
without client, exts, debug[1] 19756 3768 288 4104
|
||||
without server 30304 8160 336 4104
|
||||
without server, exts 25382 7204 288 4104
|
||||
without server, exts, debug[1] 23712 4256 288 4104
|
||||
|
||||
[1] --disable-debug only removes messages below lwsl_notice. Since that is
|
||||
the default logging level the impact is not noticable, error, warn and notice
|
||||
logs are all still there.
|
||||
|
||||
[2] 1024 fd per process is the default limit (set by ulimit) in at least Fedora
|
||||
and Ubuntu. You can make significant savings tailoring this to actual expected
|
||||
peak fds, ie, at a limit of 20, context creation allocation reduces to 4432 +
|
||||
240 = 4672)
|
||||
|
||||
[3] known header content is freed after connection establishment
|
||||
|
||||
|
||||
|
||||
|
|
1578
autogen.sh
1578
autogen.sh
File diff suppressed because it is too large
Load diff
|
@ -44,6 +44,9 @@ User api removal
|
|||
|
||||
- CIPHERS_LIST_STRING is removed
|
||||
|
||||
- autotools build has been removed. See README.build for info on how to
|
||||
use CMake for your platform
|
||||
|
||||
|
||||
v1.21-chrome26-firefox18
|
||||
========================
|
||||
|
|
226
configure.ac
226
configure.ac
|
@ -1,226 +0,0 @@
|
|||
# -*- Autoconf -*-
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ([2.61])
|
||||
AC_INIT(libwebsockets, 1.2, andy@warmcat.com, libwebsockets, http://libwebsockets.org)
|
||||
AC_CONFIG_SRCDIR([test-server/test-server.c])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
|
||||
: ${CFLAGS=""}
|
||||
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
||||
AM_PROG_AR
|
||||
LT_INIT(shared)
|
||||
|
||||
#AX_PTHREAD
|
||||
|
||||
# Checks for programs.
|
||||
AM_PROG_CC_C_O
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_MAKE_SET
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
applyhash='CFLAGS+= -DLWS_LIBRARY_VERSION=\"$(PACKAGE_VERSION)\" -DLWS_BUILD_HASH=\"${shell git log -n 1 --pretty=%h}\"'
|
||||
AC_SUBST([applyhash])
|
||||
AM_SUBST_NOTMAKE([applyhash])
|
||||
|
||||
# Check for existance of the inline keyword.
|
||||
AC_C_INLINE
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
AC_ARG_ENABLE(openssl,
|
||||
[ --enable-openssl Enables https support and needs openssl libs],
|
||||
[ openssl=yes
|
||||
])
|
||||
|
||||
if test "x$openssl" = "xyes" ; then
|
||||
AC_CHECK_LIB([ssl], [SSL_library_init])
|
||||
CFLAGS="$CFLAGS -DLWS_OPENSSL_SUPPORT"
|
||||
fi
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
AC_ARG_ENABLE(libcrypto,
|
||||
[ --enable-libcrypto Use libcrypto MD5 and SHA1 implementations],
|
||||
[ libcrypto=yes
|
||||
])
|
||||
|
||||
if test "x$libcrypto" = "xyes" ; then
|
||||
CFLAGS="$CFLAGS -DLWS_LIBCRYPTO"
|
||||
LDFLAGS="$LDFLAGS -lcrypto"
|
||||
fi
|
||||
AM_CONDITIONAL(LIBCRYPTO, test x$libcrypto = xyes)
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
AC_ARG_WITH(testapps,
|
||||
[ --without-testapps dont build the libwebsocket-test- apps],
|
||||
[ no_testapps=yes
|
||||
])
|
||||
|
||||
AM_CONDITIONAL(NO_TESTAPPS, test x$no_testapps = xyes)
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
AC_ARG_WITH(client,
|
||||
[ --without-client dont build the client part of the library ],
|
||||
[ no_client=yes
|
||||
])
|
||||
|
||||
if test "x$no_client" = "xyes" ; then
|
||||
CFLAGS="$CFLAGS -DLWS_NO_CLIENT"
|
||||
fi
|
||||
AM_CONDITIONAL(NO_CLIENT, test x$no_client = xyes)
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
AC_ARG_WITH(server,
|
||||
[ --without-server dont build the client part of the library ],
|
||||
[ no_server=yes
|
||||
])
|
||||
|
||||
if test "x$no_server" = "xyes" ; then
|
||||
CFLAGS="$CFLAGS -DLWS_NO_SERVER"
|
||||
fi
|
||||
AM_CONDITIONAL(NO_SERVER, test x$no_server = xyes)
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
AC_ARG_WITH(extensions,
|
||||
[ --without-extensions dont build any stuff related to extensions ],
|
||||
[ no_extensions=yes
|
||||
])
|
||||
|
||||
if test "x$no_extensions" = "xyes" ; then
|
||||
CFLAGS="$CFLAGS -DLWS_NO_EXTENSIONS"
|
||||
fi
|
||||
AM_CONDITIONAL(NO_EXTENSIONS, test x$no_extensions = xyes)
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
AC_ARG_WITH(latency,
|
||||
[ --with-latency Build latency measuring code into the library ],
|
||||
[ latency=yes
|
||||
])
|
||||
|
||||
if test "x$latency" = "xyes" ; then
|
||||
CFLAGS="$CFLAGS -DLWS_LATENCY"
|
||||
fi
|
||||
AM_CONDITIONAL(LATENCY, test x$latency = xyes)
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
AC_ARG_WITH(daemonize,
|
||||
[ --without-daemonize dont build the daemonization api ],
|
||||
[ no_daemonize=yes
|
||||
])
|
||||
|
||||
if test "x$no_daemonize" = "xyes" ; then
|
||||
CFLAGS="$CFLAGS -DLWS_NO_DAEMONIZE"
|
||||
fi
|
||||
AM_CONDITIONAL(NO_DAEMONIZE, test x$no_daemonize = xyes)
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
AC_ARG_ENABLE(mingw,
|
||||
[ --enable-mingw Using mingw compilers, disables ping test build],
|
||||
[ mingw=yes
|
||||
noping=yes
|
||||
])
|
||||
|
||||
if test "x$mingw" = "xyes" ; then
|
||||
CFLAGS="$CFLAGS -DLWS_MINGW_SUPPORT"
|
||||
fi
|
||||
AM_CONDITIONAL(MINGW, test x$mingw = xyes)
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
AC_ARG_WITH([client-cert-dir],
|
||||
[AS_HELP_STRING([--with-client-cert-dir],[directory containing client certs, defaults to /etc/pki/tls/certs/])],
|
||||
[clientcertdir=$withval],
|
||||
[clientcertdir=/etc/pki/tls/certs/]
|
||||
)
|
||||
AC_SUBST([clientcertdir])
|
||||
|
||||
AC_SUBST([CFLAGS])
|
||||
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
AC_ARG_ENABLE(noping,
|
||||
[ --enable-noping Do not build ping test app, which has some unixy stuff in sources],
|
||||
[ noping=yes
|
||||
])
|
||||
|
||||
AM_CONDITIONAL(NOPING, test x$noping = xyes)
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
AC_ARG_ENABLE(debug,
|
||||
[ --disable-debug Stops debug-related code from even being compiled in, useful for best speed],
|
||||
[ disable_debug=yes
|
||||
])
|
||||
|
||||
if test "x$disable_debug" != "xyes" ; then
|
||||
CFLAGS="$CFLAGS -D_DEBUG"
|
||||
fi
|
||||
AM_CONDITIONAL(DISABLE_DEBUG, test x$disable_debug = xyes)
|
||||
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
AC_ARG_ENABLE(builtin-getifaddrs,
|
||||
[ --enable-builtin-getifaddrs Use BSD getifaddrs implementation from libwebsockets... default is your libc provides it],
|
||||
[ builtin_getifaddrs=yes
|
||||
])
|
||||
if test "x$builtin-getifaddrs" = "xyes" ; then
|
||||
CFLAGS="$CFLAGS -DLWS_BUILTIN_GETIFADDRS"
|
||||
fi
|
||||
AM_CONDITIONAL(USE_BUILTIN_GETIFADDRS, test x$builtin_getifaddrs = xyes)
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
AC_ARG_WITH(cyassl,
|
||||
[ --with-cyassl Use CyaSSL instead of OpenSSL ],
|
||||
[ use_cyassl=yes
|
||||
])
|
||||
|
||||
if test "x$use_cyassl" = "xyes" ; then
|
||||
CFLAGS="$CFLAGS -DUSE_CYASSL -DLWS_OPENSSL_SUPPORT"
|
||||
fi
|
||||
AM_CONDITIONAL(USE_CYASSL, test x$use_cyassl = xyes)
|
||||
|
||||
|
||||
# Checks for header files.
|
||||
AC_CHECK_HEADERS([zlib.h fcntl.h netinet/in.h stdlib.h string.h sys/socket.h unistd.h sys/prctl.h])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_TYPE_SIZE_T
|
||||
|
||||
# Checks for library functions.
|
||||
|
||||
AC_FUNC_MALLOC
|
||||
AC_FUNC_REALLOC
|
||||
AC_CHECK_FUNCS([bzero memset socket strerror])
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
lib/Makefile
|
||||
test-server/Makefile])
|
||||
|
||||
AC_OUTPUT([
|
||||
libwebsockets.pc
|
||||
])
|
|
@ -1,89 +0,0 @@
|
|||
@applyhash@
|
||||
|
||||
lib_LTLIBRARIES=libwebsockets.la
|
||||
include_HEADERS=libwebsockets.h
|
||||
dist_libwebsockets_la_SOURCES=libwebsockets.c \
|
||||
parsers.c \
|
||||
handshake.c \
|
||||
libwebsockets.h \
|
||||
base64-decode.c \
|
||||
output.c \
|
||||
private-libwebsockets.h
|
||||
|
||||
if NO_EXTENSIONS
|
||||
else
|
||||
dist_libwebsockets_la_SOURCES+= extension.c \
|
||||
extension-deflate-stream.c extension-deflate-stream.h \
|
||||
extension-deflate-frame.c extension-deflate-frame.h
|
||||
endif
|
||||
|
||||
if NO_DAEMONIZE
|
||||
else
|
||||
dist_libwebsockets_la_SOURCES+= daemonize.c
|
||||
endif
|
||||
|
||||
if NO_CLIENT
|
||||
else
|
||||
dist_libwebsockets_la_SOURCES+= client.c \
|
||||
client-parser.c \
|
||||
client-handshake.c
|
||||
endif
|
||||
|
||||
if NO_SERVER
|
||||
else
|
||||
dist_libwebsockets_la_SOURCES+= server.c \
|
||||
server-handshake.c
|
||||
endif
|
||||
|
||||
if USE_BUILTIN_GETIFADDRS
|
||||
dist_libwebsockets_la_SOURCES += getifaddrs.c
|
||||
endif
|
||||
|
||||
if LIBCRYPTO
|
||||
else
|
||||
dist_libwebsockets_la_SOURCES += sha-1.c
|
||||
endif
|
||||
|
||||
libwebsockets_la_CFLAGS=-Wall -std=gnu99 -pedantic
|
||||
libwebsockets_la_LDFLAGS=
|
||||
|
||||
# uncomment below and use cat ./lib/.libs/*.su | sort -k2g | tac
|
||||
# to get a worst-first list of static stack usage if you have gcc 4.6+
|
||||
#libwebsockets_la_CFLAGS+= -fstack-usage
|
||||
|
||||
if USE_CYASSL
|
||||
libwebsockets_la_LDFLAGS+= -lcyassl
|
||||
endif
|
||||
|
||||
if DISABLE_DEBUG
|
||||
libwebsockets_la_CFLAGS+= -O4
|
||||
else
|
||||
libwebsockets_la_CFLAGS+= -O0 -g
|
||||
endif
|
||||
|
||||
if MINGW
|
||||
libwebsockets_la_CFLAGS+= -w -I../win32port/win32helpers -I ../win32port/zlib/
|
||||
libwebsockets_la_LDFLAGS+= -lm -luser32 -ladvapi32 -lkernel32 -lgcc
|
||||
else
|
||||
libwebsockets_la_CFLAGS+= -rdynamic -fPIC -Werror
|
||||
# notice http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html has rules for how to bump this
|
||||
libwebsockets_la_LDFLAGS+= -version-info 3:0:0
|
||||
endif
|
||||
|
||||
libwebsockets_la_CFLAGS+= -c \
|
||||
-DINSTALL_DATADIR=\"@datadir@\" -DLWS_OPENSSL_CLIENT_CERTS=\"@clientcertdir@\"
|
||||
if NO_EXTENSIONS
|
||||
else
|
||||
libwebsockets_la_LDFLAGS+= -lz
|
||||
endif
|
||||
|
||||
all-local:
|
||||
../scripts/kernel-doc -html \
|
||||
*.c \
|
||||
libwebsockets.h \
|
||||
> ../libwebsockets-api-doc.html
|
||||
../scripts/kernel-doc -text \
|
||||
*.c \
|
||||
libwebsockets.h \
|
||||
> ../libwebsockets-api-doc.txt
|
||||
|
|
@ -1,131 +0,0 @@
|
|||
bin_PROGRAMS=libwebsockets-test-echo
|
||||
libwebsockets_test_echo_SOURCES=test-echo.c
|
||||
libwebsockets_test_echo_CFLAGS= -Wall -Werror -std=gnu99 -pedantic -DINSTALL_DATADIR=\"@datadir@\"
|
||||
libwebsockets_test_echo_LDADD=-L../lib -lwebsockets
|
||||
|
||||
if NO_CLIENT
|
||||
else
|
||||
bin_PROGRAMS+= libwebsockets-test-client
|
||||
if NO_SERVER
|
||||
else
|
||||
bin_PROGRAMS+= libwebsockets-test-fraggle
|
||||
endif
|
||||
endif
|
||||
|
||||
if NO_SERVER
|
||||
else
|
||||
bin_PROGRAMS+=libwebsockets-test-server libwebsockets-test-server-extpoll
|
||||
endif
|
||||
|
||||
if NO_SERVER
|
||||
else
|
||||
libwebsockets_test_server_SOURCES=test-server.c
|
||||
libwebsockets_test_server_CFLAGS=
|
||||
libwebsockets_test_server_LDADD=-L../lib -lwebsockets
|
||||
libwebsockets_test_server_extpoll_SOURCES=test-server.c
|
||||
libwebsockets_test_server_extpoll_CFLAGS=$(AM_CFLAGS) -DEXTERNAL_POLL
|
||||
libwebsockets_test_server_extpoll_LDADD=-L../lib -lwebsockets
|
||||
endif
|
||||
if NO_CLIENT
|
||||
else
|
||||
libwebsockets_test_client_SOURCES=test-client.c
|
||||
libwebsockets_test_client_CFLAGS=
|
||||
libwebsockets_test_client_LDADD=-L../lib -lwebsockets
|
||||
if NO_SERVER
|
||||
else
|
||||
libwebsockets_test_fraggle_SOURCES=test-fraggle.c
|
||||
libwebsockets_test_fraggle_CFLAGS=
|
||||
libwebsockets_test_fraggle_LDADD=-L../lib -lwebsockets
|
||||
endif
|
||||
endif
|
||||
|
||||
if MINGW
|
||||
if NO_SERVER
|
||||
else
|
||||
libwebsockets_test_server_CFLAGS+= -w -I../win32port/win32helpers
|
||||
libwebsockets_test_server_extpoll_CFLAGS+= -w -I../win32port/win32helpers
|
||||
endif
|
||||
if NO_CLIENT
|
||||
else
|
||||
libwebsockets_test_client_CFLAGS+= -w -I../win32port/win32helpers
|
||||
if NO_SERVER
|
||||
else
|
||||
libwebsockets_test_fraggle_CFLAGS+= -w -I../win32port/win32helpers
|
||||
endif
|
||||
endif
|
||||
|
||||
if NO_SERVER
|
||||
else
|
||||
libwebsockets_test_server_LDADD+= -lm -luser32 -ladvapi32 -lkernel32 -lgcc -lws2_32 -lz
|
||||
libwebsockets_test_server_extpoll_LDADD+= -lm -luser32 -ladvapi32 -lkernel32 -lgcc -lws2_32 -lz
|
||||
endif
|
||||
if NO_CLIENT
|
||||
else
|
||||
libwebsockets_test_client_LDADD+= -lm -luser32 -ladvapi32 -lkernel32 -lgcc -lws2_32 -lz
|
||||
if NO_SERVER
|
||||
else
|
||||
libwebsockets_test_fraggle_LDADD+= -lm -luser32 -ladvapi32 -lkernel32 -lgcc -lws2_32 -lz
|
||||
endif
|
||||
endif
|
||||
|
||||
else
|
||||
if NO_SERVER
|
||||
else
|
||||
libwebsockets_test_server_CFLAGS+= -Werror
|
||||
libwebsockets_test_server_extpoll_CFLAGS+= -Werror
|
||||
endif
|
||||
if NO_CLIENT
|
||||
else
|
||||
libwebsockets_test_client_CFLAGS+= -Werror
|
||||
if NO_SERVER
|
||||
else
|
||||
libwebsockets_test_fraggle_CFLAGS+= -Werror
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
if NO_SERVER
|
||||
else
|
||||
libwebsockets_test_server_CFLAGS+= -Wall -std=gnu99 -pedantic -DINSTALL_DATADIR=\"@datadir@\" -DLWS_OPENSSL_CLIENT_CERTS=\"@clientcertdir@\"
|
||||
libwebsockets_test_server_extpoll_CFLAGS+= -Wall -std=gnu99 -pedantic -DINSTALL_DATADIR=\"@datadir@\" -DLWS_OPENSSL_CLIENT_CERTS=\"@clientcertdir@\"
|
||||
endif
|
||||
if NO_CLIENT
|
||||
else
|
||||
libwebsockets_test_client_CFLAGS+= -Wall -std=gnu99 -pedantic -DINSTALL_DATADIR=\"@datadir@\" -DLWS_OPENSSL_CLIENT_CERTS=\"@clientcertdir@\"
|
||||
if NO_SERVER
|
||||
else
|
||||
libwebsockets_test_fraggle_CFLAGS+= -Wall -std=gnu99 -pedantic -DINSTALL_DATADIR=\"@datadir@\" -DLWS_OPENSSL_CLIENT_CERTS=\"@clientcertdir@\"
|
||||
endif
|
||||
endif
|
||||
|
||||
if NOPING
|
||||
else
|
||||
if NO_CLIENT
|
||||
else
|
||||
bin_PROGRAMS+=libwebsockets-test-ping
|
||||
libwebsockets_test_ping_SOURCES=test-ping.c
|
||||
libwebsockets_test_ping_LDADD=-L../lib -lwebsockets
|
||||
libwebsockets_test_ping_CFLAGS= -Wall -Werror -std=gnu99 -pedantic -DINSTALL_DATADIR=\"@datadir@\" -DLWS_OPENSSL_CLIENT_CERTS=\"@clientcertdir@\"
|
||||
endif
|
||||
endif
|
||||
|
||||
EXTRA_DIST=test.html favicon.ico libwebsockets.org-logo.png leaf.jpg
|
||||
|
||||
#
|
||||
# cook a random test cert and key
|
||||
# notice your real cert and key will want to be 0600 permissions
|
||||
libwebsockets-test-server.pem libwebsockets-test-server.key.pem:
|
||||
printf "GB\nErewhon\nAll around\nlibwebsockets-test\n\nlocalhost\nnone@invalid.org\n" | \
|
||||
openssl req -new -newkey rsa:1024 -days 10000 -nodes -x509 -keyout \
|
||||
./libwebsockets-test-server.key.pem -out ./libwebsockets-test-server.pem >/dev/null 2>&1 && \
|
||||
chmod 644 ./libwebsockets-test-server.key.pem \
|
||||
./libwebsockets-test-server.pem
|
||||
|
||||
clean-local:
|
||||
rm -f ./libwebsockets-test-server.key.pem ./libwebsockets-test-server.pem
|
||||
|
||||
install-data-local:libwebsockets-test-server.key.pem libwebsockets-test-server.pem
|
||||
mkdir -p $(DESTDIR)$(datadir)/libwebsockets-test-server
|
||||
cp -a $(EXTRA_DIST) libwebsockets-test-server.key.pem libwebsockets-test-server.pem \
|
||||
$(DESTDIR)$(datadir)/libwebsockets-test-server
|
||||
|
Loading…
Add table
Reference in a new issue