blob: 6cb0b78d056d162524c3f7cbdd4b94811d672c46 [file] [log] [blame]
NAME := stalld
VERSION := 1.7
INSTALL = install
CC := gcc
FOPTS := -flto=auto -ffat-lto-objects -fexceptions -fstack-protector-strong \
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
MOPTS := -m64 -mtune=generic
WOPTS := -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
SOPTS := -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1
CFLAGS := -O2 -g -DVERSION=\"$(VERSION)\" $(FOPTS) $(MOPTS) $(WOPTS) $(SOPTS)
LDFLAGS := -ggdb
LIBS := -lpthread
SRC := $(wildcard src/*.c)
HDR := $(wildcard src/*.h)
OBJ := $(SRC:.c=.o)
DIRS := src redhat man tests scripts
FILES := Makefile README.md gpl-2.0.txt scripts/throttlectl.sh
TARBALL := $(NAME)-$(VERSION).tar.xz
UPSTREAM_TARBALLS := fedorapeople.org:~/public_html/
BINDIR := /usr/bin
DATADIR := /usr/share
DOCDIR := $(DATADIR)/doc
MANDIR := $(DATADIR)/man
LICDIR := $(DATADIR)/licenses
.PHONY: all tests
all: stalld tests
stalld: $(OBJ)
$(CC) -o stalld $(LDFLAGS) $(OBJ) $(LIBS)
static: $(OBJ)
$(CC) -o stalld-static $(LDFLAGS) --static $(OBJ) $(LIBS)
tests:
make -C tests VERSION=$(VERSION) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
.PHONY: install
install:
$(INSTALL) -m 755 -d $(DESTDIR)$(BINDIR) $(DESTDIR)$(DOCDIR)
$(INSTALL) stalld -m 755 $(DESTDIR)$(BINDIR)
$(INSTALL) README.md -m 644 $(DESTDIR)$(DOCDIR)
$(INSTALL) -m 755 -d $(DESTDIR)$(MANDIR)/man8
$(INSTALL) man/stalld.8 -m 644 $(DESTDIR)$(MANDIR)/man8
$(INSTALL) -m 755 -d $(DESTDIR)$(LICDIR)/$(NAME)
$(INSTALL) gpl-2.0.txt -m 644 $(DESTDIR)$(LICDIR)/$(NAME)
.PHONY: clean tarball redhat push
clean:
@test ! -f stalld || rm stalld
@test ! -f stalld-static || rm stalld-static
@test ! -f src/stalld.o || rm src/stalld.o
@test ! -f $(TARBALL) || rm -f $(TARBALL)
@make -C redhat VERSION=$(VERSION) clean
@make -C tests clean
@rm -rf *~ $(OBJ) *.tar.xz
tarball: clean
rm -rf $(NAME)-$(VERSION) && mkdir $(NAME)-$(VERSION)
cp -r $(DIRS) $(FILES) $(NAME)-$(VERSION)
tar -cvJf $(TARBALL) --exclude='*~' $(NAME)-$(VERSION)
rm -rf $(NAME)-$(VERSION)
redhat: tarball
$(MAKE) -C redhat VERSION=$(VERSION)
push: tarball
scp $(TARBALL) $(UPSTREAM_TARBALLS)
make -C redhat VERSION=$(VERSION) push