# Sprinter Commander — двухпанельный файловый менеджер. EXAMPLE := sprcmd SRC_DIR := src BUILD_DIR := build MEMORY := big ALLOCS ?= 3000 HDD_IMG := $(CURDIR)/build/hdd/sprcmd.chd MDVIEW2_DIR := $(CURDIR)/tests/fixtures/mdview2 MDVIEW2_SRCS := $(wildcard $(MDVIEW2_DIR)/*.c) MDVIEW2_HEADERS := $(wildcard $(MDVIEW2_DIR)/*.h) MDVIEW2_TEST_EXE := $(CURDIR)/build/external/mdview2.exe P5_COPY_FAULT_EXE := $(CURDIR)/build/tests/cperr.exe P6_SORT_TEST_EXE := $(CURDIR)/build/tests/sortrt.exe P7_SELECT_TEST_EXE := $(CURDIR)/build/tests/selrt.exe P9_MKDIR_TEST_EXE := $(CURDIR)/build/tests/mkrt.exe P10_RENAME_TEST_EXE := $(CURDIR)/build/tests/renrt.exe P11_DELETE_TEST_EXE := $(CURDIR)/build/tests/delrt.exe P19_OVERWRITE_TEST_EXE := $(CURDIR)/build/tests/p19/delrt.exe BANK1_SRCS := src/sc_source_fs.c src/sc_sort.c src/sc_select.c \ src/sc_copy_job.c src/sc_metadata.c src/sc_disk.c src/sc_tree.c src/sc_exec_ui.c BANK2_SRCS := src/sc_draw.c src/sc_dialog.c src/sc_copy_ui.c \ src/sc_file_ui.c src/sc_name.c src/sc_rename.c EXTRA_FLAGS := --safe --max-allocs $(ALLOCS) -I include \ $(foreach f,$(BANK1_SRCS),--bank 1=$(f)) \ $(foreach f,$(BANK2_SRCS),--bank 2=$(f)) EXTRA_SRCS := \ src/sc_app.c \ src/sc_command.c \ src/sc_input.c \ src/sc_path.c \ src/sc_panel.c \ src/sc_platform_screen.c \ src/sc_platform_exec.c \ src/sc_screen.c \ src/sc_store.c \ src/sc_theme.c \ src/sc_video_system.c include $(CURDIR)/sdk.mk HEADERS := $(wildcard include/*.h) $(EXE): Makefile $(HEADERS) $(BANK1_SRCS) $(BANK2_SRCS) hdd-stress: $(EXE) sh tests/make_p3_stress_hdd.sh $(CURDIR)/build/hdd/p3_stress.chd $(EXE) hdd-copy: $(EXE) sh tests/make_p4_copy_hdd.sh $(CURDIR)/build/hdd/p4_copy.chd $(EXE) tests/p4_exec_child/p4child.exe: tests/p4_exec_child/p4child.c \ tests/p4_exec_child/Makefile $(MAKE) -C tests/p4_exec_child ALLOCS=$(ALLOCS) hdd-exec: $(EXE) tests/p4_exec_child/p4child.exe sh tests/make_p4_exec_hdd.sh $(CURDIR)/build/hdd/p4_exec.chd \ $(EXE) tests/p4_exec_child/p4child.exe hdd-p5: $(EXE) sh tests/make_p5_hdd.sh $(CURDIR)/build/hdd/p5_stability.chd $(EXE) hdd-p5-enospc: $(EXE) sh tests/make_p5_enospc_hdd.sh \ $(CURDIR)/build/hdd/p5_enospc.chd $(EXE) hdd-p5-panels: $(EXE) sh tests/make_p5_panel_edges_hdd.sh \ $(CURDIR)/build/hdd/p5_panel_edges.chd $(EXE) $(MDVIEW2_TEST_EXE): $(MDVIEW2_SRCS) $(MDVIEW2_HEADERS) $(LIB) mkdir -p $(dir $@) $(PROJ_ROOT)/bin/sprinter-cc --memory small --max-allocs $(ALLOCS) \ -o $@ $(MDVIEW2_SRCS) hdd-p5-viewer: $(EXE) $(MDVIEW2_TEST_EXE) sh tests/make_p5_viewer_hdd.sh \ $(CURDIR)/build/hdd/p5_viewer.chd $(EXE) \ $(MDVIEW2_TEST_EXE) $(MDVIEW2_DIR)/README.md $(P5_COPY_FAULT_EXE): tests/p5_copy_faults.c src/sc_copy_job.c \ src/sc_metadata.c src/sc_disk.c \ src/sc_path.c src/sc_platform_exec.c include/sc_copy.h \ include/sc_metadata.h include/sc_disk.h include/sc_path.h \ include/sc_exec.h $(LIB) mkdir -p $(dir $@) $(PROJ_ROOT)/bin/sprinter-cc --memory big --safe --max-allocs $(ALLOCS) \ -I include --bank 1=src/sc_copy_job.c --bank 1=src/sc_metadata.c \ --bank 1=src/sc_disk.c -o $@ \ tests/p5_copy_faults.c src/sc_path.c src/sc_platform_exec.c hdd-p5-copy-faults: $(P5_COPY_FAULT_EXE) sh tests/make_p5_copy_faults_hdd.sh \ $(CURDIR)/build/hdd/p5_copy_faults.chd $(P5_COPY_FAULT_EXE) hdd-p5-media: $(EXE) sh tests/make_p5_media_hdd.sh \ $(CURDIR)/build/hdd/p5_media.chd $(EXE) $(P6_SORT_TEST_EXE): tests/p6_sort_probe.c src/sc_sort.c src/sc_store.c \ include/sc_entry.h include/sc_panel.h include/sc_sort.h \ include/sc_store.h $(LIB) mkdir -p $(dir $@) $(PROJ_ROOT)/bin/sprinter-cc --memory big --safe --max-allocs $(ALLOCS) \ -I include --bank 1=src/sc_sort.c -o $@ \ tests/p6_sort_probe.c src/sc_store.c hdd-p6-sort: $(EXE) $(P6_SORT_TEST_EXE) sh tests/make_p6_sort_hdd.sh $(CURDIR)/build/hdd/p6_sort.chd \ $(EXE) $(P6_SORT_TEST_EXE) $(P7_SELECT_TEST_EXE): tests/p7_select_probe.c src/sc_select.c \ src/sc_store.c include/sc_entry.h include/sc_panel.h \ include/sc_select.h include/sc_store.h $(LIB) mkdir -p $(dir $@) $(PROJ_ROOT)/bin/sprinter-cc --memory big --safe --max-allocs $(ALLOCS) \ -I include --bank 1=src/sc_select.c -o $@ \ tests/p7_select_probe.c src/sc_store.c hdd-p7-select: $(EXE) $(P7_SELECT_TEST_EXE) sh tests/make_p7_select_hdd.sh $(CURDIR)/build/hdd/p7_select.chd \ $(EXE) $(P7_SELECT_TEST_EXE) hdd-p8-masks: hdd-p7-select $(P9_MKDIR_TEST_EXE): tests/p9_mkdir_probe.c src/sc_name.c src/sc_path.c \ include/sc_path.h $(LIB) mkdir -p $(dir $@) $(PROJ_ROOT)/bin/sprinter-cc --memory big --safe --max-allocs $(ALLOCS) \ -I include --bank 1=src/sc_name.c -o $@ \ tests/p9_mkdir_probe.c src/sc_path.c hdd-p9-mkdir: $(EXE) $(P9_MKDIR_TEST_EXE) sh tests/make_p9_mkdir_hdd.sh $(CURDIR)/build/hdd/p9_mkdir.chd \ $(EXE) $(P9_MKDIR_TEST_EXE) $(P10_RENAME_TEST_EXE): tests/p10_rename_probe.c src/sc_rename.c \ include/sc_file_ops.h $(LIB) mkdir -p $(dir $@) $(PROJ_ROOT)/bin/sprinter-cc --memory big --safe --max-allocs $(ALLOCS) \ -I include --bank 1=src/sc_rename.c -o $@ \ tests/p10_rename_probe.c hdd-p10-rename: $(EXE) $(P10_RENAME_TEST_EXE) sh tests/make_p10_rename_hdd.sh $(CURDIR)/build/hdd/p10_rename.chd \ $(EXE) $(P10_RENAME_TEST_EXE) $(P11_DELETE_TEST_EXE): tests/p11_delete_probe.c $(LIB) mkdir -p $(dir $@) $(PROJ_ROOT)/bin/sprinter-cc --memory big --safe --max-allocs $(ALLOCS) \ -o $@ tests/p11_delete_probe.c hdd-p11-delete: $(EXE) $(P11_DELETE_TEST_EXE) sh tests/make_p11_delete_hdd.sh $(CURDIR)/build/hdd/p11_delete.chd \ $(EXE) $(P11_DELETE_TEST_EXE) hdd-p12-group-copy: $(EXE) sh tests/make_p12_group_copy_hdd.sh \ $(CURDIR)/build/hdd/p12_group_copy.chd $(EXE) hdd-p13-group-delete: $(EXE) sh tests/make_p13_group_delete_hdd.sh \ $(CURDIR)/build/hdd/p13_group_delete.chd $(EXE) hdd-p14-default-colors: $(EXE) sh tests/make_p14_default_colors_hdd.sh \ $(CURDIR)/build/hdd/p14_default_colors.chd $(EXE) hdd-p15-tree-copy: $(EXE) sh tests/make_p15_tree_copy_hdd.sh \ $(CURDIR)/build/hdd/p15_tree_copy.chd $(EXE) hdd-p15-tree-cancel: $(EXE) sh tests/make_p15_tree_cancel_hdd.sh \ $(CURDIR)/build/hdd/p15_tree_cancel.chd $(EXE) hdd-p15-tree-self: $(EXE) sh tests/make_p15_tree_self_hdd.sh \ $(CURDIR)/build/hdd/p15_tree_self.chd $(EXE) hdd-p16-group-tree-copy: $(EXE) sh tests/make_p16_group_tree_copy_hdd.sh \ $(CURDIR)/build/hdd/p16_group_tree_copy.chd $(EXE) hdd-p17-tree-delete: $(EXE) sh tests/make_p17_tree_delete_hdd.sh \ $(CURDIR)/build/hdd/p17_tree_delete.chd $(EXE) hdd-p17-tree-delete-cancel: $(EXE) sh tests/make_p17_tree_delete_cancel_hdd.sh \ $(CURDIR)/build/hdd/p17_tree_delete_cancel.chd $(EXE) hdd-p18-metadata: $(EXE) sh tests/make_p18_metadata_hdd.sh \ $(CURDIR)/build/hdd/p18_metadata.chd $(EXE) $(P19_OVERWRITE_TEST_EXE): tests/p19_overwrite_probe.c \ src/sc_copy_job.c src/sc_metadata.c src/sc_disk.c src/sc_path.c \ include/sc_copy.h include/sc_metadata.h include/sc_disk.h \ include/sc_path.h $(LIB) mkdir -p $(dir $@) $(PROJ_ROOT)/bin/sprinter-cc --memory big --safe --max-allocs $(ALLOCS) \ -I include --bank 1=src/sc_copy_job.c --bank 1=src/sc_metadata.c \ --bank 1=src/sc_disk.c \ -o $@ tests/p19_overwrite_probe.c src/sc_path.c hdd-p19-overwrite: $(P19_OVERWRITE_TEST_EXE) sh tests/make_p19_overwrite_hdd.sh \ $(CURDIR)/build/hdd/p19_overwrite.chd $(P19_OVERWRITE_TEST_EXE) hdd-p19-policy: $(EXE) sh tests/make_p19_policy_hdd.sh \ $(CURDIR)/build/hdd/p19_policy.chd $(EXE) .PHONY: hdd-stress hdd-copy hdd-exec hdd-p5 hdd-p5-enospc hdd-p5-panels \ hdd-p5-viewer hdd-p5-copy-faults hdd-p5-media hdd-p6-sort hdd-p7-select \ hdd-p8-masks hdd-p9-mkdir hdd-p10-rename hdd-p11-delete \ hdd-p12-group-copy hdd-p13-group-delete hdd-p14-default-colors \ hdd-p15-tree-copy hdd-p15-tree-cancel hdd-p15-tree-self \ hdd-p16-group-tree-copy hdd-p17-tree-delete hdd-p17-tree-delete-cancel \ hdd-p18-metadata hdd-p19-overwrite hdd-p19-policy