summaryrefslogtreecommitdiff
path: root/Makefile
blob: 5b577879c3d7853023a050b5cde0354ce445ecfd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#
# 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