9os

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 85e1ee50ed144bbc6c2e5c70004842e346f3dcc9
parent c2e51933f520e939426f1621eecbc05b48aeafaf
Author: Roberto E. Vargas Caballero <roberto.vargas@midokura.com>
Date:   Fri, 11 Nov 2022 15:41:50 +0100

build: Remove environ file

The environment file makes harder to execute the makefile
because everything depends of having the correct environment.

Diffstat:
MMakefile | 35++++++-----------------------------
Mscripts/mklib | 4+++-
Mscripts/rules.mk | 23+++++++++++++++--------
Msrc/Makefile | 9++-------
Msrc/libc/Makefile | 11++++-------
Msrc/libc/Makefile.libc | 2+-
Msrc/libc/arch/amd64/Makefile | 15++++++++-------
Msrc/libc/arch/amd64/darwin/Makefile | 2+-
Msrc/libc/arch/amd64/dragonfly/Makefile | 2+-
Msrc/libc/arch/amd64/linux/Makefile | 2+-
Msrc/libc/arch/amd64/netbsd/Makefile | 2+-
Msrc/libc/arch/amd64/openbsd/Makefile | 2+-
Msrc/libc/arch/arm32/Makefile | 4+++-
Msrc/libc/arch/arm32/linux/Makefile | 2+-
Msrc/libc/arch/arm64/Makefile | 10+++-------
Msrc/libio/Makefile | 2+-
Msrc/libk/Makefile | 2+-
Msrc/os9/Makefile | 17++++++-----------
Msrc/os9/arch/Makefile | 6++----
Msrc/os9/dev/Makefile | 4++--
Msrc/os9/dev/Makefile.drv | 4++--
Msrc/os9/dev/mkblob | 4++--
Msrc/os9/dev/mkblobh | 2+-
Msrc/os9/dev/mkdev | 2+-
Msrc/os9/dev/mkdevc | 2+-
Msrc/os9/hosted/Makefile | 3---
26 files changed, 70 insertions(+), 103 deletions(-)

