From 5991e53ee7a769d85c908ef1818d3d95f00caa9e Mon Sep 17 00:00:00 2001 From: fdo <29801096+fdobad@users.noreply.github.com> Date: Mon, 2 Sep 2024 02:42:27 -0400 Subject: [PATCH] test macos-12 (#55) * order * static * finding static dependencies * end --------- Co-authored-by: fdobad <8339628-fdobad@users.noreply.gitlab.com> --- .github/workflows/build-debian-stable.yml | 6 +- .github/workflows/build-macos-13.yml | 46 ------------ .github/workflows/build-macos-latest.yml | 51 -------------- .github/workflows/build-macos.yml | 71 +++++++++++++++++++ .github/workflows/build-manylinux.yml | 6 +- .github/workflows/build-windows.yml | 6 +- .github/workflows/release.yml | 18 +++-- Cell2Fire/makefile.debian | 44 ------------ Cell2Fire/makefile.macos | 86 +++++++++++++---------- Cell2Fire/makefile.macos-13 | 44 ------------ Cell2Fire/makefile.macos-latest | 46 ------------ Cell2Fire/makefile.macos-static | 57 +++++++++++++++ 12 files changed, 192 insertions(+), 289 deletions(-) delete mode 100644 .github/workflows/build-macos-13.yml delete mode 100644 .github/workflows/build-macos-latest.yml create mode 100644 .github/workflows/build-macos.yml delete mode 100644 Cell2Fire/makefile.debian delete mode 100644 Cell2Fire/makefile.macos-13 delete mode 100644 Cell2Fire/makefile.macos-latest create mode 100644 Cell2Fire/makefile.macos-static diff --git a/.github/workflows/build-debian-stable.yml b/.github/workflows/build-debian-stable.yml index 92a8f9e9..a74bcfa0 100644 --- a/.github/workflows/build-debian-stable.yml +++ b/.github/workflows/build-debian-stable.yml @@ -1,9 +1,9 @@ name: build debian stable on: - pull_request: - branches: - - main + # pull_request: + # branches: + # - main workflow_dispatch: workflow_call: diff --git a/.github/workflows/build-macos-13.yml b/.github/workflows/build-macos-13.yml deleted file mode 100644 index d7f4b391..00000000 --- a/.github/workflows/build-macos-13.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: build macos-13(x86_64) - -on: - # pull_request: - # branches: - # - main - workflow_dispatch: - workflow_call: - -permissions: - contents: write - -jobs: - macos_build: - runs-on: macos-13 - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Doit - run: | - echo "arch" - arch - g++-12 --version - brew install boost eigen llvm libomp libtiff - cd Cell2Fire - echo "cleaning" - make clean -f makefile.macos-13 - echo "building" - make -f makefile.macos-13 - echo "end build" - ldd Cell2Fire - ext=`python3 -c "import platform;print(f'.{platform.system()}.{platform.machine()}')"` - echo "extension $ext" - mv Cell2Fire Cell2Fire$ext - - - name: Test - run: | - cd test - bash test.sh - - - name: Upload - uses: actions/upload-artifact@v4 - with: - name: binaries-Darwin-x86_64 - path: Cell2Fire/Cell2Fire.Darwin.x86_64 diff --git a/.github/workflows/build-macos-latest.yml b/.github/workflows/build-macos-latest.yml deleted file mode 100644 index 05a63443..00000000 --- a/.github/workflows/build-macos-latest.yml +++ /dev/null @@ -1,51 +0,0 @@ -name: build macos-latest(arm64) - -on: - # pull_request: - # branches: - # - main - workflow_dispatch: - workflow_call: - -permissions: - contents: write - -jobs: - macos_build: - runs-on: macos-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Doit - run: | - # which gcc-12 - # which brew - brew install boost eigen llvm libopenmpt libtiff - echo "find boost" - find /opt/homebrew -name "boost" 2>/dev/null - echo "find llvm" - find /opt/homebrew -name "llvm" 2>/dev/null - echo "find Eigen" - find /opt/homebrew -name "Eigen" 2>/dev/null - cd Cell2Fire - echo "cleaning" - make clean -f makefile.macos-latest - echo "building" - make -f makefile.macos-latest - echo "end build" - ldd Cell2Fire - ext=`python3 -c "import platform;print(f'.{platform.system()}.{platform.machine()}')"` - echo "extension $ext" - mv Cell2Fire Cell2Fire$ext - - - name: Test - run: | - cd test - bash test.sh - - - name: Upload - uses: actions/upload-artifact@v4 - with: - name: binaries-Darwin-arm64 - path: Cell2Fire/Cell2Fire.Darwin.arm64 diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml new file mode 100644 index 00000000..b4c5f23c --- /dev/null +++ b/.github/workflows/build-macos.yml @@ -0,0 +1,71 @@ +name: build macos all + +on: + # pull_request: + # branches: + # - main + workflow_dispatch: + workflow_call: + +permissions: + contents: write + +jobs: + build: + strategy: + matrix: + runner: ["macOS-12", "macOS-13", "macOS-14"] + runs-on: ${{ matrix.runner }} + + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Check Runner + run: | + # arch + # echo "runner: ${{ matrix.runner }}.$(arch).$(uname -m)" + # mayor version: sw_vers -productVersion | cut -d '.' -f 1 + # Darwin : uname -s + echo "suffix="$(uname -s).${{ matrix.runner }}.$(arch)"" >> $GITHUB_ENV + brew config + + - name: Install Dependencies + run: | + brew install gcc@12 libomp eigen boost libtiff # llvm ? + + - name: Build + run: | + cd Cell2Fire + make clean + make -f makefile.macos + otool -L Cell2Fire > otool_${{ env.suffix }}.txt + mv Cell2Fire Cell2Fire_${{ env.suffix }} + + - name: Upload + uses: actions/upload-artifact@v4 + with: + name: binaries_${{ env.suffix }} + path: | + Cell2Fire/otool_${{ env.suffix }}.txt + Cell2Fire/Cell2Fire_${{ env.suffix }} + + - name: Install Static Dependencies + run: | + brew install gcc@12 libomp eigen boost libtiff jpeg-turbo xz zstd zlib + + - name: Build Static + run: | + cd Cell2Fire + make clean + make -f makefile.macos-static + otool -L Cell2Fire > otool_${{ env.suffix }}-static.txt + mv Cell2Fire Cell2Fire_${{ env.suffix }}-static + + - name: Upload Static + uses: actions/upload-artifact@v4 + with: + name: binaries_${{ env.suffix }}-static + path: | + Cell2Fire/otool_${{ env.suffix }}-static.txt + Cell2Fire/Cell2Fire_${{ env.suffix }}-static diff --git a/.github/workflows/build-manylinux.yml b/.github/workflows/build-manylinux.yml index 93c49ca9..3628d674 100644 --- a/.github/workflows/build-manylinux.yml +++ b/.github/workflows/build-manylinux.yml @@ -1,9 +1,9 @@ name: build manylinux on: - pull_request: - branches: - - main + # pull_request: + # branches: + # - main workflow_dispatch: workflow_call: diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 787e2662..c6660366 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -1,9 +1,9 @@ name: build windows on: - pull_request: - branches: - - main + # pull_request: + # branches: + # - main workflow_dispatch: workflow_call: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 21832aff..e27a4649 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,9 +1,9 @@ name: release on: - pull_request: - branches: - - main + # pull_request: + # branches: + # - main push: tags: - 'v[0-9]+.[0-9]+.[0-9]+' @@ -20,18 +20,14 @@ jobs: build_debian_stable: uses: ./.github/workflows/build-debian-stable.yml - # build_macos_latest: - # uses: ./.github/workflows/build-macos-latest.yml - - # build_macos_13: - # uses: ./.github/workflows/build-macos-13.yml + build_macos: + uses: ./.github/workflows/build-macos.yml build_windows: uses: ./.github/workflows/build-windows.yml release: - # needs: [build_ubuntu_latest, build_debian_stable, build_windows, build_macos_latest, build_macos_13] - needs: [build_manylinux, build_windows, build_debian_stable] + needs: [build_manylinux, build_windows, build_debian_stable, build_macos] runs-on: ubuntu-latest steps: @@ -65,6 +61,7 @@ jobs: zip ../Cell2FireW_${{ env.RELEASE_TAG }}-manylinux-x86_64-binary.zip Cell2Fire ldd_manylinux.txt zip ../Cell2FireW_${{ env.RELEASE_TAG }}-Debian.bookworm.x86_64-binary.zip Cell2Fire.Debian.bookworm.x86_64 ldd.Debian.bookworm.x86_64.txt zip ../Cell2FireW_${{ env.RELEASE_TAG }}-Ubuntu.jammy.x86_64-binary.zip Cell2Fire.Ubuntu.jammy.x86_64 ldd.Ubuntu.jammy.x86_64.txt + zip ../Cell2FireW_${{ env.RELEASE_TAG }}-macOS-binaries.zip Cell2Fire_Darwin* otool*.txt - name: Zip Data Instances run: | @@ -96,6 +93,7 @@ jobs: Cell2FireW_${{ env.RELEASE_TAG }}-manylinux-x86_64-binary.zip Cell2FireW_${{ env.RELEASE_TAG }}-Debian.bookworm.x86_64-binary.zip Cell2FireW_${{ env.RELEASE_TAG }}-Ubuntu.jammy.x86_64-binary.zip + Cell2FireW_${{ env.RELEASE_TAG }}-macOS-binaries.zip Kitral-asc.zip Kitral-tif.zip CanadianFBP-asc.zip diff --git a/Cell2Fire/makefile.debian b/Cell2Fire/makefile.debian deleted file mode 100644 index c5d4554a..00000000 --- a/Cell2Fire/makefile.debian +++ /dev/null @@ -1,44 +0,0 @@ -CC = g++-12 -MPCC = g++-12 -OPENMP = -fopenmp -CFLAGS = -std=c++14 -O3 -I /usr/include -I /usr/include/eigen3 -fopenmp -LIBS = -m64 -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DNDEBUG -DIL_STD -lm -lpthread -ldl -ltiff -TARGETS = Cell2Fire -all: $(TARGETS) -Cell2Fire: Cell2Fire.o Cells.o FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o Spotting.o ReadCSV.o ReadArgs.o Lightning.o WriteCSV.o Ellipse.o DataGenerator.o - $(CC) -o $@ Cell2Fire.o Cells.o FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o Spotting.o ReadCSV.o ReadArgs.o Lightning.o WriteCSV.o Ellipse.o DataGenerator.o $(LIBS) -Cell2Fire.o: Cell2Fire.cpp Cells.o FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o Spotting.o ReadCSV.o ReadArgs.o WriteCSV.o DataGenerator.o - $(CC) -c $(CFLAGS) Cell2Fire.cpp -Spotting.o: Spotting.cpp Spotting.h Cells.h - $(CC) -c $(CFLAGS) Spotting.cpp -Cells.o: Cells.cpp Cells.h FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o - $(CC) -c $(CFLAGS) Cells.cpp -ReadCSV.o: ReadCSV.cpp ReadCSV.h - $(CC) -c $(CFLAGS) ReadCSV.cpp -ReadArgs.o: ReadArgs.cpp ReadArgs.h - $(CC) -c $(CFLAGS) ReadArgs.cpp -Lightning.o: Lightning.cpp Lightning.h - $(CC) -c $(CFLAGS) Lightning.cpp -Forest.o: Forest.cpp Forest.h - $(CC) -c $(CFLAGS) Forest.cpp -WriteCSV.o: WriteCSV.cpp WriteCSV.h - $(CC) -c $(CFLAGS) WriteCSV.cpp -Ellipse.o: Ellipse.cpp Ellipse.h - $(CC) -c $(LIBS) $(CFLAGS) Ellipse.cpp -FuelModelSpain.o: FuelModelSpain.cpp FuelModelSpain.h Cells.h - $(CC) -c $(LIBS) $(CFLAGS) FuelModelSpain.cpp -FuelModelKitral.o: FuelModelKitral.cpp FuelModelKitral.h Cells.h - $(CC) -c $(LIBS) $(CFLAGS) FuelModelKitral.cpp -FuelModelFBP.o: FuelModelFBP.cpp FuelModelFBP.h Cells.h - $(CC) -c $(LIBS) $(CFLAGS) FuelModelFBP.cpp -DataGenerator.o: DataGenerator.cpp DataGenerator.h - $(CC) -c $(CFLAGS) DataGenerator.cpp -clean: - rm -f Lightning.o ReadArgs.o ReadCSV.o Cell2Fire.o Cells.o Cell2Fire Spotting.o WriteCSV.o Ellipse.o FuelModelFBP.o FuelModelKitral.o FuelModelSpain.o DataGenerator.o *.gch - -DESTDIR = /usr/local/bin -install: all - cp $(TARGETS) $(DESTDIR) -uninstall: all - rm -rf $(DESTDIR)/$(TARGETS) - diff --git a/Cell2Fire/makefile.macos b/Cell2Fire/makefile.macos index 9c861b24..15a9fdc0 100644 --- a/Cell2Fire/makefile.macos +++ b/Cell2Fire/makefile.macos @@ -1,44 +1,52 @@ -LDFLAGS="-L/opt/homebrew/opt/llvm/lib" -CPPFLAGS="-I/opt/homebrew/opt/llvm/include" -CC = /opt/homebrew/bin/g++-12 -CFLAGS = -std=c++14 -O3 -I /opt/homebrew/include -I /opt/homebrew/include/eigen3 -fopenmp -LIBS = -m64 -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DNDEBUG -DIL_STD -lm -lpthread -ldl -TARGETS = Cell2Fire -all: $(TARGETS) -Cell2Fire: Cell2Fire.o Cells.o FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o Spotting.o ReadCSV.o ReadArgs.o Lightning.o WriteCSV.o Ellipse.o DataGenerator.o - $(CC) -o $@ $(LIBS) Cell2Fire.o Cells.o FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o Spotting.o ReadCSV.o ReadArgs.o Lightning.o WriteCSV.o Ellipse.o DataGenerator.o -Cell2Fire.o: Cell2Fire.cpp Cells.o FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o Spotting.o ReadCSV.o ReadArgs.o WriteCSV.o DataGenerator.o - $(CC) -c $(CFLAGS) Cell2Fire.cpp -Spotting.o: Spotting.cpp Spotting.h Cells.h - $(CC) -c $(CFLAGS) Spotting.cpp -Cells.o: Cells.cpp Cells.h FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o - $(CC) -c $(CFLAGS) Cells.cpp -ReadCSV.o: ReadCSV.cpp ReadCSV.h - $(CC) -c $(CFLAGS) ReadCSV.cpp -ReadArgs.o: ReadArgs.cpp ReadArgs.h - $(CC) -c $(CFLAGS) ReadArgs.cpp -Lightning.o: Lightning.cpp Lightning.h - $(CC) -c $(CFLAGS) Lightning.cpp -Forest.o: Forest.cpp Forest.h - $(CC) -c $(CFLAGS) Forest.cpp -WriteCSV.o: WriteCSV.cpp WriteCSV.h - $(CC) -c $(CFLAGS) WriteCSV.cpp -Ellipse.o: Ellipse.cpp Ellipse.h - $(CC) -c $(LIBS) $(CFLAGS) Ellipse.cpp -FuelModelSpain.o: FuelModelSpain.cpp FuelModelSpain.h Cells.h - $(CC) -c $(LIBS) $(CFLAGS) FuelModelSpain.cpp -FuelModelKitral.o: FuelModelKitral.cpp FuelModelKitral.h Cells.h - $(CC) -c $(LIBS) $(CFLAGS) FuelModelKitral.cpp -FuelModelFBP.o: FuelModelFBP.cpp FuelModelFBP.h Cells.h - $(CC) -c $(LIBS) $(CFLAGS) FuelModelFBP.cpp -DataGenerator.o: DataGenerator.cpp DataGenerator.h - $(CC) -c $(LIBS) $(CFLAGS) DataGenerator.cpp +# Development dependencies +CXX = g++-12 + +# NOT WORKING +# Capture the value of the environment variable HOMEBREW_PREFIX +# HOMEBREW_PREFIX := $(shell echo $$HOMEBREW_PREFIX) +# HOMEBREW_PREFIX := $(shell echo $(brew --prefix)) + +# Capture the output of the `arch` command +ARCH := $(shell arch) + +# Set HOMEBREW_PREFIX based on the architecture +ifeq ($(ARCH), arm64) + HOMEBREW_PREFIX := /opt/homebrew +else + HOMEBREW_PREFIX := /usr/local +endif + +INCLUDE := $(HOMEBREW_PREFIX)/include +OPT := $(HOMEBREW_PREFIX)/opt + +# Compiler and linker flags +CXXFLAGS = -m64 -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DNDEBUG -DIL_STD -std=c++14 -O3 -I $(INCLUDE) -I $(INCLUDE)/eigen3 -I $(INCLUDE)/boost +LDFLAGS = -m64 -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DNDEBUG -DIL_STD -lm -lpthread -ltiff -L$(OPT)/libtiff/lib + +# Source files +SRCS = Cell2Fire.cpp Cells.cpp FuelModelSpain.cpp FuelModelKitral.cpp FuelModelFBP.cpp Spotting.cpp ReadCSV.cpp ReadArgs.cpp Lightning.cpp WriteCSV.cpp Ellipse.cpp DataGenerator.cpp + +# Object files +OBJS = $(SRCS:.cpp=.o) + +# Target executable +TARGET = Cell2Fire + +# Build rules + +all: $(TARGET) + +$(TARGET): $(OBJS) + $(CXX) -o $(TARGET) $(OBJS) $(LDFLAGS) + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -c $< -o $@ + clean: - rm -f Lightning.o ReadArgs.o ReadCSV.o Cell2Fire.o Cells.o Cell2Fire Spotting.o WriteCSV.o Ellipse.o FuelModelFBP.o FuelModelKitral.o FuelModelSpain.o DataGenerator.o *.gch - + rm -f $(OBJS) $(TARGET) + DESTDIR = /usr/local/bin install: all cp $(TARGETS) $(DESTDIR) uninstall: all - rm -rf $(DESTDIR)/$(TARGETS) - + rm $(DESTDIR)/$(TARGETS) diff --git a/Cell2Fire/makefile.macos-13 b/Cell2Fire/makefile.macos-13 deleted file mode 100644 index 2b559453..00000000 --- a/Cell2Fire/makefile.macos-13 +++ /dev/null @@ -1,44 +0,0 @@ -# hello world -DUMMY = false -CC = g++-12 -CFLAGS = -Xlinker -ld_classic -std=c++14 -O3 -I/usr/local/include -I/usr/local/include/eigen3 -fopenmp -I/usr/local/opt/llvm/include -I/usr/local/opt/libomp/include -LIBS = -m64 -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DNDEBUG -DIL_STD -lm -lpthread -ldl -L/usr/local/opt/llvm/lib -L/usr/local/opt/libomp/lib -L/usr/local/opt/llvm/lib/c++ -Wl,-rpath,/usr/local/opt/llvm/lib/c++ -TARGETS = Cell2Fire -all: $(TARGETS) -Cell2Fire: Cell2Fire.o Cells.o FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o Spotting.o ReadCSV.o ReadArgs.o Lightning.o WriteCSV.o Ellipse.o DataGenerator.o - $(CC) -o $@ Cell2Fire.o Cells.o FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o Spotting.o ReadCSV.o ReadArgs.o Lightning.o WriteCSV.o Ellipse.o DataGenerator.o $(LIBS) $(CFLAGS) -Cell2Fire.o: Cell2Fire.cpp Cells.o FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o Spotting.o ReadCSV.o ReadArgs.o WriteCSV.o DataGenerator.o - $(CC) -c $(LIBS) $(CFLAGS) Cell2Fire.cpp -Spotting.o: Spotting.cpp Spotting.h Cells.h - $(CC) -c $(LIBS) $(CFLAGS) Spotting.cpp -Cells.o: Cells.cpp Cells.h FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o - $(CC) -c $(LIBS) $(CFLAGS) Cells.cpp -ReadCSV.o: ReadCSV.cpp ReadCSV.h - $(CC) -c $(LIBS) $(CFLAGS) ReadCSV.cpp -ReadArgs.o: ReadArgs.cpp ReadArgs.h - $(CC) -c $(LIBS) $(CFLAGS) ReadArgs.cpp -Lightning.o: Lightning.cpp Lightning.h - $(CC) -c $(LIBS) $(CFLAGS) Lightning.cpp -Forest.o: Forest.cpp Forest.h - $(CC) -c $(LIBS) $(CFLAGS) Forest.cpp -WriteCSV.o: WriteCSV.cpp WriteCSV.h - $(CC) -c $(LIBS) $(CFLAGS) WriteCSV.cpp -Ellipse.o: Ellipse.cpp Ellipse.h - $(CC) -c $(LIBS) $(CFLAGS) Ellipse.cpp -FuelModelSpain.o: FuelModelSpain.cpp FuelModelSpain.h Cells.h - $(CC) -c $(LIBS) $(CFLAGS) FuelModelSpain.cpp -FuelModelKitral.o: FuelModelKitral.cpp FuelModelKitral.h Cells.h - $(CC) -c $(LIBS) $(CFLAGS) FuelModelKitral.cpp -FuelModelFBP.o: FuelModelFBP.cpp FuelModelFBP.h Cells.h - $(CC) -c $(LIBS) $(CFLAGS) FuelModelFBP.cpp -DataGenerator.o: DataGenerator.cpp DataGenerator.h - $(CC) -c $(LIBS) $(CFLAGS) DataGenerator.cpp -clean: - rm -f Lightning.o ReadArgs.o ReadCSV.o Cell2Fire.o Cells.o Cell2Fire Spotting.o WriteCSV.o Ellipse.o FuelModelFBP.o FuelModelKitral.o FuelModelSpain.o DataGenerator.o *.gch - -DESTDIR = /usr/local/bin -install: all - cp $(TARGETS) $(DESTDIR) -uninstall: all - rm -rf $(DESTDIR)/$(TARGETS) - diff --git a/Cell2Fire/makefile.macos-latest b/Cell2Fire/makefile.macos-latest deleted file mode 100644 index 67cd1f1d..00000000 --- a/Cell2Fire/makefile.macos-latest +++ /dev/null @@ -1,46 +0,0 @@ -LDFLAGS="-L/opt/homebrew/opt/llvm/lib" -CPPFLAGS="-I/opt/homebrew/opt/llvm/include" -CC = g++-12 -MPCC = g++-12 -OPENMP = -fopenmp -CFLAGS = -std=c++14 -O3 -I /opt/homebrew/include -I /opt/homebrew/include/eigen3 -fopenmp -LIBS = -m64 -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DNDEBUG -DIL_STD -lm -lpthread -ldl -L/opt/homebrew/lib -ltiff -TARGETS = Cell2Fire -all: $(TARGETS) -Cell2Fire: Cell2Fire.o Cells.o FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o Spotting.o ReadCSV.o ReadArgs.o Lightning.o WriteCSV.o Ellipse.o DataGenerator.o - $(CC) -o $@ Cell2Fire.o Cells.o FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o Spotting.o ReadCSV.o ReadArgs.o Lightning.o WriteCSV.o Ellipse.o DataGenerator.o $(LIBS) -Cell2Fire.o: Cell2Fire.cpp Cells.o FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o Spotting.o ReadCSV.o ReadArgs.o WriteCSV.o DataGenerator.o - $(CC) -c $(CFLAGS) Cell2Fire.cpp -Spotting.o: Spotting.cpp Spotting.h Cells.h - $(CC) -c $(CFLAGS) Spotting.cpp -Cells.o: Cells.cpp Cells.h FuelModelSpain.o FuelModelKitral.o FuelModelFBP.o - $(CC) -c $(CFLAGS) Cells.cpp -ReadCSV.o: ReadCSV.cpp ReadCSV.h - $(CC) -c $(CFLAGS) ReadCSV.cpp -ReadArgs.o: ReadArgs.cpp ReadArgs.h - $(CC) -c $(CFLAGS) ReadArgs.cpp -Lightning.o: Lightning.cpp Lightning.h - $(CC) -c $(CFLAGS) Lightning.cpp -Forest.o: Forest.cpp Forest.h - $(CC) -c $(CFLAGS) Forest.cpp -WriteCSV.o: WriteCSV.cpp WriteCSV.h - $(CC) -c $(CFLAGS) WriteCSV.cpp -Ellipse.o: Ellipse.cpp Ellipse.h - $(CC) -c $(LIBS) $(CFLAGS) Ellipse.cpp -FuelModelSpain.o: FuelModelSpain.cpp FuelModelSpain.h Cells.h - $(CC) -c $(LIBS) $(CFLAGS) FuelModelSpain.cpp -FuelModelKitral.o: FuelModelKitral.cpp FuelModelKitral.h Cells.h - $(CC) -c $(LIBS) $(CFLAGS) FuelModelKitral.cpp -FuelModelFBP.o: FuelModelFBP.cpp FuelModelFBP.h Cells.h - $(CC) -c $(LIBS) $(CFLAGS) FuelModelFBP.cpp -DataGenerator.o: DataGenerator.cpp DataGenerator.h - $(CC) -c $(CFLAGS) DataGenerator.cpp -clean: - rm -f Lightning.o ReadArgs.o ReadCSV.o Cell2Fire.o Cells.o Cell2Fire Spotting.o WriteCSV.o Ellipse.o FuelModelFBP.o FuelModelKitral.o FuelModelSpain.o DataGenerator.o *.gch - -DESTDIR = /usr/local/bin -install: all - cp $(TARGETS) $(DESTDIR) -uninstall: all - rm -rf $(DESTDIR)/$(TARGETS) - diff --git a/Cell2Fire/makefile.macos-static b/Cell2Fire/makefile.macos-static new file mode 100644 index 00000000..6284a2ed --- /dev/null +++ b/Cell2Fire/makefile.macos-static @@ -0,0 +1,57 @@ +# Development dependencies +CXX = g++-12 + +# NOT WORKING +# Capture the value of the environment variable HOMEBREW_PREFIX +# HOMEBREW_PREFIX := $(shell echo $$HOMEBREW_PREFIX) +# HOMEBREW_PREFIX := $(shell echo $(brew --prefix)) + +# Capture the output of the `arch` command +ARCH := $(shell arch) + +# Set HOMEBREW_PREFIX based on the architecture +ifeq ($(ARCH), arm64) + HOMEBREW_PREFIX := /opt/homebrew +else + HOMEBREW_PREFIX := /usr/local +endif + +INCLUDE := $(HOMEBREW_PREFIX)/include +OPT := $(HOMEBREW_PREFIX)/opt + +# Compiler and linker flags +CXXFLAGS = -m64 -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DNDEBUG -DIL_STD -std=c++14 -O3 -I$(INCLUDE) -I$(INCLUDE)/eigen3 -I$(INCLUDE)/boost +LDFLAGS = -m64 -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DNDEBUG -DIL_STD -static-libgcc -static-libstdc++ -lm -lpthread -ldl \ + $(OPT)/libtiff/lib/libtiff.a \ + $(OPT)/jpeg-turbo/lib/libjpeg.a \ + $(OPT)/zstd/lib/libzstd.a \ + $(OPT)/xz/lib/liblzma.a \ + $(OPT)/zlib/lib/libz.a + +# Source files +SRCS = Cell2Fire.cpp Cells.cpp FuelModelSpain.cpp FuelModelKitral.cpp FuelModelFBP.cpp Spotting.cpp ReadCSV.cpp ReadArgs.cpp Lightning.cpp WriteCSV.cpp Ellipse.cpp DataGenerator.cpp + +# Object files +OBJS = $(SRCS:.cpp=.o) + +# Target executable +TARGET = Cell2Fire + +# Build rules +all: $(TARGET) + +$(TARGET): $(OBJS) + $(CXX) -o $(TARGET) $(OBJS) $(LDFLAGS) + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -c $< -o $@ + +clean: + rm -f $(OBJS) $(TARGET) + +DESTDIR = /usr/local/bin +install: all + cp $(TARGETS) $(DESTDIR) +uninstall: all + rm $(DESTDIR)/$(TARGETS) +