vulkan游戏引擎的makefile启动环境实现

1.makefile.engine.windows.mak

DIR := (subst /,\\,{CURDIR})

BUILD_DIR := bin

OBJ_DIR := obj

ASSEMBLY := engine

EXTENSION := .dll

COMPILER_FLAGS := -g -MD -Werror=vla -fdeclspec #-fPIC

INCLUDE_FLAGS := -Iengine\src -I$(VULKAN_SDK)\include

LINKER_FLAGS := -g -shared -luser32 -lvulkan-1 -L(VULKAN_SDK)\\Lib -L(OBJ_DIR)\engine

DEFINES := -D_DEBUG -DKEXPORT -D_CRT_SECURE_NO_WARNINGS

#Make does not offer((

rwildcard = (wildcard 12) (foreach d,(wildcard 1*),(call rwildcard,d/,$2))

SRC_FILES := (call rwildcard,(ASSEMBLY)/,*.c)

DIRECTORIES := \(ASSEMBLY)\\src (subst (DIR),,(shell dir $(ASSEMBLY)\src /S /AD /B | findstr /i src))

OBJ_FILES := (SRC_FILES:%=(OBJ_DIR)/%.o)

all: scaffold compile link

.PHONY: scaffold

scaffold:#create build directory

@echo Scaffold folder structure...

-@setlocal enableextensions enabledelayedexpansion && mkdir (addprefix (OBJ_DIR),$(DIRECTORIES)) 2>NUL || cd .

-@setlocal enableextensions enabledelayedexpansion && mkdir $(BUILD_DIR) 2>NUL || cd .

@echo Done.

.PHONY:link

link: scaffold $(OBJ_FILES)

@echo Linking $(ASSEMBLY)...

@clang (OBJ_FILES) -o (BUILD_DIR)/(ASSEMBLY)(EXTENSION) $(LINKER_FLAGS)

.PHONY: compile

compile:

@echo Compiling...

.PHONY: clean

clean:

if exist (BUILD_DIR)\\(ASSEMBLY)(EXTENSION) del (BUILD_DIR)\(ASSEMBLY)(EXTENSION)

rmdir /s /q (OBJ_DIR)\\(ASSEMBLY)

$(OBJ_DIR)/%.c.o: %.c

@echo $<...

@clang \< (COMPILER_FLAGS) -c -o @ (DEFINES) $(INCLUDE_FLAGS)

相关推荐
Thomas_YXQ21 小时前
Unity3D游戏内存优化指南
游戏·unity·职场和发展·性能优化·蓝桥杯·游戏引擎·unity3d
枯萎穿心攻击1 天前
响应式编程入门教程第二节:构建 ObservableProperty<T> — 封装 ReactiveProperty 的高级用法
开发语言·unity·c#·游戏引擎
X_StarX2 天前
【Unity笔记02】订阅事件-自动开门
笔记·学习·unity·游戏引擎·游戏开发·大学生
霸王•吕布2 天前
游戏引擎中顶点着色&像素着色
游戏引擎·顶点着色器·像素着色器·顶点颜色·顶点uv·顶点法向
一线灵2 天前
跨平台游戏引擎 Axmol-2.7.0 发布
c++·游戏引擎·wasm·axmol·cocos2dx
Thomas_YXQ2 天前
Unity URP法线贴图实现教程
开发语言·unity·性能优化·游戏引擎·unity3d·贴图·单一职责原则
徐子竣2 天前
[学习记录]Unity-Shader-几何着色器
unity·游戏引擎·着色器
幻世界3 天前
【Unity智能模型系列】Unity + MediaPipe + Sentis + ArcFace模型:构建高效人脸识别比对系统
unity·游戏引擎
漫游者Nova3 天前
虚幻引擎Unreal Engine5恐怖游戏设计制作教程,从入门到精通从零开始完整项目开发实战详细讲解中英字幕
ue5·游戏引擎·虚幻·游戏开发完整教程·恐怖游戏开发
死也不注释3 天前
【Unity 编辑器工具开发:GUILayout 与 EditorGUILayout 对比分析】
unity·编辑器·游戏引擎