Something went wrong. Try again.
A Playstation One (PS1) emulator fully written in Jam
Something went wrong. Try again.
jamstation Makefile
1.4 kB · 47 lines
Makefile
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748JAM := ../jam/output/jam.outBIN := jamstation
# SDL2 locations differ per platform. Override SDL_LIB/SDL_INC on the# command line to point at a non-default install (e.g. /usr/local on# Intel macOS).UNAME_S := $(shell uname -s)ifeq ($(UNAME_S),Darwin) SDL_LIB ?= /opt/homebrew/lib SDL_INC ?= /opt/homebrew/include RUN_ENV := DYLD_LIBRARY_PATH=$(SDL_LIB) # libobjc: sdl.jam's disableAppNap() calls the ObjC runtime to switch off # macOS App Nap (which otherwise stalls the emulator when the window is # unfocused). The call is @isDarwin()-guarded, so -lobjc is Darwin-only. OBJC_LIB := -lobjcelse SDL_LIB ?= /usr/lib SDL_INC ?= /usr/include RUN_ENV := LD_LIBRARY_PATH=$(SDL_LIB) OBJC_LIB :=endif
# Point at the std/ directory in the in-tree jam build. The installed# jam binary auto-discovers std/ via $PREFIX/lib/jam/std, but the dev# layout (../jam/output/jam.out + ../jam/std) needs an explicit hint.JAM_STD ?= ../jam/stdBUILD_ENV := LIBRARY_PATH=$(SDL_LIB) JAM_STD_PATH=$(JAM_STD)
.PHONY: test build run release run-release clean fmt
test: $(BUILD_ENV) $(JAM) test tests.jam
build: $(BUILD_ENV) $(JAM) -lSDL2 $(OBJC_LIB) -o $(BIN) main.jam
release: $(BUILD_ENV) $(JAM) -C opt-level=3 -lSDL2 $(OBJC_LIB) -o $(BIN) main.jam
run: build $(RUN_ENV) ./$(BIN)
run-release: release $(RUN_ENV) ./$(BIN)
clean: rm -f $(BIN)