# Пример нативной библиотеки A4 Office для C (macOS, Linux; в Windows - make из MinGW или CMake).
#
#   make            собрать open_save против комплекта, лежащего двумя папками выше
#   make run        изменить три файла из samples/ и записать out/edited.*
#   make SDK=/opt/a4-c-2026.4.5-linux-x64
#
# Библиотеки находятся при запуске через rpath относительно исполняемого файла, поэтому
# папку комплекта можно переносить целиком. Связывание только с динамическими библиотеками:
# каждое ядро несёт свою среду выполнения Rust.
SDK    ?= ../..
CC     ?= cc
CFLAGS ?= -O2 -Wall -Wextra -std=c11

UNAME := $(shell uname -s)
ifeq ($(UNAME),Darwin)
  RPATH := -Wl,-rpath,@executable_path/$(SDK)/lib
else
  RPATH := -Wl,-rpath,'$$ORIGIN/$(SDK)/lib'
endif
LIBS := -L$(SDK)/lib -lf1 -la4 -lp2

all: open_save

open_save: open_save.c
	$(CC) $(CFLAGS) -I$(SDK)/include $< $(LIBS) $(RPATH) -o $@

run: open_save
	mkdir -p out
	./open_save samples/sample.xlsx out/edited.xlsx
	./open_save samples/sample.docx out/edited.docx
	./open_save samples/sample.pptx out/edited.pptx

clean:
	rm -rf open_save out

.PHONY: all run clean
