34 lines
1.0 KiB
Makefile
34 lines
1.0 KiB
Makefile
# SPDX-License-Identifier: MPL-2.0
|
|
|
|
MAIN_MAKEFILE := $(firstword $(MAKEFILE_LIST))
|
|
INCLUDE_MAKEFILE := $(lastword $(MAKEFILE_LIST))
|
|
CUR_DIR := $(shell dirname $(realpath $(MAIN_MAKEFILE)))
|
|
CUR_DIR_NAME := $(shell basename $(realpath $(CUR_DIR)))
|
|
BUILD_DIR := $(CUR_DIR)/../../build
|
|
OBJ_OUTPUT_DIR := $(BUILD_DIR)/initramfs/test/$(CUR_DIR_NAME)
|
|
DEP_OUTPUT_DIR := $(BUILD_DIR)/dep/$(CUR_DIR_NAME)
|
|
C_SRCS := $(wildcard *.c)
|
|
C_OBJS := $(addprefix $(OBJ_OUTPUT_DIR)/,$(C_SRCS:%.c=%))
|
|
C_DEPS := $(addprefix $(DEP_OUTPUT_DIR)/,$(C_SRCS:%.c=%.d))
|
|
ASM_SRCS := $(wildcard *.S)
|
|
ASM_OBJS := $(addprefix $(OBJ_OUTPUT_DIR)/,$(ASM_SRCS:%.S=%))
|
|
CC := gcc
|
|
C_FLAGS := -Wall -Werror
|
|
|
|
.PHONY: all
|
|
all: $(C_OBJS) $(ASM_OBJS)
|
|
|
|
$(OBJ_OUTPUT_DIR) $(DEP_OUTPUT_DIR):
|
|
@mkdir -p $@
|
|
|
|
$(OBJ_OUTPUT_DIR)/%: %.c | $(OBJ_OUTPUT_DIR) $(DEP_OUTPUT_DIR)
|
|
@$(CC) $(C_FLAGS) $(EXTRA_C_FLAGS) $< -o $@ \
|
|
-MMD -MF $(DEP_OUTPUT_DIR)/$*.d
|
|
@echo "CC <= $@"
|
|
|
|
-include $(C_DEPS)
|
|
|
|
$(OBJ_OUTPUT_DIR)/%: %.S | $(OBJ_OUTPUT_DIR)
|
|
@$(CC) $(C_FLAGS) $(EXTRA_C_FLAGS) $< -o $@
|
|
@echo "CC <= $@"
|