On Mon, Feb 13, 2017 at 11:06:12PM +0100, Andre Stoebe wrote:
> 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>
This seems reasonable to me, even though it may be an overkill, if you
are targeting only OpenBSD.
--
best regards
q#