RUST_PROFILE := dev
ifeq ($(RUST_PROFILE),dev)
RUST_PROFILE_DIR := debug
else
RUST_PROFILE_DIR := $(RUST_PROFILE)
endif
CC := gcc
CFLAGS := -Wall -Wextra -Werror -O2 -I.. -l:libtailscalers.a -lpthread -lm
ifeq ($(OS),Windows_NT)
RUST_TARGET := x86_64-pc-windows-gnu
CFLAGS += -lntdll -luserenv -lbcrypt
TARGET_SUFFIX := .exe
endif
ifneq ($(RUST_TARGET),)
RUST_TARGET_PATH := $(RUST_TARGET)/
RUST_TARGET_FLAG := --target $(RUST_TARGET)
endif
CFLAGS += -L../../target/$(RUST_TARGET_PATH)$(RUST_PROFILE_DIR)/
TARGET_NAMES := udp_ping tcp_echo
TARGETS := $(patsubst %,%$(TARGET_SUFFIX),$(TARGET_NAMES))
.PHONY: all clean libtailscalers
all: $(TARGETS)
clean:
rm -f $(TARGETS)
$(TARGETS): %$(TARGET_SUFFIX): libtailscalers $(wildcard %/*.c)
$(CC) -o $@ $(wildcard $*/*.c) $(CFLAGS)
libtailscalers:
cargo build -p ts_ffi --profile $(RUST_PROFILE) $(RUST_TARGET_FLAG)