PREFIX = /usr/local
FPC = fpc
FPCFLAGS = -O3 -Xs -XX -Fu../lil/fplil
FPCCMD = $(FPC) $(FPCFLAGS)
PKGNAME = ol

.PHONY: all
all: ol hnb2olol olol2tab tab2olol

ol: defines.pas nodes.pas ol.pas tree.pas ui.pas
	$(FPCCMD) ol

olptc: defines.pas nodes.pas ol.pas tree.pas ui.pas
	$(FPCCMD) -WG -dOLPTC -Fu../ptcpas/units/i386-win32/ -Fu../ptckvm-0.2 -Fi../ptckvm-0.2/fpcrtl ol -oolptc.exe

hnb2olol: hnb2olol.pas
	$(FPCCMD) hnb2olol

olol2tab: olol2tab.pas
	$(FPCCMD) olol2tab

tab2olol: tab2olol.pas
	$(FPCCMD) tab2olol

.PHONY: gzmans
gzmans: ol.1.gz hnb2olol.1.gz olol2tab.1.gz tab2olol.1.gz ololfiles.5.gz

ol.1.gz: ol.1
	gzip -c ol.1 > ol.1.gz

hnb2olol.1.gz: hnb2olol.1
	gzip -c hnb2olol.1 > hnb2olol.1.gz

olol2tab.1.gz: olol2tab.1
	gzip -c olol2tab.1 > olol2tab.1.gz

tab2olol.1.gz: tab2olol.1
	gzip -c tab2olol.1 > tab2olol.1.gz

ololfiles.5.gz: ololfiles.5
	gzip -c ololfiles.5 > ololfiles.5.gz

.PHONY: install
install: gzmans
	mkdir -p $(PREFIX)/bin
	mkdir -p $(PREFIX)/share/doc/$(PKGNAME)
	mkdir -p $(PREFIX)/share/licenses/$(PKGNAME)
	mkdir -p $(PREFIX)/share/man/man1
	mkdir -p $(PREFIX)/share/man/man5
	install -m755 ol $(PREFIX)/bin/ol
	install -m755 hnb2olol $(PREFIX)/bin/hnb2olol
	install -m755 olol2tab $(PREFIX)/bin/olol2tab
	install -m755 tab2olol $(PREFIX)/bin/tab2olol
	install -m644 readme.txt $(PREFIX)/share/doc/$(PKGNAME)/readme.txt
	install -m644 license.txt $(PREFIX)/share/licenses/$(PKGNAME)/LICENSE
	install -m644 ol.1.gz $(PREFIX)/share/man/man1/ol.1.gz
	install -m644 hnb2olol.1.gz $(PREFIX)/share/man/man1/hnb2olol.1.gz
	install -m644 olol2tab.1.gz $(PREFIX)/share/man/man1/olol2tab.1.gz
	install -m644 tab2olol.1.gz $(PREFIX)/share/man/man1/tab2olol.1.gz
	install -m644 ololfiles.5.gz $(PREFIX)/share/man/man5/ololfiles.5.gz

.PHONY: uninstall
uninstall:
	rm -f $(PREFIX)/bin/ol
	rm -f $(PREFIX)/bin/hnb2olol
	rm -f $(PREFIX)/bin/olol2tab
	rm -f $(PREFIX)/bin/tab2olol
	rm -rf $(PREFIX)/share/doc/$(PKGNAME)
	rm -rf $(PREFIX)/share/licenses/$(PKGNAME)
	rm -f $(PREFIX)/share/man/man1/ol.1.gz
	rm -f $(PREFIX)/share/man/man1/hnb2olol.1.gz
	rm -f $(PREFIX)/share/man/man1/olol2tab.1.gz
	rm -f $(PREFIX)/share/man/man1/tab2olol.1.gz
	rm -f $(PREFIX)/share/man/man5/ololfiles.5.gz

.PHONY: clean
clean:
	rm -f ol
	rm -f ol.exe
	rm -f hnb2olol
	rm -f hnb2olol.exe
	rm -f olol2tab
	rm -f olol2tab.exe
	rm -f tab2olol
	rm -f tab2olol.exe
	rm -f *.gz
	rm -f *.o
	rm -f *.ppu
	rm -f *.a
	rm -f *.res
