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:
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 $@