summaryrefslogtreecommitdiff
path: root/doc/GNUmakefile
blob: f1b80aaa8ba7115e5f69cda2cf0634b7cec27bf1 (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
.PHONY: all clean

BINS = \
	testd

all: $(BINS)

PLATFORM = $(shell makefiles/guess_env --platform)
OS_MAJOR_VERSION = $(shell makefiles/guess_env --os-major-version)
OS_MINOR_VERSION = $(shell makefiles/guess_env --os-minor-version)

COMPILE_FLAGS = -g -O2 -D_REENTRANT -Wall -W -Werror -std=c99 -pedantic -I.
LDFLAGS = 
LIBS =

CFLAGS = $(COMPILE_FLAGS) -D$(PLATFORM) -DOS_MAJOR_VERSION=$(OS_MAJOR_VERSION) -DOS_MINOR_VERSION=$(OS_MINOR_VERSION)
CC = gcc
MAKEDEPEND = $(CC) -MM

OBJS = \
	port/snprintf.o \
	port/lockf.o \
	cmdline.o \
	log.o \
	signals.o \
	pidfile.o \
	daemon.o \
	testd.o

# ABa: currently a special rule for cmdline.c as gengetopt is not
# completly fixed yet
cmdline.c : daemon.ggo
	gengetopt --include-getopt -i $<

cmdline.o : cmdline.c
	$(CC) -c -o $@ $<
	
%.o : %.c
	$(CC) -c -o $@ $(CFLAGS) $<

testd : $(OBJS)
	$(CC) -o $@ $(LDFLAGS) $(LIBS) $^

clean:
	-@rm *.bak port/*.bak 2>/dev/null
	-@rm *~ port/*~ 2>/dev/null
	-@rm *.d port/*.d 2>/dev/null
	-@rm $(BINS) *.exe 2>/dev/null
	-@rm $(OBJS) 2>/dev/null

distclean: clean
	-@rm cmdline.c cmdline.h
	
%.d : %.c
	@$(MAKEDEPEND) $(CFLAGS) $< 2>/dev/null | \
		sed "s,\($*\.o\)[ :]*\(.*\),$@ : $$\(wildcard \2\)___\1 : \2,g" | tr -s "_" "\n" > $@

-include $(OBJS:.o=.d)

test: all
	@fakeroot ./testd -d --pidfile /tmp/testd.pid && \
		sleep 3 && \
		ls -altr /tmp/testd* && \
		cat /tmp/testd.pid
	-@ps -alef | grep test | grep -v grep
	@sleep 1
	@pkill testd
	-@ls -altr /tmp/testd*