Commit a377c493 authored by apaar's avatar apaar

final

parents
# Default ignored files
/workspace.xml
\ No newline at end of file
KVServer
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module classpath="CMake" type="CPP_MODULE" version="4" />
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" />
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Chord-DHT.iml" filepath="$PROJECT_DIR$/.idea/Chord-DHT.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
cmake_minimum_required(VERSION 3.15)
SET(CMAKE_CXX_FLAGS "-lcrypto -pthread")
link_libraries(crypto)
project(KVServer)
add_executable(KVServer KVServer.cpp)
add_executable(KVClient KVClient.cpp)
\ No newline at end of file
#include "header.hpp"
//TODO: use hashes instead of filenumber
class KVCache {
std::pair<std::string, std::string> cacheMatrix[numSetsInCache][sizeOfSet];
bool cacheReferenceMatrix[numSetsInCache][sizeOfSet]{};
bool entryEmpty[numSetsInCache][sizeOfSet]{true};
int lastReplacedEntry[numSetsInCache]{-1};
public:
KVCache() {
for (int i = 0; i < numSetsInCache; i++) {
lastReplacedEntry[i] = -1;
for (int j = 0; j < sizeOfSet; j++) {
cacheReferenceMatrix[i][j] = false;
entryEmpty[i][j] = true;
}
}
}
std::string put(const std::string &, const std::string &);
std::string get(const std::string &);
std::string del(const std::string &);
int entry_to_replace(int id);
void viewset(int);
void cacheToXML(const std::string &filename);
};
std::string KVCache::get(const std::string &key) {
int setID = getSetId(key);
int not_found = 1;
for (int i = 0; i < sizeOfSet; i++) {
if (key == cacheMatrix[setID][i].first && !entryEmpty[setID][i]) {
cacheReferenceMatrix[setID][i] = true;
not_found = 0;
return cacheMatrix[setID][i].second;
}
}
if (not_found) {
return "Does not exist";
}
}
std::string KVCache::put(const std::string &key, const std::string &value) {
int setID = getSetId(key);
for (int i = 0; i < sizeOfSet; i++) {
if (entryEmpty[setID][i]) {
cacheMatrix[setID][i] = std::make_pair(key, value);
entryEmpty[setID][i] = false;
cacheReferenceMatrix[setID][i] = false;
return "Success";
}
}
int entryToReplace = entry_to_replace(setID);
cacheMatrix[setID][entryToReplace] = std::make_pair(key, value);
entryEmpty[setID][entryToReplace] = false;
cacheReferenceMatrix[setID][entryToReplace] = false;
return "Success";
}
std::string KVCache::del(const std::string &key) {
int setID = getSetId(key);
for (int i = 0; i < sizeOfSet; i++) {
if (key == cacheMatrix[setID][i].first) {
entryEmpty[setID][i] = true;
return "Success";
}
}
return "Does not exist";
}
int KVCache::entry_to_replace(int setID) {
int i = (lastReplacedEntry[setID] + 1) % sizeOfSet;
if (i == 0) {
for (int j = 0; j < sizeOfSet; j++) {
cacheReferenceMatrix[setID][j] = false;
}
}
while (cacheReferenceMatrix[setID][i]) {
i = (i + 1) % sizeOfSet;
if (i == 0) {
for (int j = 0; j < sizeOfSet; j++) {
cacheReferenceMatrix[setID][j] = false;
}
}
}
lastReplacedEntry[setID] = i;
return i;
}
void KVCache::viewset(int setID) {
cout << "\n";
for (int i = 0; i < sizeOfSet; i++) {
cout << cacheMatrix[setID][i].first << cacheMatrix[setID][i].second << std::endl;
}
}
void KVCache::cacheToXML(const std::string &filename) {
std::string cacheXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
cacheXML += "<KVCache>\n";
for (int i = 0; i < numSetsInCache; i++) {
cacheXML += " <Set Id=\"" + std::to_string(i) + "\">\n";
for (int j = 0; j < sizeOfSet; j++) {
std::string isReferenced;
std::string isValid;
if (cacheReferenceMatrix[i][j]) {
isReferenced = "true";
} else
isReferenced = "false";
if (entryEmpty[i][j]) {
isValid = "false";
} else
isValid = "true";
cacheXML += " <CacheEntry isReferenced=\"" + isReferenced + "\"";
cacheXML += " isValid=\"" + isValid + "\">\n";
std::string key = cacheMatrix[i][j].first;
std::string value = cacheMatrix[i][j].second;
cacheXML += " <Key>" + key + "</Key>\n";
cacheXML += " <Value>" + key + "</Value>\n";
cacheXML += " </CacheEntry>\n";
}
cacheXML += " </Set>\n";
}
cacheXML += "</KVCache>\n";
char chararr_of_XML[cacheXML.length() + 1];
strcpy(chararr_of_XML, cacheXML.c_str());
FILE *fp = fopen(filename.c_str(), "w");
fprintf(fp, "%s", chararr_of_XML);
fprintf(fp, "\n");
fclose(fp);
}
#include "header.hpp"
int PORT;
// to convert the plain text to xml format
std::string toxml(std::string msg_type, std::string key, std::string value = "") {
std::string request = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
if (msg_type == "GET") {
msg_type = "<KVMessage type=\"getreq\">\n";
key = "<Key>" + key + "</Key>\n";
}
if (msg_type == "PUT") {
msg_type = "<KVMessage type=\"putreq\">\n";
key = "<key>" + key + "</Key>\n";
value = "<Value>" + value + "</Value>\n";
key = key + value;
}
if (msg_type == "DEL") {
msg_type = "<KVMessage type=\"delreq\">\n";
key = "<Key>" + key + "</Key>\n";
}
request = request + msg_type + key + "</KVMessage>\n";
return request;
}
//to get back xml format to plain text
std::string xmltoplain(std::string str) {
int i = 0;
std::string plain_text;
if (str[64] == 'M') {
for (i = 72; str[i] != '<'; i++)
plain_text += str[i];
} else {
for (i = 68; str[i] != '<'; i++)
plain_text += str[i];
plain_text += " ";
int j = i + 14;
for (; str[j] != '<'; j++)
plain_text += str[j];
}
return plain_text;
}
int checkLenght(const std::string &key, const std::string &value = " ") {
if (key.size() > max_key_lenght) {
cout << "Oversized key";
exit(-1);
}
if (value.size() > max_value_lenght) {
cout << "Oversized value";
exit(-1);
}
}
//TODO: Increase capacity of request string to store 256KB
int main(int argc, char **argv) {
int interactiveMode = 1;
// cout<<argv[1];
if (strcmp(argv[1], "port") == 0) {
std::istringstream iss(argv[2]);
int val;
if (iss >> val) {
// Conversion successful
}
PORT = val;
cout << "Will run on port " << argv[2] << "." << std::endl;
}
if (argc == 5) {
interactiveMode = 0;
}
std::ifstream infile(argv[3]);
if (interactiveMode) {
cout << "Enter request in the format\n"
"GET,<key>\n"
"PUT,<key>,<value>\n"
"DEL,<key>\n"
"=============================================OR=============================================\n"
"Exit the interactive mode and provide two filenames in the commandline in the format\n"
"./KVClient [inputfile] [outputfile]\n";
}
std::string request_type;
std::string key;
std::string value;
char buffer1[max_buffer_size] = {0};
int valread;
std::string finalRequest;
for (std::string line; interactiveMode || getline(infile, line);) {
if (interactiveMode) {
while (line.empty())
getline(cin, line);
}
finalRequest = "";
std::vector<std::string> request = split(line.c_str(), ',');
if (debugger_mode) {
cout << request[0] << "\t" << request[1] << "\t";
}
if (request.size() < 2 || request[0].empty() || request[1].empty()) {
perror("XML Error: Received unparseable message");
line.erase();
continue;
}
request_type = request[0];
key = request[1];
// finalRequest.append(request[0]).append(delimiter).append(request[1]);
if (request[0] == "PUT") {
if (request.size() != 3 || request[2].empty()) {
perror("XML Error: Received unparseable message");
line.erase();
continue;
}
if (debugger_mode) {
cout << request[2];
}
checkLenght(request[1], request[2]);
value = request[2];
// finalRequest.append(delimiter).append(request[2]);
} else if ((request[0] != "GET" && request[0] != "DEL") || request.size() != 2) {
perror("XML Error: Received unparseable message");
line.erase();
// return errno;
// exit(-1);
continue;
}
if (debugger_mode) {
cout << "\n";
}
finalRequest = toxml(request_type, key, value);
if (debugger_mode) {
cout << finalRequest << "\n";
cout << "###################################### "
"SENDING DATA "
"######################################\n";
}
struct sockaddr_in serv_addr = {AF_INET, htons(PORT)};
memset(&serv_addr, 0, sizeof(struct sockaddr_in));
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(PORT);
//creating a socket
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (debugger_mode) {
cout << sockfd << "\n";
}
if (sockfd < 0) {
perror("Network Error: Could not create socket");
exit(-1);
}
int rc = connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
if (rc < 0) {
perror("Network Error: Could not create socket");
exit(-1);
// return errno;
}
send(sockfd, finalRequest.c_str(), finalRequest.size(), 0);
valread = read(sockfd, buffer1, max_buffer_size);
close(sockfd);
buffer1[valread] = '\0';
std::string buffer;
for (int i = 0; i < valread; i++) {
buffer += (buffer1[i]);
}
std::string buffer2 = xmltoplain(buffer);
char chararr_of_buffer[buffer2.length() + 1];
strcpy(chararr_of_buffer, buffer2.c_str());
if (debugger_mode) {
cout << chararr_of_buffer << "\n";
}
if (!interactiveMode) {
FILE *fp = fopen(argv[4], "a");
if (!fp) {
// return -errno;
perror("File open error");
exit(-1);
}
fprintf(fp, "%s", chararr_of_buffer);
fprintf(fp, "\n");
fclose(fp);
} else {
cout << chararr_of_buffer << std::endl;
}
line.erase();
}
}
\ No newline at end of file
File added
#include "header.hpp"
#include "KVCache.cpp"
#include "KVStore.cpp"
#include "ThreadPool.h"
#include <vector>
#include <map>
#include <iostream>
#include <openssl/sha.h>
#include <netinet/in.h>
typedef long long int lli;
using namespace std;
class PORTClass {
private:
int portNoServer;
int sock;
struct sockaddr_in current;
public:
void setPortServer();
string getIpAddress();
int getPortNumber();
int getSocketFd();
};
class ServerClass {
public:
PORTClass sp{};
ServerClass();
pair<pair<string, int>, lli> findSuccessor(lli nodeId);
pair<pair<string, int>, lli> closestPrecedingNode(lli nodeId);
void fixFingers();
void stabilize();
void notify(pair<pair<string, int>, lli> node);
void updateSuccessorList();
void setSuccessor(string ip, int port, lli hash);
void setSuccessorList(string ip, int port, lli hash);
void setFingerTable(string ip, int port, lli hash);
bool isInRing;
pair<pair<string, int>, lli> predecessor;
lli id{};
vector<pair<pair<string, int>, lli> > fingerTable;
pair<pair<string, int>, lli> successor;
vector<pair<pair<string, int>, lli> > successorList;
};
class HelperFunctions {
public:
string combineIpAndPort(string ip, string port);
vector<pair<string, int> > seperateSuccessorList(string succList);
string splitSuccessorList(vector<pair<pair<string, int>, lli> > list);
lli getHash(string key);
pair<string, int> getIpAndPort(string key);
bool isNodeAlive(string ip, int port);
void setServerDetails(struct sockaddr_in &server, string ip, int port);
void setTimer(struct timeval &timer);
pair<pair<string, int>, lli>
getPredecessorNode(string ip, int port, string ipClient, int ipPort, bool forStabilize);
lli getSuccessorId(string ip, int port);
void sendPredecessor(ServerClass nodeInfo, int newSock, struct sockaddr_in client);
void sendSuccessor(ServerClass nodeInfo, string nodeIdString, int newSock, struct sockaddr_in client);
void sendSuccessorId(ServerClass nodeInfo, int newSock, struct sockaddr_in client);
void sendAcknowledgement(int newSock, struct sockaddr_in client);
vector<pair<string, int> > getSuccessorListFromNode(string ip, int port);
void sendSuccessorList(ServerClass &nodeInfo, int sock, struct sockaddr_in client);
};
/* generate a port number to run on */
void PORTClass::setPortServer() {
/* generating a port number between 1024 and 65535 */
srand(time(nullptr));
portNoServer = rand() % 65536;
if (portNoServer < 1024)
portNoServer += 1024;
socklen_t len = sizeof(current);
sock = socket(AF_INET, SOCK_DGRAM, 0);
current.sin_family = AF_INET;
current.sin_port = htons(portNoServer);
current.sin_addr.s_addr = inet_addr("127.0.0.1");
if (bind(sock, (struct sockaddr *) &current, len) < 0) {
perror("error");
exit(-1);
}
}
/* get IP Address */
string PORTClass::getIpAddress() {
string ip = inet_ntoa(current.sin_addr);
return ip;
}
/* get port number on which it is listening */
int PORTClass::getPortNumber() {
return portNoServer;
}
/* */
int PORTClass::getSocketFd() {
return sock;
}
ServerClass::ServerClass() {
fingerTable = vector<pair<pair<string, int>, lli> >(M + 1);
successorList = vector<pair<pair<string, int>, lli> >(R + 1);
isInRing = false;
}
void ServerClass::setSuccessor(string ip, int port, lli hash) {
successor.first.first = ip;
successor.first.second = port;
successor.second = hash;
}
void ServerClass::setSuccessorList(string ip, int port, lli hash) {
for (int i = 1; i <= R; i++) {
successorList[i] = make_pair(make_pair(ip, port), hash);
}
}
void ServerClass::setFingerTable(string ip, int port, lli hash) {
for (int i = 1; i <= M; i++) {
fingerTable[i] = make_pair(make_pair(ip, port), hash);
}
}
void ServerClass::updateSuccessorList() {
HelperFunctions help;
vector<pair<string, int> > list = help.getSuccessorListFromNode(successor.first.first, successor.first.second);
if (list.size() != R)
return;
successorList[1] = successor;
for (int i = 2; i <= R; i++) {
successorList[i].first.first = list[i - 2].first;
successorList[i].first.second = list[i - 2].second;
successorList[i].second = help.getHash(list[i - 2].first + ":" + to_string(list[i - 2].second));
}
}
pair<pair<string, int>, lli> ServerClass::findSuccessor(lli nodeId) {
pair<pair<string, int>, lli> self;
self.first.first = sp.getIpAddress();
self.first.second = sp.getPortNumber();
self.second = id;
if (nodeId > id && nodeId <= successor.second) {
return successor;
}
/* */
else if (id == successor.second || nodeId == id) {
return self;
} else if (successor.second == predecessor.second) {
if (successor.second >= id) {
if (nodeId > successor.second || nodeId < id)
return self;
} else {
if ((nodeId > id && nodeId > successor.second) || (nodeId < id && nodeId < successor.second))
return successor;
else
return self;
}
} else {
pair<pair<string, int>, lli> node = closestPrecedingNode(nodeId);
if (node.second == id) {
return successor;
} else {
/* connect to node which will now find the successor */
struct sockaddr_in serverToConnectTo;
socklen_t len = sizeof(serverToConnectTo);
string ip;
int port;
/* if this node couldn't find closest preciding node for given node id then now ask it's successor to do so */
if (node.second == -1) {
node = successor;
}
HelperFunctions help;
help.setServerDetails(serverToConnectTo, node.first.first, node.first.second);
/* set timer on this socket */
struct timeval timer;
help.setTimer(timer);
int sockT = socket(AF_INET, SOCK_DGRAM, 0);
setsockopt(sockT, SOL_SOCKET, SO_RCVTIMEO, (char *) &timer, sizeof(struct timeval));
if (sockT < 0) {
perror("error");
exit(-1);
}
/* send the node's id to the other node */
char nodeIdChar[40];
strcpy(nodeIdChar, to_string(nodeId).c_str());
sendto(sockT, nodeIdChar, strlen(nodeIdChar), 0, (struct sockaddr *) &serverToConnectTo, len);
/* receive ip and port of node's successor as ip:port*/
char ipAndPort[40];
int l = recvfrom(sockT, ipAndPort, 1024, 0, (struct sockaddr *) &serverToConnectTo, &len);
close(sockT);
if (l < 0) {
pair<pair<string, int>, lli> node;
node.first.first = "";
node.second = -1;
node.first.second = -1;
return node;
}
ipAndPort[l] = '\0';
/* set ip,port and hash for this node and return it */
string key = ipAndPort;
lli hash = help.getHash(ipAndPort);
pair<string, int> ipAndPortPair = help.getIpAndPort(key);
node.first.first = ipAndPortPair.first;
node.first.second = ipAndPortPair.second;
node.second = hash;
return node;
}
}
}
pair<pair<string, int>, lli> ServerClass::closestPrecedingNode(lli nodeId) {
HelperFunctions help;
for (int i = M; i >= 1; i--) {
if (fingerTable[i].first.first == "" || fingerTable[i].first.second == -1 || fingerTable[i].second == -1) {
continue;
}
if (fingerTable[i].second > id && fingerTable[i].second < nodeId) {
return fingerTable[i];
} else {
lli successorId = help.getSuccessorId(fingerTable[i].first.first, fingerTable[i].first.second);
if (successorId == -1)
continue;
if (fingerTable[i].second > successorId) {
if ((nodeId <= fingerTable[i].second && nodeId <= successorId) ||
(nodeId >= fingerTable[i].second && nodeId >= successorId)) {
return fingerTable[i];
}
} else if (fingerTable[i].second < successorId && nodeId > fingerTable[i].second && nodeId < successorId) {
return fingerTable[i];
}
pair<pair<string, int>, lli> predNode = help.getPredecessorNode(fingerTable[i].first.first,
fingerTable[i].first.second, "", -1, false);
lli predecessorId = predNode.second;
if (predecessorId != -1 && fingerTable[i].second < predecessorId) {
if ((nodeId <= fingerTable[i].second && nodeId <= predecessorId) ||
(nodeId >= fingerTable[i].second && nodeId >= predecessorId)) {
return predNode;
}
}
if (predecessorId != -1 && fingerTable[i].second > predecessorId && nodeId >= predecessorId &&
nodeId <= fingerTable[i].second) {
return predNode;
}
}
}
/* */
pair<pair<string, int>, lli> node;
node.first.first = "";
node.first.second = -1;
node.second = -1;
return node;
}
void ServerClass::stabilize() {
/* get predecessor of successor */
HelperFunctions help;
string ownIp = sp.getIpAddress();
int ownPort = sp.getPortNumber();
if (help.isNodeAlive(successor.first.first, successor.first.second) == false)
return;
/* get predecessor of successor */
pair<pair<string, int>, lli> predNode = help.getPredecessorNode(successor.first.first, successor.first.second,
ownIp, ownPort, true);
lli predecessorHash = predNode.second;
if (predecessorHash == -1 || predecessor.second == -1)
return;
if (predecessorHash > id || (predecessorHash > id && predecessorHash < successor.second) ||
(predecessorHash < id && predecessorHash < successor.second)) {
successor = predNode;
}
}
void ServerClass::notify(pair<pair<string, int>, lli> node) {
predecessor = node;
/* if node's successor is node itself then set it's successor to this node */
if (successor.second == id) {
successor = node;
}
}
void ServerClass::fixFingers() {
HelperFunctions help;
int next = 1;
lli mod = pow(2, M);
while (next <= M) {
if (!help.isNodeAlive(successor.first.first, successor.first.second))
return;
lli newId = id + pow(2, next - 1);
newId = newId % mod;
pair<pair<string, int>, lli> node = findSuccessor(newId);
if (node.first.first == "" || node.second == -1 || node.first.second == -1)
break;
fingerTable[next] = node;
next++;
}
}
/* get SHA1 hash for a given key */
lli HelperFunctions::getHash(string key) {
unsigned char obuf[41];
char finalHash[41];
string keyHash = "";
int i;
lli mod = pow(2, M);
/* convert string to an unsigned char array because SHA1 takes unsigned char array as parameter */
unsigned char unsigned_key[key.length() + 1];
for (i = 0; i < key.length(); i++) {
unsigned_key[i] = key[i];
}
unsigned_key[i] = '\0';
SHA1(unsigned_key, sizeof(unsigned_key), obuf);
for (i = 0; i < M / 8; i++) {
sprintf(finalHash, "%d", obuf[i]);
keyHash += finalHash;
}
lli hash = stoll(keyHash) % mod;
return hash;
}
/* key will be in form of ip:port , will seperate ip and port and return it */
pair<string, int> HelperFunctions::getIpAndPort(string key) {
int pos = key.find(':');
string ip = key.substr(0, pos);
string port = key.substr(pos + 1);
pair<string, int> ipAndPortPair;
ipAndPortPair.first = ip;
ipAndPortPair.second = atoi(port.c_str());
return ipAndPortPair;
}
/* set details of server to which you want to connect to */
void HelperFunctions::setServerDetails(struct sockaddr_in &server, string ip, int port) {
server.sin_family = AF_INET;
server.sin_addr.s_addr = inet_addr(ip.c_str());
server.sin_port = htons(port);
}
/* string is in form of ip:port;ip:port;... will seperate all these ip's and ports */
vector<pair<string, int> > HelperFunctions::seperateSuccessorList(string succList) {
int size = succList.size();
int i = 0;
vector<pair<string, int> > res;
while (i < size) {
string ip = "";
while (i < size && succList[i] != ':') {
ip += succList[i];
i++;
}
i++;
string port = "";
while (i < size && succList[i] != ';') {
port += succList[i];
i++;
}
i++;
res.push_back(make_pair(ip, stoi(port)));
}
return res;
}
/* combine ip and port as ip:port and return string */
string HelperFunctions::combineIpAndPort(string ip, string port) {
string ipAndPort = "";
int i = 0;
for (i = 0; i < ip.size(); i++) {
ipAndPort += ip[i];
}
ipAndPort += ':';
for (i = 0; i < port.size(); i++) {
ipAndPort += port[i];
}
return ipAndPort;
}
/* send successor id of current node to the contacting node */
void HelperFunctions::sendSuccessorId(ServerClass nodeInfo, int newSock, struct sockaddr_in client) {
pair<pair<string, int>, lli> succ = nodeInfo.successor;
string succId = to_string(succ.second);
char succIdChar[40];
socklen_t l = sizeof(client);
strcpy(succIdChar, succId.c_str());
sendto(newSock, succIdChar, strlen(succIdChar), 0, (struct sockaddr *) &client, l);
}
/* find successor of contacting node and send it's ip:port to it */
void HelperFunctions::sendSuccessor(ServerClass nodeInfo, string nodeIdString, int newSock, struct sockaddr_in client) {
lli nodeId = stoll(nodeIdString);
socklen_t l = sizeof(client);
/* find successor of the joining node */
pair<pair<string, int>, lli> succNode;
succNode = nodeInfo.findSuccessor(nodeId);
/* get Ip and port of successor as ip:port in char array to send */
char ipAndPort[40];
string succIp = succNode.first.first;
string succPort = to_string(succNode.first.second);
strcpy(ipAndPort, combineIpAndPort(succIp, succPort).c_str());
/* send ip and port info to the respective node */
sendto(newSock, ipAndPort, strlen(ipAndPort), 0, (struct sockaddr *) &client, l);
}
/* send ip:port of predecessor of current node to contacting node */
void HelperFunctions::sendPredecessor(ServerClass nodeInfo, int newSock, struct sockaddr_in client) {
pair<pair<string, int>, lli> predecessor = nodeInfo.predecessor;
string ip = predecessor.first.first;
string port = to_string(predecessor.first.second);
socklen_t l = sizeof(client);
/* if predecessor is nil */
if (ip == "") {
sendto(newSock, "", 0, 0, (struct sockaddr *) &client, l);
} else {
string ipAndPort = combineIpAndPort(ip, port);
char ipAndPortChar[40];
strcpy(ipAndPortChar, ipAndPort.c_str());
sendto(newSock, ipAndPortChar, strlen(ipAndPortChar), 0, (struct sockaddr *) &client, l);
}
}
/* get successor id of the node having ip address as ip and port num as port */
lli HelperFunctions::getSuccessorId(string ip, int port) {
struct sockaddr_in serverToConnectTo;
socklen_t l = sizeof(serverToConnectTo);
setServerDetails(serverToConnectTo, ip, port);
/* set timer for socket */
struct timeval timer;
setTimer(timer);
int sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock < 0) {
perror("error");
exit(-1);
}
setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (char *) &timer, sizeof(struct timeval));
if (sock < -1) {
cout << "socket cre error";
perror("error");
exit(-1);
}
char msg[] = "finger";
if (sendto(sock, msg, strlen(msg), 0, (struct sockaddr *) &serverToConnectTo, l) == -1) {
perror("error");
exit(-1);
}
char succIdChar[40];
int len = recvfrom(sock, succIdChar, 1024, 0, (struct sockaddr *) &serverToConnectTo, &l);
close(sock);
if (len < 0) {
return -1;
}
succIdChar[len] = '\0';
return atoll(succIdChar);
}
void HelperFunctions::setTimer(struct timeval &timer) {
timer.tv_sec = 0;
timer.tv_usec = 100000;
}
/* get predecessor node (ip:port) of the node having ip and port */
pair<pair<string, int>, lli>
HelperFunctions::getPredecessorNode(string ip, int port, string ipClient, int portClient, bool forStabilize) {
struct sockaddr_in serverToConnectTo;
socklen_t l = sizeof(serverToConnectTo);
setServerDetails(serverToConnectTo, ip, port);
/* set timer for socket */
struct timeval timer;
setTimer(timer);
int sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock < 0) {
perror("error");
exit(-1);
}
setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (char *) &timer, sizeof(struct timeval));
string msg = "";
/* p2 means that just send predecessor of node ip:port , do not call notify */
/* p1 means that this is for stabilize so notify node as well */
if (forStabilize == true) {
msg = combineIpAndPort(ipClient, to_string(portClient));
msg += "p1";
} else
msg = "p2";
char ipAndPortChar[40];
strcpy(ipAndPortChar, msg.c_str());
if (sendto(sock, ipAndPortChar, strlen(ipAndPortChar), 0, (struct sockaddr *) &serverToConnectTo, l) < 0) {
perror("error");
exit(-1);
}
int len = recvfrom(sock, ipAndPortChar, 1024, 0, (struct sockaddr *) &serverToConnectTo, &l);
close(sock);
if (len < 0) {
pair<pair<string, int>, lli> node;
node.first.first = "";
node.first.second = -1;
node.second = -1;
return node;
}
ipAndPortChar[len] = '\0';
string ipAndPort = ipAndPortChar;
lli hash;
pair<string, int> ipAndPortPair;
pair<pair<string, int>, lli> node;
if (ipAndPort == "") {
node.first.first = "";
node.first.second = -1;
node.second = -1;
} else {
ipAndPortPair = getIpAndPort(ipAndPort);
node.first.first = ipAndPortPair.first;
node.first.second = ipAndPortPair.second;
node.second = getHash(ipAndPort);
}
return node;
}
/* get successor list from node having ip and port */
vector<pair<string, int> > HelperFunctions::getSuccessorListFromNode(string ip, int port) {
struct sockaddr_in serverToConnectTo;
socklen_t l = sizeof(serverToConnectTo);
setServerDetails(serverToConnectTo, ip, port);
/* set timer for socket */
struct timeval timer;
setTimer(timer);
int sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock < 0) {
perror("error");
exit(-1);
}
setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (char *) &timer, sizeof(struct timeval));
char msg[] = "sendSuccList";
sendto(sock, msg, strlen(msg), 0, (struct sockaddr *) &serverToConnectTo, l);
char succListChar[1000];
int len = recvfrom(sock, succListChar, 1000, 0, (struct sockaddr *) &serverToConnectTo, &l);
close(sock);
if (len < 0) {
vector<pair<string, int> > list;
return list;
}
succListChar[len] = '\0';
string succList = succListChar;
vector<pair<string, int> > list = seperateSuccessorList(succList);
return list;
}
/* send node's successor list to the contacting node */
void HelperFunctions::sendSuccessorList(ServerClass &nodeInfo, int sock, struct sockaddr_in client) {
socklen_t l = sizeof(client);
vector<pair<pair<string, int>, lli> > list = nodeInfo.successorList;
string successorList = splitSuccessorList(list);
char successorListChar[1000];
strcpy(successorListChar, successorList.c_str());
sendto(sock, successorListChar, strlen(successorListChar), 0, (struct sockaddr *) &client, l);
}
/* combine successor list in form of ip1:port1;ip2:port2;.. */
string HelperFunctions::splitSuccessorList(vector<pair<pair<string, int>, lli> > list) {
string res = "";
for (int i = 1; i <= R; i++) {
res = res + list[i].first.first + ":" + to_string(list[i].first.second) + ";";
}
return res;
}
/* send ack to contacting node that this node is still alive */
void HelperFunctions::sendAcknowledgement(int newSock, struct sockaddr_in client) {
socklen_t l = sizeof(client);
sendto(newSock, "1", 1, 0, (struct sockaddr *) &client, l);
}
/* check if node having ip and port is still alive or not */
bool HelperFunctions::isNodeAlive(string ip, int port) {
struct sockaddr_in serverToConnectTo;
socklen_t l = sizeof(serverToConnectTo);
setServerDetails(serverToConnectTo, ip, port);
/* set timer for socket */
struct timeval timer;
setTimer(timer);
int sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock < 0) {
perror("error");
exit(-1);
}
/* set timer on this socket */
setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (char *) &timer, sizeof(struct timeval));
char msg[] = "alive";
sendto(sock, msg, strlen(msg), 0, (struct sockaddr *) &serverToConnectTo, l);
char response[5];
int len = recvfrom(sock, response, 2, 0, (struct sockaddr *) &serverToConnectTo, &l);
close(sock);
/* node is still active */
if (len >= 0) {
return true;
} else
return false;
}
typedef long long int lli;
void listenTo(ServerClass &nodeInfo);
void doStabilize(ServerClass &nodeInfo);
void callNotify(ServerClass &nodeInfo, string ipAndPort);
void doTask(ServerClass &nodeInfo, int newSock, struct sockaddr_in client, string nodeIdString);
typedef long long int lli;
using namespace std;
HelperFunctions help = HelperFunctions();
/* perform different tasks according to received msg */
void doTask(ServerClass &nodeInfo, int newSock, struct sockaddr_in client, string nodeIdString) {
if (nodeIdString.find("alive") != -1) {
help.sendAcknowledgement(newSock, client);
}
/* contacting node wants successor list of this node */
else if (nodeIdString.find("sendSuccList") != -1) {
help.sendSuccessorList(nodeInfo, newSock, client);
}
/* contacting node wants the predecessor of this node */
else if (nodeIdString.find("p") != -1) {
help.sendPredecessor(nodeInfo, newSock, client);
/* p1 in msg means that notify the current node about this contacting node */
if (nodeIdString.find("p1") != -1) {
callNotify(nodeInfo, nodeIdString);
}
}
/* contacting node wants successor Id of this node for help in finger table */
else if (nodeIdString.find("finger") != -1) {
help.sendSuccessorId(nodeInfo, newSock, client);
}
/* contacting node wants current node to find successor for it */
else {
help.sendSuccessor(nodeInfo, nodeIdString, newSock, client);
}
}
/* listen to any contacting node */
void listenTo(ServerClass &nodeInfo) {
struct sockaddr_in client;
socklen_t l = sizeof(client);
/* wait for any client to connect and create a new thread as soon as one connects */
while (1) {
char charNodeId[40];
int sock = nodeInfo.sp.getSocketFd();
int len = recvfrom(sock, charNodeId, 1024, 0, (struct sockaddr *) &client, &l);
charNodeId[len] = '\0';
string nodeIdString = charNodeId;
/* launch a thread that will perform diff tasks acc to received msg */
thread f(doTask, ref(nodeInfo), sock, client, nodeIdString);
f.detach();
}
}
void doStabilize(ServerClass &nodeInfo) {
/* do stabilize tasks */
while (1) {
nodeInfo.stabilize();
nodeInfo.updateSuccessorList();
nodeInfo.fixFingers();
this_thread::sleep_for(chrono::milliseconds(300));
}
}
/* call notify of current node which will notify curr node of contacting node */
void callNotify(ServerClass &nodeInfo, string ipAndPort) {
ipAndPort.pop_back();
ipAndPort.pop_back();
/* get ip and port of client node */
pair<string, int> ipAndPortPair = help.getIpAndPort(ipAndPort);
string ip = ipAndPortPair.first;
int port = ipAndPortPair.second;
lli hash = help.getHash(ipAndPort);
pair<pair<string, int>, lli> node;
node.first.first = ip;
node.first.second = port;
node.second = hash;
/* notify current node about this node */
nodeInfo.notify(node);
}
int PORT;
ServerClass nodeInfo = ServerClass();
KVCache cacheMap;
class Node {
std::string IPAddress;
int finger[number_of_bits]{1};
public:
Node() {
IPAddress = IP;
run();
}
virtual ~Node() = default;
static void HandleRequest(int new_socket, int valread, const char *buffer1) {
std::thread::id this_id = std::this_thread::get_id();
// g_display_mutex.lock();
if (debugger_mode) {
cout << buffer1 << "\n";
}
std::string buffer;
for (int i = 0; i < valread; i++) {
buffer += (buffer1[i]);
}
std::string buffer2 = fromxml(buffer);
char chararr_of_buffer[buffer2.length() + 1];
strcpy(chararr_of_buffer, buffer2.c_str());
// Extract request type
std::string request_type = strtok(chararr_of_buffer, delimiter);
if (debugger_mode) {
std::cout << request_type << '\n';
}
// Extract key
std::string key = strtok(nullptr, delimiter);
if (debugger_mode) {
std::cout << key << '\n';
}
std::string value;
std::string response;
std::string error_msg = "Error Message";
char return_value[max_buffer_size];
// Extract value if the request type is PUT
if (request_type == "PUT") {
value = strtok(nullptr, delimiter);
if (debugger_mode) {
cout << "Value=" << value << "\n";
}
response = "Success";
} else if (request_type == "DEL") {
value = "";
if (debugger_mode) {
cout << "Value=" << value << "\n";
}
response = "Success";
} else if (request_type == "GET") {
cout << "Sorry this node is not in the ring\n";
response = "Does not exist";
response = "Finding";
} else {
response = error_msg;
}
response = toXML(response);
strcpy(return_value, response.c_str());
if (debugger_mode) {
cout << "Response: \n" << response;
}
// cout << return_value << std::endl;
send(new_socket, return_value, sizeof(return_value), 0);
// close(new_socket);
}
static int run() {
int server_fd = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in address = {address.sin_family = AF_INET,
address.sin_port = htons(PORT),
address.sin_addr.s_addr = INADDR_ANY};
int new_socket, valread;
char buffer1[max_buffer_size] = {0};
int opt = 1;
int addr_len = sizeof(address);
setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt));
//binding the address to the socket..address is the ip adress of the machine
bind(server_fd, (struct sockaddr *) &address, sizeof(address));
/*************************************************************/
/* Set the listen back log */
/*************************************************************/
int rc = listen(server_fd, numOfTotalFDs);
if (rc < 0) {
perror("Network Error: listen() failed");
close(server_fd);
exit(-1);
}
ThreadPool pool(threadPoolSize);
// Initialize pool
pool.init();
int i = 0;
// Server runs forever
while (True) {
//accept creates a new socket for comunication
new_socket = accept(server_fd, (struct sockaddr *) &address, (socklen_t *) &(addr_len));
if (debugger_mode) {
cout << ++i;
cout << "connection made with client fd==========>" << new_socket << "\n";
}
//reading from the socket
valread = read(new_socket, buffer1, max_buffer_size);
buffer1[valread] = '\0';
auto future = pool.submit(HandleRequest, new_socket, valread, buffer1);
future.get();
}
}
};
int main(int argc, char *argv[]) {
cout << "============================================================================\n"
"| To dump the KVStore key value pairs to a file, use command: |\n"
"| ./KVServer dumpToFile [filename] |\n"
"======================================OR====================================\n"
"| To restore the key value pairs from a file to the KVStore, use command: |\n"
"| ./KVServer restoreFromFile [filename] |\n"
"============================================================================\n";
KVStore kvStore;
if (argc == 3) {
if (strcmp(argv[1], "restoreFromFile") == 0) {
kvStore.RestoreFromFile(argv[2]);
cout << "Restore from file " << argv[2] << " successful." << std::endl;
} else if (strcmp(argv[1], "dumpToFile") == 0) {
kvStore.dumpToFile(argv[2]);
cout << "Dump to file " << argv[2] << " successful." << std::endl;
}
}
nodeInfo.sp.setPortServer();
PORT = nodeInfo.sp.getPortNumber();
cout << "Now listening at port number " << nodeInfo.sp.getPortNumber() << endl;
int choice;
while (true) {
cout << "======================================\n"
"Enter 1 to create a new ring\n"
"Enter 2 to join some existing ring\n"
"Enter 3 to display finger table\n"
"======================================\n";
cin >> choice;
if (choice == 1) {
string ip = nodeInfo.sp.getIpAddress();
int port = nodeInfo.sp.getPortNumber();
/* key to be hashed for a node is ip:port */
string key = ip + ":" + (to_string(port));
lli hash = help.getHash(key);
nodeInfo.id = hash;
nodeInfo.setSuccessor(ip, port, hash);
nodeInfo.setSuccessorList(ip, port, hash);
nodeInfo.predecessor.first.first = ""; //IP
nodeInfo.predecessor.first.second = -1; //PORT
nodeInfo.predecessor.second = -1; //HASH
nodeInfo.setFingerTable(ip, port, hash);
nodeInfo.isInRing = true;;
thread second(listenTo, ref(nodeInfo));
second.detach();
thread fifth(doStabilize, ref(nodeInfo));
fifth.detach();
} else if (choice == 2) {
string ip = "127.0.0.1";
string port;
cout << "Enter port number \n";
// cin>>ip;
cin >> port;
struct sockaddr_in server;
socklen_t l = sizeof(server);
help.setServerDetails(server, ip, stoi(port));
int sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock < 0) {
perror("error");
exit(-1);
}
string currIp = nodeInfo.sp.getIpAddress();
string currPort = to_string(nodeInfo.sp.getPortNumber());
/* generate id of current node */
lli nodeId = help.getHash(currIp + ":" + currPort);
char charNodeId[41];
strcpy(charNodeId, to_string(nodeId).c_str());
/* node sends it's id to main node to find it's successor */
if (sendto(sock, charNodeId, strlen(charNodeId), 0, (struct sockaddr *) &server, l) == -1) {
perror("error");
exit(-1);
}
/* node receives id and port of it's successor */
char ipAndPort[40];
int len;
if ((len = recvfrom(sock, ipAndPort, 1024, 0, (struct sockaddr *) &server, &l)) == -1) {
perror("error");
exit(-1);
}
ipAndPort[len] = '\0';
close(sock);
cout << "Successfully joined the ring\n";
string key = ipAndPort;
lli hash = help.getHash(key);
pair<string, int> ipAndPortPair = help.getIpAndPort(key);
/* setting id, successor , successor list , predecessor, finger table and status */
nodeInfo.id = nodeId;
nodeInfo.setSuccessor(ipAndPortPair.first, ipAndPortPair.second, hash);
nodeInfo.setSuccessorList(ipAndPortPair.first, ipAndPortPair.second, hash);
nodeInfo.predecessor.first.first = ""; //IP
nodeInfo.predecessor.first.second = -1; //PORT
nodeInfo.predecessor.second = -1; //HASH
nodeInfo.setFingerTable(ipAndPortPair.first, ipAndPortPair.second, hash);
nodeInfo.isInRing = true;
thread listenerThread(listenTo, ref(nodeInfo));
listenerThread.detach();
thread StabalizerThread(doStabilize, ref(nodeInfo));
StabalizerThread.detach();
} else if (choice == 3) {
int port;
vector<pair<pair<string, int>, lli> > succList = nodeInfo.successorList;
lli id = nodeInfo.id;
cout<<"Curr ID: "<<id<<std::endl;
for (int i = 1; i <= M; i++) {
port = nodeInfo.fingerTable[i].first.second;
lli hash = nodeInfo.fingerTable[i].second;
cout << i << ": " << port << " "<< hash <<endl;
}
} else {
cout << "Wrong choice enter again\n";
}
}
Node node;
Node::run();
}
\ No newline at end of file
#include "header.hpp"
std::mutex DumpToFile;
std::mutex restoreFromFile;
std::mutex mapToFile;
std::mutex addToFile;
class KVStore {
public:
int dumpToFile(const std::string &filename) {
DumpToFile.lock();
FILE *dumpFilePtr = fopen(filename.c_str(), "w");
if (!dumpFilePtr) {
DumpToFile.unlock();
return -errno;
}
fprintf(dumpFilePtr, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<KVStore>\n");
for (int i = 0; i < numSetsInCache; i++) {
std::string nameStoreFile = "KVStore/" + std::to_string(i);
FILE *storeFilePtr = fopen(nameStoreFile.c_str(), "r");
if (!storeFilePtr)
continue;
char *buf = nullptr;
size_t buflen = 0;
while (getline(&buf, &buflen, storeFilePtr) > 0) {
char *nl = strchr(buf, '\n');
if (nl == nullptr)
continue;
*nl = 0;
char *sep = strchr(buf, '=');
if (sep == nullptr)
continue;
*sep = 0;
sep++;
std::string key = buf;
std::string value = sep;
fprintf(dumpFilePtr, " <KVPair>\n");
fprintf(dumpFilePtr, "%s", (" <Key>" + key + "</Key>\n").c_str());
fprintf(dumpFilePtr, "%s", (" <Value>" + value + "</Value>\n").c_str());
fprintf(dumpFilePtr, " </KVPair>\n");
}
fclose(storeFilePtr);
}
fprintf(dumpFilePtr, "</KVStore>\n");
fclose(dumpFilePtr);
DumpToFile.unlock();
return 0;
}
int RestoreFromFile(const std::string &filename) {
restoreFromFile.lock();
std::vector<FILE *> fd_vector;
for (int i = 0; i < numSetsInCache; i++) {
std::string fname = "KVStore/" + std::to_string(i);
FILE *fp = fopen(fname.c_str(), "a");
if (!fp) {
cout << "IO Error";
restoreFromFile.unlock();
return -errno;
}
fd_vector.push_back(fp);
}
FILE *sourceFile = fopen(filename.c_str(), "r");
if (!sourceFile) {
restoreFromFile.unlock();
return -errno;
}
char *buf = nullptr;
size_t buflen = 0;
getline(&buf, &buflen, sourceFile);
getline(&buf, &buflen, sourceFile);
getline(&buf, &buflen, sourceFile);
while (getline(&buf, &buflen, sourceFile) > 0) {
std::string key;
std::string value;
std::string line = std::string(buf);
if (buf[3] == 'K' && buf[4] == 'e' && buf[5] == 'y') {
std::size_t start_of_key = line.find("<Key>");
std::size_t end_of_key = line.find_last_of("</Key>");
key = line.substr(start_of_key + 5, line.length() - 14);
}
getline(&buf, &buflen, sourceFile);
line = std::string(buf);
if (buf[3] == 'V' && buf[4] == 'a' && buf[5] == 'l') {
std::size_t start_of_Value = line.find("<Value>");
std::size_t end_of_Value = line.find_last_of("</Value>");
value = line.substr(start_of_Value + 7, line.length() - 18);
}
getline(&buf, &buflen, sourceFile);
getline(&buf, &buflen, sourceFile);
FILE *fp = fd_vector[getSetId(key)];
// cout << key << value << std::endl;
fprintf(fp, "%s=%s\n", key.c_str(), value.c_str());
}
fclose(sourceFile);
for (int i = 0; i < numSetsInCache; i++) {
fclose(fd_vector[i]);
}
restoreFromFile.unlock();
return 0;
}
};
// To be used to access key value pairs when not found in cache
// this will load the required file into the temporary map ie m
int populateMap(std::string &key, std::map<std::string, std::string> *m) {
std::string fname = getFilename(key);
int count = 0;
if (access(fname.c_str(), R_OK) < 0)
return -errno;
FILE *fp = fopen(fname.c_str(), "r");
if (!fp)
return -errno;
m->clear();
char *buf = nullptr;
size_t buflen = 0;
while (getline(&buf, &buflen, fp) > 0) {
char *nl = strchr(buf, '\n');
if (nl == nullptr)
continue;
*nl = 0;
char *sep = strchr(buf, '=');
if (sep == nullptr)
continue;
*sep = 0;
sep++;
std::string s1 = buf;
std::string s2 = sep;
(*m)[s1] = s2;
count++;
}
if (buf)
free(buf);
fclose(fp);
return count;
}
// Rewrites the whole file in case of a delete
int storeMapToFile(std::string &key, std::map<std::string, std::string> *m) {
mapToFile.lock();
std::string fname = getFilename(key);
FILE *fp = fopen(fname.c_str(), "w");
if (!fp) {
return -errno;
}
int count = 0;
if (m->empty()) {
fclose(fp);
mapToFile.unlock();
return 0;
}
for (std::map<std::string, std::string>::iterator it = m->begin(); it != m->end(); it++) {
fprintf(fp, "%s=%s\n", it->first.c_str(), it->second.c_str());
count++;
}
// std::cout << count;
fclose(fp);
mapToFile.unlock();
return count;
}
// Inserts key-value pair incrementally
int putIntoFile(std::string &key, std::string &value) {
addToFile.lock();
std::string fname = getFilename(key);
FILE *fp = fopen(fname.c_str(), "a");
if (!fp) {
addToFile.unlock();
return -errno;
}
fprintf(fp, "%s=%s\n", key.c_str(), value.c_str());
fclose(fp);
addToFile.unlock();
return 0;
}
std::string toXML(std::string str) {
std::string response, key, value;
std::string header = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
std::string msg = "<KVMessage type=\"resp\">\n";
if (debugger_mode) {
cout << "\nstr is =>" << str << "<=\n" << std::endl;
}
if (str == "Success" || str == "Error Message" || str == "Does not exist")
msg = msg + "<Message>" + str + "</Message>\n";
else {
for (auto i = 0; i < str.length(); i++) {
if (str[i] != ' ')
key += str[i];
else {
value = str.substr(i + 1);
break;
}
}
msg = msg + "<Key>" + key + "</Key>\n" + "<Value>" + value + "</Value>\n";
}
response = header + msg + "</KVMessage>\n";
return response;
}
//convert xml format to plain text
std::string fromxml(std::string str) {
std::string request_type;
std::string msg_type = str.substr(56, 6);
std::string key;
std::string value;
int i = 0, j = 0;
if (msg_type == "putreq") {
request_type = "PUT";
for (i = 70; str[i] != '<'; i++) {
key += str[i];
}
j = i + 14;
for (; str[j] != '<'; j++) {
value += str[j];
}
key = key + delimiter + value;
} else if (msg_type == "getreq") {
request_type = "GET";
for (i = 70; str[i] != '<'; i++) {
key += str[i];
}
} else {
request_type = "DEL";
for (i = 70; str[i] != '<'; i++) {
key += str[i];
}
}
request_type = request_type + delimiter + key;
return request_type;
}
//int main() {
//
// KVStore KS;
// KS.RestoreFromFile("testfile.xml");
//// sleep(10);
// KS.dumpToFile("testfile.xml");
//
//}
\ No newline at end of file
all: do
do: main.o nodeInformation.o helperClass.o init.o port.o functions.o
g++ main.o init.o functions.o port.o nodeInformation.o helperClass.o -o prog -lcrypto -lpthread
main.o: main.cpp
g++ -std=c++11 -c main.cpp
init.o: init.cpp
g++ -std=c++11 -c init.cpp
port.o: port.cpp
g++ -std=c++11 -c port.cpp
functions.o: functions.cpp
g++ -std=c++11 -c functions.cpp
nodeInformation.o: nodeInformation.cpp
g++ -std=c++11 -c nodeInformation.cpp
helperClass.o: helperClass.cpp
g++ -std=c++11 -c helperClass.cpp
################################################################################################################################################
TEAM MEMBERS
################################################################################################################################################
1.Vikas Verma(193059003)
2.Apaar Bansal(193050035)
3.Ashwini Yadav(193050057)
4.Parashiv(193050029)
##############################################################################################################################################
HOW TO EXECUTE THE KVSTORE
##############################################################################################################################################
1.To compile the code
g++ KVServer.cpp -lpthread -lssl -lcrypto -o KVServer
2. Execute the KVServer
./KVServer
3.option to execute program
Enter 1 to create a new ring
Enter 2 to join some existing ring
Enter 3 to display finger table
#pragma once
#include <functional>
#include <future>
#include <mutex>
#include <queue>
#include <thread>
#include <utility>
#include <vector>
#include <mutex>
#include <queue>
// Thread safe implementation of a Queue using a std::queue
template<typename T>
class SafeQueue {
private:
std::queue<T> m_queue;
std::mutex m_mutex;
public:
SafeQueue() {
}
SafeQueue(SafeQueue &other) {
//TODO:
}
~SafeQueue() {
}
bool empty() {
std::unique_lock<std::mutex> lock(m_mutex);
return m_queue.empty();
}
int size() {
std::unique_lock<std::mutex> lock(m_mutex);
return m_queue.size();
}
void enqueue(T &t) {
std::unique_lock<std::mutex> lock(m_mutex);
m_queue.push(t);
}
bool dequeue(T &t) {
std::unique_lock<std::mutex> lock(m_mutex);
if (m_queue.empty()) {
return false;
}
t = std::move(m_queue.front());
m_queue.pop();
return true;
}
};
class ThreadPool {
private:
class ThreadWorker {
private:
int m_id;
ThreadPool *m_pool;
public:
ThreadWorker(ThreadPool *pool, const int id)
: m_pool(pool), m_id(id) {
}
void operator()() {
std::function<void()> func;
bool dequeued;
while (!m_pool->m_shutdown) {
{
std::unique_lock<std::mutex> lock(m_pool->m_conditional_mutex);
if (m_pool->m_queue.empty()) {
m_pool->m_conditional_lock.wait(lock);
}
dequeued = m_pool->m_queue.dequeue(func);
}
if (dequeued) {
func();
}
}
}
};
bool m_shutdown;
SafeQueue<std::function<void()>> m_queue;
std::vector<std::thread> m_threads;
std::mutex m_conditional_mutex;
std::condition_variable m_conditional_lock;
public:
ThreadPool(const int n_threads)
: m_threads(std::vector<std::thread>(n_threads)), m_shutdown(false) {
}
ThreadPool(const ThreadPool &) = delete;
ThreadPool(ThreadPool &&) = delete;
ThreadPool &operator=(const ThreadPool &) = delete;
ThreadPool &operator=(ThreadPool &&) = delete;
// Inits thread pool
void init() {
for (int i = 0; i < m_threads.size(); ++i) {
m_threads[i] = std::thread(ThreadWorker(this, i));
}
}
// Waits until threads finish their current task and shutdowns the pool
void shutdown() {
m_shutdown = true;
m_conditional_lock.notify_all();
for (int i = 0; i < m_threads.size(); ++i) {
if (m_threads[i].joinable()) {
m_threads[i].join();
}
}
}
// Submit a function to be executed asynchronously by the pool
template<typename F, typename...Args>
auto submit(F &&f, Args &&... args) -> std::future<decltype(f(args...))> {
// Create a function with bounded parameters ready to execute
std::function<decltype(f(args...))()> func = std::bind(std::forward<F>(f), std::forward<Args>(args)...);
// Encapsulate it into a shared ptr in order to be able to copy construct / assign
auto task_ptr = std::make_shared<std::packaged_task<decltype(f(args...))()>>(func);
// Wrap packaged task into void function
std::function<void()> wrapper_func = [task_ptr]() {
(*task_ptr)();
};
// Enqueue generic wrapper function
m_queue.enqueue(wrapper_func);
// Wake up one thread if its waiting
m_conditional_lock.notify_one();
// Return future from promise
return task_ptr->get_future();
}
};
\ No newline at end of file
# This is the CMakeCache file.
# For build in directory: /home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug
# It was generated by CMake: /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a variable in the cache.
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.
########################
# EXTERNAL cache entries
########################
//Path to a program.
CMAKE_AR:FILEPATH=/usr/bin/ar
//Choose the type of build, options are: None Debug Release RelWithDebInfo
// MinSizeRel ...
CMAKE_BUILD_TYPE:STRING=Debug
//Id string of the compiler for the CodeBlocks IDE. Automatically
// detected when left empty
CMAKE_CODEBLOCKS_COMPILER_ID:STRING=
//The CodeBlocks executable
CMAKE_CODEBLOCKS_EXECUTABLE:FILEPATH=CMAKE_CODEBLOCKS_EXECUTABLE-NOTFOUND
//Additional command line arguments when CodeBlocks invokes make.
// Enter e.g. -j<some_number> to get parallel builds
CMAKE_CODEBLOCKS_MAKE_ARGUMENTS:STRING=-j4
//Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON
//CXX compiler
CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
//A wrapper around 'ar' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-7
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-7
//Flags used by the CXX compiler during all build types.
CMAKE_CXX_FLAGS:STRING=
//Flags used by the CXX compiler during DEBUG builds.
CMAKE_CXX_FLAGS_DEBUG:STRING=-g
//Flags used by the CXX compiler during MINSIZEREL builds.
CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
//Flags used by the CXX compiler during RELEASE builds.
CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
//Flags used by the CXX compiler during RELWITHDEBINFO builds.
CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
//C compiler
CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
//A wrapper around 'ar' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-7
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-7
//Flags used by the C compiler during all build types.
CMAKE_C_FLAGS:STRING=
//Flags used by the C compiler during DEBUG builds.
CMAKE_C_FLAGS_DEBUG:STRING=-g
//Flags used by the C compiler during MINSIZEREL builds.
CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
//Flags used by the C compiler during RELEASE builds.
CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
//Flags used by the C compiler during RELWITHDEBINFO builds.
CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
//Flags used by the linker during all build types.
CMAKE_EXE_LINKER_FLAGS:STRING=
//Flags used by the linker during DEBUG builds.
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during MINSIZEREL builds.
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during RELEASE builds.
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during RELWITHDEBINFO builds.
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Enable/Disable output of compile commands during generation.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
//Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local
//Path to a program.
CMAKE_LINKER:FILEPATH=/usr/bin/ld
//Path to a program.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
//Flags used by the linker during the creation of modules during
// all build types.
CMAKE_MODULE_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of modules during
// DEBUG builds.
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of modules during
// MINSIZEREL builds.
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of modules during
// RELEASE builds.
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of modules during
// RELWITHDEBINFO builds.
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_NM:FILEPATH=/usr/bin/nm
//Path to a program.
CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
//Path to a program.
CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
//Value Computed by CMake
CMAKE_PROJECT_DESCRIPTION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=KVServer
//Path to a program.
CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
//Flags used by the linker during the creation of shared libraries
// during all build types.
CMAKE_SHARED_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of shared libraries
// during DEBUG builds.
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of shared libraries
// during MINSIZEREL builds.
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELEASE builds.
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELWITHDEBINFO builds.
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//If set, runtime paths are not added when installing shared libraries,
// but are added when building.
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
//If set, runtime paths are not added when using shared libraries.
CMAKE_SKIP_RPATH:BOOL=NO
//Flags used by the linker during the creation of static libraries
// during all build types.
CMAKE_STATIC_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of static libraries
// during DEBUG builds.
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of static libraries
// during MINSIZEREL builds.
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of static libraries
// during RELEASE builds.
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of static libraries
// during RELWITHDEBINFO builds.
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_STRIP:FILEPATH=/usr/bin/strip
//If this value is on, makefiles will be generated without the
// .SILENT directive, and all commands will be echoed to the console
// during the make. This is useful for debugging only. With Visual
// Studio IDE projects all commands are done without /nologo.
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
//Value Computed by CMake
KVServer_BINARY_DIR:STATIC=/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug
//Value Computed by CMake
KVServer_SOURCE_DIR:STATIC=/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT
//Path to a program.
ProcessorCount_cmd_nproc:FILEPATH=/usr/bin/nproc
//Path to a program.
ProcessorCount_cmd_sysctl:FILEPATH=/sbin/sysctl
########################
# INTERNAL cache entries
########################
//ADVANCED property for variable: CMAKE_AR
CMAKE_AR-ADVANCED:INTERNAL=1
//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=15
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=3
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cpack
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/ctest
//ADVANCED property for variable: CMAKE_CXX_COMPILER
CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER
CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_AR
CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS
CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//Executable file format
CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=CodeBlocks
//CXX compiler system defined macros
CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;7;__GNUC_MINOR__;4;__GNUC_PATCHLEVEL__;0;__VERSION__;"7.4.0";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1011;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__SCHAR_WIDTH__;8;__SHRT_WIDTH__;16;__INT_WIDTH__;32;__LONG_WIDTH__;64;__LONG_LONG_WIDTH__;64;__WCHAR_WIDTH__;32;__WINT_WIDTH__;32;__PTRDIFF_WIDTH__;64;__SIZE_WIDTH__;64;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__INTMAX_WIDTH__;64;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__SIG_ATOMIC_WIDTH__;32;__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST8_WIDTH__;8;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST16_WIDTH__;16;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST32_WIDTH__;32;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__INT_LEAST64_WIDTH__;64;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST8_WIDTH__;8;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST16_WIDTH__;64;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST32_WIDTH__;64;__INT_FAST64_MAX__;0x7fffffffffffffffL;__INT_FAST64_WIDTH__;64;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__INTPTR_WIDTH__;64;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__FLT_EVAL_METHOD_TS_18661_3__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859811704183484516925e+38F;__FLT_MIN__;1.17549435082228750796873653722224568e-38F;__FLT_EPSILON__;1.19209289550781250000000000000000000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092372958328991613e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570814527423731704357e+308L);__DBL_MIN__;((double)2.22507385850720138309023271733240406e-308L);__DBL_EPSILON__;((double)2.22044604925031308084726333618164062e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544176568792868221372e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502126385303097021e+4932L;__LDBL_MIN__;3.36210314311209350626267781732175260e-4932L;__LDBL_EPSILON__;1.08420217248550443400745280086994171e-19L;__LDBL_DENORM_MIN__;3.64519953188247460252840593361941982e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__FLT32_MANT_DIG__;24;__FLT32_DIG__;6;__FLT32_MIN_EXP__;(-125);__FLT32_MIN_10_EXP__;(-37);__FLT32_MAX_EXP__;128;__FLT32_MAX_10_EXP__;38;__FLT32_DECIMAL_DIG__;9;__FLT32_MAX__;3.40282346638528859811704183484516925e+38F32;__FLT32_MIN__;1.17549435082228750796873653722224568e-38F32;__FLT32_EPSILON__;1.19209289550781250000000000000000000e-7F32;__FLT32_DENORM_MIN__;1.40129846432481707092372958328991613e-45F32;__FLT32_HAS_DENORM__;1;__FLT32_HAS_INFINITY__;1;__FLT32_HAS_QUIET_NAN__;1;__FLT64_MANT_DIG__;53;__FLT64_DIG__;15;__FLT64_MIN_EXP__;(-1021);__FLT64_MIN_10_EXP__;(-307);__FLT64_MAX_EXP__;1024;__FLT64_MAX_10_EXP__;308;__FLT64_DECIMAL_DIG__;17;__FLT64_MAX__;1.79769313486231570814527423731704357e+308F64;__FLT64_MIN__;2.22507385850720138309023271733240406e-308F64;__FLT64_EPSILON__;2.22044604925031308084726333618164062e-16F64;__FLT64_DENORM_MIN__;4.94065645841246544176568792868221372e-324F64;__FLT64_HAS_DENORM__;1;__FLT64_HAS_INFINITY__;1;__FLT64_HAS_QUIET_NAN__;1;__FLT128_MANT_DIG__;113;__FLT128_DIG__;33;__FLT128_MIN_EXP__;(-16381);__FLT128_MIN_10_EXP__;(-4931);__FLT128_MAX_EXP__;16384;__FLT128_MAX_10_EXP__;4932;__FLT128_DECIMAL_DIG__;36;__FLT128_MAX__;1.18973149535723176508575932662800702e+4932F128;__FLT128_MIN__;3.36210314311209350626267781732175260e-4932F128;__FLT128_EPSILON__;1.92592994438723585305597794258492732e-34F128;__FLT128_DENORM_MIN__;6.47517511943802511092443895822764655e-4966F128;__FLT128_HAS_DENORM__;1;__FLT128_HAS_INFINITY__;1;__FLT128_HAS_QUIET_NAN__;1;__FLT32X_MANT_DIG__;53;__FLT32X_DIG__;15;__FLT32X_MIN_EXP__;(-1021);__FLT32X_MIN_10_EXP__;(-307);__FLT32X_MAX_EXP__;1024;__FLT32X_MAX_10_EXP__;308;__FLT32X_DECIMAL_DIG__;17;__FLT32X_MAX__;1.79769313486231570814527423731704357e+308F32x;__FLT32X_MIN__;2.22507385850720138309023271733240406e-308F32x;__FLT32X_EPSILON__;2.22044604925031308084726333618164062e-16F32x;__FLT32X_DENORM_MIN__;4.94065645841246544176568792868221372e-324F32x;__FLT32X_HAS_DENORM__;1;__FLT32X_HAS_INFINITY__;1;__FLT32X_HAS_QUIET_NAN__;1;__FLT64X_MANT_DIG__;64;__FLT64X_DIG__;18;__FLT64X_MIN_EXP__;(-16381);__FLT64X_MIN_10_EXP__;(-4931);__FLT64X_MAX_EXP__;16384;__FLT64X_MAX_10_EXP__;4932;__FLT64X_DECIMAL_DIG__;21;__FLT64X_MAX__;1.18973149535723176502126385303097021e+4932F64x;__FLT64X_MIN__;3.36210314311209350626267781732175260e-4932F64x;__FLT64X_EPSILON__;1.08420217248550443400745280086994171e-19F64x;__FLT64X_DENORM_MIN__;3.64519953188247460252840593361941982e-4951F64x;__FLT64X_HAS_DENORM__;1;__FLT64X_HAS_INFINITY__;1;__FLT64X_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__GCC_ASM_FLAG_OUTPUTS__;1;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__SEG_FS;1;__SEG_GS;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1;__STDC__;1;__cplusplus;201402L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;7;__GNUC_MINOR__;4;__GNUC_PATCHLEVEL__;0;__VERSION__;"7.4.0";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__GNUG__;7;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_WEAK__;1;__DEPRECATED;1;__GXX_RTTI;1;__cpp_rtti;199711;__GXX_EXPERIMENTAL_CXX0X__;1;__cpp_binary_literals;201304;__cpp_hex_float;201603;__cpp_runtime_arrays;198712;__cpp_unicode_characters;200704;__cpp_raw_strings;200710;__cpp_unicode_literals;200710;__cpp_user_defined_literals;200809;__cpp_lambdas;200907;__cpp_range_based_for;200907;__cpp_static_assert;200410;__cpp_decltype;200707;__cpp_attributes;200809;__cpp_rvalue_reference;200610;__cpp_rvalue_references;200610;__cpp_variadic_templates;200704;__cpp_initializer_lists;200806;__cpp_delegating_constructors;200604;__cpp_nsdmi;200809;__cpp_inheriting_constructors;201511;__cpp_ref_qualifiers;200710;__cpp_alias_templates;200704;__cpp_return_type_deduction;201304;__cpp_init_captures;201304;__cpp_generic_lambdas;201304;__cpp_constexpr;201304;__cpp_decltype_auto;201304;__cpp_aggregate_nsdmi;201304;__cpp_variable_templates;201304;__cpp_digit_separators;201309;__cpp_sized_deallocation;201309;__cpp_threadsafe_static_init;200806;__EXCEPTIONS;1;__cpp_exceptions;199711;__GXX_ABI_VERSION;1011;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__SCHAR_WIDTH__;8;__SHRT_WIDTH__;16;__INT_WIDTH__;32;__LONG_WIDTH__;64;__LONG_LONG_WIDTH__;64;__WCHAR_WIDTH__;32;__WINT_WIDTH__;32;__PTRDIFF_WIDTH__;64;__SIZE_WIDTH__;64;__GLIBCXX_TYPE_INT_N_0;__int128;__GLIBCXX_BITSIZE_INT_N_0;128;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__INTMAX_WIDTH__;64;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__SIG_ATOMIC_WIDTH__;32;__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST8_WIDTH__;8;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST16_WIDTH__;16;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST32_WIDTH__;32;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__INT_LEAST64_WIDTH__;64;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST8_WIDTH__;8;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST16_WIDTH__;64;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST32_WIDTH__;64;__INT_FAST64_MAX__;0x7fffffffffffffffL;__INT_FAST64_WIDTH__;64;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__INTPTR_WIDTH__;64;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__FLT_EVAL_METHOD_TS_18661_3__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859811704183484516925e+38F;__FLT_MIN__;1.17549435082228750796873653722224568e-38F;__FLT_EPSILON__;1.19209289550781250000000000000000000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092372958328991613e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;double(1.79769313486231570814527423731704357e+308L);__DBL_MIN__;double(2.22507385850720138309023271733240406e-308L);__DBL_EPSILON__;double(2.22044604925031308084726333618164062e-16L);__DBL_DENORM_MIN__;double(4.94065645841246544176568792868221372e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502126385303097021e+4932L;__LDBL_MIN__;3.36210314311209350626267781732175260e-4932L;__LDBL_EPSILON__;1.08420217248550443400745280086994171e-19L;__LDBL_DENORM_MIN__;3.64519953188247460252840593361941982e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__FLT32_MANT_DIG__;24;__FLT32_DIG__;6;__FLT32_MIN_EXP__;(-125);__FLT32_MIN_10_EXP__;(-37);__FLT32_MAX_EXP__;128;__FLT32_MAX_10_EXP__;38;__FLT32_DECIMAL_DIG__;9;__FLT32_MAX__;3.40282346638528859811704183484516925e+38F32;__FLT32_MIN__;1.17549435082228750796873653722224568e-38F32;__FLT32_EPSILON__;1.19209289550781250000000000000000000e-7F32;__FLT32_DENORM_MIN__;1.40129846432481707092372958328991613e-45F32;__FLT32_HAS_DENORM__;1;__FLT32_HAS_INFINITY__;1;__FLT32_HAS_QUIET_NAN__;1;__FLT64_MANT_DIG__;53;__FLT64_DIG__;15;__FLT64_MIN_EXP__;(-1021);__FLT64_MIN_10_EXP__;(-307);__FLT64_MAX_EXP__;1024;__FLT64_MAX_10_EXP__;308;__FLT64_DECIMAL_DIG__;17;__FLT64_MAX__;1.79769313486231570814527423731704357e+308F64;__FLT64_MIN__;2.22507385850720138309023271733240406e-308F64;__FLT64_EPSILON__;2.22044604925031308084726333618164062e-16F64;__FLT64_DENORM_MIN__;4.94065645841246544176568792868221372e-324F64;__FLT64_HAS_DENORM__;1;__FLT64_HAS_INFINITY__;1;__FLT64_HAS_QUIET_NAN__;1;__FLT128_MANT_DIG__;113;__FLT128_DIG__;33;__FLT128_MIN_EXP__;(-16381);__FLT128_MIN_10_EXP__;(-4931);__FLT128_MAX_EXP__;16384;__FLT128_MAX_10_EXP__;4932;__FLT128_DECIMAL_DIG__;36;__FLT128_MAX__;1.18973149535723176508575932662800702e+4932F128;__FLT128_MIN__;3.36210314311209350626267781732175260e-4932F128;__FLT128_EPSILON__;1.92592994438723585305597794258492732e-34F128;__FLT128_DENORM_MIN__;6.47517511943802511092443895822764655e-4966F128;__FLT128_HAS_DENORM__;1;__FLT128_HAS_INFINITY__;1;__FLT128_HAS_QUIET_NAN__;1;__FLT32X_MANT_DIG__;53;__FLT32X_DIG__;15;__FLT32X_MIN_EXP__;(-1021);__FLT32X_MIN_10_EXP__;(-307);__FLT32X_MAX_EXP__;1024;__FLT32X_MAX_10_EXP__;308;__FLT32X_DECIMAL_DIG__;17;__FLT32X_MAX__;1.79769313486231570814527423731704357e+308F32x;__FLT32X_MIN__;2.22507385850720138309023271733240406e-308F32x;__FLT32X_EPSILON__;2.22044604925031308084726333618164062e-16F32x;__FLT32X_DENORM_MIN__;4.94065645841246544176568792868221372e-324F32x;__FLT32X_HAS_DENORM__;1;__FLT32X_HAS_INFINITY__;1;__FLT32X_HAS_QUIET_NAN__;1;__FLT64X_MANT_DIG__;64;__FLT64X_DIG__;18;__FLT64X_MIN_EXP__;(-16381);__FLT64X_MIN_10_EXP__;(-4931);__FLT64X_MAX_EXP__;16384;__FLT64X_MAX_10_EXP__;4932;__FLT64X_DECIMAL_DIG__;21;__FLT64X_MAX__;1.18973149535723176502126385303097021e+4932F64x;__FLT64X_MIN__;3.36210314311209350626267781732175260e-4932F64x;__FLT64X_EPSILON__;1.08420217248550443400745280086994171e-19F64x;__FLT64X_DENORM_MIN__;3.64519953188247460252840593361941982e-4951F64x;__FLT64X_HAS_DENORM__;1;__FLT64X_HAS_INFINITY__;1;__FLT64X_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__GCC_ASM_FLAG_OUTPUTS__;1;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__SEG_FS;1;__SEG_GS;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_GNU_SOURCE;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1
//CXX compiler system include directories
CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/include/c++/7;/usr/include/x86_64-linux-gnu/c++/7;/usr/include/c++/7/backward;/usr/lib/gcc/x86_64-linux-gnu/7/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include
//C compiler system defined macros
CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;7;__GNUC_MINOR__;4;__GNUC_PATCHLEVEL__;0;__VERSION__;"7.4.0";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1011;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__SCHAR_WIDTH__;8;__SHRT_WIDTH__;16;__INT_WIDTH__;32;__LONG_WIDTH__;64;__LONG_LONG_WIDTH__;64;__WCHAR_WIDTH__;32;__WINT_WIDTH__;32;__PTRDIFF_WIDTH__;64;__SIZE_WIDTH__;64;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__INTMAX_WIDTH__;64;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__SIG_ATOMIC_WIDTH__;32;__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST8_WIDTH__;8;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST16_WIDTH__;16;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST32_WIDTH__;32;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__INT_LEAST64_WIDTH__;64;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST8_WIDTH__;8;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST16_WIDTH__;64;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST32_WIDTH__;64;__INT_FAST64_MAX__;0x7fffffffffffffffL;__INT_FAST64_WIDTH__;64;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__INTPTR_WIDTH__;64;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__FLT_EVAL_METHOD_TS_18661_3__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859811704183484516925e+38F;__FLT_MIN__;1.17549435082228750796873653722224568e-38F;__FLT_EPSILON__;1.19209289550781250000000000000000000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092372958328991613e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570814527423731704357e+308L);__DBL_MIN__;((double)2.22507385850720138309023271733240406e-308L);__DBL_EPSILON__;((double)2.22044604925031308084726333618164062e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544176568792868221372e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502126385303097021e+4932L;__LDBL_MIN__;3.36210314311209350626267781732175260e-4932L;__LDBL_EPSILON__;1.08420217248550443400745280086994171e-19L;__LDBL_DENORM_MIN__;3.64519953188247460252840593361941982e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__FLT32_MANT_DIG__;24;__FLT32_DIG__;6;__FLT32_MIN_EXP__;(-125);__FLT32_MIN_10_EXP__;(-37);__FLT32_MAX_EXP__;128;__FLT32_MAX_10_EXP__;38;__FLT32_DECIMAL_DIG__;9;__FLT32_MAX__;3.40282346638528859811704183484516925e+38F32;__FLT32_MIN__;1.17549435082228750796873653722224568e-38F32;__FLT32_EPSILON__;1.19209289550781250000000000000000000e-7F32;__FLT32_DENORM_MIN__;1.40129846432481707092372958328991613e-45F32;__FLT32_HAS_DENORM__;1;__FLT32_HAS_INFINITY__;1;__FLT32_HAS_QUIET_NAN__;1;__FLT64_MANT_DIG__;53;__FLT64_DIG__;15;__FLT64_MIN_EXP__;(-1021);__FLT64_MIN_10_EXP__;(-307);__FLT64_MAX_EXP__;1024;__FLT64_MAX_10_EXP__;308;__FLT64_DECIMAL_DIG__;17;__FLT64_MAX__;1.79769313486231570814527423731704357e+308F64;__FLT64_MIN__;2.22507385850720138309023271733240406e-308F64;__FLT64_EPSILON__;2.22044604925031308084726333618164062e-16F64;__FLT64_DENORM_MIN__;4.94065645841246544176568792868221372e-324F64;__FLT64_HAS_DENORM__;1;__FLT64_HAS_INFINITY__;1;__FLT64_HAS_QUIET_NAN__;1;__FLT128_MANT_DIG__;113;__FLT128_DIG__;33;__FLT128_MIN_EXP__;(-16381);__FLT128_MIN_10_EXP__;(-4931);__FLT128_MAX_EXP__;16384;__FLT128_MAX_10_EXP__;4932;__FLT128_DECIMAL_DIG__;36;__FLT128_MAX__;1.18973149535723176508575932662800702e+4932F128;__FLT128_MIN__;3.36210314311209350626267781732175260e-4932F128;__FLT128_EPSILON__;1.92592994438723585305597794258492732e-34F128;__FLT128_DENORM_MIN__;6.47517511943802511092443895822764655e-4966F128;__FLT128_HAS_DENORM__;1;__FLT128_HAS_INFINITY__;1;__FLT128_HAS_QUIET_NAN__;1;__FLT32X_MANT_DIG__;53;__FLT32X_DIG__;15;__FLT32X_MIN_EXP__;(-1021);__FLT32X_MIN_10_EXP__;(-307);__FLT32X_MAX_EXP__;1024;__FLT32X_MAX_10_EXP__;308;__FLT32X_DECIMAL_DIG__;17;__FLT32X_MAX__;1.79769313486231570814527423731704357e+308F32x;__FLT32X_MIN__;2.22507385850720138309023271733240406e-308F32x;__FLT32X_EPSILON__;2.22044604925031308084726333618164062e-16F32x;__FLT32X_DENORM_MIN__;4.94065645841246544176568792868221372e-324F32x;__FLT32X_HAS_DENORM__;1;__FLT32X_HAS_INFINITY__;1;__FLT32X_HAS_QUIET_NAN__;1;__FLT64X_MANT_DIG__;64;__FLT64X_DIG__;18;__FLT64X_MIN_EXP__;(-16381);__FLT64X_MIN_10_EXP__;(-4931);__FLT64X_MAX_EXP__;16384;__FLT64X_MAX_10_EXP__;4932;__FLT64X_DECIMAL_DIG__;21;__FLT64X_MAX__;1.18973149535723176502126385303097021e+4932F64x;__FLT64X_MIN__;3.36210314311209350626267781732175260e-4932F64x;__FLT64X_EPSILON__;1.08420217248550443400745280086994171e-19F64x;__FLT64X_DENORM_MIN__;3.64519953188247460252840593361941982e-4951F64x;__FLT64X_HAS_DENORM__;1;__FLT64X_HAS_INFINITY__;1;__FLT64X_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__GCC_ASM_FLAG_OUTPUTS__;1;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__SEG_FS;1;__SEG_GS;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1
//C compiler system include directories
CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/lib/gcc/x86_64-linux-gnu/7/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include
//Name of generator.
CMAKE_GENERATOR:INTERNAL=Unix Makefiles
//Generator instance identifier.
CMAKE_GENERATOR_INSTANCE:INTERNAL=
//Name of generator platform.
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT
//Install .so files without execute permission.
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
//ADVANCED property for variable: CMAKE_LINKER
CMAKE_LINKER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_NM
CMAKE_NM-ADVANCED:INTERNAL=1
//number of local generators
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJCOPY
CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJDUMP
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
//Platform information initialized
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
//ADVANCED property for variable: CMAKE_RANLIB
CMAKE_RANLIB-ADVANCED:INTERNAL=1
//Path to CMake installation.
CMAKE_ROOT:INTERNAL=/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_RPATH
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STRIP
CMAKE_STRIP-ADVANCED:INTERNAL=1
//uname command
CMAKE_UNAME:INTERNAL=/bin/uname
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: ProcessorCount_cmd_nproc
ProcessorCount_cmd_nproc-ADVANCED:INTERNAL=1
//ADVANCED property for variable: ProcessorCount_cmd_sysctl
ProcessorCount_cmd_sysctl-ADVANCED:INTERNAL=1
set(CMAKE_C_COMPILER "/usr/bin/cc")
set(CMAKE_C_COMPILER_ARG1 "")
set(CMAKE_C_COMPILER_ID "GNU")
set(CMAKE_C_COMPILER_VERSION "7.4.0")
set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
set(CMAKE_C_COMPILER_WRAPPER "")
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert")
set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
set(CMAKE_C_PLATFORM_ID "Linux")
set(CMAKE_C_SIMULATE_ID "")
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "")
set(CMAKE_C_SIMULATE_VERSION "")
set(CMAKE_AR "/usr/bin/ar")
set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-7")
set(CMAKE_RANLIB "/usr/bin/ranlib")
set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-7")
set(CMAKE_LINKER "/usr/bin/ld")
set(CMAKE_MT "")
set(CMAKE_COMPILER_IS_GNUCC 1)
set(CMAKE_C_COMPILER_LOADED 1)
set(CMAKE_C_COMPILER_WORKS TRUE)
set(CMAKE_C_ABI_COMPILED TRUE)
set(CMAKE_COMPILER_IS_MINGW )
set(CMAKE_COMPILER_IS_CYGWIN )
if(CMAKE_COMPILER_IS_CYGWIN)
set(CYGWIN 1)
set(UNIX 1)
endif()
set(CMAKE_C_COMPILER_ENV_VAR "CC")
if(CMAKE_COMPILER_IS_MINGW)
set(MINGW 1)
endif()
set(CMAKE_C_COMPILER_ID_RUN 1)
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_C_LINKER_PREFERENCE 10)
# Save compiler ABI information.
set(CMAKE_C_SIZEOF_DATA_PTR "8")
set(CMAKE_C_COMPILER_ABI "ELF")
set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
if(CMAKE_C_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_C_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
endif()
if(CMAKE_C_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
endif()
set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/7/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include")
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
set(CMAKE_CXX_COMPILER "/usr/bin/c++")
set(CMAKE_CXX_COMPILER_ARG1 "")
set(CMAKE_CXX_COMPILER_ID "GNU")
set(CMAKE_CXX_COMPILER_VERSION "7.4.0")
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
set(CMAKE_CXX_COMPILER_WRAPPER "")
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17")
set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
set(CMAKE_CXX20_COMPILE_FEATURES "")
set(CMAKE_CXX_PLATFORM_ID "Linux")
set(CMAKE_CXX_SIMULATE_ID "")
set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "")
set(CMAKE_CXX_SIMULATE_VERSION "")
set(CMAKE_AR "/usr/bin/ar")
set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-7")
set(CMAKE_RANLIB "/usr/bin/ranlib")
set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-7")
set(CMAKE_LINKER "/usr/bin/ld")
set(CMAKE_MT "")
set(CMAKE_COMPILER_IS_GNUCXX 1)
set(CMAKE_CXX_COMPILER_LOADED 1)
set(CMAKE_CXX_COMPILER_WORKS TRUE)
set(CMAKE_CXX_ABI_COMPILED TRUE)
set(CMAKE_COMPILER_IS_MINGW )
set(CMAKE_COMPILER_IS_CYGWIN )
if(CMAKE_COMPILER_IS_CYGWIN)
set(CYGWIN 1)
set(UNIX 1)
endif()
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
if(CMAKE_COMPILER_IS_MINGW)
set(MINGW 1)
endif()
set(CMAKE_CXX_COMPILER_ID_RUN 1)
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)
set(CMAKE_CXX_LINKER_PREFERENCE 30)
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
# Save compiler ABI information.
set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
set(CMAKE_CXX_COMPILER_ABI "ELF")
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
if(CMAKE_CXX_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_CXX_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
endif()
if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
endif()
set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/7;/usr/include/x86_64-linux-gnu/c++/7;/usr/include/c++/7/backward;/usr/lib/gcc/x86_64-linux-gnu/7/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include")
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "crypto;stdc++;m;gcc_s;gcc;pthread;c;gcc_s;gcc")
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
set(CMAKE_HOST_SYSTEM "Linux-5.0.0-31-generic")
set(CMAKE_HOST_SYSTEM_NAME "Linux")
set(CMAKE_HOST_SYSTEM_VERSION "5.0.0-31-generic")
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_SYSTEM "Linux-5.0.0-31-generic")
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_VERSION "5.0.0-31-generic")
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)
#ifdef __cplusplus
# error "A C++ compiler has been selected for C."
#endif
#if defined(__18CXX)
# define ID_VOID_MAIN
#endif
#if defined(__CLASSIC_C__)
/* cv-qualifiers did not exist in K&R C */
# define const
# define volatile
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# if defined(__GNUC__)
# define SIMULATE_ID "GNU"
# endif
/* __INTEL_COMPILER = VRP */
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# if defined(__INTEL_COMPILER_UPDATE)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
# else
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# endif
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__WATCOMC__)
# define COMPILER_ID "OpenWatcom"
/* __WATCOMC__ = VVRP + 1100 */
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__SUNPRO_C)
# define COMPILER_ID "SunPro"
# if __SUNPRO_C >= 0x5100
/* __SUNPRO_C = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# else
/* __SUNPRO_CC = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# endif
#elif defined(__HP_cc)
# define COMPILER_ID "HP"
/* __HP_cc = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
#elif defined(__DECC)
# define COMPILER_ID "Compaq"
/* __DECC_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
#elif defined(__IBMC__) && defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__ibmxl__) && defined(__clang__)
# define COMPILER_ID "XLClang"
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
# define COMPILER_ID "XL"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
# define COMPILER_ID "VisualAge"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__PGI)
# define COMPILER_ID "PGI"
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
# if defined(__PGIC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
# endif
#elif defined(_CRAYC)
# define COMPILER_ID "Cray"
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
#elif defined(__TI_COMPILER_VERSION__)
# define COMPILER_ID "TI"
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
# define COMPILER_ID "Fujitsu"
#elif defined(__ghs__)
# define COMPILER_ID "GHS"
/* __GHS_VERSION_NUMBER = VVVVRP */
# ifdef __GHS_VERSION_NUMBER
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
# endif
#elif defined(__TINYC__)
# define COMPILER_ID "TinyCC"
#elif defined(__BCC__)
# define COMPILER_ID "Bruce"
#elif defined(__SCO_VERSION__)
# define COMPILER_ID "SCO"
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
# define COMPILER_ID "ARMCC"
#if __ARMCC_VERSION >= 1000000
/* __ARMCC_VERSION = VRRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#else
/* __ARMCC_VERSION = VRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#endif
#elif defined(__clang__) && defined(__apple_build_version__)
# define COMPILER_ID "AppleClang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
# define COMPILER_ID "ARMClang"
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000)
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
#elif defined(__clang__)
# define COMPILER_ID "Clang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
#elif defined(__GNUC__)
# define COMPILER_ID "GNU"
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
# if defined(__GNUC_MINOR__)
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(_MSC_VER)
# define COMPILER_ID "MSVC"
/* _MSC_VER = VVRR */
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
/* _MSC_FULL_VER = VVRRPPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
/* _MSC_FULL_VER = VVRRPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
# define COMPILER_ID "ADSP"
#if defined(__VISUALDSPVERSION__)
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
#endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
# if defined(__VER__) && defined(__ICCARM__)
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__))
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# endif
#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
# define COMPILER_ID "SDCC"
# if defined(__SDCC_VERSION_MAJOR)
# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
# else
/* SDCC = VRP */
# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
# endif
/* These compilers are either not known or too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
#elif defined(__hpux) || defined(__hpua)
# define COMPILER_ID "HP"
#else /* unknown compiler */
# define COMPILER_ID ""
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
#ifdef SIMULATE_ID
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
#endif
#ifdef __QNXNTO__
char const* qnxnto = "INFO" ":" "qnxnto[]";
#endif
#if defined(__CRAYXE) || defined(__CRAYXC)
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
#endif
#define STRINGIFY_HELPER(X) #X
#define STRINGIFY(X) STRINGIFY_HELPER(X)
/* Identify known platforms by name. */
#if defined(__linux) || defined(__linux__) || defined(linux)
# define PLATFORM_ID "Linux"
#elif defined(__CYGWIN__)
# define PLATFORM_ID "Cygwin"
#elif defined(__MINGW32__)
# define PLATFORM_ID "MinGW"
#elif defined(__APPLE__)
# define PLATFORM_ID "Darwin"
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
# define PLATFORM_ID "Windows"
#elif defined(__FreeBSD__) || defined(__FreeBSD)
# define PLATFORM_ID "FreeBSD"
#elif defined(__NetBSD__) || defined(__NetBSD)
# define PLATFORM_ID "NetBSD"
#elif defined(__OpenBSD__) || defined(__OPENBSD)
# define PLATFORM_ID "OpenBSD"
#elif defined(__sun) || defined(sun)
# define PLATFORM_ID "SunOS"
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
# define PLATFORM_ID "AIX"
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
#elif defined(__HAIKU__)
# define PLATFORM_ID "Haiku"
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
#elif defined(__QNX__) || defined(__QNXNTO__)
# define PLATFORM_ID "QNX"
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
# define PLATFORM_ID "Tru64"
#elif defined(__riscos) || defined(__riscos__)
# define PLATFORM_ID "RISCos"
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
# define PLATFORM_ID "SINIX"
#elif defined(__UNIX_SV__)
# define PLATFORM_ID "UNIX_SV"
#elif defined(__bsdos__)
# define PLATFORM_ID "BSDOS"
#elif defined(_MPRAS) || defined(MPRAS)
# define PLATFORM_ID "MP-RAS"
#elif defined(__osf) || defined(__osf__)
# define PLATFORM_ID "OSF1"
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
# define PLATFORM_ID "SCO_SV"
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
# define PLATFORM_ID "ULTRIX"
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
# define PLATFORM_ID "Xenix"
#elif defined(__WATCOMC__)
# if defined(__LINUX__)
# define PLATFORM_ID "Linux"
# elif defined(__DOS__)
# define PLATFORM_ID "DOS"
# elif defined(__OS2__)
# define PLATFORM_ID "OS2"
# elif defined(__WINDOWS__)
# define PLATFORM_ID "Windows3x"
# else /* unknown platform */
# define PLATFORM_ID
# endif
#elif defined(__INTEGRITY)
# if defined(INT_178B)
# define PLATFORM_ID "Integrity178"
# else /* regular Integrity */
# define PLATFORM_ID "Integrity"
# endif
#else /* unknown platform */
# define PLATFORM_ID
#endif
/* For windows compilers MSVC and Intel we can determine
the architecture of the compiler being used. This is because
the compilers do not have flags that can change the architecture,
but rather depend on which compiler is being used
*/
#if defined(_WIN32) && defined(_MSC_VER)
# if defined(_M_IA64)
# define ARCHITECTURE_ID "IA64"
# elif defined(_M_X64) || defined(_M_AMD64)
# define ARCHITECTURE_ID "x64"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# elif defined(_M_ARM64)
# define ARCHITECTURE_ID "ARM64"
# elif defined(_M_ARM)
# if _M_ARM == 4
# define ARCHITECTURE_ID "ARMV4I"
# elif _M_ARM == 5
# define ARCHITECTURE_ID "ARMV5I"
# else
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
# endif
# elif defined(_M_MIPS)
# define ARCHITECTURE_ID "MIPS"
# elif defined(_M_SH)
# define ARCHITECTURE_ID "SHx"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__WATCOMC__)
# if defined(_M_I86)
# define ARCHITECTURE_ID "I86"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# if defined(__ICCARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__ICCRX__)
# define ARCHITECTURE_ID "RX"
# elif defined(__ICCRH850__)
# define ARCHITECTURE_ID "RH850"
# elif defined(__ICCRL78__)
# define ARCHITECTURE_ID "RL78"
# elif defined(__ICCRISCV__)
# define ARCHITECTURE_ID "RISCV"
# elif defined(__ICCAVR__)
# define ARCHITECTURE_ID "AVR"
# elif defined(__ICC430__)
# define ARCHITECTURE_ID "MSP430"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__ghs__)
# if defined(__PPC64__)
# define ARCHITECTURE_ID "PPC64"
# elif defined(__ppc__)
# define ARCHITECTURE_ID "PPC"
# elif defined(__ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__x86_64__)
# define ARCHITECTURE_ID "x64"
# elif defined(__i386__)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#else
# define ARCHITECTURE_ID
#endif
/* Convert integer to decimal digit literals. */
#define DEC(n) \
('0' + (((n) / 10000000)%10)), \
('0' + (((n) / 1000000)%10)), \
('0' + (((n) / 100000)%10)), \
('0' + (((n) / 10000)%10)), \
('0' + (((n) / 1000)%10)), \
('0' + (((n) / 100)%10)), \
('0' + (((n) / 10)%10)), \
('0' + ((n) % 10))
/* Convert integer to hex digit literals. */
#define HEX(n) \
('0' + ((n)>>28 & 0xF)), \
('0' + ((n)>>24 & 0xF)), \
('0' + ((n)>>20 & 0xF)), \
('0' + ((n)>>16 & 0xF)), \
('0' + ((n)>>12 & 0xF)), \
('0' + ((n)>>8 & 0xF)), \
('0' + ((n)>>4 & 0xF)), \
('0' + ((n) & 0xF))
/* Construct a string literal encoding the version number components. */
#ifdef COMPILER_VERSION_MAJOR
char const info_version[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
COMPILER_VERSION_MAJOR,
# ifdef COMPILER_VERSION_MINOR
'.', COMPILER_VERSION_MINOR,
# ifdef COMPILER_VERSION_PATCH
'.', COMPILER_VERSION_PATCH,
# ifdef COMPILER_VERSION_TWEAK
'.', COMPILER_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct a string literal encoding the internal version number. */
#ifdef COMPILER_VERSION_INTERNAL
char const info_version_internal[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
'i','n','t','e','r','n','a','l','[',
COMPILER_VERSION_INTERNAL,']','\0'};
#endif
/* Construct a string literal encoding the version number components. */
#ifdef SIMULATE_VERSION_MAJOR
char const info_simulate_version[] = {
'I', 'N', 'F', 'O', ':',
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
SIMULATE_VERSION_MAJOR,
# ifdef SIMULATE_VERSION_MINOR
'.', SIMULATE_VERSION_MINOR,
# ifdef SIMULATE_VERSION_PATCH
'.', SIMULATE_VERSION_PATCH,
# ifdef SIMULATE_VERSION_TWEAK
'.', SIMULATE_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
#if !defined(__STDC__)
# if (defined(_MSC_VER) && !defined(__clang__)) \
|| (defined(__ibmxl__) || defined(__IBMC__))
# define C_DIALECT "90"
# else
# define C_DIALECT
# endif
#elif __STDC_VERSION__ >= 201000L
# define C_DIALECT "11"
#elif __STDC_VERSION__ >= 199901L
# define C_DIALECT "99"
#else
# define C_DIALECT "90"
#endif
const char* info_language_dialect_default =
"INFO" ":" "dialect_default[" C_DIALECT "]";
/*--------------------------------------------------------------------------*/
#ifdef ID_VOID_MAIN
void main() {}
#else
# if defined(__CLASSIC_C__)
int main(argc, argv) int argc; char *argv[];
# else
int main(int argc, char* argv[])
# endif
{
int require = 0;
require += info_compiler[argc];
require += info_platform[argc];
require += info_arch[argc];
#ifdef COMPILER_VERSION_MAJOR
require += info_version[argc];
#endif
#ifdef COMPILER_VERSION_INTERNAL
require += info_version_internal[argc];
#endif
#ifdef SIMULATE_ID
require += info_simulate[argc];
#endif
#ifdef SIMULATE_VERSION_MAJOR
require += info_simulate_version[argc];
#endif
#if defined(__CRAYXE) || defined(__CRAYXC)
require += info_cray[argc];
#endif
require += info_language_dialect_default[argc];
(void)argv;
return require;
}
#endif
/* This source file must have a .cpp extension so that all C++ compilers
recognize the extension without flags. Borland does not know .cxx for
example. */
#ifndef __cplusplus
# error "A C compiler has been selected for C++."
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__COMO__)
# define COMPILER_ID "Comeau"
/* __COMO_VERSION__ = VRR */
# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
#elif defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# if defined(__GNUC__)
# define SIMULATE_ID "GNU"
# endif
/* __INTEL_COMPILER = VRP */
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# if defined(__INTEL_COMPILER_UPDATE)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
# else
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# endif
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__WATCOMC__)
# define COMPILER_ID "OpenWatcom"
/* __WATCOMC__ = VVRP + 1100 */
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__SUNPRO_CC)
# define COMPILER_ID "SunPro"
# if __SUNPRO_CC >= 0x5100
/* __SUNPRO_CC = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# else
/* __SUNPRO_CC = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# endif
#elif defined(__HP_aCC)
# define COMPILER_ID "HP"
/* __HP_aCC = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
#elif defined(__DECCXX)
# define COMPILER_ID "Compaq"
/* __DECCXX_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__ibmxl__) && defined(__clang__)
# define COMPILER_ID "XLClang"
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
# define COMPILER_ID "XL"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
# define COMPILER_ID "VisualAge"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__PGI)
# define COMPILER_ID "PGI"
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
# if defined(__PGIC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
# endif
#elif defined(_CRAYC)
# define COMPILER_ID "Cray"
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
#elif defined(__TI_COMPILER_VERSION__)
# define COMPILER_ID "TI"
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
# define COMPILER_ID "Fujitsu"
#elif defined(__ghs__)
# define COMPILER_ID "GHS"
/* __GHS_VERSION_NUMBER = VVVVRP */
# ifdef __GHS_VERSION_NUMBER
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
# endif
#elif defined(__SCO_VERSION__)
# define COMPILER_ID "SCO"
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
# define COMPILER_ID "ARMCC"
#if __ARMCC_VERSION >= 1000000
/* __ARMCC_VERSION = VRRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#else
/* __ARMCC_VERSION = VRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#endif
#elif defined(__clang__) && defined(__apple_build_version__)
# define COMPILER_ID "AppleClang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
# define COMPILER_ID "ARMClang"
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000)
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
#elif defined(__clang__)
# define COMPILER_ID "Clang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
#elif defined(__GNUC__) || defined(__GNUG__)
# define COMPILER_ID "GNU"
# if defined(__GNUC__)
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
# else
# define COMPILER_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(_MSC_VER)
# define COMPILER_ID "MSVC"
/* _MSC_VER = VVRR */
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
/* _MSC_FULL_VER = VVRRPPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
/* _MSC_FULL_VER = VVRRPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
# define COMPILER_ID "ADSP"
#if defined(__VISUALDSPVERSION__)
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
#endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
# if defined(__VER__) && defined(__ICCARM__)
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__))
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# endif
/* These compilers are either not known or too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
#elif defined(__hpux) || defined(__hpua)
# define COMPILER_ID "HP"
#else /* unknown compiler */
# define COMPILER_ID ""
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
#ifdef SIMULATE_ID
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
#endif
#ifdef __QNXNTO__
char const* qnxnto = "INFO" ":" "qnxnto[]";
#endif
#if defined(__CRAYXE) || defined(__CRAYXC)
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
#endif
#define STRINGIFY_HELPER(X) #X
#define STRINGIFY(X) STRINGIFY_HELPER(X)
/* Identify known platforms by name. */
#if defined(__linux) || defined(__linux__) || defined(linux)
# define PLATFORM_ID "Linux"
#elif defined(__CYGWIN__)
# define PLATFORM_ID "Cygwin"
#elif defined(__MINGW32__)
# define PLATFORM_ID "MinGW"
#elif defined(__APPLE__)
# define PLATFORM_ID "Darwin"
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
# define PLATFORM_ID "Windows"
#elif defined(__FreeBSD__) || defined(__FreeBSD)
# define PLATFORM_ID "FreeBSD"
#elif defined(__NetBSD__) || defined(__NetBSD)
# define PLATFORM_ID "NetBSD"
#elif defined(__OpenBSD__) || defined(__OPENBSD)
# define PLATFORM_ID "OpenBSD"
#elif defined(__sun) || defined(sun)
# define PLATFORM_ID "SunOS"
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
# define PLATFORM_ID "AIX"
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
#elif defined(__HAIKU__)
# define PLATFORM_ID "Haiku"
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
#elif defined(__QNX__) || defined(__QNXNTO__)
# define PLATFORM_ID "QNX"
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
# define PLATFORM_ID "Tru64"
#elif defined(__riscos) || defined(__riscos__)
# define PLATFORM_ID "RISCos"
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
# define PLATFORM_ID "SINIX"
#elif defined(__UNIX_SV__)
# define PLATFORM_ID "UNIX_SV"
#elif defined(__bsdos__)
# define PLATFORM_ID "BSDOS"
#elif defined(_MPRAS) || defined(MPRAS)
# define PLATFORM_ID "MP-RAS"
#elif defined(__osf) || defined(__osf__)
# define PLATFORM_ID "OSF1"
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
# define PLATFORM_ID "SCO_SV"
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
# define PLATFORM_ID "ULTRIX"
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
# define PLATFORM_ID "Xenix"
#elif defined(__WATCOMC__)
# if defined(__LINUX__)
# define PLATFORM_ID "Linux"
# elif defined(__DOS__)
# define PLATFORM_ID "DOS"
# elif defined(__OS2__)
# define PLATFORM_ID "OS2"
# elif defined(__WINDOWS__)
# define PLATFORM_ID "Windows3x"
# else /* unknown platform */
# define PLATFORM_ID
# endif
#elif defined(__INTEGRITY)
# if defined(INT_178B)
# define PLATFORM_ID "Integrity178"
# else /* regular Integrity */
# define PLATFORM_ID "Integrity"
# endif
#else /* unknown platform */
# define PLATFORM_ID
#endif
/* For windows compilers MSVC and Intel we can determine
the architecture of the compiler being used. This is because
the compilers do not have flags that can change the architecture,
but rather depend on which compiler is being used
*/
#if defined(_WIN32) && defined(_MSC_VER)
# if defined(_M_IA64)
# define ARCHITECTURE_ID "IA64"
# elif defined(_M_X64) || defined(_M_AMD64)
# define ARCHITECTURE_ID "x64"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# elif defined(_M_ARM64)
# define ARCHITECTURE_ID "ARM64"
# elif defined(_M_ARM)
# if _M_ARM == 4
# define ARCHITECTURE_ID "ARMV4I"
# elif _M_ARM == 5
# define ARCHITECTURE_ID "ARMV5I"
# else
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
# endif
# elif defined(_M_MIPS)
# define ARCHITECTURE_ID "MIPS"
# elif defined(_M_SH)
# define ARCHITECTURE_ID "SHx"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__WATCOMC__)
# if defined(_M_I86)
# define ARCHITECTURE_ID "I86"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# if defined(__ICCARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__ICCRX__)
# define ARCHITECTURE_ID "RX"
# elif defined(__ICCRH850__)
# define ARCHITECTURE_ID "RH850"
# elif defined(__ICCRL78__)
# define ARCHITECTURE_ID "RL78"
# elif defined(__ICCRISCV__)
# define ARCHITECTURE_ID "RISCV"
# elif defined(__ICCAVR__)
# define ARCHITECTURE_ID "AVR"
# elif defined(__ICC430__)
# define ARCHITECTURE_ID "MSP430"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__ghs__)
# if defined(__PPC64__)
# define ARCHITECTURE_ID "PPC64"
# elif defined(__ppc__)
# define ARCHITECTURE_ID "PPC"
# elif defined(__ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__x86_64__)
# define ARCHITECTURE_ID "x64"
# elif defined(__i386__)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#else
# define ARCHITECTURE_ID
#endif
/* Convert integer to decimal digit literals. */
#define DEC(n) \
('0' + (((n) / 10000000)%10)), \
('0' + (((n) / 1000000)%10)), \
('0' + (((n) / 100000)%10)), \
('0' + (((n) / 10000)%10)), \
('0' + (((n) / 1000)%10)), \
('0' + (((n) / 100)%10)), \
('0' + (((n) / 10)%10)), \
('0' + ((n) % 10))
/* Convert integer to hex digit literals. */
#define HEX(n) \
('0' + ((n)>>28 & 0xF)), \
('0' + ((n)>>24 & 0xF)), \
('0' + ((n)>>20 & 0xF)), \
('0' + ((n)>>16 & 0xF)), \
('0' + ((n)>>12 & 0xF)), \
('0' + ((n)>>8 & 0xF)), \
('0' + ((n)>>4 & 0xF)), \
('0' + ((n) & 0xF))
/* Construct a string literal encoding the version number components. */
#ifdef COMPILER_VERSION_MAJOR
char const info_version[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
COMPILER_VERSION_MAJOR,
# ifdef COMPILER_VERSION_MINOR
'.', COMPILER_VERSION_MINOR,
# ifdef COMPILER_VERSION_PATCH
'.', COMPILER_VERSION_PATCH,
# ifdef COMPILER_VERSION_TWEAK
'.', COMPILER_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct a string literal encoding the internal version number. */
#ifdef COMPILER_VERSION_INTERNAL
char const info_version_internal[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
'i','n','t','e','r','n','a','l','[',
COMPILER_VERSION_INTERNAL,']','\0'};
#endif
/* Construct a string literal encoding the version number components. */
#ifdef SIMULATE_VERSION_MAJOR
char const info_simulate_version[] = {
'I', 'N', 'F', 'O', ':',
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
SIMULATE_VERSION_MAJOR,
# ifdef SIMULATE_VERSION_MINOR
'.', SIMULATE_VERSION_MINOR,
# ifdef SIMULATE_VERSION_PATCH
'.', SIMULATE_VERSION_PATCH,
# ifdef SIMULATE_VERSION_TWEAK
'.', SIMULATE_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
#if defined(_MSC_VER) && defined(_MSVC_LANG)
#define CXX_STD _MSVC_LANG
#else
#define CXX_STD __cplusplus
#endif
const char* info_language_dialect_default = "INFO" ":" "dialect_default["
#if CXX_STD > 201703L
"20"
#elif CXX_STD >= 201703L
"17"
#elif CXX_STD >= 201402L
"14"
#elif CXX_STD >= 201103L
"11"
#else
"98"
#endif
"]";
/*--------------------------------------------------------------------------*/
int main(int argc, char* argv[])
{
int require = 0;
require += info_compiler[argc];
require += info_platform[argc];
#ifdef COMPILER_VERSION_MAJOR
require += info_version[argc];
#endif
#ifdef COMPILER_VERSION_INTERNAL
require += info_version_internal[argc];
#endif
#ifdef SIMULATE_ID
require += info_simulate[argc];
#endif
#ifdef SIMULATE_VERSION_MAJOR
require += info_simulate_version[argc];
#endif
#if defined(__CRAYXE) || defined(__CRAYXC)
require += info_cray[argc];
#endif
require += info_language_dialect_default[argc];
(void)argv;
return require;
}
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
# Relative path conversion top directories.
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT")
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
# The C and CXX include file regular expressions for this directory.
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
The system is: Linux - 5.0.0-31-generic - x86_64
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
Compiler: /usr/bin/cc
Build flags:
Id flags:
The output was:
0
Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
The C compiler identification is GNU, found in "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/3.15.3/CompilerIdC/a.out"
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
Compiler: /usr/bin/c++
Build flags: -lcrypto;-pthread
Id flags:
The output was:
0
Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
The CXX compiler identification is GNU, found in "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/3.15.3/CompilerIdCXX/a.out"
Determining if the C compiler works passed with the following output:
Change Dir: /home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_e4aa2/fast && /usr/bin/make -f CMakeFiles/cmTC_e4aa2.dir/build.make CMakeFiles/cmTC_e4aa2.dir/build
make[1]: Entering directory '/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_e4aa2.dir/testCCompiler.c.o
/usr/bin/cc -o CMakeFiles/cmTC_e4aa2.dir/testCCompiler.c.o -c "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp/testCCompiler.c"
Linking C executable cmTC_e4aa2
/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e4aa2.dir/link.txt --verbose=1
/usr/bin/cc CMakeFiles/cmTC_e4aa2.dir/testCCompiler.c.o -o cmTC_e4aa2
make[1]: Leaving directory '/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp'
Detecting C compiler ABI info compiled with the following output:
Change Dir: /home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_c4ee8/fast && /usr/bin/make -f CMakeFiles/cmTC_c4ee8.dir/build.make CMakeFiles/cmTC_c4ee8.dir/build
make[1]: Entering directory '/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o
/usr/bin/cc -v -o CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o -c /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCCompilerABI.c
Using built-in specs.
COLLECT_GCC=/usr/bin/cc
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/7/cc1 -quiet -v -imultiarch x86_64-linux-gnu /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o -version -fstack-protector-strong -Wformat -Wformat-security -o /tmp/ccnMAlj1.s
GNU C11 (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu)
compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/x86_64-linux-gnu/7/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
GNU C11 (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu)
compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: fa57db1fe2d756b22d454aa8428fd3bd
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'
as -v --64 -o CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o /tmp/ccnMAlj1.s
GNU assembler version 2.30 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.30
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'
Linking C executable cmTC_c4ee8
/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c4ee8.dir/link.txt --verbose=1
/usr/bin/cc -v CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o -o cmTC_c4ee8
Using built-in specs.
COLLECT_GCC=/usr/bin/cc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c4ee8' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWdh6Yb.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c4ee8 /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c4ee8' '-mtune=generic' '-march=x86-64'
make[1]: Leaving directory '/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp'
Parsed C implicit include dir info from above output: rv=done
found start of include info
found start of implicit include info
add: [/usr/lib/gcc/x86_64-linux-gnu/7/include]
add: [/usr/local/include]
add: [/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed]
add: [/usr/include/x86_64-linux-gnu]
add: [/usr/include]
end of search list found
collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/7/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/7/include]
collapse include dir [/usr/local/include] ==> [/usr/local/include]
collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed] ==> [/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed]
collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu]
collapse include dir [/usr/include] ==> [/usr/include]
implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/7/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include]
Parsed C implicit link information from above output:
link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
ignore line: [Change Dir: /home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp]
ignore line: []
ignore line: [Run Build Command(s):/usr/bin/make cmTC_c4ee8/fast && /usr/bin/make -f CMakeFiles/cmTC_c4ee8.dir/build.make CMakeFiles/cmTC_c4ee8.dir/build]
ignore line: [make[1]: Entering directory '/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp']
ignore line: [Building C object CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o]
ignore line: [/usr/bin/cc -v -o CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o -c /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCCompilerABI.c]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/cc]
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none]
ignore line: [OFFLOAD_TARGET_DEFAULT=1]
ignore line: [Target: x86_64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) ]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64']
ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/7/cc1 -quiet -v -imultiarch x86_64-linux-gnu /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o -version -fstack-protector-strong -Wformat -Wformat-security -o /tmp/ccnMAlj1.s]
ignore line: [GNU C11 (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu)]
ignore line: [ compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP]
ignore line: []
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"]
ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/include"]
ignore line: [#include "..." search starts here:]
ignore line: [#include <...> search starts here:]
ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/7/include]
ignore line: [ /usr/local/include]
ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed]
ignore line: [ /usr/include/x86_64-linux-gnu]
ignore line: [ /usr/include]
ignore line: [End of search list.]
ignore line: [GNU C11 (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu)]
ignore line: [ compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP]
ignore line: []
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
ignore line: [Compiler executable checksum: fa57db1fe2d756b22d454aa8428fd3bd]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64']
ignore line: [ as -v --64 -o CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o /tmp/ccnMAlj1.s]
ignore line: [GNU assembler version 2.30 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.30]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64']
ignore line: [Linking C executable cmTC_c4ee8]
ignore line: [/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c4ee8.dir/link.txt --verbose=1]
ignore line: [/usr/bin/cc -v CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o -o cmTC_c4ee8 ]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/cc]
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper]
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none]
ignore line: [OFFLOAD_TARGET_DEFAULT=1]
ignore line: [Target: x86_64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) ]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c4ee8' '-mtune=generic' '-march=x86-64']
link line: [ /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWdh6Yb.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c4ee8 /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o]
arg [/usr/lib/gcc/x86_64-linux-gnu/7/collect2] ==> ignore
arg [-plugin] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so] ==> ignore
arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper] ==> ignore
arg [-plugin-opt=-fresolution=/tmp/ccWdh6Yb.res] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [-plugin-opt=-pass-through=-lc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [--sysroot=/] ==> ignore
arg [--build-id] ==> ignore
arg [--eh-frame-hdr] ==> ignore
arg [-m] ==> ignore
arg [elf_x86_64] ==> ignore
arg [--hash-style=gnu] ==> ignore
arg [--as-needed] ==> ignore
arg [-dynamic-linker] ==> ignore
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
arg [-pie] ==> ignore
arg [-znow] ==> ignore
arg [-zrelro] ==> ignore
arg [-o] ==> ignore
arg [cmTC_c4ee8] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o] ==> ignore
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib]
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
arg [-L/lib/../lib] ==> dir [/lib/../lib]
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../..]
arg [CMakeFiles/cmTC_c4ee8.dir/CMakeCCompilerABI.c.o] ==> ignore
arg [-lgcc] ==> lib [gcc]
arg [--push-state] ==> ignore
arg [--as-needed] ==> ignore
arg [-lgcc_s] ==> lib [gcc_s]
arg [--pop-state] ==> ignore
arg [-lc] ==> lib [c]
arg [-lgcc] ==> lib [gcc]
arg [--push-state] ==> ignore
arg [--as-needed] ==> ignore
arg [-lgcc_s] ==> lib [gcc_s]
arg [--pop-state] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o] ==> ignore
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7] ==> [/usr/lib/gcc/x86_64-linux-gnu/7]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] ==> [/usr/lib]
collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
collapse library dir [/lib/../lib] ==> [/lib]
collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../..] ==> [/usr/lib]
implicit libs: [gcc;gcc_s;c;gcc;gcc_s]
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
implicit fwks: []
Determining if the CXX compiler works passed with the following output:
Change Dir: /home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_ba1f6/fast && /usr/bin/make -f CMakeFiles/cmTC_ba1f6.dir/build.make CMakeFiles/cmTC_ba1f6.dir/build
make[1]: Entering directory '/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_ba1f6.dir/testCXXCompiler.cxx.o
/usr/bin/c++ -lcrypto -pthread -o CMakeFiles/cmTC_ba1f6.dir/testCXXCompiler.cxx.o -c "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp/testCXXCompiler.cxx"
Linking CXX executable cmTC_ba1f6
/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ba1f6.dir/link.txt --verbose=1
/usr/bin/c++ -lcrypto -pthread CMakeFiles/cmTC_ba1f6.dir/testCXXCompiler.cxx.o -o cmTC_ba1f6
make[1]: Leaving directory '/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp'
Detecting CXX compiler ABI info compiled with the following output:
Change Dir: /home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_6d5fb/fast && /usr/bin/make -f CMakeFiles/cmTC_6d5fb.dir/build.make CMakeFiles/cmTC_6d5fb.dir/build
make[1]: Entering directory '/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o
/usr/bin/c++ -lcrypto -pthread -v -o CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o -c /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCXXCompilerABI.cpp
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
COLLECT_GCC_OPTIONS='-pthread' '-v' '-o' 'CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/7/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o -version -fstack-protector-strong -Wformat -Wformat-security -o /tmp/ccuTzvRv.s
GNU C++14 (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu)
compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/7"
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/7
/usr/include/x86_64-linux-gnu/c++/7
/usr/include/c++/7/backward
/usr/lib/gcc/x86_64-linux-gnu/7/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
GNU C++14 (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu)
compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 38816e3807cdcb3c59571e251bd6c090
COLLECT_GCC_OPTIONS='-pthread' '-v' '-o' 'CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
as -v --64 -o CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccuTzvRv.s
GNU assembler version 2.30 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.30
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-pthread' '-v' '-o' 'CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
Linking CXX executable cmTC_6d5fb
/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6d5fb.dir/link.txt --verbose=1
/usr/bin/c++ -lcrypto -pthread -v CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_6d5fb
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-pthread' '-v' '-o' 'cmTC_6d5fb' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccoxrhDE.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_6d5fb /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -lcrypto CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o
COLLECT_GCC_OPTIONS='-pthread' '-v' '-o' 'cmTC_6d5fb' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
make[1]: Leaving directory '/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp'
Parsed CXX implicit include dir info from above output: rv=done
found start of include info
found start of implicit include info
add: [/usr/include/c++/7]
add: [/usr/include/x86_64-linux-gnu/c++/7]
add: [/usr/include/c++/7/backward]
add: [/usr/lib/gcc/x86_64-linux-gnu/7/include]
add: [/usr/local/include]
add: [/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed]
add: [/usr/include/x86_64-linux-gnu]
add: [/usr/include]
end of search list found
collapse include dir [/usr/include/c++/7] ==> [/usr/include/c++/7]
collapse include dir [/usr/include/x86_64-linux-gnu/c++/7] ==> [/usr/include/x86_64-linux-gnu/c++/7]
collapse include dir [/usr/include/c++/7/backward] ==> [/usr/include/c++/7/backward]
collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/7/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/7/include]
collapse include dir [/usr/local/include] ==> [/usr/local/include]
collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed] ==> [/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed]
collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu]
collapse include dir [/usr/include] ==> [/usr/include]
implicit include dirs: [/usr/include/c++/7;/usr/include/x86_64-linux-gnu/c++/7;/usr/include/c++/7/backward;/usr/lib/gcc/x86_64-linux-gnu/7/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include]
Parsed CXX implicit link information from above output:
link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
ignore line: [Change Dir: /home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp]
ignore line: []
ignore line: [Run Build Command(s):/usr/bin/make cmTC_6d5fb/fast && /usr/bin/make -f CMakeFiles/cmTC_6d5fb.dir/build.make CMakeFiles/cmTC_6d5fb.dir/build]
ignore line: [make[1]: Entering directory '/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/CMakeTmp']
ignore line: [Building CXX object CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o]
ignore line: [/usr/bin/c++ -lcrypto -pthread -v -o CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o -c /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCXXCompilerABI.cpp]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/c++]
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none]
ignore line: [OFFLOAD_TARGET_DEFAULT=1]
ignore line: [Target: x86_64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) ]
ignore line: [COLLECT_GCC_OPTIONS='-pthread' '-v' '-o' 'CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/7/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o -version -fstack-protector-strong -Wformat -Wformat-security -o /tmp/ccuTzvRv.s]
ignore line: [GNU C++14 (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu)]
ignore line: [ compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP]
ignore line: []
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/7"]
ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"]
ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/include"]
ignore line: [#include "..." search starts here:]
ignore line: [#include <...> search starts here:]
ignore line: [ /usr/include/c++/7]
ignore line: [ /usr/include/x86_64-linux-gnu/c++/7]
ignore line: [ /usr/include/c++/7/backward]
ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/7/include]
ignore line: [ /usr/local/include]
ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed]
ignore line: [ /usr/include/x86_64-linux-gnu]
ignore line: [ /usr/include]
ignore line: [End of search list.]
ignore line: [GNU C++14 (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu)]
ignore line: [ compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP]
ignore line: []
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
ignore line: [Compiler executable checksum: 38816e3807cdcb3c59571e251bd6c090]
ignore line: [COLLECT_GCC_OPTIONS='-pthread' '-v' '-o' 'CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
ignore line: [ as -v --64 -o CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccuTzvRv.s]
ignore line: [GNU assembler version 2.30 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.30]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-pthread' '-v' '-o' 'CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
ignore line: [Linking CXX executable cmTC_6d5fb]
ignore line: [/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6d5fb.dir/link.txt --verbose=1]
ignore line: [/usr/bin/c++ -lcrypto -pthread -v CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_6d5fb ]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/c++]
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper]
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none]
ignore line: [OFFLOAD_TARGET_DEFAULT=1]
ignore line: [Target: x86_64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) ]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-pthread' '-v' '-o' 'cmTC_6d5fb' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
link line: [ /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccoxrhDE.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_6d5fb /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -lcrypto CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o]
arg [/usr/lib/gcc/x86_64-linux-gnu/7/collect2] ==> ignore
arg [-plugin] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so] ==> ignore
arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper] ==> ignore
arg [-plugin-opt=-fresolution=/tmp/ccoxrhDE.res] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lpthread] ==> ignore
arg [-plugin-opt=-pass-through=-lc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [--sysroot=/] ==> ignore
arg [--build-id] ==> ignore
arg [--eh-frame-hdr] ==> ignore
arg [-m] ==> ignore
arg [elf_x86_64] ==> ignore
arg [--hash-style=gnu] ==> ignore
arg [--as-needed] ==> ignore
arg [-dynamic-linker] ==> ignore
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
arg [-pie] ==> ignore
arg [-znow] ==> ignore
arg [-zrelro] ==> ignore
arg [-o] ==> ignore
arg [cmTC_6d5fb] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o] ==> ignore
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib]
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
arg [-L/lib/../lib] ==> dir [/lib/../lib]
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../..]
arg [-lcrypto] ==> lib [crypto]
arg [CMakeFiles/cmTC_6d5fb.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
arg [-lstdc++] ==> lib [stdc++]
arg [-lm] ==> lib [m]
arg [-lgcc_s] ==> lib [gcc_s]
arg [-lgcc] ==> lib [gcc]
arg [-lpthread] ==> lib [pthread]
arg [-lc] ==> lib [c]
arg [-lgcc_s] ==> lib [gcc_s]
arg [-lgcc] ==> lib [gcc]
arg [/usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o] ==> ignore
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7] ==> [/usr/lib/gcc/x86_64-linux-gnu/7]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] ==> [/usr/lib]
collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
collapse library dir [/lib/../lib] ==> [/lib]
collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../..] ==> [/usr/lib]
implicit libs: [crypto;stdc++;m;gcc_s;gcc;pthread;c;gcc_s;gcc]
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
implicit fwks: []
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
"CXX"
)
# The set of files for implicit dependencies of each language:
set(CMAKE_DEPENDS_CHECK_CXX
"/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/KVClient.cpp" "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/KVClient.dir/KVClient.cpp.o"
)
set(CMAKE_CXX_COMPILER_ID "GNU")
# The include file search paths:
set(CMAKE_CXX_TARGET_INCLUDE_PATH
)
# Targets to which this target links.
set(CMAKE_TARGET_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake
# The command to remove a file.
RM = /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT"
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug"
# Include any dependencies generated for this target.
include CMakeFiles/KVClient.dir/depend.make
# Include the progress variables for this target.
include CMakeFiles/KVClient.dir/progress.make
# Include the compile flags for this target's objects.
include CMakeFiles/KVClient.dir/flags.make
CMakeFiles/KVClient.dir/KVClient.cpp.o: CMakeFiles/KVClient.dir/flags.make
CMakeFiles/KVClient.dir/KVClient.cpp.o: ../KVClient.cpp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/KVClient.dir/KVClient.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/KVClient.dir/KVClient.cpp.o -c "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/KVClient.cpp"
CMakeFiles/KVClient.dir/KVClient.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/KVClient.dir/KVClient.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/KVClient.cpp" > CMakeFiles/KVClient.dir/KVClient.cpp.i
CMakeFiles/KVClient.dir/KVClient.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/KVClient.dir/KVClient.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/KVClient.cpp" -o CMakeFiles/KVClient.dir/KVClient.cpp.s
# Object files for target KVClient
KVClient_OBJECTS = \
"CMakeFiles/KVClient.dir/KVClient.cpp.o"
# External object files for target KVClient
KVClient_EXTERNAL_OBJECTS =
KVClient: CMakeFiles/KVClient.dir/KVClient.cpp.o
KVClient: CMakeFiles/KVClient.dir/build.make
KVClient: CMakeFiles/KVClient.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable KVClient"
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/KVClient.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
CMakeFiles/KVClient.dir/build: KVClient
.PHONY : CMakeFiles/KVClient.dir/build
CMakeFiles/KVClient.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/KVClient.dir/cmake_clean.cmake
.PHONY : CMakeFiles/KVClient.dir/clean
CMakeFiles/KVClient.dir/depend:
cd "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT" "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT" "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug" "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug" "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/KVClient.dir/DependInfo.cmake" --color=$(COLOR)
.PHONY : CMakeFiles/KVClient.dir/depend
file(REMOVE_RECURSE
"CMakeFiles/KVClient.dir/KVClient.cpp.o"
"KVClient"
"KVClient.pdb"
)
# Per-language clean rules from dependency scanning.
foreach(lang CXX)
include(CMakeFiles/KVClient.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()
# Empty dependencies file for KVClient.
# This may be replaced when dependencies are built.
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
# compile CXX with /usr/bin/c++
CXX_FLAGS = -lcrypto -pthread -g
CXX_DEFINES =
CXX_INCLUDES =
/usr/bin/c++ -lcrypto -pthread -g CMakeFiles/KVClient.dir/KVClient.cpp.o -o KVClient -lcrypto
CMAKE_PROGRESS_1 = 1
CMAKE_PROGRESS_2 = 2
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
"CXX"
)
# The set of files for implicit dependencies of each language:
set(CMAKE_DEPENDS_CHECK_CXX
"/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/KVServer.cpp" "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/KVServer.dir/KVServer.cpp.o"
)
set(CMAKE_CXX_COMPILER_ID "GNU")
# The include file search paths:
set(CMAKE_CXX_TARGET_INCLUDE_PATH
)
# Targets to which this target links.
set(CMAKE_TARGET_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake
# The command to remove a file.
RM = /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT"
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug"
# Include any dependencies generated for this target.
include CMakeFiles/KVServer.dir/depend.make
# Include the progress variables for this target.
include CMakeFiles/KVServer.dir/progress.make
# Include the compile flags for this target's objects.
include CMakeFiles/KVServer.dir/flags.make
CMakeFiles/KVServer.dir/KVServer.cpp.o: CMakeFiles/KVServer.dir/flags.make
CMakeFiles/KVServer.dir/KVServer.cpp.o: ../KVServer.cpp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/KVServer.dir/KVServer.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/KVServer.dir/KVServer.cpp.o -c "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/KVServer.cpp"
CMakeFiles/KVServer.dir/KVServer.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/KVServer.dir/KVServer.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/KVServer.cpp" > CMakeFiles/KVServer.dir/KVServer.cpp.i
CMakeFiles/KVServer.dir/KVServer.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/KVServer.dir/KVServer.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/KVServer.cpp" -o CMakeFiles/KVServer.dir/KVServer.cpp.s
# Object files for target KVServer
KVServer_OBJECTS = \
"CMakeFiles/KVServer.dir/KVServer.cpp.o"
# External object files for target KVServer
KVServer_EXTERNAL_OBJECTS =
KVServer: CMakeFiles/KVServer.dir/KVServer.cpp.o
KVServer: CMakeFiles/KVServer.dir/build.make
KVServer: CMakeFiles/KVServer.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable KVServer"
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/KVServer.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
CMakeFiles/KVServer.dir/build: KVServer
.PHONY : CMakeFiles/KVServer.dir/build
CMakeFiles/KVServer.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/KVServer.dir/cmake_clean.cmake
.PHONY : CMakeFiles/KVServer.dir/clean
CMakeFiles/KVServer.dir/depend:
cd "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT" "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT" "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug" "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug" "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/KVServer.dir/DependInfo.cmake" --color=$(COLOR)
.PHONY : CMakeFiles/KVServer.dir/depend
file(REMOVE_RECURSE
"CMakeFiles/KVServer.dir/KVServer.cpp.o"
"KVServer"
"KVServer.pdb"
)
# Per-language clean rules from dependency scanning.
foreach(lang CXX)
include(CMakeFiles/KVServer.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()
# Empty dependencies file for KVServer.
# This may be replaced when dependencies are built.
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
# compile CXX with /usr/bin/c++
CXX_FLAGS = -lcrypto -pthread -g
CXX_DEFINES =
CXX_INCLUDES =
/usr/bin/c++ -lcrypto -pthread -g CMakeFiles/KVServer.dir/KVServer.cpp.o -o KVServer -lcrypto
CMAKE_PROGRESS_1 = 3
CMAKE_PROGRESS_2 = 4
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
# The generator used is:
set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
# The top level Makefile was generated from the following files:
set(CMAKE_MAKEFILE_DEPENDS
"CMakeCache.txt"
"../CMakeLists.txt"
"CMakeFiles/3.15.3/CMakeCCompiler.cmake"
"CMakeFiles/3.15.3/CMakeCXXCompiler.cmake"
"CMakeFiles/3.15.3/CMakeSystem.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCCompiler.cmake.in"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCCompilerABI.c"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCInformation.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCXXCompiler.cmake.in"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCXXCompilerABI.cpp"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCXXInformation.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCommonLanguageInclude.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeCompilerIdDetection.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeDetermineCCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeDetermineCXXCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeDetermineCompileFeatures.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeDetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeDetermineCompilerABI.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeDetermineCompilerId.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeDetermineSystem.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeFindBinUtils.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeFindCodeBlocks.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeGenericSystem.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeInitializeConfigs.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeLanguageInformation.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeParseImplicitIncludeInfo.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeParseImplicitLinkInfo.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeSystem.cmake.in"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeSystemSpecificInformation.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeSystemSpecificInitialize.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeTestCCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeTestCXXCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeTestCompilerCommon.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/CMakeUnixFindMake.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/ADSP-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/Borland-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/Clang-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/Cray-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/GHS-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/GNU-C.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/GNU-CXX.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/GNU-FindBinUtils.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/GNU.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/HP-C-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/IAR-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/Intel-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/MSVC-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/PGI-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/PathScale-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/SCO-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/TI-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/Watcom-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/XL-C-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Internal/CMakeCheckCompilerFlag.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Internal/FeatureTesting.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Platform/Linux-Determine-CXX.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Platform/Linux-GNU-C.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Platform/Linux-GNU-CXX.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Platform/Linux-GNU.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Platform/Linux.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/Platform/UnixPaths.cmake"
"/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/share/cmake-3.15/Modules/ProcessorCount.cmake"
)
# The corresponding makefile is:
set(CMAKE_MAKEFILE_OUTPUTS
"Makefile"
"CMakeFiles/cmake.check_cache"
)
# Byproducts of CMake generate step:
set(CMAKE_MAKEFILE_PRODUCTS
"CMakeFiles/3.15.3/CMakeSystem.cmake"
"CMakeFiles/3.15.3/CMakeCCompiler.cmake"
"CMakeFiles/3.15.3/CMakeCXXCompiler.cmake"
"CMakeFiles/3.15.3/CMakeCCompiler.cmake"
"CMakeFiles/3.15.3/CMakeCXXCompiler.cmake"
"CMakeFiles/CMakeDirectoryInformation.cmake"
)
# Dependency information for all targets:
set(CMAKE_DEPEND_INFO_FILES
"CMakeFiles/KVServer.dir/DependInfo.cmake"
"CMakeFiles/KVClient.dir/DependInfo.cmake"
)
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake
# The command to remove a file.
RM = /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT"
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug"
#=============================================================================
# Directory level rules for the build root directory
# The main recursive "all" target.
all: CMakeFiles/KVServer.dir/all
all: CMakeFiles/KVClient.dir/all
.PHONY : all
# The main recursive "clean" target.
clean: CMakeFiles/KVServer.dir/clean
clean: CMakeFiles/KVClient.dir/clean
.PHONY : clean
# The main recursive "preinstall" target.
preinstall:
.PHONY : preinstall
#=============================================================================
# Target rules for target CMakeFiles/KVServer.dir
# All Build rule for target.
CMakeFiles/KVServer.dir/all:
$(MAKE) -f CMakeFiles/KVServer.dir/build.make CMakeFiles/KVServer.dir/depend
$(MAKE) -f CMakeFiles/KVServer.dir/build.make CMakeFiles/KVServer.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles" --progress-num=3,4 "Built target KVServer"
.PHONY : CMakeFiles/KVServer.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/KVServer.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles" 2
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/KVServer.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles" 0
.PHONY : CMakeFiles/KVServer.dir/rule
# Convenience name for target.
KVServer: CMakeFiles/KVServer.dir/rule
.PHONY : KVServer
# clean rule for target.
CMakeFiles/KVServer.dir/clean:
$(MAKE) -f CMakeFiles/KVServer.dir/build.make CMakeFiles/KVServer.dir/clean
.PHONY : CMakeFiles/KVServer.dir/clean
#=============================================================================
# Target rules for target CMakeFiles/KVClient.dir
# All Build rule for target.
CMakeFiles/KVClient.dir/all:
$(MAKE) -f CMakeFiles/KVClient.dir/build.make CMakeFiles/KVClient.dir/depend
$(MAKE) -f CMakeFiles/KVClient.dir/build.make CMakeFiles/KVClient.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles" --progress-num=1,2 "Built target KVClient"
.PHONY : CMakeFiles/KVClient.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/KVClient.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles" 2
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/KVClient.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles" 0
.PHONY : CMakeFiles/KVClient.dir/rule
# Convenience name for target.
KVClient: CMakeFiles/KVClient.dir/rule
.PHONY : KVClient
# clean rule for target.
CMakeFiles/KVClient.dir/clean:
$(MAKE) -f CMakeFiles/KVClient.dir/build.make CMakeFiles/KVClient.dir/clean
.PHONY : CMakeFiles/KVClient.dir/clean
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/rebuild_cache.dir
/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/edit_cache.dir
/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/KVServer.dir
/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/KVClient.dir
ToolSet: 1.0 (local)Options:
Options:
\ No newline at end of file
/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT"
-- The C compiler identification is GNU 7.4.0
-- The CXX compiler identification is GNU 7.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug
# This file is generated by cmake for dependency checking of the CMakeCache.txt file
<?xml version="1.0" encoding="UTF-8"?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6"/>
<Project>
<Option title="KVServer"/>
<Option makefile_is_custom="1"/>
<Option compiler="gcc"/>
<Option virtualFolders="CMake Files\;"/>
<Build>
<Target title="all">
<Option working_dir="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug"/>
<Option type="4"/>
<MakeCommands>
<Build command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 all"/>
<CompileFile command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="rebuild_cache">
<Option working_dir="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug"/>
<Option type="4"/>
<MakeCommands>
<Build command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 rebuild_cache"/>
<CompileFile command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="edit_cache">
<Option working_dir="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug"/>
<Option type="4"/>
<MakeCommands>
<Build command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 edit_cache"/>
<CompileFile command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="KVServer">
<Option output="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/KVServer" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug"/>
<Option object_output="./"/>
<Option type="1"/>
<Option compiler="gcc"/>
<Compiler>
<Add directory="/usr/include/c++/7"/>
<Add directory="/usr/include/x86_64-linux-gnu/c++/7"/>
<Add directory="/usr/include/c++/7/backward"/>
<Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/>
<Add directory="/usr/local/include"/>
<Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/>
<Add directory="/usr/include/x86_64-linux-gnu"/>
<Add directory="/usr/include"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 KVServer"/>
<CompileFile command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="KVServer/fast">
<Option output="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/KVServer" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug"/>
<Option object_output="./"/>
<Option type="1"/>
<Option compiler="gcc"/>
<Compiler>
<Add directory="/usr/include/c++/7"/>
<Add directory="/usr/include/x86_64-linux-gnu/c++/7"/>
<Add directory="/usr/include/c++/7/backward"/>
<Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/>
<Add directory="/usr/local/include"/>
<Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/>
<Add directory="/usr/include/x86_64-linux-gnu"/>
<Add directory="/usr/include"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 KVServer/fast"/>
<CompileFile command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="KVClient">
<Option output="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/KVClient" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug"/>
<Option object_output="./"/>
<Option type="1"/>
<Option compiler="gcc"/>
<Compiler>
<Add directory="/usr/include/c++/7"/>
<Add directory="/usr/include/x86_64-linux-gnu/c++/7"/>
<Add directory="/usr/include/c++/7/backward"/>
<Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/>
<Add directory="/usr/local/include"/>
<Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/>
<Add directory="/usr/include/x86_64-linux-gnu"/>
<Add directory="/usr/include"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 KVClient"/>
<CompileFile command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="KVClient/fast">
<Option output="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/KVClient" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug"/>
<Option object_output="./"/>
<Option type="1"/>
<Option compiler="gcc"/>
<Compiler>
<Add directory="/usr/include/c++/7"/>
<Add directory="/usr/include/x86_64-linux-gnu/c++/7"/>
<Add directory="/usr/include/c++/7/backward"/>
<Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/>
<Add directory="/usr/local/include"/>
<Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/>
<Add directory="/usr/include/x86_64-linux-gnu"/>
<Add directory="/usr/include"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 KVClient/fast"/>
<CompileFile command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -j4 -f &quot;/home/apaar/Desktop/mtech-1sem/system/final\ project/Chord-DHT/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
</Build>
<Unit filename="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/KVClient.cpp">
<Option target="KVClient"/>
</Unit>
<Unit filename="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/KVServer.cpp">
<Option target="KVServer"/>
</Unit>
<Unit filename="/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/CMakeLists.txt">
<Option virtualFolder="CMake Files\"/>
</Unit>
</Project>
</CodeBlocks_project_file>
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake
# The command to remove a file.
RM = /home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT"
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug"
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
/home/apaar/Downloads/clion-2019.2.5/bin/cmake/linux/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# The main all target
all: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles" "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles/progress.marks"
$(MAKE) -f CMakeFiles/Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/CMakeFiles" 0
.PHONY : all
# The main clean target
clean:
$(MAKE) -f CMakeFiles/Makefile2 clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
$(MAKE) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
$(MAKE) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall/fast
# clear depends
depend:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
#=============================================================================
# Target rules for targets named KVServer
# Build rule for target.
KVServer: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 KVServer
.PHONY : KVServer
# fast build rule for target.
KVServer/fast:
$(MAKE) -f CMakeFiles/KVServer.dir/build.make CMakeFiles/KVServer.dir/build
.PHONY : KVServer/fast
#=============================================================================
# Target rules for targets named KVClient
# Build rule for target.
KVClient: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 KVClient
.PHONY : KVClient
# fast build rule for target.
KVClient/fast:
$(MAKE) -f CMakeFiles/KVClient.dir/build.make CMakeFiles/KVClient.dir/build
.PHONY : KVClient/fast
KVClient.o: KVClient.cpp.o
.PHONY : KVClient.o
# target to build an object file
KVClient.cpp.o:
$(MAKE) -f CMakeFiles/KVClient.dir/build.make CMakeFiles/KVClient.dir/KVClient.cpp.o
.PHONY : KVClient.cpp.o
KVClient.i: KVClient.cpp.i
.PHONY : KVClient.i
# target to preprocess a source file
KVClient.cpp.i:
$(MAKE) -f CMakeFiles/KVClient.dir/build.make CMakeFiles/KVClient.dir/KVClient.cpp.i
.PHONY : KVClient.cpp.i
KVClient.s: KVClient.cpp.s
.PHONY : KVClient.s
# target to generate assembly for a file
KVClient.cpp.s:
$(MAKE) -f CMakeFiles/KVClient.dir/build.make CMakeFiles/KVClient.dir/KVClient.cpp.s
.PHONY : KVClient.cpp.s
KVServer.o: KVServer.cpp.o
.PHONY : KVServer.o
# target to build an object file
KVServer.cpp.o:
$(MAKE) -f CMakeFiles/KVServer.dir/build.make CMakeFiles/KVServer.dir/KVServer.cpp.o
.PHONY : KVServer.cpp.o
KVServer.i: KVServer.cpp.i
.PHONY : KVServer.i
# target to preprocess a source file
KVServer.cpp.i:
$(MAKE) -f CMakeFiles/KVServer.dir/build.make CMakeFiles/KVServer.dir/KVServer.cpp.i
.PHONY : KVServer.cpp.i
KVServer.s: KVServer.cpp.s
.PHONY : KVServer.s
# target to generate assembly for a file
KVServer.cpp.s:
$(MAKE) -f CMakeFiles/KVServer.dir/build.make CMakeFiles/KVServer.dir/KVServer.cpp.s
.PHONY : KVServer.cpp.s
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... rebuild_cache"
@echo "... edit_cache"
@echo "... KVServer"
@echo "... KVClient"
@echo "... KVClient.o"
@echo "... KVClient.i"
@echo "... KVClient.s"
@echo "... KVServer.o"
@echo "... KVServer.i"
@echo "... KVServer.s"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
# Install script for directory: /home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "/usr/local")
endif()
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# Set the install configuration name.
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
if(BUILD_TYPE)
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
else()
set(CMAKE_INSTALL_CONFIG_NAME "Debug")
endif()
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
endif()
# Set the component getting installed.
if(NOT CMAKE_INSTALL_COMPONENT)
if(COMPONENT)
message(STATUS "Install component: \"${COMPONENT}\"")
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
else()
set(CMAKE_INSTALL_COMPONENT)
endif()
endif()
# Install shared libraries without execute permission?
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
set(CMAKE_INSTALL_SO_NO_EXE "1")
endif()
# Is this installation the result of a crosscompile?
if(NOT DEFINED CMAKE_CROSSCOMPILING)
set(CMAKE_CROSSCOMPILING "FALSE")
endif()
if(CMAKE_INSTALL_COMPONENT)
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
else()
set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
endif()
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
"${CMAKE_INSTALL_MANIFEST_FILES}")
file(WRITE "/home/apaar/Desktop/mtech-1sem/system/final project/Chord-DHT/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
#pragma once
#ifndef M_h
#define M_h
#define M 16
#define R 10
#endif
#define IP "127.0.0.1"
#define threadPoolSize 5
#define numSetsInCache 20
#define sizeOfSet 20
#include <cmath>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <unistd.h>
#include <vector>
#include <cstdlib>
#include <openssl/sha.h>
#include <sys/types.h>
#include <thread>
#include <ctime>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <cmath>
#include <mutex>
using namespace std;
#define numOfTotalFDs 200
#define debugger_mode 0
#include <mutex>
#include <netdb.h>
#include <arpa/inet.h>
#include <cstring>
#include <bits/stdc++.h>
#include <cstdio>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <sstream>
#include <fstream>
#include<sys/poll.h>
#include<sys/ioctl.h>
#include <iostream>
#include <iomanip>
#include <functional>
#include <string>
#include <unordered_set>
#define True 1
#define False 0
#define delimiter "_||_"
#define max_key_lenght 256 // 256 Bytes
#define max_value_lenght (256*1024) // 256 KB
#define max_buffer_size (256 + 256*1024 + 4*2) // key_length + value_length + delimiter_length
#define number_of_bits 16
#define max_server int(pow(2,number_of_bits))
using std::cout;
using std::cin;
std::vector<std::string> split(const char *str, char c = ' ') {
std::vector<std::string> result;
do {
const char *begin = str;
while (*str != c && *str)
str++;
result.emplace_back(begin, str);
} while (0 != *str++);
return result;
}
struct S {
std::string first_name;
std::string last_name;
};
bool operator==(const S &lhs, const S &rhs) {
return lhs.first_name == rhs.first_name && lhs.last_name == rhs.last_name;
}
// custom hash can be a standalone function object:
struct MyHash {
std::size_t operator()(S const &s) const noexcept {
std::size_t h1 = std::hash<std::string>{}(s.first_name);
std::size_t h2 = std::hash<std::string>{}(s.last_name);
return h1 ^ (h2 << 1); // or use boost::hash_combine (see Discussion)
}
};
namespace std {
template<>
struct hash<S> {
typedef S argument_type;
typedef std::size_t result_type;
result_type operator()(argument_type const &s) const noexcept {
result_type const h1(std::hash<std::string>{}(s.first_name));
result_type const h2(std::hash<std::string>{}(s.last_name));
return h1 ^ (h2 << 1); // or use boost::hash_combine (see Discussion)
}
};
}
// Used by KVStore function such as storeMapToFile and RestoreFromFile to decide which file to refer.
std::string getFilename(const std::string &key) {
std::size_t str_hash = std::hash<std::string>{}(key);
// std::cout << str_hash % numSetsInCache << '\n';
int fileNumber = str_hash % numSetsInCache;
std::string fname = "KVStore/" + std::to_string(fileNumber);
return fname;
}
int getSetId(const std::string &key) {
std::size_t str_hash = std::hash<std::string>{}(key);
// std::cout << str_hash % numSetsInCache << '\n';
int fileNumber = str_hash % numSetsInCache;
return fileNumber;
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment