From 44dbf7813a028cf2c4a229f17636d39280f4e48f Mon Sep 17 00:00:00 2001 From: Colton Staiduhar Date: Sun, 26 Apr 2026 13:53:59 -0400 Subject: [PATCH] Better Build Script --- .gitignore | 1 + Makefile | 29 +++++++++++++++-------------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index 0ec6e3b..62f0fba 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ netpong netpong.dSYM/ netpong.c +build/* \ No newline at end of file diff --git a/Makefile b/Makefile index 2e32025..a965a41 100644 --- a/Makefile +++ b/Makefile @@ -1,32 +1,33 @@ # Compiler and flags CC = gcc CFLAGS = -Wall -g - -NETPONG_SRC = main.c $(wildcard src/*.c) $(wildcard src/network/*.c) - LIBS = -lncurses +# Source files +NETPONG_SRC = main.c $(wildcard src/*.c) $(wildcard src/network/*.c) -# Object files -NETPONG_OBJ = $(NETPONG_SRC:.c=.o) +# Object files in build/ +NETPONG_OBJ = $(patsubst %.c,build/%.o,$(NETPONG_SRC)) # Default target all: netpong -# Build NetPong +# Link netpong: $(NETPONG_OBJ) - $(CC) $(CFLAGS) -o netpong $(NETPONG_OBJ) $(LIBS) + $(CC) $(CFLAGS) -o $@ $(NETPONG_OBJ) $(LIBS) -# Generic compile rule -%.o: %.c smsh.h varlib.h - $(CC) $(CFLAGS) -c $< +# Compile rule (FULL PATH match) +build/%.o: %.c + @mkdir -p $(dir $@) + $(CC) $(CFLAGS) -c $< -o $@ -# Clean up +# Clean clean: - rm -f *.o netpong network/*.o + rm -rf build netpong +# Run targets Server: - ./netpong + ./netpong 2001 Client: - ./netpong -c 127.0.0.1 \ No newline at end of file + ./netpong 127.0.0.1 2001 \ No newline at end of file