Files
productManager/makefile
T

42 lines
1.2 KiB
Makefile

CC ?= gcc
PKG_CONFIG ?= pkg-config
CFLAGS = -I./include -Wall -Wextra -MMD -MP $(shell $(PKG_CONFIG) --cflags json-c ncurses)
LDLIBS = $(shell $(PKG_CONFIG) --libs json-c ncurses)
BUNDLE_LDFLAGS = -Wl,--dynamic-linker=/lib64/ld-linux-x86-64.so.2 -Wl,-rpath,'$$ORIGIN/lib'
SRC_DIR = src
BUILD_DIR = build
SOURCES = $(filter-out $(SRC_DIR)/testLogic.c, $(wildcard $(SRC_DIR)/*.c))
OBJECTS = $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(SOURCES))
EXEC = productManager
DEPS = $(OBJECTS:.o=.d)
all: $(EXEC)
# 1. Per testare in locale su NixOS
$(EXEC): $(OBJECTS)
$(CC) $^ -o $@ $(LDLIBS)
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
@mkdir -p $(@D)
$(CC) $(CFLAGS) -c $< -o $@
-include $(DEPS)
# 2. Per creare il pacchetto portabile da inviare
bundle: $(OBJECTS)
@mkdir -p dist/lib
$(CC) $^ -o dist/$(EXEC) $(BUNDLE_LDFLAGS) $(LDLIBS)
@cp -L $$( $(PKG_CONFIG) --variable=libdir json-c )/libjson-c.so* dist/lib/
@cp -L $$( $(PKG_CONFIG) --variable=libdir ncurses )/libncurses*.so* dist/lib/
@tar czf productManager.tar.gz --directory dist/ .
@echo "=== Pacchetto portabile creato con successo in productManager.tar.gz ==="
@rm -fr dist/
clean:
rm -rf $(BUILD_DIR) $(EXEC) dist *.json
.PHONY: all clean bundle