Doug Barton wrote:
Tim Kientzle wrote:
This case is a little unusual: by default, I want to
install both 'cpio' programs and symlink the common name
to one of them.

I'm not sure how that relates to Jeremie's (valid) point that these flags need to be part of the system in bsd.own.mk. I admit that getting stuff in there was a little intimidating to me at first, but Ruslan has created a nice automated system, and he'll be glad to help you if you need it.

How about this:
WITH_GCPIO (default) - installs gcpio, symlinks 'cpio' unless WITH_BSDCPIO defined
   WITHOUT_GCPIO - does not install gcpio at all
   WITH_BSDCPIO (default) - installs bsdcpio, symlinks 'cpio'
   WITHOUT_BSDCPIO - does not install bsdcpio at all

If by "not install" you mean "build or install" then I'm with you, but I think it might be a little complicated. I'm not sure why you want to build and install both by default (except maybe to ease people's concerns in the interim period) but if it were me, in HEAD I would do this:

WITH_BSDCPIO (default)    build, install, and symlink to cpio
WITHOUT_GCPIO (default)    do not build or install

Then if WITHOUT_BSDCPIO is defined you don't build or install it, and if WITH_GCPIO is defined you build, install, and symlink it, regardless of the state of the BSDCPIO knob.

When this gets MFC'ed I would just flip the defaults.

I've attached a patch which does what I described above for CPIO, and adds a knob to turn off building of GNU grep. When we get to the point where bsd grep is imported into the base system, I would do the same in HEAD/8-current for bsd grep as I am proposing we do for cpio. But for now it is a step forward to be able to disable the grep build to allow for easier testing.

If this stuff makes anyone happy I'm glad to commit it. Note that after you add the options files you have to run the makeman script in that directory, and redirect the output to src/share/man/man5/src.conf.5 then commit the changes there too.

Side note to gabor, I noticed right away when I set up the test tonight that anything which expects there to be a grep in /usr/bin only fails, and that the base grep has 9 links, but your port only installs 6. The difference is that the base version installs links for {bze|bzf|bz}grep too. If I were you I would offer an option to create symlinks in /usr/bin, and install the bz* stuff as well.


hth,

Doug

--

    This .signature sanitized for your protection

Index: usr.bin/Makefile
===================================================================
--- usr.bin/Makefile    (revision 179788)
+++ usr.bin/Makefile    (working copy)
@@ -43,7 +43,7 @@
        comm \
        compile_et \
        compress \
-       cpio \
+       ${_cpio} \
        cpuset \
        csplit \
        ${_csup} \
@@ -257,6 +257,10 @@
 _bluetooth=    bluetooth
 .endif
 
+.if ${MK_BSD_CPIO} != "no"
+_cpio=         cpio
+.endif
+
 .if ${MK_CALENDAR} != "no"
 _calendar=     calendar
 .endif
Index: usr.bin/cpio/Makefile
===================================================================
--- usr.bin/cpio/Makefile       (revision 179788)
+++ usr.bin/cpio/Makefile       (working copy)
@@ -9,7 +9,7 @@
 CFLAGS+= -DPLATFORM_CONFIG_H=\"config_freebsd.h\"
 LDADD+=        -larchive -lz -lbz2
 
-.if defined(WITH_BSDCPIO)
+.if ${MK_GNU_CPIO} != "yes"
 SYMLINKS=bsdcpio ${BINDIR}/cpio
 MLINKS= bsdcpio.1 cpio.1
 .endif
Index: gnu/usr.bin/cpio/Makefile
===================================================================
--- gnu/usr.bin/cpio/Makefile   (revision 179788)
+++ gnu/usr.bin/cpio/Makefile   (working copy)
@@ -62,9 +62,7 @@
 gcpio.1: ${CPIODIR}/doc/cpio.1
        cat ${CPIODIR}/doc/cpio.1 >gcpio.1
 
-.if !defined(WITH_BSDCPIO)
 SYMLINKS=gcpio ${BINDIR}/cpio
 MLINKS=gcpio.1 cpio.1
-.endif
 
 .include <bsd.prog.mk>
Index: gnu/usr.bin/Makefile
===================================================================
--- gnu/usr.bin/Makefile        (revision 179788)
+++ gnu/usr.bin/Makefile        (working copy)
@@ -5,7 +5,7 @@
 SUBDIR= bc \
        ${_binutils} \
        ${_cc} \
-       cpio \
+       ${_cpio} \
        ${_cvs} \
        dc \
        dialog \
@@ -13,7 +13,7 @@
        diff3 \
        ${_gdb} \
        ${_gperf} \
-       grep \
+       ${_grep} \
        ${_groff} \
        ${_man} \
        patch \
@@ -30,10 +30,18 @@
 .endif
 .endif
 
+.if ${MK_GNU_CPIO} == "yes"
+_cpio=         cpio
+.endif
+
 .if ${MK_CVS} != "no"
 _cvs=          cvs
 .endif
 
+.if ${MK_GNU_GREP} != "no"
+_grep=         grep
+.endif
+
 .if ${MK_MAN} != "no"
 _man=          man
 .endif
Index: share/mk/bsd.own.mk
===================================================================
--- share/mk/bsd.own.mk (revision 179788)
+++ share/mk/bsd.own.mk (working copy)
@@ -287,6 +287,7 @@
     ATM \
     AUDIT \
     AUTHPF \
+    BSD_CPIO \
     BIND \
     BIND_DNSSEC \
     BIND_ETC \
@@ -312,6 +313,7 @@
     GCOV \
     GDB \
     GNU \
+    GNU_GREP \
     GPIB \
     GROFF \
     HTML \
@@ -374,6 +376,7 @@
 #
 .for var in \
     BIND_LIBS \
+    GNU_CPIO \
     HESIOD \
     IDEA
 .if defined(WITH_${var}) && defined(WITHOUT_${var})
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to