Re-factored sandbox into a single executable
This commit is contained in:
@@ -1,13 +1,33 @@
|
||||
SANDBOX_DIR_LIST := $(filter-out ./include/,$(sort $(dir $(wildcard ./*/.))))
|
||||
THIS_FILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
|
||||
SANDBOX_PROG_MAKEFILE_PATH := $(abspath $(firstword $(MAKEFILE_LIST)))
|
||||
SANDBOX_BASE_DIR := $(patsubst %/,%,$(dir $(THIS_FILE_PATH)))
|
||||
SANDBOX_PROG_DIR := $(patsubst %/,%,$(dir $(SANDBOX_PROG_MAKEFILE_PATH)))
|
||||
BUILD_DIR := $(SANDBOX_BASE_DIR)/../build/sandbox
|
||||
|
||||
all:
|
||||
include $(SANDBOX_BASE_DIR)/../tools/make/gcc-host.mk
|
||||
EXEC_NAME := sandbox
|
||||
DIR_LIST := memblock vm base
|
||||
INCLUDE_DIRS := $(foreach dir,$(DIR_LIST),"-I$(dir)/include")
|
||||
SRC := $(foreach dir,$(DIR_LIST),$(wildcard $(dir)/*.c))
|
||||
OBJ := $(addprefix $(BUILD_DIR)/,$(SRC:.c=.o))
|
||||
|
||||
CFLAGS := $(INCLUDE_DIRS) -g
|
||||
|
||||
all: $(BUILD_DIR)/$(EXEC_NAME)
|
||||
@for prog in $(SANDBOX_DIR_LIST); do \
|
||||
$(MAKE) -C $$prog; \
|
||||
done
|
||||
|
||||
clean:
|
||||
@for prog in $(SANDBOX_DIR_LIST); do \
|
||||
$(MAKE) -C $$prog clean; \
|
||||
done
|
||||
$(BUILD_DIR)/$(EXEC_NAME): $(OBJ)
|
||||
@mkdir -p $(@D)
|
||||
|
||||
.PHONY: all clean
|
||||
@printf " \033[1;36mHOSTLD\033[0m \033[1mbuild/sandbox/\033[35m$(EXEC_NAME)\n"
|
||||
@$(CC) $^ -o $@ $(CFLAGS) $(LDFLAGS)
|
||||
|
||||
$(BUILD_DIR)/%.o: %.c
|
||||
@printf " \033[1;32mHOSTCC\033[0m sandbox/$<\n"
|
||||
@mkdir -p $(@D)
|
||||
|
||||
@$(CC) $< -o $@ -c $(CFLAGS)
|
||||
|
||||
.PHONY: all
|
||||
|
||||
Reference in New Issue
Block a user