packages feed

apple-0.3.0.0: Rc/Makefile

HC ?= ghc

include ../mk/os.mk

GHC_VER := $(shell ${HC} --numeric-version)
R_VER := $(shell R --version | awk 'NR==1 {print $$0}' | rg '(\d+\.\d+)' -o)
HS_LIBDIR := $(shell ghc-pkg-$(GHC_VER) field rts dynamic-library-dirs | awk 'NR==1 {print $$2}')

ifeq ($(UNAME),Darwin)
	HS_INCLUDE_DIR := $(shell ghc-pkg-$(GHC_VER) field rts include-dirs | awk 'NR==2 {print $$1}')
	CFLAGS := -I /Library/Frameworks/R.framework/Versions/$(R_VER)-arm64/Headers
	LDFLAGS := -L /usr/local/lib -rpath /usr/local/lib -lHSrts-1.0.2-ghc$(GHC_VER) -L $(HS_LIBDIR) -rpath $(HS_LIBDIR) /Library/Frameworks/R.framework/Versions/$(R_VER)-arm64/R
else
	HS_INCLUDE_DIR := $(shell ghc-pkg-$(GHC_VER) field rts include-dirs | awk 'NR==1 {print $$2}')
endif

all: libappler$(EXT)

install: libappler$(EXT)
	cp $^ /usr/local/lib

%.o: %.c
	$(CC) -fPIC -O2 -c $< $(CFLAGS) -I $(HS_INCLUDE_DIR) -o $@

libappler$(EXT): appler.o
	$(CC) -shared $^ -o $@ -lapple -lffi $(LDFLAGS)

clean:
	rm -rf *.o *.so *.dylib