1- UNAME = $(shell uname -s)
1+ UNAME : = $(shell uname -s)
22
3- I2PD_PATH = i2pd
4- I2PD_LIB = libi2pd.a
3+ I2PD_PATH : = i2pd
4+ I2PD_LIB : = libi2pd.a
55
6- LIBI2PD_PATH = $(I2PD_PATH ) /libi2pd
7- LIBI2PD_CLIENT_PATH = $(I2PD_PATH ) /libi2pd_client
6+ LIBI2PD_PATH : = $(I2PD_PATH ) /libi2pd
7+ LIBI2PD_CLIENT_PATH : = $(I2PD_PATH ) /libi2pd_client
88
99CXX ?= g++
10- CXXFLAGS = -Wall -std=c++17 -O2
11- INCFLAGS = -I$(LIBI2PD_PATH ) -I$(LIBI2PD_CLIENT_PATH )
12- DEFINES = -DOPENSSL_SUPPRESS_DEPRECATED
13-
14- LDFLAGS =
15- LDLIBS = $(I2PD_PATH ) /$(I2PD_LIB ) -lboost_system$(BOOST_SUFFIX ) -lboost_program_options$(BOOST_SUFFIX ) -lssl -lcrypto -lz
10+ CXXFLAGS := -Wall -std=c++17 -O2
11+ INCFLAGS := -I$(LIBI2PD_PATH ) -I$(LIBI2PD_CLIENT_PATH )
12+ DEFINES := -DOPENSSL_SUPPRESS_DEPRECATED
1613
14+ LDFLAGS :=
15+ LDLIBS := $(I2PD_PATH ) /$(I2PD_LIB ) -lboost_program_options$(BOOST_SUFFIX ) -lssl -lcrypto -lz
1716
1817ifeq ($(UNAME ) ,Linux)
19- CXXFLAGS += -g
18+ CXXFLAGS += -g
19+ LDLIBS += -lrt -lpthread
2020else ifeq ($(UNAME),Darwin)
21- CXXFLAGS += -g
22- else ifeq ($(UNAME),FreeBSD)
23- CXXFLAGS += -g
24- else
25- # Win32
26- CXXFLAGS += -Os -fPIC -msse
27- DEFINES += -DWIN32_LEAN_AND_MEAN
28- BOOST_SUFFIX = -mt
29- endif
21+ CXXFLAGS += -g
22+ LDLIBS += -lpthread
3023
31- ifeq ($(UNAME ) ,Linux)
32- LDLIBS += -lrt -lpthread
33- else ifeq ($(UNAME),Darwin)
34- LDLIBS += -lpthread
35- LDFLAGS += -L/usr/local/opt/openssl@1.1/lib -L/usr/local/lib
36- INCFLAGS += -I/usr/local/opt/openssl@1.1/include -I/usr/local/include
24+ ifeq ($(shell test -d /opt/homebrew && echo "true"),true)
25+ BREW_PREFIX := /opt/homebrew
26+ else
27+ BREW_PREFIX := /usr/local
28+ endif
29+
30+ INCFLAGS += -I$(BREW_PREFIX ) /include -I$(BREW_PREFIX ) /opt/openssl@3/include
31+ LDFLAGS += -L$(BREW_PREFIX ) /lib -L$(BREW_PREFIX ) /opt/openssl@3/lib
32+
33+ LDLIBS += -lboost_program_options
3734else ifeq ($(UNAME),FreeBSD)
38- LDLIBS += -lthr -lpthread
39- LDFLAGS += -L/usr/local/lib
40- INCFLAGS += -I/usr/local/include
35+ CXXFLAGS += -g
36+ LDLIBS += -lthr -lpthread
37+ LDFLAGS += -L/usr/local/lib
38+ INCFLAGS += -I/usr/local/include
4139else
42- # Win32
43- LDLIBS += -lwsock32 -lws2_32 -liphlpapi -lpthread
44- LDFLAGS += -s -static
40+ # Windows
41+ CXXFLAGS += -Os -fPIC -msse
42+ DEFINES += -DWIN32_LEAN_AND_MEAN
43+ LDFLAGS += -L/clang64/lib
44+ INCFLAGS += -I/clang64/include
45+ BOOST_SUFFIX =
46+ LDLIBS += -lwsock32 -lws2_32 -liphlpapi -lpthread
4547endif
4648
47-
49+ # -------------------------
50+ # Targets
51+ # -------------------------
4852all : $(I2PD_LIB ) vain keygen keyinfo famtool routerinfo regaddr regaddr_3ld i2pbase64 offlinekeys b33address regaddralias x25519 verifyhost autoconf
49- vain : vain.o $(I2PD_LIB )
53+
54+ vain : vain.o $(I2PD_LIB )
5055 $(CXX ) -o vain $(LDFLAGS ) vain.o $(LDLIBS )
5156
5257autoconf : autoconf.o $(I2PD_LIB )
5358 $(CXX ) -o autoconf $(DEFINES ) $(LDFLAGS ) autoconf.o $(LDLIBS )
5459
5560routerinfo : routerinfo.o $(I2PD_LIB )
56- $(CXX ) -o routerinfo $(LDFLAGS ) routerinfo.o $(LDLIBS ) -latomic
61+ $(CXX ) -o routerinfo $(LDFLAGS ) routerinfo.o $(LDLIBS )
5762
5863keygen : keygen.o $(I2PD_LIB )
5964 $(CXX ) -o keygen $(DEFINES ) $(LDFLAGS ) keygen.o $(LDLIBS )
@@ -62,7 +67,7 @@ keyinfo: keyinfo.o $(I2PD_LIB)
6267 $(CXX ) -o keyinfo $(DEFINES ) $(LDFLAGS ) keyinfo.o $(LDLIBS )
6368
6469famtool : famtool.o $(I2PD_LIB )
65- $(CXX ) -o famtool $(DEFINES ) $(LDFLAGS ) famtool.o $(LDLIBS ) -latomic
70+ $(CXX ) -o famtool $(DEFINES ) $(LDFLAGS ) famtool.o $(LDLIBS )
6671
6772regaddr : regaddr.o $(I2PD_LIB )
6873 $(CXX ) -o regaddr $(DEFINES ) $(LDFLAGS ) regaddr.o $(LDLIBS )
@@ -88,7 +93,9 @@ x25519: x25519.o $(I2PD_LIB)
8893verifyhost : verifyhost.o $(I2PD_LIB )
8994 $(CXX ) -o verifyhost $(DEFINES ) $(LDFLAGS ) verifyhost.o $(LDLIBS )
9095
91- .SUFFIXES :
96+ # -------------------------
97+ # Object compilation
98+ # -------------------------
9299.SUFFIXES : .c .cc .C .cpp .o
93100
94101$(I2PD_LIB ) :
@@ -97,6 +104,9 @@ $(I2PD_LIB):
97104% .o : % .cpp $(I2PD_LIB )
98105 $(CXX ) $(CXXFLAGS ) $(DEFINES ) $(INCFLAGS ) -c -o $@ $<
99106
107+ # -------------------------
108+ # Cleanup
109+ # -------------------------
100110count :
101111 wc * .c * .cc * .C * .cpp * .h * .hpp
102112
@@ -105,19 +115,18 @@ clean-i2pd:
105115
106116clean-obj :
107117 rm -f $(wildcard * .o)
118+
108119stripall :
109120 strip b33address famtool i2pbase64 keygen keyinfo offlinekeys regaddr regaddr_3ld regaddralias routerinfo x25519 verifyhost vain autoconf
121+
110122builddir :
111123 mkdir -p build
112124 mv b33address famtool i2pbase64 keygen keyinfo offlinekeys regaddr regaddr_3ld regaddralias routerinfo x25519 verifyhost vain autoconf build/ || true
125+
113126clean-bin :
114127 rm -f b33address famtool i2pbase64 keygen keyinfo offlinekeys regaddr regaddr_3ld regaddralias routerinfo x25519 verifyhost vain autoconf
115128
116129clean : clean-i2pd clean-obj clean-bin
117130
118- .PHONY : all
119- .PHONY : count
120- .PHONY : clean-i2pd
121- .PHONY : clean-obj
122- .PHONY : clean-bin
123- .PHONY : clean
131+ .PHONY : all count clean-i2pd clean-obj clean-bin clean
132+
0 commit comments