~wb-munzinger/+junk/wdmd

« back to all changes in this revision

Viewing changes to Makefile

  • Committer: David Weber
  • Date: 2012-01-18 10:06:17 UTC
  • Revision ID: wb@munzinger.de-20120118100617-m1dyfbytxc3i451v
Import

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2011 Red Hat, Inc.  All rights reserved.
2
 
#
3
 
# This copyrighted material is made available to anyone wishing to use,
4
 
# modify, copy, or redistribute it subject to the terms and conditions
5
 
# of the GNU General Public License v2 or (at your option) any later version.
6
 
 
7
 
CMD_TARGET = wdmd
8
 
LIB_TARGET = libwdmd
9
 
HEADER_TARGET = wdmd.h
10
 
MAN_TARGET = wdmd.8
11
 
TEST_TARGET = wdmd_client
12
 
 
13
 
SOMAJOR=1
14
 
SOMINOR=0
15
 
SHLIB_TARGET = $(LIB_TARGET).so.$(SOMAJOR).$(SOMINOR)
16
 
 
17
 
 
18
 
CMD_SOURCE = main.c wdmd_sock.c
19
 
 
20
 
LIB_SOURCE = client.c wdmd_sock.c
21
 
 
22
 
TEST_SOURCE = wdmd_client.c
23
 
 
24
 
CFLAGS += -D_GNU_SOURCE -g \
25
 
        -Wall \
26
 
        -Wformat \
27
 
        -Wformat-security \
28
 
        -Wmissing-prototypes \
29
 
        -Wnested-externs \
30
 
        -Wpointer-arith \
31
 
        -Wextra -Wshadow \
32
 
        -Wcast-align \
33
 
        -Wwrite-strings \
34
 
        -Waggregate-return \
35
 
        -Wstrict-prototypes \
36
 
        -Winline \
37
 
        -Wredundant-decls \
38
 
        -Wno-sign-compare \
39
 
        -Wp,-D_FORTIFY_SOURCE=2 \
40
 
        -fexceptions \
41
 
        -fasynchronous-unwind-tables \
42
 
        -fdiagnostics-show-option \
43
 
        -fPIE -DPIE
44
 
 
45
 
CMD_LDFLAGS += -Wl,-z,now -Wl,-z,relro -pie
46
 
CMD_LDADD += -lwdmd -lrt
47
 
 
48
 
LIB_LDFLAGS += -Wl,-z,relro -pie
49
 
 
50
 
TEST_LDFLAGS = -lwdmd
51
 
 
52
 
 
53
 
all: $(SHLIB_TARGET) $(CMD_TARGET) $(TEST_TARGET)
54
 
 
55
 
$(SHLIB_TARGET): $(LIB_SOURCE)
56
 
        $(CC) $(CFLAGS) $(LIB_LDFLAGS) -shared -fPIC -o $@ -Wl,-soname=$(LIB_TARGET).so.$(SOMAJOR) $^
57
 
        ln -sf $(SHLIB_TARGET) $(LIB_TARGET).so
58
 
        ln -sf $(SHLIB_TARGET) $(LIB_TARGET).so.$(SOMAJOR)
59
 
 
60
 
$(CMD_TARGET): $(SHLIB_TARGET) $(CMD_SOURCE)
61
 
        $(CC) $(CFLAGS) $(CMD_LDFLAGS) $(CMD_SOURCE) $(CMD_LDADD) -o $@ -L.
62
 
 
63
 
$(TEST_TARGET): $(SHLIB_TARGET) $(TEST_SOURCE)
64
 
        $(CC) $(CFLAGS) $(TEST_LDFLAGS) $(TEST_SOURCE) $(CMD_LDADD) -o $@ -L.
65
 
 
66
 
clean:
67
 
        rm -f *.o *.so *.so.* $(CMD_TARGET) $(TEST_TARGET)
68
 
 
69
 
 
70
 
INSTALL=$(shell which install)
71
 
 
72
 
DESTDIR=
73
 
BINDIR=/usr/sbin
74
 
LIBDIR=/usr/lib64
75
 
HEADIR=/usr/include
76
 
MANDIR=/usr/share/man
77
 
 
78
 
.PHONY: install
79
 
install: all
80
 
        $(INSTALL) -d $(DESTDIR)/$(BINDIR)
81
 
        $(INSTALL) -d $(DESTDIR)/$(LIBDIR)
82
 
        $(INSTALL) -d $(DESTDIR)/$(HEADIR)
83
 
        $(INSTALL) -d $(DESTDIR)/$(MANDIR)/man8
84
 
        $(INSTALL) -c -m 755 $(CMD_TARGET) $(DESTDIR)/$(BINDIR)
85
 
        $(INSTALL) -c -m 755 $(SHLIB_TARGET) $(DESTDIR)/$(LIBDIR)
86
 
        cp -a $(LIB_TARGET).so $(DESTDIR)/$(LIBDIR)
87
 
        cp -a $(LIB_TARGET).so.$(SOMAJOR) $(DESTDIR)/$(LIBDIR)
88
 
        $(INSTALL) -c -m 644 $(HEADER_TARGET) $(DESTDIR)/$(HEADIR)
89
 
        $(INSTALL) -m 644 $(MAN_TARGET) $(DESTDIR)/$(MANDIR)/man8