1 # SPDX-License-Identifier: GPL-2.0
4 INSTALL_PROGRAM ?= $(INSTALL)
5 INSTALL_DATA ?= $(INSTALL) -m 644
7 VERSION := $(shell ./version-gen.sh dss version.c)
10 GROFF := groff -m man -Thtml -P -l -P -r
12 units := dss str file exec sig daemon df tv snap ipc dss.lsg version
13 objs := $(addsuffix .o, $(units))
14 deps := $(addsuffix .d, $(units))
18 $(objs): dss.lsg.h Makefile
21 DSS_CPPFLAGS += -Wunused-macros
23 DSS_CFLAGS := -Wno-sign-compare -g -Wunused -Wundef
24 DSS_CFLAGS += -Wredundant-decls
27 DSS_CFLAGS += -Wuninitialized
28 DSS_CFLAGS += -Wchar-subscripts
29 DSS_CFLAGS += -Wformat-security
30 DSS_CFLAGS += -Werror-implicit-function-declaration
31 DSS_CFLAGS += -Wmissing-format-attribute
32 DSS_CFLAGS += -Wunused-parameter
33 DSS_CFLAGS += -Wbad-function-cast
34 DSS_CFLAGS += -Wshadow
38 ifeq ("$(origin V)", "command line")
41 SAY = @printf '%s\n' '$(strip $(1))'
45 ./version-gen.sh dss version.c > /dev/null
48 $(CC) -o $@ $(objs) $(LDFLAGS) -llopsub
51 $(CC) -c -o $@ $(DSS_CPPFLAGS) $(CPPFLAGS) $(DSS_CFLAGS) $(CFLAGS) \
52 -MMD -MF $(*F).d -MT $@ $<
55 $(LSG) --gen-h=$@ < $<
58 $(LSG) --gen-c=$@ < $<
61 $(LSG) --gen-man=$@ --version-string=$(VERSION) < $<
64 $(GROFF) $< | sed -e '1,/^<body>/d; /^<\/body>/,$$d' > $@
67 $(RM) *.[od] dss dss.1 *.html dss.lsg.[ch] version.c
69 ifneq ($(findstring strip, $(MAKECMDGOALS)),)
72 bindir := $(DESTDIR)$(PREFIX)/bin
73 mandir := $(DESTDIR)$(PREFIX)/share/man/man1
74 install install-strip: all
75 $(MKDIR_P) $(bindir) $(mandir)
76 $(INSTALL_PROGRAM) $(strip_option) dss $(bindir)
77 $(INSTALL_DATA) dss.1 $(mandir)
79 index.html: dss.1.html index.html.in INSTALL README NEWS
80 sed -e '/@README@/,$$d' index.html.in > $@
82 sed -e '1,/@README@/d' -e '/@NEWS@/,$$d' index.html.in >> $@
84 sed -e '1,/@NEWS@/d' -e '/@INSTALL@/,$$d' index.html.in >> $@
85 markdown INSTALL >> $@
86 sed -e '1,/@INSTALL@/d' -e '/@MAN_PAGE@/,$$d' index.html.in >> $@
88 sed -e '1,/@MAN_PAGE@/d' index.html.in >> $@
90 -include Makefile.local