mirror of
https://github.com/PurpleI2P/i2pd-tools.git
synced 2025-10-18 17:50:22 +01:00
132 lines
3.8 KiB
Makefile
Executable file
132 lines
3.8 KiB
Makefile
Executable file
UNAME := $(shell uname -s)
|
|
|
|
I2PD_PATH := i2pd
|
|
I2PD_LIB := libi2pd.a
|
|
|
|
LIBI2PD_PATH := $(I2PD_PATH)/libi2pd
|
|
LIBI2PD_CLIENT_PATH := $(I2PD_PATH)/libi2pd_client
|
|
|
|
CXX ?= g++
|
|
CXXFLAGS := -Wall -std=c++17 -O2
|
|
INCFLAGS := -I$(LIBI2PD_PATH) -I$(LIBI2PD_CLIENT_PATH)
|
|
DEFINES := -DOPENSSL_SUPPRESS_DEPRECATED
|
|
|
|
LDFLAGS :=
|
|
LDLIBS := $(I2PD_PATH)/$(I2PD_LIB) -lboost_program_options$(BOOST_SUFFIX) -lssl -lcrypto -lz
|
|
|
|
ifeq ($(UNAME),Linux)
|
|
CXXFLAGS += -g
|
|
LDLIBS += -lrt -lpthread
|
|
else ifeq ($(UNAME),Darwin)
|
|
CXXFLAGS += -g
|
|
LDLIBS += -lpthread
|
|
|
|
ifeq ($(shell test -d /opt/homebrew && echo "true"),true)
|
|
BREW_PREFIX := /opt/homebrew
|
|
else
|
|
BREW_PREFIX := /usr/local
|
|
endif
|
|
|
|
INCFLAGS += -I$(BREW_PREFIX)/include -I$(BREW_PREFIX)/opt/openssl@3/include
|
|
LDFLAGS += -L$(BREW_PREFIX)/lib -L$(BREW_PREFIX)/opt/openssl@3/lib
|
|
|
|
LDLIBS += -lboost_program_options
|
|
else ifeq ($(UNAME),FreeBSD)
|
|
CXXFLAGS += -g
|
|
LDLIBS += -lthr -lpthread
|
|
LDFLAGS += -L/usr/local/lib
|
|
INCFLAGS += -I/usr/local/include
|
|
else
|
|
# Windows
|
|
CXXFLAGS += -Os -fPIC -msse
|
|
DEFINES += -DWIN32_LEAN_AND_MEAN
|
|
LDFLAGS += -L/clang64/lib
|
|
INCFLAGS += -I/clang64/include
|
|
BOOST_SUFFIX =
|
|
LDLIBS += -lwsock32 -lws2_32 -liphlpapi -lpthread
|
|
endif
|
|
|
|
# -------------------------
|
|
# Targets
|
|
# -------------------------
|
|
all: $(I2PD_LIB) vain keygen keyinfo famtool routerinfo regaddr regaddr_3ld i2pbase64 offlinekeys b33address regaddralias x25519 verifyhost autoconf_i2pd
|
|
|
|
vain: vain.o $(I2PD_LIB)
|
|
$(CXX) -o vain $(LDFLAGS) vain.o $(LDLIBS)
|
|
|
|
autoconf_i2pd: autoconf_i2pd.o $(I2PD_LIB)
|
|
$(CXX) -o autoconf_i2pd $(DEFINES) $(LDFLAGS) autoconf_i2pd.o $(LDLIBS)
|
|
|
|
routerinfo: routerinfo.o $(I2PD_LIB)
|
|
$(CXX) -o routerinfo $(LDFLAGS) routerinfo.o $(LDLIBS)
|
|
|
|
keygen: keygen.o $(I2PD_LIB)
|
|
$(CXX) -o keygen $(DEFINES) $(LDFLAGS) keygen.o $(LDLIBS)
|
|
|
|
keyinfo: keyinfo.o $(I2PD_LIB)
|
|
$(CXX) -o keyinfo $(DEFINES) $(LDFLAGS) keyinfo.o $(LDLIBS)
|
|
|
|
famtool: famtool.o $(I2PD_LIB)
|
|
$(CXX) -o famtool $(DEFINES) $(LDFLAGS) famtool.o $(LDLIBS)
|
|
|
|
regaddr: regaddr.o $(I2PD_LIB)
|
|
$(CXX) -o regaddr $(DEFINES) $(LDFLAGS) regaddr.o $(LDLIBS)
|
|
|
|
regaddr_3ld: regaddr_3ld.o $(I2PD_LIB)
|
|
$(CXX) -o regaddr_3ld $(DEFINES) $(LDFLAGS) regaddr_3ld.o $(LDLIBS)
|
|
|
|
i2pbase64: i2pbase64.o $(I2PD_LIB)
|
|
$(CXX) -o i2pbase64 $(DEFINES) $(LDFLAGS) i2pbase64.o $(LDLIBS)
|
|
|
|
offlinekeys: offlinekeys.o $(I2PD_LIB)
|
|
$(CXX) -o offlinekeys $(DEFINES) $(LDFLAGS) offlinekeys.o $(LDLIBS)
|
|
|
|
b33address: b33address.o $(I2PD_LIB)
|
|
$(CXX) -o b33address $(DEFINES) $(LDFLAGS) b33address.o $(LDLIBS)
|
|
|
|
regaddralias: regaddralias.o $(I2PD_LIB)
|
|
$(CXX) -o regaddralias $(DEFINES) $(LDFLAGS) regaddralias.o $(LDLIBS)
|
|
|
|
x25519: x25519.o $(I2PD_LIB)
|
|
$(CXX) -o x25519 $(DEFINES) $(LDFLAGS) x25519.o $(LDLIBS)
|
|
|
|
verifyhost: verifyhost.o $(I2PD_LIB)
|
|
$(CXX) -o verifyhost $(DEFINES) $(LDFLAGS) verifyhost.o $(LDLIBS)
|
|
|
|
# -------------------------
|
|
# Object compilation
|
|
# -------------------------
|
|
.SUFFIXES: .c .cc .C .cpp .o
|
|
|
|
$(I2PD_LIB):
|
|
$(MAKE) -C $(I2PD_PATH) mk_obj_dir $(I2PD_LIB)
|
|
|
|
%.o: %.cpp $(I2PD_LIB)
|
|
$(CXX) $(CXXFLAGS) $(DEFINES) $(INCFLAGS) -c -o $@ $<
|
|
|
|
# -------------------------
|
|
# Cleanup
|
|
# -------------------------
|
|
count:
|
|
wc *.c *.cc *.C *.cpp *.h *.hpp
|
|
|
|
clean-i2pd:
|
|
$(MAKE) -C $(I2PD_PATH) clean
|
|
|
|
clean-obj:
|
|
rm -f $(wildcard *.o)
|
|
|
|
stripall:
|
|
strip b33address famtool i2pbase64 keygen keyinfo offlinekeys regaddr regaddr_3ld regaddralias routerinfo x25519 verifyhost vain autoconf_i2pd
|
|
|
|
builddir:
|
|
mkdir -p build
|
|
mv b33address famtool i2pbase64 keygen keyinfo offlinekeys regaddr regaddr_3ld regaddralias routerinfo x25519 verifyhost vain autoconf_i2pd build/ || true
|
|
|
|
clean-bin:
|
|
rm -f b33address famtool i2pbase64 keygen keyinfo offlinekeys regaddr regaddr_3ld regaddralias routerinfo x25519 verifyhost vain autoconf_i2pd
|
|
|
|
clean: clean-i2pd clean-obj clean-bin
|
|
|
|
.PHONY: all count clean-i2pd clean-obj clean-bin clean
|
|
|