git: 261811364f06 - main - devel/etcd37: Clean up the makefile

From: Mateusz Piotrowski <0mp_at_FreeBSD.org>
Date: Fri, 18 Sep 2026 19:46:33 UTC
The branch main has been updated by 0mp:

URL: https://cgit.FreeBSD.org/ports/commit/?id=261811364f06d85e7c577c13f59dfa9325bfda07

commit 261811364f06d85e7c577c13f59dfa9325bfda07
Author:     Mateusz Piotrowski <0mp@FreeBSD.org>
AuthorDate: 2026-09-18 19:39:39 +0000
Commit:     Mateusz Piotrowski <0mp@FreeBSD.org>
CommitDate: 2026-09-18 19:46:27 +0000

    devel/etcd37: Clean up the makefile
---
 devel/etcd37/Makefile | 46 ++++++++++++++++------------------------------
 1 file changed, 16 insertions(+), 30 deletions(-)

diff --git a/devel/etcd37/Makefile b/devel/etcd37/Makefile
index 86b2bb57828b..c73b1c1b8d1a 100644
--- a/devel/etcd37/Makefile
+++ b/devel/etcd37/Makefile
@@ -6,14 +6,7 @@ MASTER_SITES=	https://raw.githubusercontent.com/etcd-io/${PORTNAME}/${DISTVERSIO
 PKGNAMEPREFIX=	coreos-
 PKGNAMESUFFIX=	${DISTVERSION:C/[.][0-9]+$//:S/.//}
 DISTFILES=	go.mod:gomod \
-		api/go.mod:gomod \
-		pkg/go.mod:gomod \
-		client/pkg/go.mod:gomod \
-		client/v3/go.mod:gomod \
-		etcdctl/go.mod:gomod \
-		etcdutl/go.mod:gomod \
-		server/go.mod:gomod \
-		tests/go.mod:gomod
+		${_SUBMODS:S|$|/go.mod:gomod|}
 
 MAINTAINER=	0mp@FreeBSD.org
 COMMENT=	Highly-available key value store and service discovery
@@ -25,9 +18,9 @@ LICENSE_FILE=	${WRKSRC}/LICENSE
 USES=		cpe go:modules
 USE_GITHUB=	yes
 GH_ACCOUNT=	etcd-io
-GO_MODULE=	go.etcd.io/etcd/v3
 GO_MOD_DIST=	github
-GO_TARGET=	./etcdctl ./etcdutl ./server
+GO_MODULE=	go.etcd.io/etcd/v3
+GO_TARGET=	./etcdctl ./etcdutl ./server:etcd
 
 MAKE_ENV=	GOWORK=off
 
@@ -37,32 +30,25 @@ PLIST_FILES=	bin/etcd \
 		bin/etcdctl \
 		bin/etcdutl
 
+_SUBMODS=	api pkg client/pkg client/v3 etcdctl etcdutl server tests
+
 # This target is based on the post-extract target from Uses/go.mk
 post-extract:
-.for gt in ${GO_TARGET:T}
-	@${ECHO_MSG} "===> Tidying ${GO_MODNAME} dependencies";
-	@(cd ${GO_WRKSRC}/${gt}; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${GO_ENV} GOPROXY=${GO_MODCACHE} ${GO_CMD} mod tidy -e)
-	@${ECHO_MSG} "===> Vendoring ${GO_MODNAME} dependencies";
-	@(cd ${GO_WRKSRC}/${gt}; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${GO_ENV} GOPROXY=${GO_MODCACHE} ${GO_CMD} mod vendor -e)
+.for t in ${GO_TARGET:C/:.*//}
+	@${ECHO_MSG} "===> Vendoring dependencies for ${t:T}"
+	@cd ${GO_WRKSRC}/${t} && ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${GO_ENV} \
+		GOPROXY=${GO_MODCACHE} ${GO_CMD} mod tidy -e && \
+		${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${GO_ENV} \
+		GOPROXY=${GO_MODCACHE} ${GO_CMD} mod vendor -e
 .endfor
 
 # This target is based on the do-build target from Uses/go.mk.
 do-build:
-.for gt in ${GO_TARGET:T}
-	(cd ${GO_WRKSRC}/${gt}; \
-	for t in ${gt}; do \
-		out=$$(${BASENAME} $$(${ECHO_CMD} $${t} | \
-			${SED} -Ee 's/^[^:]*:([^:]+).*$$/\1/' -e 's/^\.$$/${PORTNAME}/')); \
-		pkg=$$(${ECHO_CMD} $${t} | \
-			${SED} -Ee 's/^([^:]*).*$$/\1/' -e 's/^${PORTNAME}$$/./'); \
-		${ECHO_MSG} "===>  Building $${out} from $${pkg}"; \
-		${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${GO_ENV} GOMAXPROCS=${MAKE_JOBS_NUMBER} GOPROXY=off ${GO_CMD} build ${GO_BUILDFLAGS} \
-			-o ${GO_WRKDIR_BIN}/$${out} \
-			.; \
-	done)
+.for t in ${GO_TARGET}
+	@${ECHO_MSG} "===>  Building ${t:C/^.*://:T} from ${t:C/:.*//}"
+	@cd ${GO_WRKSRC}/${t:C/:.*//} && ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${GO_ENV} \
+		GOMAXPROCS=${MAKE_JOBS_NUMBER} GOPROXY=off ${GO_CMD} build \
+		${GO_BUILDFLAGS} -o ${GO_WRKDIR_BIN}/${t:C/^.*://:T} .
 .endfor
 
-post-install:
-	${MV} ${STAGEDIR}${PREFIX}/bin/server ${STAGEDIR}${PREFIX}/bin/etcd
-
 .include <bsd.port.mk>