# pornOS build system
# Make misery happen.

SHELL := /bin/bash

DESTDIR ?= /mnt
PREFIX  ?= /usr

.PHONY: all install clean build-iso test

all:
	@echo "pornOS build system v6.9"
	@echo "Run 'make install' to install into $(DESTDIR)"
	@echo "Run 'make build-iso' to build an ISO (requires archiso)"
	@echo "Run 'make test' to run the test suite"

install:
	@echo "Installing pornOS components..."
	# holy porn
	install -D -m 755 src/holyporn/holyporn.py "$(DESTDIR)$(PREFIX)/lib/holyporn/holyporn.py"
	ln -sf "$(PREFIX)/lib/holyporn/holyporn.py" "$(DESTDIR)$(PREFIX)/bin/holyporn"
	# pornpkg
	install -D -m 755 src/pornpkg/pornpkg.hp "$(DESTDIR)$(PREFIX)/lib/pornpkg/pornpkg.hp"
	install -D -m 755 src/pornpkg/pornpkg "$(DESTDIR)$(PREFIX)/bin/pornpkg"
	# xvideos
	install -D -m 755 src/xvideos/xvideos "$(DESTDIR)$(PREFIX)/bin/xvideos"
	# porncli
	install -D -m 755 src/porncli/porncli.py "$(DESTDIR)$(PREFIX)/bin/porncli"
	# pornGUI
	install -D -m 755 src/pornGUI/pornGUI.py "$(DESTDIR)$(PREFIX)/bin/pornGUI"
	# porn init
	install -D -m 755 src/porninit/porn "$(DESTDIR)$(PREFIX)/sbin/porn-init"
	ln -sf "$(PREFIX)/sbin/porn-init" "$(DESTDIR)/sbin/init"
	# misery daemon (pornOS has no systemd; install the init.d script)
	install -D -m 755 src/misery-daemon/misery-daemon "$(DESTDIR)$(PREFIX)/bin/misery-daemon"
	install -D -m 755 src/misery-daemon/init.d/misery-daemon "$(DESTDIR)/etc/init.d/misery-daemon"
	# shell
	install -D -m 755 src/scripts/pornsh "$(DESTDIR)$(PREFIX)/bin/pornsh"
	# motd
	install -D -m 644 config/motd "$(DESTDIR)/etc/motd"
	@echo "pornOS installed. misery achieved."

build-iso:
	@echo "Building pornOS rootfs + ISO (no archiso)..."
	python3 build/build-pornos.py

cumfs:
	@echo "Building cum kernel module..."
	$(MAKE) -C src/cumfs

test:
	@echo "Testing holy porn interpreter..."
	python3 src/holyporn/holyporn.py tests/test.hp
	@echo "Testing cum filesystem round-trip..."
	python3 src/cumfs/mkfs.cum --label test --force /tmp/pornos-test.cum tests
	python3 src/cumfs/cum-ls --info /tmp/pornos-test.cum

clean:
	rm -rf build

install-chroot:
	@echo "Run this inside a chroot of the target system"
	@echo "make DESTDIR=/ install"
	make DESTDIR=/ install
