diff options
| author | Aleksa Vučković <aleksav013@gmail.com> | 2022-01-16 14:37:35 +0100 |
|---|---|---|
| committer | Aleksa Vučković <aleksav013@gmail.com> | 2022-01-16 14:37:35 +0100 |
| commit | 85fdaf22994ead86a43b4880cb4875094612bd72 (patch) | |
| tree | d3a9d6f08939cd47ee944ad1d63085f3debbaa1c | |
| parent | 74f71c22d3da75a50c21e8c0a48fc4d9857c975d (diff) | |
Recompiling when included header files change
| -rw-r--r-- | Makefile | 16 | ||||
| -rwxr-xr-x | scripts/install_headers.sh | 6 | ||||
| -rw-r--r-- | src/Makefile | 11 | ||||
| -rw-r--r-- | src/as/Makefile | 3 | ||||
| -rw-r--r-- | src/c/Makefile | 6 |
5 files changed, 28 insertions, 14 deletions
@@ -15,11 +15,10 @@ export CFLAGS=-ffreestanding -O2 -Wall -Wextra -fstack-protector-all # TOOLS -MKDIR=mkdir -p -RM=rm -rf -CP=cp -r +export MKDIR=mkdir -p +export RM=rm -rf +export CP=cp -r QEMU=qemu-system-x86_64 -#QEMU_DEBUG=-d int -D qemu.log @@ -93,16 +92,11 @@ $(BINARY): $(OBJ) $(CC) -T $(LINKER) -o $(BINARY) $(CFLAGS) -nostdlib -lgcc $(OBJ) install_headers: - $(RM) $(SYSROOT_INCLUDE_DIR) - $(MKDIR) $(SYSROOT_INCLUDE_DIR) - $(CP) $(INCLUDE_DIR)/* $(SYSROOT_INCLUDE_DIR) + ./scripts/install_headers.sh compile: $(MAKE) install_headers - $(MKDIR) $(AS_OBJECT_DIR) - $(MKDIR) $(C_OBJECT_DIR) - $(MAKE) --directory $(AS_SOURCE_DIR) - $(MAKE) --directory $(C_SOURCE_DIR) + @$(MAKE) --directory $(SOURCE_DIR) $(MAKE) $(BINARY) $(ISO): $(BINARY) diff --git a/scripts/install_headers.sh b/scripts/install_headers.sh new file mode 100755 index 0000000..213d9d5 --- /dev/null +++ b/scripts/install_headers.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +SYSROOT="/opt/aleksa" +SYSROOT_INCLUDE=$SYSROOT/usr/include/ + +rsync src/include/ "$SYSROOT_INCLUDE" -ru --delete diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..91c565b --- /dev/null +++ b/src/Makefile @@ -0,0 +1,11 @@ +.PHONY: all build_as build_c + +all: build_as build_c + +build_as: + $(MKDIR) $(AS_OBJECT_DIR) + @$(MAKE) --directory as + +build_c: + $(MKDIR) $(C_OBJECT_DIR) + @$(MAKE) --directory c diff --git a/src/as/Makefile b/src/as/Makefile index bd5664b..c8919d7 100644 --- a/src/as/Makefile +++ b/src/as/Makefile @@ -1,5 +1,6 @@ .PHONY: all + all: $(AS_OBJECTS) -$(AS_OBJECT_DIR)/%.o: %.s +$(AS_OBJECT_DIR)/%.o: %.s Makefile $(AS) $< -o $@ diff --git a/src/c/Makefile b/src/c/Makefile index 9ee253d..b8fe609 100644 --- a/src/c/Makefile +++ b/src/c/Makefile @@ -1,6 +1,8 @@ .PHONY: all + all: $(C_OBJECTS) +$(C_OBJECT_DIR)/%.o: %.c Makefile + $(CC) $(CFLAGS) -MD -MP -c $< -o $@ -$(C_OBJECT_DIR)/%.o: %.c - $(CC) $(CFLAGS) -c $< -o $@ +-include $(C_OBJECTS:.o=.d) |
