CC = gcc
CFLAGS = -Wall -std=c17
OUT = pwdgen
SRC = src/*.c
BUILDDIR=build
DESTDIR = /usr/local/bin

DEBVERSION = 1.0
ARCH = amd64
DEBPACKAGENAME = pwdgen-$(DEBVERSION)-1_$(ARCH)

build:
	@if [ ! -d ${BUILDDIR} ]; then \
		mkdir -pv ${BUILDDIR}; \
	fi
	@$(CC) $(CFLAGS) $(SRC) -o ${BUILDDIR}/$(OUT)

all:
	@make clean
	@make build
	@make run

run:
	@./${BUILDDIR}/$(OUT)

clean:
	@if [ -d ${BUILDDIR} ]; then \
		rm -rv ${BUILDDIR}; \
	fi

install:
	@if [ ! -d ${DESTDIR} ]; then \
		mkdir -pv ${DESTDIR}; \
	fi
	@cp -rf ${BUILDDIR}/$(OUT) $(DESTDIR)

debpkg:
	@printf "$(GREEN)[ $(YELLOW)15%% $(GREEN)] $(RESET)CREATE PACKAGE DIRECTORIES\n"
	@rm -rf $(DEBPACKAGENAME)
	@mkdir -p $(DEBPACKAGENAME)/usr/local/bin
	@printf "$(GREEN)[ $(YELLOW)45%% $(GREEN)] $(RESET)COPY PACKAGE FILES\n"
	@cp -rf $(BUILDDIR)/pwdgen $(DEBPACKAGENAME)/usr/local/bin/pwdgen
	@printf "$(GREEN)[ $(YELLOW)75%% $(GREEN)] $(RESET)CREATE PACKAGE METADATA\n"
	@mkdir $(DEBPACKAGENAME)/DEBIAN
	@touch $(DEBPACKAGENAME)/DEBIAN/control
	@printf "$(GREEN)[ $(YELLOW)100%% $(GREEN)] $(RESET)CREATE PACKAGE\n"
	@printf "Package: pwdgen\nVersion: $(DEBVERSION)\nArchitecture: $(ARCH)\nMaintainer: Tola Mironcenko <mironcenkotola@gmail.com>\nDescription: Password generator\n" >> $(DEBPACKAGENAME)/DEBIAN/control
	@dpkg-deb --build --root-owner-group $(DEBPACKAGENAME)
	@printf "$(GREEN)BUILDING DEBIAN PACKAGE SUCCESS$(RESET)\n"