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>

Reply via email to