aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 51ba246eca0df9bcce78f9ce8bbba515391f4ba7 (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
# Copyright (c) 2026, Mr. Goblin
#
# SPDX-License-Identifier: BSD-2-Clause

# All 3 values commented, using make's default or export CC.
# If you don't like ``modern'' diagnostics, too, try uncommenting
# some of variants below or add line like:
#  export CC='gcc -fno-diagnostics-show-caret -fdiagnostics-color=never'
# or
#  export CC='clang -fno-caret-diagnostics -fno-color-diagnostics'
# to your .bashrc | .zshrc | .shrc | .profile or whatever config file
# does your shell use
#
# CC = cc -fno-caret-diagnostics -fno-color-diagnostics
# CC = gcc -fno-diagnostics-show-caret -fdiagnostics-color=never
# CC = gcc

CFLAGS = -Wall -Wextra -pedantic -std=c99

# DEBUG = -g
# DEBUG = -ggdb
DEBUG =

# STATIC = -static
STATIC = -static -s
# STATIC =

PROG_NAME=btasktd
VER=0.0.0
DIST_NAME=$(PROG_NAME)-$(VER)


MAINBINARIES = btasktd

.SUFFIXES:
.SUFFIXES: .c .o
.PHONY: all clean dist ctags rebuild

all: $(MAINBINARIES)

ctags:
	ctags *.c *.h *.cpp *.hpp

dist:
	git archive --format=tar --prefix=$(DIST_NAME)/ HEAD | \
		bzip2 > $(DIST_NAME).tar.bz2

clean:
	$(MAKE) -C $(LIBSDIR)/logger clean
	rm -f $(MAINBINARIES) *.o *.test tags $(DIST_NAME)

rebuild: clean all

.c.o:
	$(CC) $(DEBUG) $(CFLAGS) -I$(LIBSDIR) -c $< -o $@

LIBSDIR = ./lib
LDFLAGS = -L$(LIBSDIR)/logger

$(LIBSDIR)/logger/liblogger.a:
	$(MAKE) -C $(LIBSDIR)/logger

BTASKTD_OBJECTS = btasktd.o cliflags.o codes.o
BTASKTD_LIBDEPS = $(LIBSDIR)/logger/liblogger.a
BTASKTD_LIBS = -lc -llogger

btasktd: $(BTASKTD_OBJECTS) $(BTASKTD_LIBDEPS)
	$(CC) $(DEBUG) $(CFLAGS) $(STATIC) $(LDFLAGS) \
		$(BTASKTD_OBJECTS) -o $@ $(BTASKTD_LIBS)