diff --git a/gen/Makefile b/gen/Makefile index af9b6a5..b5158a9 100644 --- a/gen/Makefile +++ b/gen/Makefile @@ -1,13 +1,14 @@ -LIBHYPRE:=$(shell dirname $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))))/lib/LibHYPRE.jl +MAKEDIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) +LIBHYPRE:=$(shell dirname $(MAKEDIR))/lib/LibHYPRE.jl -generate: $(LIBHYPRE) Project.toml Manifest.toml +generate: $(LIBHYPRE) clean: rm -f $(LIBHYPRE) .PHONY: generate clean -$(LIBHYPRE): +$(LIBHYPRE): Project.toml Manifest.toml $(MAKEDIR)/generator.toml $(MAKEDIR)/generator.jl julia --project generator.jl && \ - sed -i -e 's/using HYPRE_jll/using HYPRE_jll: HYPRE_jll, libHYPRE/' -e 's/using CEnum/using CEnum: @cenum/' $(LIBHYPRE) && \ + sed -i -e '1s/^/local libHYPRE # Silence of the Langs(erver)\n\n/' -e 's/using HYPRE_jll/using HYPRE_jll: HYPRE_jll, libHYPRE/' -e 's/using CEnum/using CEnum: @cenum/' $(LIBHYPRE) && \ julia-1.11 --project=@runic -e 'using Runic; exit(Runic.main(ARGS))' -- -i $(LIBHYPRE) diff --git a/gen/generator.toml b/gen/generator.toml index 3230e3f..d970b6b 100644 --- a/gen/generator.toml +++ b/gen/generator.toml @@ -17,3 +17,6 @@ output_ignorelist = [ # Included in prologue.jl "MPI_Comm", ] + +[codegen] +use_ccall_macro = true diff --git a/gen/prologue.jl b/gen/prologue.jl index 083b1a3..ca0d607 100644 --- a/gen/prologue.jl +++ b/gen/prologue.jl @@ -1,4 +1,9 @@ +########################### +## Start gen/prologue.jl ## +########################### + using MPI: MPI, MPI_Comm + if isdefined(MPI, :API) # MPI >= 0.20.0 using MPI.API: MPI_INT, MPI_DOUBLE @@ -6,3 +11,7 @@ else # MPI < 0.20.0 using MPI: MPI_INT, MPI_DOUBLE end + +######################### +## End gen/prologue.jl ## +######################### diff --git a/lib/LibHYPRE.jl b/lib/LibHYPRE.jl index e711863..5bc3a52 100644 --- a/lib/LibHYPRE.jl +++ b/lib/LibHYPRE.jl @@ -1,9 +1,16 @@ +local libHYPRE # Silence of the Langs(erver) + using HYPRE_jll: HYPRE_jll, libHYPRE export HYPRE_jll using CEnum: @cenum +########################### +## Start gen/prologue.jl ## +########################### + using MPI: MPI, MPI_Comm + if isdefined(MPI, :API) # MPI >= 0.20.0 using MPI.API: MPI_INT, MPI_DOUBLE @@ -12,6 +19,10 @@ else using MPI: MPI_INT, MPI_DOUBLE end +######################### +## End gen/prologue.jl ## +######################### + const HYPRE_BigInt = Cint