mirror of
https://github.com/aydencharles/onionHEN.git
synced 2026-10-22 03:42:46 -05:00
441 lines
18 KiB
Makefile
441 lines
18 KiB
Makefile
# Host unit tests for OnionHEN shared libs + util cheats (no PS5 SDK).
|
|
# Usage (from this directory):
|
|
# make
|
|
# make test
|
|
# ONION_TEST_VERBOSE=1 make test
|
|
|
|
UTIL_ROOT := $(abspath ..)
|
|
REPO_ROOT := $(abspath $(UTIL_ROOT)/../..)
|
|
THIRD_PARTY_ROOT := $(REPO_ROOT)/third_party
|
|
BUILD_DIR := $(UTIL_ROOT)/build/host-tests
|
|
BIN := $(BUILD_DIR)/onion-host-tests
|
|
TEST_DATA_ROOT := $(BUILD_DIR)/runtime
|
|
|
|
HOST_CC ?= cc
|
|
HOST_CXX ?= c++
|
|
PYTHON ?= python3
|
|
KEYSTONE_PREFIX ?= /opt/homebrew
|
|
KEYSTONE_CFLAGS := -I$(THIRD_PARTY_ROOT)/keystone/include
|
|
KEYSTONE_LDFLAGS := -L$(KEYSTONE_PREFIX)/lib -lkeystone
|
|
|
|
DEPFLAGS := -MMD -MP
|
|
COMMON_FLAGS := -Wall -Wextra -g -O0 $(DEPFLAGS) -DONION_HOST_TEST=1 -DCBC=1 \
|
|
-DONION_TEST_DIR=\"$(CURDIR)\" \
|
|
-DONION_DATA_ROOT=\"$(TEST_DATA_ROOT)\" \
|
|
-I$(UTIL_ROOT)/include \
|
|
-I$(UTIL_ROOT)/tests \
|
|
-I$(REPO_ROOT)/source/include \
|
|
-I$(REPO_ROOT)/source/libonion_settings/include \
|
|
-I$(REPO_ROOT)/source/libonion_platform/include \
|
|
-I$(REPO_ROOT)/source/libonion_payload/include \
|
|
-I$(REPO_ROOT)/source/unpacker/include \
|
|
-I$(REPO_ROOT)/source/libonion_conflict/include \
|
|
-I$(REPO_ROOT)/source/libonion_proc/include \
|
|
-I$(REPO_ROOT)/source/libonion_ipc/include \
|
|
-I$(REPO_ROOT)/source/libonion_detour/include \
|
|
-I$(REPO_ROOT)/source/libonion_ready \
|
|
-I$(REPO_ROOT)/source/libonion_fps/include \
|
|
-I$(REPO_ROOT)/source/libonion_lifecycle/include \
|
|
-I$(REPO_ROOT)/source/libonion_sprx/include \
|
|
-I$(REPO_ROOT)/source/libonion_plugin_ui/include \
|
|
-I$(REPO_ROOT)/source/libonion_plugin_bridge/include \
|
|
-I$(REPO_ROOT)/source/libonion_plugin_session/include \
|
|
-I$(REPO_ROOT)/source/libonion_plugin_manager/include \
|
|
-I$(REPO_ROOT)/source/daemon/include \
|
|
-I$(THIRD_PARTY_ROOT)/cjson \
|
|
-I$(THIRD_PARTY_ROOT)/cheat_support \
|
|
-I$(REPO_ROOT)/source/shellui/include \
|
|
-I$(BUILD_DIR)/generated \
|
|
$(KEYSTONE_CFLAGS)
|
|
|
|
I18N_DIR := $(REPO_ROOT)/source/i18n
|
|
I18N_JSON := $(wildcard $(I18N_DIR)/*.json)
|
|
I18N_CATALOG := $(BUILD_DIR)/generated/toolbox_i18n_catalog.inc
|
|
NOTIFY_I18N_CATALOG := $(BUILD_DIR)/generated/notify_i18n_catalog.inc
|
|
|
|
# ready.h lives under source/include/onion/
|
|
COMMON_FLAGS += -I$(REPO_ROOT)/source/include
|
|
|
|
CFLAGS := $(COMMON_FLAGS) -std=c11 -D_DEFAULT_SOURCE
|
|
CXXFLAGS := $(COMMON_FLAGS) -std=c++20 -D_DEFAULT_SOURCE
|
|
LDFLAGS := $(KEYSTONE_LDFLAGS) -pthread
|
|
|
|
# Production sources under test
|
|
PROD_C_SRCS := \
|
|
$(UTIL_ROOT)/source/util_language.c \
|
|
$(UTIL_ROOT)/source/cheats/cheat_engine_utils.c \
|
|
$(UTIL_ROOT)/source/cheats/cheat_engine_parser_shnext.c \
|
|
$(UTIL_ROOT)/source/cheats/cheat_flatten.c \
|
|
$(REPO_ROOT)/source/libonion_platform/source/fs.c \
|
|
$(REPO_ROOT)/source/libonion_platform/source/tree.c \
|
|
$(REPO_ROOT)/source/libonion_platform/source/log.c \
|
|
$(REPO_ROOT)/source/libonion_platform/source/net.c \
|
|
$(REPO_ROOT)/source/libonion_platform/source/notify.c \
|
|
$(REPO_ROOT)/source/libonion_platform/source/notify_i18n.c \
|
|
$(REPO_ROOT)/source/libonion_ready/source/ready.c \
|
|
$(REPO_ROOT)/source/libonion_payload/source/payload.c \
|
|
$(REPO_ROOT)/source/libonion_payload/source/payload_config.c \
|
|
$(REPO_ROOT)/source/libonion_conflict/source/conflict.c \
|
|
$(REPO_ROOT)/source/unpacker/source/bootstrap_cache.c \
|
|
$(REPO_ROOT)/source/unpacker/source/sha1.c
|
|
|
|
PROD_CXX_SRCS := \
|
|
$(UTIL_ROOT)/source/cheats/json_cheat_parser.cpp \
|
|
$(UTIL_ROOT)/source/cheats/xml_cheat_parser.cpp \
|
|
$(UTIL_ROOT)/source/cheats/mc4_cheat_parser.cpp \
|
|
$(UTIL_ROOT)/source/cheats/shn_ext_cheat_parser.cpp \
|
|
$(UTIL_ROOT)/source/cheats/cheat_parser_factory.cpp \
|
|
$(UTIL_ROOT)/source/cheats/cheat_repository.cpp \
|
|
$(UTIL_ROOT)/source/cheats/sync/catalog_hen_collection.cpp \
|
|
$(UTIL_ROOT)/source/cheats/sync/catalog_registry.cpp \
|
|
$(UTIL_ROOT)/source/cheats/sync/mirror_github.cpp \
|
|
$(UTIL_ROOT)/source/cheats/sync/mirror_cnb.cpp \
|
|
$(UTIL_ROOT)/source/cheats/sync/mirror_factory.cpp \
|
|
$(UTIL_ROOT)/source/cheats/sync/cheat_sync_engine.cpp \
|
|
$(UTIL_ROOT)/source/cheats/sync/cheat_sync_service.cpp \
|
|
$(UTIL_ROOT)/source/cheats/sync/http_transport_ps5.cpp \
|
|
$(UTIL_ROOT)/source/cheats/sync/zip_archive.cpp \
|
|
$(THIRD_PARTY_ROOT)/cjson/cJSON.cpp \
|
|
$(REPO_ROOT)/source/libonion_settings/source/settings.cpp \
|
|
$(REPO_ROOT)/source/libonion_ipc/source/ipc_server.cpp \
|
|
$(REPO_ROOT)/source/libonion_plugin_manager/source/plugin_descriptor.cpp \
|
|
$(REPO_ROOT)/source/libonion_plugin_manager/source/plugin_manager.cpp \
|
|
$(REPO_ROOT)/source/shellui/src/ps5_settings_ui.cpp \
|
|
$(REPO_ROOT)/source/shellui/src/toolbox_route.cpp \
|
|
$(REPO_ROOT)/source/shellui/src/toolbox_i18n.cpp \
|
|
$(REPO_ROOT)/source/shellui/src/dynamic_ui_xml.cpp \
|
|
$(REPO_ROOT)/source/shellui/src/dynamic_ui_runtime.cpp \
|
|
$(REPO_ROOT)/source/libonion_fps/source/fps_formula.cpp \
|
|
$(REPO_ROOT)/source/libonion_lifecycle/source/app_lifecycle.cpp \
|
|
$(REPO_ROOT)/source/libonion_sprx/source/sprx_loader.cpp \
|
|
$(REPO_ROOT)/source/libonion_sprx/source/sprx_catalog.cpp \
|
|
$(REPO_ROOT)/source/libonion_sprx/source/sprx_plugin_manager.cpp
|
|
|
|
TEST_C_SRCS := \
|
|
test_harness.c \
|
|
test_support.c \
|
|
test_cheat_utils.c \
|
|
test_cheat_flatten.c \
|
|
test_payload.c \
|
|
test_payload_config.c \
|
|
test_payload_autostart.c \
|
|
test_conflict.c \
|
|
test_base64.c \
|
|
test_aes_cbc.c \
|
|
test_hde64.c \
|
|
test_reg_entity.c \
|
|
test_ready.c \
|
|
test_platform_fs.c \
|
|
test_bootstrap_cache.c \
|
|
test_platform_log.c \
|
|
test_platform_net.c \
|
|
test_platform_notify.c \
|
|
test_util_language.c \
|
|
test_hijack_retry.c \
|
|
stubs/host_stubs.c
|
|
|
|
TEST_CXX_SRCS := \
|
|
test_cheat_parsers.cpp \
|
|
test_cheat_repository.cpp \
|
|
test_git_mirror_factory.cpp \
|
|
test_cheat_catalog.cpp \
|
|
test_cheat_sync.cpp \
|
|
test_settings.cpp \
|
|
test_msg_protocol.cpp \
|
|
test_app_jailbreak_policy.cpp \
|
|
test_big_app_collect_policy.cpp \
|
|
test_debug_settings_route_policy.cpp \
|
|
test_ipc_harden.cpp \
|
|
test_ps5_settings_ui.cpp \
|
|
test_toolbox_route.cpp \
|
|
test_onpress_policy.cpp \
|
|
test_toolbox_helpers.cpp \
|
|
test_toolbox_i18n.cpp \
|
|
test_toolbox_injection.cpp \
|
|
test_overlay_text_metrics.cpp \
|
|
test_overlay_layout.cpp \
|
|
test_fps_formula.cpp \
|
|
test_app_lifecycle.cpp \
|
|
test_sprx_loader.cpp \
|
|
test_sprx_catalog.cpp \
|
|
test_sprx_plugin_manager.cpp \
|
|
test_plugin_ui.cpp \
|
|
test_plugin_sprx_pages.cpp \
|
|
test_plugin_progress.cpp \
|
|
test_progress_auto_return.cpp \
|
|
test_settings_page_update.cpp \
|
|
test_plugin_manager.cpp \
|
|
test_trampoline_arena.cpp \
|
|
test_hook_lifecycle.cpp \
|
|
test_hotpatch.cpp \
|
|
test_x64_relocator.cpp \
|
|
test_main.cpp
|
|
|
|
PROD_C_OBJS := $(patsubst $(UTIL_ROOT)/%.c,$(BUILD_DIR)/prod/%.o,$(filter $(UTIL_ROOT)/%,$(PROD_C_SRCS)))
|
|
PROD_C_OBJS += $(BUILD_DIR)/prod/libonion_platform/fs.o
|
|
PROD_C_OBJS += $(BUILD_DIR)/prod/libonion_platform/tree.o
|
|
PROD_C_OBJS += $(BUILD_DIR)/prod/libonion_platform/log.o
|
|
PROD_C_OBJS += $(BUILD_DIR)/prod/libonion_platform/net.o
|
|
PROD_C_OBJS += $(BUILD_DIR)/prod/libonion_platform/notify.o
|
|
PROD_C_OBJS += $(BUILD_DIR)/prod/libonion_platform/notify_i18n.o
|
|
PROD_C_OBJS += $(BUILD_DIR)/prod/libonion_ready/ready.o
|
|
PROD_C_OBJS += $(BUILD_DIR)/prod/libonion_payload/payload.o
|
|
PROD_C_OBJS += $(BUILD_DIR)/prod/libonion_payload/payload_config.o
|
|
PROD_C_OBJS += $(BUILD_DIR)/prod/libonion_conflict/conflict.o
|
|
PROD_C_OBJS += $(BUILD_DIR)/prod/unpacker/bootstrap_cache.o
|
|
PROD_C_OBJS += $(BUILD_DIR)/prod/unpacker/sha1.o
|
|
PROD_C_OBJS += $(BUILD_DIR)/prod/libonion_detour/hde64.o
|
|
|
|
CHEAT_SUPPORT_SRCS := $(wildcard $(THIRD_PARTY_ROOT)/cheat_support/*.c)
|
|
CHEAT_SUPPORT_OBJS := $(patsubst $(THIRD_PARTY_ROOT)/cheat_support/%.c,$(BUILD_DIR)/prod/third_party/cheat_support/%.o,$(CHEAT_SUPPORT_SRCS))
|
|
|
|
PROD_CXX_OBJS := $(patsubst $(UTIL_ROOT)/%.cpp,$(BUILD_DIR)/prod/%.o,$(filter $(UTIL_ROOT)/%,$(PROD_CXX_SRCS)))
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/third_party/cjson.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/libonion_settings/settings.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/libonion_ipc/ipc_server.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/libonion_plugin_manager/plugin_descriptor.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/libonion_plugin_manager/plugin_manager.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/libonion_detour/hotpatch.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/libonion_detour/trampoline_arena.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/libonion_detour/x64_relocator.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/shellui/hook_lifecycle.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/shellui/ps5_settings_ui.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/shellui/settings_page_update.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/shellui/toolbox_route.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/shellui/toolbox_i18n.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/shellui/plugin_sprx_pages.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/libonion_fps/fps_formula.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/libonion_lifecycle/app_lifecycle.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/libonion_sprx/sprx_loader.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/libonion_sprx/sprx_catalog.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/libonion_sprx/sprx_plugin_manager.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/libonion_plugin_ui/plugin_ui.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/libonion_plugin_bridge/plugin_ui_bridge.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/libonion_plugin_session/plugin_session.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/daemon/plugin_ipc_server.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/daemon/plugin_ui_bridge_server.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/daemon/plugin_host_services.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/shellui/dynamic_ui_xml.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/shellui/dynamic_ui_runtime.o
|
|
PROD_CXX_OBJS += $(BUILD_DIR)/prod/shellui/progress_auto_return.o
|
|
|
|
TEST_C_OBJS := $(patsubst %.c,$(BUILD_DIR)/tests/%.o,$(TEST_C_SRCS))
|
|
TEST_CXX_OBJS := $(patsubst %.cpp,$(BUILD_DIR)/tests/%.o,$(TEST_CXX_SRCS))
|
|
|
|
ALL_OBJS := $(PROD_C_OBJS) $(CHEAT_SUPPORT_OBJS) $(PROD_CXX_OBJS) $(TEST_C_OBJS) $(TEST_CXX_OBJS)
|
|
|
|
# Soften third_party noise
|
|
THIRD_PARTY_FLAGS := -Wno-error -Wno-unused-function -Wno-sign-compare \
|
|
-Wno-unused-parameter -Wno-missing-field-initializers
|
|
|
|
.PHONY: all test clean
|
|
|
|
all: $(BIN)
|
|
|
|
test: $(BIN)
|
|
cd $(CURDIR) && ONION_TEST_ROOT=$(CURDIR) $(BIN)
|
|
|
|
$(BIN): $(ALL_OBJS) | $(BUILD_DIR)
|
|
$(HOST_CXX) -o $@ $^ $(LDFLAGS)
|
|
|
|
$(BUILD_DIR)/prod/third_party/cheat_support/%.o: $(THIRD_PARTY_ROOT)/cheat_support/%.c | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CC) $(CFLAGS) $(THIRD_PARTY_FLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/source/cheats/cheat_engine_parser_shnext.o: $(UTIL_ROOT)/source/cheats/cheat_engine_parser_shnext.c | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CC) $(CFLAGS) -Wno-unused-function -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/%.o: $(UTIL_ROOT)/%.c | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/%.o: $(UTIL_ROOT)/%.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/third_party/cjson.o: $(THIRD_PARTY_ROOT)/cjson/cJSON.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) $(THIRD_PARTY_FLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_settings/settings.o: $(REPO_ROOT)/source/libonion_settings/source/settings.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_ipc/ipc_server.o: $(REPO_ROOT)/source/libonion_ipc/source/ipc_server.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_plugin_manager/%.o: $(REPO_ROOT)/source/libonion_plugin_manager/source/%.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_detour/x64_relocator.o: $(REPO_ROOT)/source/libonion_detour/source/x64_relocator.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_detour/hotpatch.o: $(REPO_ROOT)/source/libonion_detour/source/hotpatch.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_detour/trampoline_arena.o: $(REPO_ROOT)/source/libonion_detour/source/trampoline_arena.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/shellui/hook_lifecycle.o: $(REPO_ROOT)/source/shellui/src/hook_lifecycle.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/shellui/ps5_settings_ui.o: $(REPO_ROOT)/source/shellui/src/ps5_settings_ui.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/shellui/toolbox_route.o: $(REPO_ROOT)/source/shellui/src/toolbox_route.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/shellui/dynamic_ui_xml.o: $(REPO_ROOT)/source/shellui/src/dynamic_ui_xml.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/shellui/dynamic_ui_runtime.o: $(REPO_ROOT)/source/shellui/src/dynamic_ui_runtime.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/shellui/progress_auto_return.o: $(REPO_ROOT)/source/shellui/src/progress_auto_return.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_plugin_ui/plugin_ui.o: $(REPO_ROOT)/source/libonion_plugin_ui/source/plugin_ui.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_plugin_bridge/plugin_ui_bridge.o: $(REPO_ROOT)/source/libonion_plugin_bridge/source/plugin_ui_bridge.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_plugin_session/plugin_session.o: $(REPO_ROOT)/source/libonion_plugin_session/source/plugin_session.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/daemon/plugin_ipc_server.o: $(REPO_ROOT)/source/daemon/source/plugin_ipc_server.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/daemon/plugin_ui_bridge_server.o: $(REPO_ROOT)/source/daemon/source/plugin_ui_bridge_server.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/daemon/plugin_host_services.o: $(REPO_ROOT)/source/daemon/source/plugin_host_services.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(I18N_CATALOG): $(I18N_DIR)/generate_catalog.py $(I18N_JSON) | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(PYTHON) $(I18N_DIR)/generate_catalog.py \
|
|
--locales-dir $(I18N_DIR) \
|
|
--catalog toolbox \
|
|
--output $@
|
|
|
|
$(NOTIFY_I18N_CATALOG): $(I18N_DIR)/generate_catalog.py $(I18N_JSON) | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(PYTHON) $(I18N_DIR)/generate_catalog.py \
|
|
--locales-dir $(I18N_DIR) \
|
|
--catalog notifications \
|
|
--output $@
|
|
|
|
$(BUILD_DIR)/prod/shellui/toolbox_i18n.o: $(REPO_ROOT)/source/shellui/src/toolbox_i18n.cpp $(I18N_CATALOG) | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/shellui/plugin_sprx_pages.o: $(REPO_ROOT)/source/shellui/src/plugin_sprx_pages.cpp $(I18N_CATALOG) | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/shellui/settings_page_update.o: $(REPO_ROOT)/source/shellui/src/settings_page_update.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_fps/fps_formula.o: $(REPO_ROOT)/source/libonion_fps/source/fps_formula.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_lifecycle/app_lifecycle.o: $(REPO_ROOT)/source/libonion_lifecycle/source/app_lifecycle.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_sprx/sprx_loader.o: $(REPO_ROOT)/source/libonion_sprx/source/sprx_loader.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_sprx/sprx_catalog.o: $(REPO_ROOT)/source/libonion_sprx/source/sprx_catalog.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_sprx/sprx_plugin_manager.o: $(REPO_ROOT)/source/libonion_sprx/source/sprx_plugin_manager.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_ready/ready.o: $(REPO_ROOT)/source/libonion_ready/source/ready.c | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_platform/fs.o: $(REPO_ROOT)/source/libonion_platform/source/fs.c | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_platform/tree.o: $(REPO_ROOT)/source/libonion_platform/source/tree.c | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_platform/log.o: $(REPO_ROOT)/source/libonion_platform/source/log.c | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_platform/net.o: $(REPO_ROOT)/source/libonion_platform/source/net.c | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_platform/notify.o: $(REPO_ROOT)/source/libonion_platform/source/notify.c | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_platform/notify_i18n.o: $(REPO_ROOT)/source/libonion_platform/source/notify_i18n.c $(NOTIFY_I18N_CATALOG) | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_payload/%.o: $(REPO_ROOT)/source/libonion_payload/source/%.c | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_conflict/conflict.o: $(REPO_ROOT)/source/libonion_conflict/source/conflict.c | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/unpacker/%.o: $(REPO_ROOT)/source/unpacker/source/%.c | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/prod/libonion_detour/hde64.o: $(REPO_ROOT)/source/libonion_detour/source/hde64.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/tests/%.o: %.c | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR)/tests/test_payload_autostart.o: CFLAGS += -I$(REPO_ROOT)/source/bootstrapper/include
|
|
|
|
$(BUILD_DIR)/tests/%.o: %.cpp | $(BUILD_DIR)
|
|
@mkdir -p $(dir $@)
|
|
$(HOST_CXX) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD_DIR):
|
|
mkdir -p $(BUILD_DIR)
|
|
|
|
clean:
|
|
rm -rf $(BUILD_DIR)
|
|
|
|
# Header dependencies generated by -MMD; keeps rebuilds correct.
|
|
-include $(shell find $(BUILD_DIR) -name '*.d' 2>/dev/null)
|