Skip to content

Commit 73d034d

Browse files
authored
Fix CI. (#99)
1 parent 06614b7 commit 73d034d

File tree

1 file changed

+183
-0
lines changed

1 file changed

+183
-0
lines changed

makefile

Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
#
2+
# Copyright 2011-2025 Branimir Karadzic. All rights reserved.
3+
# License: https://github.com/bkaradzic/bimg/blob/master/LICENSE
4+
#
5+
6+
UNAME := $(shell uname)
7+
ifeq ($(UNAME),$(filter $(UNAME),Linux Darwin))
8+
ifeq ($(UNAME),$(filter $(UNAME),Darwin))
9+
OS=darwin
10+
else
11+
OS=linux
12+
endif
13+
14+
help:
15+
@echo Available targets:
16+
@grep -E "^[a-zA-Z0-9_-]+:.*?## .*$$" $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
17+
18+
else
19+
OS=windows
20+
21+
help: projgen
22+
23+
endif
24+
25+
# $(info $(OS))
26+
27+
BX_DIR?=../bx
28+
GENIE?=$(BX_DIR)/tools/bin/$(OS)/genie $(EXTRA_GENIE_ARGS)
29+
30+
.PHONY: help
31+
32+
clean: ## Clean all intermediate files.
33+
@echo Cleaning...
34+
-@rm -rf .build
35+
@mkdir .build
36+
37+
projgen: ## Generate project files for all configurations.
38+
$(GENIE) --with-tools --with-shared-lib vs2022
39+
$(GENIE) --with-tools --with-shared-lib --gcc=mingw-gcc gmake
40+
$(GENIE) --with-tools --with-shared-lib --gcc=mingw-clang gmake
41+
$(GENIE) --with-tools --with-shared-lib --gcc=linux-gcc gmake
42+
$(GENIE) --with-tools --with-shared-lib --gcc=linux-clang gmake
43+
$(GENIE) --with-tools --with-shared-lib --gcc=osx-arm64 gmake
44+
$(GENIE) --with-tools --with-shared-lib --xcode=osx xcode9
45+
$(GENIE) --with-tools --with-shared-lib --xcode=ios xcode9
46+
$(GENIE) --with-shared-lib --gcc=android-arm64 gmake
47+
$(GENIE) --gcc=ios-arm64 gmake
48+
$(GENIE) --gcc=rpi gmake
49+
50+
.build/projects/gmake-android-arm64:
51+
$(GENIE) --gcc=android-arm64 --with-shared-lib gmake
52+
android-arm64-debug: .build/projects/gmake-android-arm64 ## Build - Android ARM64 Debug
53+
$(MAKE) -R -C .build/projects/gmake-android-arm64 config=debug
54+
android-arm64-release: .build/projects/gmake-android-arm64 ## Build - Android ARM64 Release
55+
$(MAKE) -R -C .build/projects/gmake-android-arm64 config=release
56+
android-arm64: android-arm64-debug android-arm64-release ## Build - Android ARM64 Debug and Release
57+
58+
.build/projects/gmake-wasm:
59+
$(GENIE) --gcc=wasm gmake
60+
wasm-debug: .build/projects/gmake-wasm ## Build - Emscripten Debug
61+
$(MAKE) -R -C .build/projects/gmake-wasm config=debug
62+
wasm-release: .build/projects/gmake-wasm ## Build - Emscripten Release
63+
$(MAKE) -R -C .build/projects/gmake-wasm config=release
64+
wasm: wasm-debug wasm-release ## Build - Emscripten Debug and Release
65+
66+
.build/projects/gmake-linux-gcc:
67+
$(GENIE) --with-tools --with-shared-lib --gcc=linux-gcc gmake
68+
linux-gcc-debug64: .build/projects/gmake-linux-gcc ## Build - Linux GCC x64 Debug
69+
$(MAKE) -R -C .build/projects/gmake-linux-gcc config=debug64
70+
linux-gcc-release64: .build/projects/gmake-linux-gcc ## Build - Linux GCC x64 Release
71+
$(MAKE) -R -C .build/projects/gmake-linux-gcc config=release64
72+
linux-gcc: linux-gcc-debug64 linux-gcc-release64 ## Build - Linux GCC x86/x64 Debug and Release
73+
74+
.build/projects/gmake-linux-clang:
75+
$(GENIE) --with-tools --with-shared-lib --gcc=linux-clang gmake
76+
linux-clang-debug64: .build/projects/gmake-linux-clang ## Build - Linux Clang x64 Debug
77+
$(MAKE) -R -C .build/projects/gmake-linux-clang config=debug64
78+
linux-clang-release64: .build/projects/gmake-linux-clang ## Build - Linux Clang x64 Release
79+
$(MAKE) -R -C .build/projects/gmake-linux-clang config=release64
80+
linux-clang: linux-clang-debug64 linux-clang-release64 ## Build - Linux Clang x86/x64 Debug and Release
81+
82+
.build/projects/gmake-mingw-gcc:
83+
$(GENIE) --with-tools --with-shared-lib --gcc=mingw-gcc gmake
84+
mingw-gcc-debug32: .build/projects/gmake-mingw-gcc ## Build - MinGW GCC x86 Debug
85+
$(MAKE) -R -C .build/projects/gmake-mingw-gcc config=debug32
86+
mingw-gcc-release32: .build/projects/gmake-mingw-gcc ## Build - MinGW GCC x86 Release
87+
$(MAKE) -R -C .build/projects/gmake-mingw-gcc config=release32
88+
mingw-gcc-debug64: .build/projects/gmake-mingw-gcc ## Build - MinGW GCC x64 Debug
89+
$(MAKE) -R -C .build/projects/gmake-mingw-gcc config=debug64
90+
mingw-gcc-release64: .build/projects/gmake-mingw-gcc ## Build - MinGW GCC x64 Release
91+
$(MAKE) -R -C .build/projects/gmake-mingw-gcc config=release64
92+
mingw-gcc: mingw-gcc-debug32 mingw-gcc-release32 mingw-gcc-debug64 mingw-gcc-release64 ## Build - MinGW GCC x86/x64 Debug and Release
93+
94+
.build/projects/gmake-mingw-clang:
95+
$(GENIE) --with-tools --with-shared-lib --gcc=mingw-clang gmake
96+
mingw-clang-debug32: .build/projects/gmake-mingw-clang ## Build - MinGW Clang x86 Debug
97+
$(MAKE) -R -C .build/projects/gmake-mingw-clang config=debug32
98+
mingw-clang-release32: .build/projects/gmake-mingw-clang ## Build - MinGW Clang x86 Release
99+
$(MAKE) -R -C .build/projects/gmake-mingw-clang config=release32
100+
mingw-clang-debug64: .build/projects/gmake-mingw-clang ## Build - MinGW Clang x64 Debug
101+
$(MAKE) -R -C .build/projects/gmake-mingw-clang config=debug64
102+
mingw-clang-release64: .build/projects/gmake-mingw-clang ## Build - MinGW Clang x64 Release
103+
$(MAKE) -R -C .build/projects/gmake-mingw-clang config=release64
104+
mingw-clang: mingw-clang-debug32 mingw-clang-release32 mingw-clang-debug64 mingw-clang-release64 ## Build - MinGW Clang x86/x64 Debug and Release
105+
106+
.build/projects/vs2022:
107+
$(GENIE) --with-tools --with-shared-lib vs2022
108+
vs2022-debug32: .build/projects/vs2022 ## Build - vs2022 x86 Debug
109+
devenv .build/projects/vs2022/bimg.sln /Build "Debug|Win32"
110+
vs2022-release32: .build/projects/vs2022 ## Build - vs2022 x86 Release
111+
devenv .build/projects/vs2022/bimg.sln /Build "Release|Win32"
112+
vs2022-debug64: .build/projects/vs2022 ## Build - vs2022 x64 Debug
113+
devenv .build/projects/vs2022/bimg.sln /Build "Debug|x64"
114+
vs2022-release64: .build/projects/vs2022 ## Build - vs2022 x64 Release
115+
devenv .build/projects/vs2022/bimg.sln /Build "Release|x64"
116+
vs2022: vs2022-debug32 vs2022-release32 vs2022-debug64 vs2022-release64 ## Build - vs2022 x86/x64 Debug and Release
117+
118+
.build/projects/gmake-osx-arm64:
119+
$(GENIE) --with-tools --with-shared-lib --gcc=osx-arm64 gmake
120+
osx-arm64-debug: .build/projects/gmake-osx-arm64 ## Build - macOS ARM Debug
121+
$(MAKE) -C .build/projects/gmake-osx-arm64 config=debug
122+
osx-arm64-release: .build/projects/gmake-osx-arm64 ## Build - macOS ARM Release
123+
$(MAKE) -C .build/projects/gmake-osx-arm64 config=release
124+
osx-arm64: osx-arm64-debug osx-arm64-release ## Build - macOS ARM Debug and Release
125+
126+
.build/projects/gmake-ios-arm64:
127+
$(GENIE) --gcc=ios-arm64 gmake
128+
ios-arm64-debug: .build/projects/gmake-ios-arm64 ## Build - iOS ARM64 Debug
129+
$(MAKE) -R -C .build/projects/gmake-ios-arm64 config=debug
130+
ios-arm64-release: .build/projects/gmake-ios-arm64 ## Build - iOS ARM64 Release
131+
$(MAKE) -R -C .build/projects/gmake-ios-arm64 config=release
132+
ios-arm64: ios-arm64-debug ios-arm64-release ## Build - iOS ARM64 Debug and Release
133+
134+
.build/projects/gmake-rpi:
135+
$(GENIE) --gcc=rpi gmake
136+
rpi-debug: .build/projects/gmake-rpi ## Build - RasberryPi Debug
137+
$(MAKE) -R -C .build/projects/gmake-rpi config=debug
138+
rpi-release: .build/projects/gmake-rpi ## Build - RasberryPi Release
139+
$(MAKE) -R -C .build/projects/gmake-rpi config=release
140+
rpi: rpi-debug rpi-release ## Build - RasberryPi Debug and Release
141+
142+
###
143+
144+
SILENT ?= @
145+
146+
UNAME := $(shell uname)
147+
ifeq ($(UNAME),$(filter $(UNAME),Linux Darwin))
148+
ifeq ($(UNAME),$(filter $(UNAME),Darwin))
149+
OS=darwin
150+
BUILD_PROJECT_DIR=gmake-osx-arm64
151+
BUILD_OUTPUT_DIR=osx-arm64
152+
BUILD_TOOLS_CONFIG=release
153+
BUILD_TOOLS_SUFFIX=Release
154+
EXE=
155+
else
156+
OS=linux
157+
BUILD_PROJECT_DIR=gmake-linux-gcc
158+
BUILD_OUTPUT_DIR=linux64_gcc
159+
BUILD_TOOLS_CONFIG=release64
160+
BUILD_TOOLS_SUFFIX=Release
161+
EXE=
162+
endif
163+
else
164+
OS=windows
165+
BUILD_PROJECT_DIR=gmake-mingw-gcc
166+
BUILD_OUTPUT_DIR=win64_mingw-gcc
167+
BUILD_TOOLS_CONFIG=release64
168+
BUILD_TOOLS_SUFFIX=Release
169+
EXE=.exe
170+
endif
171+
172+
texturec: .build/projects/$(BUILD_PROJECT_DIR) ## Build texturec tool.
173+
$(SILENT) $(MAKE) -C .build/projects/$(BUILD_PROJECT_DIR) texturec config=$(BUILD_TOOLS_CONFIG)
174+
$(SILENT) cp .build/$(BUILD_OUTPUT_DIR)/bin/texturec$(BUILD_TOOLS_SUFFIX)$(EXE) tools/bin/$(OS)/texturec$(EXE)
175+
176+
texturev: .build/projects/$(BUILD_PROJECT_DIR) ## Build texturev tool.
177+
$(SILENT) $(MAKE) -C .build/projects/$(BUILD_PROJECT_DIR) texturev config=$(BUILD_TOOLS_CONFIG)
178+
$(SILENT) cp .build/$(BUILD_OUTPUT_DIR)/bin/texturev$(BUILD_TOOLS_SUFFIX)$(EXE) tools/bin/$(OS)/texturev$(EXE)
179+
180+
tools: texturec texturev ## Build tools.
181+
182+
clean-tools: ## Clean tools projects.
183+
-$(SILENT) rm -r .build/projects/$(BUILD_PROJECT_DIR)

0 commit comments

Comments
 (0)