diff --git a/I2PEndian.h b/I2PEndian.h index 661179cb..cc97debc 100644 --- a/I2PEndian.h +++ b/I2PEndian.h @@ -5,11 +5,27 @@ #include #elif __FreeBSD__ #include -#elif __MACH__ // Mac OS X -#include +#elif defined(__APPLE__) && defined(__MACH__) + +#include + +#define htobe16(x) OSSwapHostToBigInt16(x) +#define htole16(x) OSSwapHostToLittleInt16(x) +#define be16toh(x) OSSwapBigToHostInt16(x) +#define le16toh(x) OSSwapLittleToHostInt16(x) + +#define htobe32(x) OSSwapHostToBigInt32(x) +#define htole32(x) OSSwapHostToLittleInt32(x) +#define be32toh(x) OSSwapBigToHostInt32(x) +#define le32toh(x) OSSwapLittleToHostInt32(x) + +#define htobe64(x) OSSwapHostToBigInt64(x) +#define htole64(x) OSSwapHostToLittleInt64(x) +#define be64toh(x) OSSwapBigToHostInt64(x) +#define le64toh(x) OSSwapLittleToHostInt64(x) + #else #include - uint16_t htobe16(uint16_t int16); uint32_t htobe32(uint32_t int32); uint64_t htobe64(uint64_t int64); @@ -20,4 +36,5 @@ uint64_t be64toh(uint64_t big64); #endif -#endif // I2PENDIAN_H__ \ No newline at end of file +#endif // I2PENDIAN_H__ + diff --git a/Makefile.osx b/Makefile.osx new file mode 100644 index 00000000..e294971b --- /dev/null +++ b/Makefile.osx @@ -0,0 +1,43 @@ +#CC = clang++ +CC = g++ +CFLAGS = -g -Wall -std=c++11 -lstdc++ +OBJECTS = obj/CryptoConst.o obj/base64.o obj/NTCPSession.o obj/RouterInfo.o obj/Transports.o \ + obj/RouterContext.o obj/NetDb.o obj/LeaseSet.o obj/Tunnel.o obj/TunnelEndpoint.o \ + obj/TunnelGateway.o obj/TransitTunnel.o obj/I2NPProtocol.o obj/Log.o obj/Garlic.o \ + obj/HTTPServer.o obj/Streaming.o obj/Identity.o obj/SSU.o obj/util.o obj/Reseed.o \ + obj/UPnP.o obj/TunnelPool.o obj/HTTPProxy.o obj/AddressBook.o obj/Daemon.o \ + obj/DaemonLinux.o obj/SSUData.o obj/i2p.o obj/aes.o +INCFLAGS = -DCRYPTOPP_DISABLE_ASM +LDFLAGS = -Wl,-rpath,/usr/local/lib -lcryptopp -lboost_system -lboost_filesystem -lboost_regex -lboost_program_options -lpthread +LIBS = + +#check if AES-NI is supported by CPU +ifneq ($(shell grep -c aes /proc/cpuinfo),0) + CPU_FLAGS = -DAESNI +endif + +# Apple Mac OSX +UNAME_S := $(shell uname -s) +ifeq ($(UNAME_S),Darwin) +endif + +all: obj i2p + +i2p: $(OBJECTS:obj/%=obj/%) + $(CC) -o $@ $^ $(LDFLAGS) $(LIBS) + +.SUFFIXES: +.SUFFIXES: .c .cc .C .cpp .o + +obj/%.o : %.cpp + $(CC) -o $@ $< -c $(CFLAGS) $(INCFLAGS) $(CPU_FLAGS) + +obj: + mkdir -p obj + +clean: + rm -fr obj i2p + +.PHONY: all +.PHONY: clean +