# # Copyright 2026 Zygaena Project # # Hammerhead: Coral package manager build wrapper # # Builds the Coral package manager from contrib/coral source using reefc. # Requires reefc to be built and installed first (see cmd/reefc). # # Source: contrib/coral/ (extracted from coral tarball, gitignored) # Installs: /usr/bin/coral, /etc/coral/, /var/lib/coral/ # include ../Makefile.cmd unexport LD_ALTEXEC unexport VERSION CONTRIBDIR = $(CONTRIB)/coral REEFC = /usr/bin/reefc # Build coral using reefc — illumos needs -lsocket -lnsl for networking BUILD_ENV = \ PATH="$(GNUC_ROOT)/bin:/usr/local/bin:$(ROOT)/usr/bin:$(PATH)" \ LIBRARY_PATH="$(ROOT)/usr/lib/reef/runtime/lib:$(ROOT)/usr/lib" # Hammerhead: skip coral if contrib/coral source is not available CORAL_AVAILABLE := $(wildcard $(CONTRIBDIR)/build.reef) all: $(if $(CORAL_AVAILABLE),cd $(CONTRIBDIR) && $(BUILD_ENV) $(REEFC) build -l socket -l nsl,@echo "Skipping coral: contrib/coral not available") install: $(if $(CORAL_AVAILABLE),_install_coral) _install_coral: all # Install coral binary mkdir -p $(ROOT)/usr/bin cp $$(ls $(CONTRIBDIR)/build/coral* 2>/dev/null | head -1) $(ROOT)/usr/bin/coral chmod 755 $(ROOT)/usr/bin/coral # Create coral directory structure mkdir -p $(ROOT)/etc/coral mkdir -p $(ROOT)/var/lib/coral/installed mkdir -p $(ROOT)/var/lib/coral/packages mkdir -p $(ROOT)/var/lib/coral/sources mkdir -p $(ROOT)/var/lib/coral/trusted-keys clean: $(RM) -r $(CONTRIBDIR)/build clobber: clean _msg: .PHONY: all install clean clobber _msg