Initial import
This commit is contained in:
commit
94aad4b8e1
77 changed files with 4414 additions and 0 deletions
113
Makefile
Normal file
113
Makefile
Normal file
|
@ -0,0 +1,113 @@
|
|||
###################################################################################
|
||||
## 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. ##
|
||||
###################################################################################
|
||||
|
||||
export ARCH ?= x86_64
|
||||
export PLATFORM ?= generic-pc
|
||||
|
||||
export ROOT_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
||||
|
||||
export BUILD_DIR ?= $(ROOT_DIR)/build
|
||||
export SYSROOT_DIR ?= $(ROOT_DIR)/sysroot
|
||||
export RELEASE_DIR ?= $(ROOT_DIR)/release
|
||||
|
||||
export GITREV := $(shell git rev-parse --short HEAD)
|
||||
|
||||
NOUEFI ?= y
|
||||
|
||||
LIVECD := $(RELEASE_DIR)/aurix-$(GITREV)-livecd_$(ARCH)-$(PLATFORM).iso
|
||||
LIVEHDD := $(RELEASE_DIR)/aurix-$(GITREV)-livehdd_$(ARCH)-$(PLATFORM).img
|
||||
LIVESD := $(RELEASE_DIR)/aurix-$(GITREV)-livesd_$(ARCH)-$(PLATFORM).img
|
||||
|
||||
QEMU_FLAGS := -m 2G -smp 4 -serial stdio
|
||||
|
||||
.PHONY: boot
|
||||
boot:
|
||||
@printf ">>> Building bootloader...\n"
|
||||
ifneq (,$(filter $(ARCH),i686 x86_64))
|
||||
@$(MAKE) -C boot PLATFORM=pc-bios
|
||||
else
|
||||
@$(MAKE) -C boot
|
||||
endif
|
||||
ifneq (,$(filter $(ARCH),i686 x86_64 arm32 aarch64))
|
||||
ifeq ($(NOUEFI),n)
|
||||
@$(MAKE) -C boot PLATFORM=uefi
|
||||
endif
|
||||
endif
|
||||
|
||||
.PHONY: kernel
|
||||
kernel:
|
||||
@printf ">>> Building kernel...\n"
|
||||
@$(MAKE) -C kernel
|
||||
|
||||
.PHONY: install
|
||||
install: boot kernel
|
||||
@printf ">>> Building sysroot...\n"
|
||||
@mkdir -p $(SYSROOT_DIR)
|
||||
ifneq (,$(filter $(ARCH),i686 x86_64))
|
||||
@$(MAKE) -C boot install PLATFORM=pc-bios
|
||||
else
|
||||
@$(MAKE) -C boot install
|
||||
endif
|
||||
ifneq (,$(filter $(ARCH),i686 x86_64 arm32 aarch64))
|
||||
ifeq ($(NOUEFI),n)
|
||||
@$(MAKE) -C boot install PLATFORM=uefi
|
||||
endif
|
||||
endif
|
||||
@$(MAKE) -C kernel install
|
||||
|
||||
ovmf:
|
||||
@printf ">>> Downloading OVMF images...\n"
|
||||
@utils/download-ovmf.sh
|
||||
|
||||
.PHONY: livecd
|
||||
livecd: install
|
||||
@printf ">>> Generating Live CD..."
|
||||
@mkdir -p $(RELEASE_DIR)
|
||||
@utils/arch/$(ARCH)/generate-iso.sh $(LIVECD)
|
||||
|
||||
.PHONY: livehdd
|
||||
livehdd: install
|
||||
@printf ">>> Generating Live HDD..."
|
||||
@mkdir -p $(RELEASE_DIR)
|
||||
@utils/arch/$(ARCH)/generate-hdd.sh $(LIVEHDD)
|
||||
|
||||
.PHONY: livesd
|
||||
livesd: install
|
||||
@$(error SD Card Generation is not supported yet!)
|
||||
@printf ">>> Generating Live SD Card..."
|
||||
@mkdir -p $(RELEASE_DIR)
|
||||
@utils/arch/$(ARCH)/generate-sd.sh $(LIVESD)
|
||||
|
||||
.PHONY: run
|
||||
run: livecd
|
||||
@printf ">>> Running QEMU...\n"
|
||||
@qemu-system-$(ARCH) $(QEMU_FLAGS) $(QEMU_MACHINE_FLAGS) -cdrom $(LIVECD)
|
||||
|
||||
.PHONY: run-uefi
|
||||
run-uefi: livecd ovmf
|
||||
@printf ">>> Running QEMU (UEFI)...\n"
|
||||
@qemu-system-$(ARCH) $(QEMU_FLAGS) $(QEMU_MACHINE_FLAGS) -bios ovmf/ovmf-$(ARCH).fd -cdrom $(LIVECD)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
@rm -rf $(BUILD_DIR) $(SYSROOT_DIR)
|
||||
|
||||
.PHONY: distclean
|
||||
distclean:
|
||||
@rm -rf $(BUILD_DIR) $(SYSROOT_DIR) $(RELEASE_DIR) ovmf/
|
Loading…
Add table
Add a link
Reference in a new issue