Ports Makefile rules install vs do-install

From: Xavier Humbert <xavier_at_groumpf.org>
Date: Fri, 28 May 2021 07:22:54 UTC
Hi,

This is only my second port, the first has never been released. So 
please be indulgent.

I'm porting rudder agent (https://www.rudder.io) to FreeBSD. My Makefile 
is very simple :

> PORTNAME=       rudder-agent
> DISTVERSION=    6.2.7
> CATEGORIES=        sysutils
> MASTER_SITES=    https://github.com/WHATEVER
>
> MAINTAINER=        xavier@amdh.fr
> COMMENT=        Agent for Rudder
>
> LICENSE=        GPLv2+
> SHORT_NAME=        rudder
> NO_BUILD=    yes
> NO_ARCH=    yes
>
> USE_GITHUB=    yes
> GH_ACCOUNT=
> GH_PROJECT=
>
> BUILD_DEPENDS+=shellcheck:devel/hs-ShellCheck
>
> post-patch:
>     @${REINPLACE_CMD} \
>         -e s=/'bin/bash'=/'bin/sh'= \
>         -e s='\^\#\!'='^#\\!'= \
>         ${WRKSRC}/qa-test
>
> post-extract:
>     cd ${WRKSRC}/man && make all
>
> do-install:
>     ${MKDIR} ${STAGEDIR}${PREFIX}/etc/bash_completion.d
>     ${MKDIR} ${STAGEDIR}${PREFIX}/${SHORT_NAME}/share/commands
>     ${MKDIR} ${STAGEDIR}${PREFIX}/${SHORT_NAME}/share/lib
>     ${INSTALL_SCRIPT} ${WRKSRC}/bin/${SHORT_NAME} 
> ${STAGEDIR}${PREFIX}/bin
>     ${INSTALL_SCRIPT} ${WRKSRC}/share/commands/* 
> ${STAGEDIR}${PREFIX}/${SHORT_NAME}/share/commands
>     ${INSTALL_SCRIPT} 
> ${WRKSRC}/etc/bash_completion.d/${SHORT_NAME}.sh 
> ${STAGEDIR}${PREFIX}/etc/bash_completion.d/
> .for ii in package_upgrade.py timestamp
>     ${INSTALL_SCRIPT} ${WRKSRC}/share/lib/${ii} 
> ${STAGEDIR}${PREFIX}/${SHORT_NAME}/share/lib
> .endfor
> .for f in api_call.sh cfengine_parsing.sh common.sh report.sh reports.awk
>     ${INSTALL_DATA} ${WRKSRC}/share/lib/${f} 
> ${STAGEDIR}${PREFIX}/${SHORT_NAME}/share/lib
> .endfor
>     ${INSTALL_MAN} ${WRKSRC}/man/${SHORT_NAME}.8 
> ${STAGEDIR}${PREFIX}/share/man/man8/
>
> do-test: # runs the qa testsuite
>     @cd ${INSTALL_WRKSRC} && ${WRKSRC}/qa-test

The problem is :
* target "do-install" is not invoked if I call make install.
* calling manually "make do-install" stages the port correctly.
* if I rename this target to "install", it complains about 
"work/rudder-agent-6.2.7/Makefile" missing, despite the flag NO_BUILD= yes
* the pkg-plist is conform
* however, the target "do-test" is correctly called by "make test"

I've carefully read the Porter's Handbook, and can't see where my 
mistake is. I'm not a Makefile guru.

Thanks for help,

Regards,

Xavier

-- 
Xavier HUMBERT - Unix/Win/MacOSX Sysadmin/Network Senior Engineer
https://www.amdh.fr