From e658892793c42b2d058eed0937025ef2ddaaa372 Mon Sep 17 00:00:00 2001 From: jin-eld Date: Sun, 4 Aug 2013 15:10:37 +0300 Subject: [PATCH 1/4] Rename core directory because of autoconf name clash While doing the checks configure might generate "core" files and will then try to remove them. Having a "core" directory generates an error while runing the configure script. There's no workaround but to rename the core directory. --- CMakeLists.txt | 2 +- auto_tests/crypto_test.c | 2 +- auto_tests/friends_test.c | 4 +- auto_tests/messenger_test.c | 3 +- other/DHT_bootstrap.c | 4 +- .../DHT_bootstrap_daemon.c | 4 +- other/unused/timer.c | 290 ------------------ other/unused/timer.h | 104 ------- testing/DHT_test.c | 4 +- testing/Lossless_UDP_testclient.c | 4 +- testing/Lossless_UDP_testserver.c | 4 +- testing/Messenger_test.c | 2 +- testing/crypto_speed_test.c | 2 +- testing/nTox.h | 2 +- {core => toxcore}/CMakeLists.txt | 0 {core => toxcore}/DHT.c | 0 {core => toxcore}/DHT.h | 0 {core => toxcore}/LAN_discovery.c | 0 {core => toxcore}/LAN_discovery.h | 0 {core => toxcore}/Lossless_UDP.c | 0 {core => toxcore}/Lossless_UDP.h | 0 {core => toxcore}/Messenger.c | 0 {core => toxcore}/Messenger.h | 0 {core => toxcore}/friend_requests.c | 0 {core => toxcore}/friend_requests.h | 0 {core => toxcore}/net_crypto.c | 0 {core => toxcore}/net_crypto.h | 0 {core => toxcore}/network.c | 0 {core => toxcore}/network.h | 0 {core => toxcore}/packets.h | 0 {core => toxcore}/ping.c | 0 {core => toxcore}/ping.h | 0 {core => toxcore}/tox.c | 0 {core => toxcore}/tox.h | 0 {core => toxcore}/util.c | 0 {core => toxcore}/util.h | 0 36 files changed, 19 insertions(+), 412 deletions(-) delete mode 100644 other/unused/timer.c delete mode 100644 other/unused/timer.h rename {core => toxcore}/CMakeLists.txt (100%) rename {core => toxcore}/DHT.c (100%) rename {core => toxcore}/DHT.h (100%) rename {core => toxcore}/LAN_discovery.c (100%) rename {core => toxcore}/LAN_discovery.h (100%) rename {core => toxcore}/Lossless_UDP.c (100%) rename {core => toxcore}/Lossless_UDP.h (100%) rename {core => toxcore}/Messenger.c (100%) rename {core => toxcore}/Messenger.h (100%) rename {core => toxcore}/friend_requests.c (100%) rename {core => toxcore}/friend_requests.h (100%) rename {core => toxcore}/net_crypto.c (100%) rename {core => toxcore}/net_crypto.h (100%) rename {core => toxcore}/network.c (100%) rename {core => toxcore}/network.h (100%) rename {core => toxcore}/packets.h (100%) rename {core => toxcore}/ping.c (100%) rename {core => toxcore}/ping.h (100%) rename {core => toxcore}/tox.c (100%) rename {core => toxcore}/tox.h (100%) rename {core => toxcore}/util.c (100%) rename {core => toxcore}/util.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index cba0013c..73e89171 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,7 +58,7 @@ endmacro() cmake_policy(SET CMP0011 NEW) -add_subdirectory(core) +add_subdirectory(toxcore) add_subdirectory(testing) add_subdirectory(other) add_subdirectory(docs) diff --git a/auto_tests/crypto_test.c b/auto_tests/crypto_test.c index 01c545c8..b3ce6259 100644 --- a/auto_tests/crypto_test.c +++ b/auto_tests/crypto_test.c @@ -1,4 +1,4 @@ -#include "../core/net_crypto.h" +#include "../toxcore/net_crypto.h" #include #include #include diff --git a/auto_tests/friends_test.c b/auto_tests/friends_test.c index b6223489..0426c18d 100644 --- a/auto_tests/friends_test.c +++ b/auto_tests/friends_test.c @@ -18,8 +18,8 @@ * times. This is used both to ensure that we don't loop forever on a broken build, * and that we don't get too slow with messaging. The current time is 15 seconds. */ -#include "../core/friend_requests.h" -#include "../core/Messenger.h" +#include "../toxcore/friend_requests.h" +#include "../toxcore/Messenger.h" #include #include #include diff --git a/auto_tests/messenger_test.c b/auto_tests/messenger_test.c index 9de69409..deac749b 100644 --- a/auto_tests/messenger_test.c +++ b/auto_tests/messenger_test.c @@ -10,7 +10,8 @@ * checking that status changes are received, messages can be sent, etc. * All of that is done in a separate test, with two local clients running. */ -#include "../core/Messenger.h" +#include "../toxcore/Messenger.h" +#include "../toxcore/Lossless_UDP.h" #include #include #include diff --git a/other/DHT_bootstrap.c b/other/DHT_bootstrap.c index c0d4fcc6..0bf71312 100644 --- a/other/DHT_bootstrap.c +++ b/other/DHT_bootstrap.c @@ -27,8 +27,8 @@ * */ -#include "../core/DHT.h" -#include "../core/friend_requests.h" +#include "../toxcore/DHT.h" +#include "../toxcore/friend_requests.h" #include "../testing/misc_tools.h" //Sleep function (x = milliseconds) diff --git a/other/bootstrap_serverdaemon/DHT_bootstrap_daemon.c b/other/bootstrap_serverdaemon/DHT_bootstrap_daemon.c index 46409b76..eec4e39f 100644 --- a/other/bootstrap_serverdaemon/DHT_bootstrap_daemon.c +++ b/other/bootstrap_serverdaemon/DHT_bootstrap_daemon.c @@ -32,8 +32,8 @@ #include /* htons() */ #include /* strcpy() */ -#include "../../core/DHT.h" -#include "../../core/friend_requests.h" +#include "../../toxcore/DHT.h" +#include "../../toxcore/friend_requests.h" #define DEFAULT_PORT 33445 #define DEFAULT_PID_FILE "bootstrap_server.pid" diff --git a/other/unused/timer.c b/other/unused/timer.c deleted file mode 100644 index 29190921..00000000 --- a/other/unused/timer.c +++ /dev/null @@ -1,290 +0,0 @@ -#define __STDC_FORMAT_MACROS -#include - -#include "timer.h" -#include "network.h" - -/* -A nested linked list increases efficiency of insertions. -Depending on the number of timers we have, we might need to have nested linked lists -in order to improve insertion efficiency. -The code below is preperation for that end, should it be necessary. - -typedef struct { - struct timer_package* _next; - union { - timer_packet* _inner; - timer* queue; - }; - uint64_t pkgtime; -} timer_package; - -timer_package* timer_package_pool; - -static timer_package* new_package() -{ - timer_package* ret; - if (timer_package_pool) { - ret = timer_package_pool; - timer_package_pool = timer_package_pool->_next; - } else { - ret = calloc(1, sizeof(struct timer_package)); - } - return ret; -} - -static void delete_package(timer_package* p) -{ - p->_next = timer_package_pool; - timer_package_pool = p; -} -*/ - -enum timer_state { - STATE_INACTIVE = 0, - STATE_ACTIVE, - STATE_CALLBACK -}; - -struct timer { - enum timer_state state; - timer *_prev; - timer *_next; - timer_callback cb; - void *userdata; - uint64_t deadline; -}; - -static timer *timer_main_queue; -static timer *timer_us_queue; /* hi-speed queue */ - -inline static void timer_dequeue(timer *t, timer **queue) -{ - if (t->state == STATE_INACTIVE) return; /* not in a queue */ - - if (t->_prev) { - t->_prev->_next = t->_next; - } else { - *queue = t->_next; - } - - if (t->_next) t->_next->_prev = t->_prev; - - t->state = STATE_INACTIVE; -} - -static void timer_enqueue(timer *t, timer **queue, timer *prev) -{ - t->state = STATE_ACTIVE; - - while (true) { - if (!*queue) { - t->_next = 0; - t->_prev = prev; - *queue = t; - return; - } - - if ((*queue)->deadline > t->deadline) { - (*queue)->_prev = t; - t->_next = *queue; - t->_prev = prev; - *queue = t; - return; - } - - prev = *queue; - queue = &((*queue)->_next); - } -} - -/*** interface ***/ - -void timer_init() -{ - /* Nothing needs to be done... yet. */ -} - -/* Do not depend on fields being zeroed */ -static timer *timer_pool; /* timer_pool is SINGLY LINKED!! */ - -timer *new_timer(void) -{ - timer *ret; - - if (timer_pool) { - ret = timer_pool; - timer_pool = timer_pool->_next; - } else { - ret = calloc(1, sizeof(struct timer)); - } - - ret->state = STATE_INACTIVE; - return ret; -} - -void delete_timer(timer *t) -{ - timer_dequeue(t, &timer_main_queue); - t->_next = timer_pool; - t->state = STATE_INACTIVE; - timer_pool = t; -} - -void timer_setup(timer *t, timer_callback cb, void *userarg) -{ - t->cb = cb; - t->userdata = userarg; -} - -void *timer_get_userdata(timer *t) -{ - return t->userdata; -} - -static void timer_delay_us(timer *t, int us) -{ - t->deadline += us; - timer **queue = t->_prev ? &(t->_prev->_next) : &timer_main_queue; - timer_dequeue(t, &timer_main_queue); - timer_enqueue(t, queue, t->_prev); -} - -/* Starts the timer so that it's called in sec seconds in the future. - * A non-positive value of sec results in the callback being called immediately. - * This function may be called again after a timer has been started to adjust - * the expiry time. */ -void timer_start(timer *t, int sec) -{ - uint64_t newdeadline = current_time() + sec * US_PER_SECOND; - - if (timer_is_active(t)) { - if (t->deadline < newdeadline) { - timer_delay_us(t, newdeadline - t->deadline); - return; - } - - timer_dequeue(t, &timer_main_queue); - } - - t->deadline = newdeadline; - timer_enqueue(t, &timer_main_queue, 0); -} - -/* Stops the timer. Returns -1 if the timer was not active. */ -int timer_stop(timer *t) -{ - int ret = timer_is_active(t) ? -1 : 0; - timer_dequeue(t, &timer_main_queue); - return ret; -} - -/* Adds additionalsec seconds to the timer. - * Returns -1 and does nothing if the timer was not active. */ -int timer_delay(timer *t, int additonalsec) -{ - if (!timer_is_active(t)) return -1; - - timer_delay_us(t, additonalsec * US_PER_SECOND); - return 0; -} - -static uint64_t timer_diff(timer *t, uint64_t time) -{ - if (t->deadline <= time) return 0; - - return time - t->deadline; -} - -/* Returns the time remaining on a timer in seconds. - * Returns -1 if the timer is not active. - * Returns 0 if the timer has expired and will be called upon the next call to timer_poll. */ -int timer_time_remaining(timer *t) -{ - if (!timer_is_active(t)) return -1; - - return timer_diff(t, current_time()) / US_PER_SECOND; -} - -bool timer_is_active(timer *t) -{ - return t->state != STATE_INACTIVE; -} - -/* Single-use timer. - * Creates a new timer, preforms setup and starts it. */ -void timer_single(timer_callback cb, void *userarg, int sec) -{ - timer *t = new_timer(); - timer_setup(t, cb, userarg); - timer_start(t, sec); -} - -/* Single-use microsecond timer. */ -void timer_us(timer_callback cb, void *userarg, int us) -{ - timer *t = new_timer(); - timer_setup(t, cb, userarg); - t->deadline = current_time() + us; - t->state = STATE_ACTIVE; - timer_enqueue(t, &timer_us_queue, 0); -} - -uint64_t prevtime = 0; -void timer_poll(void) -{ - uint64_t time = current_time(); - - /* Handle millisecond timers */ - while (timer_us_queue) { - if (timer_diff(timer_us_queue, time) != 0) break; - - timer *t = timer_us_queue; - timer_dequeue(t, &timer_us_queue); - t->cb(0, t->userdata); - delete_timer(t); - } - - if (time - prevtime > US_PER_SECOND || prevtime == 0 || prevtime > time) { - /* time moving backwards is just a sanity check */ - prevtime = time; - - while (timer_main_queue) { - if (timer_diff(timer_main_queue, time) != 0) break; - - timer *t = timer_main_queue; - t->state = STATE_CALLBACK; - int rv = t->cb(t, t->userdata); - - if (rv != 0) { - timer_dequeue(t, &timer_main_queue); - delete_timer(t); - continue; - } - - if (t->state != STATE_ACTIVE) { - timer_dequeue(t, &timer_main_queue); - } - } - } -} - -/*** Internal Testing ***/ - -/* I do not want to expose internals to the public, - * which is why internals testing is done this way. */ -void timer_internal_tests(bool (*assert)(bool, char *)) -{ - -} - -void timer_debug_print() -{ - timer *t = timer_main_queue; - printf("Queue:\n"); - - while (t) { - printf("%" PRIu64 " (%" PRIu64 ") : %s\n", t->deadline, t->deadline / US_PER_SECOND, (char *)t->userdata); - t = t->_next; - } -} diff --git a/other/unused/timer.h b/other/unused/timer.h deleted file mode 100644 index 15491326..00000000 --- a/other/unused/timer.h +++ /dev/null @@ -1,104 +0,0 @@ -/* timer.h - * - * Timing subsystem. Provides deadline timers. - * All times are aliased to a second for efficiency. - * - * Timer Guarantees: - * - The callback will not be called before the timer expires. - * - The callback will be called sometime after the timer expires, - * on a best effort basis. - * - If timer_poll is called at least once a second, the callback - * will be called at most one second after it expires. - * - * Copyright (C) 2013 Tox project All Rights Reserved. - * - * This file is part of Tox. - * - * Tox 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 3 of the License, or - * (at your option) any later version. - * - * Tox 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 Tox. If not, see . - * - */ - -#ifndef TIMER_H -#define TIMER_H - -#include -#include - -#define US_PER_SECOND 1000000 /* 1 s = 10^6 us */ - -struct timer; -typedef struct timer timer; - -/* If time_callback returns a non-zero value, timer t is deleted. - * You may call any of the timer functions within the callback: - * For example, you may call timer_start to restart the timer from - * within a callback. */ -typedef int (*timer_callback)(timer *t, void *userarg); - -/* Initisalise timer subsystem */ -void timer_init(void); - -/* Poll. (I will eventually replace all polling in Tox with an async system.) */ -void timer_poll(void); - -/* Creates a new timer. Does not enqueue/start it. */ -timer *new_timer(void); - -/* Destroys a timer instance. */ -void delete_timer(timer *t); - -/* Sets up the timer callback. */ -void timer_setup(timer *t, timer_callback cb, void *userarg); - -/* Accessor Function. */ -void *timer_get_userdata(timer *t); - -/* Starts the timer so that it's called in sec seconds in the future from now. - * A non-positive value of sec results in the callback being called immediately. - * This function may be called again after a timer has been started to adjust - * the expiry time. */ -void timer_start(timer *t, int sec); - -/* Stops the timer. Returns -1 if the timer was not active. */ -int timer_stop(timer *t); - -/* Adds additionalsec seconds to the timer. - * Returns -1 and does nothing if the timer was not active. */ -int timer_delay(timer *t, int additonalsec); - -/* Returns the time remaining on a timer in seconds. - * Returns -1 if the timer is not active. - * Returns 0 if the timer has expired and the callback hasn't been called yet. */ -int timer_time_remaining(timer *t); - -/* Determines if timer is active. Returns TRUE if it is active */ -bool timer_is_active(timer *t); - -/* Single-use timer. - * Creates a new timer, preforms setup and starts it. - * Callback must return a non-zero value to prevent memory leak. */ -void timer_single(timer_callback cb, void *userarg, int sec); - -/* Single-use microsecond timer. - * Creates a new timer, preforms setup and starts it. - * Please do not use this when accuracy is not absolutely required. - * Use when one needs to time a period < 1 s. - * Use the more coarse timers above for periods > 5 s. - * WARNING: the callback will be called with NULL as the first argument */ -void timer_us(timer_callback cb, void *userarg, int us); - -/* Internal Testing */ -void timer_internal_tests(bool( *)(bool, char *)); - -#endif diff --git a/testing/DHT_test.c b/testing/DHT_test.c index 53369794..d14f9781 100644 --- a/testing/DHT_test.c +++ b/testing/DHT_test.c @@ -28,8 +28,8 @@ */ //#include "../core/network.h" -#include "../core/DHT.h" -#include "../core/friend_requests.h" +#include "../toxcore/DHT.h" +#include "../toxcore/friend_requests.h" #include "misc_tools.h" #include diff --git a/testing/Lossless_UDP_testclient.c b/testing/Lossless_UDP_testclient.c index 09e9e0a3..af349863 100644 --- a/testing/Lossless_UDP_testclient.c +++ b/testing/Lossless_UDP_testclient.c @@ -28,8 +28,8 @@ * */ -#include "../core/network.h" -#include "../core/Lossless_UDP.h" +#include "../toxcore/network.h" +#include "../toxcore/Lossless_UDP.h" #ifdef WIN32 diff --git a/testing/Lossless_UDP_testserver.c b/testing/Lossless_UDP_testserver.c index a82b787a..5c2cabd0 100644 --- a/testing/Lossless_UDP_testserver.c +++ b/testing/Lossless_UDP_testserver.c @@ -28,8 +28,8 @@ * */ -#include "../core/network.h" -#include "../core/Lossless_UDP.h" +#include "../toxcore/network.h" +#include "../toxcore/Lossless_UDP.h" //Sleep function (x = milliseconds) #ifdef WIN32 diff --git a/testing/Messenger_test.c b/testing/Messenger_test.c index c76584d7..19fd9ab7 100644 --- a/testing/Messenger_test.c +++ b/testing/Messenger_test.c @@ -37,7 +37,7 @@ * */ -#include "../core/Messenger.h" +#include "../toxcore/Messenger.h" #include "misc_tools.h" #ifdef WIN32 diff --git a/testing/crypto_speed_test.c b/testing/crypto_speed_test.c index a61b30e8..b06c25e1 100644 --- a/testing/crypto_speed_test.c +++ b/testing/crypto_speed_test.c @@ -28,7 +28,7 @@ double get_time() #endif -#include "../core/net_crypto.h" +#include "../toxcore/net_crypto.h" #include #include diff --git a/testing/nTox.h b/testing/nTox.h index b27a956f..df9d404a 100644 --- a/testing/nTox.h +++ b/testing/nTox.h @@ -35,7 +35,7 @@ #include #include #include -#include "../core/tox.h" +#include "../toxcore/tox.h" #define STRING_LENGTH 256 #define HISTORY 50 diff --git a/core/CMakeLists.txt b/toxcore/CMakeLists.txt similarity index 100% rename from core/CMakeLists.txt rename to toxcore/CMakeLists.txt diff --git a/core/DHT.c b/toxcore/DHT.c similarity index 100% rename from core/DHT.c rename to toxcore/DHT.c diff --git a/core/DHT.h b/toxcore/DHT.h similarity index 100% rename from core/DHT.h rename to toxcore/DHT.h diff --git a/core/LAN_discovery.c b/toxcore/LAN_discovery.c similarity index 100% rename from core/LAN_discovery.c rename to toxcore/LAN_discovery.c diff --git a/core/LAN_discovery.h b/toxcore/LAN_discovery.h similarity index 100% rename from core/LAN_discovery.h rename to toxcore/LAN_discovery.h diff --git a/core/Lossless_UDP.c b/toxcore/Lossless_UDP.c similarity index 100% rename from core/Lossless_UDP.c rename to toxcore/Lossless_UDP.c diff --git a/core/Lossless_UDP.h b/toxcore/Lossless_UDP.h similarity index 100% rename from core/Lossless_UDP.h rename to toxcore/Lossless_UDP.h diff --git a/core/Messenger.c b/toxcore/Messenger.c similarity index 100% rename from core/Messenger.c rename to toxcore/Messenger.c diff --git a/core/Messenger.h b/toxcore/Messenger.h similarity index 100% rename from core/Messenger.h rename to toxcore/Messenger.h diff --git a/core/friend_requests.c b/toxcore/friend_requests.c similarity index 100% rename from core/friend_requests.c rename to toxcore/friend_requests.c diff --git a/core/friend_requests.h b/toxcore/friend_requests.h similarity index 100% rename from core/friend_requests.h rename to toxcore/friend_requests.h diff --git a/core/net_crypto.c b/toxcore/net_crypto.c similarity index 100% rename from core/net_crypto.c rename to toxcore/net_crypto.c diff --git a/core/net_crypto.h b/toxcore/net_crypto.h similarity index 100% rename from core/net_crypto.h rename to toxcore/net_crypto.h diff --git a/core/network.c b/toxcore/network.c similarity index 100% rename from core/network.c rename to toxcore/network.c diff --git a/core/network.h b/toxcore/network.h similarity index 100% rename from core/network.h rename to toxcore/network.h diff --git a/core/packets.h b/toxcore/packets.h similarity index 100% rename from core/packets.h rename to toxcore/packets.h diff --git a/core/ping.c b/toxcore/ping.c similarity index 100% rename from core/ping.c rename to toxcore/ping.c diff --git a/core/ping.h b/toxcore/ping.h similarity index 100% rename from core/ping.h rename to toxcore/ping.h diff --git a/core/tox.c b/toxcore/tox.c similarity index 100% rename from core/tox.c rename to toxcore/tox.c diff --git a/core/tox.h b/toxcore/tox.h similarity index 100% rename from core/tox.h rename to toxcore/tox.h diff --git a/core/util.c b/toxcore/util.c similarity index 100% rename from core/util.c rename to toxcore/util.c diff --git a/core/util.h b/toxcore/util.h similarity index 100% rename from core/util.h rename to toxcore/util.h From 50c8a820e5ab46acc129a49ab849f8848e40d915 Mon Sep 17 00:00:00 2001 From: jin-eld Date: Tue, 13 Aug 2013 21:55:32 +0300 Subject: [PATCH 2/4] 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 From 974b8fb8bfea5529b26e2b037bd1a5bf5d9513b7 Mon Sep 17 00:00:00 2001 From: jin-eld Date: Sat, 24 Aug 2013 03:22:07 +0300 Subject: [PATCH 3/4] Move travis build to autotools --- .travis.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 85b3251e..931c27b5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,12 +27,10 @@ before_script: - sudo apt-get install check script: - - mkdir -p build && cd build - - cmake .. + - autoreconf -i + - ./configure - make -j3 - - make test -# build docs separately - - make docs + - make check notifications: email: false From 1ec70337cfbf42f5f10d20c6152cdc5cf635df1b Mon Sep 17 00:00:00 2001 From: jin-eld Date: Sat, 24 Aug 2013 03:36:43 +0300 Subject: [PATCH 4/4] Remove cmake build system --- CMakeLists.txt | 67 ---------------- Makefile.am | 12 +-- auto_tests/CMakeLists.txt | 22 ------ auto_tests/Makefile.inc | 7 +- auto_tests/cmake/crypto_test.cmake | 10 --- auto_tests/cmake/friends_test.cmake | 10 --- auto_tests/cmake/messenger_test.cmake | 10 --- cmake/FindCheck.cmake | 46 ----------- cmake/FindCursesw.cmake | 47 ----------- cmake/FindLIBCONFIG.cmake | 20 ----- cmake/FindNaCl.cmake | 17 ---- cmake/FindSODIUM.cmake | 75 ------------------ cmake/FindSphinx.cmake | 16 ---- cmake/InstallPkgConfigFile.cmake | 78 ------------------- docs/CMakeLists.txt | 38 --------- other/CMakeLists.txt | 23 ------ other/Makefile.inc | 4 +- other/bootstrap_serverdaemon/CMakeLists.txt | 19 ----- other/bootstrap_serverdaemon/Makefile.inc | 6 +- .../cmake/Modules/FindLibConfig.cmake | 73 ----------------- other/cmake/DHT_bootstrap.cmake | 10 --- testing/CMakeLists.txt | 15 ---- testing/Makefile.inc | 8 -- testing/cmake/DHT_test.cmake | 10 --- testing/cmake/Lossless_UDP_testclient.cmake | 9 --- testing/cmake/Lossless_UDP_testserver.cmake | 9 --- testing/cmake/Messenger_test.cmake | 9 --- testing/cmake/crypto_speed_test.cmake | 9 --- testing/cmake/nTox.cmake | 12 --- toxcore/CMakeLists.txt | 45 ----------- toxcore/Makefile.inc | 2 - 31 files changed, 7 insertions(+), 731 deletions(-) delete mode 100755 CMakeLists.txt delete mode 100644 auto_tests/CMakeLists.txt delete mode 100644 auto_tests/cmake/crypto_test.cmake delete mode 100644 auto_tests/cmake/friends_test.cmake delete mode 100644 auto_tests/cmake/messenger_test.cmake delete mode 100644 cmake/FindCheck.cmake delete mode 100644 cmake/FindCursesw.cmake delete mode 100644 cmake/FindLIBCONFIG.cmake delete mode 100644 cmake/FindNaCl.cmake delete mode 100644 cmake/FindSODIUM.cmake delete mode 100644 cmake/FindSphinx.cmake delete mode 100644 cmake/InstallPkgConfigFile.cmake delete mode 100644 docs/CMakeLists.txt delete mode 100644 other/CMakeLists.txt delete mode 100644 other/bootstrap_serverdaemon/CMakeLists.txt delete mode 100644 other/bootstrap_serverdaemon/cmake/Modules/FindLibConfig.cmake delete mode 100644 other/cmake/DHT_bootstrap.cmake delete mode 100644 testing/CMakeLists.txt delete mode 100644 testing/cmake/DHT_test.cmake delete mode 100644 testing/cmake/Lossless_UDP_testclient.cmake delete mode 100644 testing/cmake/Lossless_UDP_testserver.cmake delete mode 100644 testing/cmake/Messenger_test.cmake delete mode 100644 testing/cmake/crypto_speed_test.cmake delete mode 100644 testing/cmake/nTox.cmake delete mode 100644 toxcore/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100755 index 73e89171..00000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,67 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) - -set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) - -option(SHARED_TOXCORE "Build Core as a shared library") - -if(WIN32) - option(SHARED_LIBSODIUM "Links libsodium as a shared library") -else() - option(USE_NACL "Use NaCl library instead of libsodium") - option(NO_WIDECHAR "Do not use wide char, even if supported") -endif() - -#OS X specific -if(APPLE) - set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /opt/local/lib) - set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} /opt/local/include) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I/opt/local/include" ) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/opt/local/lib") -endif() - -if(UNIX) - find_package(Cursesw REQUIRED) -endif() - -if(USE_NACL) - find_package(NaCl REQUIRED) - - include_directories(${NACL_INCLUDE_DIR}) - add_definitions(-DVANILLA_NACL) - - set(LINK_CRYPTO_LIBRARY ${NACL_LIBRARIES}) -else() - find_package(SODIUM REQUIRED) - - include_directories(${SODIUM_INCLUDE_DIR}) - - set(LINK_CRYPTO_LIBRARY ${SODIUM_LIBRARIES}) -endif() - -#MinGW prints more warnings for -Wall than gcc does, thus causing build to fail -if(NOT WIN32) - if(("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU") OR ("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")) - message(STATUS "==== ${CMAKE_C_COMPILER_ID} detected - Adding compiler flags ====") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror") - endif() -endif() - -macro(linkCoreLibraries exe_name) - add_dependencies(${exe_name} toxcore) - target_link_libraries(${exe_name} toxcore - ${LINK_CRYPTO_LIBRARY}) - - if(WIN32) - target_link_libraries(${exe_name} ws2_32) - endif() -endmacro() - -cmake_policy(SET CMP0011 NEW) - -add_subdirectory(toxcore) -add_subdirectory(testing) -add_subdirectory(other) -add_subdirectory(docs) -if(UNIX) - add_subdirectory(auto_tests) -endif() diff --git a/Makefile.am b/Makefile.am index 7bead885..9f193782 100644 --- a/Makefile.am +++ b/Makefile.am @@ -11,20 +11,16 @@ 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/install.rst \ $(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)/docs/updates/Crypto.md \ + $(top_srcdir)/docs/updates/Spam-Prevention.md \ + $(top_srcdir)/docs/updates/Symmetric-NAT-Transversal.md \ $(top_srcdir)/tools/README \ $(top_srcdir)/tools/astylerc \ $(top_srcdir)/tools/pre-commit diff --git a/auto_tests/CMakeLists.txt b/auto_tests/CMakeLists.txt deleted file mode 100644 index c0b6aee4..00000000 --- a/auto_tests/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) -cmake_policy(SET CMP0011 NEW) - -include_directories(${CHECK_INCLUDE_DIRS}) - -find_package(Check REQUIRED) -include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/messenger_test.cmake) -include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/crypto_test.cmake) -include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/friends_test.cmake) - -include( CTest ) -enable_testing() - -add_test(messenger messenger_test) -add_test(crypto crypto_test) -# TODO enable once test is fixed -#add_test(friends friends_test) - -add_custom_target( - test COMMAND ${CMAKE_CTEST_COMMAND} -V - DEPENDS messenger_test crypto_test -) diff --git a/auto_tests/Makefile.inc b/auto_tests/Makefile.inc index c15f1089..bd883a79 100644 --- a/auto_tests/Makefile.inc +++ b/auto_tests/Makefile.inc @@ -30,10 +30,5 @@ crypto_test_LDADD = $(LIBSODIUM_LDFLAGS) \ 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 +EXTRA_DIST += $(top_srcdir)/auto_tests/friends_test.c diff --git a/auto_tests/cmake/crypto_test.cmake b/auto_tests/cmake/crypto_test.cmake deleted file mode 100644 index 9ca9a331..00000000 --- a/auto_tests/cmake/crypto_test.cmake +++ /dev/null @@ -1,10 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) -project(crypto_test C) -set(exe_name crypto_test) - -add_executable(${exe_name} - crypto_test.c) - -linkCoreLibraries(${exe_name}) -add_dependencies(${exe_name} Check) -target_link_libraries(${exe_name} check) diff --git a/auto_tests/cmake/friends_test.cmake b/auto_tests/cmake/friends_test.cmake deleted file mode 100644 index 5c2d0fc6..00000000 --- a/auto_tests/cmake/friends_test.cmake +++ /dev/null @@ -1,10 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) -project(friends_test C) -set(exe_name friends_test) - -add_executable(${exe_name} - friends_test.c) - -linkCoreLibraries(${exe_name}) -add_dependencies(${exe_name} Check) -target_link_libraries(${exe_name} check) diff --git a/auto_tests/cmake/messenger_test.cmake b/auto_tests/cmake/messenger_test.cmake deleted file mode 100644 index 084586bb..00000000 --- a/auto_tests/cmake/messenger_test.cmake +++ /dev/null @@ -1,10 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) -project(messenger_test C) -set(exe_name messenger_test) - -add_executable(${exe_name} - messenger_test.c) - -linkCoreLibraries(${exe_name}) -add_dependencies(${exe_name} Check) -target_link_libraries(${exe_name} check) diff --git a/cmake/FindCheck.cmake b/cmake/FindCheck.cmake deleted file mode 100644 index e9e7f4d1..00000000 --- a/cmake/FindCheck.cmake +++ /dev/null @@ -1,46 +0,0 @@ -# - Try to find the CHECK libraries -# Once done this will define -# -# CHECK_FOUND - system has check -# CHECK_INCLUDE_DIR - the check include directory -# CHECK_LIBRARIES - check library -# -# Copyright (c) 2007 Daniel Gollub -# Copyright (c) 2007 Bjoern Ricks -# -# Redistribution and use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - - -INCLUDE( FindPkgConfig ) - -# Take care about check.pc settings -PKG_SEARCH_MODULE( CHECK check ) - -# Look for CHECK include dir and libraries -IF( NOT CHECK_FOUND ) - - FIND_PATH( CHECK_INCLUDE_DIR check.h ) - - FIND_LIBRARY( CHECK_LIBRARIES NAMES check ) - - IF ( CHECK_INCLUDE_DIR AND CHECK_LIBRARIES ) - SET( CHECK_FOUND 1 ) - IF ( NOT Check_FIND_QUIETLY ) - MESSAGE ( STATUS "Found CHECK: ${CHECK_LIBRARIES}" ) - ENDIF ( NOT Check_FIND_QUIETLY ) - ELSE ( CHECK_INCLUDE_DIR AND CHECK_LIBRARIES ) - IF ( Check_FIND_REQUIRED ) - MESSAGE( FATAL_ERROR "Could NOT find CHECK" ) - ELSE ( Check_FIND_REQUIRED ) - IF ( NOT Check_FIND_QUIETLY ) - MESSAGE( STATUS "Could NOT find CHECK" ) - ENDIF ( NOT Check_FIND_QUIETLY ) - ENDIF ( Check_FIND_REQUIRED ) - ENDIF ( CHECK_INCLUDE_DIR AND CHECK_LIBRARIES ) -ENDIF( NOT CHECK_FOUND ) - -# Hide advanced variables from CMake GUIs -MARK_AS_ADVANCED( CHECK_INCLUDE_DIR CHECK_LIBRARIES ) - diff --git a/cmake/FindCursesw.cmake b/cmake/FindCursesw.cmake deleted file mode 100644 index bff02cec..00000000 --- a/cmake/FindCursesw.cmake +++ /dev/null @@ -1,47 +0,0 @@ -# - Find the curses include file and library -# -# CURSES_INCLUDE_DIR - the Curses include directory -# CURSES_LIBRARIES - The libraries needed to use Curses -# CURSES_HAVE_WIDE_CHAR - true if wide char is available -# NO_WIDECHAR - Input variable, if set, disable wide char -# ------------------------------------------------------------------------ - - -find_library(CURSES_LIBRARY "curses") -find_library(CURSESW_LIBRARY "cursesw") - -find_library(NCURSES_LIBRARY "ncurses") -find_library(NCURSESW_LIBRARY "ncursesw") - -if(NOT NO_WIDECHAR AND (CURSESW_LIBRARY OR NCURSESW_LIBRARY)) - message(STATUS "Found wide character support") - set(CURSES_HAVE_WIDE_CHAR TRUE) - if(NCURSESW_LIBRARY) - set(CURSES_LIBRARIES ${NCURSESW_LIBRARY}) - else() - set(CURSES_LIBRARIES ${CURSESW_LIBRARY}) - endif() -else() - message(STATUS "Could not found wide character support") - if(NCURSES_LIBRARY) - set(CURSES_LIBRARIES ${NCURSES_LIBRARY}) - else() - set(CURSES_LIBRARIES ${CURSES_LIBRARY}) - endif() -endif() - - -# We use curses.h not ncurses.h so let's not care about that for now - -if(CURSES_HAVE_WIDE_CHAR) - find_path(CURSES_INCLUDE_PATH curses.h PATH_SUFFIXES ncursesw) -else() - find_path(CURSES_INCLUDE_PATH curses.h PATH_SUFFIXES ncurses) -endif() - -set(CURSES_INCLUDE_DIR ${CURSES_INCLUDE_PATH}) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Cursesw DEFAULT_MSG CURSES_INCLUDE_DIR CURSES_LIBRARIES) - - diff --git a/cmake/FindLIBCONFIG.cmake b/cmake/FindLIBCONFIG.cmake deleted file mode 100644 index b3ae4d11..00000000 --- a/cmake/FindLIBCONFIG.cmake +++ /dev/null @@ -1,20 +0,0 @@ -# Find LIBCONFIG -# -# LIBCONFIG_INCLUDE_DIR -# LIBCONFIG_LIBRARY -# LIBCONFIG_FOUND -# - -if (UNIX) - find_package(PkgConfig QUIET) - pkg_check_modules(_LIBCONFIG QUIET libconfig) -endif () - -FIND_PATH(LIBCONFIG_INCLUDE_DIR NAMES libconfig.h HINTS ${_LIBCONFIG_INCLUDEDIR}) - -FIND_LIBRARY(LIBCONFIG_LIBRARY NAMES config) - -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBCONFIG DEFAULT_MSG LIBCONFIG_LIBRARY LIBCONFIG_INCLUDE_DIR) - -MARK_AS_ADVANCED(LIBCONFIG_INCLUDE_DIR LIBCONFIG_LIBRARY) diff --git a/cmake/FindNaCl.cmake b/cmake/FindNaCl.cmake deleted file mode 100644 index cdd6248a..00000000 --- a/cmake/FindNaCl.cmake +++ /dev/null @@ -1,17 +0,0 @@ -find_path(NACL_INCLUDE_DIR crypto_box.h - $ENV{NACL_INCLUDE_DIR} /usr/include/nacl/ - DOC "Directory which contain NaCl headers") - -find_path(NACL_LIBRARY_DIR libnacl.a - $ENV{NACL_LIBRARY_DIR} /usr/lib/nacl - DOC "Directory which contain libnacl.a, cpucycles.o, and randombytes.o") - -if(NACL_LIBRARY_DIR) - set(NACL_LIBRARIES - "${NACL_LIBRARY_DIR}/cpucycles.o" - "${NACL_LIBRARY_DIR}/libnacl.a" - "${NACL_LIBRARY_DIR}/randombytes.o") -endif() - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(NaCl DEFAULT_MSG NACL_INCLUDE_DIR NACL_LIBRARY_DIR NACL_LIBRARIES) diff --git a/cmake/FindSODIUM.cmake b/cmake/FindSODIUM.cmake deleted file mode 100644 index 6b0c2f23..00000000 --- a/cmake/FindSODIUM.cmake +++ /dev/null @@ -1,75 +0,0 @@ -# - Try to find SODIUM -# Once done this will define -# -# SODIUM_ROOT_DIR - Set this variable to the root installation of CMocka -# -# Read-Only variables: -# SODIUM_FOUND - system has SODIUM -# SODIUM_INCLUDE_DIR - the SODIUM include directory -# SODIUM_LIBRARIES - Link these to use SODIUM -# SODIUM_DEFINITIONS - Compiler switches required for using SODIUM -# -#============================================================================= -# Copyright (c) 2013 Andreas Schneider -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# - -set(_SODIUM_ROOT_HINTS -) - -set(_SODIUM_ROOT_PATHS - "$ENV{PROGRAMFILES}/sodium" - "${CMAKE_SOURCE_DIR}/sodium" -) - -find_path(SODIUM_ROOT_DIR - NAMES - include/sodium.h - HINTS - ${_SODIUM_ROOT_HINTS} - PATHS - ${_SODIUM_ROOT_PATHS} -) -mark_as_advanced(SODIUM_ROOT_DIR) - -find_path(SODIUM_INCLUDE_DIR - NAMES - sodium.h - PATHS - ${SODIUM_ROOT_DIR}/include -) - -if(SHARED_LIBSODIUM) - set(WIN32_LIBSODIUM_FILENAME libsodium.dll.a) -else() - set(WIN32_LIBSODIUM_FILENAME libsodium.a) -endif() - -find_library(SODIUM_LIBRARY - NAMES - sodium - ${WIN32_LIBSODIUM_FILENAME} - PATHS - ${SODIUM_ROOT_DIR}/lib -) - -if (SODIUM_LIBRARY) - set(SODIUM_LIBRARIES - ${SODIUM_LIBRARIES} - ${SODIUM_LIBRARY} - ) -endif (SODIUM_LIBRARY) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(SODIUM DEFAULT_MSG SODIUM_LIBRARIES SODIUM_INCLUDE_DIR) - -# show the SODIUM_INCLUDE_DIR and SODIUM_LIBRARIES variables only in the advanced view -mark_as_advanced(SODIUM_INCLUDE_DIR SODIUM_LIBRARIES) - diff --git a/cmake/FindSphinx.cmake b/cmake/FindSphinx.cmake deleted file mode 100644 index 833bfd4d..00000000 --- a/cmake/FindSphinx.cmake +++ /dev/null @@ -1,16 +0,0 @@ -find_program(SPHINX_EXECUTABLE NAMES sphinx-build - HINTS - $ENV{SPHINX_DIR} - PATH_SUFFIXES bin - DOC "Sphinx documentation generator" -) - -include(FindPackageHandleStandardArgs) - -find_package_handle_standard_args(Sphinx DEFAULT_MSG - SPHINX_EXECUTABLE -) - -mark_as_advanced( - SPHINX_EXECUTABLE -) diff --git a/cmake/InstallPkgConfigFile.cmake b/cmake/InstallPkgConfigFile.cmake deleted file mode 100644 index 7c4e5859..00000000 --- a/cmake/InstallPkgConfigFile.cmake +++ /dev/null @@ -1,78 +0,0 @@ -# A Macro to simplify creating a pkg-config file - -# install_pkg_config_file( -# [VERSION ] -# [DESCRIPTION ] -# [CFLAGS ...] -# [LIBS ...] -# [REQUIRES ...]) -# -# Create and install a pkg-config .pc file to CMAKE_INSTALL_PREFIX/lib/pkgconfig -# assuming the following install layout: -# libraries: CMAKE_INSTALL_PREFIX/lib -# headers : CMAKE_INSTALL_PREFIX/include -# -# example: -# add_library(mylib mylib.c) -# install_pkg_config_file(mylib -# DESCRIPTION My Library -# CFLAGS -# LIBS -lmylib -# REQUIRES glib-2.0 lcm -# VERSION 0.0.1) -# -# -function(install_pkg_config_file) - list(GET ARGV 0 pc_name) - # TODO error check - - set(pc_version 0.0.1) - set(pc_description ${pc_name}) - set(pc_requires "") - set(pc_libs "") - set(pc_cflags "") - set(pc_fname "${CMAKE_BINARY_DIR}/lib/pkgconfig/${pc_name}.pc") - - set(modewords LIBS CFLAGS REQUIRES VERSION DESCRIPTION) - set(curmode "") - - # parse function arguments and populate pkg-config parameters - list(REMOVE_AT ARGV 0) - foreach(word ${ARGV}) - list(FIND modewords ${word} mode_index) - if(${mode_index} GREATER -1) - set(curmode ${word}) - elseif(curmode STREQUAL LIBS) - set(pc_libs "${pc_libs} ${word}") - elseif(curmode STREQUAL CFLAGS) - set(pc_cflags "${pc_cflags} ${word}") - elseif(curmode STREQUAL REQUIRES) - set(pc_requires "${pc_requires} ${word}") - elseif(curmode STREQUAL VERSION) - set(pc_version ${word}) - set(curmode "") - elseif(curmode STREQUAL DESCRIPTION) - set(pc_description "${word}") - set(curmode "") - else(${mode_index} GREATER -1) - message("WARNING incorrect use of install_pkg_config_file (${word})") - break() - endif(${mode_index} GREATER -1) - endforeach(word) - - # write the .pc file out - file(WRITE ${pc_fname} - "prefix=${CMAKE_INSTALL_PREFIX}\n" - "libdir=\${prefix}/lib\n" - "includedir=\${prefix}/include\n" - "\n" - "Name: ${pc_name}\n" - "Description: ${pc_description}\n" - "Requires: ${pc_requires}\n" - "Version: ${pc_version}\n" - "Libs: -L\${libdir} ${pc_libs}\n" - "Cflags: -I\${includedir} ${pc_cflags}\n") - - # mark the .pc file for installation to the lib/pkgconfig directory - install(FILES ${pc_fname} DESTINATION lib/pkgconfig) -endfunction(install_pkg_config_file) diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt deleted file mode 100644 index 4b281eb4..00000000 --- a/docs/CMakeLists.txt +++ /dev/null @@ -1,38 +0,0 @@ -find_package(Sphinx QUIET) - -if(NOT DEFINED SPHINX_THEME) - set(SPHINX_THEME default) -endif() - -if(NOT DEFINED SPHINX_THEME_DIR) - set(SPHINX_THEME_DIR) -endif() - -# configured documentation tools and intermediate build results -set(BINARY_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/_build") - -# Sphinx cache with pickled ReST documents -set(SPHINX_CACHE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_doctrees") - -# HTML output directory -set(SPHINX_HTML_DIR "${CMAKE_CURRENT_BINARY_DIR}/html") - -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/conf.py.in" - "${BINARY_BUILD_DIR}/conf.py" - @ONLY) - -if(SPHINX_FOUND) - add_custom_target(docs - ${SPHINX_EXECUTABLE} - -b html - -c "${BINARY_BUILD_DIR}" - -d "${SPHINX_CACHE_DIR}" - "${CMAKE_CURRENT_SOURCE_DIR}" - "${SPHINX_HTML_DIR}" - COMMENT "Building HTML documentation with Sphinx") -else() - add_custom_target(docs - echo "Please install python-sphinx to build the docs or read the docs online: https://projecttox.readthedocs.org/en/latest" -- COMMENT "No sphinx executable found") -endif() diff --git a/other/CMakeLists.txt b/other/CMakeLists.txt deleted file mode 100644 index 7e6c9eb9..00000000 --- a/other/CMakeLists.txt +++ /dev/null @@ -1,23 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) - -cmake_policy(SET CMP0011 NEW) - -if(WIN32) - file(MAKE_DIRECTORY "$ENV{APPDATA}/.config/tox") - file(INSTALL DHTservers DESTINATION "$ENV{APPDATA}/.config/tox") -else() - set(HOME "$ENV{HOME}") - if(APPLE) - file(MAKE_DIRECTORY ${HOME}/Library/Application\ Support/.config/tox) - file(INSTALL DHTservers DESTINATION ${HOME}/Library/Application\ Support/.config/tox) - else() - file(MAKE_DIRECTORY ${HOME}/.config/tox) - file(INSTALL DHTservers DESTINATION ${HOME}/.config/tox) - endif() -endif() - -include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/DHT_bootstrap.cmake) - -if(LINUX) - add_subdirectory(bootstrap_serverdaemon) -endif() diff --git a/other/Makefile.inc b/other/Makefile.inc index 4f195e63..10ef55a3 100644 --- a/other/Makefile.inc +++ b/other/Makefile.inc @@ -14,7 +14,5 @@ DHT_bootstrap_LDADD = $(LIBSODIUM_LDFLAGS) \ $(LIBSODIUM_LIBS) \ $(WINSOCK2_LIBS) -EXTRA_DIST += $(top_srcdir)/other/cmake/DHT_bootstrap.cmake \ - $(top_srcdir)/other/CMakeLists.txt \ - $(top_srcdir)/other/DHTservers \ +EXTRA_DIST += $(top_srcdir)/other/DHTservers \ $(top_srcdir)/other/tox.png diff --git a/other/bootstrap_serverdaemon/CMakeLists.txt b/other/bootstrap_serverdaemon/CMakeLists.txt deleted file mode 100644 index 512179f3..00000000 --- a/other/bootstrap_serverdaemon/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) -project(DHT_bootstrap_daemon C) - -set(exe_name DHT_bootstrap_daemon) - -find_package(LIBCONFIG REQUIRED) - -include_directories(${LIBCONFIG_INCLUDE_DIR}) - -add_executable(${exe_name} - DHT_bootstrap_daemon.c) - -target_link_libraries(${exe_name} - ${LIBCONFIG_LIBRARY}) - -linkCoreLibraries(${exe_name}) - -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules") -find_package(LibConfig REQUIRED) diff --git a/other/bootstrap_serverdaemon/Makefile.inc b/other/bootstrap_serverdaemon/Makefile.inc index a04475c5..1320b761 100644 --- a/other/bootstrap_serverdaemon/Makefile.inc +++ b/other/bootstrap_serverdaemon/Makefile.inc @@ -20,8 +20,4 @@ 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 + $(top_srcdir)/other/bootstrap_serverdaemon/DHT_bootstrap_daemon.sh diff --git a/other/bootstrap_serverdaemon/cmake/Modules/FindLibConfig.cmake b/other/bootstrap_serverdaemon/cmake/Modules/FindLibConfig.cmake deleted file mode 100644 index 7d6270e6..00000000 --- a/other/bootstrap_serverdaemon/cmake/Modules/FindLibConfig.cmake +++ /dev/null @@ -1,73 +0,0 @@ -#Ref: https://github.com/schnorr/pajeng/blob/master/cmake/FindLibConfig.cmake -# -# This module defines -# LIBCONFIG_INCLUDE_DIR, where to find cppunit include files, etc. -# LIBCONFIG_LIBRARIES, the libraries to link against to use CppUnit. -# LIBCONFIG_STATIC_LIBRARIY_PATH -# LIBCONFIG_FOUND, If false, do not try to use CppUnit. - -# also defined, but not for general use are -# LIBCONFIG_LIBRARY, where to find the CUnit library. - -#MESSAGE("Searching for libconfig library") - -FIND_PATH(LIBCONFIG_INCLUDE_DIR libconfig.h - /usr/local/include - /usr/include -) - -FIND_PATH(LIBCONFIGPP_INCLUDE_DIR libconfig.h++ - /usr/local/include - /usr/include -) - -FIND_LIBRARY(LIBCONFIG_LIBRARY config - /usr/local/lib - /usr/lib -) - -FIND_LIBRARY(LIBCONFIGPP_LIBRARY config++ - /usr/local/lib - /usr/lib -) - -FIND_LIBRARY(LIBCONFIG_STATIC_LIBRARY "libconfig${CMAKE_STATIC_LIBRARY_SUFFIX}" - /usr/local/lib - /usr/lib -) - -FIND_LIBRARY(LIBCONFIGPP_STATIC_LIBRARY "libconfig++${CMAKE_STATIC_LIBRARY_SUFFIX}" - /usr/local/lib - /usr/lib -) - - -IF(LIBCONFIG_INCLUDE_DIR) - IF(LIBCONFIG_LIBRARY) - SET(LIBCONFIG_FOUND TRUE) - SET(LIBCONFIG_LIBRARIES ${LIBCONFIG_LIBRARY}) - SET(LIBCONFIG_STATIC_LIBRARY_PATH ${LIBCONFIG_STATIC_LIBRARY}) - ENDIF(LIBCONFIG_LIBRARY) -ENDIF(LIBCONFIG_INCLUDE_DIR) - -IF(LIBCONFIGPP_INCLUDE_DIR) - IF(LIBCONFIGPP_LIBRARY) - SET(LIBCONFIGPP_FOUND TRUE) - SET(LIBCONFIGPP_LIBRARIES ${LIBCONFIGPP_LIBRARY}) - SET(LIBCONFIGPP_STATIC_LIBRARY_PATH ${LIBCONFIGPP_STATIC_LIBRARY}) - ENDIF(LIBCONFIGPP_LIBRARY) -ENDIF(LIBCONFIGPP_INCLUDE_DIR) - -IF (LIBCONFIG_FOUND) - IF (NOT LibConfig_FIND_QUIETLY) - MESSAGE(STATUS "Found LibConfig++: ${LIBCONFIGPP_LIBRARIES}" ) - MESSAGE(STATUS "Found LibConfig: ${LIBCONFIG_LIBRARIES}") - MESSAGE(STATUS "static LibConfig path: ${LIBCONFIG_STATIC_LIBRARY_PATH}") - ENDIF (NOT LibConfig_FIND_QUIETLY) -ELSE (LIBCONFIG_FOUND) - IF (LibConfig_FIND_REQUIRED) - MESSAGE(SEND_ERROR "Could NOT find LibConfig") - ENDIF (LibConfig_FIND_REQUIRED) -ENDIF (LIBCONFIG_FOUND) - -MARK_AS_ADVANCED(LIBCONFIG_INCLUDE_DIR LIBCONFIG_LIBRARIES) diff --git a/other/cmake/DHT_bootstrap.cmake b/other/cmake/DHT_bootstrap.cmake deleted file mode 100644 index 403522ab..00000000 --- a/other/cmake/DHT_bootstrap.cmake +++ /dev/null @@ -1,10 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) -project(DHT_bootstrap C) - -set(exe_name DHT_bootstrap) - -add_executable(${exe_name} - DHT_bootstrap.c - ../testing/misc_tools.c) - -linkCoreLibraries(${exe_name}) diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt deleted file mode 100644 index 9bab6efb..00000000 --- a/testing/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) - -cmake_policy(SET CMP0011 NEW) - -include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/DHT_test.cmake) -include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Lossless_UDP_testclient.cmake) -include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Lossless_UDP_testserver.cmake) -include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Messenger_test.cmake) -include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/crypto_speed_test.cmake) - -if(WIN32) - #Do nothing -else() - include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/nTox.cmake) -endif() diff --git a/testing/Makefile.inc b/testing/Makefile.inc index 28604958..067b6ead 100644 --- a/testing/Makefile.inc +++ b/testing/Makefile.inc @@ -87,11 +87,3 @@ crypto_speed_test_LDADD = \ $(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/testing/cmake/DHT_test.cmake b/testing/cmake/DHT_test.cmake deleted file mode 100644 index bb5bf05f..00000000 --- a/testing/cmake/DHT_test.cmake +++ /dev/null @@ -1,10 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) -project(DHT_test C) - -set(exe_name DHT_test) - -add_executable(${exe_name} - DHT_test.c - misc_tools.c) - -linkCoreLibraries(${exe_name}) diff --git a/testing/cmake/Lossless_UDP_testclient.cmake b/testing/cmake/Lossless_UDP_testclient.cmake deleted file mode 100644 index 5f651807..00000000 --- a/testing/cmake/Lossless_UDP_testclient.cmake +++ /dev/null @@ -1,9 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) -project(Lossless_UDP_testclient C) - -set(exe_name Lossless_UDP_testclient) - -add_executable(${exe_name} - Lossless_UDP_testclient.c) - -linkCoreLibraries(${exe_name}) diff --git a/testing/cmake/Lossless_UDP_testserver.cmake b/testing/cmake/Lossless_UDP_testserver.cmake deleted file mode 100644 index 26f9302e..00000000 --- a/testing/cmake/Lossless_UDP_testserver.cmake +++ /dev/null @@ -1,9 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) -project(Lossless_UDP_testserver C) - -set(exe_name Lossless_UDP_testserver) - -add_executable(${exe_name} - Lossless_UDP_testserver.c) - -linkCoreLibraries(${exe_name}) diff --git a/testing/cmake/Messenger_test.cmake b/testing/cmake/Messenger_test.cmake deleted file mode 100644 index 15fcd77b..00000000 --- a/testing/cmake/Messenger_test.cmake +++ /dev/null @@ -1,9 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) -project(Messenger_test C) - -set(exe_name Messenger_test) - -add_executable(${exe_name} - Messenger_test.c misc_tools.c) - -linkCoreLibraries(${exe_name}) diff --git a/testing/cmake/crypto_speed_test.cmake b/testing/cmake/crypto_speed_test.cmake deleted file mode 100644 index c269af5b..00000000 --- a/testing/cmake/crypto_speed_test.cmake +++ /dev/null @@ -1,9 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) -project(crypto_speed_test C) - -set(exe_name crypto_speed_test) - -add_executable(${exe_name} - crypto_speed_test.c) - -linkCoreLibraries(${exe_name}) diff --git a/testing/cmake/nTox.cmake b/testing/cmake/nTox.cmake deleted file mode 100644 index 44476b8f..00000000 --- a/testing/cmake/nTox.cmake +++ /dev/null @@ -1,12 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) -project(nTox C) - -set(exe_name nTox) - -add_executable(${exe_name} - nTox.c misc_tools.c) - -target_link_libraries(${exe_name} - ncurses) - -linkCoreLibraries(${exe_name}) diff --git a/toxcore/CMakeLists.txt b/toxcore/CMakeLists.txt deleted file mode 100644 index ecbb65c2..00000000 --- a/toxcore/CMakeLists.txt +++ /dev/null @@ -1,45 +0,0 @@ -cmake_minimum_required(VERSION 2.6.0) -project(toxcore C) - -set(core_sources - DHT.c - network.c - Lossless_UDP.c - net_crypto.c - friend_requests.c - LAN_discovery.c - Messenger.c - util.c - ping.c - tox.c) - -set(core_headers - DHT.h - network.h - Lossless_UDP.h - net_crypto.h - friend_requests.h - LAN_discovery.h - Messenger.h - util.h - ping.h) - -add_library(toxcore SHARED ${core_sources}) -add_library(toxcore_static ${core_sources}) -set_target_properties(toxcore_static PROPERTIES OUTPUT_NAME toxcore) - -target_link_libraries(toxcore ${LINK_CRYPTO_LIBRARY}) - -install(TARGETS toxcore toxcore_static DESTINATION lib) -install(FILES ${core_headers} DESTINATION include) - -if(WIN32) - target_link_libraries(toxcore ws2_32) -endif() - -execute_process(COMMAND git rev-list HEAD --count OUTPUT_VARIABLE COMMIT) - -# Write pkgconfig-file: -include(InstallPkgConfigFile) -install_pkg_config_file(toxcore CFLAGS LIBS -ltoxcore REQUIRES VERSION 0.1.1_r${COMMIT}) - diff --git a/toxcore/Makefile.inc b/toxcore/Makefile.inc index a5b245f5..2fd93a22 100644 --- a/toxcore/Makefile.inc +++ b/toxcore/Makefile.inc @@ -38,5 +38,3 @@ libtoxcore_la_LDFLAGS = -version-info $(LIBTOXCORE_VERSION) \ libtoxcore_la_LIBS = $(LIBSODIUM_LIBS) \ $(WINSOCK2_LIBS) - -EXTRA_DIST += $(top_srcdir)/toxcore/CMakeLists.txt