77 lines
3 KiB
Makefile
77 lines
3 KiB
Makefile
###################################################################################
|
|
## Module Name: Makefile ##
|
|
## Project: AurixOS ##
|
|
## ##
|
|
## Copyright (c) 2024-2025 Jozef Nagy ##
|
|
## ##
|
|
## This source is subject to the MIT License. ##
|
|
## See License.txt in the root of this repository. ##
|
|
## All other rights reserved. ##
|
|
## ##
|
|
## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ##
|
|
## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ##
|
|
## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ##
|
|
## AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ##
|
|
## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ##
|
|
## OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ##
|
|
## SOFTWARE. ##
|
|
###################################################################################
|
|
|
|
UEFI_DRIVER := $(BUILD_DIR)/boot/uefi/drivers/intel-hda.efi
|
|
|
|
INCLUDE_DIRS += $(BOOT_ROOT)/drivers/intel-hda \
|
|
$(BOOT_ROOT)/drivers/intel-hda/include \
|
|
$(BOOT_ROOT)/platform/uefi/libefi
|
|
|
|
UEFI_CC := clang
|
|
UEFI_LD := clang
|
|
|
|
UEFI_ASFLAGS := $(ASFLAGS) \
|
|
-DAXBOOT_UEFI=1 \
|
|
$(foreach d, $(INCLUDE_DIRS), -I$d)
|
|
|
|
UEFI_CFLAGS := $(CFLAGS) \
|
|
-DAXBOOT_UEFI=1 \
|
|
$(foreach d, $(INCLUDE_DIRS), -I$d) \
|
|
-target $(ARCH)-unknown-windows \
|
|
-fshort-wchar \
|
|
-mno-red-zone \
|
|
-mno-stack-arg-probe
|
|
|
|
ifneq (,$(filter $(ARCH),i686 x86_64))
|
|
UEFI_CFLAGS += -mno-80387 \
|
|
-mno-mmx \
|
|
-mno-sse \
|
|
-mno-sse2
|
|
endif
|
|
|
|
UEFI_LDFLAGS := $(LDFLAGS) \
|
|
-target $(ARCH)-unknown-windows \
|
|
-fuse-ld=lld-link \
|
|
-Wl,-subsystem:efi_boot_service_driver \
|
|
-Wl,-entry:InitHda
|
|
|
|
DRIVER_CFILES := $(shell find $(BOOT_ROOT)/drivers/intel-hda -name '*.c')
|
|
|
|
UEFI_OBJ := $(DRIVER_CFILES:$(BOOT_ROOT)/drivers/intel-hda/%.c=$(BUILD_DIR)/boot/uefi/drivers/intel-hda/%.c.o)
|
|
|
|
.PHONY: all
|
|
all: $(UEFI_DRIVER)
|
|
|
|
.PHONY: install
|
|
install: $(UEFI_DRIVER)
|
|
@mkdir -p $(SYSROOT_DIR)/AxBoot/drivers
|
|
@printf " INSTALL\t/AxBoot/drivers/$(shell basename $(UEFI_DRIVER))\n"
|
|
@cp $(UEFI_DRIVER) $(SYSROOT_DIR)/AxBoot/drivers/
|
|
|
|
$(UEFI_DRIVER): $(UEFI_OBJ)
|
|
@mkdir -p $(@D)
|
|
@printf " LD\t$(notdir $@)\n"
|
|
@$(UEFI_LD) $(UEFI_LDFLAGS) $^ -o $@
|
|
|
|
-include $(wildcard $(BUILD_DIR)/boot/*.d)
|
|
|
|
$(BUILD_DIR)/boot/uefi/drivers/intel-hda/%.c.o: $(BOOT_ROOT)/drivers/intel-hda/%.c
|
|
@mkdir -p $(@D)
|
|
@printf " CC\t$(subst $(ROOT_DIR)/,,$<)\n"
|
|
@$(UEFI_CC) $(UEFI_CFLAGS) -c $< -o $@
|