e371fa8db1
- 删除 engines/c/main.c, engines/cpp/main.cpp, engines/fortran/main.f90 - Makefile 移除 all/exe 构建目标,默认只编译 DLL
42 lines
1004 B
Makefile
42 lines
1004 B
Makefile
# engines/c/Makefile
|
||
# 编译 DLL(主程序通过 ctypes 直接调用)
|
||
# make dll → 本地系统编译
|
||
# make linux → Linux 交叉编译(需 x86_64-linux-gnu-gcc)
|
||
# make windows → Windows 交叉编译(需 x86_64-w64-mingw32-gcc)
|
||
|
||
CC = gcc
|
||
CFLAGS = -O3 -march=native -Wall -Wextra
|
||
LDFLAGS = -lm
|
||
LIB_SRC = dynamics_lib.c
|
||
|
||
# 自动检测系统
|
||
UNAME_S := $(shell uname -s 2>/dev/null || echo Windows)
|
||
|
||
# DLL 目标(平台自动选择后缀)
|
||
ifeq ($(UNAME_S),Linux)
|
||
DLL_TARGET = build/dynamics_c.so
|
||
DLL_FLAGS = -shared -fPIC
|
||
else ifeq ($(UNAME_S),Darwin)
|
||
DLL_TARGET = build/dynamics_c.dylib
|
||
DLL_FLAGS = -dynamiclib
|
||
else
|
||
DLL_TARGET = build/dynamics_c.dll
|
||
DLL_FLAGS = -shared
|
||
endif
|
||
|
||
.PHONY: all dll clean
|
||
|
||
all: dll
|
||
|
||
dll: $(DLL_TARGET)
|
||
|
||
$(DLL_TARGET): $(LIB_SRC) | build
|
||
$(CC) $(CFLAGS) $(DLL_FLAGS) -o $@ $(LIB_SRC) $(LDFLAGS)
|
||
@echo " === C DLL built: $@ ==="
|
||
|
||
build:
|
||
mkdir -p build
|
||
|
||
clean:
|
||
rm -rf build *.o
|