# Compile Noise Source as user space application CC=gcc CFLAGS +=-Wextra -Wall -pedantic -fPIC -O0 #Hardening CFLAGS +=-fstack-protector-strong -fwrapv --param ssp-buffer-size=4 LDFLAGS +=-Wl,-z,relro,-z,now # Change as necessary PREFIX := /usr/local # library target directory (either lib or lib64) LIBDIR := lib NAME := jitterentropy LIBMAJOR=$(shell cat jitterentropy-base.c | grep define | grep MAJVERSION | awk '{print $$3}') LIBMINOR=$(shell cat jitterentropy-base.c | grep define | grep MINVERSION | awk '{print $$3}') LIBPATCH=$(shell cat jitterentropy-base.c | grep define | grep PATCHLEVEL | awk '{print $$3}') LIBVERSION := $(LIBMAJOR).$(LIBMINOR).$(LIBPATCH) #C_SRCS := $(wildcard *.c) C_SRCS := jitterentropy-base.c C_OBJS := ${C_SRCS:.c=.o} OBJS := $(C_OBJS) INCLUDE_DIRS := LIBRARY_DIRS := LIBRARIES := rt CFLAGS += $(foreach includedir,$(INCLUDE_DIRS),-I$(includedir)) LDFLAGS += $(foreach librarydir,$(LIBRARY_DIRS),-L$(librarydir)) LDFLAGS += $(foreach library,$(LIBRARIES),-l$(library)) .PHONY: all scan install clean distclean all: $(NAME) $(NAME): $(OBJS) $(CC) -shared -Wl,-soname,lib$(NAME).so.$(LIBMAJOR) -o lib$(NAME).so.$(LIBVERSION) $(OBJS) $(LDFLAGS) scan: $(OBJS) scan-build --use-analyzer=/usr/bin/clang $(CC) -shared -Wl,-soname,lib$(NAME).so.$(LIBMAJOR) -o lib$(NAME).so.$(LIBVERSION) $(OBJS) $(LDFLAGS) install: install -m 644 doc/$(NAME).3 $(PREFIX)/share/man/man3/ gzip -9 $(PREFIX)/share/man/man3/$(NAME).3 install -m 0755 -s lib$(NAME).so.$(LIBVERSION) $(PREFIX)/$(LIBDIR)/ $(RM) $(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR) ln -s lib$(NAME).so.$(LIBVERSION) $(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR) clean: @- $(RM) $(NAME) @- $(RM) $(OBJS) @- $(RM) lib$(NAME).so* distclean: clean