forked from rebecca/BSX
1
0
Fork 0

Makefile made more generic

Uses pkg-config to source locations of libSDL.
As commented in Makefile, *may* cause issues with builds on Mac, but
there are known Mac-isms to make this work.
Also needs the math library for round() as referenced by video.o
This causes builds to start working on Ubuntu 24.04 with the default
SDL2 libraries installed using apt.
Arch is known to need pkg-config to use SDL libs too, but I'm not
sitting at my arch machine at the moment, so no idea if this is complete
for that platform.
A meta-build system *may* be a good idea?
This commit is contained in:
David Jolley 2024-07-24 12:53:53 +01:00
parent cafbf52f2f
commit e03ceb1871
Signed by: kxtcd950
SSH Key Fingerprint: SHA256:xYfH6PHpYjry2z5i5m2Wpiugwen6xz4bgqb/D0oF3Is
1 changed files with 10 additions and 4 deletions

View File

@ -1,18 +1,24 @@
# Variables
CC = gcc
CFLAGS = -Wall -Wextra -std=c11 -I/usr/local/include/SDL2
LDFLAGS = -L/usr/local/lib -lSDL2
# Probably this won't work on a mac using xcode.
# See https://stackoverflow.com/questions/3071321/how-to-use-pkg-config-for-setting-include-paths-in-xcode
# for possible workarounds?
# != is a GNU make extension, so may also not work on *BSD
SDL_CFLAGS!=pkg-config --cflags sdl2
SDL_LFLAGS!=pkg-config --libs sdl2
CFLAGS = -Wall -Wextra -std=c11 $(SDL_CFLAGS)
LDFLAGS = $(SDL_LFLAGS) -lm
SRC_DIR = src
SOURCES = $(wildcard $(SRC_DIR)/*.c)
OBJECTS = $(SOURCES:$(SRC_DIR)/%.c=%.o)
TARGET = bsx
# Default target
all: $(TARGET)
all: $(TARGET) Makefile
# Linking
$(TARGET): $(OBJECTS)
$(CC) $(LDFLAGS) -o $@ $^
$(CC) -o $@ $^ $(LDFLAGS)
# Compiling
%.o: $(SRC_DIR)/%.c