On 12.02.2017 20:34, Mikolaj Kucharski wrote:
> portcheck didn't complain, make lib-depends-check is happy too.
>
> However I see that in sources of the app you hardcode `/usr/local`
> path. I think it would be better to add to the ports Makefile something
> as follows:
>
>
> --- Makefile Thu Feb 9 10:32:39 2017
> +++ Makefile.new Sun Feb 12 19:30:38 2017
> @@ -19,4 +19,8 @@
>
> NO_TEST = Yes
>
> +pre-configure:
> + sed -i -e "s,/usr/local,${PREFIX},g;" \
> + ${WRKSRC}/Makefile ${WRKSRC}/dicepassc.c ${WRKSRC}/dicepassc.1
> +
> .include <bsd.port.mk>
Hi,
thanks for the feedback.
You're right, PREFIX isn't honored at all which bothers me too, now
that I understand a bit better. I'm actually quite inexperienced with
make and thankful that bsd.prog.mk does most of the work for me...
Would it be better to handle it in the sources? I did some tests with
sed (for the manual) and a preprocessor define (for the c file) to set
the paths based on PREFIX. But I wonder if that's overkill... After
all it's an OpenBSD-only application.
Regards
Andre
Something like this:
PROG= dicepassc
SRCS= ${PROG}.c
MAN= ${PROG}.1
MDOC= ${PROG}.mdoc
PREFIX?= /usr/local
BINDIR= ${PREFIX}/bin
MANDIR= ${PREFIX}/man/man
SHAREDIR= ${PREFIX}/share
WORDLISTDIR= ${SHAREDIR}/${PROG}
CFLAGS+= -g -W -Wall -Werror
CFLAGS+= -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
CFLAGS+= -Wshadow -Wpointer-arith -Wcast-qual -Wsign-compare
CFLAGS+= -DWORDLISTDIR=${WORDLISTDIR}
CLEANFILES+= ${MAN}
${MAN}: ${MDOC}
sed -e "s,WORDLISTDIR,${WORDLISTDIR},g" ${MDOC} >${MAN}
afterinstall:
${INSTALL} -d -o${SHAREOWN} -g${SHAREGRP} -m${DIRMODE} \
${DESTDIR}${WORDLISTDIR}
${INSTALL} ${INSTALL_COPY} -o${SHAREOWN} -g${SHAREGRP} -m${SHAREMODE} \
wordlists/diceware.wordlist \
wordlists/eff_large.wordlist \
wordlists/eff_short_1.wordlist \
${DESTDIR}${WORDLISTDIR}
.include <bsd.prog.mk>