e371fa8db1
- 删除 engines/c/main.c, engines/cpp/main.cpp, engines/fortran/main.f90 - Makefile 移除 all/exe 构建目标,默认只编译 DLL
42 lines
822 B
Makefile
42 lines
822 B
Makefile
# engines/fortran/Makefile
|
|
# 编译 DLL(主程序通过 ctypes 直接调用)
|
|
|
|
FC = gfortran
|
|
FFLAGS = -O3 -march=native -Wall -Wextra
|
|
LIB_SRC = dynamics_lib.f90
|
|
|
|
UNAME_S := $(shell uname -s 2>/dev/null || echo Windows)
|
|
|
|
ifeq ($(UNAME_S),Windows)
|
|
STATIC_FLAGS = -static
|
|
else
|
|
STATIC_FLAGS =
|
|
endif
|
|
|
|
ifeq ($(UNAME_S),Linux)
|
|
DLL_TARGET = build/dynamics_f90.so
|
|
DLL_FLAGS = -shared -fPIC
|
|
else ifeq ($(UNAME_S),Darwin)
|
|
DLL_TARGET = build/dynamics_f90.dylib
|
|
DLL_FLAGS = -dynamiclib
|
|
else
|
|
DLL_TARGET = build/dynamics_f90.dll
|
|
DLL_FLAGS = -shared -fPIC
|
|
endif
|
|
|
|
.PHONY: all dll clean
|
|
|
|
all: dll
|
|
|
|
dll: $(DLL_TARGET)
|
|
|
|
$(DLL_TARGET): $(LIB_SRC) | build
|
|
$(FC) $(FFLAGS) $(STATIC_FLAGS) $(DLL_FLAGS) -o $@ $(LIB_SRC)
|
|
@echo " === Fortran DLL built: $@ ==="
|
|
|
|
build:
|
|
mkdir -p build
|
|
|
|
clean:
|
|
rm -rf build *.o *.mod
|