Makefile 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. UNAME = $(shell uname -s)
  2. I2PD_PATH = i2pd
  3. I2PD_LIB = libi2pd.a
  4. LIBI2PD_PATH = $(I2PD_PATH)/libi2pd
  5. LIBI2PD_CLIENT_PATH = $(I2PD_PATH)/libi2pd_client
  6. CXX ?= g++
  7. FLAGS = -Wall -std=c++11 -Wno-misleading-indentation
  8. ifeq ($(UNAME),Linux)
  9. FLAGS += -g
  10. else ifeq ($(UNAME),Darwin)
  11. FLAGS += -g
  12. else ifeq ($(UNAME),FreeBSD)
  13. FLAGS += -g
  14. else
  15. # Win32
  16. FLAGS += -Os -D_MT -DWIN32 -D_WINDOWS -DWIN32_LEAN_AND_MEAN
  17. BOOST_SUFFIX = -mt
  18. endif
  19. INCFLAGS = -I$(LIBI2PD_PATH) -I$(LIBI2PD_CLIENT_PATH)
  20. CXXFLAGS = $(FLAGS)
  21. LDFLAGS =
  22. LIBS = $(I2PD_PATH)/$(I2PD_LIB) -lboost_system$(BOOST_SUFFIX) -lboost_date_time$(BOOST_SUFFIX) -lboost_filesystem$(BOOST_SUFFIX) -lboost_program_options$(BOOST_SUFFIX) -lssl -lcrypto -lz
  23. ifeq ($(UNAME),Linux)
  24. LIBS += -lrt -lpthread
  25. else ifeq ($(UNAME),Darwin)
  26. LIBS += -lpthread
  27. LDFLAGS += -L/usr/local/opt/openssl@1.1/lib -L/usr/local/lib
  28. INCFLAGS += -I/usr/local/opt/openssl@1.1/include -I/usr/local/include
  29. else ifeq ($(UNAME),FreeBSD)
  30. LIBS += -lthr -lpthread
  31. LDFLAGS += -L/usr/local/lib
  32. INCFLAGS += -I/usr/local/include
  33. else
  34. # Win32
  35. LIBS += -lws2_32 -lwsock32 -lgdi32 -liphlpapi -lstdc++ -lpthread
  36. LDFLAGS += -s -Wl,-Bstatic -static-libgcc -static-libstdc++
  37. endif
  38. all: $(I2PD_LIB) keygen keyinfo famtool routerinfo regaddr regaddr_3ld vain i2pbase64 offlinekeys b33address regaddralias x25519 verifyhost
  39. routerinfo: routerinfo.o $(I2PD_LIB)
  40. $(CXX) -o routerinfo routerinfo.o $(LDFLAGS) $(LIBS)
  41. keygen: keygen.o $(I2PD_LIB)
  42. $(CXX) -o keygen keygen.o $(LDFLAGS) $(LIBS)
  43. keyinfo: keyinfo.o $(I2PD_LIB)
  44. $(CXX) -o keyinfo keyinfo.o $(LDFLAGS) $(LIBS)
  45. famtool: famtool.o $(I2PD_LIB)
  46. $(CXX) -o famtool famtool.o $(LDFLAGS) $(LIBS)
  47. regaddr: regaddr.o $(I2PD_LIB)
  48. $(CXX) -o regaddr regaddr.o $(LDFLAGS) $(LIBS)
  49. regaddr_3ld: regaddr_3ld.o $(I2PD_LIB)
  50. $(CXX) -o regaddr_3ld regaddr_3ld.o $(LDFLAGS) $(LIBS)
  51. vain: vanitygen.o $(I2PD_LIB)
  52. $(CXX) -o vain vanitygen.o $(LDFLAGS) $(LIBS)
  53. i2pbase64: i2pbase64.o $(I2PD_LIB)
  54. $(CXX) -o i2pbase64 i2pbase64.o $(LDFLAGS) $(LIBS)
  55. offlinekeys: offlinekeys.o $(I2PD_LIB)
  56. $(CXX) -o offlinekeys offlinekeys.o $(LDFLAGS) $(LIBS)
  57. b33address: b33address.o $(I2PD_LIB)
  58. $(CXX) -o b33address b33address.o $(LDFLAGS) $(LIBS)
  59. regaddralias: regaddralias.o $(I2PD_LIB)
  60. $(CXX) -o regaddralias regaddralias.o $(LDFLAGS) $(LIBS)
  61. x25519: x25519.o $(I2PD_LIB)
  62. $(CXX) -o x25519 x25519.o $(LDFLAGS) $(LIBS)
  63. verifyhost: verifyhost.o $(I2PD_LIB)
  64. $(CXX) -o verifyhost verifyhost.o $(LDFLAGS) $(LIBS)
  65. .SUFFIXES:
  66. .SUFFIXES: .c .cc .C .cpp .o
  67. $(I2PD_LIB):
  68. $(MAKE) -C $(I2PD_PATH) mk_obj_dir $(I2PD_LIB)
  69. %.o: %.cpp $(I2PD_LIB)
  70. $(CXX) -o $@ -c $(CXXFLAGS) $(INCFLAGS) $<
  71. count:
  72. wc *.c *.cc *.C *.cpp *.h *.hpp
  73. clean-i2pd:
  74. $(MAKE) -C $(I2PD_PATH) clean
  75. clean-obj:
  76. rm -f $(wildcard *.o)
  77. clean-bin:
  78. rm -f b33address famtool i2pbase64 keygen keyinfo offlinekeys regaddr regaddr_3ld regaddralias routerinfo vain x25519 verifyhost
  79. clean: clean-i2pd clean-obj clean-bin
  80. .PHONY: all
  81. .PHONY: count
  82. .PHONY: clean-i2pd
  83. .PHONY: clean-obj
  84. .PHONY: clean-bin
  85. .PHONY: clean