From 2b3ea4bb0cc70c4ad633b282e0be1ca03dd49b00 Mon Sep 17 00:00:00 2001 From: Enno Tensing Date: Tue, 21 Jan 2025 20:30:36 +0100 Subject: [PATCH] make: Add pgo-build target --- Makefile | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index af4e652..9387864 100644 --- a/Makefile +++ b/Makefile @@ -5,10 +5,11 @@ VERSION = 1.5 PREFIX ?= /usr/local MANPREFIX ?= ${PREFIX}/share/man CFLAGS += -DVERSION=\"${VERSION}\" +PGO_GEN = ${CFLAGS} -fprofile-generate +PGO_USE = ${CFLAGS} -fprofile-use -fprofile-correction LDFLAGS ?= CC ?= cc SRC = smu.c -OBJ = smu.o all: smu @@ -18,15 +19,30 @@ options: @echo "LDFLAGS = ${LDFLAGS}" @echo "CC = ${CC}" -.c.o: - @echo CC $< - @${CC} -c ${CFLAGS} $< +smu: ${SRC} + @echo CC $@ + @${CC} -o $@ ${SRC} ${CFLAGS} ${LDFLAGS} -${OBJ}: ${SRC} +pgo-build: ${SRC} + @echo CC smu + @${CC} -o smu ${SRC} ${PGO_GEN} ${LDFLAGS} + @echo Generating pgo data + @printf . + @./smu testdoc > /dev/null + @printf . + @cat testdoc | ./smu > /dev/null + @printf . + @./smu -n testdoc > /dev/null + @printf . + @cat testdoc | ./smu -n > /dev/null + @printf . + @rm smu + @printf '\n' + @echo Recompiling with pgo data + @echo CC smu + @${CC} -o smu ${SRC} ${PGO_USE} ${LDFLAGS} + @rm smu.gcda -smu: ${OBJ} - @echo LD $@ - @${CC} -o $@ ${OBJ} ${LDFLAGS} clean: rm -f smu ${OBJ} ${LIBOBJ} smu-${VERSION}.tar.gz @@ -50,4 +66,4 @@ uninstall: rm -f ${DESTDIR}${PREFIX}/bin/smu rm -f ${DESTDIR}${MANPREFIX}/man1/smu.1 -.PHONY: all options clean dist install uninstall +.PHONY: all options clean dist install uninstall pgo-build