Xavier Humbert
2021-05-28 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
* 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
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
PORTNAME= � rudder-agent
DISTVERSION= 6.2.7
CATEGORIES= sysutils
MASTER_SITES= https://github.com/WHATEVER
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
-e s=/'bin/bash'=/'bin/sh'= \
-e s='\^\#\!'='^#\\!'= \
${WRKSRC}/qa-test
cd ${WRKSRC}/man && make all
${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
The problem is :DISTVERSION= 6.2.7
CATEGORIES= sysutils
MASTER_SITES= https://github.com/WHATEVER
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
-e s=/'bin/bash'=/'bin/sh'= \
-e s='\^\#\!'='^#\\!'= \
${WRKSRC}/qa-test
cd ${WRKSRC}/man && make all
${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
* 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
Xavier HUMBERT - Unix/Win/MacOSX Sysadmin/Network Senior Engineer
https://www.amdh.fr