#!/bin/make
#
# NetSurf Source makefile for libraries and browser

export TARGET ?= gtk
export PKG_CONFIG_PATH = $(TMP_PREFIX)/lib/pkgconfig
TMP_PREFIX := $(CURDIR)/prefix-$(TARGET)

BUILDSYSTEM_BASE := src/buildsystem
BUILDSYSTEM_VERS := 1.0
BUILDSYSTEM_TARG := $(BUILDSYSTEM_BASE)-$(BUILDSYSTEM_VERS)

LIBWAPCAPLET_BASE := src/libwapcaplet
LIBWAPCAPLET_VERS := 0.2.0
LIBWAPCAPLET_TARG := $(LIBWAPCAPLET_BASE)-$(LIBWAPCAPLET_VERS)

LIBPARSERUTILS_BASE := src/libparserutils
LIBPARSERUTILS_VERS := 0.1.2
LIBPARSERUTILS_TARG := $(LIBPARSERUTILS_BASE)-$(LIBPARSERUTILS_VERS)

LIBCSS_BASE := src/libcss
LIBCSS_VERS := 0.2.0
LIBCSS_TARG := $(LIBCSS_BASE)-$(LIBCSS_VERS)

LIBHUBBUB_BASE := src/libhubbub
LIBHUBBUB_VERS := 0.2.0
LIBHUBBUB_TARG := $(LIBHUBBUB_BASE)-$(LIBHUBBUB_VERS)

LIBDOM_BASE := src/libdom
LIBDOM_VERS := 0.0.1
LIBDOM_TARG := $(LIBDOM_BASE)-$(LIBDOM_VERS)

LIBNSBMP_BASE := src/libnsbmp
LIBNSBMP_VERS := 0.1.0
LIBNSBMP_TARG := $(LIBNSBMP_BASE)-$(LIBNSBMP_VERS)

LIBNSGIF_BASE := src/libnsgif
LIBNSGIF_VERS := 0.1.0
LIBNSGIF_TARG := $(LIBNSGIF_BASE)-$(LIBNSGIF_VERS)

LIBROSPRITE_BASE := src/librosprite
LIBROSPRITE_VERS := 0.1.0
LIBROSPRITE_TARG := $(LIBROSPRITE_BASE)-$(LIBROSPRITE_VERS)

LIBNSFB_BASE := src/libnsfb
LIBNSFB_VERS := 0.1.0
LIBNSFB_TARG := $(LIBNSFB_BASE)-$(LIBNSFB_VERS)

LIBSVGTINY_BASE := src/libsvgtiny
LIBSVGTINY_VERS := 0.1.0
LIBSVGTINY_TARG := $(LIBSVGTINY_BASE)-$(LIBSVGTINY_VERS)

NSGENJSBIND_BASE := src/nsgenbind
NSGENJSBIND_VERS := 0.0.1
NSGENJSBIND_TARG := $(NSGENJSBIND_BASE)-$(NSGENJSBIND_VERS)

NETSURF_BASE := src/netsurf
NETSURF_VERS := 3.0
NETSURF_TARG := $(NETSURF_BASE)-$(NETSURF_VERS)

NSLIBTARG := $(BUILDSYSTEM_TARG) $(LIBWAPCAPLET_TARG) $(LIBPARSERUTILS_TARG) $(LIBCSS_TARG) $(LIBHUBBUB_TARG) $(LIBDOM_TARG) $(LIBNSBMP_TARG) $(LIBNSGIF_TARG) $(LIBROSPRITE_TARG) $(LIBNSFB_TARG) $(LIBSVGTINY_TARG) $(NSGENJSBIND_TARG)


define do_clean
	$(MAKE) distclean --directory=$1 TARGET=$(TARGET)

endef

define do_prefix_install
	$(MAKE) install --directory=$1 TARGET=$(TARGET) PREFIX=$(TMP_PREFIX) DESTDIR=

endef


.PHONY: build install clean

build: $(TMP_PREFIX)/build-stamp

$(TMP_PREFIX)/build-stamp:
	mkdir -p $(TMP_PREFIX)/include
	mkdir -p $(TMP_PREFIX)/lib
	$(foreach L,$(NSLIBTARG),$(call do_prefix_install,$(L)))
	$(MAKE) --directory=$(NETSURF_TARG) PREFIX=$(PREFIX) TARGET=$(TARGET)
	touch $@

install: $(TMP_PREFIX)/build-stamp
	$(MAKE) install --directory=$(NETSURF_TARG) TARGET=$(TARGET) PREFIX=$(PREFIX) DESTDIR=$(DESTDIR)

clean:
	$(RM) -r $(TMP_PREFIX)
	$(foreach L,$(NSLIBTARG),$(call do_clean,$(L)))
	$(MAKE) clean --directory=$(NETSURF_TARG) TARGET=$(TARGET)
