# SPDX-License-Identifier: GPL-3.0-or-later
# libpomelo — Pomelo 共用函式庫
VERSION ?= 0.32
PREFIX  ?= /usr/local
LIBDIR  ?= $(PREFIX)/lib
CFLAGS  ?= -Os -pipe -Wall -Wextra -Wno-unused-parameter -Wno-format-truncation
PKGS     = x11 xext xrandr cairo libjpeg
SOVER    = 0
OBJS     = pomelo.o settings.o image.o widgets.o apps.o disks.o logomenu.o pkg.o
HDRS     = pomelo.h pomelo-settings.h pomelo-widgets.h

all: libpomelo.so.$(SOVER) libpomelo.so pomelo.pc

%.o: %.c $(HDRS)
	$(CC) $(CFLAGS) -fPIC $$(pkg-config --cflags $(PKGS)) -c $<

libpomelo.so.$(SOVER): $(OBJS)
	$(CC) -shared -Wl,-soname,libpomelo.so.$(SOVER) -Wl,--as-needed -o $@ $(OBJS) $$(pkg-config --libs $(PKGS)) -lm $(LDFLAGS)

libpomelo.so: libpomelo.so.$(SOVER)
	ln -sf $< $@

pomelo.pc: pomelo.pc.in
	sed -e 's|@PREFIX@|$(PREFIX)|' -e 's|@LIBDIR@|$(LIBDIR)|' -e 's|@VERSION@|$(VERSION)|' $< > $@

install: all
	install -Dm644 libpomelo.so.$(SOVER) $(DESTDIR)$(LIBDIR)/libpomelo.so.$(SOVER)
	ln -sf libpomelo.so.$(SOVER) $(DESTDIR)$(LIBDIR)/libpomelo.so
	for h in $(HDRS); do install -Dm644 $$h $(DESTDIR)$(PREFIX)/include/pomelo/$$h; done
	install -Dm644 pomelo.pc $(DESTDIR)$(LIBDIR)/pkgconfig/pomelo.pc
	for t in i18n/*.tsv; do install -Dm644 $$t $(DESTDIR)$(PREFIX)/share/pomelo/i18n/$$(basename $$t); done

clean:
	rm -f *.o libpomelo.so* pomelo.pc

.PHONY: all install clean
