-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
37 lines (29 loc) · 742 Bytes
/
Makefile
File metadata and controls
37 lines (29 loc) · 742 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
BIN_DIR := bin
BLIBC_DIR := ../blibc
SYSROOT = sysroot
PROGRAM_MAKEFILES := $(wildcard */Makefile)
PROGRAMS := $(patsubst %/Makefile,%,$(PROGRAM_MAKEFILES))
.PHONY: all clean distclean blibc $(PROGRAMS)
all: blibc $(PROGRAMS)
blibc:
@echo "[BLIBC] Preparing blibc"
@$(MAKE) -C $(BLIBC_DIR)
@mkdir -p $(SYSROOT)
@cp -r $(BLIBC_DIR)/sysroot/* $(SYSROOT)/
$(PROGRAMS):
@echo "[COREUTILS] Building $@"
@$(MAKE) -C $@ SYSROOT=../$(SYSROOT)
@if [ -f "$@/bin/$@" ]; then \
mkdir -p $(BIN_DIR); \
cp "$@/bin/$@" "$(BIN_DIR)/$@"; \
else \
echo "ERROR: $@/bin/$@ not found"; \
exit 1; \
fi
clean:
@for dir in $(PROGRAMS); do \
$(MAKE) -C $$dir clean; \
done
@rm -rf $(BIN_DIR)
distclean:
@rm -rf $(BIN_DIR) $(SYSROOT)