Ongoing build system maintainance.
This commit is contained in:
parent
2b2dd347ec
commit
2586685061
124
Makefile
124
Makefile
|
@ -1,7 +1,7 @@
|
||||||
SOFTWARE_MEANT_FOR_SORTIX=1
|
SOFTWARE_MEANT_FOR_SORTIX=1
|
||||||
MAKEFILE_NOT_MEANT_FOR_SORTIX=1
|
include build-aux/platform.mak
|
||||||
include compiler.mak
|
include build-aux/compiler.mak
|
||||||
include version.mak
|
include build-aux/version.mak
|
||||||
|
|
||||||
MODULES=\
|
MODULES=\
|
||||||
doc \
|
doc \
|
||||||
|
@ -22,12 +22,10 @@ kernel
|
||||||
|
|
||||||
ifndef SYSROOT
|
ifndef SYSROOT
|
||||||
SYSROOT:=$(shell pwd)/sysroot
|
SYSROOT:=$(shell pwd)/sysroot
|
||||||
SUBMAKE_OPTIONS:=$(SUBMAKE_OPTIONS) "SYSROOT=$(SYSROOT)"
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef SYSROOT_OVERLAY
|
ifndef SYSROOT_OVERLAY
|
||||||
SYSROOT_OVERLAY:=$(shell pwd)/sysroot-overlay
|
SYSROOT_OVERLAY:=$(shell pwd)/sysroot-overlay
|
||||||
SUBMAKE_OPTIONS:=$(SUBMAKE_OPTIONS) "SYSROOT_OVERLAY=$(SYSROOT_OVERLAY)"
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
SORTIX_BUILDS_DIR?=builds
|
SORTIX_BUILDS_DIR?=builds
|
||||||
|
@ -35,18 +33,36 @@ SORTIX_PORTS_DIR?=ports
|
||||||
SORTIX_RELEASE_DIR?=release
|
SORTIX_RELEASE_DIR?=release
|
||||||
SORTIX_REPOSITORY_DIR?=repository
|
SORTIX_REPOSITORY_DIR?=repository
|
||||||
|
|
||||||
include dirs.mak
|
include build-aux/dirs.mak
|
||||||
|
|
||||||
|
PREFIX:=
|
||||||
|
EXEC_PREFIX:=$(PREFIX)/$(HOST)
|
||||||
|
|
||||||
|
export PREFIX
|
||||||
|
export EXEC_PREFIX
|
||||||
|
export SYSROOT
|
||||||
|
|
||||||
|
ifeq ($(BUILD_IS_SORTIX),1)
|
||||||
|
export C_INCLUDE_PATH=$(SYSROOT)/include
|
||||||
|
export CPLUS_INCLUDE_PATH=$(SYSROOT)/include
|
||||||
|
export LIBRARY_PATH=$(SYSROOT)/$(HOST)/lib
|
||||||
|
endif
|
||||||
|
|
||||||
BUILD_NAME:=sortix_$(VERSION)_$(MACHINE)
|
BUILD_NAME:=sortix_$(VERSION)_$(MACHINE)
|
||||||
DEBNAME:=sortix_$(VERSION)_$(MACHINE)
|
|
||||||
|
|
||||||
INITRD:=$(SORTIX_BUILDS_DIR)/$(BUILD_NAME).initrd
|
INITRD:=$(SORTIX_BUILDS_DIR)/$(BUILD_NAME).initrd
|
||||||
|
|
||||||
SUBMAKE_OPTIONS:=$(SUBMAKE_OPTIONS) VERSION=$(VERSION) PREFIX= EXEC_PREFIX=/$(HOST)
|
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all: sysroot
|
all: sysroot
|
||||||
|
|
||||||
|
ifeq ($(BUILD_IS_SORTIX),1)
|
||||||
|
.PHONY: install
|
||||||
|
install: sysroot
|
||||||
|
(for ENTRY in $$(ls -A "$(SYSROOT)" | grep -Ev '^src$$'); do \
|
||||||
|
cp -RTv "$(SYSROOT)/$$ENTRY" "$(DESTDIR)/$$ENTRY" || exit $$?; \
|
||||||
|
done)
|
||||||
|
endif
|
||||||
|
|
||||||
.PHONY: build-tools
|
.PHONY: build-tools
|
||||||
build-tools:
|
build-tools:
|
||||||
$(MAKE) -C carray
|
$(MAKE) -C carray
|
||||||
|
@ -81,23 +97,21 @@ sysroot-fsh:
|
||||||
|
|
||||||
.PHONY: sysroot-base-headers
|
.PHONY: sysroot-base-headers
|
||||||
sysroot-base-headers: sysroot-fsh
|
sysroot-base-headers: sysroot-fsh
|
||||||
(for D in libc libm libpthread kernel; do ($(MAKE) -C $$D install-headers $(SUBMAKE_OPTIONS) DESTDIR="$(SYSROOT)") || exit $$?; done)
|
(for D in libc libm libpthread kernel; do ($(MAKE) -C $$D install-headers DESTDIR="$(SYSROOT)") || exit $$?; done)
|
||||||
|
|
||||||
.PHONY: sysroot-system
|
.PHONY: sysroot-system
|
||||||
sysroot-system: sysroot-fsh sysroot-base-headers
|
sysroot-system: sysroot-fsh sysroot-base-headers
|
||||||
(for D in $(MODULES); do ($(MAKE) -C $$D $(SUBMAKE_OPTIONS) && $(MAKE) -C $$D install $(SUBMAKE_OPTIONS) DESTDIR="$(SYSROOT)") || exit $$?; done)
|
(for D in $(MODULES); do ($(MAKE) -C $$D && $(MAKE) -C $$D install DESTDIR="$(SYSROOT)") || exit $$?; done)
|
||||||
|
|
||||||
.PHONY: sysroot-source
|
.PHONY: sysroot-source
|
||||||
sysroot-source: sysroot-fsh
|
sysroot-source: sysroot-fsh
|
||||||
cp compiler.mak -t "$(SYSROOT)/src"
|
cp .gitignore -t "$(SYSROOT)/src"
|
||||||
cp dirs.mak -t "$(SYSROOT)/src"
|
|
||||||
cp platform.mak -t "$(SYSROOT)/src"
|
|
||||||
cp version.mak -t "$(SYSROOT)/src"
|
|
||||||
cp COPYING-GPL -t "$(SYSROOT)/src"
|
cp COPYING-GPL -t "$(SYSROOT)/src"
|
||||||
cp COPYING-LGPL -t "$(SYSROOT)/src"
|
cp COPYING-LGPL -t "$(SYSROOT)/src"
|
||||||
|
cp Makefile -t "$(SYSROOT)/src"
|
||||||
cp README -t "$(SYSROOT)/src"
|
cp README -t "$(SYSROOT)/src"
|
||||||
|
cp -RT build-aux "$(SYSROOT)/src/build-aux"
|
||||||
(for D in $(MODULES); do (cp -LR $$D -t "$(SYSROOT)/src" && $(MAKE) -C "$(SYSROOT)/src/$$D" clean) || exit $$?; done)
|
(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-ports
|
.PHONY: sysroot-ports
|
||||||
sysroot-ports: sysroot-fsh sysroot-base-headers sysroot-system sysroot-source
|
sysroot-ports: sysroot-fsh sysroot-base-headers sysroot-system sysroot-source
|
||||||
|
@ -106,13 +120,13 @@ sysroot-ports: sysroot-fsh sysroot-base-headers sysroot-system sysroot-source
|
||||||
SYSROOT="$(SYSROOT)" \
|
SYSROOT="$(SYSROOT)" \
|
||||||
HOST="$(HOST)" \
|
HOST="$(HOST)" \
|
||||||
MAKE="$(MAKE)" \
|
MAKE="$(MAKE)" \
|
||||||
MAKEFLAGS="$(MAKEFLAGS) $(SUBMAKE_OPTIONS)" \
|
MAKEFLAGS="$(MAKEFLAGS)" \
|
||||||
./build-ports.sh
|
build-aux/build-ports.sh
|
||||||
|
|
||||||
.PHONY: sysroot-overlay
|
.PHONY: sysroot-overlay
|
||||||
sysroot-overlay: sysroot-fsh sysroot-system sysroot-ports
|
sysroot-overlay: sysroot-fsh sysroot-system sysroot-ports
|
||||||
! [ -d "$(SYSROOT_OVERLAY)" ] || \
|
! [ -d "$(SYSROOT_OVERLAY)" ] || \
|
||||||
cp -R --preserve=mode,timestamp,links "$(SYSROOT_OVERLAY)" -T "$(SYSROOT)"
|
cp -RT --preserve=mode,timestamp,links "$(SYSROOT_OVERLAY)" "$(SYSROOT)"
|
||||||
|
|
||||||
.PHONY: sysroot-user-skel
|
.PHONY: sysroot-user-skel
|
||||||
sysroot-user-skel: sysroot-fsh sysroot-system sysroot-ports sysroot-overlay
|
sysroot-user-skel: sysroot-fsh sysroot-system sysroot-ports sysroot-overlay
|
||||||
|
@ -121,7 +135,7 @@ sysroot-user-skel: sysroot-fsh sysroot-system sysroot-ports sysroot-overlay
|
||||||
.PHONY: sysroot-home-directory
|
.PHONY: sysroot-home-directory
|
||||||
sysroot-home-directory: sysroot-fsh sysroot-system sysroot-ports sysroot-overlay sysroot-user-skel
|
sysroot-home-directory: sysroot-fsh sysroot-system sysroot-ports sysroot-overlay sysroot-user-skel
|
||||||
mkdir -p "$(SYSROOT)/root"
|
mkdir -p "$(SYSROOT)/root"
|
||||||
cp -R "$(SYSROOT)/etc/skel" -T "$(SYSROOT)/root"
|
cp -RT "$(SYSROOT)/etc/skel" "$(SYSROOT)/root"
|
||||||
|
|
||||||
.PHONY: sysroot
|
.PHONY: sysroot
|
||||||
sysroot: sysroot-system sysroot-source sysroot-ports sysroot-overlay sysroot-home-directory
|
sysroot: sysroot-system sysroot-source sysroot-ports sysroot-overlay sysroot-home-directory
|
||||||
|
@ -134,15 +148,15 @@ $(SORTIX_REPOSITORY_DIR)/$(HOST): $(SORTIX_REPOSITORY_DIR)
|
||||||
|
|
||||||
.PHONY: clean-core
|
.PHONY: clean-core
|
||||||
clean-core:
|
clean-core:
|
||||||
(for D in $(MODULES); do $(MAKE) clean $(SUBMAKE_OPTIONS) --directory $$D || exit $$?; done)
|
(for D in $(MODULES); do $(MAKE) clean -C $$D || exit $$?; done)
|
||||||
|
|
||||||
.PHONY: clean-ports
|
.PHONY: clean-ports
|
||||||
clean-ports:
|
clean-ports:
|
||||||
@SORTIX_PORTS_DIR="$(SORTIX_PORTS_DIR)" \
|
@SORTIX_PORTS_DIR="$(SORTIX_PORTS_DIR)" \
|
||||||
HOST="$(HOST)" \
|
HOST="$(HOST)" \
|
||||||
MAKE="$(MAKE)" \
|
MAKE="$(MAKE)" \
|
||||||
MAKEFLAGS="$(MAKEFLAGS) $(SUBMAKE_OPTIONS)" \
|
MAKEFLAGS="$(MAKEFLAGS)" \
|
||||||
./clean-ports.sh
|
build-aux/clean-ports.sh
|
||||||
|
|
||||||
.PHONY: clean-builds
|
.PHONY: clean-builds
|
||||||
clean-builds:
|
clean-builds:
|
||||||
|
@ -174,7 +188,7 @@ mostlyclean: clean-core clean-ports clean-builds clean-release clean-sysroot
|
||||||
distclean: clean-core clean-ports clean-builds clean-release clean-repository clean-sysroot
|
distclean: clean-core clean-ports clean-builds clean-release clean-repository clean-sysroot
|
||||||
|
|
||||||
.PHONY: most-things
|
.PHONY: most-things
|
||||||
most-things: sysroot initrd deb tar iso
|
most-things: sysroot initrd tar iso
|
||||||
|
|
||||||
.PHONY: everything
|
.PHONY: everything
|
||||||
everything: most-things iso.xz
|
everything: most-things iso.xz
|
||||||
|
@ -232,6 +246,7 @@ $(INITRD): sysroot
|
||||||
echo "exclude /boot" >> $(INITRD).filter
|
echo "exclude /boot" >> $(INITRD).filter
|
||||||
echo "exclude /dev" >> $(INITRD).filter
|
echo "exclude /dev" >> $(INITRD).filter
|
||||||
echo "exclude /next" >> $(INITRD).filter
|
echo "exclude /next" >> $(INITRD).filter
|
||||||
|
echo "exclude /src/sysroot" >> $(INITRD).filter
|
||||||
echo "exclude /tmp" >> $(INITRD).filter
|
echo "exclude /tmp" >> $(INITRD).filter
|
||||||
for OTHER_PLATFORM in $(OTHER_PLATFORMS); do \
|
for OTHER_PLATFORM in $(OTHER_PLATFORMS); do \
|
||||||
echo "exclude /$$OTHER_PLATFORM" >> $(INITRD).filter; \
|
echo "exclude /$$OTHER_PLATFORM" >> $(INITRD).filter; \
|
||||||
|
@ -249,22 +264,6 @@ initrd: $(INITRD)
|
||||||
sortix.initrd: $(INITRD)
|
sortix.initrd: $(INITRD)
|
||||||
cp $(INITRD) sortix.initrd
|
cp $(INITRD) sortix.initrd
|
||||||
|
|
||||||
# Local machine
|
|
||||||
|
|
||||||
.PHONY: install
|
|
||||||
install: sysroot initrd
|
|
||||||
cp "$(SYSROOT)/boot/$(HOST)/sortix.bin" /boot/sortix.initrd
|
|
||||||
cp $(INITRD) /boot/sortix.initrd
|
|
||||||
cp debsrc/etc/grub.d/42_sortix /etc/grub.d/42_sortix
|
|
||||||
chmod +x /etc/grub.d/42_sortix
|
|
||||||
update-grub
|
|
||||||
|
|
||||||
.PHONY: uninstall
|
|
||||||
uninstall:
|
|
||||||
rm -f /boot/sortix.bin
|
|
||||||
rm -f /boot/sortix.initrd
|
|
||||||
rm -f /etc/grub.d/42_sortix
|
|
||||||
|
|
||||||
# Packaging
|
# Packaging
|
||||||
|
|
||||||
$(SORTIX_BUILDS_DIR):
|
$(SORTIX_BUILDS_DIR):
|
||||||
|
@ -276,45 +275,18 @@ $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).tar.xz: sysroot $(INITRD) $(SORTIX_BUILDS_DIR
|
||||||
mkdir -p $(SORTIX_BUILDS_DIR)/tardir/boot
|
mkdir -p $(SORTIX_BUILDS_DIR)/tardir/boot
|
||||||
cp "$(SYSROOT)/boot/$(HOST)/sortix.bin" $(SORTIX_BUILDS_DIR)/tardir/boot/sortix.bin
|
cp "$(SYSROOT)/boot/$(HOST)/sortix.bin" $(SORTIX_BUILDS_DIR)/tardir/boot/sortix.bin
|
||||||
cp $(INITRD) $(SORTIX_BUILDS_DIR)/tardir/boot/sortix.initrd
|
cp $(INITRD) $(SORTIX_BUILDS_DIR)/tardir/boot/sortix.initrd
|
||||||
cp -R debsrc -T $(SORTIX_BUILDS_DIR)/tardir
|
|
||||||
rm -rf $(SORTIX_BUILDS_DIR)/tardir/DEBIAN
|
|
||||||
tar --create --xz --file $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).tar.xz -C $(SORTIX_BUILDS_DIR)/tardir `ls $(SORTIX_BUILDS_DIR)/tardir`
|
tar --create --xz --file $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).tar.xz -C $(SORTIX_BUILDS_DIR)/tardir `ls $(SORTIX_BUILDS_DIR)/tardir`
|
||||||
rm -rf $(SORTIX_BUILDS_DIR)/tardir
|
rm -rf $(SORTIX_BUILDS_DIR)/tardir
|
||||||
|
|
||||||
.PHONY: tar
|
.PHONY: tar
|
||||||
tar: $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).tar.xz
|
tar: $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).tar.xz
|
||||||
|
|
||||||
$(SORTIX_BUILDS_DIR)/$(DEBNAME).deb: sysroot $(INITRD) $(SORTIX_BUILDS_DIR)
|
|
||||||
rm -rf $(SORTIX_BUILDS_DIR)/$(DEBNAME)
|
|
||||||
mkdir -p $(SORTIX_BUILDS_DIR)/$(DEBNAME)
|
|
||||||
mkdir -p $(SORTIX_BUILDS_DIR)/$(DEBNAME)/boot
|
|
||||||
cp "$(SYSROOT)/boot/$(HOST)/sortix.bin" $(SORTIX_BUILDS_DIR)/$(DEBNAME)/boot/sortix.bin
|
|
||||||
cp $(INITRD) $(SORTIX_BUILDS_DIR)/$(DEBNAME)/boot/sortix.initrd
|
|
||||||
expr \( `stat --printf="%s" $(SORTIX_BUILDS_DIR)/$(DEBNAME)/boot/sortix.bin` \
|
|
||||||
+ `stat --printf="%s" $(SORTIX_BUILDS_DIR)/$(DEBNAME)/boot/sortix.initrd` \
|
|
||||||
+ 1023 \) / 1024 > $(SORTIX_BUILDS_DIR)/$(DEBNAME)/boot/deb.size
|
|
||||||
cp -R debsrc -T $(SORTIX_BUILDS_DIR)/$(DEBNAME)
|
|
||||||
SIZE=`cat $(SORTIX_BUILDS_DIR)/$(DEBNAME)/boot/deb.size`; \
|
|
||||||
cat debsrc/DEBIAN/control | \
|
|
||||||
sed "s/SORTIX_PACKAGE_NAME/sortix/g" | \
|
|
||||||
sed "s/SORTIX_VERSION/$(VERSION)/g" | \
|
|
||||||
sed "s/SORTIX_ARCH/all/g" | \
|
|
||||||
sed "s/SORTIX_SIZE/$$SIZE/g" | \
|
|
||||||
cat > $(SORTIX_BUILDS_DIR)/$(DEBNAME)/DEBIAN/control
|
|
||||||
rm $(SORTIX_BUILDS_DIR)/$(DEBNAME)/boot/deb.size
|
|
||||||
dpkg --build $(SORTIX_BUILDS_DIR)/$(DEBNAME) $(SORTIX_BUILDS_DIR)/$(DEBNAME).deb
|
|
||||||
rm -rf $(SORTIX_BUILDS_DIR)/$(DEBNAME)/DEBIAN
|
|
||||||
rm -rf $(SORTIX_BUILDS_DIR)/$(DEBNAME)
|
|
||||||
|
|
||||||
.PHONY: deb
|
|
||||||
deb: $(SORTIX_BUILDS_DIR)/$(DEBNAME).deb
|
|
||||||
|
|
||||||
# Bootable images
|
# Bootable images
|
||||||
|
|
||||||
$(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso: sysroot $(INITRD) $(SORTIX_BUILDS_DIR)
|
$(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso: sysroot $(INITRD) $(SORTIX_BUILDS_DIR)
|
||||||
rm -rf $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso
|
rm -rf $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso
|
||||||
mkdir -p $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso
|
mkdir -p $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso
|
||||||
cp -R isosrc -T $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso
|
cp -RT isosrc $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso
|
||||||
cp "$(SYSROOT)/boot/$(HOST)/sortix.bin" $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/boot/sortix.bin
|
cp "$(SYSROOT)/boot/$(HOST)/sortix.bin" $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/boot/sortix.bin
|
||||||
cp $(INITRD) $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/boot/sortix.initrd
|
cp $(INITRD) $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/boot/sortix.initrd
|
||||||
grub-mkrescue -o $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso
|
grub-mkrescue -o $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso
|
||||||
|
@ -330,10 +302,10 @@ iso: $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso
|
||||||
iso.xz: $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso.xz
|
iso.xz: $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso.xz
|
||||||
|
|
||||||
sortix.iso: $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso
|
sortix.iso: $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso
|
||||||
cp $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso $@
|
cp $< $@
|
||||||
|
|
||||||
sortix.iso.xz: $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso.xz
|
sortix.iso.xz: $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso.xz
|
||||||
cp $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso.xz $@
|
cp $< $@
|
||||||
|
|
||||||
# Release
|
# Release
|
||||||
|
|
||||||
|
@ -352,12 +324,6 @@ $(SORTIX_RELEASE_DIR)/$(VERSION)/builds/$(BUILD_NAME).iso.xz: $(SORTIX_BUILDS_DI
|
||||||
.PHONY: release-iso.xz
|
.PHONY: release-iso.xz
|
||||||
release-iso.xz: $(SORTIX_RELEASE_DIR)/$(VERSION)/builds/$(BUILD_NAME).iso.xz
|
release-iso.xz: $(SORTIX_RELEASE_DIR)/$(VERSION)/builds/$(BUILD_NAME).iso.xz
|
||||||
|
|
||||||
$(SORTIX_RELEASE_DIR)/$(VERSION)/builds/$(DEBNAME).deb: $(SORTIX_BUILDS_DIR)/$(DEBNAME).deb $(SORTIX_RELEASE_DIR)/$(VERSION)/builds
|
|
||||||
cp $< $@
|
|
||||||
|
|
||||||
.PHONY: release-deb
|
|
||||||
release-deb: $(SORTIX_RELEASE_DIR)/$(VERSION)/builds/$(DEBNAME).deb
|
|
||||||
|
|
||||||
$(SORTIX_RELEASE_DIR)/$(VERSION)/builds/$(BUILD_NAME).tar.xz: $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).tar.xz $(SORTIX_RELEASE_DIR)/$(VERSION)/builds
|
$(SORTIX_RELEASE_DIR)/$(VERSION)/builds/$(BUILD_NAME).tar.xz: $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).tar.xz $(SORTIX_RELEASE_DIR)/$(VERSION)/builds
|
||||||
cp $< $@
|
cp $< $@
|
||||||
|
|
||||||
|
@ -365,10 +331,10 @@ $(SORTIX_RELEASE_DIR)/$(VERSION)/builds/$(BUILD_NAME).tar.xz: $(SORTIX_BUILDS_DI
|
||||||
release-tar: $(SORTIX_RELEASE_DIR)/$(VERSION)/builds/$(BUILD_NAME).tar.xz
|
release-tar: $(SORTIX_RELEASE_DIR)/$(VERSION)/builds/$(BUILD_NAME).tar.xz
|
||||||
|
|
||||||
.PHONY: release-builds
|
.PHONY: release-builds
|
||||||
release-builds: release-iso.xz release-deb release-tar
|
release-builds: release-iso.xz release-tar
|
||||||
|
|
||||||
$(SORTIX_RELEASE_DIR)/$(VERSION)/doc: $(SORTIX_RELEASE_DIR)/$(VERSION) doc doc/*
|
$(SORTIX_RELEASE_DIR)/$(VERSION)/doc: $(SORTIX_RELEASE_DIR)/$(VERSION) doc doc/*
|
||||||
cp -R doc -T $(SORTIX_RELEASE_DIR)/$(VERSION)/doc
|
cp -RT doc $(SORTIX_RELEASE_DIR)/$(VERSION)/doc
|
||||||
rm -f $(SORTIX_RELEASE_DIR)/$(VERSION)/doc/.gitignore
|
rm -f $(SORTIX_RELEASE_DIR)/$(VERSION)/doc/.gitignore
|
||||||
rm -f $(SORTIX_RELEASE_DIR)/$(VERSION)/doc/Makefile
|
rm -f $(SORTIX_RELEASE_DIR)/$(VERSION)/doc/Makefile
|
||||||
|
|
||||||
|
@ -385,7 +351,7 @@ $(SORTIX_RELEASE_DIR)/$(VERSION)/repository:
|
||||||
mkdir -p $@
|
mkdir -p $@
|
||||||
|
|
||||||
$(SORTIX_RELEASE_DIR)/$(VERSION)/repository/$(HOST): sysroot $(SORTIX_REPOSITORY_DIR)/$(HOST) $(SORTIX_RELEASE_DIR)/$(VERSION)/repository
|
$(SORTIX_RELEASE_DIR)/$(VERSION)/repository/$(HOST): sysroot $(SORTIX_REPOSITORY_DIR)/$(HOST) $(SORTIX_RELEASE_DIR)/$(VERSION)/repository
|
||||||
cp -R $(SORTIX_REPOSITORY_DIR)/$(HOST) -T $@
|
cp -RT $(SORTIX_REPOSITORY_DIR)/$(HOST) $@
|
||||||
|
|
||||||
.PHONY: release-repository
|
.PHONY: release-repository
|
||||||
release-repository: $(SORTIX_RELEASE_DIR)/$(VERSION)/repository/$(HOST)
|
release-repository: $(SORTIX_RELEASE_DIR)/$(VERSION)/repository/$(HOST)
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
SOFTWARE_MEANT_FOR_SORTIX=1
|
SOFTWARE_MEANT_FOR_SORTIX=1
|
||||||
include ../compiler.mak
|
include ../build-aux/platform.mak
|
||||||
include ../version.mak
|
include ../build-aux/compiler.mak
|
||||||
include ../dirs.mak
|
include ../build-aux/version.mak
|
||||||
|
include ../build-aux/dirs.mak
|
||||||
|
|
||||||
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
||||||
CXXFLAGS?=$(OPTLEVEL)
|
CXXFLAGS?=$(OPTLEVEL)
|
||||||
|
@ -25,4 +26,3 @@ install: all
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(BINARIES) *.o
|
rm -f $(BINARIES) *.o
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
make_dir_path_absolute() {
|
make_dir_path_absolute() {
|
|
@ -1,5 +1,3 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
make_dir_path_absolute() {
|
make_dir_path_absolute() {
|
|
@ -1,6 +1,3 @@
|
||||||
COMPILER_MAK_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
|
|
||||||
include $(COMPILER_MAK_DIR)/platform.mak
|
|
||||||
|
|
||||||
# Warn if default target is used and the software shouldn't be built under Sortix.
|
# Warn if default target is used and the software shouldn't be built under Sortix.
|
||||||
ifeq ($(BUILD_IS_SORTIX),1)
|
ifeq ($(BUILD_IS_SORTIX),1)
|
||||||
ifeq ($(MAKEFILE_NOT_MEANT_FOR_SORTIX), 1)
|
ifeq ($(MAKEFILE_NOT_MEANT_FOR_SORTIX), 1)
|
|
@ -1,12 +1,8 @@
|
||||||
ifeq ($(HOST_IS_SORTIX),1)
|
ifeq ($(HOST_IS_SORTIX),1)
|
||||||
DEFAULT_PREFIX=
|
DEFAULT_PREFIX=
|
||||||
else
|
|
||||||
DEFAULT_PREFIX=/usr/local
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(HOST_IS_SORTIX),1)
|
|
||||||
DEFAULT_EXEC_PREFIX=$(PREFIX)/$(HOST)
|
DEFAULT_EXEC_PREFIX=$(PREFIX)/$(HOST)
|
||||||
else
|
else
|
||||||
|
DEFAULT_PREFIX=/usr/local
|
||||||
DEFAULT_EXEC_PREFIX=$(PREFIX)
|
DEFAULT_EXEC_PREFIX=$(PREFIX)
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -4,7 +4,7 @@ UNAME_PLATFORM:=$(shell uname -i)
|
||||||
# Detect the platform that the software is being built on.
|
# Detect the platform that the software is being built on.
|
||||||
ifndef BUILD
|
ifndef BUILD
|
||||||
|
|
||||||
# If the software is being built on Sortix-
|
# If the software is being built on Sortix.
|
||||||
ifeq ($(UNAME_OS),Sortix)
|
ifeq ($(UNAME_OS),Sortix)
|
||||||
ifeq ($(MAKEFILE_NOT_MEANT_FOR_SORTIX), 1)
|
ifeq ($(MAKEFILE_NOT_MEANT_FOR_SORTIX), 1)
|
||||||
makefile_not_meant_for_sortix:
|
makefile_not_meant_for_sortix:
|
||||||
|
@ -18,7 +18,7 @@ makefile_not_meant_for_sortix:
|
||||||
BUILD:=x86_64-sortix
|
BUILD:=x86_64-sortix
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# If the softwarte is not built on Sortix.
|
# If the software is not built on Sortix.
|
||||||
else
|
else
|
||||||
ifeq ($(MEANT_FOR_SORTIX), 1)
|
ifeq ($(MEANT_FOR_SORTIX), 1)
|
||||||
makefile_meant_for_sortix:
|
makefile_meant_for_sortix:
|
||||||
|
@ -36,21 +36,13 @@ makefile_meant_for_sortix:
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
MFLAGS:=$(MFLAGS) BUILD=$(BUILD)
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Determine the platform the software will run on.
|
# Determine the platform the software will run on.
|
||||||
ifndef HOST
|
HOST?=$(BUILD)
|
||||||
HOST:=$(BUILD)
|
|
||||||
MFLAGS:=$(MFLAGS) HOST=$(HOST)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Determine the platform the software will target.
|
# Determine the platform the software will target.
|
||||||
ifndef TARGET
|
TARGET?=$(HOST)
|
||||||
TARGET:=$(HOST)
|
|
||||||
MFLAGS:=$(MFLAGS) TARGET=$(TARGET)
|
|
||||||
endif
|
|
||||||
|
|
||||||
BUILD_IS_SORTIX:=$(if $(shell echo $(BUILD) | grep sortix$),1,0)
|
BUILD_IS_SORTIX:=$(if $(shell echo $(BUILD) | grep sortix$),1,0)
|
||||||
HOST_IS_SORTIX:=$(if $(shell echo $(HOST) | grep sortix$),1,0)
|
HOST_IS_SORTIX:=$(if $(shell echo $(HOST) | grep sortix$),1,0)
|
|
@ -1,6 +1,7 @@
|
||||||
include ../compiler.mak
|
include ../build-aux/platform.mak
|
||||||
include ../version.mak
|
include ../build-aux/compiler.mak
|
||||||
include ../dirs.mak
|
include ../build-aux/version.mak
|
||||||
|
include ../build-aux/dirs.mak
|
||||||
|
|
||||||
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
||||||
CXXFLAGS?=$(OPTLEVEL)
|
CXXFLAGS?=$(OPTLEVEL)
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
Package: SORTIX_PACKAGE_NAME
|
|
||||||
Version: SORTIX_VERSION
|
|
||||||
Section: kernel
|
|
||||||
Priority: optional
|
|
||||||
Architecture: SORTIX_ARCH
|
|
||||||
Installed-Size: SORTIX_SIZE
|
|
||||||
Essential: no
|
|
||||||
Recommends: grub2, xorriso
|
|
||||||
Provides: sortix
|
|
||||||
Maintainer: Jonas Termansen [sortie@maxsi.org]
|
|
||||||
Description: Sortix is a small hobby kernel developed for the heck of it.
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
set -e
|
|
||||||
update-grub
|
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
set -e
|
|
||||||
if [ "$1" != "upgrade" ]; then update-grub; fi
|
|
|
@ -1,10 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
for KERNEL in `ls /boot | grep sortix | grep bin`; do
|
|
||||||
echo "Found Sortix kernel: $KERNEL" >&2
|
|
||||||
INITRD=`echo "$KERNEL" | sed 's/bin/initrd/g'`
|
|
||||||
echo "menuentry \"Sortix\" {"
|
|
||||||
echo "\tmultiboot /boot/$KERNEL"
|
|
||||||
echo "\tmodule /boot/$INITRD"
|
|
||||||
echo "}"
|
|
||||||
done
|
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
SOFTWARE_MEANT_FOR_SORTIX=1
|
SOFTWARE_MEANT_FOR_SORTIX=1
|
||||||
include ../compiler.mak
|
include ../build-aux/platform.mak
|
||||||
include ../version.mak
|
include ../build-aux/compiler.mak
|
||||||
include ../dirs.mak
|
include ../build-aux/version.mak
|
||||||
|
include ../build-aux/dirs.mak
|
||||||
|
|
||||||
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
||||||
CXXFLAGS?=$(OPTLEVEL)
|
CXXFLAGS?=$(OPTLEVEL)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
include ../compiler.mak
|
include ../build-aux/platform.mak
|
||||||
include ../version.mak
|
include ../build-aux/compiler.mak
|
||||||
include ../dirs.mak
|
include ../build-aux/version.mak
|
||||||
|
include ../build-aux/dirs.mak
|
||||||
|
|
||||||
DOCUMENTS:=\
|
DOCUMENTS:=\
|
||||||
cross-compilation-sins \
|
cross-compilation-sins \
|
||||||
|
|
164
doc/user-guide
164
doc/user-guide
|
@ -67,7 +67,7 @@ More Documentation
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
The system documentation (at least what has been documented so far) is installed
|
The system documentation (at least what has been documented so far) is installed
|
||||||
in the /share/doc directory. You can view these documents (well, the ones that
|
in the `/share/doc` directory. You can view these documents (well, the ones that
|
||||||
are plain text, there is no `man` program yet) using the `editor` program, which
|
are plain text, there is no `man` program yet) using the `editor` program, which
|
||||||
you exit by pressing Control-Q ('^Q'). It is probably a good idea to change
|
you exit by pressing Control-Q ('^Q'). It is probably a good idea to change
|
||||||
the resolution using the `chvideomode` program if drivers are available.
|
the resolution using the `chvideomode` program if drivers are available.
|
||||||
|
@ -81,20 +81,20 @@ Filesystem Structure
|
||||||
|
|
||||||
This as an incomplete list of the common top level directories in Sortix.
|
This as an incomplete list of the common top level directories in Sortix.
|
||||||
|
|
||||||
* /boot - Kernel images, initrd images.
|
* `/boot` - Kernel images, initrd images.
|
||||||
* /dev - Device filesystem.
|
* `/dev` - Device filesystem.
|
||||||
* /etc - System-wide configuration.
|
* `/etc` - System-wide configuration.
|
||||||
* /home - User directories.
|
* `/home` - User directories.
|
||||||
* /include - Header files.
|
* `/include` - Header files.
|
||||||
* /root - Directory of the root user.
|
* `/root` - Directory of the root user.
|
||||||
* /share - Architecture independent files.
|
* `/share` - Architecture independent files.
|
||||||
* /share/doc - Documentation.
|
* `/share/doc` - Documentation.
|
||||||
* /src - System source code.
|
* `/src` - System source code.
|
||||||
* /tmp - Temporary files.
|
* `/tmp` - Temporary files.
|
||||||
* /$cputype - Files for $cputype.
|
* `/$cputype` - Files for $cputype.
|
||||||
* /$cputype/bin - Programs for $cputype.
|
* `/$cputype/bin` - Programs for $cputype.
|
||||||
* /$cputype/lib - Shared libaries for $cputype.
|
* `/$cputype/lib` - Shared libaries for $cputype.
|
||||||
* /$cputype/libexec - Shared libaries for $cputype.
|
* `/$cputype/libexec` - Shared libaries for $cputype.
|
||||||
|
|
||||||
Some of these directories not be present or empty on your installation.
|
Some of these directories not be present or empty on your installation.
|
||||||
|
|
||||||
|
@ -292,9 +292,9 @@ System Source Code
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
The entire system source code (except third party components) is installed into
|
The entire system source code (except third party components) is installed into
|
||||||
the /src directory. You can use the `editor` program to view and edit the system
|
the `/src` directory. You can use the `editor` program to view and edit the
|
||||||
source code. If your release contains the GNU compiler collection (gcc), you can
|
system source code. If your release contains the GNU compiler collection (gcc),
|
||||||
even modify the system and compile custom programs.
|
you can even modify the system and compile custom programs.
|
||||||
|
|
||||||
Editing Files
|
Editing Files
|
||||||
-------------
|
-------------
|
||||||
|
@ -337,14 +337,14 @@ will have to be done from an external system. You must take care to send the
|
||||||
filesystem server a SIGTERM signal to shut down when you are unfinished,
|
filesystem server a SIGTERM signal to shut down when you are unfinished,
|
||||||
otherwise the data may not have been synced to disk. This will be done
|
otherwise the data may not have been synced to disk. This will be done
|
||||||
automatically if the root filesystem was mounted by the initrd. If the device
|
automatically if the root filesystem was mounted by the initrd. If the device
|
||||||
/dev/ata0p1 contasins an ext2 filesystem, then it can be mounted using:
|
`/dev/ata0p1` contasins an ext2 filesystem, then it can be mounted using:
|
||||||
|
|
||||||
mkdir /fs
|
mkdir /fs
|
||||||
extfs /dev/ata0 /fs
|
extfs /dev/ata0 /fs
|
||||||
|
|
||||||
You can then access the filesystem at /fs. There is no real unmount support and
|
You can then access the filesystem at `/fs`. There is no real unmount support
|
||||||
if the file system server shuts down, the system may hang trying to communicate
|
and if the file system server shuts down, the system may hang trying to
|
||||||
with a server that isn't there.
|
communicate with a server that isn't there.
|
||||||
|
|
||||||
Graphical User Interface
|
Graphical User Interface
|
||||||
------------------------
|
------------------------
|
||||||
|
@ -366,33 +366,40 @@ possible to build all the the third party software used to build itself, but you
|
||||||
can use the system to improve it until it is possible to build third party
|
can use the system to improve it until it is possible to build third party
|
||||||
software under it.
|
software under it.
|
||||||
|
|
||||||
You need a version of Sortix that ships its own source code in /src and contains
|
You need a version of Sortix that ships its own source code in `/src` and
|
||||||
a copy of the GNU Compiler Collection (gcc). Additionally, you should be booting
|
contains a copy of the GNU Compiler Collection (gcc). Additionally, you should
|
||||||
from a harddisk so that the new kernel is used after a reboot, otherwise you
|
be booting from a harddisk so that the new kernel is used after a reboot,
|
||||||
will have to be satisfied with only using a new user-land.
|
otherwise you will have to be satisfied with only using a new user-land.
|
||||||
|
|
||||||
You can use the `colormake` program instead of regular `make` if you want
|
You can use the `colormake` program instead of regular `make` if you want
|
||||||
colored output, which eases spotting compile warnings and errors. This program
|
colored output, which eases spotting compile warnings and errors. This program
|
||||||
simply invokes the real `make` and colors its output.
|
simply invokes the real `make` and colors its output.
|
||||||
|
|
||||||
The /src/system directory contains a makefile that eases rebuilding the entire
|
The `/src` directory contains a makefile that eases rebuilding the entire
|
||||||
system automatically. To rebuild the entire system simply run:
|
system automatically. To rebuild the entire system simply run:
|
||||||
|
|
||||||
cd /src/system
|
cd /src
|
||||||
make system
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
This will recompile the entire operating system and install it into the root
|
This will recompile the entire operating system and install it into the staging
|
||||||
directory as it progresses. You will be running a new version of everything upon
|
area `/src/sysroot`. This is a full usable image of the root filesystem for a
|
||||||
completion, except the kernel and programs were previously started will still
|
Sortix installation and you can successfully execute `chroot /src/sysroot init`.
|
||||||
be running the old version. If the root filesystem is permanent and the computer
|
The install target does a single `cp -RT /src/sysroot /` command that replaces
|
||||||
has been configured to boot from it, then you can reboot the system by exiting
|
copies all files in `/src/sysroot` onto their root filesystem counterparts, with
|
||||||
the initial shell. You will then be running an entirely new system.
|
the exception that the precious files in /src are not replaced with their
|
||||||
|
/src/system/src counterparts (even though they usually would be equal).
|
||||||
|
|
||||||
In general, the projects that are part of the core system can be easily built
|
You will be running a new version of everything upon completion, except the
|
||||||
and installed with the provided makefiles. In general, they can be built with
|
kernel and programs were previously started will still be running the old
|
||||||
this simple sequence:
|
version. If the root filesystem is permanent and the computer has been
|
||||||
|
configured to boot from it, then you can reboot the system by exiting the
|
||||||
|
initial shell. You will then be running an entirely new system.
|
||||||
|
|
||||||
cd /src/package
|
The projects that are part of the core system can be easily built and installed
|
||||||
|
with the provided makefiles. They can be built with this simple sequence:
|
||||||
|
|
||||||
|
cd /src/<package>
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
|
|
||||||
|
@ -416,7 +423,7 @@ the package will expect that it is installed into `/local` when it is run. This
|
||||||
is useful for package management purposes to capture a copy of all the installed
|
is useful for package management purposes to capture a copy of all the installed
|
||||||
files before they are installed for real.
|
files before they are installed for real.
|
||||||
|
|
||||||
### Building the C library ###
|
### The C library ###
|
||||||
|
|
||||||
The C library (libc) implements the common functions, data types and constants
|
The C library (libc) implements the common functions, data types and constants
|
||||||
required by the C programming language standard, POSIX, other standards, and
|
required by the C programming language standard, POSIX, other standards, and
|
||||||
|
@ -427,32 +434,19 @@ freestanding C library designed for inclusion into the Sortix kernel. After
|
||||||
rebuilding the C library, you may wish to rebuild the entire user-land since
|
rebuilding the C library, you may wish to rebuild the entire user-land since
|
||||||
those programs have an older libc version statically linked into them.
|
those programs have an older libc version statically linked into them.
|
||||||
|
|
||||||
cd /src/libc
|
### The Math Library ###
|
||||||
make
|
|
||||||
make install
|
|
||||||
|
|
||||||
### Building the Math Library ###
|
|
||||||
|
|
||||||
The Math Library (libm) provides useful mathematical functions for manipulating
|
The Math Library (libm) provides useful mathematical functions for manipulating
|
||||||
floating-point numbers of various sizes. This implements the <math.h> header as
|
floating-point numbers of various sizes. This implements the <math.h> header as
|
||||||
known from standard C. Like the C library, you will likely want to recompile
|
known from standard C. Like the C library, you will likely want to recompile
|
||||||
large parts of user-land if you update this library.
|
large parts of user-land if you update this library.
|
||||||
|
|
||||||
cd /src/libm
|
### The Pthread Library ###
|
||||||
make
|
|
||||||
make install
|
|
||||||
|
|
||||||
### Building the Pthread Library ###
|
|
||||||
|
|
||||||
The Pthread Library (libpthread) provides a threading implementation through the
|
The Pthread Library (libpthread) provides a threading implementation through the
|
||||||
standard header <pthread.h> as known from POSIX. Like the C library, you will
|
standard header <pthread.h> as known from POSIX. Like the C library, you will
|
||||||
likely want to recompile large parts of user-land if you update this library.
|
likely want to recompile large parts of user-land if you update this library.
|
||||||
|
### The Display Daemon ###
|
||||||
cd /src/libpthread
|
|
||||||
make
|
|
||||||
make install
|
|
||||||
|
|
||||||
### Building the Display Daemon ###
|
|
||||||
|
|
||||||
The dispd library allows processes to communicate with the dispd server that
|
The dispd library allows processes to communicate with the dispd server that
|
||||||
handles window management and graphical output. Currently, there is no such
|
handles window management and graphical output. Currently, there is no such
|
||||||
|
@ -460,89 +454,49 @@ server and the library calls the kernel interface itself. This library allows
|
||||||
games such as asteroids to detect the current resolution and request whatever
|
games such as asteroids to detect the current resolution and request whatever
|
||||||
resolution they need to function.
|
resolution they need to function.
|
||||||
|
|
||||||
cd /src/dispd
|
### Utility Collection ###
|
||||||
make
|
|
||||||
make install
|
|
||||||
|
|
||||||
### Building the Utility Collection ###
|
|
||||||
|
|
||||||
The utility collection contains common programs such as `ls`, `cp`, `mkdir` and
|
The utility collection contains common programs such as `ls`, `cp`, `mkdir` and
|
||||||
more. These programs allow the basic operation from the command line.
|
more. These programs allow the basic operation from the command line.
|
||||||
|
|
||||||
cd /src/utils
|
### Benchmarks ###
|
||||||
make
|
|
||||||
make install
|
|
||||||
|
|
||||||
### Building the Benchmarks ###
|
|
||||||
|
|
||||||
The system comes with some small and outdated benchmark programs. They don't
|
The system comes with some small and outdated benchmark programs. They don't
|
||||||
currently give any meaningful values, so you should not use them for anything.
|
currently give any meaningful values, so you should not use them for anything.
|
||||||
|
|
||||||
cd /src/bench
|
### Games ###
|
||||||
make
|
|
||||||
make install
|
|
||||||
|
|
||||||
### Building the Games ###
|
|
||||||
|
|
||||||
The games directory contains the source code for the above mentioned games.
|
The games directory contains the source code for the above mentioned games.
|
||||||
These depend on libdispd.
|
These depend on libdispd.
|
||||||
|
|
||||||
cd /src/games
|
### mbrfs ###
|
||||||
make
|
|
||||||
make install
|
|
||||||
|
|
||||||
### Building mbrfs ###
|
|
||||||
|
|
||||||
The `mbrfs` program creates block devices for every partition in the master boot
|
The `mbrfs` program creates block devices for every partition in the master boot
|
||||||
record in a block device.
|
record in a block device.
|
||||||
|
|
||||||
cd /src/mbr
|
### extfs ###
|
||||||
make
|
|
||||||
make install
|
|
||||||
|
|
||||||
### Building extfs ###
|
|
||||||
|
|
||||||
The `extfs` program translates a block device formatted with the second extended
|
The `extfs` program translates a block device formatted with the second extended
|
||||||
filesystem and mounts it at an empty directory.
|
filesystem and mounts it at an empty directory.
|
||||||
|
|
||||||
cd /src/ext
|
### mkinitrd ###
|
||||||
make
|
|
||||||
make install
|
|
||||||
|
|
||||||
### Building mkinitrd ###
|
|
||||||
|
|
||||||
This program produces a Sortix compatible initrd, the file that contains the
|
This program produces a Sortix compatible initrd, the file that contains the
|
||||||
initial filesystem used to bootstrap the real root filesystem.
|
initial filesystem used to bootstrap the real root filesystem.
|
||||||
|
|
||||||
cd /src/mkinitrd
|
### regress ###
|
||||||
make
|
|
||||||
make install
|
|
||||||
|
|
||||||
### Building regress ###
|
|
||||||
|
|
||||||
This is a collection of operating system test cases run using the `regress`
|
This is a collection of operating system test cases run using the `regress`
|
||||||
driver program.
|
driver program.
|
||||||
|
|
||||||
cd /src/regress
|
### carray ###
|
||||||
make
|
|
||||||
make install
|
|
||||||
|
|
||||||
### Building carray ###
|
|
||||||
|
|
||||||
This program converts a binary file to an C array.
|
This program converts a binary file to an C array.
|
||||||
|
|
||||||
cd /src/carray
|
### Sortix Kernel ###
|
||||||
make
|
|
||||||
make install
|
|
||||||
|
|
||||||
### Building the Sortix Kernel ###
|
|
||||||
|
|
||||||
The Sortix kernel is the core of the Sortix operating system. It provides all
|
The Sortix kernel is the core of the Sortix operating system. It provides all
|
||||||
the primitives libc needs to implement a Unix-like environment.
|
the primitives libc needs to implement a Unix-like environment.
|
||||||
|
|
||||||
cd /src/kernel
|
|
||||||
make
|
|
||||||
make install
|
|
||||||
|
|
||||||
Note that you need to reboot the system to use the new kernel and that you need
|
Note that you need to reboot the system to use the new kernel and that you need
|
||||||
a permanent root filesystem or your local changes will be lost.
|
a permanent root filesystem or your local changes will be lost.
|
||||||
|
|
10
ext/Makefile
10
ext/Makefile
|
@ -1,6 +1,7 @@
|
||||||
include ../compiler.mak
|
include ../build-aux/platform.mak
|
||||||
include ../version.mak
|
include ../build-aux/compiler.mak
|
||||||
include ../dirs.mak
|
include ../build-aux/version.mak
|
||||||
|
include ../build-aux/dirs.mak
|
||||||
|
|
||||||
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
||||||
CXXFLAGS?=$(OPTLEVEL)
|
CXXFLAGS?=$(OPTLEVEL)
|
||||||
|
@ -26,8 +27,7 @@ install: all
|
||||||
install $(BINARIES) $(DESTDIR)$(BINDIR)
|
install $(BINARIES) $(DESTDIR)$(BINDIR)
|
||||||
|
|
||||||
extfs: *.cpp *.h
|
extfs: *.cpp *.h
|
||||||
$(CXX) -std=gnu++11 $(CPPFLAGS) $(CXXFLAGS) $(wildcard *.cpp) -o $@ $(LIBS)
|
$(CXX) -std=gnu++11 $(CPPFLAGS) $(CXXFLAGS) *.cpp -o $@ $(LIBS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(BINARIES) *.o
|
rm -f $(BINARIES) *.o
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
SOFTWARE_MEANT_FOR_SORTIX=1
|
SOFTWARE_MEANT_FOR_SORTIX=1
|
||||||
include ../compiler.mak
|
include ../build-aux/platform.mak
|
||||||
include ../version.mak
|
include ../build-aux/compiler.mak
|
||||||
include ../dirs.mak
|
include ../build-aux/version.mak
|
||||||
|
include ../build-aux/dirs.mak
|
||||||
|
|
||||||
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
||||||
CXXFLAGS?=$(OPTLEVEL)
|
CXXFLAGS?=$(OPTLEVEL)
|
||||||
|
@ -26,4 +27,3 @@ install: all
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(BINARIES) *.o
|
rm -f $(BINARIES) *.o
|
||||||
|
|
||||||
|
|
|
@ -25,9 +25,3 @@ menuentry "Sortix" {
|
||||||
multiboot /boot/sortix.bin
|
multiboot /boot/sortix.bin
|
||||||
module /boot/sortix.initrd
|
module /boot/sortix.initrd
|
||||||
}
|
}
|
||||||
|
|
||||||
menuentry "Sortix (local harddisk)" {
|
|
||||||
search --file --set=root --no-floppy /sortix.bin
|
|
||||||
multiboot /sortix.bin
|
|
||||||
module /sortix.initrd.gz
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
SOFTWARE_MEANT_FOR_SORTIX=1
|
SOFTWARE_MEANT_FOR_SORTIX=1
|
||||||
include ../compiler.mak
|
include ../build-aux/platform.mak
|
||||||
include ../version.mak
|
include ../build-aux/compiler.mak
|
||||||
include ../dirs.mak
|
include ../build-aux/version.mak
|
||||||
|
include ../build-aux/dirs.mak
|
||||||
|
|
||||||
# Default values in case the user doesn't override these variables.
|
# Default values in case the user doesn't override these variables.
|
||||||
OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL)
|
OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL)
|
||||||
|
@ -190,8 +191,8 @@ endif
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(ALLOBJS) sortix.bin
|
rm -f $(ALLOBJS) sortix.bin
|
||||||
rm -f $(wildcard *.bin) $(wildcard *.out) $(wildcard *.tmp)
|
rm -f *.bin *.out *.tmp
|
||||||
rm -f $(wildcard *.o) $(wildcard */*.o) $(wildcard */*/*.o)
|
rm -f *.o */*.o */*/*.o
|
||||||
|
|
||||||
# Installation into sysroot
|
# Installation into sysroot
|
||||||
install: install-headers install-kernel
|
install: install-headers install-kernel
|
||||||
|
@ -207,4 +208,3 @@ install-kernel: install-kernel-binary
|
||||||
install-kernel-binary: sortix.bin
|
install-kernel-binary: sortix.bin
|
||||||
mkdir -p $(DESTDIR)$(BOOTDIR)/$(HOST)
|
mkdir -p $(DESTDIR)$(BOOTDIR)/$(HOST)
|
||||||
cp sortix.bin $(DESTDIR)$(BOOTDIR)/$(HOST)
|
cp sortix.bin $(DESTDIR)$(BOOTDIR)/$(HOST)
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
SOFTWARE_MEANT_FOR_SORTIX=1
|
SOFTWARE_MEANT_FOR_SORTIX=1
|
||||||
include ../compiler.mak
|
include ../build-aux/platform.mak
|
||||||
include ../version.mak
|
include ../build-aux/compiler.mak
|
||||||
include ../dirs.mak
|
include ../build-aux/version.mak
|
||||||
|
include ../build-aux/dirs.mak
|
||||||
|
|
||||||
OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL)
|
OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL)
|
||||||
|
|
||||||
|
@ -650,7 +651,7 @@ crtn.o \
|
||||||
MISCOBJ=\
|
MISCOBJ=\
|
||||||
$(CRTOBJ) \
|
$(CRTOBJ) \
|
||||||
|
|
||||||
HEADERS:=$(shell find include -type d)
|
HEADERS:=$(shell find include -type f)
|
||||||
|
|
||||||
LIBK_OBJS:=$(FREEOBJS:.o=.libk.o)
|
LIBK_OBJS:=$(FREEOBJS:.o=.libk.o)
|
||||||
LIBK_CPPFLAGS:=$(CPPFLAGS) -D__is_sortix_kernel
|
LIBK_CPPFLAGS:=$(CPPFLAGS) -D__is_sortix_kernel
|
||||||
|
@ -726,8 +727,11 @@ headers:
|
||||||
%.libk.o: %.cpp
|
%.libk.o: %.cpp
|
||||||
$(HOSTCXX) -c $< -o $@ $(LIBK_CPPFLAGS) $(LIBK_FLAGS) $(LIBK_CXXFLAGS)
|
$(HOSTCXX) -c $< -o $@ $(LIBK_CPPFLAGS) $(LIBK_FLAGS) $(LIBK_CXXFLAGS)
|
||||||
|
|
||||||
|
%.libk.o: %.S
|
||||||
|
$(HOSTCC) -c $< -o $@ $(LIBK_CPPFLAGS) $(LIBK_FLAGS) $(LIBK_CFLAGS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(wildcard *.o) $(wildcard */*.o) $(wildcard */*/*.o) $(wildcard *.a)
|
rm -f *.o */*.o */*/*.o *.a
|
||||||
|
|
||||||
# Installation into sysroot
|
# Installation into sysroot
|
||||||
install: install-headers install-libs install-libs-kernel
|
install: install-headers install-libs install-libs-kernel
|
||||||
|
@ -753,4 +757,3 @@ install-lib-dirs: $(DESTDIR)$(LIBDIR)
|
||||||
install-libs: $(INSTALLLIBS)
|
install-libs: $(INSTALLLIBS)
|
||||||
|
|
||||||
install-libs-kernel: $(INSTALLLIBSKERNEL)
|
install-libs-kernel: $(INSTALLLIBSKERNEL)
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
include ../platform.mak
|
include ../build-aux/platform.mak
|
||||||
include ../compiler.mak
|
include ../build-aux/compiler.mak
|
||||||
include ../version.mak
|
include ../build-aux/version.mak
|
||||||
include ../dirs.mak
|
include ../build-aux/dirs.mak
|
||||||
|
|
||||||
OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL)
|
OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL)
|
||||||
CFLAGS?=$(OPTLEVEL)
|
CFLAGS?=$(OPTLEVEL)
|
||||||
|
@ -413,4 +413,3 @@ install-libm-dirs:
|
||||||
|
|
||||||
install-libm: install-libm-dirs libm.a
|
install-libm: install-libm-dirs libm.a
|
||||||
cp -P libm.a $(DESTDIR)$(LIBDIR)
|
cp -P libm.a $(DESTDIR)$(LIBDIR)
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
SOFTWARE_MEANT_FOR_SORTIX=1
|
SOFTWARE_MEANT_FOR_SORTIX=1
|
||||||
include ../compiler.mak
|
include ../build-aux/platform.mak
|
||||||
include ../version.mak
|
include ../build-aux/compiler.mak
|
||||||
include ../dirs.mak
|
include ../build-aux/version.mak
|
||||||
|
include ../build-aux/dirs.mak
|
||||||
|
|
||||||
OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL)
|
OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL)
|
||||||
CXXFLAGS?=$(OPTLEVEL)
|
CXXFLAGS?=$(OPTLEVEL)
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
SOFTWARE_MEANT_FOR_SORTIX=1
|
SOFTWARE_MEANT_FOR_SORTIX=1
|
||||||
include ../compiler.mak
|
include ../build-aux/platform.mak
|
||||||
include ../version.mak
|
include ../build-aux/compiler.mak
|
||||||
include ../dirs.mak
|
include ../build-aux/version.mak
|
||||||
|
include ../build-aux/dirs.mak
|
||||||
|
|
||||||
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
||||||
CXXFLAGS?=$(OPTLEVEL)
|
CXXFLAGS?=$(OPTLEVEL)
|
||||||
|
@ -23,4 +24,3 @@ install: all
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(BINARY) *.o
|
rm -f $(BINARY) *.o
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
include ../compiler.mak
|
include ../build-aux/platform.mak
|
||||||
include ../version.mak
|
include ../build-aux/compiler.mak
|
||||||
include ../dirs.mak
|
include ../build-aux/version.mak
|
||||||
|
include ../build-aux/dirs.mak
|
||||||
|
|
||||||
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
||||||
CXXFLAGS?=$(OPTLEVEL)
|
CXXFLAGS?=$(OPTLEVEL)
|
||||||
|
@ -25,4 +26,3 @@ clean:
|
||||||
install: all
|
install: all
|
||||||
mkdir -p $(DESTDIR)$(BINDIR)
|
mkdir -p $(DESTDIR)$(BINDIR)
|
||||||
install $(BINARIES) $(DESTDIR)$(BINDIR)
|
install $(BINARIES) $(DESTDIR)$(BINDIR)
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
SOFTWARE_MEANT_FOR_SORTIX=1
|
SOFTWARE_MEANT_FOR_SORTIX=1
|
||||||
include ../compiler.mak
|
include ../build-aux/platform.mak
|
||||||
include ../version.mak
|
include ../build-aux/compiler.mak
|
||||||
include ../dirs.mak
|
include ../build-aux/version.mak
|
||||||
|
include ../build-aux/dirs.mak
|
||||||
|
|
||||||
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
||||||
CXXFLAGS?=$(OPTLEVEL)
|
CXXFLAGS?=$(OPTLEVEL)
|
||||||
|
@ -40,4 +41,3 @@ endif
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(BINARIES) $(TESTS) *.o
|
rm -f $(BINARIES) $(TESTS) *.o
|
||||||
|
|
||||||
|
|
146
system/Makefile
146
system/Makefile
|
@ -1,146 +0,0 @@
|
||||||
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)/libpthread clean
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/dispd clean
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/bench clean
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/carray clean
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/games clean
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/mkinitrd clean
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/utils clean
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/ext clean
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/mbr clean
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/systest clean
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/tix clean
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/kernel 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
|
|
||||||
mkdir -p $(ROOT)/$(cputype)/libexec
|
|
||||||
|
|
||||||
# Install the system headers.
|
|
||||||
system-headers:
|
|
||||||
$(MAKE) fsh ROOT=$(ROOT)
|
|
||||||
$(MAKE) system-headers_internal ROOT=$(ROOT)
|
|
||||||
|
|
||||||
system-headers_internal:
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/kernel install-headers DESTDIR=$(ROOT)
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/libc install-headers DESTDIR=$(ROOT)
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/libm install-headers DESTDIR=$(ROOT)
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/libpthread 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)/libpthread 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)/bench 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)/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)/systest install DESTDIR=$(ROOT) C_INCLUDE_PATH=$(ROOT)/include CPLUS_INCLUDE_PATH=$(ROOT)/include LIBRARY_PATH=$(ROOT)/$(cputype)/lib
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/tix install DESTDIR=$(ROOT) C_INCLUDE_PATH=$(ROOT)/include CPLUS_INCLUDE_PATH=$(ROOT)/include LIBRARY_PATH=$(ROOT)/$(cputype)/lib
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/kernel 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)/kernel install-headers DESTDIR=$(ROOT)
|
|
||||||
$(MAKE) -B -C $(SRCDIR)/kernel 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)
|
|
||||||
echo exclude /tix/$(OTHER_PLATFORM_1) >> $(INITRD_FILTER)
|
|
||||||
mkinitrd $(ROOT)/ -o $(INITRD) --format=sortix-initrd-2 --filter=$(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)
|
|
||||||
#
|
|
|
@ -1,6 +1,7 @@
|
||||||
include ../compiler.mak
|
include ../build-aux/platform.mak
|
||||||
include ../version.mak
|
include ../build-aux/compiler.mak
|
||||||
include ../dirs.mak
|
include ../build-aux/version.mak
|
||||||
|
include ../build-aux/dirs.mak
|
||||||
|
|
||||||
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
||||||
CPPFLAGS?=
|
CPPFLAGS?=
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
SOFTWARE_MEANT_FOR_SORTIX=1
|
SOFTWARE_MEANT_FOR_SORTIX=1
|
||||||
include ../compiler.mak
|
include ../build-aux/platform.mak
|
||||||
include ../version.mak
|
include ../build-aux/compiler.mak
|
||||||
include ../dirs.mak
|
include ../build-aux/version.mak
|
||||||
|
include ../build-aux/dirs.mak
|
||||||
|
|
||||||
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
||||||
CXXFLAGS?=$(OPTLEVEL)
|
CXXFLAGS?=$(OPTLEVEL)
|
||||||
|
@ -76,4 +77,3 @@ install: all
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(BINARIES) *.o
|
rm -f $(BINARIES) *.o
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue