mirror of
https://gitlab.com/sortix/sortix.git
synced 2023-02-13 20:55:38 -05:00
f2d50bbf9c
This change implements a dependency tracking daemon(7) system in init with overridable init(5) configuration, parallel startup, readiness signaling, rotating logs, reliable stopping, and handling of leaked processes. The /etc/init/target file is replaced by the new /etc/init/default per the new init(5) format. The old configuration is migrated upon upgrade using an upgrade hook. extfs(8) now signals readiness using READYFD for fast mounting. Filesystems that fail to be repaired are now mounted read-only. The mounting and filesystem checking code is synchronized with sysinstall. The duplicated array_add utility function now protects against overflows. tix-iso-bootconfig(8) gains the --init-target option. tix-iso-liveconfig(8) gains the --daemons option.
85 lines
2.4 KiB
Makefile
85 lines
2.4 KiB
Makefile
SOFTWARE_MEANT_FOR_SORTIX=1
|
|
include ../build-aux/platform.mak
|
|
include ../build-aux/compiler.mak
|
|
include ../build-aux/version.mak
|
|
include ../build-aux/dirs.mak
|
|
|
|
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
|
CFLAGS?=$(OPTLEVEL)
|
|
|
|
CFLAGS:=$(CFLAGS) -Wall -Wextra
|
|
CPPFLAGS:=$(CPPFLAGS) -DVERSIONSTR=\"$(VERSION)\"
|
|
|
|
MAIN_OBJS=\
|
|
sysinstall.o \
|
|
sysmerge.o \
|
|
sysupgrade.o \
|
|
|
|
UTIL_OBJS=\
|
|
conf.o \
|
|
devices.o \
|
|
execute.o \
|
|
fileops.o \
|
|
hooks.o \
|
|
interactive.o \
|
|
manifest.o \
|
|
release.o \
|
|
string_array.o \
|
|
|
|
OBJS=$(MAIN_OBJS) $(UTIL_OBJS)
|
|
|
|
SYSINSTALL_DEPS=conf devices execute fileops interactive manifest release string_array
|
|
SYSMERGE_DEPS=conf fileops execute hooks manifest release string_array
|
|
SYSUPGRADE_DEPS=conf devices execute fileops hooks interactive manifest release string_array
|
|
|
|
SYSINSTALL_OBJS:=sysinstall.o $(SYSINSTALL_DEPS:=.o)
|
|
SYSMERGE_OBJS:=sysmerge.o $(SYSMERGE_DEPS:=.o)
|
|
SYSUPGRADE_OBJS:=sysupgrade.o $(SYSUPGRADE_DEPS:=.o)
|
|
|
|
all: sysinstall sysmerge sysupgrade
|
|
|
|
.PHONY: all install clean
|
|
|
|
install: all
|
|
mkdir -p $(DESTDIR)$(SBINDIR)
|
|
install sysinstall $(DESTDIR)$(SBINDIR)
|
|
install sysmerge $(DESTDIR)$(SBINDIR)
|
|
install sysupgrade $(DESTDIR)$(SBINDIR)
|
|
mkdir -p $(DESTDIR)$(MANDIR)/man8
|
|
cp sysinstall.8 $(DESTDIR)$(MANDIR)/man8/sysinstall.8
|
|
cp sysmerge.8 $(DESTDIR)$(MANDIR)/man8/sysmerge.8
|
|
cp sysupgrade.8 $(DESTDIR)$(MANDIR)/man8/sysupgrade.8
|
|
mkdir -p $(DESTDIR)$(DATADIR)/sysinstall/hooks
|
|
# TODO: After releasing Sortix 1.1, remove this compatibility.
|
|
touch $(DESTDIR)$(DATADIR)/sysinstall/hooks/sortix-1.1-random-seed
|
|
touch $(DESTDIR)$(DATADIR)/sysinstall/hooks/sortix-1.1-tix-manifest-mode
|
|
touch $(DESTDIR)$(DATADIR)/sysinstall/hooks/sortix-1.1-leaked-files
|
|
touch $(DESTDIR)$(DATADIR)/sysinstall/hooks/sortix-1.1-init
|
|
|
|
sysinstall: $(SYSINSTALL_OBJS)
|
|
$(CC) $(SYSINSTALL_OBJS) -o $@ -lmount
|
|
|
|
sysmerge: $(SYSMERGE_OBJS)
|
|
$(CC) $(SYSMERGE_OBJS) -o $@ -lmount
|
|
|
|
sysupgrade: $(SYSUPGRADE_OBJS)
|
|
$(CC) $(SYSUPGRADE_OBJS) -o $@ -lmount
|
|
|
|
%.o: %.c
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) -std=gnu11 -c $< -o $@
|
|
|
|
sysinstall.o: $(SYSINSTALL_DEPS:=.h)
|
|
sysmerge.o: $(SYSMERGE_DEPS:=.h)
|
|
sysupgrade.o: $(SYSUPGRADE_DEPS:=.h)
|
|
conf.o: conf.h
|
|
devices.o: devices.h
|
|
execute.o: execute.h
|
|
fileops.o: fileops.h string_array.h
|
|
string_array.o: string_array.h
|
|
hooks.o: fileops.h manifest.h release.h string_array.h
|
|
interactive.o: interactive.h execute.h
|
|
manifest.o: manifest.h fileops.h string_array.h
|
|
release.o: release.h
|
|
|
|
clean:
|
|
rm -f sysinstall sysmerge sysupgrade $(OBJS)
|