CC = gcc CFLAGS = -Wall -Wextra -std=c99 -Isrc LIBS = -lm LIBS_STATIC = -static -lm ARCH = $(shell uname -m) TARGET = build/otp-$(ARCH) SOURCES = $(wildcard src/*.c) OBJS = $(SOURCES:.c=.o) # Default build target $(TARGET): $(OBJS) @mkdir -p build $(CC) $(CFLAGS) -o $(TARGET) $(OBJS) $(LIBS) @rm -f $(OBJS) # Static linking target static: $(OBJS) @mkdir -p build $(CC) $(CFLAGS) -o $(TARGET) $(OBJS) $(LIBS_STATIC) @rm -f $(OBJS) %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ clean: rm -f $(OBJS) src/*.o build/otp-* *.pad *.state install: sudo cp $(TARGET) /usr/local/bin/otp uninstall: sudo rm -f /usr/local/bin/otp .PHONY: clean install uninstall static