← Back to davo.co
summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile34
1 files changed, 34 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..939f257
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,34 @@
+# Compiler and flags
+CC := gcc
+CFLAGS := -Wall -Wextra -Wpedantic -O2 -std=c11 -D_POSIX_C_SOURCE=200809L
+TARGET := ud
+SRC := main.c
+OBJ := $(SRC:.c=.o)
+
+# Default rule
+all: $(TARGET)
+
+# Link binary
+$(TARGET): $(OBJ)
+ $(CC) $(CFLAGS) -o $@ $^
+
+# Compile source files to object files
+%.o: %.c
+ $(CC) $(CFLAGS) -c $< -o $@
+
+# Install binary to user's local bin path (~/.local/bin)
+install: $(TARGET)
+ @mkdir -p $(HOME)/.local/bin
+ install -m 755 $(TARGET) $(HOME)/.local/bin/$(TARGET)
+ @echo "Installed $(TARGET) to $(HOME)/.local/bin/"
+
+# Uninstall binary from local bin path
+uninstall:
+ rm -f $(HOME)/.local/bin/$(TARGET)
+ @echo "Removed $(TARGET) from $(HOME)/.local/bin/"
+
+# Clean build directory
+clean:
+ rm -f $(OBJ) $(TARGET)
+
+.PHONY: all clean install uninstall