diff options
Diffstat (limited to 'Makefile.orig')
| -rw-r--r-- | Makefile.orig | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/Makefile.orig b/Makefile.orig new file mode 100644 index 0000000..adacc56 --- /dev/null +++ b/Makefile.orig @@ -0,0 +1,84 @@ +# pkgit - package it! + +# Copyright (C) 2026 dacctal +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +.PHONY: default debug install defconfig clean + +CC ?= clang +RM = rm -f +PREFIX ?= /usr/local +OBJDIR = obj +SRCS = $(wildcard src/*.c) +OBJS = $(SRCS:src/%.c=$(OBJDIR)/%.o) +CFLAGS += $(shell pkg-config --cflags luajit) -I./include -Wno-format-truncation -std=c99 + +# pretty print for compilation. To enable verbose (show commands), run with +# `make V=1` +ifeq ($(strip $(V)),) + E = @echo + Q = @ +else + E = @\# + Q = +endif + +default: pkgit + +pkgit: $(OBJS) + $(E) " LINK " $@ + $(Q) ${CC} -o $@ $^ $(shell pkg-config --libs luajit) $(shell pkg-config --libs libgit2) $(LDFLAGS) -g + +$(OBJDIR): + @mkdir -p $(OBJDIR) + +$(OBJDIR)/%.o: src/%.c | $(OBJDIR) + $(E) " CC " $@ + $(Q) ${CC} $(CFLAGS) -c -o $@ $< + +gdb: CFLAGS += -g -O0 -Wall -Wextra -Werror -Wvla -pedantic +gdb: pkgit + +debug: CFLAGS += -g -O0 -Wall -Wextra -Werror -Wvla -pedantic -fsanitize=address +debug: LDFLAGS += -fsanitize=address +debug: pkgit + +install: pkgit + $(E) " INSTALL" ${DESTDIR}${PREFIX} + $(Q) install -d ${DESTDIR}${PREFIX}/bin + $(Q) install -m 755 pkgit ${DESTDIR}${PREFIX}/bin/pkgit + $(Q) install -d ${DESTDIR}${PREFIX}/share/man/man1 + $(Q) install -m 644 docs/pkgit.1 ${DESTDIR}${PREFIX}/share/man/man1/pkgit.1 + +uninstall: ${DESTDIR}${PREFIX}/bin/pkgit + $(E) " UNINSTALL" ${DESTDIR}${PREFIX} + $(Q) ${RM} ${DESTDIR}${PREFIX}/bin/pkgit + $(Q) ${RM} ${DESTDIR}${PREFIX}/share/man/man1/pkgit.1 + +defconfig: + $(Q) @if [ "$$(id -u)" -eq 0 ]; then dir=/etc/pkgit; else dir=~/.config/pkgit; fi; \ + $(Q) echo "installing default config to $$dir ..."; \ + $(Q) mkdir -p $$dir; \ + $(Q) cp -r ./config/* $$dir/; \ + $(Q) echo "default config installed" + +rmconfig: + $(Q) @if [ "$$(id -u)" -eq 0 ]; then dir=/etc/pkgit; else dir=~/.config/pkgit; fi; \ + $(Q) echo "removing config from $$dir ..."; \ + $(Q) rm -rf $$dir; \ + $(Q) echo "config successfully removed" + +clean: + $(E) " CLEAN" + $(Q) ${RM} -r $(OBJDIR) pkgit |
