Better Build Script
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,3 +2,4 @@
|
|||||||
netpong
|
netpong
|
||||||
netpong.dSYM/
|
netpong.dSYM/
|
||||||
netpong.c
|
netpong.c
|
||||||
|
build/*
|
||||||
29
Makefile
29
Makefile
@@ -1,32 +1,33 @@
|
|||||||
# Compiler and flags
|
# Compiler and flags
|
||||||
CC = gcc
|
CC = gcc
|
||||||
CFLAGS = -Wall -g
|
CFLAGS = -Wall -g
|
||||||
|
|
||||||
NETPONG_SRC = main.c $(wildcard src/*.c) $(wildcard src/network/*.c)
|
|
||||||
|
|
||||||
LIBS = -lncurses
|
LIBS = -lncurses
|
||||||
|
|
||||||
|
# Source files
|
||||||
|
NETPONG_SRC = main.c $(wildcard src/*.c) $(wildcard src/network/*.c)
|
||||||
|
|
||||||
# Object files
|
# Object files in build/
|
||||||
NETPONG_OBJ = $(NETPONG_SRC:.c=.o)
|
NETPONG_OBJ = $(patsubst %.c,build/%.o,$(NETPONG_SRC))
|
||||||
|
|
||||||
# Default target
|
# Default target
|
||||||
all: netpong
|
all: netpong
|
||||||
|
|
||||||
# Build NetPong
|
# Link
|
||||||
netpong: $(NETPONG_OBJ)
|
netpong: $(NETPONG_OBJ)
|
||||||
$(CC) $(CFLAGS) -o netpong $(NETPONG_OBJ) $(LIBS)
|
$(CC) $(CFLAGS) -o $@ $(NETPONG_OBJ) $(LIBS)
|
||||||
|
|
||||||
# Generic compile rule
|
# Compile rule (FULL PATH match)
|
||||||
%.o: %.c smsh.h varlib.h
|
build/%.o: %.c
|
||||||
$(CC) $(CFLAGS) -c $<
|
@mkdir -p $(dir $@)
|
||||||
|
$(CC) $(CFLAGS) -c $< -o $@
|
||||||
|
|
||||||
# Clean up
|
# Clean
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o netpong network/*.o
|
rm -rf build netpong
|
||||||
|
|
||||||
|
# Run targets
|
||||||
Server:
|
Server:
|
||||||
./netpong
|
./netpong 2001
|
||||||
|
|
||||||
Client:
|
Client:
|
||||||
./netpong -c 127.0.0.1
|
./netpong 127.0.0.1 2001
|
||||||
Reference in New Issue
Block a user