|
root / base / usr / src / cmd / coral
coral Plain Text 54 lines 1.5 KB
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#
# 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