hpemung/Makefile
2024-04-15 19:43:28 +02:00

59 lines
1.5 KiB
Makefile

PREFIX = /usr
DOCDIR = $(PREFIX)/doc/hpemung
CC = gcc
LIBS = $(shell pkg-config --libs sdl2 SDL2_ttf)
CFLAGS = -Wall -Werror -O3 -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=missing-braces -Wno-error=incompatible-pointer-types
.PHONY: all clean clean-all pretty-code install mrproper get-roms
all: dist/hpemung
dist/hpemung: src/bus.o \
src/cpu.o \
src/display.o \
src/emulator.o \
src/gui.o \
src/hdw.o \
src/keyboard.o \
src/main.o \
src/opcodes.o \
src/persistence.o \
src/ports.o \
src/rpl.o \
src/config.o \
src/timers.o
$(CC) $(CFLAGS) $(LIBS) -o $@ $+
# Cleaning
clean:
-rm src/*.o
mrproper: clean
-rm dist/hpemung
clean-all: mrproper
# Formatting
pretty-code:
clang-format -i src/*.c src/*.h
# Installing
get-roms:
make -C dist/ROMs get-roms
install: all get-roms
install -m 755 -d -- $(DESTDIR)$(PREFIX)/bin
install -c -m 755 dist/hpemung $(DESTDIR)$(PREFIX)/bin/hpemung
install -m 755 -d -- $(DESTDIR)$(PREFIX)/share/hpemung
install -c -m 644 dist/hplogo.png $(DESTDIR)$(PREFIX)/share/hpemung/hplogo.png
cp -R dist/ROMs/ $(DESTDIR)$(PREFIX)/share/hpemung/
sed "s|@PREFIX@|$(PREFIX)|g" dist/setup-hpemung-home.sh > $(DESTDIR)$(PREFIX)/share/hpemung/setup-hpemung-home.sh
chmod 755 $(DESTDIR)$(PREFIX)/share/hpemung/setup-hpemung-home.sh
install -m 755 -d -- $(DESTDIR)$(DOCDIR)
cp -R ./*.txt $(DESTDIR)$(DOCDIR)
install -m 755 -d -- $(DESTDIR)$(PREFIX)/share/applications
sed "s|@PREFIX@|$(PREFIX)|g" dist/hpemung.desktop > $(DESTDIR)$(PREFIX)/share/applications/hpemung.desktop