1# Compile Noise Source as user space application 2 3CC=gcc 4CFLAGS +=-Wextra -Wall -pedantic -fPIC -O0 5#Hardening 6CFLAGS +=-fstack-protector-strong -fwrapv --param ssp-buffer-size=4 7LDFLAGS +=-Wl,-z,relro,-z,now 8 9# Change as necessary 10PREFIX := /usr/local 11# library target directory (either lib or lib64) 12LIBDIR := lib 13 14NAME := jitterentropy 15LIBMAJOR=$(shell cat jitterentropy-base.c | grep define | grep MAJVERSION | awk '{print $$3}') 16LIBMINOR=$(shell cat jitterentropy-base.c | grep define | grep MINVERSION | awk '{print $$3}') 17LIBPATCH=$(shell cat jitterentropy-base.c | grep define | grep PATCHLEVEL | awk '{print $$3}') 18LIBVERSION := $(LIBMAJOR).$(LIBMINOR).$(LIBPATCH) 19 20#C_SRCS := $(wildcard *.c) 21C_SRCS := jitterentropy-base.c 22C_OBJS := ${C_SRCS:.c=.o} 23OBJS := $(C_OBJS) 24 25INCLUDE_DIRS := 26LIBRARY_DIRS := 27LIBRARIES := rt 28 29CFLAGS += $(foreach includedir,$(INCLUDE_DIRS),-I$(includedir)) 30LDFLAGS += $(foreach librarydir,$(LIBRARY_DIRS),-L$(librarydir)) 31LDFLAGS += $(foreach library,$(LIBRARIES),-l$(library)) 32 33.PHONY: all scan install clean distclean 34 35all: $(NAME) 36 37$(NAME): $(OBJS) 38 $(CC) -shared -Wl,-soname,lib$(NAME).so.$(LIBMAJOR) -o lib$(NAME).so.$(LIBVERSION) $(OBJS) $(LDFLAGS) 39 40scan: $(OBJS) 41 scan-build --use-analyzer=/usr/bin/clang $(CC) -shared -Wl,-soname,lib$(NAME).so.$(LIBMAJOR) -o lib$(NAME).so.$(LIBVERSION) $(OBJS) $(LDFLAGS) 42 43install: 44 install -m 644 doc/$(NAME).3 $(PREFIX)/share/man/man3/ 45 gzip -9 $(PREFIX)/share/man/man3/$(NAME).3 46 install -m 0755 -s lib$(NAME).so.$(LIBVERSION) $(PREFIX)/$(LIBDIR)/ 47 $(RM) $(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR) 48 ln -s lib$(NAME).so.$(LIBVERSION) $(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR) 49 50clean: 51 @- $(RM) $(NAME) 52 @- $(RM) $(OBJS) 53 @- $(RM) lib$(NAME).so* 54 55distclean: clean 56