diff --git a/common/utils.h b/common/utils.h index dfe0c5f8..19fc87fd 100644 --- a/common/utils.h +++ b/common/utils.h @@ -38,7 +38,9 @@ #include #include #include +#ifndef FREEBSD #include +#endif #include @@ -232,9 +234,13 @@ static std::string getArch() static long uptime() { +#ifndef FREEBSD struct sysinfo info; sysinfo(&info); return info.uptime; +#else + return 0; +#endif } @@ -263,7 +269,11 @@ static std::string getMacAddress(int sock) { if (!(ifr.ifr_flags & IFF_LOOPBACK)) // don't count loopback { +#ifndef FREEBSD if (ioctl(sock, SIOCGIFHWADDR, &ifr) == 0) +#else + if (ioctl(sock, SIOCGIFMAC, &ifr) == 0) +#endif { success = 1; break; @@ -290,9 +300,19 @@ static std::string getMacAddress(int sock) return ""; char mac[19]; +#ifndef FREEBSD sprintf(mac, "%02x:%02x:%02x:%02x:%02x:%02x", (unsigned char)ifr.ifr_hwaddr.sa_data[0], (unsigned char)ifr.ifr_hwaddr.sa_data[1], (unsigned char)ifr.ifr_hwaddr.sa_data[2], (unsigned char)ifr.ifr_hwaddr.sa_data[3], (unsigned char)ifr.ifr_hwaddr.sa_data[4], (unsigned char)ifr.ifr_hwaddr.sa_data[5]); +#else + sprintf(mac, "%02x:%02x:%02x:%02x:%02x:%02x", + (unsigned char)ifr.ifr_ifru.ifru_addr.sa_data[0], (unsigned char)ifr.ifr_ifru.ifru_addr.sa_data[1], +(unsigned +char)ifr.ifr_ifru.ifru_addr.sa_data[2], + (unsigned char)ifr.ifr_ifru.ifru_addr.sa_data[3], (unsigned char)ifr.ifr_ifru.ifru_addr.sa_data[4], +(unsigned +char)ifr.ifr_ifru.ifru_addr.sa_data[5]); +#endif return mac; } diff --git a/server/Makefile b/server/Makefile index 4c084484..d95294e1 100644 --- a/server/Makefile +++ b/server/Makefile @@ -17,6 +17,14 @@ STRIP = echo CXXFLAGS += -DIS_BIG_ENDIAN -DNO_CPP11_STRING LDFLAGS = -lvorbis -lvorbisenc -logg -lFLAC -lavahi-client -lavahi-common -latomic +else ifeq ($(TARGET), FREEBSD) + +SHELL = /usr/local/bin/bash +CXX = /usr/local/bin/g++ +CXXFLAGS += -DNO_CPP11_STRING +STRIP = strip +LDFLAGS = -lrt -lvorbis -lvorbisenc -logg -lFLAC -lavahi-client -lavahi-common -static-libgcc -static-libstdc++ + else CXX = /usr/bin/g++ @@ -113,4 +121,4 @@ uninstallsystemd: rm -f /usr/sbin/$(BIN); \ rm -f /lib/systemd/system/$(BIN).service; \ rm -f /etc/default/$(BIN); \ - systemctl daemon-reload; \ \ No newline at end of file + systemctl daemon-reload; \