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)

相关推荐
HH‘HH13 小时前
Unity通过OPC UA工业协议连接工业设备实战指南
unity·游戏引擎
Duo1J1 天前
【UE】Slate 编辑器工具开发03 - 节点编辑器 (EdGraph)
ue5·编辑器·游戏引擎·ue4
郝学胜-神的一滴1 天前
[简化版 GAMES 104] 现代游戏引擎 02:拆解现代游戏引擎5+1层级架构,吃透引擎底层核心逻辑
c++·unity·架构·游戏引擎·图形渲染·unreal engine·系统设计
unityのkiven1 天前
Unity 中如何创建一片森林:享元模式能不能用?应该怎么用?
unity·游戏引擎·享元模式
郝学胜-神的一滴2 天前
中级OpenGL教程 023:Assimp模型加载全解——从源码到架构的骈文探秘
c++·unity·游戏引擎·cmake·unreal engine·opengl
郝学胜-神的一滴3 天前
中级OpenGL教程 022:探秘三维世界的血脉传承——物体父子关系与矩阵递归奥义
c++·线性代数·unity·矩阵·游戏引擎·unreal engine·opengl
Python私教4 天前
我用 AI 做出了第一个 Godot 贪吃蛇
人工智能·游戏引擎·godot
淡海水5 天前
06-04-YooAsset源码-Unity加密解密服务
前端·unity·性能优化·c#·游戏引擎·yooasset