diff --git a/Makefile b/Makefile @@ -1,9 +1,10 @@ .POSIX: PROJECTDIR = . -include scripts/rules.mk DIRS = src +include scripts/rules.mk + all: src src: lib bin @@ -11,35 +12,11 @@ src: lib bin bin lib: mkdir $@ -$(DIRS): FORCE - +@. $(ENVIRON) && cd $@ && $(MAKE) - -gen: $(ENVIRON) FORCE - +@. $(ENVIRON) && cd src && $(MAKE) gen +gen: FORCE + +@cd src && $(MAKE) gen pi3 host fvp: scripts/$@.sh -$(DIRS): $(ENVIRON) - -$(ENVIRON): - @rm -f $@; \ - trap 'r=$?;rm -f $$$$.tmp;exit $r' EXIT HUP INT QUIT TERM; \ - echo PATH=$$PATH:$$PWD/$(SCRIPTDIR):. > $$$$.tmp && \ - echo CC=\"$(CC)\" >> $$$$.tmp && \ - echo AS=\"$(AS)\" >> $$$$.tmp && \ - echo LD=\"$(LD)\" >> $$$$.tmp && \ - echo OC=\"$(OC)\" >> $$$$.tmp && \ - echo OD=\"$(OD)\" >> $$$$.tmp && \ - echo AR=\"$(AR)\" >> $$$$.tmp && \ - echo RL=\"$(RL)\" >> $$$$.tmp && \ - echo MAKE=\"$(MAKE)\" >> $$$$.tmp && \ - echo ARFLAGS=\"$(ARFLAGS)\" >> $$$$.tmp && \ - echo RLFLAGS=\"$(RLFLAGS)\" >> $$$$.tmp && \ - echo export PATH CC AS LD OC MAKE >> $$$$.tmp && \ - echo export OD RLFLAGS NM AR RL ARFLAGS >> $$$$.tmp && \ - mv $$$$.tmp $@ - -clean: $(ENVIRON) - $(FORALL) - rm -rf lib bin $(ENVIRON) +clean: + rm -rf lib bin diff --git a/scripts/mklib b/scripts/mklib @@ -2,6 +2,8 @@ set -e +PATH=`dirname $0`:$PATH + usage() { echo usage: mklib [-o library] file ... >&2 @@ -17,7 +19,7 @@ do ;; --) shift - break; + break ;; -*) usage diff --git a/scripts/rules.mk b/scripts/rules.mk @@ -16,8 +16,6 @@ SCRIPTDIR = $(PROJECTDIR)/scripts BUILDDIR = $(PROJECTDIR)/scripts/build CONFDIR = $(PROJECTDIR)/config -ENVIRON = $(SCRIPTDIR)/env.sh - # library dependences helpers LIBDEP =\ $(LIBDIR)/libk.a\ @@ -69,15 +67,17 @@ AR = $(CROSS_COMPILE)$(ARCHIVE) HOSTCC=$(COMP) FORALL= +@set -e ;\ - . $(ENVIRON); \ - pwd=$$PWD; \ for i in $(DIRS); \ do \ cd $$i; \ $(MAKE) $@; \ - cd $$pwd; \ + cd -; \ done +$(DIRS): FORCE + +@cd $@ && $(MAKE) + +# Generic rules .SUFFIXES: .map .dump .elf .bin .i .c.o: @@ -107,11 +107,18 @@ FORALL= +@set -e ;\ .elf.map: $(LD) -Map=$@ $< -o /dev/null -all: - FORCE: -clean: clean-files +clean: clean-files clean-dirs + +clean-dirs: + +@set -e; \ + for i in $(DIRS); \ + do \ + cd $$i; \ + $(MAKE) clean; \ + cd -; \ + done clean-files: rm -f *.i *.d *.o *.a $(TARGET) diff --git a/src/Makefile b/src/Makefile @@ -1,6 +1,5 @@ .POSIX: PROJECTDIR=.. -include $(PROJECTDIR)/scripts/rules.mk LIBS =\ libio\ @@ -11,12 +10,8 @@ DIRS =\ os9\ $(LIBS)\ +include $(PROJECTDIR)/scripts/rules.mk + all: os9 os9: $(LIBS) - -$(DIRS): FORCE - +@cd $@ && $(MAKE) - -clean: - $(FORALL) diff --git a/src/libc/Makefile b/src/libc/Makefile @@ -1,7 +1,5 @@ .POSIX: PROJECTDIR =../.. -include $(PROJECTDIR)/scripts/rules.mk -include rules.mk DIRS = arch\ assert\ @@ -12,15 +10,14 @@ DIRS = arch\ string\ time\ +include $(PROJECTDIR)/scripts/rules.mk +include rules.mk + all: objlst.mk +@$(MAKE) -f Makefile.libc -$(DIRS): FORCE - +@cd $@ && $(MAKE) - objlst.mk: $(DIRS) FORCE - mklst $@ + ./mklst $@ clean: - $(FORALL) rm -f objlst.mk diff --git a/src/libc/Makefile.libc b/src/libc/Makefile.libc @@ -11,7 +11,7 @@ TARGET = $(LIBC) $(CRT) all: $(TARGET) $(LIBC): $(OBJS) - mklib -o $@ $? + $(SCRIPTDIR)/mklib -o $@ $? $(CRT): arch/$(ARCH)/$(SYS)/crt.o cp arch/$(ARCH)/$(SYS)/crt.o $@ diff --git a/src/libc/arch/amd64/Makefile b/src/libc/arch/amd64/Makefile @@ -1,15 +1,16 @@ .POSIX: PROJECTDIR =../../../.. + +DIRS =\ + netbsd\ + openbsd\ + dragonfly\ + linux\ + darwin\ + include $(PROJECTDIR)/scripts/rules.mk include ../../rules.mk OBJS = longjmp.o setjmp.o -DIRS = netbsd openbsd dragonfly linux darwin all: $(OBJS) $(SYS) - -$(SYS): FORCE - +@cd $@ && $(MAKE) - -clean: - $(FORALL) diff --git a/src/libc/arch/amd64/darwin/Makefile b/src/libc/arch/amd64/darwin/Makefile @@ -30,7 +30,7 @@ objs: $(OBJS) crt.o: ../crt-posix.s syscall: syscall.lst - gensys.sh syscall.lst + ./gensys.sh syscall.lst touch syscall clean: diff --git a/src/libc/arch/amd64/dragonfly/Makefile b/src/libc/arch/amd64/dragonfly/Makefile @@ -31,7 +31,7 @@ objs: $(OBJS) crt.o: crt-posix.s syscall: syscall.lst - gensys.sh syscall.lst + ./gensys.sh syscall.lst touch syscall clean: diff --git a/src/libc/arch/amd64/linux/Makefile b/src/libc/arch/amd64/linux/Makefile @@ -33,7 +33,7 @@ objs: $(OBJS) crt.o: ../crt-posix.s syscall: syscall.lst - gensys.sh syscall.lst + ./gensys.sh syscall.lst touch syscall clean: diff --git a/src/libc/arch/amd64/netbsd/Makefile b/src/libc/arch/amd64/netbsd/Makefile @@ -34,7 +34,7 @@ objs: $(OBJS) crt.o: ../crt-posix.s ../../crt-netbsd.s syscall: syscall.lst - gensys.sh syscall.lst + ./gensys.sh syscall.lst touch syscall clean: diff --git a/src/libc/arch/amd64/openbsd/Makefile b/src/libc/arch/amd64/openbsd/Makefile @@ -31,7 +31,7 @@ objs: $(OBJS) crt.o: ../crt-posix.s ../../crt-openbsd.s syscall: syscall.lst - gensys.sh syscall.lst + ./gensys.sh syscall.lst touch syscall clean: diff --git a/src/libc/arch/arm32/Makefile b/src/libc/arch/arm32/Makefile @@ -1,10 +1,12 @@ .POSIX: PROJECTDIR =../../../.. + +DIRS = linux + include $(PROJECTDIR)/scripts/rules.mk include ../../rules.mk OBJS = longjmp.o setjmp.o -DIRS = linux all: $(OBJS) $(SYS) diff --git a/src/libc/arch/arm32/linux/Makefile b/src/libc/arch/arm32/linux/Makefile @@ -33,7 +33,7 @@ objs: $(OBJS) crt.o: ../crt-posix.s syscall: syscall.lst - gensys.sh syscall.lst + ./gensys.sh syscall.lst touch syscall clean: diff --git a/src/libc/arch/arm64/Makefile b/src/libc/arch/arm64/Makefile @@ -1,15 +1,11 @@ .POSIX: PROJECTDIR =../../../.. + +DIRS = linux os9 + include $(PROJECTDIR)/scripts/rules.mk include ../../rules.mk OBJS = longjmp.o setjmp.o -DIRS = linux os9 all: $(OBJS) $(SYS) - -$(SYS): FORCE - +@cd $@ && $(MAKE) - -clean: - $(FORALL) diff --git a/src/libio/Makefile b/src/libio/Makefile @@ -12,4 +12,4 @@ TARGET = $(LIBDIR)/lib9p.a all: $(TARGET) $(TARGET): $(OBJS) - mklib -o $@ $? + $(SCRIPTDIR)/mklib -o $@ $? diff --git a/src/libk/Makefile b/src/libk/Makefile @@ -23,4 +23,4 @@ TARGET = $(LIBDIR)/libk.a all: $(TARGET) $(TARGET): $(OBJS) - mklib -o $@ $? + $(SCRIPTDIR)/mklib -o $@ $? diff --git a/src/os9/Makefile b/src/os9/Makefile @@ -1,5 +1,11 @@ .POSIX: PROJECTDIR=../.. + +DIRS =\ + arch\ + dev\ + hosted\ + include $(PROJECTDIR)/scripts/rules.mk OBJS =\ @@ -10,11 +16,6 @@ OBJS =\ sys.o\ dev/builtin.o\ -DIRS =\ - arch\ - dev\ - hosted\ - all: image image: builtin.o FORCE @@ -24,9 +25,3 @@ builtin.o: $(OBJS) $(LD) $(PROJ_LDFLAGS) -r -o $@ $(OBJS) dev/builtin.o: dev - -$(DIRS): FORCE - +@cd $@ && $(MAKE) - -clean: - $(FORALL) diff --git a/src/os9/arch/Makefile b/src/os9/arch/Makefile @@ -1,11 +1,9 @@ .POSIX: PROJECTDIR=../../.. -include $(PROJECTDIR)/scripts/rules.mk DIRS=arm64 +include $(PROJECTDIR)/scripts/rules.mk + all: +@cd $(ARCH) && $(MAKE) - -clean: - $(FORALL) diff --git a/src/os9/dev/Makefile b/src/os9/dev/Makefile @@ -6,7 +6,7 @@ all clean: devs.mk blobs.mk $(MAKE) -f Makefile.drv $@ devs.mk: ../cfg/$(OS9) - mkdev ../cfg/$(OS9) + ./mkdev ../cfg/$(OS9) blobs.mk: ../cfg/$(OS9) - mkblob ../cfg/$(OS9) + ./mkblob ../cfg/$(OS9) diff --git a/src/os9/dev/Makefile.drv b/src/os9/dev/Makefile.drv @@ -15,12 +15,12 @@ builtin.o: $(OBJS) $(LD) $(PROJ_LDFLAGS) -r -o $@ $(OBJS) devc.c: ../cfg/$(OS9) - mkdevc ../cfg/$(OS9) + ./mkdevc ../cfg/$(OS9) devroot.c: blobfil.h blobs.h blobs.h: ../cfg/$(OS9) - mkblobh ../cfg/$(OS9) + ./mkblobh ../cfg/$(OS9) clean: rm -f blobfil.h blobs.h blobs.mk devs.mk devc.c diff --git a/src/os9/dev/mkblob b/src/os9/dev/mkblob @@ -4,7 +4,7 @@ set -e trap 'rm -f $$.tmp' EXIT HUP INT QUIT TERM rm -f blobs.mk -section blob $@ | +./section blob $@ | awk -v type=${type=k} ' NF==1 {blobfil[$1] = 1} END {mkrules()} @@ -17,6 +17,6 @@ function mkrules() print "" printf "blobfil.h: $(BLOBS)\n" - printf "\tmkblobfil $(BLOBS)\n" + printf "\t./mkblobfil $(BLOBS)\n" } '> $$.tmp && mv $$.tmp blobs.mk diff --git a/src/os9/dev/mkblobh b/src/os9/dev/mkblobh @@ -5,7 +5,7 @@ trap 'rm -f $$.tmp' EXIT HUP INT QUIT TERM rm -f blobs.h -section blob $@ | +./section blob $@ | awk -v type=${type=k} ' NF==2 {blobaddr[$1] = $2} {blob[$1] = 1} diff --git a/src/os9/dev/mkdev b/src/os9/dev/mkdev @@ -2,7 +2,7 @@ trap 'rm -f $$.tmp' EXIT HUP INT QUIT TERM -section dev $@ | +./section dev $@ | awk ' BEGIN {print "DEVS =\\"} /^\t\t/ {objs[$1 ".o"] = 1; next} diff --git a/src/os9/dev/mkdevc b/src/os9/dev/mkdevc @@ -2,7 +2,7 @@ trap 'rm -f $$.tmp' EXIT HUP INT QUIT TERM -section dev $@ | +./section dev $@ | awk ' /^\t\t/ {devs[dev]++ phys[$1] = dev diff --git a/src/os9/hosted/Makefile b/src/os9/hosted/Makefile @@ -14,8 +14,5 @@ TARGET = $(BINDIR)/$(OS9).elf all: $(TARGET) -$(DIRS): FORCE - cd $@ && $(MAKE) - $(TARGET): $(OBJS) $(LIBDEP) $(LD) $(PROJ_LDFLAGS) $(OBJS) $(PROJ_LDLIBS) -lk -lc -o $@