mirror of
https://gitlab.com/sortix/sortix.git
synced 2023-02-13 20:55:38 -05:00
Port Sortix build system to Sortix.
This commit is contained in:
parent
4cffc6b77b
commit
df419bdf55
2 changed files with 138 additions and 0 deletions
1
Makefile
1
Makefile
|
@ -78,6 +78,7 @@ sysroot-source: sysroot-fsh
|
|||
cp COPYING-LGPL -t "$(SYSROOT)/src"
|
||||
cp README -t "$(SYSROOT)/src"
|
||||
(for D in $(MODULES); do (cp -LR $$D -t "$(SYSROOT)/src" && $(MAKE) -C "$(SYSROOT)/src/$$D" clean) || exit $$?; done)
|
||||
cp -LR system -t "$(SYSROOT)/src"
|
||||
|
||||
.PHONY: sysroot-overlay
|
||||
sysroot-overlay: sysroot-fsh sysroot-system
|
||||
|
|
137
system/Makefile
Normal file
137
system/Makefile
Normal file
|
@ -0,0 +1,137 @@
|
|||
include ../platform.mak
|
||||
|
||||
# Protect the user from accidentally replacing his build operating system with a broken Sortix.
|
||||
ifeq ($(HOST_IS_SORTIX),0)
|
||||
$(error You are about to build Sortix as $(HOST) and possibly overwrite your root filesystem. Use the HOST=cpu-sortix environmental variable if you wish to cross-compile)
|
||||
endif
|
||||
|
||||
SRCDIR:=..
|
||||
BOOTDIR:=$(ROOT)/boot/$(cputype)
|
||||
KERNEL:=$(BOOTDIR)/sortix.bin
|
||||
INITRD_COMPRESSION:=.gz
|
||||
INITRD:=$(BOOTDIR)/sortix.initrd
|
||||
INITRD_FILTER:=$(BOOTDIR)/sortix.initrd.filter
|
||||
|
||||
all: $(KERNEL) $(INITRD)$(INITRD_COMPRESSION)
|
||||
|
||||
# Delete various temporary build files.
|
||||
clean:
|
||||
$(MAKE) -B -C $(SRCDIR)/doc clean
|
||||
$(MAKE) -B -C $(SRCDIR)/libc clean
|
||||
$(MAKE) -B -C $(SRCDIR)/libm clean
|
||||
$(MAKE) -B -C $(SRCDIR)/dispd clean
|
||||
$(MAKE) -B -C $(SRCDIR)/bench clean
|
||||
$(MAKE) -B -C $(SRCDIR)/games clean
|
||||
$(MAKE) -B -C $(SRCDIR)/mkinitrd clean
|
||||
$(MAKE) -B -C $(SRCDIR)/mxmpp clean
|
||||
$(MAKE) -B -C $(SRCDIR)/utils clean
|
||||
$(MAKE) -B -C $(SRCDIR)/ext clean
|
||||
$(MAKE) -B -C $(SRCDIR)/mbr clean
|
||||
$(MAKE) -B -C $(SRCDIR)/sortix clean
|
||||
|
||||
# Set up the base filesystem.
|
||||
fsh:
|
||||
mkdir -p $(ROOT)/
|
||||
mkdir -p $(ROOT)/boot
|
||||
mkdir -p $(ROOT)/boot/$(cputype)
|
||||
mkdir -p $(ROOT)/dev
|
||||
mkdir -p $(ROOT)/etc
|
||||
mkdir -p $(ROOT)/etc/$(cputype)
|
||||
mkdir -p $(ROOT)/etc/skel
|
||||
mkdir -p $(ROOT)/home
|
||||
mkdir -p $(ROOT)/include
|
||||
mkdir -p $(ROOT)/include/$(cputype)
|
||||
mkdir -p $(ROOT)/mnt
|
||||
mkdir -p $(ROOT)/root
|
||||
mkdir -p $(ROOT)/share
|
||||
mkdir -p $(ROOT)/src
|
||||
mkdir -p $(ROOT)/tmp
|
||||
mkdir -p $(ROOT)/$(cputype)/bin
|
||||
mkdir -p $(ROOT)/$(cputype)/lib
|
||||
|
||||
# Install the system headers.
|
||||
system-headers:
|
||||
$(MAKE) fsh ROOT=$(ROOT)
|
||||
$(MAKE) system-headers_internal ROOT=$(ROOT)
|
||||
|
||||
system-headers_internal:
|
||||
$(MAKE) -B -C $(SRCDIR)/sortix install-headers DESTDIR=$(ROOT)
|
||||
$(MAKE) -B -C $(SRCDIR)/libc install-headers DESTDIR=$(ROOT)
|
||||
$(MAKE) -B -C $(SRCDIR)/libm install-headers DESTDIR=$(ROOT)
|
||||
|
||||
# Rebuild and install the entire system.
|
||||
system:
|
||||
$(MAKE) fsh ROOT=$(ROOT)
|
||||
$(MAKE) system-headers_internal ROOT=$(ROOT)
|
||||
$(MAKE) -B -C $(SRCDIR)/doc install DESTDIR=$(ROOT) C_INCLUDE_PATH=$(ROOT)/include CPLUS_INCLUDE_PATH=$(ROOT)/include LIBRARY_PATH=$(ROOT)/$(cputype)/lib
|
||||
$(MAKE) -B -C $(SRCDIR)/libc install DESTDIR=$(ROOT) C_INCLUDE_PATH=$(ROOT)/include CPLUS_INCLUDE_PATH=$(ROOT)/include LIBRARY_PATH=$(ROOT)/$(cputype)/lib
|
||||
$(MAKE) -B -C $(SRCDIR)/libm install DESTDIR=$(ROOT) C_INCLUDE_PATH=$(ROOT)/include CPLUS_INCLUDE_PATH=$(ROOT)/include LIBRARY_PATH=$(ROOT)/$(cputype)/lib
|
||||
$(MAKE) -B -C $(SRCDIR)/dispd install DESTDIR=$(ROOT) C_INCLUDE_PATH=$(ROOT)/include CPLUS_INCLUDE_PATH=$(ROOT)/include LIBRARY_PATH=$(ROOT)/$(cputype)/lib
|
||||
$(MAKE) -B -C $(SRCDIR)/games install DESTDIR=$(ROOT) C_INCLUDE_PATH=$(ROOT)/include CPLUS_INCLUDE_PATH=$(ROOT)/include LIBRARY_PATH=$(ROOT)/$(cputype)/lib
|
||||
$(MAKE) -B -C $(SRCDIR)/mkinitrd install DESTDIR=$(ROOT) C_INCLUDE_PATH=$(ROOT)/include CPLUS_INCLUDE_PATH=$(ROOT)/include LIBRARY_PATH=$(ROOT)/$(cputype)/lib
|
||||
$(MAKE) -B -C $(SRCDIR)/mxmpp install DESTDIR=$(ROOT) C_INCLUDE_PATH=$(ROOT)/include CPLUS_INCLUDE_PATH=$(ROOT)/include LIBRARY_PATH=$(ROOT)/$(cputype)/lib
|
||||
$(MAKE) -B -C $(SRCDIR)/utils install DESTDIR=$(ROOT) C_INCLUDE_PATH=$(ROOT)/include CPLUS_INCLUDE_PATH=$(ROOT)/include LIBRARY_PATH=$(ROOT)/$(cputype)/lib
|
||||
$(MAKE) -B -C $(SRCDIR)/bench install DESTDIR=$(ROOT) C_INCLUDE_PATH=$(ROOT)/include CPLUS_INCLUDE_PATH=$(ROOT)/include LIBRARY_PATH=$(ROOT)/$(cputype)/lib
|
||||
$(MAKE) -B -C $(SRCDIR)/ext install DESTDIR=$(ROOT) C_INCLUDE_PATH=$(ROOT)/include CPLUS_INCLUDE_PATH=$(ROOT)/include LIBRARY_PATH=$(ROOT)/$(cputype)/lib
|
||||
$(MAKE) -B -C $(SRCDIR)/mbr install DESTDIR=$(ROOT) C_INCLUDE_PATH=$(ROOT)/include CPLUS_INCLUDE_PATH=$(ROOT)/include LIBRARY_PATH=$(ROOT)/$(cputype)/lib
|
||||
$(MAKE) -B -C $(SRCDIR)/sortix install DESTDIR=$(ROOT) C_INCLUDE_PATH=$(ROOT)/include CPLUS_INCLUDE_PATH=$(ROOT)/include LIBRARY_PATH=$(ROOT)/$(cputype)/libs
|
||||
|
||||
# Rebuild and install the kernel
|
||||
kernel:
|
||||
$(MAKE) -B -C $(SRCDIR)/sortix install-headers DESTDIR=$(ROOT)
|
||||
$(MAKE) -B -C $(SRCDIR)/sortix install DESTDIR=$(ROOT) C_INCLUDE_PATH=$(ROOT)/include CPLUS_INCLUDE_PATH=$(ROOT)/include LIBRARY_PATH=$(ROOT)/$(cputype)/libs
|
||||
|
||||
# Rebuild the initrd and the kernel.
|
||||
boot-files: initrd kernel
|
||||
|
||||
# Regenerate the initrd from $ROOT.
|
||||
initrd:
|
||||
mkdir -p $(BOOTDIR)
|
||||
rm -f $(INITRD_FILTER)
|
||||
echo exclude /boot >> $(INITRD_FILTER)
|
||||
echo exclude /dev >> $(INITRD_FILTER)
|
||||
echo exclude /next >> $(INITRD_FILTER)
|
||||
echo exclude /tmp >> $(INITRD_FILTER)
|
||||
echo exclude /$(OTHER_PLATFORM_1) >> $(INITRD_FILTER)
|
||||
echo exclude /etc/$(OTHER_PLATFORM_1) >> $(INITRD_FILTER)
|
||||
echo exclude /include/$(OTHER_PLATFORM_1) >> $(INITRD_FILTER)
|
||||
mkinitrd $(ROOT)/ -o $(INITRD) -f $(INITRD_FILTER)
|
||||
rm -f $(INITRD_FILTER)
|
||||
gzip -v $(INITRD)
|
||||
|
||||
# Format a device with a tar filesystem.
|
||||
device-format-tar:
|
||||
tar cvf DEVICE=$(DEVICE)
|
||||
|
||||
# Update the kernel on a device.
|
||||
update-tar-device-kernel: $(KERNEL)
|
||||
cd $(BOOTDIR) ; head sortix.bin > /dev/null
|
||||
cd $(BOOTDIR) ; tar --delete --verbose --checkpoint=1 --blocking-factor=2048 --file=$(DEVICE) sortix.bin
|
||||
cd $(BOOTDIR) ; tar --append --verbose --checkpoint=1 --blocking-factor=2048 --file=$(DEVICE) sortix.bin
|
||||
|
||||
# Update the initrd on a device.
|
||||
update-tar-device-initrd: $(INITRD)$(INITRD_COMPRESSION)
|
||||
cd $(BOOTDIR) ; head sortix.initrd$(INITRD_COMPRESSION) > /dev/null
|
||||
cd $(BOOTDIR) ; tar --delete --verbose --checkpoint=1 --blocking-factor=2048 --file=$(DEVICE) sortix.initrd$(INITRD_COMPRESSION)
|
||||
cd $(BOOTDIR) ; tar --append --verbose --checkpoint=1 --blocking-factor=2048 --file=$(DEVICE) sortix.initrd$(INITRD_COMPRESSION)
|
||||
|
||||
# Update the kernel and initrd on a device.
|
||||
update-tar-device-image: $(KERNEL) $(INITRD)$(INITRD_COMPRESSION)
|
||||
cd $(BOOTDIR) ; head sortix.bin sortix.initrd$(INITRD_COMPRESSION) > /dev/null
|
||||
cd $(BOOTDIR) ; tar --create --verbose --checkpoint=1 --blocking-factor=2048 --file=$(DEVICE) sortix.bin sortix.initrd$(INITRD_COMPRESSION)
|
||||
|
||||
# Build an entire new Sortix system and install onto this device.
|
||||
install-onto-device:
|
||||
$(MAKE) system ROOT=/next
|
||||
$(MAKE) initrd ROOT=/next
|
||||
$(MAKE) update-tar-device-image ROOT=/next DEVICE=$(DEVICE)
|
||||
|
||||
# Misc. stuff down here.
|
||||
fetch-device-stuff: fetch-device-kernel fetch-device-initrd
|
||||
|
||||
fetch-device-kernel:
|
||||
cd $(BOOTDIR) ; tar xvf $(DEVICE) sortix.bin
|
||||
|
||||
fetch-device-initrd:
|
||||
cd $(BOOTDIR) ; tar xvf $(DEVICE)
|
||||
#
|
Loading…
Add table
Reference in a new issue