Improved build commands
This commit is contained in:
parent
e0979ed357
commit
271ab8860f
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,5 +1,4 @@
|
|||||||
dist/
|
mittos.iso
|
||||||
build/
|
|
||||||
sysroot/
|
sysroot/
|
||||||
|
|
||||||
*.d
|
*.d
|
||||||
|
22
Makefile
22
Makefile
@ -2,23 +2,27 @@ ifeq ($(BUILDROOT),)
|
|||||||
$(error BUILDROOT IS NOT SET!)
|
$(error BUILDROOT IS NOT SET!)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
TARGET := x86_64-elf
|
||||||
|
KERNELMAKE := TARGET=${TARGET} $(MAKE) -C src/kernel
|
||||||
|
|
||||||
|
DIST := $(BUILDROOT)/mittos.iso
|
||||||
SYSROOT := $(BUILDROOT)/sysroot
|
SYSROOT := $(BUILDROOT)/sysroot
|
||||||
|
|
||||||
DIST := $(BUILDROOT)/dist/mittos.iso
|
$(DIST): $(SYSROOT)/kernel
|
||||||
|
$(BUILDROOT)/toolchain/setup-grub.sh
|
||||||
$(DIST):
|
|
||||||
setup-grub.sh
|
|
||||||
grub-mkrescue -o $@ $(SYSROOT)
|
grub-mkrescue -o $@ $(SYSROOT)
|
||||||
|
|
||||||
kernel:
|
$(SYSROOT)/kernel: FORCE
|
||||||
ifeq ($(shell make -sqC src/kernel || echo 1), 1)
|
ifeq ($(shell make -sqC src/kernel || echo 1), 1)
|
||||||
$(MAKE) -C src/kernel install
|
$(KERNELMAKE) install
|
||||||
endif
|
endif
|
||||||
|
|
||||||
install: $(DIST)
|
.PHONY: FORCE
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(DIST)
|
rm -rf $(DIST)
|
||||||
$(MAKE) -C src/kernel clean
|
$(KERNELMAKE) clean
|
||||||
|
|
||||||
.PHONY: install
|
distclean:
|
||||||
|
$(MAKE) clean
|
||||||
|
rm -rf $(SYSROOT)
|
11
dbg
11
dbg
@ -1,3 +1,12 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
docker-compose -f toolchain/docker-compose.yml run --rm dbg "$@"
|
default="gdb -q -x /opt/toolchain/gdbinit"
|
||||||
|
|
||||||
|
if [[ "$1" == "-" ]]; then
|
||||||
|
shift
|
||||||
|
cmd="$@"
|
||||||
|
else
|
||||||
|
cmd="${default} $@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker-compose -f toolchain/docker-compose.yml run --rm -u $(id -u):$(id -g) run ${cmd}
|
11
emu
11
emu
@ -1,3 +1,12 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
docker-compose -f toolchain/docker-compose.yml run --rm --name emul emul "$@"
|
default="qemu-system-x86_64 -s -S -cdrom /opt/mittos.iso -curses"
|
||||||
|
|
||||||
|
if [[ "$1" == "-" ]]; then
|
||||||
|
shift
|
||||||
|
cmd="$@"
|
||||||
|
else
|
||||||
|
cmd="${default} $@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker-compose -f toolchain/docker-compose.yml run --rm --name emul -u $(id -u):$(id -g) run ${cmd}
|
11
make
11
make
@ -1,3 +1,12 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
docker-compose -f toolchain/docker-compose.yml run --rm -u $(id -u):$(id -g) make make "$@"
|
default="make"
|
||||||
|
|
||||||
|
if [[ "$1" == "-" ]]; then
|
||||||
|
shift
|
||||||
|
cmd="$@"
|
||||||
|
else
|
||||||
|
cmd="${default} $@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker-compose -f toolchain/docker-compose.yml run --rm -u $(id -u):$(id -g) build ${cmd}
|
@ -1,5 +1,8 @@
|
|||||||
|
ifeq ($(BUILDROOT),)
|
||||||
|
$(error BUILDROOT IS NOT SET!)
|
||||||
|
endif
|
||||||
|
|
||||||
CC := x86_64-elf-gcc
|
CC := ${TARGET}-gcc
|
||||||
|
|
||||||
SRC := $(wildcard **/*.[cS])
|
SRC := $(wildcard **/*.[cS])
|
||||||
OBJ := $(patsubst %, %.o, $(basename $(SRC)))
|
OBJ := $(patsubst %, %.o, $(basename $(SRC)))
|
||||||
@ -13,6 +16,7 @@ LDFLAGS := -n -nostdlib -lgcc -T Link.ld
|
|||||||
kernel: $(OBJ)
|
kernel: $(OBJ)
|
||||||
$(LINK.c) $^ -o $@
|
$(LINK.c) $^ -o $@
|
||||||
|
|
||||||
|
# Automatic dependency tracking
|
||||||
DEP := $(OBJ:.o=.d)
|
DEP := $(OBJ:.o=.d)
|
||||||
DEPFLAGS = -MT $@ -MMD -MP -MF $*.d
|
DEPFLAGS = -MT $@ -MMD -MP -MF $*.d
|
||||||
$(OBJ): CPPFLAGS += $(DEPFLAGS)
|
$(OBJ): CPPFLAGS += $(DEPFLAGS)
|
||||||
@ -30,4 +34,5 @@ clean:
|
|||||||
|
|
||||||
.PHONY: install
|
.PHONY: install
|
||||||
|
|
||||||
|
# Include automatic dependency rules
|
||||||
include $(DEP)
|
include $(DEP)
|
@ -1,29 +1,18 @@
|
|||||||
version: "3.5"
|
version: "3.5"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
make:
|
build:
|
||||||
image: thomasloven/mittos-build
|
image: thomasloven/mittos-build
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile.build
|
dockerfile: Dockerfile.build
|
||||||
volumes:
|
volumes:
|
||||||
- ..:/opt
|
- ..:/opt
|
||||||
command: make
|
|
||||||
|
|
||||||
emul:
|
run:
|
||||||
image: thomasloven/mittos-run
|
image: thomasloven/mittos-run
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile.run
|
dockerfile: Dockerfile.run
|
||||||
volumes:
|
volumes:
|
||||||
- ..:/opt
|
- ..:/opt
|
||||||
command: qemu-system-x86_64 -s -S -cdrom /opt/dist/mittos.iso -curses
|
|
||||||
|
|
||||||
dbg:
|
|
||||||
image: thomasloven/mittos-run
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile.run
|
|
||||||
volumes:
|
|
||||||
- ..:/opt
|
|
||||||
command: gdb -q -x /opt/toolchain/gdbinit
|
|
@ -5,6 +5,7 @@ target remote emul:1234
|
|||||||
|
|
||||||
define q
|
define q
|
||||||
monitor quit
|
monitor quit
|
||||||
|
quit
|
||||||
end
|
end
|
||||||
|
|
||||||
define reg
|
define reg
|
||||||
|
Loading…
x
Reference in New Issue
Block a user