Date: 11 Apr 2000 01:34:45 -0700 From: asami@FreeBSD.org (Satoshi - Ports Wraith - Asami) To: "Akinori -Aki- MUSHA" <knu@idaemons.org> Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: ports/chinese Makefile.inc ports/german Makefile.inc ports/japanese Makefile.inc ports/korean Makefile.inc ports/russian Makefile.inc ports/vietnamese Makefile.inc Message-ID: <vqc4s99ox22.fsf@silvia.hip.berkeley.edu> In-Reply-To: "Akinori -Aki- MUSHA"'s message of "Tue, 11 Apr 2000 16:27:12 %2B0900" References: <200004101634.JAA94507@freefall.freebsd.org> <86hfd9rzkz.wl@archon.local.idaemons.org> <86d7nxrtbj.wl@archon.local.idaemons.org>
next in thread | previous in thread | raw e-mail | index | archive | help
* From: "Akinori -Aki- MUSHA" <knu@idaemons.org>
* Unfortunately, I found bsd.port.mk does not include
* `${MASTERDIR}/../Makefile.inc' automatically while it includes
* `${.CURDIR}/../Makefile.inc'.
Yes, I have been thinking about that too. :)
* I think it'd be bad if every slave port were to be forced to include
* `${.CURDIR}/../Makefile.inc' for itself before including
* `${MASTERDIR}/Makefile', so I'd suggest we prepare some files as
* follows:
I don't think you need to go that far. How about the following?
Basically it includes ${.CURDIR}/../Makefile.inc iff ${.CURDIR} is
different from ${MASTERDIR} (i.e., this is a slave port).
===
Index: Mk/bsd.port.mk
===================================================================
RCS file: /usr/cvs/ports/Mk/bsd.port.mk,v
retrieving revision 1.334
diff -u -r1.334 bsd.port.mk
--- bsd.port.mk 2000/04/10 12:31:02 1.334
+++ bsd.port.mk 2000/04/11 08:26:03
@@ -491,6 +491,10 @@
# If they exist, include Makefile.inc, then architecture/operating
# system specific Makefiles, then local Makefile.local.
+.if ${MASTERDIR} != ${.CURDIR} && exists(${.CURDIR}/../Makefile.inc)
+.include "${.CURDIR}/../Makefile.inc"
+.endif
+
.if exists(${MASTERDIR}/../Makefile.inc)
.include "${MASTERDIR}/../Makefile.inc"
.endif
@@ -507,6 +511,25 @@
.include "${MASTERDIR}/Makefile.local"
.endif
+.if defined(REQUIRE_PORTNAME) && !defined(PORTNAME)
+.BEGIN:
+ @${ECHO} "${PKGNAME}: You need to define PORTNAME and PORTVERSION instead of PKGNAME."
+ @${ECHO} "(This port is too old for your bsd.port.mk.)"
+ @${FALSE}
+.endif
+.if defined(PORTNAME)
+.if defined(PKGNAME) || !defined(PORTVERSION)
+.BEGIN:
+ @${ECHO} "${PKGNAME}: You need to define PORTNAME and PORTVERSION instead of PKGNAME."
+ @${FALSE}
+.endif
+PKGNAME= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}
+DISTNAME?= ${PORTNAME}-${PORTVERSION}
+.else
+# old style
+PKGNAME?= ${DISTNAME}
+.endif
+
# These need to be absolute since we don't know how deep in the ports
# tree we are and thus can't go relative. They can, of course, be overridden
# by individual Makefiles or local system make configuration.
@@ -1102,25 +1125,6 @@
.if defined(FETCH_SYMLINK_DISTFILES)
FETCH_BEFORE_ARGS+= -l
.endif
-.endif
-
-.if defined(REQUIRE_PORTNAME) && !defined(PORTNAME)
-.BEGIN:
- @${ECHO} "${PKGNAME}: You need to define PORTNAME and PORTVERSION instead of PKGNAME."
- @${ECHO} "(This port is too old for your bsd.port.mk.)"
- @${FALSE}
-.endif
-.if defined(PORTNAME)
-.if defined(PKGNAME) || !defined(PORTVERSION)
-.BEGIN:
- @${ECHO} "${PKGNAME}: You need to define PORTNAME and PORTVERSION instead of PKGNAME."
- @${FALSE}
-.endif
-PKGNAME= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}
-DISTNAME?= ${PORTNAME}-${PORTVERSION}
-.else
-# old style
-PKGNAME?= ${DISTNAME}
.endif
DISTFILES?= ${DISTNAME}${EXTRACT_SUFX}
===
I also moved the PKGNAME/DISTNAME setting up to within the pre.mk
section, otherwise a port that tests on the value of PKGNAME will be
dead.
With this, {japanese,korean}/Wnn (thanks for the example), for
instance, can be modified this way (I haven't fixed variable
ordering to keep the diff small):
===
Index: japanese/Wnn/Makefile
===================================================================
RCS file: /usr/cvs/ports/japanese/Wnn/Makefile,v
retrieving revision 1.28
diff -u -r1.28 Makefile
--- Makefile 2000/03/09 03:14:34 1.28
+++ Makefile 2000/04/11 08:24:43
@@ -7,7 +7,8 @@
#
DISTNAME= Wnn4.2
-PKGNAME?= ja-Wnn-4.2
+PORTNAME= Wnn
+PORTVERSION= 4.2
CATEGORIES?= japanese
MASTER_SITES= ftp://ftp.u-tokyo.ac.jp/pub/Japanese/Wnn/ \
ftp://ftp.wg.omron.co.jp/pub/Wnn/dic/pubdic+/ \
@@ -30,6 +31,8 @@
BATCH= yes # make sure it's not empty
.endif
+.include <bsd.port.pre.mk>
+
.if (${PKGNAME} == ja-Wnn-4.2)
DISTFILES+= pubdic+.tar.gz pubdic+-fix01.gz pubdic+.diff pubdic+.special.diff
PORT_DOCDIR= ${PREFIX}/share/doc/ja-Wnn
@@ -167,4 +170,4 @@
fi
${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${LDCONFIG} -m ${PREFIX}/lib
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
Index: korean/Wnn/Makefile
===================================================================
RCS file: /usr/cvs/ports/korean/Wnn/Makefile,v
retrieving revision 1.8
diff -u -r1.8 Makefile
--- Makefile 1999/08/30 12:08:35 1.8
+++ Makefile 2000/04/11 08:31:47
@@ -6,7 +6,6 @@
# $FreeBSD: ports/korean/Wnn/Makefile,v 1.8 1999/08/30 12:08:35 peter Exp $
#
-PKGNAME= ko-Wnn-4.2
CATEGORIES= korean
## COMMENT, DESCR, PLIST is used in a local 'pkg' directory
===
(I only tested "make package-name", but since everything is
conditionalized on ${PKGNAME}, I think it will work.)
Note that you don't even have to set PORTNAME/PORTVERSION in ko-Wnn
anymore!
Satoshi
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?vqc4s99ox22.fsf>
