# # pkg - Package management utility for rawnix.org # https://rawnix.org # # Copyright (c) 2025 zorz@gmx.com # SPDX-License-Identifier: BSD-2-Clause # COMPDIR = /usr/share/bash-completion/completions PREFIX = /usr BINDIR = $(PREFIX)/bin MANDIR = $(PREFIX)/share/man ETCDIR = /etc DBDIR = /var/lib/pkg CC = cc CFLAGS = -O2 -Wall -Wextra -std=c99 \ -D_POSIX_C_SOURCE=200809L \ -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 \ -Wno-format-truncation OBJS = main.o util.o config.o pkgdb.o depdb.o \ repo.o package.o makepkg_parse.o \ resolve.o orphan.o builder.o locker.o all: pkg pkg: $(OBJS) $(CC) -o $@ $(OBJS) %.o: %.c $(CC) $(CFLAGS) -c $< # Dependencies main.o: main.c pkg.h paths.h config.h pkgdb.h depdb.h repo.h resolve.h orphan.h builder.h locker.h util.o: util.c pkg.h config.o: config.c config.h paths.h pkg.h pkgdb.o: pkgdb.c pkgdb.h paths.h pkg.h depdb.o: depdb.c depdb.h paths.h pkg.h repo.o: repo.c repo.h pkg.h package.o: package.c pkg.h makepkg_parse.o: makepkg_parse.c pkg.h resolve.o: resolve.c resolve.h repo.h pkgdb.h locker.h builder.h pkg.h orphan.o: orphan.c orphan.h pkgdb.h depdb.h pkg.h builder.o: builder.c builder.h paths.h repo.h pkg.h locker.o: locker.c locker.h paths.h pkg.h install: pkg install -d $(DESTDIR)$(BINDIR) install -m 755 pkg $(DESTDIR)$(BINDIR)/pkg install -d $(DESTDIR)$(ETCDIR) @if [ ! -f $(DESTDIR)$(ETCDIR)/pkg.conf ]; then \ install -m 644 pkg.conf $(DESTDIR)$(ETCDIR)/pkg.conf; \ fi install -d $(DESTDIR)$(MANDIR)/man5 install -d $(DESTDIR)$(MANDIR)/man8 install -m 644 man/pkg.8 $(DESTDIR)$(MANDIR)/man8/pkg.8 install -m 644 man/pkg.conf.5 $(DESTDIR)$(MANDIR)/man5/pkg.conf.5 install -d $(DESTDIR)$(COMPDIR) install -m 644 pkg.bash_completion $(DESTDIR)$(COMPDIR)/pkg install -d -m 755 $(DESTDIR)$(DBDIR) @echo "Run 'pkg initdb' to populate the dependency database." uninstall: rm -f $(DESTDIR)$(BINDIR)/pkg rm -f $(DESTDIR)$(COMPDIR)/pkg rm -f $(DESTDIR)$(MANDIR)/man8/pkg.8 rm -f $(DESTDIR)$(MANDIR)/man5/pkg.conf.5 lint: mandoc -Tlint man/pkg.8 man/pkg.conf.5 clean: rm -f pkg $(OBJS) .PHONY: all install uninstall lint clean