Packages

Returns total, used, free and available bytes for a path on disk using NIFs.

Retired package: Deprecated - use 0.4.0 that properly sets minimum Elixir version to 1.15

Current section

Files

Jump to
disk_space c_src Makefile
Raw

c_src/Makefile

# SPDX-FileCopyrightText: 2025 Isaak Tsalicoglou <isaak@overbring.com>
# SPDX-License-Identifier: Apache-2.0
ERL_ROOT_DIR := $(shell erl -noshell -eval 'io:format("~s", [code:root_dir()])' -s init stop)
ERL_INCLUDE_DIR := $(ERL_ROOT_DIR)/usr/include
CC ?= gcc
CFLAGS := -I$(ERL_INCLUDE_DIR) -O2 -Wall -fPIC
LDFLAGS :=
SRC = disk_space.c
PRIV_DIR = ../priv
UNAME_S := $(shell uname)
LIB_EXT = .so
ifeq ($(UNAME_S),Darwin)
CC = clang
CFLAGS += -arch arm64
LDFLAGS += -dynamiclib -undefined dynamic_lookup -arch arm64
else ifeq ($(OS),Windows_NT)
LIB_EXT = .dll
LDFLAGS += -shared -lws2_32
else
LDFLAGS += -shared
endif
TARGET = $(PRIV_DIR)/disk_space$(LIB_EXT)
all: $(TARGET)
$(TARGET): $(SRC) | $(PRIV_DIR)
$(CC) $(CFLAGS) $(SRC) $(LDFLAGS) -o $(TARGET)
$(PRIV_DIR):
mkdir -p $(PRIV_DIR)
clean:
rm -f $(TARGET)
.PHONY: all clean