Files
ARMSX1/Makefile
T

66 lines
1.5 KiB
Makefile
Raw Normal View History

2024-04-21 12:37:45 -03:00
.ONESHELL:
2025-11-18 03:59:11 +03:00
CFLAGS := -g -DLOG_USE_COLOR `sdl2-config --cflags --libs`
CFLAGS += -Ofast -Wno-overflow -Wall -pedantic -Wno-address-of-packed-member -flto
PLATFORM := $(shell uname -s)
ifeq ($(PLATFORM),Darwin)
CFLAGS += -mmacosx-version-min=10.9 -Wno-newline-eof
endif
SHARED_EXT := .so
SHARED_LDFLAGS := -shared
SHARED_CFLAGS := $(CFLAGS) -D__DLL_BUILD -fPIC
ifeq ($(PLATFORM),Darwin)
SHARED_EXT := .dylib
SHARED_LDFLAGS := -dynamiclib
endif
VERSION_TAG := $(shell git describe --always --tags --abbrev=0)
COMMIT_HASH := $(shell git rev-parse --short HEAD)
OS_INFO := $(shell uname -rmo)
SOURCES := $(wildcard psx/*.c)
2024-04-21 12:37:45 -03:00
SOURCES += $(wildcard psx/dev/*.c)
2025-11-18 03:59:11 +03:00
SOURCES += $(wildcard psx/dev/cdrom/*.c)
SOURCES += $(wildcard psx/input/*.c)
SOURCES += $(wildcard psx/disc/*.c)
SOURCES += $(wildcard frontend/*.c)
SHARED_SOURCES := $(filter-out frontend/main.c,$(SOURCES))
BIN_DIR := bin
BIN := $(BIN_DIR)/psxe
SHARED_BIN := $(BIN_DIR)/libpsxe$(SHARED_EXT)
.PHONY: all clean shared
all: $(BIN)
$(BIN_DIR):
mkdir -p $(BIN_DIR)
$(BIN): $(SOURCES) | $(BIN_DIR)
gcc $(SOURCES) -o $(BIN) \
-I"." \
-I"psx" \
-DOS_INFO="$(OS_INFO)" \
-DREP_VERSION="$(VERSION_TAG)" \
-DREP_COMMIT_HASH="$(COMMIT_HASH)" \
$(CFLAGS)
shared: $(SHARED_BIN)
$(SHARED_BIN): $(SHARED_SOURCES) | $(BIN_DIR)
gcc $(SHARED_LDFLAGS) $(SHARED_SOURCES) -o $(SHARED_BIN) \
-I"." \
-I"psx" \
-DOS_INFO="$(OS_INFO)" \
-DREP_VERSION="$(VERSION_TAG)" \
-DREP_COMMIT_HASH="$(COMMIT_HASH)" \
$(SHARED_CFLAGS)
clean:
rm -rf "$(BIN_DIR)"