Restructured paths
1. build is in build/$(arch) 2. tooldir is in build/toolchain-$(arch) 3. global_srcdir is in build/src-{world,toolchain} 4. global_objdir is in build/obj-{world,toolchain}
This commit is contained in:
parent
61db92519f
commit
a5d0778d53
19 changed files with 233 additions and 231 deletions
122
Makefile
122
Makefile
|
@ -1,86 +1,88 @@
|
|||
# Makefile - hhl - /usr/src
|
||||
# Makefile - hhl - /src
|
||||
# Copyright 2020 Nathan Fisher <nfisher.sr@gmail.com>
|
||||
#
|
||||
include src-config.mk
|
||||
include src-files.mk
|
||||
uid = $(shell id -u)
|
||||
|
||||
include_dir = /usr/include/mk
|
||||
include_dir = /src/include/mk
|
||||
make_includes += $(wildcard $(include_dir)/*.mk)
|
||||
|
||||
pkgdbdir = $(build)/var/db/pkg/base
|
||||
plists = $(pkgdbdir)/plist $(pkgdbdir)/etc.plist
|
||||
plists += $(pkgdbdir)/plist
|
||||
plists += $(pkgdbdir)/etc.plist
|
||||
|
||||
dirs += dev
|
||||
dirs += proc
|
||||
dirs += run
|
||||
dirs += sys
|
||||
|
||||
dirs = dev proc sys run
|
||||
ifeq ($(arch),x86_64)
|
||||
dirs += lib64
|
||||
endif
|
||||
alldirs = bin boot dev etc home lib lib64 media mnt \
|
||||
opt proc root run sbin srv sys tmp usr var
|
||||
alldirs += $(dirs)
|
||||
alldirs += bin
|
||||
alldirs += boot
|
||||
alldirs += etc
|
||||
alldirs += home
|
||||
alldirs += lib
|
||||
alldirs += media
|
||||
alldirs += mnt
|
||||
alldirs += opt
|
||||
alldirs += root
|
||||
alldirs += sbin
|
||||
alldirs += srv
|
||||
alldirs += tmp
|
||||
alldirs += usr
|
||||
alldirs += var
|
||||
|
||||
all: buildworld
|
||||
|
||||
toolchain-tgz: toolchain-hhl-${os_version}-${arch}.tgz
|
||||
.PHONY: all
|
||||
|
||||
toolchain-tbz: toolchain-hhl-${os_version}-${arch}.tbz
|
||||
|
||||
toolchain-txz: toolchain-hhl-${os_version}-${arch}.txz
|
||||
|
||||
rootfs-tgz: rootfs-hhl-${os_version}-${arch}.tgz
|
||||
|
||||
rootfs-tbz: rootfs-hhl-${os_version}-${arch}.tbz
|
||||
|
||||
rootfs-txz: rootfs-hhl-${os_version}-${arch}.txz
|
||||
|
||||
toolchain-hhl-${os_version}-${arch}.tgz: /toolchain/.built smalltools
|
||||
cd build && paxtar -M uidgid -czf ../$@ toolchain
|
||||
|
||||
toolchain-hhl-${os_version}-${arch}.tbz: /toolchain/.built smalltools
|
||||
cd build && paxtar -M uidgid -cjf ../$@ toolchain
|
||||
|
||||
toolchain-hhl-${os_version}-${arch}.txz: /toolchain/.built smalltools
|
||||
cd build && paxtar -M uidgid -cJf ../$@ toolchain
|
||||
|
||||
smalltools: /toolchain/.built
|
||||
$(MAKE) -C toolchain reduce-size
|
||||
|
||||
buildtools: /toolchain/.built
|
||||
buildtools: $(tooldir)/.built
|
||||
$(info $(grn)=== Temporary toolchain build ===$(reset))
|
||||
|
||||
/toolchain/.built: config.mk | $(dirs)
|
||||
.PHONY: buildtools
|
||||
|
||||
$(tooldir)/.built: config.mk | $(dirs)
|
||||
$(info $(grn)=== Building temporary toolchain ===$(reset))
|
||||
$(MAKE) -C toolchain
|
||||
touch $@
|
||||
|
||||
smalltools: $(tooldir)/.built
|
||||
$(MAKE) -C toolchain reduce-size
|
||||
|
||||
.PHONY: smalltools
|
||||
|
||||
toolsclean:
|
||||
$(MAKE) -C toolchain clean
|
||||
|
||||
src-files.mk:
|
||||
echo src-files = \\ > $@.in
|
||||
git ls-files | sort | while read l ; do echo $${l} \\ ; done | \
|
||||
sed '$$ s:\\::' >> $@.in
|
||||
mv $@.in $@
|
||||
.PHONY: toolsclean
|
||||
|
||||
buildworld: $(build)/.built $(plists)
|
||||
$(info $(grn)=== World build complete ===$(reset))
|
||||
|
||||
.PHONY: buildworld
|
||||
|
||||
strip: $(build)/.stripped
|
||||
|
||||
.PHONY: strip
|
||||
|
||||
$(build)/.stripped:
|
||||
for dir in $(stripdirs) ; \
|
||||
do $(arch)-strip --strip-debug $${dir}/* > \
|
||||
/dev/null 2>&1 || true ; done
|
||||
touch $@
|
||||
|
||||
$(build)/.built: /toolchain/.built $(build)/.skeleton.built
|
||||
$(build)/.built: $(tooldir)/.built $(build)/.skeleton.built
|
||||
$(MAKE) -C world
|
||||
touch $@
|
||||
|
||||
$(build)/.skeleton.built: | $(dirs)
|
||||
install -d -m 0750 build/root
|
||||
install -dv -m 1777 build/tmp build/var/tmp
|
||||
[ -h build/var/run ] || ln -sv /run build/var/run
|
||||
[ -h build/var/lock ] || ln -sv /run/lock build/var/lock
|
||||
install -d -m 0750 $(build)/root
|
||||
install -dv -m 1777 $(build)/tmp $(build)/var/tmp
|
||||
[ -h build/var/run ] || ln -sv /run $(build)/var/run
|
||||
[ -h build/var/lock ] || ln -sv /run/lock $(build)/var/lock
|
||||
[ -c $(build)/dev/console ] || su -c "mknod -m 600 $(build)/dev/console c 5 1"
|
||||
[ -c $(build)/dev/null ] || su -c "mknod -m 666 $(build)/dev/null c 1 3"
|
||||
touch $@
|
||||
|
@ -90,10 +92,34 @@ $(plists): $(build)/.built
|
|||
pkgname=base $(MAKE) -C $(build) -f $(include_dir)/create-plist.mk install
|
||||
|
||||
$(dirs):
|
||||
install -d ${build}/$@
|
||||
install -d $(build)/$@
|
||||
|
||||
remove-toolchain:
|
||||
$(MAKE) -C toolchain remove
|
||||
.PHONY: remove-toolchain
|
||||
|
||||
toolchain-tgz: toolchain-hhl-$(os_version)-$(arch).tgz
|
||||
|
||||
toolchain-tbz: toolchain-hhl-$(os_version)-$(arch).tbz
|
||||
|
||||
toolchain-txz: toolchain-hhl-$(os_version)-$(arch).txz
|
||||
|
||||
.PHONY: toolchain-tgz toolchain-tbz toolchain-txz
|
||||
|
||||
rootfs-tgz: rootfs-hhl-$(os_version)-$(arch).tgz
|
||||
|
||||
rootfs-tbz: rootfs-hhl-$(os_version)-$(arch).tbz
|
||||
|
||||
rootfs-txz: rootfs-hhl-$(os_version)-$(arch).txz
|
||||
|
||||
.PHONY: rootfs-tgz rootfs-tbz rootfs-txz
|
||||
|
||||
toolchain-hhl-$(os_version)-$(arch).tgz: $(tooldir)/.built smalltools
|
||||
paxtar -M uidgid -czf ../$@ toolchain-$(arch)
|
||||
|
||||
toolchain-hhl-$(os_version)-$(arch).tbz: $(tooldir)/.built smalltools
|
||||
paxtar -M uidgid -cjf ../$@ toolchain-$(arch)
|
||||
|
||||
toolchain-hhl-$(os_version)-$(arch).txz: $(tooldir)/.built smalltools
|
||||
paxtar -M uidgid -cJf ../$@ toolchain-$(arch)
|
||||
|
||||
rootfs-hhl-$(os_version)-$(arch).tgz: $(plists) $(build)/.stripped
|
||||
cd build && paxtar -M uidgid -czf ../$@ $(alldirs)
|
||||
|
@ -104,11 +130,15 @@ rootfs-hhl-$(os_version)-$(arch).tbz: $(plists) $(build)/.stripped
|
|||
rootfs-hhl-$(os_version)-$(arch).txz: $(plists) $(build)/.stripped
|
||||
cd build && paxtar -M uidgid -cJf ../$@ $(alldirs)
|
||||
|
||||
remove-toolchain:
|
||||
$(MAKE) -C toolchain remove
|
||||
|
||||
clean:
|
||||
$(MAKE) -C world clean
|
||||
$(MAKE) -C toolchain clean
|
||||
rm -rf build/*
|
||||
rm -rf build/.built
|
||||
rm -rf build/.skeleton.built
|
||||
rm -rf build/.stripped
|
||||
|
||||
.PHONY: toolchain-archive buildtools smalltools toolsclean buildworld $(dirs) strip
|
||||
.PHONY: clean
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue