From 50c8a820e5ab46acc129a49ab849f8848e40d915 Mon Sep 17 00:00:00 2001 From: jin-eld Date: Tue, 13 Aug 2013 21:55:32 +0300 Subject: [PATCH] Implemented autotools based build scripts supported options: --with-dependency-search=DIR will tell configure to look for various dependencies in DIR/include and DIR/lib Alternatively you can also specify libsodium header and libs location with --with-libsodium-headers and --with-libsodium-libs if it is installed elsewhere. Ncurses and libconfig are handled via the default pkg-config way, see ./configure --help=short for detailed information. The tox library is compiled as libtoxcore in shared and static variants, public headers are installed to ${prefix}/include/tox A pkg-config libtoxcore.pc configuration file is provided. Use ./configure --help for a full list of configure options or ./configure --help=short for the options that I added. To generate the configure script after pulling from git use: autoreconf -i To generate a release tarball use: make dist Unit tests are handled by the libcheck library integration that is provided by autotools, use: make check to compile and run the tests. Unit tests are currently optional, i.e. - if the check library is not found on the system, then tests will be disabled. Same goes for nTox and DHT bootstrap daemon - they will be enabled or disabled depending on the availability of ncurses (for nTox) or libconfig (for DHT bootstrap daemon). The above can be also tuned by: --enable-tests / --disable-tests --enable-ntox / --disable-ntox --enable-dht-bootstrap-daemon / --disable-dht-bootstrap-daemon --- .gitignore | 24 +- .travis.yml | 2 +- AUTHORS | 0 ChangeLog | 0 INSTALL | 365 ++++++++++++++++++++++ Makefile.am | 31 ++ NEWS | 0 README | 1 + auto_tests/Makefile.inc | 39 +++ build/Makefile.am | 10 + configure.ac | 336 ++++++++++++++++++++ libtoxcore.pc.in | 12 + m4/pkg.m4 | 199 ++++++++++++ other/Makefile.inc | 20 ++ other/bootstrap_serverdaemon/Makefile.inc | 27 ++ testing/Makefile.inc | 97 ++++++ toxcore/Makefile.inc | 42 +++ 17 files changed, 1203 insertions(+), 2 deletions(-) create mode 100644 AUTHORS create mode 100644 ChangeLog create mode 100644 INSTALL create mode 100644 Makefile.am create mode 100644 NEWS create mode 120000 README create mode 100644 auto_tests/Makefile.inc create mode 100644 build/Makefile.am create mode 100644 configure.ac create mode 100644 libtoxcore.pc.in create mode 100644 m4/pkg.m4 create mode 100644 other/Makefile.inc create mode 100644 other/bootstrap_serverdaemon/Makefile.inc create mode 100644 testing/Makefile.inc create mode 100644 toxcore/Makefile.inc diff --git a/.gitignore b/.gitignore index 49ac783a..99f6cfe8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,8 @@ //nacl build nacl/build/ -build +build/ +!build/Makefile.am sodium CMakeCache.txt @@ -22,11 +23,32 @@ tags # Object files *.o +*.lo +*.a # Executables *.exe *.out *.app +*.swp +*.la + +m4/* +!m4/pkg.m4 +configure +configure_aux +Makefile.in +aclocal.m4 +config.h* +config.log +config.status +stamp-h1 +autom4te.cache +libtoxcore.pc +libtool + +.deps +.libs #netbeans nbproject diff --git a/.travis.yml b/.travis.yml index c8b479f8..85b3251e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,7 +27,7 @@ before_script: - sudo apt-get install check script: - - mkdir build && cd build + - mkdir -p build && cd build - cmake .. - make -j3 - make test diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000..e69de29b diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 00000000..e69de29b diff --git a/INSTALL b/INSTALL new file mode 100644 index 00000000..7d1c323b --- /dev/null +++ b/INSTALL @@ -0,0 +1,365 @@ +Installation Instructions +************************* + +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006, 2007, 2008, 2009 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + + The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type `make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: + + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. + diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 00000000..7bead885 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,31 @@ +SUBDIRS = build + +ACLOCAL_AMFLAGS = -I m4 + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = $(top_srcdir)/libtoxcore.pc + +BUILT_SOURCES = $(top_srcdir)/libtoxcore.pc +CLEANFILES = $(top_srcdir)/libtoxcore.pc + + +EXTRA_DIST = \ + $(top_srcdir)/libtoxcore.pc.in \ + $(top_srcdir)/cmake/FindCheck.cmake \ + $(top_srcdir)/cmake/FindLIBCONFIG.cmake \ + $(top_srcdir)/cmake/FindSphinx.cmake \ + $(top_srcdir)/cmake/FindSODIUM.cmake \ + $(top_srcdir)/cmake/FindNaCl.cmake \ + $(top_srcdir)/cmake/FindCursesw.cmake \ + $(top_srcdir)/docs/CMakeLists.txt \ + $(top_srcdir)/docs/commands.rst \ + $(top_srcdir)/docs/conf.py.in \ + $(top_srcdir)/docs/index.rst \ + $(top_srcdir)/docs/install.rst \ + $(top_srcdir)/docs/start_guide.de.rst \ + $(top_srcdir)/docs/start_guide.rst \ + $(top_srcdir)/CMakeLists.txt \ + $(top_srcdir)/tools/README \ + $(top_srcdir)/tools/astylerc \ + $(top_srcdir)/tools/pre-commit + diff --git a/NEWS b/NEWS new file mode 100644 index 00000000..e69de29b diff --git a/README b/README new file mode 120000 index 00000000..42061c01 --- /dev/null +++ b/README @@ -0,0 +1 @@ +README.md \ No newline at end of file diff --git a/auto_tests/Makefile.inc b/auto_tests/Makefile.inc new file mode 100644 index 00000000..c15f1089 --- /dev/null +++ b/auto_tests/Makefile.inc @@ -0,0 +1,39 @@ +if BUILD_TESTS + +TESTS = messenger_autotest crypto_test + +check_PROGRAMS = messenger_autotest crypto_test + +messenger_autotest_SOURCES = \ + $(top_srcdir)/auto_tests/messenger_test.c + +messenger_autotest_CFLAGS = \ + $(LIBSODIUM_CFLAGS) \ + $(CHECK_CFLAGS) + +messenger_autotest_LDADD = \ + $(LIBSODIUM_LDFLAGS) \ + libtoxcore.la \ + $(LIBSODIUM_LIBS) \ + $(CHECK_LIBS) + + +crypto_test_SOURCES = $(top_srcdir)/auto_tests/crypto_test.c + +crypto_test_CFLAGS = $(LIBSODIUM_CFLAGS) \ + $(CHECK_CFLAGS) + +crypto_test_LDADD = $(LIBSODIUM_LDFLAGS) \ + libtoxcore.la \ + $(LIBSODIUM_LIBS) \ + $(CHECK_LIBS) + +endif + +EXTRA_DIST += $(top_srcdir)/auto_tests/CMakeLists.txt \ + $(top_srcdir)/auto_tests/run_tests \ + $(top_srcdir)/auto_tests/cmake/messenger_test.cmake \ + $(top_srcdir)/auto_tests/cmake/crypto_test.cmake \ + $(top_srcdir)/auto_tests/cmake/friends_test.cmake \ + $(top_srcdir)/auto_tests/friends_test.c + diff --git a/build/Makefile.am b/build/Makefile.am new file mode 100644 index 00000000..5cc735f9 --- /dev/null +++ b/build/Makefile.am @@ -0,0 +1,10 @@ +bin_PROGRAMS = +noinst_PROGRAMS = +noinst_bindir = $(top_builddir)/build +EXTRA_DIST= + +include $(top_srcdir)/toxcore/Makefile.inc +include $(top_srcdir)/other/Makefile.inc +include $(top_srcdir)/testing/Makefile.inc +include $(top_srcdir)/other/bootstrap_serverdaemon/Makefile.inc +include $(top_srcdir)/auto_tests/Makefile.inc diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000..248d87da --- /dev/null +++ b/configure.ac @@ -0,0 +1,336 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ([2.65]) +AC_INIT([tox], [0.0.0], [http://tox.im]) +AC_CONFIG_AUX_DIR(configure_aux) +AC_CONFIG_SRCDIR([toxcore/net_crypto.c]) +AC_CONFIG_HEADERS([config.h]) +AM_INIT_AUTOMAKE([1.10 -Wall]) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +AC_CONFIG_MACRO_DIR([m4]) + +if test "x${prefix}" = "xNONE"; then + prefix="${ac_default_prefix}" +fi + +BUILD_DHT_BOOTSTRAP_DAEMON="yes" +BUILD_NTOX="yes" +BUILD_TESTS="yes" + +NCURSES_FOUND="no" +LIBCONFIG_FOUND="no" +LIBCHECK_FOUND="no" + +AC_ARG_ENABLE([tests], + [AC_HELP_STRING([--disable-tests], [build unit tests (default: auto)]) ], + [ + if test "x$enableval" = "xno"; then + BUILD_TESTS="no" + elif test "x$enableval" = "xyes"; then + BUILD_TESTS="yes" + fi + ] +) + +AC_ARG_ENABLE([ntox], + [AC_HELP_STRING([--disable-ntox], [build nTox client (default: auto)]) ], + [ + if test "x$enableval" = "xno"; then + BUILD_NTOX="no" + elif test "x$enableval" = "xyes"; then + BUILD_NTOX="yes" + fi + ] +) + +AC_ARG_ENABLE([dht-bootstrap-daemon], + [AC_HELP_STRING([--disable-dht-boostrap-daemon], [build DHT bootstrap daemon (default: auto)]) ], + [ + if test "x$enableval" = "xno"; then + BUILD_DHT_BOOTSTRAP_DAEMON="no" + elif test "x$enableval" = "xyes"; then + BUILD_DHT_BOOTSTRAP_DAEMON="yes" + fi + ] +) + +DEPSEARCH= +LIBSODIUM_SEARCH_HEADERS= +LIBSODIUM_SEARCH_LIBS= + +AC_ARG_WITH(dependency-search, + AC_HELP_STRING([--with-dependency-search=DIR], + [search for dependencies in DIR, i.e. look for libraries in + DIR/lib and for headers in DIR/include]), + [ + DEPSEARCH="$withval" + ] +) + +if test -n "$DEPSEARCH"; then + CFLAGS="$CFLAGS -I$DEPSEARCH/include" + CPPFLAGS="$CPPFLAGS -I$DEPSEARCH/include" + LDFLAGS="$LDFLAGS -L$DEPSEARCH/lib" + export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$DEPSEARCH/lib/pkgconfig +fi + +AC_ARG_WITH(libsodium-headers, + AC_HELP_STRING([--with-libsodium-headers=DIR], + [search for libsodium header files in DIR]), + [ + LIBSODIUM_SEARCH_HEADERS="$withval" + AC_MSG_NOTICE([Will search for libsodium header files in $withval]) + ] +) + +AC_ARG_WITH(libsodium-libs, + AC_HELP_STRING([--with-libsodium-libs=DIR], + [search for libsodium libraries in DIR]), + [ + LIBSODIUM_SEARCH_LIBS="$withval" + AC_MSG_NOTICE([Will search for libsodium libraries in $withval]) + ] +) + +# Checks for programs. +AC_PROG_CC +AM_PROG_CC_C_O +AC_PROG_LIBTOOL + +WIN32=no +AC_CANONICAL_HOST +case $host_os in + *mingw*) + WIN32="yes" + AC_MSG_WARN([nTox is not supported on $host_os yet, disabling]) + BUILD_NTOX="no" + ;; + *solaris*) + LIBS="$LIBS -lssp -lsocket -lnsl" + ;; +esac +AM_CONDITIONAL(WIN32, test "x$WIN32" = "xyes") + +# Checks for libraries. +LIBSODIUM_LIBS= +LIBSODIUM_LDFLAGS= +LDFLAGS_SAVE="$LDFLAGS" +if test -n "$LIBSODIUM_SEARCH_LIBS"; then + LDFLAGS="-L$LIBSODIUM_SEARCH_LIBS $LDFLAGS" + AC_CHECK_LIB(sodium, randombytes_random, + [ + LIBSODIUM_LDFLAGS="-L$LIBSODIUM_SEARCH_LIBS" + LIBSODIUM_LIBS="-lsodium" + ], + [ + AC_MSG_ERROR([required library libsodium was not found in requested location $LIBSODIUM_SEARCH_LIBS]) + ] + ) +else + AC_CHECK_LIB(sodium, randombytes_random, + [], + [ + AC_MSG_ERROR([required library libsodium was not found on your system, please check http://download.libsodium.org/libsodium/releases/]) + ] + ) +fi + +LDFLAGS="$LDFLAGS_SAVE" +AC_SUBST(LIBSODIUM_LIBS) +AC_SUBST(LIBSODIUM_LDFLAGS) + +# Checks for header files. +AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h stdint.h stdlib.h string.h sys/socket.h sys/time.h unistd.h]) + +LIBSODIUM_CFLAGS= +CFLAGS_SAVE="$CFLAGS" +CPPFLAGS_SAVE="$CPPFLAGS" +if test -n "$LIBSODIUM_SEARCH_HEADERS"; then + CFLAGS="-I$LIBSODIUM_SEARCH_HEADERS $CFLAGS" + CPPFLAGS="-I$LIBSODIUM_SEARCH_HEADERS $CPPFLAGS" + AC_CHECK_HEADER(sodium.h, + [ + LIBSODIUM_CFLAGS="-I$LIBSODIUM_SEARCH_HEADERS" + ], + [ + AC_MSG_ERROR([header files for required library libsodium was not found in requested location $LIBSODIUM_SEARCH_HEADERS]) + ] + ) +else + AC_CHECK_HEADER(sodium.h, + [], + [ + AC_MSG_ERROR([header files for required library libsodium was not found on your system, please check http://download.libsodium.org/libsodium/releases/]) + ] + ) +fi +CFLAGS="$CFLAGS_SAVE" +CPPFLAGS="$CPPFLAGS_SAVE" +AC_SUBST(LIBSODIUM_CFLAGS) + +# Checks for typedefs, structures, and compiler characteristics. +AC_HEADER_STDBOOL +AC_TYPE_INT16_T +AC_TYPE_INT32_T +AC_TYPE_PID_T +AC_TYPE_SIZE_T +AC_TYPE_UINT16_T +AC_TYPE_UINT32_T +AC_TYPE_UINT64_T +AC_TYPE_UINT8_T + +# Checks for library functions. +AC_FUNC_FORK +AC_FUNC_MALLOC +AC_FUNC_REALLOC +AC_CHECK_FUNCS([gettimeofday memset socket strchr]) + +# pkg-config based tests +PKG_PROG_PKG_CONFIG + +if test -n "$PKG_CONFIG"; then + if test "x$BUILD_TESTS" = "xyes"; then + PKG_CHECK_MODULES([CHECK], [check], + [ + LIBCHECK_FOUND="yes" + ], + [ + AC_MSG_WARN([libcheck not found, not building unit tests: $CHECK_PKG_ERRORS]) + BUILD_TESTS="no" + ]) + fi + + if test "x$BUILD_DHT_BOOTSTRAP_DAEMON" = "xyes"; then + PKG_CHECK_MODULES([LIBCONFIG], [libconfig >= 1.4.6], + [ + LIBCONFIG_FOUND="yes" + ], + [ + AC_MSG_WARN([$LIBCONFIG_PKG_ERRORS]) + AC_MSG_WARN([libconfig not available, will not build DHT botstrap daemon]) + BUILD_DHT_BOOTSTRAP_DAEMON="no" + ]) + fi + + if test "x$BUILD_NTOX" = "xyes"; then + PKG_CHECK_MODULES([NCURSES], [ncurses], + [ + NCURSES_FOUND="yes" + ], + [ + AC_MSG_WARN([$NCURSES_PKG_ERRORS]) + ]) + fi +else + AC_MSG_WARN([pkg-config was not found on your sytem]) +fi + +if (test "x$BUILD_NTOX" = "xyes") && (test "x$NCURSES_FOUND" != "xyes"); then + AC_PATH_PROG([CURSES_CONFIG], [ncurses5-config], [no]) + if test "x$CURSES_CONFIG" != "xno"; then + AC_MSG_CHECKING(ncurses cflags) + NCURSES_CFLAGS=`${CURSES_CONFIG} --cflags` + AC_MSG_RESULT($NCURSES_CFLAGS) + + AC_MSG_CHECKING(ncurses libraries) + NCURSES_LIBS=`${CURSES_CONFIG} --libs` + AC_MSG_RESULT($NCURSES_LIBS) + + AC_SUBST(NCURSES_CFLAGS) + AC_SUBST(NCURSES_LIBS) + NCURSES_FOUND="yes" + fi + + if test "x$NCURSES_FOUND" != "xyes"; then + AC_CHECK_HEADER([curses.h], + [], + [ + AC_MSG_WARN([not building nTox client because headers for the curses library were not found on your system]) + BUILD_NTOX="no" + ] + ) + if test "x$BUILD_NTOX" = "xyes"; then + AC_CHECK_LIB([ncurses], [clear], + [], + [ + unset ac_cv_lib_ncurses_clear + AC_CHECK_LIB([ncurses], [clear], + [], + [ + AC_MSG_WARN([not building nTox client because required library ncurses was not found on your system]) + BUILD_NTOX="no" + ], + [ + -ltinfo + ] + ) + ] + ) + fi + fi +fi + +if (test "x$BUILD_DHT_BOOTSTRAP_DAEMON" = "xyes") && \ + (test "x$LIBCONFIG_FOUND" = "xno"); then + AC_CHECK_HEADER(libconfig.h, + [], + [ + AC_MSG_WARN([header files for library libconfig was not found on your system, not building DHT bootstrap daemon]) + BUILD_DHT_BOOTSTRAP_DAEMON="no" + ] + ) + + if test "x$BUILD_DHT_BOOTSTRAP_DAEMON" = "xyes"; then + AC_CHECK_LIB(config, config_read, + [], + [ + AC_MSG_WARN([library libconfig was not found on the system]) + BUILD_DHT_BOOTSTRAP_DAEMON="no" + ] + ) + fi +fi + +if (test "x$BUILD_TESTS" = "xyes") && (test "x$LIBCHECK_FOUND" = "xno"); then + AC_CHECK_HEADER([check.h], + [], + [ + AC_MSG_WARN([header file for check library was not found on your system, unit tests will be disabled]) + BUILD_TESTS="no" + ] + ) + + if test "x$BUILD_TESTS" = "xyes"; then + AC_CHECK_LIB([check], [suite_create], + [], + [ + AC_MSG_WARN([library check was not found on the system, unit tests will be disabled]) + BUILD_TESTS="no" + ] + ) + fi +fi + +if test "x$WIN32" = "xyes"; then + AC_CHECK_LIB(ws2_32, main, + [ + WINSOCK2_LIBS="-lws2_32" + AC_SUBST(WINSOCK2_LIBS) + ], + [ + AC_MSG_ERROR([required library was not found on the system, please check your MinGW installation]) + ] + ) +fi + +AM_CONDITIONAL(BUILD_DHT_BOOTSTRAP_DAEMON, test "x$BUILD_DHT_BOOTSTRAP_DAEMON" = "xyes") + +AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes") +AM_CONDITIONAL(BUILD_NTOX, test "x$BUILD_NTOX" = "xyes") + +AC_CONFIG_FILES([Makefile + build/Makefile + libtoxcore.pc + ]) +AC_OUTPUT diff --git a/libtoxcore.pc.in b/libtoxcore.pc.in new file mode 100644 index 00000000..7286f43b --- /dev/null +++ b/libtoxcore.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libtoxcore +Description: Tox protocol library +Requires: +Version: @PACKAGE_VERSION@ +Libs: -L${libdir} -ltoxcore @LIBS@ +Cflags: -I${includedir}/tox + diff --git a/m4/pkg.m4 b/m4/pkg.m4 new file mode 100644 index 00000000..f26f84c9 --- /dev/null +++ b/m4/pkg.m4 @@ -0,0 +1,199 @@ +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) +# +# Copyright © 2004 Scott James Remnant . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# have to call PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])# PKG_CHECK_MODULES + + +# PKG_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable pkgconfigdir as the location where a module +# should install pkg-config .pc files. By default the directory is +# $libdir/pkgconfig, but the default can be changed by passing +# DIRECTORY. The user can override through the --with-pkgconfigdir +# parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_INSTALLDIR + + +# PKG_NOARCH_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable noarch_pkgconfigdir as the location where a +# module should install arch-independent pkg-config .pc files. By +# default the directory is $datadir/pkgconfig, but the default can be +# changed by passing DIRECTORY. The user can override through the +# --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_NOARCH_INSTALLDIR diff --git a/other/Makefile.inc b/other/Makefile.inc new file mode 100644 index 00000000..4f195e63 --- /dev/null +++ b/other/Makefile.inc @@ -0,0 +1,20 @@ +noinst_PROGRAMS += DHT_bootstrap + +DHT_bootstrap_SOURCES = $(top_srcdir)/other/DHT_bootstrap.c \ + $(top_srcdir)/toxcore/DHT.h \ + $(top_srcdir)/toxcore/friend_requests.h \ + $(top_srcdir)/testing/misc_tools.h \ + $(top_srcdir)/testing/misc_tools.c + +DHT_bootstrap_CFLAGS = -I$(top_srcdir)/other \ + $(LIBSODIUM_CFLAGS) + +DHT_bootstrap_LDADD = $(LIBSODIUM_LDFLAGS) \ + libtoxcore.la \ + $(LIBSODIUM_LIBS) \ + $(WINSOCK2_LIBS) + +EXTRA_DIST += $(top_srcdir)/other/cmake/DHT_bootstrap.cmake \ + $(top_srcdir)/other/CMakeLists.txt \ + $(top_srcdir)/other/DHTservers \ + $(top_srcdir)/other/tox.png diff --git a/other/bootstrap_serverdaemon/Makefile.inc b/other/bootstrap_serverdaemon/Makefile.inc new file mode 100644 index 00000000..a04475c5 --- /dev/null +++ b/other/bootstrap_serverdaemon/Makefile.inc @@ -0,0 +1,27 @@ +if BUILD_DHT_BOOTSTRAP_DAEMON + +noinst_PROGRAMS += DHT_bootstrap_daemon + +DHT_bootstrap_daemon_SOURCES = \ + $(top_srcdir)/other/bootstrap_serverdaemon/DHT_bootstrap_daemon.c + +DHT_bootstrap_daemon_CFLAGS = \ + -I$(top_srcdir)/other/bootstrap_serverdaemon \ + $(LIBSODIUM_CFLAGS) \ + $(LIBCONFIG_CFLAGS) + +DHT_bootstrap_daemon_LDADD = \ + $(LIBSODIUM_LDFLAGS) \ + libtoxcore.la \ + $(LIBCONFIG_LIBS) \ + $(LIBSODIUM_LIBS) + +endif + +EXTRA_DIST += \ + $(top_srcdir)/other/bootstrap_serverdaemon/server.cfg \ + $(top_srcdir)/other/bootstrap_serverdaemon/DHT_bootstrap_daemon.sh \ + $(top_srcdir)/other/bootstrap_serverdaemon/cmake/Modules \ + $(top_srcdir)/other/bootstrap_serverdaemon/cmake/Modules/FindLibConfig.cmake \ + $(top_srcdir)/other/bootstrap_serverdaemon/cmake/Modules/FindLibConfig.cmake \ + $(top_srcdir)/other/bootstrap_serverdaemon/CMakeLists.txt diff --git a/testing/Makefile.inc b/testing/Makefile.inc new file mode 100644 index 00000000..28604958 --- /dev/null +++ b/testing/Makefile.inc @@ -0,0 +1,97 @@ +if BUILD_NTOX + +bin_PROGRAMS += nTox + +nTox_SOURCES = $(top_srcdir)/testing/misc_tools.h \ + $(top_srcdir)/testing/misc_tools.c \ + $(top_srcdir)/testing/nTox.h \ + $(top_srcdir)/testing/nTox.c + +nTox_CFLAGS = $(LIBSODIUM_CFLAGS) \ + $(NCURSES_CFLAGS) + +nTox_LDADD = $(LIBSODIUM_LDFLAGS) \ + libtoxcore.la \ + $(LIBSODIUM_LIBS) \ + $(NCURSES_LIBS) + +endif + + +noinst_PROGRAMS += DHT_test \ + Lossless_UDP_testclient \ + Lossless_UDP_testserver \ + Messenger_test \ + crypto_speed_test + +DHT_test_SOURCES = $(top_srcdir)/testing/DHT_test.c \ + $(top_srcdir)/testing/misc_tools.h \ + $(top_srcdir)/testing/misc_tools.c + +DHT_test_CFLAGS = $(LIBSODIUM_CFLAGS) + +DHT_test_LDADD = $(LIBSODIUM_LDFLAGS) \ + libtoxcore.la \ + $(LIBSODIUM_LIBS) \ + $(WINSOCK2_LIBS) + + +Lossless_UDP_testclient_SOURCES = \ + $(top_srcdir)/testing/Lossless_UDP_testclient.c + +Lossless_UDP_testclient_CFLAGS = \ + $(LIBSODIUM_CFLAGS) + +Lossless_UDP_testclient_LDADD = \ + $(LIBSODIUM_LDFLAGS) \ + libtoxcore.la \ + $(LIBSODIUM_LIBS) \ + $(WINSOCK2_LIBS) + + +Lossless_UDP_testserver_SOURCES = \ + $(top_srcdir)/testing/Lossless_UDP_testserver.c + +Lossless_UDP_testserver_CFLAGS = \ + $(LIBSODIUM_CFLAGS) + +Lossless_UDP_testserver_LDADD = \ + $(LIBSODIUM_LDFLAGS) \ + libtoxcore.la \ + $(LIBSODIUM_LIBS) \ + $(WINSOCK2_LIBS) + + +Messenger_test_SOURCES = \ + $(top_srcdir)/testing/Messenger_test.c \ + $(top_srcdir)/testing/misc_tools.h \ + $(top_srcdir)/testing/misc_tools.c + +Messenger_test_CFLAGS = $(LIBSODIUM_CFLAGS) + +Messenger_test_LDADD = $(LIBSODIUM_LDFLAGS) \ + libtoxcore.la \ + $(LIBSODIUM_LIBS) \ + $(WINSOCK2_LIBS) + + +crypto_speed_test_SOURCES = \ + $(top_srcdir)/testing/crypto_speed_test.c + +crypto_speed_test_CFLAGS = \ + $(LIBSODIUM_CFLAGS) + +crypto_speed_test_LDADD = \ + $(LIBSODIUM_LDFLAGS) \ + libtoxcore.la \ + $(LIBSODIUM_LIBS) \ + $(WINSOCK2_LIBS) + + +EXTRA_DIST += $(top_srcdir)/testing/cmake/Messenger_test.cmake \ + $(top_srcdir)/testing/cmake/DHT_test.cmake \ + $(top_srcdir)/testing/cmake/Lossless_UDP_testclient.cmake \ + $(top_srcdir)/testing/cmake/Lossless_UDP_testserver.cmake \ + $(top_srcdir)/testing/cmake/nTox.cmake \ + $(top_srcdir)/testing/cmake/crypto_speed_test.cmake \ + $(top_srcdir)/testing/CMakeLists.txt diff --git a/toxcore/Makefile.inc b/toxcore/Makefile.inc new file mode 100644 index 00000000..a5b245f5 --- /dev/null +++ b/toxcore/Makefile.inc @@ -0,0 +1,42 @@ +LIBTOXCORE_VERSION = 0:0:0 + +lib_LTLIBRARIES = libtoxcore.la + +libtoxcore_la_include_HEADERS = \ + $(top_srcdir)/toxcore/tox.h + +libtoxcore_la_includedir = $(includedir)/tox + +libtoxcore_la_SOURCES = $(top_srcdir)/toxcore/DHT.h \ + $(top_srcdir)/toxcore/DHT.c \ + $(top_srcdir)/toxcore/network.h \ + $(top_srcdir)/toxcore/network.c \ + $(top_srcdir)/toxcore/Lossless_UDP.h \ + $(top_srcdir)/toxcore/Lossless_UDP.c \ + $(top_srcdir)/toxcore/net_crypto.h \ + $(top_srcdir)/toxcore/net_crypto.c \ + $(top_srcdir)/toxcore/friend_requests.h \ + $(top_srcdir)/toxcore/friend_requests.c \ + $(top_srcdir)/toxcore/LAN_discovery.h \ + $(top_srcdir)/toxcore/LAN_discovery.c \ + $(top_srcdir)/toxcore/Messenger.h \ + $(top_srcdir)/toxcore/Messenger.c \ + $(top_srcdir)/toxcore/packets.h \ + $(top_srcdir)/toxcore/ping.h \ + $(top_srcdir)/toxcore/ping.c \ + $(top_srcdir)/toxcore/tox.h \ + $(top_srcdir)/toxcore/tox.c \ + $(top_srcdir)/toxcore/util.h \ + $(top_srcdir)/toxcore/util.c + +libtoxcore_la_CFLAGS = -I$(top_srcdir) \ + -I$(top_srcdir)/toxcore \ + $(LIBSODIUM_CFLAGS) + +libtoxcore_la_LDFLAGS = -version-info $(LIBTOXCORE_VERSION) \ + $(LIBSODIUM_LDFLAGS) + +libtoxcore_la_LIBS = $(LIBSODIUM_LIBS) \ + $(WINSOCK2_LIBS) + +EXTRA_DIST += $(top_srcdir)/toxcore/CMakeLists.txt