feat: ports - libhubbub, libcss, libdom
Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_018Ae69wJS7sueQMUwNxV3nX
This commit is contained in:
+29
-4
@@ -165,15 +165,24 @@ NS_MAKE_ARGS := \
|
||||
# archive rule tries to *execute* the .a file (exit 127).
|
||||
NS_MAKE := MAKEFLAGS= $(MAKE)
|
||||
|
||||
# Their makefiles resolve dependencies through pkg-config, so point it at the
|
||||
# ports sysroot (prepended, so host packages still resolve for host tools).
|
||||
# PYTHON is forced to python3: libcss's codegen invokes $(PYTHON), and this
|
||||
# host has no bare `python`.
|
||||
NS_ENV := \
|
||||
PKG_CONFIG_PATH="$(PORT_SYSROOT_LIB)/pkgconfig:$$PKG_CONFIG_PATH" \
|
||||
PYTHON=python3
|
||||
|
||||
# Build a NetSurf library in $(1) (its checkout dir) and copy the archive to
|
||||
# $(PORT_ARCHIVE). Usage in a recipe: $(call ns_build,upstream,wapcaplet)
|
||||
# A port may add its own flags by setting NS_CFLAGS_EXTRA (expanded at call
|
||||
# time, so it can be set after this file is included).
|
||||
ns_build = \
|
||||
CFLAGS="$(NS_CFLAGS) $(NS_CFLAGS_EXTRA)" $(NS_MAKE) -C $(1) $(NS_MAKE_ARGS) && \
|
||||
CFLAGS="$(NS_CFLAGS) $(NS_CFLAGS_EXTRA)" $(NS_ENV) \
|
||||
$(NS_MAKE) -C $(1) $(NS_MAKE_ARGS) $(NS_MAKE_ARGS_EXTRA) && \
|
||||
cp $(1)/$(NS_BUILDDIR)/lib$(2).a $(PORT_ARCHIVE)
|
||||
|
||||
ns_clean = $(NS_MAKE) -C $(1) $(NS_MAKE_ARGS) clean >/dev/null 2>&1 || true
|
||||
ns_clean = $(NS_ENV) $(NS_MAKE) -C $(1) $(NS_MAKE_ARGS) clean >/dev/null 2>&1 || true
|
||||
|
||||
ifeq ($(PORT_LIB),1)
|
||||
|
||||
@@ -197,13 +206,29 @@ $(PORT_SYSROOT_INC)/%: $(PORT_HEADER_ROOT)/%
|
||||
@mkdir -p $(dir $@)
|
||||
cp $< $@
|
||||
|
||||
# Optional pkg-config file. NetSurf libraries locate their dependencies with
|
||||
# pkg-config (REQUIRED_PKGS), so a library that others depend on must publish
|
||||
# one into the sysroot or those builds fail to find it. Their .pc.in files use
|
||||
# literal PREFIX/LIBDIR/INCLUDEDIR/VERSION placeholders, substituted here the
|
||||
# same way their install step would.
|
||||
ifneq ($(PORT_PC_IN),)
|
||||
INSTALLED_PC := $(PORT_SYSROOT_LIB)/pkgconfig/$(PORT_NAME).pc
|
||||
|
||||
$(INSTALLED_PC): $(PORT_PC_IN) Makefile
|
||||
@mkdir -p $(dir $@)
|
||||
sed -e 's|PREFIX|$(PORT_SYSROOT)|' \
|
||||
-e 's|LIBDIR|lib|' \
|
||||
-e 's|INCLUDEDIR|include|' \
|
||||
-e 's|VERSION|$(PORT_PC_VERSION)|' $< > $@
|
||||
endif
|
||||
|
||||
.PHONY: install-lib
|
||||
install-lib: $(INSTALLED_LIB) $(INSTALLED_HEADERS)
|
||||
install-lib: $(INSTALLED_LIB) $(INSTALLED_HEADERS) $(INSTALLED_PC)
|
||||
@echo "installed lib: $(PORT_NAME) -> $(PORT_SYSROOT)"
|
||||
|
||||
.PHONY: clean-lib
|
||||
clean-lib:
|
||||
rm -rf $(OBJDIR) $(PORT_ARCHIVE) $(INSTALLED_LIB) $(INSTALLED_HEADERS)
|
||||
rm -rf $(OBJDIR) $(PORT_ARCHIVE) $(INSTALLED_LIB) $(INSTALLED_HEADERS) $(INSTALLED_PC)
|
||||
|
||||
else
|
||||
|
||||
|
||||
Reference in New Issue
Block a user