make: Add pgo-build target

This commit is contained in:
Enno Tensing 2025-01-21 20:30:36 +01:00
parent 08352deca9
commit 2b3ea4bb0c
Signed by: tenno
GPG key ID: 95265603BD36E66C

View file

@ -5,10 +5,11 @@ VERSION = 1.5
PREFIX ?= /usr/local PREFIX ?= /usr/local
MANPREFIX ?= ${PREFIX}/share/man MANPREFIX ?= ${PREFIX}/share/man
CFLAGS += -DVERSION=\"${VERSION}\" CFLAGS += -DVERSION=\"${VERSION}\"
PGO_GEN = ${CFLAGS} -fprofile-generate
PGO_USE = ${CFLAGS} -fprofile-use -fprofile-correction
LDFLAGS ?= LDFLAGS ?=
CC ?= cc CC ?= cc
SRC = smu.c SRC = smu.c
OBJ = smu.o
all: smu all: smu
@ -18,15 +19,30 @@ options:
@echo "LDFLAGS = ${LDFLAGS}" @echo "LDFLAGS = ${LDFLAGS}"
@echo "CC = ${CC}" @echo "CC = ${CC}"
.c.o: smu: ${SRC}
@echo CC $< @echo CC $@
@${CC} -c ${CFLAGS} $< @${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: clean:
rm -f smu ${OBJ} ${LIBOBJ} smu-${VERSION}.tar.gz rm -f smu ${OBJ} ${LIBOBJ} smu-${VERSION}.tar.gz
@ -50,4 +66,4 @@ uninstall:
rm -f ${DESTDIR}${PREFIX}/bin/smu rm -f ${DESTDIR}${PREFIX}/bin/smu
rm -f ${DESTDIR}${MANPREFIX}/man1/smu.1 rm -f ${DESTDIR}${MANPREFIX}/man1/smu.1
.PHONY: all options clean dist install uninstall .PHONY: all options clean dist install uninstall pgo-build