Skip to contentSkip to conversation

Pull request for branch yem-new-packages

GIT PULL New Yann E. MORIN 3 participants 20 messages Jan 29, 2013 – Jan 30, 2013

lore
Share & tools
lore
#0 lore raw

Hello All!

This series deals with adding the required packages to build QEMU on the target.

Hopefully, we'll have time to review and definitely ack/nack that during the DevDay in Brussels. ;-)

Changes v2 -> v3:
- rebased on-top latest tree, drop already applied packages
- bumped usbredir version (needed later for qemu 1.3.x)

Changes v1 -> v2:
- vde2: do not require C++ (Peter)
- usbredir: select libusb (Peter)
- ceph: use 'select' instead of 'depends on'
- cegui06: add comment

The following changes since commit 9b48690efb592ae17c9dd5a7db7b5ecebed09100:

olsr: bump to version 0.6.4 (2013-01-29 22:46:43 +0100)

are available in the git repository at:
git://gitorious.org/buildroot/buildroot.git yem-new-packages

Yann E. MORIN (7):
package/usbredir: update to version 0.6
package/pmake: add host pmake
package/libbsd: new package
package/libedit2: new package
package/ceph: new package
package/dtc: new package
package/dtc: add option to install programs

 package/Config.in                                  |    4 +
 package/ceph/Config.in                             |   23 +
 package/ceph/ceph-no-envz.patch                    |   63 +
 package/ceph/ceph-no-getloadavg.patch              |   61 +
 package/ceph/ceph-no-posix_fallocate.patch         |   50 +
 package/ceph/ceph.mk                               |   53 +
 package/dtc/Config.in                              |   29 +
 package/dtc/dtc-extra_cflags.patch                 |   27 +
 package/dtc/dtc-separate-lib-install.patch         |   28 +
 package/dtc/dtc.mk                                 |   51 +
 package/libbsd/Config.in                           |   10 +
 package/libbsd/libbsd.mk                           |   21 +
 package/libedit2/Config.in                         |    9 +
 package/libedit2/libedit2-01-Makefile.patch        |   25 +
 package/libedit2/libedit2-02-el.c-issetugid.patch  |   24 +
 package/libedit2/libedit2-03-el.c-MAXPATHLEN.patch |   40 +
 .../libedit2/libedit2-04-readline.h-stdio.patch    |   17 +
 .../libedit2/libedit2-08-readline-history.h.patch  |   20 +
 .../libedit2/libedit2-10-define_SIZE_T_MAX.patch   |   18 +
 .../libedit2/libedit2-12-libedit-Makefile.patch    |   54 +
 package/libedit2/libedit2-20-fortify.patch         |   23 +
 package/libedit2/libedit2.mk                       |   75 +
 package/libedit2/libedit2.pc                       |   13 +
 package/pmake/pmake-100_mk.patch                   | 2624 ++++++++++++++++++++
 package/pmake/pmake-110_mkdep.patch                |  230 ++
 package/pmake/pmake-120_fixes.patch                |  266 ++
 package/pmake/pmake-130_maxpathlen.patch           |   39 +
 package/pmake/pmake-140_multiarch.patch            |  354 +++
 package/pmake/pmake-150_mktemp.patch               |   31 +
 package/pmake/pmake.mk                             |   46 +
 package/usbredir/usbredir.mk                       |    2 +-
 31 files changed, 4329 insertions(+), 1 deletions(-)
 create mode 100644 package/ceph/Config.in
 create mode 100644 package/ceph/ceph-no-envz.patch
 create mode 100644 package/ceph/ceph-no-getloadavg.patch
 create mode 100644 package/ceph/ceph-no-posix_fallocate.patch
 create mode 100644 package/ceph/ceph.mk
 create mode 100644 package/dtc/Config.in
 create mode 100644 package/dtc/dtc-extra_cflags.patch
 create mode 100644 package/dtc/dtc-separate-lib-install.patch
 create mode 100644 package/dtc/dtc.mk
 create mode 100644 package/libbsd/Config.in
 create mode 100644 package/libbsd/libbsd.mk
 create mode 100644 package/libedit2/Config.in
 create mode 100644 package/libedit2/libedit2-01-Makefile.patch
 create mode 100644 package/libedit2/libedit2-02-el.c-issetugid.patch
 create mode 100644 package/libedit2/libedit2-03-el.c-MAXPATHLEN.patch
 create mode 100644 package/libedit2/libedit2-04-readline.h-stdio.patch
 create mode 100644 package/libedit2/libedit2-08-readline-history.h.patch
 create mode 100644 package/libedit2/libedit2-10-define_SIZE_T_MAX.patch
 create mode 100644 package/libedit2/libedit2-12-libedit-Makefile.patch
 create mode 100644 package/libedit2/libedit2-20-fortify.patch
 create mode 100644 package/libedit2/libedit2.mk
 create mode 100644 package/libedit2/libedit2.pc
 create mode 100644 package/pmake/pmake-100_mk.patch
 create mode 100644 package/pmake/pmake-110_mkdep.patch
 create mode 100644 package/pmake/pmake-120_fixes.patch
 create mode 100644 package/pmake/pmake-130_maxpathlen.patch
 create mode 100644 package/pmake/pmake-140_multiarch.patch
 create mode 100644 package/pmake/pmake-150_mktemp.patch
 create mode 100644 package/pmake/pmake.mk

Regards,
Yann E. MORIN

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#1 lore raw

PATCH 1/7 package/usbredir: update to version 0.6

---
 package/usbredir/usbredir.mk |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
package/usbredir/usbredir.mk +1 -1
index f0530a7..efdb1be 100644
@@ -4,7 +4,7 @@
 #
 #############################################################
 
-USBREDIR_VERSION         = 0.4.4
+USBREDIR_VERSION         = 0.6
 USBREDIR_SOURCE          = usbredir-$(USBREDIR_VERSION).tar.bz2
 USBREDIR_SITE            = http://spice-space.org/download/usbredir
 USBREDIR_LICENSE         = LGPLv2.1+
Signature · 1 line
1.7.2.5
#2 lore raw

PATCH 2/7 package/pmake: add host pmake

In reply to Yann E. MORIN

pmake is the make command used by the BSD.
It will used to build BSD-related packages, coming later.

---
 package/pmake/pmake-100_mk.patch         | 2624 ++++++++++++++++++++++++++++++
 package/pmake/pmake-110_mkdep.patch      |  230 +++
 package/pmake/pmake-120_fixes.patch      |  266 +++
 package/pmake/pmake-130_maxpathlen.patch |   39 +
 package/pmake/pmake-140_multiarch.patch  |  354 ++++
 package/pmake/pmake-150_mktemp.patch     |   31 +
 package/pmake/pmake.mk                   |   46 +
 7 files changed, 3590 insertions(+), 0 deletions(-)
 create mode 100644 package/pmake/pmake-100_mk.patch
 create mode 100644 package/pmake/pmake-110_mkdep.patch
 create mode 100644 package/pmake/pmake-120_fixes.patch
 create mode 100644 package/pmake/pmake-130_maxpathlen.patch
 create mode 100644 package/pmake/pmake-140_multiarch.patch
 create mode 100644 package/pmake/pmake-150_mktemp.patch
 create mode 100644 package/pmake/pmake.mk
package/pmake/pmake-100_mk.patch new file +2624 -0
new file mode 100644
index 0000000..1786690
@@ -0,0 +1,2624 @@
+Patch vampirised from Debian's package pmake_1.111-3.2:
+    http://snapshot.debian.org/archive/debian/20120601T033558Z/pool/main/p/pmake/
+
+Signed-off-by: "Yann E. MORIN" <[email protected]>
+
+--- pmake-1.111.orig/mk/Makefile
++++ pmake-1.111/mk/Makefile
+@@ -0,0 +1,16 @@
++#	$NetBSD: Makefile,v 1.24 1999/02/13 02:54:36 lukem Exp $
++#	@(#)Makefile	8.1 (Berkeley) 6/8/93
++
++.include <bsd.own.mk>
++
++.if ${MKSHARE} != "no"
++FILES=	bsd.README bsd.doc.mk bsd.dep.mk bsd.files.mk bsd.inc.mk bsd.info.mk \
++	bsd.kinc.mk bsd.kmod.mk bsd.lib.mk bsd.links.mk bsd.man.mk bsd.nls.mk \
++	bsd.obj.mk bsd.own.mk bsd.prog.mk bsd.subdir.mk bsd.sys.mk sys.mk
++FILESDIR=/usr/share/mk
++.endif
++MKOBJ=	no
++
++FILESMODE=444
++
++.include <bsd.prog.mk>
+--- pmake-1.111.orig/mk/bsd.README
++++ pmake-1.111/mk/bsd.README
+@@ -0,0 +1,536 @@
++#	$NetBSD: bsd.README,v 1.48 1999/02/13 03:04:09 lukem Exp $
++#	@(#)bsd.README	8.2 (Berkeley) 4/2/94
++
++This is the README file for the new make "include" files for the BSD
++source tree.  The files are installed in /usr/share/mk, and are, by
++convention, named with the suffix ".mk".
++
++Note, this file is not intended to replace reading through the .mk
++files for anything tricky.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++RANDOM THINGS WORTH KNOWING:
++
++The files are simply C-style #include files, and pretty much behave like
++you'd expect.  The syntax is slightly different in that a single '.' is
++used instead of the hash mark, i.e. ".include <bsd.prog.mk>".
++
++One difference that will save you lots of debugging time is that inclusion
++of the file is normally done at the *end* of the Makefile.  The reason for
++this is because .mk files often modify variables and behavior based on the
++values of variables set in the Makefile.  To make this work, remember that
++the FIRST target found is the target that is used, i.e. if the Makefile has:
++
++	a:
++		echo a
++	a:
++		echo a number two
++
++the command "make a" will echo "a".  To make things confusing, the SECOND
++variable assignment is the overriding one, i.e. if the Makefile has:
++
++	a=	foo
++	a=	bar
++
++	b:
++		echo ${a}
++
++the command "make b" will echo "bar".  This is for compatibility with the
++way the V7 make behaved.
++
++It's fairly difficult to make the BSD .mk files work when you're building
++multiple programs in a single directory.  It's a lot easier split up the
++programs than to deal with the problem.  Most of the agony comes from making
++the "obj" directory stuff work right, not because we switched to a new version
++of make.  So, don't get mad at us, figure out a better way to handle multiple
++architectures so we can quit using the symbolic link stuff.  (Imake doesn't
++count.)
++
++The file .depend in the source directory is expected to contain dependencies
++for the source files.  This file is read automatically by make after reading
++the Makefile.
++
++The variable DESTDIR works as before.  It's not set anywhere but will change
++the tree where the file gets installed.
++
++The profiled libraries are no longer built in a different directory than
++the regular libraries.  A new suffix, ".po", is used to denote a profiled
++object, and ".so" denotes a shared (position-independent) object.
++
++The following variables that control how things are made/installed that
++are not set by default. These should not be set by Makefiles; they're for
++the user to define in MAKECONF (see bsd.own.mk, below) or on the make(1)
++command line:
++
++BUILD 		If defined, 'make install' checks that the targets in the
++		source directories are up-to-date and remakes them if they
++                are out of date, instead of blindly trying to install
++                out of date or non-existant targets.
++
++UPDATE 		If defined, 'make install' only installs targets that are
++		more recently modified in the source directories that their
++		installed counterparts.
++
++MKCATPAGES	If "no", don't build or install the catman pages.
++
++MKDOC		If "no", don't build or install the documentation.
++
++MKINFO		If "no", don't build or install Info documentation from
++		Texinfo source files.
++
++MKLINT		If "no", don't build or install the lint libraries.
++
++MKMAN		If "no", don't build or install the man or catman pages.
++		Also acts as "MKCATPAGES=no"
++
++MKNLS		If "no", don't build or install the NLS files.
++
++MKOBJ		If "no", don't create objdirs.
++
++MKPIC		If "no", don't build or install shared libraries.
++
++MKPICINSTALL	If "no", don't install the *_pic.a libraries.
++
++MKPROFILE	If "no", don't build or install the profiling libraries.
++
++MKSHARE		If "no", act as "MKCATPAGES=no MKDOC=no MKINFO=no MKMAN=no
++		MKNLS=no".  I.e, don't build catman pages, documentation,
++		Info documentation, man pages, NLS files, ...
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <sys.mk> has the default rules for all makes, in the BSD
++environment or otherwise.  You probably don't want to touch this file.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.man.mk> handles installing manual pages and their
++links.
++
++It has a two targets:
++
++	maninstall:
++		Install the manual page sources and their links.
++	catinstall:
++		Install the preformatted manual pages and their links.
++
++It sets/uses the following variables:
++
++MANDIR		Base path for manual installation.
++
++MANGRP		Manual group.
++
++MANOWN		Manual owner.
++
++MANMODE		Manual mode.
++
++MANSUBDIR	Subdirectory under the manual page section, i.e. "/vax"
++		or "/tahoe" for machine specific manual pages.
++
++MAN		The manual pages to be installed (use a .1 - .9 suffix).
++
++MLINKS		List of manual page links (using a .1 - .9 suffix).  The
++		linked-to file must come first, the linked file second,
++		and there may be multiple pairs.  The files are soft-linked.
++
++The include file <bsd.man.mk> includes a file named "../Makefile.inc" if
++it exists.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.own.mk> contains source tree configuration parameters,
++such as the owners, groups, etc. for both manual pages and binaries, and
++a few global "feature configuration" parameters.
++
++It has no targets.
++
++To get system-specific configuration parameters, bsd.own.mk will try to
++include the file specified by the "MAKECONF" variable.  If MAKECONF is not
++set, or no such file exists, the system make configuration file, /etc/mk.conf
++is included.  These files may define any of the variables described below.
++
++bsd.own.mk sets the following variables, if they are not already defined
++(defaults are in brackets):
++
++BSDSRCDIR	The real path to the system sources, so that 'make obj'
++		will work correctly. [/usr/src]
++
++BSDOBJDIR	The real path to the system 'obj' tree, so that 'make obj'
++		will work correctly. [/usr/obj]
++
++BINGRP		Binary group. [wheel]
++
++BINOWN		Binary owner. [root]
++
++BINMODE		Binary mode. [555]
++
++NONBINMODE	Mode for non-executable files. [444]
++
++MANDIR		Base path for manual installation. [/usr/share/man/cat]
++
++MANGRP		Manual group. [wheel]
++
++MANOWN		Manual owner. [root]
++
++MANMODE		Manual mode. [${NONBINMODE}]
++
++MANINSTALL	Manual installation type: maninstall, catinstall, or both
++
++LIBDIR		Base path for library installation. [/usr/lib]
++
++LINTLIBDIR	Base path for lint(1) library installation. [/usr/libdata/lint]
++
++LIBGRP		Library group. [${BINGRP}]
++
++LIBOWN		Library owner. [${BINOWN}]
++
++LIBMODE		Library mode. [${NONBINMODE}]
++
++DOCDIR		Base path for system documentation (e.g. PSD, USD, etc.)
++	        installation. [/usr/share/doc]
++
++DOCGRP		Documentation group. [wheel]
++
++DOCOWN		Documentation owner. [root]
++
++DOCMODE		Documentation mode. [${NONBINMODE}]
++
++NLSDIR		Base path for National Language Support files installation.
++		[/usr/share/nls]
++
++NLSGRP		National Language Support files group. [wheel]
++
++NLSOWN		National Language Support files owner. [root]
++
++NLSMODE		National Language Support files mode. [${NONBINMODE}]
++
++STRIPFLAG	The flag passed to the install program to cause the binary
++		to be stripped.  This is to be used when building your
++		own install script so that the entire system can be made
++		stripped/not-stripped using a single knob. [-s]
++
++COPY		The flag passed to the install program to cause the binary
++		to be copied rather than moved.  This is to be used when
++		building our own install script so that the entire system
++		can either be installed with copies, or with moves using
++		a single knob. [-c]
++
++Additionally, the following variables may be set by bsd.own.mk or in a
++make configuration file to modify the behaviour of the system build
++process (default values are in brackets along with comments, if set by
++bsd.own.mk):
++
++EXPORTABLE_SYSTEM
++		Do not build /usr/src/domestic, even if it is present.
++
++SKEY		Compile in support for S/key authentication. [yes, set
++		unconditionally]
++
++KERBEROS	Compile in support for Kerberos 4 authentication.
++
++KERBEROS5	Compile in support for Kerberos 5 authentication.
++
++MANZ		Compress manual pages at installation time.
++
++SYS_INCLUDE	Copy or symlink kernel include files into /usr/include.
++		Possible values are "symlinks" or "copies" (which is
++		the same as the variable being unset).
++
++NOPROFILE	Do not build profiled versions of system libraries
++
++NOPIC		Do not build PIC versions of system libraries, and
++		do not build shared libraries.
++
++NOLINT		Do not build lint libraries.
++
++OBJECT_FMT	Object file format. [set to "ELF" on  ports that use
++		ELF -- currently if ${MACHINE_ARCH} is "alpha", "mips"
++		or "powerpc" or  set to "a.out" on other ports].
++
++
++bsd.own.mk is generally useful when building your own Makefiles so that
++they use the same default owners etc. as the rest of the tree.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.prog.mk> handles building programs from one or
++more source files, along with their manual pages.  It has a limited number
++of suffixes, consistent with the current needs of the BSD tree.
++
++It has eight targets:
++
++	all:
++		build the program and its manual page
++	clean:
++		remove the program, any object files and the files a.out,
++		Errs, errs, mklog, and ${PROG}.core.
++	cleandir:
++		remove all of the files removed by the target clean, as
++		well as .depend, tags, and any manual pages.
++		`distclean' is a synonym for `cleandir'.
++	depend:
++		make the dependencies for the source files, and store
++		them in the file .depend.
++	includes:
++		install any header files.
++	install:
++		install the program and its manual pages; if the Makefile
++		does not itself define the target install, the targets
++		beforeinstall and afterinstall may also be used to cause
++		actions immediately before and after the install target
++		is executed.
++	lint:
++		run lint on the source files
++	tags:
++		create a tags file for the source files.
++
++It sets/uses the following variables:
++
++BINGRP		Binary group.
++
++BINOWN		Binary owner.
++
++BINMODE		Binary mode.
++
++CLEANFILES	Additional files to remove for the clean and cleandir targets.
++
++COPTS		Additional flags to the compiler when creating C objects.
++
++CPPFLAGS	Additional flags to the C pre-processor
++
++LDADD		Additional loader objects.  Usually used for libraries.
++		For example, to load with the compatibility and utility
++		libraries, use:
++
++			LDADD+=-lutil -lcompat
++
++LDFLAGS		Additional loader flags.
++
++LINKS		The list of binary links; should be full pathnames, the
++		linked-to file coming first, followed by the linked
++		file.  The files are hard-linked.  For example, to link
++		/bin/test and /bin/[, use:
++
++			LINKS=	${DESTDIR}/bin/test ${DESTDIR}/bin/[
++
++SYMLINKS	The list of symbolic links; should be full pathnames.
++                Syntax is identical to LINKS. Note that DESTDIR is not
++		automatically included in the link.
++
++MAN		Manual pages (should end in .1 - .9).  If no MAN variable is
++		defined, "MAN=${PROG}.1" is assumed.
++
++PROG		The name of the program to build.  If not supplied, nothing
++		is built.
++
++PROGNAME	The name that the above program will be installed as, if
++		different from ${PROG}.
++
++SRCS		List of source files to build the program.  If SRCS is not
++		defined, it's assumed to be ${PROG}.c.
++
++DPADD		Additional dependencies for the program.  Usually used for
++		libraries.  For example, to depend on the compatibility and
++		utility libraries use:
++
++			DPADD+=${LIBCOMPAT} ${LIBUTIL}
++
++		The following libraries are predefined for DPADD:
++
++		LIBC?=		${DESTDIR}/usr/lib/libc.a
++		LIBC_PIC?=	${DESTDIR}/usr/lib/libc_pic.a
++		LIBCOMPAT?=	${DESTDIR}/usr/lib/libcompat.a
++		LIBCRYPT?=	${DESTDIR}/usr/lib/libcrypt.a
++		LIBCURSES?=	${DESTDIR}/usr/lib/libcurses.a
++		LIBDBM?=	${DESTDIR}/usr/lib/libdbm.a
++		LIBDES?=	${DESTDIR}/usr/lib/libdes.a
++		LIBEDIT?=	${DESTDIR}/usr/lib/libedit.a
++		LIBGCC?=	${DESTDIR}/usr/lib/libgcc.a
++		LIBGNUMALLOC?=	${DESTDIR}/usr/lib/libgnumalloc.a
++		LIBKDB?=	${DESTDIR}/usr/lib/libkdb.a
++		LIBKRB?=	${DESTDIR}/usr/lib/libkrb.a
++		LIBKVM?=	${DESTDIR}/usr/lib/libkvm.a
++		LIBL?=		${DESTDIR}/usr/lib/libl.a
++		LIBM?=		${DESTDIR}/usr/lib/libm.a
++		LIBMP?=		${DESTDIR}/usr/lib/libmp.a
++		LIBNTP?=	${DESTDIR}/usr/lib/libntp.a
++		LIBPC?=		${DESTDIR}/usr/lib/libpc.a
++		LIBPCAP?=	${DESTDIR}/usr/lib/libpcap.a
++		LIBPLOT?=	${DESTDIR}/usr/lib/libplot.a
++		LIBPOSIX?=	${DESTDIR}/usr/lib/libposix.a
++		LIBRESOLV?=	${DESTDIR}/usr/lib/libresolv.a
++		LIBRPCSVC?=	${DESTDIR}/usr/lib/librpcsvc.a
++		LIBSKEY?=	${DESTDIR}/usr/lib/libskey.a
++		LIBTERMCAP?=	${DESTDIR}/usr/lib/libtermcap.a
++		LIBTELNET?=	${DESTDIR}/usr/lib/libtelnet.a
++		LIBUTIL?=	${DESTDIR}/usr/lib/libutil.a
++		LIBWRAP?=	${DESTDIR}/usr/lib/libwrap.a
++		LIBY?=		${DESTDIR}/usr/lib/liby.a
++		LIBZ?=		${DESTDIR}/usr/lib/libz.a
++
++
++SHAREDSTRINGS	If defined, a new .c.o rule is used that results in shared
++		strings, using xstr(1). Note that this will not work with
++		parallel makes.
++
++STRIP		The flag passed to the install program to cause the binary
++		to be stripped.
++
++SUBDIR		A list of subdirectories that should be built as well.
++		Each of the targets will execute the same target in the
++		subdirectories.
++
++SCRIPTS		A list of interpreter scripts [file.{sh,csh,pl,awk,...}].
++		These are installed exactly like programs.
++
++SCRIPTSNAME	The name that the above program will be installed as, if
++		different from ${SCRIPTS}. These can be further specialized
++		by setting SCRIPTSNAME_<script>.
++
++FILES		A list of files to install. The installation is controlled
++		by the FILESNAME, FILESOWN, FILESGRP, FILESMODE, FILESDIR
++		variables that can be further specialized by FILES<VAR>_<file>
++
++The include file <bsd.prog.mk> includes the file named "../Makefile.inc"
++if it exists, as well as the include file <bsd.man.mk>.
++
++Some simple examples:
++
++To build foo from foo.c with a manual page foo.1, use:
++
++	PROG=	foo
++
++	.include <bsd.prog.mk>
++
++To build foo from foo.c with a manual page foo.2, add the line:
++
++	MAN=	foo.2
++
++If foo does not have a manual page at all, add the line:
++
++	NOMAN=	noman
++
++If foo has multiple source files, add the line:
++
++	SRCS=	a.c b.c c.c d.c
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.subdir.mk> contains the default targets for building
++subdirectories.  It has the same eight targets as <bsd.prog.mk>: all, 
++clean, cleandir, depend, includes, install, lint, and tags.  For all of
++the directories listed in the variable SUBDIRS, the specified directory 
++will be visited and the target made.  There is also a default target which
++allows the command "make subdir" where subdir is any directory listed in
++the variable SUBDIRS.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.links.mk> handles the LINKS and SYMLINKS variables
++and is included from from bsd.lib.mk and bsd.prog.mk.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.files.mk> handles the FILES variables and is included
++from bsd.lib.mk and bsd.prog.mk.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.inc.mk> defines the includes target and uses two
++variables:
++
++INCS	The list of include files
++
++INCSDIR	The location to install the include files.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.kinc.mk> defines the many targets (includes,
++subdirectories, etc.), and is used by kernel makefiles to handle
++include file installation.  It is intended to be included alone, by
++kernel Makefiles.  Please see bsd.kinc.mk for more details, and keep
++the documentation in that file up to date.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.info.mk> is used to generate and install GNU Info
++documentation from respective Texinfo source files.  It defines three
++implicit targets (.txi.info, .texi.info, and .texinfo.info), and uses the
++following variables:
++
++TEXINFO		List of Texinfo source files.  Info documentation will
++		consist of single files with the extension replaced by
++		.info.
++
++INFOFLAGS	Flags to pass to makeinfo.  []
++
++INSTALL_INFO	Name of install-info program.  [install-info]
++
++MAKEINFO	Name of makeinfo program.  [makeinfo]
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.sys.mk> is used by <bsd.prog.mk> and
++<bsd.lib.mk>.  It contains overrides that are used when building
++the NetBSD source tree.  For instance, if "PARALLEL" is defined by
++the program/library Makefile, it includes a set of rules for lex and
++yacc that allow multiple lex and yacc targets to be built in parallel.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.lib.mk> has support for building libraries.  It has
++the same eight targets as <bsd.prog.mk>: all, clean, cleandir, depend,
++includes, install, lint, and tags.  Additionally, it has a checkver target
++which checks for installed shared object libraries whose version is greater
++that the version of the source. It has a limited number of suffixes,
++consistent with the current needs of the BSD tree.
++
++It sets/uses the following variables:
++
++LIB		The name of the library to build.
++
++LIBDIR		Target directory for libraries.
++
++LINTLIBDIR	Target directory for lint libraries.
++
++LIBGRP		Library group.
++
++LIBOWN		Library owner.
++
++LIBMODE		Library mode.
++
++LDADD		Additional loader objects.
++
++MAN		The manual pages to be installed (use a .1 - .9 suffix).
++
++MKLINKLIB	If "no", act as "MKPICINSTALL=no MKPROFILE=no".
++		Also:
++			- don't install the .a libraries
++			- don't install _pic.a libraries on PIC systems
++			- don't build .a libraries on PIC systems
++			- don't install the .so symlink on ELF systems
++		I.e, only install the shared library (and the .so.major
++		symlink on ELF).
++
++NOCHECKVER_<library>
++NOCHECKVER	If set, disables checking for installed shared object
++		libraries with versions greater than the source.  A
++		particular library name, without the "lib" prefix, may
++		be appended to the variable name to disable the check for
++		only that library.
++
++SRCS		List of source files to build the library.  Suffix types
++		.s, .c, and .f are supported.  Note, .s files are preferred
++		to .c files of the same name.  (This is not the default for
++		versions of make.)
++
++The include file <bsd.lib.mk> includes the file named "../Makefile.inc"
++if it exists, as well as the include file <bsd.man.mk>.
++
++It has rules for building profiled objects; profiled libraries are
++built by default.
++
++Libraries are ranlib'd when made.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+--- pmake-1.111.orig/mk/bsd.dep.mk
++++ pmake-1.111/mk/bsd.dep.mk
+@@ -0,0 +1,62 @@
++#	$NetBSD: bsd.dep.mk,v 1.26 1999/02/24 22:04:15 simonb Exp $
++
++.PHONY:		cleandepend
++cleandir distclean: cleandepend
++
++MKDEP?=		mkdep
++
++# some of the rules involve .h sources, so remove them from mkdep line
++depend: beforedepend
++.if defined(SRCS)
++depend: .depend
++	@true # hack to prevent "make depend" from using implicit rules
++.NOPATH: .depend
++.depend: ${SRCS} ${DPSRCS}
++	@rm -f .depend
++	@files="${.ALLSRC:M*.s} ${.ALLSRC:M*.S}"; \
++	if [ "$$files" != " " ]; then \
++	  echo ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${AFLAGS:M-[ID]*:Q} ${CPPFLAGS:Q} ${AINC:Q} $$files; \
++	  ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${AFLAGS:M-[ID]*} ${CPPFLAGS} ${AINC} $$files; \
++	fi
++	@files="${.ALLSRC:M*.c}"; \
++	if [ "$$files" != "" ]; then \
++	  echo ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${CFLAGS:M-[ID]*:Q} ${CPPFLAGS:Q} $$files; \
++	  ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${CFLAGS:M-[ID]*} ${CPPFLAGS} $$files; \
++	fi
++	@files="${.ALLSRC:M*.m}"; \
++	if [ "$$files" != "" ]; then \
++	  echo ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${OBJCFLAGS:M-[ID]*:Q} ${CPPFLAGS:Q} $$files; \
++	  ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${OBJCFLAGS:M-[ID]*} ${CPPFLAGS} $$files; \
++	fi
++	@files="${.ALLSRC:M*.cc} ${.ALLSRC:M*.C} ${.ALLSRC:M*.cxx}"; \
++	if [ "$$files" != "  " ]; then \
++	  echo ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${CXXFLAGS:M-[ID]*:Q} ${CPPFLAGS:Q} $$files; \
++	  ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${CXXFLAGS:M-[ID]*} ${CPPFLAGS} $$files; \
++	fi
++cleandepend:
++	rm -f .depend ${.CURDIR}/tags
++.else
++cleandepend:
++.endif
++depend: afterdepend
++
++beforedepend:
++afterdepend:
++
++.if !target(tags)
++.if defined(SRCS)
++tags: ${SRCS}
++	-cd ${.CURDIR}; ctags -f /dev/stdout ${.ALLSRC:N*.h} | \
++	    sed "s;\${.CURDIR}/;;" > tags
++.else
++tags:
++.endif
++.endif
+--- pmake-1.111.orig/mk/bsd.doc.mk
++++ pmake-1.111/mk/bsd.doc.mk
+@@ -0,0 +1,78 @@
++#	$NetBSD: bsd.doc.mk,v 1.41 1999/02/12 01:10:06 lukem Exp $
++#	@(#)bsd.doc.mk	8.1 (Berkeley) 8/14/93
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.MAIN:		all
++.endif
++
++.PHONY:		cleandoc docinstall print spell
++.if ${MKSHARE} != "no"
++realinstall:	docinstall
++.endif
++clean cleandir distclean: cleandoc
++
++BIB?=		bib
++EQN?=		eqn
++GREMLIN?=	grn
++GRIND?=		vgrind -f
++INDXBIB?=	indxbib
++PIC?=		pic
++REFER?=		refer
++ROFF?=         groff ${MACROS} ${PAGES}
++SOELIM?=	soelim
++TBL?=		tbl
++
++.if !target(all)
++.if ${MKSHARE} != "no"
++all: paper.ps
++.else
++all:
++.endif
++.endif
++
++.if !target(paper.ps)
++paper.ps: ${SRCS}
++	${ROFF} ${.ALLSRC} > ${.TARGET}
++.endif
++
++.if !target(print)
++print: paper.ps
++	lpr -P${PRINTER} ${.ALLSRC}
++.endif
++
++cleandoc:
++	rm -f paper.* [eE]rrs mklog ${CLEANFILES}
++
++.if ${MKDOC} != "no"
++FILES?=	${SRCS}
++.for F in ${FILES} ${EXTRA} Makefile
++docinstall:: ${DESTDIR}${DOCDIR}/${DIR}/${F}
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${DOCDIR}/${DIR}/${F}
++.endif
++.if !defined(BUILD)
++${DESTDIR}${DOCDIR}/${DIR}/${F}: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${DOCDIR}/${DIR}/${F}
++${DESTDIR}${DOCDIR}/${DIR}/${F}: ${F}
++	${INSTALL} ${RENAME} ${PRESERVE} -c -o ${DOCOWN} -g ${DOCGRP} \
++		-m ${DOCMODE} ${.ALLSRC} ${.TARGET}
++.endfor
++.endif
++
++.if !target(docinstall)
++docinstall::
++.endif
++
++spell: ${SRCS}
++	spell ${.ALLSRC} | sort | comm -23 - spell.ok > paper.spell
++
++depend includes lint obj tags:
++
++.include <bsd.obj.mk>
+--- pmake-1.111.orig/mk/bsd.files.mk
++++ pmake-1.111/mk/bsd.files.mk
+@@ -0,0 +1,43 @@
++#	$NetBSD: bsd.files.mk,v 1.8 1999/02/11 13:25:42 tv Exp $
++
++# This file can be included multiple times.  It clears the definition of
++# FILES at the end so that this is possible.
++
++.PHONY:		filesinstall
++realinstall:	filesinstall
++
++.if defined(FILES) && !empty(FILES)
++FILESDIR?=${BINDIR}
++FILESOWN?=${BINOWN}
++FILESGRP?=${BINGRP}
++FILESMODE?=${NONBINMODE}
++.for F in ${FILES}
++FILESDIR_${F}?=${FILESDIR}
++FILESOWN_${F}?=${FILESOWN}
++FILESGRP_${F}?=${FILESGRP}
++FILESMODE_${F}?=${FILESMODE}
++.if defined(FILESNAME)
++FILESNAME_${F} ?= ${FILESNAME}
++.else
++FILESNAME_${F} ?= ${F:T}
++.endif
++filesinstall:: ${DESTDIR}${FILESDIR_${F}}/${FILESNAME_${F}}
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${FILESDIR_${F}}/${FILESNAME_${F}}
++.endif
++.if !defined(BUILD)
++${DESTDIR}${FILESDIR_${F}}/${FILESNAME_${F}}: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${FILESDIR_${F}}/${FILESNAME_${F}}
++${DESTDIR}${FILESDIR_${F}}/${FILESNAME_${F}}: ${F}
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${FILESOWN_${F}} \
++		-g ${FILESGRP_${F}} -m ${FILESMODE_${F}} ${.ALLSRC} ${.TARGET}
++.endfor
++.endif
++
++.if !target(filesinstall)
++filesinstall::
++.endif
++
++FILES:=
+--- pmake-1.111.orig/mk/bsd.inc.mk
++++ pmake-1.111/mk/bsd.inc.mk
+@@ -0,0 +1,25 @@
++#	$NetBSD: bsd.inc.mk,v 1.12 1999/02/04 11:58:30 christos Exp $
++
++.PHONY:		incinstall
++includes:	${INCS} incinstall
++
++.if defined(INCS)
++.for I in ${INCS}
++incinstall:: ${DESTDIR}${INCSDIR}/$I
++
++.PRECIOUS: ${DESTDIR}${INCSDIR}/$I
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${INCSDIR}/$I
++.endif
++${DESTDIR}${INCSDIR}/$I: $I
++	@cmp -s ${.ALLSRC} ${.TARGET} > /dev/null 2>&1 || \
++	    (echo "${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} \
++		-g ${BINGRP} -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}" && \
++	     ${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} -g ${BINGRP} \
++		-m ${NONBINMODE} ${.ALLSRC} ${.TARGET})
++.endfor
++.endif
++
++.if !target(incinstall)
++incinstall::
++.endif
+--- pmake-1.111.orig/mk/bsd.info.mk
++++ pmake-1.111/mk/bsd.info.mk
+@@ -0,0 +1,60 @@
++#	$NetBSD: bsd.info.mk,v 1.7.2.1 1999/04/22 14:46:13 perry Exp $
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.include <bsd.obj.mk>
++.MAIN:		all
++.endif
++
++MAKEINFO?=	makeinfo
++INFOFLAGS?=	
++INSTALL_INFO?=	install-info
++
++.SUFFIXES: .txi .texi .texinfo .info
++
++.txi.info .texi.info .texinfo.info:
++	@${MAKEINFO} ${INFOFLAGS} --no-split -o $@ $<
++
++.if defined(TEXINFO) && !empty(TEXINFO) && ${MKINFO} != "no"
++INFOFILES=	${TEXINFO:C/\.te?xi(nfo)?$/.info/}
++FILES+=		${INFOFILES}
++
++infoinstall:
++.for F in ${INFOFILES}
++	@${INSTALL_INFO} --remove --info-dir=${DESTDIR}${INFODIR} ${DESTDIR}${INFODIR}/${F}
++	${INSTALL_INFO} --info-dir=${DESTDIR}${INFODIR} ${DESTDIR}${INFODIR}/${F}
++.endfor
++
++.for F in ${INFOFILES}
++FILESDIR_${F}=	${INFODIR}
++FILESOWN_${F}=	${INFOOWN}
++FILESGRP_${F}=	${INFOGRP}
++FILESMODE_${F}=	${INFOMODE}
++FILESNAME_${F}=	${F:T}
++.endfor
++
++all: ${INFOFILES}
++.else
++all:
++.endif
++
++.if ${MKINFO} != "no"
++cleaninfo:
++	rm -f ${INFOFILES}
++.else
++cleaninfo infoinstall:
++.endif
++
++.include <bsd.files.mk>
++
++# These need to happen *after* filesinstall.
++.PHONY: infoinstall cleaninfo
++realinstall: infoinstall
++cleandir distclean: cleaninfo
++
++# Make sure all of the standard targets are defined, even if they do nothing.
++clean depend includes lint regress tags:
+--- pmake-1.111.orig/mk/bsd.kinc.mk
++++ pmake-1.111/mk/bsd.kinc.mk
+@@ -0,0 +1,136 @@
++#	$NetBSD: bsd.kinc.mk,v 1.5 1999/02/04 11:58:30 christos Exp $
++
++# System configuration variables:
++#
++# SYS_INCLUDE	"symlinks": symlinks to include directories are created.
++#		This may not work 100% properly for all headers.
++#
++#		"copies": directories are made, if necessary, and headers
++#		are installed into them.
++#
++# Variables:
++#
++# INCSDIR	Directory to install includes into (and/or make, and/or
++#		symlink, depending on what's going on).
++#
++# KDIR		Kernel directory to symlink to, if SYS_INCLUDE is symlinks.
++#		If unspecified, no action will be taken when making include
++#		for the directory if SYS_INCLUDE is symlinks.
++#
++# INCS		Headers to install, if SYS_INCLUDE is copies.
++#
++# DEPINCS	Headers to install which are built dynamically.
++#
++# SUBDIR	Subdirectories to enter
++#
++# SYMLINKS	Symlinks to make (unconditionally), a la bsd.links.mk.
++#		Note that the original bits will be 'rm -rf'd rather than
++#		just 'rm -f'd, to make the right thing happen with include
++#		directories.
++#
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.MAIN:		all
++.endif
++
++# Change SYS_INCLUDE in bsd.own.mk or /etc/mk.conf to "symlinks" if you
++# don't want copies
++SYS_INCLUDE?=   copies
++
++# If DESTDIR is set, we're probably building a release, so force "copies".
++.if defined(DESTDIR) && (${DESTDIR} != "/" && !empty(DESTDIR))
++SYS_INCLUDE=    copies
++.endif
++
++
++.PHONY:		incinstall
++includes:	${INCS} incinstall
++
++
++.if ${SYS_INCLUDE} == "symlinks"
++
++# don't install includes, just make symlinks.
++
++.if defined(KDIR)
++SYMLINKS+=	${KDIR} ${INCSDIR}
++.endif
++
++.else # not symlinks
++
++# make sure the directory is OK, and install includes.
++
++.PRECIOUS: ${DESTDIR}${INCSDIR}
++.PHONY: ${DESTDIR}${INCSDIR}
++${DESTDIR}${INCSDIR}:
++	@if [ ! -d ${.TARGET} ] || [ -L ${.TARGET} ] ; then \
++		echo creating ${.TARGET}; \
++		/bin/rm -rf ${.TARGET}; \
++		${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 ${.TARGET}; \
++	fi
++
++incinstall:: ${DESTDIR}${INCSDIR}
++
++.if defined(INCS)
++.for I in ${INCS}
++incinstall:: ${DESTDIR}${INCSDIR}/$I
++
++.PRECIOUS: ${DESTDIR}${INCSDIR}/$I
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${INCSDIR}/$I
++.endif
++${DESTDIR}${INCSDIR}/$I: ${DESTDIR}${INCSDIR} $I 
++	@cmp -s ${.CURDIR}/$I ${.TARGET} > /dev/null 2>&1 || \
++	    (echo "${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} \
++		-g ${BINGRP} -m ${NONBINMODE} ${.CURDIR}/$I ${.TARGET}" && \
++	     ${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} -g ${BINGRP} \
++		-m ${NONBINMODE} ${.CURDIR}/$I ${.TARGET})
++.endfor
++.endif
++
++.if defined(DEPINCS)
++.for I in ${DEPINCS}
++incinstall:: ${DESTDIR}${INCSDIR}/$I
++
++.PRECIOUS: ${DESTDIR}${INCSDIR}/$I
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${INCSDIR}/$I
++.endif
++${DESTDIR}${INCSDIR}/$I: ${DESTDIR}${INCSDIR} $I 
++	@cmp -s $I ${.TARGET} > /dev/null 2>&1 || \
++	    (echo "${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} \
++		-g ${BINGRP} -m ${NONBINMODE} $I ${.TARGET}" && \
++	     ${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} -g ${BINGRP} \
++		-m ${NONBINMODE} $I ${.TARGET})
++.endfor
++.endif
++
++.endif # not symlinks
++
++.if defined(SYMLINKS) && !empty(SYMLINKS)
++incinstall::
++	@set ${SYMLINKS}; \
++	 while test $$# -ge 2; do \
++		l=$$1; \
++		shift; \
++		t=${DESTDIR}$$1; \
++		shift; \
++		echo ".include <bsd.own.mk>"; \
++		echo "all:: $$t"; \
++		echo ".PHONY: $$t"; \
++		echo "$$t:"; \
++		echo "	@echo \"$$t -> $$l\""; \
++		echo "	@rm -rf $$t"; \
++		echo "	@ln -s $$l $$t"; \
++	done | ${MAKE} -f-
++.endif
++
++.if !target(incinstall)
++incinstall::
++.endif
++
++.include <bsd.subdir.mk>
+--- pmake-1.111.orig/mk/bsd.kmod.mk
++++ pmake-1.111/mk/bsd.kmod.mk
+@@ -0,0 +1,95 @@
++#	$NetBSD: bsd.kmod.mk,v 1.30 1999/03/10 06:34:19 ross Exp $
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.include <bsd.obj.mk>
++.MAIN:		all
++.endif
++
++.PHONY:		cleankmod kmodinstall load unload
++realinstall:	kmodinstall
++clean cleandir distclean: cleankmod
++
++S?=		/sys
++KERN=		$S/kern
++
++CFLAGS+=	${COPTS} -D_KERNEL -D_LKM -I. -I${.CURDIR} -I$S -I$S/arch
++
++DPSRCS+=	${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
++CLEANFILES+=	${DPSRCS}
++.if defined(YHEADER)
++CLEANFILES+=	${SRCS:M*.y:.y=.h}
++.endif
++
++OBJS+=		${SRCS:N*.h:N*.sh:R:S/$/.o/g}
++
++.if !defined(PROG)
++PROG=	${KMOD}.o
++.endif
++
++${PROG}: ${DPSRCS} ${OBJS} ${DPADD}
++	${LD} -r ${LDFLAGS} -o tmp.o ${OBJS}
++	mv tmp.o ${.TARGET}
++
++.if	!defined(MAN)
++MAN=	${KMOD}.4
++.endif
++
++all: machine-links ${PROG}
++
++.PHONY:	machine-links
++beforedepend: machine-links
++machine-links:
++	-rm -f machine && \
++	    ln -s $S/arch/${MACHINE}/include machine
++	-rm -f ${MACHINE_ARCH} && \
++	    ln -s $S/arch/${MACHINE_ARCH}/include ${MACHINE_ARCH}
++CLEANFILES+=machine ${MACHINE_ARCH}
++
++cleankmod:
++	rm -f a.out [Ee]rrs mklog core *.core \
++		${PROG} ${OBJS} ${LOBJS} ${CLEANFILES}
++
++#
++# define various install targets
++#
++.if !target(kmodinstall)
++kmodinstall:: ${DESTDIR}${KMODDIR}/${PROG}
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${KMODDIR}/${PROG}
++.endif
++.if !defined(BUILD)
++${DESTDIR}${KMODDIR}/${PROG}: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${KMODDIR}/${PROG}
++${DESTDIR}${KMODDIR}/${PROG}: ${PROG}
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${KMODOWN} -g ${KMODGRP} \
++		-m ${KMODMODE} ${.ALLSRC} ${.TARGET}
++.endif
++
++lint: ${LOBJS}
++.if defined(LOBJS) && !empty(LOBJS)
++	${LINT} ${LINTFLAGS} ${LDFLAGS:M-L*} ${LOBJS} ${LDADD}
++.endif
++
++.if !target(load)
++load:	${PROG}
++	/sbin/modload -o ${KMOD} -e${KMOD}_lkmentry ${PROG}
++.endif
++
++.if !target(unload)
++unload: ${PROG}
++	/sbin/modunload -n ${KMOD}
++.endif
++
++.include <bsd.man.mk>
++.include <bsd.links.mk>
++.include <bsd.dep.mk>
++.include <bsd.sys.mk>
++
++.-include "machine/Makefile.inc"
+--- pmake-1.111.orig/mk/bsd.lib.mk
++++ pmake-1.111/mk/bsd.lib.mk
+@@ -0,0 +1,396 @@
++#	$NetBSD: bsd.lib.mk,v 1.152 1999/03/30 09:30:43 fair Exp $
++#	@(#)bsd.lib.mk	8.3 (Berkeley) 4/22/94
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.include <bsd.obj.mk>
++.MAIN:		all
++.endif
++
++.PHONY:		checkver cleanlib libinstall
++realinstall:	checkver libinstall
++clean cleandir distclean: cleanlib
++
++.if exists(${.CURDIR}/shlib_version)
++SHLIB_MAJOR != . ${.CURDIR}/shlib_version ; echo $$major
++SHLIB_MINOR != . ${.CURDIR}/shlib_version ; echo $$minor
++
++# Check for higher installed library versions.
++.if !defined(NOCHECKVER) && !defined(NOCHECKVER_${LIB}) && \
++	exists(${BSDSRCDIR}/lib/checkver)
++checkver:
++	@(cd ${.CURDIR} && \
++		${BSDSRCDIR}/lib/checkver -d ${DESTDIR}${LIBDIR} ${LIB})
++.else
++checkver:
++.endif
++.else
++checkver:
++.endif
++
++# add additional suffixes not exported.
++# .po is used for profiling object files.
++# .so is used for PIC object files.
++.SUFFIXES: .out .a .ln .so .po .o .s .S .c .cc .C .m .F .f .r .y .l .cl .p .h
++.SUFFIXES: .sh .m4 .m
++
++
++# Set PICFLAGS to cc flags for producing position-independent code,
++# if not already set.  Includes -DPIC, if required.
++
++# Data-driven table using make variables to control  how shared libraries
++# are built for different platforms and object formats.
++# OBJECT_FMT:		currently either "ELF" or "a.out", from <bsd.own.mk>
++# SHLIB_SOVERSION:  	version number to be compiled into a shared library
++#                    	via -soname. Usualy ${SHLIB_MAJOR} on ELF.
++#   			NetBSD/pmax used to use ${SHLIB_MAJOR}.{SHLIB-MINOR}.
++# SHLIB_SHFLAGS:	Flags to tell ${LD} to emit  shared library.
++#			with ELF, also set shared-lib version for ld.so.
++# SHLIB_LDSTARTFILE:	support .o file, call C++ file-level constructors
++# SHLIB_LDENDFILE:	support .o file, call C++ file-level destructors
++# CPPICFLAGS:	flags for ${CPP} to preprocess  .[sS]  files for ${AS}
++# CPICFLAGS:	flags for ${CC} to compile  .[cC] files to .so objects.
++# CAPICFLAGS	flags for {$CC} to compiling .[Ss] files
++#		 	(usually just ${CPPPICFLAGS} ${CPICFLAGS})
++# APICFLAGS:	flags for ${AS} to assemble .[sS]  to .so objects.
++
++.if ${MACHINE_ARCH} == "alpha"
++		# Alpha-specific shared library flags
++CPICFLAGS ?= -fpic -DPIC
++CPPPICFLAGS?= -DPIC 
++CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS}
++APICFLAGS ?=
++.elif ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb"
++		# mips-specific shared library flags
++
++# On mips, all libs need to be compiled with ABIcalls, not just sharedlibs.
++CPICFLAGS?=
++APICFLAGS?=
++#CPICFLAGS?= -fpic -DPIC
++#APICFLAGS?= -DPIC
++
++# so turn shlib PIC flags on for ${CPP}, ${CC}, and ${AS} as follows:
++AINC+=-DPIC -DABICALLS
++COPTS+=	-fPIC ${AINC}
++AFLAGS+= -fPIC
++AS+=	-KPIC
++
++.elif ${MACHINE_ARCH} == "sparc" && ${OBJECT_FMT} == "ELF"
++
++CPICFLAGS ?= -fpic -DPIC
++CPPPICFLAGS?= -DPIC 
++CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS}
++APICFLAGS ?= -KPIC
++
++.elif (${MACHINE} == "debian")
++
++SHLIB_TYPE=ELF
++SHLIB_LDSTARTFILE=
++SHLIB_LDENDFILE=
++SHLIB_SOVERSION=${SHLIB_MAJOR}
++CPICFLAGS ?= -fPIC -DPIC
++CPPPICFLAGS?= -DPIC
++CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS}
++APICFLAGS ?=
++
++.else
++
++# Platform-independent flags for NetBSD a.out shared libraries (and PowerPC)
++SHLIB_LDSTARTFILE=
++SHLIB_LDENDFILE=
++SHLIB_SHFLAGS=
++SHLIB_SOVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}
++CPICFLAGS?= -fpic -DPIC
++CPPPICFLAGS?= -DPIC 
++CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS}
++APICFLAGS?= -k
++
++.endif
++
++# Platform-independent linker flags for ELF shared libraries
++.if ${OBJECT_FMT} == "ELF"
++SHLIB_SOVERSION=${SHLIB_MAJOR}
++SHLIB_SHFLAGS=-soname lib${LIB}.so.${SHLIB_SOVERSION}
++SHLIB_LDSTARTFILE= ${DESTDIR}/usr/lib/crtbeginS.o
++SHLIB_LDENDFILE= ${DESTDIR}/usr/lib/crtendS.o
++.endif
++
++CFLAGS+=	${COPTS}
++
++.c.o:
++	@echo ${COMPILE.c:Q} ${.IMPSRC}
++	@${COMPILE.c} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.c.po:
++	@echo ${COMPILE.c:Q} -pg ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.c} -pg ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.c.so:
++	@echo ${COMPILE.c:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.c} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.c.ln:
++	${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC}
++
++.cc.o .C.o:
++	@echo ${COMPILE.cc:Q} ${.IMPSRC}
++	@${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.cc.po .C.po:
++	@echo ${COMPILE.cc:Q} -pg ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.cc} -pg ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.cc.so .C.so:
++	@echo ${COMPILE.cc:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.cc} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.m.o:
++	@echo ${COMPILE.m:Q} ${.IMPSRC}
++	@${COMPILE.m} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.m.po:
++	@echo ${COMPILE.m:Q} -pg ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.m} -pg ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.m.so:
++	@echo ${COMPILE.m:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.m} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.S.o .s.o:
++	@echo ${COMPILE.S:Q} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC}
++	@${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.S.po .s.po:
++	@echo ${COMPILE.S:Q} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.S} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.S.so .s.so:
++	@echo ${COMPILE.S:Q} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.S} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.if ${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \
++	|| ${MKLINKLIB} != "no"
++_LIBS=lib${LIB}.a
++.else
++_LIBS=
++.endif
++
++.if ${MKPROFILE} != "no"
++_LIBS+=lib${LIB}_p.a
++.endif
++
++.if ${MKPIC} != "no"
++_LIBS+=lib${LIB}_pic.a
++.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR)
++_LIBS+=lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
++.endif
++.endif
++
++.if ${MKLINT} != "no" && ${MKLINKLIB} != "no"
++_LIBS+=llib-l${LIB}.ln
++.endif
++
++all: ${SRCS} ${_LIBS}
++
++__archivebuild: .USE
++	@rm -f ${.TARGET}
++	@${AR} cq ${.TARGET} `NM=${NM} ${LORDER} ${.ALLSRC:M*o} | ${TSORT}`
++	${RANLIB} ${.TARGET}
++
++__archiveinstall: .USE
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${LIBOWN} -g ${LIBGRP} \
++		-m 600 ${.ALLSRC} ${.TARGET}
++	${RANLIB} -t ${.TARGET}
++	chmod ${LIBMODE} ${.TARGET}
++
++DPSRCS+=	${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
++CLEANFILES+=	${DPSRCS}
++.if defined(YHEADER)
++CLEANFILES+=	${SRCS:M*.y:.y=.h}
++.endif
++
++OBJS+=		${SRCS:N*.h:N*.sh:R:S/$/.o/g}
++lib${LIB}.a:: ${OBJS} __archivebuild
++	@echo building standard ${LIB} library
++
++POBJS+=		${OBJS:.o=.po}
++lib${LIB}_p.a:: ${POBJS} __archivebuild
++	@echo building profiled ${LIB} library
++
++SOBJS+=		${OBJS:.o=.so}
++lib${LIB}_pic.a:: ${SOBJS} __archivebuild
++	@echo building shared object ${LIB} library
++
++lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: lib${LIB}_pic.a ${DPADD} \
++    ${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE}
++	@echo building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\)
++	@rm -f lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
++.if defined(DESTDIR)
++	$(CC) -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \
++	    ${SHLIB_LDSTARTFILE} \
++	    -Wl,--whole-archive lib${LIB}_pic.a \
++	    -nostdlib -L${DESTDIR}${LIBDIR} -R${LIBDIR} \
++	    -Wl,--no-whole-archive ${LDADD} \
++	    ${SHLIB_LDENDFILE}
++.else
++	$(CC) -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \
++	    ${SHLIB_LDSTARTFILE} \
++	    -Wl,--whole-archive lib${LIB}_pic.a -Wl,--no-whole-archive ${LDADD} \
++	    ${SHLIB_LDENDFILE}
++.endif
++.if ${OBJECT_FMT} == "ELF"
++	rm -f lib${LIB}.so.${SHLIB_MAJOR}
++	ln -s lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
++	    lib${LIB}.so.${SHLIB_MAJOR}
++	rm -f lib${LIB}.so
++	ln -s lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
++	    lib${LIB}.so
++.endif
++
++LOBJS+=		${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln}
++LLIBS?=		-lc
++llib-l${LIB}.ln: ${LOBJS}
++	@echo building llib-l${LIB}.ln
++	@rm -f llib-l${LIB}.ln
++	@${LINT} -C${LIB} ${.ALLSRC} ${LLIBS}
++
++cleanlib:
++	rm -f a.out [Ee]rrs mklog core *.core ${CLEANFILES}
++	rm -f lib${LIB}.a ${OBJS}
++	rm -f lib${LIB}_p.a ${POBJS}
++	rm -f lib${LIB}_pic.a lib${LIB}.so.* lib${LIB}.so ${SOBJS}
++	rm -f llib-l${LIB}.ln ${LOBJS}
++
++.if defined(SRCS)
++afterdepend: .depend
++	@(TMP=/tmp/_depend$$$$; \
++	    sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so \1.ln:/' \
++	      < .depend > $$TMP; \
++	    mv $$TMP .depend)
++.endif
++
++.if !target(libinstall)
++# Make sure it gets defined, in case MKPIC==no && MKLINKLIB==no
++libinstall::
++
++.if ${MKLINKLIB} != "no"
++libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.a
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.a
++.endif
++.if !defined(BUILD)
++${DESTDIR}${LIBDIR}/lib${LIB}.a: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.a
++${DESTDIR}${LIBDIR}/lib${LIB}.a: lib${LIB}.a __archiveinstall
++.endif
++
++.if ${MKPROFILE} != "no"
++libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a
++.endif
++.if !defined(BUILD)
++${DESTDIR}${LIBDIR}/lib${LIB}_p.a: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a
++${DESTDIR}${LIBDIR}/lib${LIB}_p.a: lib${LIB}_p.a __archiveinstall
++.endif
++
++.if ${MKPIC} != "no" && ${MKPICINSTALL} != "no"
++libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a
++.endif
++.if !defined(BUILD)
++${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a
++${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: lib${LIB}_pic.a __archiveinstall
++.endif
++
++.if ${MKPIC} != "no" && defined(SHLIB_MAJOR) && defined(SHLIB_MINOR)
++libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
++.endif
++.if !defined(BUILD)
++${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
++${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${LIBOWN} -g ${LIBGRP} \
++		-m ${LIBMODE} ${.ALLSRC} ${.TARGET}
++.if ${OBJECT_FMT} == "a.out" && !defined(DESTDIR)
++	/sbin/ldconfig -m ${LIBDIR}
++.endif
++.if ${OBJECT_FMT} == "ELF"
++	rm -f ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}
++	ln -s lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
++	    ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}
++	rm -f ${DESTDIR}${LIBDIR}/lib${LIB}.so
++.if ${MKLINKLIB} != "no"
++	ln -s lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
++	    ${DESTDIR}${LIBDIR}/lib${LIB}.so
++.endif
++.endif
++.endif
++
++.if ${MKLINT} != "no" && ${MKLINKLIB} != "no"
++libinstall:: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln
++.endif
++.if !defined(BUILD)
++${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln
++${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: llib-l${LIB}.ln
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${LIBOWN} -g ${LIBGRP} \
++		-m ${LIBMODE} ${.ALLSRC} ${DESTDIR}${LINTLIBDIR}
++.endif
++.endif
++
++.include <bsd.man.mk>
++.include <bsd.nls.mk>
++.include <bsd.files.mk>
++.include <bsd.inc.mk>
++.include <bsd.links.mk>
++.include <bsd.dep.mk>
++.include <bsd.sys.mk>
++
++# Make sure all of the standard targets are defined, even if they do nothing.
++lint regress:
+--- pmake-1.111.orig/mk/bsd.links.mk
++++ pmake-1.111/mk/bsd.links.mk
+@@ -0,0 +1,43 @@
++#	$NetBSD: bsd.links.mk,v 1.8 1998/12/31 15:28:52 castor Exp $
++
++.PHONY:		linksinstall
++realinstall:	linksinstall
++
++.if defined(SYMLINKS) && !empty(SYMLINKS)
++linksinstall::
++	@set ${SYMLINKS}; \
++	 while test $$# -ge 2; do \
++		l=$$1; \
++		shift; \
++		t=${DESTDIR}$$1; \
++		shift; \
++		echo ".include <bsd.own.mk>"; \
++		echo "all:: $$t"; \
++		echo ".PHONY: $$t"; \
++		echo "$$t:"; \
++		echo "	@echo \"$$t -> $$l\""; \
++		echo "	@rm -f $$t"; \
++		echo "	@ln -s $$l $$t"; \
++	done | ${MAKE} -f-
++.endif
++.if defined(LINKS) && !empty(LINKS)
++linksinstall::
++	@set ${LINKS}; \
++	 while test $$# -ge 2; do \
++		l=${DESTDIR}$$1; \
++		shift; \
++		t=${DESTDIR}$$1; \
++		shift; \
++		echo ".include <bsd.own.mk>"; \
++		echo "all:: $$t"; \
++		echo ".PHONY: $$t"; \
++		echo "$$t:"; \
++		echo "	@echo \"$$t -> $$l\""; \
++		echo "	@rm -f $$t"; \
++		echo "	@ln $$l $$t"; \
++	done | ${MAKE} -f-
++.endif
++
++.if !target(linksinstall)
++linksinstall:
++.endif
+--- pmake-1.111.orig/mk/bsd.man.mk
++++ pmake-1.111/mk/bsd.man.mk
+@@ -0,0 +1,156 @@
++#	$NetBSD: bsd.man.mk,v 1.45 1999/02/13 16:34:39 christos Exp $
++#	@(#)bsd.man.mk	8.1 (Berkeley) 6/8/93
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.include <bsd.obj.mk>
++.MAIN:		all
++.endif
++
++.PHONY:		catinstall maninstall catpages manpages catlinks manlinks cleanman
++.if ${MKMAN} != "no"
++realinstall:	${MANINSTALL}
++.endif
++cleandir distclean: cleanman
++
++MANTARGET?=	cat
++NROFF?=		nroff
++TBL?=		tbl
++
++.SUFFIXES: .1 .2 .3 .4 .5 .6 .7 .8 .9 \
++	   .cat1 .cat2 .cat3 .cat4 .cat5 .cat6 .cat7 .cat8 .cat9
++
++.9.cat9 .8.cat8 .7.cat7 .6.cat6 .5.cat5 .4.cat4 .3.cat3 .2.cat2 .1.cat1:
++.if !defined(USETBL)
++	@echo "${NROFF} -mandoc ${.IMPSRC} > ${.TARGET}"
++	@${NROFF} -mandoc ${.IMPSRC} > ${.TARGET} || \
++	 (rm -f ${.TARGET}; false)
++.else
++	@echo "${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET}"
++	@${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET} || \
++	 (rm -f ${.TARGET}; false)
++.endif
++
++.if defined(MAN) && !empty(MAN)
++MANPAGES=	${MAN}
++CATPAGES=	${MANPAGES:C/(.*).([1-9])/\1.cat\2/}
++.endif
++
++MINSTALL=	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${MANOWN} \
++			-g ${MANGRP} -m ${MANMODE}
++
++.if defined(MANZ)
++# chown and chmod are done afterward automatically
++MCOMPRESS=	gzip -9cf
++MCOMPRESSSUFFIX= .gz
++.endif
++
++catinstall: catlinks
++maninstall: manlinks
++
++__installpage: .USE
++.if defined(MCOMPRESS) && !empty(MCOMPRESS)
++	@rm -f ${.TARGET}
++	${MCOMPRESS} ${.ALLSRC} > ${.TARGET}
++	@chown ${MANOWN}:${MANGRP} ${.TARGET}
++	@chmod ${MANMODE} ${.TARGET}
++.else
++	${MINSTALL} ${.ALLSRC} ${.TARGET}
++.endif
++
++
++# Rules for cat'ed man page installation
++.if defined(CATPAGES) && !empty(CATPAGES) && ${MKCATPAGES} != "no"
++.   for P in ${CATPAGES}
++catpages:: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}
++
++.	if !defined(UPDATE)
++.PHONY: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}
++.	endif
++.	if !defined(BUILD)
++${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: .MADE
++.	endif
++
++.PRECIOUS: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}
++${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: ${P} __installpage
++.   endfor
++.else
++catpages::
++.endif
++
++# Rules for source page installation
++.if defined(MANPAGES) && !empty(MANPAGES)
++.   for P in ${MANPAGES}
++manpages:: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}
++.	if !defined(UPDATE)
++.PHONY: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}
++.	endif
++
++.PRECIOUS: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}
++${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}: ${P} __installpage
++.   endfor
++.else
++manpages::
++.endif
++
++.if ${MKCATPAGES} != "no"
++catlinks: catpages
++.if defined(MLINKS) && !empty(MLINKS)
++	@set ${MLINKS}; \
++	while test $$# -ge 2; do \
++		name=$$1; \
++		shift; \
++		dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \
++		l=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \
++		name=$$1; \
++		shift; \
++		dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \
++		t=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \
++		if [ -z "${UPDATE}" -o ! -f $$t ]; then \
++		    echo $$t -\> $$l; \
++		    ln -sf $$l $$t; \
++		fi; \
++	done
++.endif
++.else
++catlinks:
++.endif
++
++manlinks: manpages
++.if defined(MLINKS) && !empty(MLINKS)
++	@set ${MLINKS}; \
++	while test $$# -ge 2; do \
++		name=$$1; \
++		shift; \
++		dir=${DESTDIR}${MANDIR}/man$${name##*.}; \
++		l=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \
++		name=$$1; \
++		shift; \
++		dir=${DESTDIR}${MANDIR}/man$${name##*.}; \
++		t=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \
++		if [ -z "${UPDATE}" -o ! -f $$t ]; then \
++		    echo $$t -\> $$l; \
++		    ln -sf $$l $$t; \
++		fi; \
++	done
++.endif
++
++.if defined(CATPAGES)
++.if ${MKCATPAGES} != "no" && ${MKMAN} != "no"
++all: ${CATPAGES}
++.else
++all:
++.endif
++
++cleanman:
++	rm -f ${CATPAGES}
++.else
++cleanman:
++.endif
++
++# Make sure all of the standard targets are defined, even if they do nothing.
++clean depend includes lint regress tags:
+--- pmake-1.111.orig/mk/bsd.nls.mk
++++ pmake-1.111/mk/bsd.nls.mk
+@@ -0,0 +1,64 @@
++#	$NetBSD: bsd.nls.mk,v 1.17 1999/02/12 12:38:45 lukem Exp $
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++
++.MAIN:		all
++.endif
++.PHONY:		cleannls nlsinstall
++.if ${MKNLS} != "no"
++realinstall:	nlsinstall
++.endif
++cleandir distclean: cleannls
++
++.SUFFIXES: .cat .msg
++
++.msg.cat:
++	@rm -f ${.TARGET}
++	gencat ${.TARGET} ${.IMPSRC}
++
++.if defined(NLS) && !empty(NLS)
++NLSALL= ${NLS:.msg=.cat}
++.endif
++
++.if !defined(NLSNAME)
++.if defined(PROG)
++NLSNAME=${PROG}
++.else
++NLSNAME=lib${LIB}
++.endif
++.endif
++
++.if defined(NLSALL)
++.if ${MKNLS} != "no"
++all: ${NLSALL}
++.endif
++
++cleannls:
++	rm -f ${NLSALL}
++
++.for F in ${NLSALL}
++nlsinstall:: ${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat
++.endif
++.if !defined(BUILD)
++${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat
++${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat: ${F}
++	${INSTALL} -d ${.TARGET:H}
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${NLSOWN} -g ${NLSGRP} \
++		-m ${NLSMODE} ${.ALLSRC} ${.TARGET}
++.endfor
++.else
++cleannls:
++.endif
++
++.if !target(nlsinstall)
++nlsinstall::
++.endif
+--- pmake-1.111.orig/mk/bsd.obj.mk
++++ pmake-1.111/mk/bsd.obj.mk
+@@ -0,0 +1,54 @@
++#	$NetBSD: bsd.obj.mk,v 1.17 1999/02/12 04:13:26 lukem Exp $
++
++.if !target(__initialized_obj__)
++__initialized_obj__:
++.include <bsd.own.mk>
++.endif
++
++.if ${MKOBJ} == "no"
++obj:
++.else
++
++.if defined(OBJMACHINE)
++__objdir=	obj.${MACHINE}
++.else
++__objdir=	obj
++.endif
++
++.if defined(USR_OBJMACHINE)
++__usrobjdir=	${BSDOBJDIR}.${MACHINE}
++__usrobjdirpf=	
++.else
++__usrobjdir=	${BSDOBJDIR}
++.if defined(OBJMACHINE)
++__usrobjdirpf=	.${MACHINE}
++.else
++__usrobjdirpf=
++.endif
++.endif
++
++obj:
++	@cd ${.CURDIR}; rm -f ${__objdir} > /dev/null 2>&1 || true; \
++	here=`/bin/pwd`; subdir=$${here#${BSDSRCDIR}/}; \
++	if test $$here != $$subdir ; then \
++		dest=${__usrobjdir}/$$subdir${__usrobjdirpf} ; \
++		echo "$$here/${__objdir} -> $$dest"; \
++		rm -rf ${__objdir}; \
++		ln -s $$dest ${__objdir}; \
++		if test -d ${__usrobjdir} -a ! -d $$dest; then \
++			mkdir -p $$dest; \
++		else \
++			true; \
++		fi; \
++	else \
++		true ; \
++		dest=$$here/${__objdir} ; \
++		if test ! -d ${__objdir} ; then \
++			echo "making $$dest" ; \
++			mkdir $$dest; \
++		fi ; \
++	fi;
++.endif
++
++print-objdir:
++	@echo ${.OBJDIR}
+--- pmake-1.111.orig/mk/bsd.own.mk
++++ pmake-1.111/mk/bsd.own.mk
+@@ -0,0 +1,245 @@
++#	$NetBSD: bsd.own.mk,v 1.120 1999/02/24 14:42:36 drochner Exp $
++
++.if !defined(_BSD_OWN_MK_)
++_BSD_OWN_MK_=1
++
++.if defined(MAKECONF) && exists(${MAKECONF})
++.include "${MAKECONF}"
++.elif exists(/etc/mk.conf)
++.include "/etc/mk.conf"
++.endif
++
++# Defining `SKEY' causes support for S/key authentication to be compiled in.
++SKEY=		yes
++# Defining `KERBEROS' causes support for Kerberos authentication to be
++# compiled in.
++#KERBEROS=	yes
++# Defining 'KERBEROS5' causes support for Kerberos5 authentication to be
++# compiled in.
++#KERBEROS5=	yes
++
++# where the system object and source trees are kept; can be configurable
++# by the user in case they want them in ~/foosrc and ~/fooobj, for example
++BSDSRCDIR?=	/usr/src
++BSDOBJDIR?=	/usr/obj
++
++BINGRP?=	root
++BINOWN?=	root
++BINMODE?=	755
++NONBINMODE?=	644
++
++# Define MANZ to have the man pages compressed (gzip)
++MANZ=		1
++
++MANDIR?=	/usr/share/man
++MANGRP?=	root
++MANOWN?=	root
++MANMODE?=	${NONBINMODE}
++MANINSTALL?=	maninstall catinstall
++
++INFODIR?=	/usr/share/info
++INFOGRP?=	root
++INFOOWN?=	root
++INFOMODE?=	${NONBINMODE}
++
++LIBDIR?=	/usr/lib
++LINTLIBDIR?=	/usr/libdata/lint
++LIBGRP?=	${BINGRP}
++LIBOWN?=	${BINOWN}
++LIBMODE?=	${NONBINMODE}
++
++DOCDIR?=        /usr/share/doc
++DOCGRP?=	root
++DOCOWN?=	root
++DOCMODE?=       ${NONBINMODE}
++
++NLSDIR?=	/usr/share/nls
++NLSGRP?=	root
++NLSOWN?=	root
++NLSMODE?=	${NONBINMODE}
++
++KMODDIR?=	/usr/lkm
++KMODGRP?=	root
++KMODOWN?=	root
++KMODMODE?=	${NONBINMODE}
++
++COPY?=		-c
++.if defined(UPDATE)
++PRESERVE?=	-p
++.else
++PRESERVE?=
++.endif
++RENAME?=
++STRIPFLAG?=	-s
++
++# Define SYS_INCLUDE to indicate whether you want symbolic links to the system
++# source (``symlinks''), or a separate copy (``copies''); (latter useful
++# in environments where it's not possible to keep /sys publicly readable)
++#SYS_INCLUDE= 	symlinks
++
++# XXX The next two are temporary until the transition to UVM is complete.
++
++# Systems on which UVM is the standard VM system.
++.if ${MACHINE} != "pica"
++UVM?=		yes
++.endif
++
++# Systems that use UVM's new pmap interface.
++.if ${MACHINE} == "alpha" || \
++    ${MACHINE} == "i386" || \
++    ${MACHINE} == "pc532" || \
++    ${MACHINE} == "vax"
++PMAP_NEW?=	yes
++.endif
++
++# Data-driven table using make variables to control how 
++# toolchain-dependent targets and shared libraries are built
++# for different platforms and object formats.
++# OBJECT_FMT:		currently either "ELF" or "a.out".
++# SHLIB_TYPE:		"ELF" or "a.out" or "" to force static libraries.
++#
++#.if ${MACHINE_ARCH} == "alpha" || \
++#    ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \
++#    ${MACHINE_ARCH} == "powerpc" || \
++#    ${MACHINE_ARCH} == "sparc64"
++#OBJECT_FMT?=ELF
++#.else
++
++# On Debian GNU/Linux, Everything is ELF.
++OBJECT_FMT?=a.out
++#.endif
++
++# GNU sources and packages sometimes see architecture names differently.
++# This table maps an architecture name to its GNU counterpart.
++# Use as so:  ${GNU_ARCH.${TARGET_ARCH}} or ${MACHINE_GNU_ARCH}
++GNU_ARCH.alpha=alpha
++GNU_ARCH.arm32=arm
++GNU_ARCH.i386=i386
++GNU_ARCH.m68k=m68k
++GNU_ARCH.mipseb=mipseb
++GNU_ARCH.mipsel=mipsel
++GNU_ARCH.ns32k=ns32k
++GNU_ARCH.powerpc=powerpc
++GNU_ARCH.sparc=sparc
++GNU_ARCH.sparc64=sparc
++GNU_ARCH.vax=vax
++.if ${MACHINE_ARCH} == "mips"
++.INIT:
++	@echo Must set MACHINE_ARCH to one of mipseb or mipsel
++	@false
++.endif
++
++.if ${MACHINE_ARCH} == "sparc64"
++MACHINE_GNU_ARCH=${MACHINE_ARCH}
++.else
++MACHINE_GNU_ARCH=${GNU_ARCH.${MACHINE_ARCH}}
++.endif
++
++TARGETS+=	all clean cleandir depend distclean includes install lint obj \
++		regress tags
++.PHONY:		all clean cleandir depend distclean includes install lint obj \
++		regress tags beforedepend afterdepend beforeinstall \
++		afterinstall realinstall
++
++# set NEED_OWN_INSTALL_TARGET, if it's not already set, to yes
++# this is used by bsd.pkg.mk to stop "install" being defined
++NEED_OWN_INSTALL_TARGET?=	yes
++
++.if ${NEED_OWN_INSTALL_TARGET} == "yes"
++.if !target(install)
++install:	.NOTMAIN beforeinstall subdir-install realinstall afterinstall
++beforeinstall:	.NOTMAIN
++subdir-install:	.NOTMAIN beforeinstall
++realinstall:	.NOTMAIN beforeinstall
++afterinstall:	.NOTMAIN subdir-install realinstall
++.endif
++.endif
++
++# Define MKxxx variables (which are either yes or no) for users
++# to set in /etc/mk.conf and override on the make commandline.
++# These should be tested with `== "no"' or `!= "no"'.
++# The NOxxx variables should only be used by Makefiles.
++#
++
++MKCATPAGES?=no
++
++.if defined(NODOC)
++MKDOC=no
++#.elif !defined(MKDOC)
++#MKDOC=yes
++.else
++MKDOC?=yes
++.endif
++
++MKINFO?=yes
++
++.if defined(NOLINKLIB)
++MKLINKLIB=no
++.else
++MKLINKLIB?=yes
++.endif
++.if ${MKLINKLIB} == "no"
++MKPICINSTALL=no
++MKPROFILE=no
++.endif
++
++.if defined(NOLINT)
++MKLINT=no
++.else
++MKLINT?=yes
++.endif
++
++.if defined(NOMAN)
++MKMAN=no
++.else
++MKMAN?=yes
++.endif
++.if ${MKMAN} == "no"
++MKCATPAGES=no
++.endif
++
++.if defined(NONLS)
++MKNLS=no
++.else
++MKNLS?=yes
++.endif
++
++.if defined(NOOBJ)
++MKOBJ=no
++.else
++MKOBJ?=yes
++.endif
++
++.if defined(NOPIC)
++MKPIC=no
++.else
++MKPIC?=yes
++.endif
++
++.if defined(NOPICINSTALL)
++MKPICINSTALL=no
++.else
++MKPICINSTALL?=yes
++.endif
++
++.if defined(NOPROFILE)
++MKPROFILE=no
++.else
++MKPROFILE?=yes
++.endif
++
++.if defined(NOSHARE)
++MKSHARE=no
++.else
++MKSHARE?=yes
++.endif
++.if ${MKSHARE} == "no"
++MKCATPAGES=no
++MKDOC=no
++MKINFO=no
++MKMAN=no
++MKNLS=no
++.endif
++
++
++.endif		# _BSD_OWN_MK_
+--- pmake-1.111.orig/mk/bsd.prog.mk
++++ pmake-1.111/mk/bsd.prog.mk
+@@ -0,0 +1,202 @@
++#	$NetBSD: bsd.prog.mk,v 1.100 1999/02/12 01:10:08 lukem Exp $
++#	@(#)bsd.prog.mk	8.2 (Berkeley) 4/2/94
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.include <bsd.obj.mk>
++.MAIN:		all
++.endif
++
++.PHONY:		cleanprog proginstall scriptsinstall
++realinstall:	proginstall scriptsinstall
++clean cleandir distclean: cleanprog
++
++CFLAGS+=	${COPTS}
++
++# ELF platforms depend on crtbegin.o and crtend.o
++.if ${OBJECT_FMT} == "ELF"
++LIBCRTBEGIN?=	${DESTDIR}/usr/lib/crtbegin.o
++LIBCRTEND?=	${DESTDIR}/usr/lib/crtend.o
++.else
++LIBCRTBEGIN?=
++LIBCRTEND?=
++.endif
++
++LIBCRT0?=	
++
++LIBBZ2?=	${DESTDIR}/usr/lib/libbz2.a
++LIBC?=		${DESTDIR}/usr/lib/libc.a
++LIBC_PIC?=	${DESTDIR}/usr/lib/libc_pic.a
++LIBCOMPAT?=	${DESTDIR}/usr/lib/libcompat.a
++LIBCRYPT?=	${DESTDIR}/usr/lib/libcrypt.a
++LIBCURSES?=	${DESTDIR}/usr/lib/libcurses.a
++LIBDBM?=	${DESTDIR}/usr/lib/libdbm.a
++LIBDES?=	${DESTDIR}/usr/lib/libdes.a
++LIBEDIT?=	${DESTDIR}/usr/lib/libedit.a
++LIBGCC?=	${DESTDIR}/usr/lib/libgcc.a
++LIBGNUMALLOC?=	${DESTDIR}/usr/lib/libgnumalloc.a
++LIBKDB?=	${DESTDIR}/usr/lib/libkdb.a
++LIBKRB?=	${DESTDIR}/usr/lib/libkrb.a
++LIBKVM?=	${DESTDIR}/usr/lib/libkvm.a
++LIBL?=		${DESTDIR}/usr/lib/libl.a
++LIBM?=		${DESTDIR}/usr/lib/libm.a
++LIBMP?=		${DESTDIR}/usr/lib/libmp.a
++LIBNTP?=	${DESTDIR}/usr/lib/libntp.a
++LIBOBJC?=	${DESTDIR}/usr/lib/libobjc.a
++LIBPC?=		${DESTDIR}/usr/lib/libpc.a
++LIBPCAP?=	${DESTDIR}/usr/lib/libpcap.a
++LIBPLOT?=	${DESTDIR}/usr/lib/libplot.a
++LIBPOSIX?=	${DESTDIR}/usr/lib/libposix.a
++LIBRESOLV?=	${DESTDIR}/usr/lib/libresolv.a
++LIBRPCSVC?=	${DESTDIR}/usr/lib/librpcsvc.a
++LIBSKEY?=	${DESTDIR}/usr/lib/libskey.a
++LIBTERMCAP?=	${DESTDIR}/usr/lib/libtermcap.a
++LIBTELNET?=	${DESTDIR}/usr/lib/libtelnet.a
++LIBUTIL?=	${DESTDIR}/usr/lib/libutil.a
++LIBWRAP?=	${DESTDIR}/usr/lib/libwrap.a
++LIBY?=		${DESTDIR}/usr/lib/liby.a
++LIBZ?=		${DESTDIR}/usr/lib/libz.a
++
++.if defined(SHAREDSTRINGS)
++CLEANFILES+=strings
++.c.o:
++	${CC} -E ${CFLAGS} ${.IMPSRC} | xstr -c -
++	@${CC} ${CFLAGS} -c x.c -o ${.TARGET}
++	@rm -f x.c
++
++.cc.o:
++	${CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c -
++	@mv -f x.c x.cc
++	@${CXX} ${CXXFLAGS} -c x.cc -o ${.TARGET}
++	@rm -f x.cc
++
++.C.o:
++	${CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c -
++	@mv -f x.c x.C
++	@${CXX} ${CXXFLAGS} -c x.C -o ${.TARGET}
++	@rm -f x.C
++.endif
++
++
++.if defined(PROG)
++SRCS?=		${PROG}.c
++
++DPSRCS+=	${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
++CLEANFILES+=	${DPSRCS}
++.if defined(YHEADER)
++CLEANFILES+=	${SRCS:M*.y:.y=.h}
++.endif
++
++.if !empty(SRCS:N*.h:N*.sh)
++OBJS+=		${SRCS:N*.h:N*.sh:R:S/$/.o/g}
++LOBJS+=		${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln}
++.endif
++
++.if defined(OBJS) && !empty(OBJS)
++.NOPATH: ${OBJS}
++.if defined(DESTDIR)
++
++${PROG}: ${LIBCRT0} ${DPSRCS} ${OBJS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD}
++	${CC} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} -nostdlib -L${DESTDIR}/usr/lib ${LIBCRT0} ${LIBCRTBEGIN} ${OBJS} ${LDADD} -lgcc -lc -lgcc ${LIBCRTEND}
++
++.else
++
++${PROG}: ${LIBCRT0} ${DPSRCS} ${OBJS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD}
++	${CC} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} ${OBJS} ${LDADD}
++
++.endif	# defined(DESTDIR)
++.endif	# defined(OBJS) && !empty(OBJS)
++
++.if !defined(MAN)
++MAN=	${PROG}.1
++.endif	# !defined(MAN)
++.endif	# defined(PROG)
++
++all: ${PROG}
++
++cleanprog:
++	rm -f a.out [Ee]rrs mklog core *.core \
++	    ${PROG} ${OBJS} ${LOBJS} ${CLEANFILES}
++
++.if defined(SRCS)
++afterdepend: .depend
++	@(TMP=/tmp/_depend$$$$; \
++	    sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.ln:/' \
++	      < .depend > $$TMP; \
++	    mv $$TMP .depend)
++.endif
++
++.if defined(PROG) && !target(proginstall)
++PROGNAME?= ${PROG}
++proginstall:: ${DESTDIR}${BINDIR}/${PROGNAME}
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${BINDIR}/${PROGNAME}
++.endif
++.if !defined(BUILD)
++${DESTDIR}${BINDIR}/${PROGNAME}: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${BINDIR}/${PROGNAME}
++${DESTDIR}${BINDIR}/${PROGNAME}: ${PROG}
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${STRIPFLAG} -o ${BINOWN} \
++	    -g ${BINGRP} -m ${BINMODE} ${.ALLSRC} ${.TARGET}
++.endif
++
++.if !target(proginstall)
++proginstall::
++.endif
++
++.if defined(SCRIPTS) && !target(scriptsinstall)
++SCRIPTSDIR?=${BINDIR}
++SCRIPTSOWN?=${BINOWN}
++SCRIPTSGRP?=${BINGRP}
++SCRIPTSMODE?=${BINMODE}
++.for S in ${SCRIPTS}
++SCRIPTSDIR_${S}?=${SCRIPTSDIR}
++SCRIPTSOWN_${S}?=${SCRIPTSOWN}
++SCRIPTSGRP_${S}?=${SCRIPTSGRP}
++SCRIPTSMODE_${S}?=${SCRIPTSMODE}
++.if defined(SCRIPTSNAME)
++SCRIPTSNAME_${S} ?= ${SCRIPTSNAME}
++.else
++SCRIPTSNAME_${S} ?= ${S:T:R}
++.endif
++SCRIPTSDIR_${S} ?= ${SCRIPTSDIR}
++scriptsinstall:: ${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}}
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}}
++.endif
++.if !defined(BUILD)
++${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}}: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}}
++${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}}: ${S}
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${SCRIPTSOWN_${S}} -g \
++	    ${SCRIPTSGRP_${S}} -m ${SCRIPTSMODE_${S}} ${.ALLSRC} ${.TARGET}
++.endfor
++.endif
++
++.if !target(scriptsinstall)
++scriptsinstall::
++.endif
++
++lint: ${LOBJS}
++.if defined(LOBJS) && !empty(LOBJS)
++	${LINT} ${LINTFLAGS} ${LDFLAGS:M-L*} ${LOBJS} ${LDADD}
++.endif
++
++.include <bsd.man.mk>
++.include <bsd.nls.mk>
++.include <bsd.files.mk>
++.include <bsd.inc.mk>
++.include <bsd.links.mk>
++.include <bsd.dep.mk>
++.include <bsd.sys.mk>
++
++# Make sure all of the standard targets are defined, even if they do nothing.
++regress:
+--- pmake-1.111.orig/mk/bsd.subdir.mk
++++ pmake-1.111/mk/bsd.subdir.mk
+@@ -0,0 +1,34 @@
++#	$NetBSD: bsd.subdir.mk,v 1.31 1999/02/11 05:01:39 tv Exp $
++#	@(#)bsd.subdir.mk	8.1 (Berkeley) 6/8/93
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.MAIN:		all
++.endif
++
++.for dir in ${SUBDIR}
++.if exists(${dir}.${MACHINE})
++__REALSUBDIR+=${dir}.${MACHINE}
++.else
++__REALSUBDIR+=${dir}
++.endif
++.endfor
++
++.for dir in ${__REALSUBDIR}
++.for targ in ${TARGETS}
++.PHONY: ${targ}-${dir}
++${targ}-${dir}: .MAKE
++	@echo "${targ} ===> ${_THISDIR_}${dir}"
++	@cd ${.CURDIR}/${dir}; \
++	${MAKE} "_THISDIR_=${_THISDIR_}${dir}/" ${targ}
++subdir-${targ}: ${targ}-${dir}
++${targ}: subdir-${targ}
++.endfor
++.endfor
++
++# Make sure all of the standard targets are defined, even if they do nothing.
++${TARGETS}:
+--- pmake-1.111.orig/mk/bsd.sys.mk
++++ pmake-1.111/mk/bsd.sys.mk
+@@ -0,0 +1,110 @@
++#	$NetBSD: bsd.sys.mk,v 1.34 1999/01/31 09:17:20 mrg Exp $
++#
++# Overrides used for NetBSD source tree builds.
++
++.if defined(WARNS) && ${WARNS} == 1
++CFLAGS+= -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith
++.endif
++.if !defined(NOGCCERROR)
++CFLAGS+= -Werror
++.endif
++CFLAGS+= ${CWARNFLAGS}
++
++.if defined(DESTDIR)
++CPPFLAGS+= -nostdinc -idirafter ${DESTDIR}/usr/include
++LINTFLAGS+= -d ${DESTDIR}/usr/include
++.endif
++
++.if defined(AUDIT)
++CPPFLAGS+= -D__AUDIT__
++.endif
++
++# Helpers for cross-compiling
++HOST_CC?=	cc
++HOST_CFLAGS?=	-O
++HOST_COMPILE.c?=${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} -c
++HOST_LINK.c?=	${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} ${HOST_LDFLAGS}
++
++HOST_CPP?=	cpp
++HOST_CPPFLAGS?=
++
++HOST_LD?=	ld
++HOST_LDFLAGS?=
++
++STRIPPROG?=	strip
++
++
++.SUFFIXES:	.m .o .ln .lo
++
++# Objective C
++# (Defined here rather than in <sys.mk> because `.m' is not just
++#  used for Objective C source)
++.m:
++	${LINK.m} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.m.o:
++	${COMPILE.m} ${.IMPSRC}
++
++# Host-compiled C objects
++.c.lo:
++	${HOST_COMPILE.c} -o ${.TARGET} ${.IMPSRC}
++
++
++.if defined(PARALLEL) || defined(LPREFIX)
++LPREFIX?=yy
++LFLAGS+=-P${LPREFIX}
++# Lex
++.l:
++	${LEX.l} -o${.TARGET:R}.${LPREFIX}.c ${.IMPSRC}
++	${LINK.c} -o ${.TARGET} ${.TARGET:R}.${LPREFIX}.c ${LDLIBS} -ll
++	rm -f ${.TARGET:R}.${LPREFIX}.c
++.l.c:
++	${LEX.l} -o${.TARGET} ${.IMPSRC}
++.l.o:
++	${LEX.l} -o${.TARGET:R}.${LPREFIX}.c ${.IMPSRC}
++	${COMPILE.c} -o ${.TARGET} ${.TARGET:R}.${LPREFIX}.c 
++	rm -f ${.TARGET:R}.${LPREFIX}.c
++.l.lo:
++	${LEX.l} -o${.TARGET:R}.${LPREFIX}.c ${.IMPSRC}
++	${HOST_COMPILE.c} -o ${.TARGET} ${.TARGET:R}.${LPREFIX}.c 
++	rm -f ${.TARGET:R}.${LPREFIX}.c
++.endif
++
++# Yacc
++.if defined(YHEADER) || defined(YPREFIX)
++.if defined(YPREFIX)
++YFLAGS+=-p${YPREFIX}
++.endif
++.if defined(YHEADER)
++YFLAGS+=-d
++.endif
++.y:
++	${YACC.y} -b ${.TARGET:R} ${.IMPSRC}
++	${LINK.c} -o ${.TARGET} ${.TARGET:R}.tab.c ${LDLIBS}
++	rm -f ${.TARGET:R}.tab.c ${.TARGET:R}.tab.h
++.y.h: ${.TARGET:R}.c
++.y.c:
++	${YACC.y} -o ${.TARGET} ${.IMPSRC}
++.y.o:
++	${YACC.y} -b ${.TARGET:R} ${.IMPSRC}
++	${COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c
++	rm -f ${.TARGET:R}.tab.c ${TARGET:R}.tab.h
++.y.lo:
++	${YACC.y} -b ${.TARGET:R} ${.IMPSRC}
++	${HOST_COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c
++	rm -f ${.TARGET:R}.tab.c ${TARGET:R}.tab.h
++.elif defined(PARALLEL)
++.y:
++	${YACC.y} -b ${.TARGET:R} ${.IMPSRC}
++	${LINK.c} -o ${.TARGET} ${.TARGET:R}.tab.c ${LDLIBS}
++	rm -f ${.TARGET:R}.tab.c
++.y.c:
++	${YACC.y} -o ${.TARGET} ${.IMPSRC}
++.y.o:
++	${YACC.y} -b ${.TARGET:R} ${.IMPSRC}
++	${COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c
++	rm -f ${.TARGET:R}.tab.c
++.y.lo:
++	${YACC.y} -b ${.TARGET:R} ${.IMPSRC}
++	${HOST_COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c
++	rm -f ${.TARGET:R}.tab.c
++.endif
+--- pmake-1.111.orig/mk/sys.mk
++++ pmake-1.111/mk/sys.mk
+@@ -0,0 +1,207 @@
++#	$NetBSD: sys.mk,v 1.54 1999/03/10 14:06:14 mycroft Exp $
++#	@(#)sys.mk	8.2 (Berkeley) 3/21/94
++
++unix?=		We run Debian GNU.
++
++.SUFFIXES: .out .a .ln .o .s .S .c .cc .C .F .f .r .y .l .cl .p .h .sh .m4
++
++.LIBS:		.a
++
++AR?=		ar
++ARFLAGS?=	rl
++RANLIB?=	ranlib
++
++AS?=		as
++AFLAGS?=
++COMPILE.s?=	${CC} ${AFLAGS} -c
++LINK.s?=	${CC} ${AFLAGS} ${LDFLAGS}
++COMPILE.S?=	${CC} ${AFLAGS} ${CPPFLAGS} -c -traditional-cpp
++LINK.S?=	${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
++
++CC?=		cc
++.if ${MACHINE_ARCH} == "alpha" || \
++    ${MACHINE_ARCH} == "arm32" || \
++    ${MACHINE_ARCH} == "i386" || \
++    ${MACHINE_ARCH} == "m68k" || \
++    ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \
++    ${MACHINE_ARCH} == "sparc"
++CFLAGS?=	-O2
++.else
++CFLAGS?=	-O
++.endif
++COMPILE.c?=	${CC} ${CFLAGS} ${CPPFLAGS} -c
++LINK.c?=	${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
++
++CXX?=		c++
++CXXFLAGS?=	${CFLAGS}
++COMPILE.cc?=	${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
++LINK.cc?=	${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
++
++OBJC?=		${CC}
++OBJCFLAGS?=	${CFLAGS}
++COMPILE.m?=	${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c
++LINK.m?=	${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS}
++
++CPP?=		cpp
++CPPFLAGS?=	
++
++FC?=		f77
++FFLAGS?=	-O
++RFLAGS?=
++COMPILE.f?=	${FC} ${FFLAGS} -c
++LINK.f?=	${FC} ${FFLAGS} ${LDFLAGS}
++COMPILE.F?=	${FC} ${FFLAGS} ${CPPFLAGS} -c
++LINK.F?=	${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
++COMPILE.r?=	${FC} ${FFLAGS} ${RFLAGS} -c
++LINK.r?=	${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
++
++INSTALL?=	install
++
++LEX?=		lex
++LFLAGS?=
++LEX.l?=		${LEX} ${LFLAGS}
++
++LD?=		ld
++LDFLAGS?=
++
++LINT?=		lint
++LINTFLAGS?=	-chapbxzF
++
++LORDER?=	lorder
++
++MAKE?=		pmake
++
++NM?=		nm
++
++PC?=		pc
++PFLAGS?=
++COMPILE.p?=	${PC} ${PFLAGS} ${CPPFLAGS} -c
++LINK.p?=	${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
++
++SHELL?=		sh
++
++SIZE?=		size
++
++TSORT?= 	tsort
++
++YACC?=		yacc
++YFLAGS?=
++YACC.y?=	${YACC} ${YFLAGS}
++
++# C
++.c:
++	${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.c.o:
++	${COMPILE.c} ${.IMPSRC}
++.c.a:
++	${COMPILE.c} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++.c.ln:
++	${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC}
++
++# C++
++.cc:
++	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.cc.o:
++	${COMPILE.cc} ${.IMPSRC}
++.cc.a:
++	${COMPILE.cc} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++
++.C:
++	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.C.o:
++	${COMPILE.cc} ${.IMPSRC}
++.C.a:
++	${COMPILE.cc} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++
++# Fortran/Ratfor
++.f:
++	${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.f.o:
++	${COMPILE.f} ${.IMPSRC}
++.f.a:
++	${COMPILE.f} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++
++.F:
++	${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.F.o:
++	${COMPILE.F} ${.IMPSRC}
++.F.a:
++	${COMPILE.F} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++
++.r:
++	${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.r.o:
++	${COMPILE.r} ${.IMPSRC}
++.r.a:
++	${COMPILE.r} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++
++# Pascal
++.p:
++	${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.p.o:
++	${COMPILE.p} ${.IMPSRC}
++.p.a:
++	${COMPILE.p} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++
++# Assembly
++.s:
++	${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.s.o:
++	${COMPILE.s} ${.IMPSRC}
++.s.a:
++	${COMPILE.s} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++.S:
++	${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.S.o:
++	${COMPILE.S} ${.IMPSRC}
++.S.a:
++	${COMPILE.S} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++
++# Lex
++.l:
++	${LEX.l} ${.IMPSRC}
++	${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
++	rm -f lex.yy.c
++.l.c:
++	${LEX.l} ${.IMPSRC}
++	mv lex.yy.c ${.TARGET}
++.l.o:
++	${LEX.l} ${.IMPSRC}
++	${COMPILE.c} -o ${.TARGET} lex.yy.c 
++	rm -f lex.yy.c
++
++# Yacc
++.y:
++	${YACC.y} ${.IMPSRC}
++	${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
++	rm -f y.tab.c
++.y.c:
++	${YACC.y} ${.IMPSRC}
++	mv y.tab.c ${.TARGET}
++.y.o:
++	${YACC.y} ${.IMPSRC}
++	${COMPILE.c} -o ${.TARGET} y.tab.c
++	rm -f y.tab.c
++
++# Shell
++.sh:
++	rm -f ${.TARGET}
++	cp ${.IMPSRC} ${.TARGET}
package/pmake/pmake-110_mkdep.patch new file +230 -0

230 lines not on this page · raw message

package/pmake/pmake-120_fixes.patch new file +266 -0

146 lines not on this page · raw message

package/pmake/pmake-130_maxpathlen.patch new file +39 -0
new file mode 100644
index 0000000..fa8fd5f

Lines of this file are not shown. View the raw message.

package/pmake/pmake-140_multiarch.patch new file +354 -0

354 lines not on this page · raw message

package/pmake/pmake-150_mktemp.patch new file +31 -0
new file mode 100644
index 0000000..5ccb2a8

Lines of this file are not shown. View the raw message.

package/pmake/pmake.mk new file +46 -0

46 lines not on this page · raw message

The rest of this diff is not shown. View the raw message.

Signature · 1 line
1.7.2.5

Part of the diff is not shown here. View the raw message.

#3 lore raw

PATCH 2/7 package/pmake: add host pmake

Quoted 11 lines · Yann E. MORIN

pmake is the make command used by the BSD.
It will used to build BSD-related packages, coming later.

---
  package/pmake/pmake-100_mk.patch         | 2624 ++++++++++++++++++++++++++++++
  package/pmake/pmake-110_mkdep.patch      |  230 +++
  package/pmake/pmake-120_fixes.patch      |  266 +++
  package/pmake/pmake-130_maxpathlen.patch |   39 +
  package/pmake/pmake-140_multiarch.patch  |  354 ++++
  package/pmake/pmake-150_mktemp.patch     |   31 +

Can't these patches be downloaded with PMAKE_PATCH?

Regards,
Arnout

Quoted 1 line
  package/pmake/pmake.mk                   |   46 +
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#4 lore raw

PATCH 2/7 package/pmake: add host pmake

Arnout, All,

Quoted 13 lines · On Wednesday 30 January 2013 08:52:53 Arnout Vandecappelle wrote:
Quoted 11 lines · Yann E. MORIN

pmake is the make command used by the BSD.
It will used to build BSD-related packages, coming later.

---
  package/pmake/pmake-100_mk.patch         | 2624 ++++++++++++++++++++++++++++++
  package/pmake/pmake-110_mkdep.patch      |  230 +++
  package/pmake/pmake-120_fixes.patch      |  266 +++
  package/pmake/pmake-130_maxpathlen.patch |   39 +
  package/pmake/pmake-140_multiarch.patch  |  354 ++++
  package/pmake/pmake-150_mktemp.patch     |   31 +
Quoted 1 line

Can't these patches be downloaded with PMAKE_PATCH?

How much I'd like to! But no, the patches are in the -debian.tar.gz archive:

    http://snapshot.debian.org/archive/debian/20120601T033558Z/pool/main/p/pmake/pmake_1.111-3.2.debian.tar.gz
which contains:
    $ tar tzf pmake_1.111-3.2.debian.tar.gz |sort
    debian/
    debian/changelog
    debian/compat
    debian/control
    debian/copyright
    debian/patches/
    debian/patches/100_mk.diff
    debian/patches/110_mkdep.diff
    debian/patches/120_fixes.diff
    debian/patches/130_maxpathlen.diff
    debian/patches/140_multiarch.diff
    debian/patches/150_mktemp.diff
    debian/patches/series
    debian/rules
    debian/source/
    debian/source/format

And the generic infrastructure does not allow to extract an archive to get patches from.

Alternatively, we could use the post-patches hook to get the patches from the archive, and apply them; but then, we'd need to be able to download this archive, and AFAIK, the package infrastructure does not allow downloading more than one archive for a package, although it might be possible to extend PKG_SOURCE to include more than one file to download (but then, which should be extracted?).

Maybe we could add a PKG_EXTRA_SOURCES, which is a space-separated files which get downloaded. Then, a post-download hook could do whatever is needed with those files; or they can be extracted as sub-dir in the package's directory. Finally, a post-extract or/and post-patch hooks can do whatever is needed.

But I'm not too fond of this, as it makes the package infrastructure even more complex, just for the sake of not bundling a few (big) patches for a package that will probably not change in the forseeable future (pmake has not seen any change in Debian for the past 18 months).

But we could bump the Debian snapshot date to a more recent one, which still contains stuff last changed 2011-09-22:

    http://snapshot.debian.org/archive/debian/20130130T095609Z/pool/main/p/pmake/

(except for the hurd package that was assembled in 2012).

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +0/33 662376056 | Software  Designer | \ / CAMPAIGN     |   ^                |
| --==< O_o >==-- '------------.-------:  X  AGAINST      |  /e\  There is no  |
| http://ymorin.is-a-geek.org/ | (*_*) | / \ HTML MAIL    |  """  conspiracy.  |
'------------------------------'-------'------------------'--------------------'
#5 lore raw

PATCH 2/7 package/pmake: add host pmake

Dear Yann E. MORIN,

Quoted 9 lines · Yann E. MORIN

And the generic infrastructure does not allow to extract an archive to get patches from.

Alternatively, we could use the post-patches hook to get the patches from the archive, and apply them; but then, we'd need to be able to download this archive, and AFAIK, the package infrastructure does not allow downloading more than one archive for a package, although it might be possible to extend PKG_SOURCE to include more than one file to download (but then, which should be extracted?).

We have several packages on which we apply the Debian patches. At least argus and cvs comes to mind.

Basically, what we do is:

ARGUS_PATCH = argus_$(ARGUS_VERSION)-1.diff.gz

This ensures that the Debian patch is applied, which means that the files debian/patches/<blabla>.patch are created (but not applied). And then we do:

define ARGUS_DEBIAN_PATCH_APPLY

        if [ -d $(@D)/debian/patches ]; then \
                support/scripts/apply-patches.sh $(@D) $(@D)/debian/patches \*.patch; \
        fi

endef

ARGUS_POST_PATCH_HOOKS += ARGUS_DEBIAN_PATCH_APPLY

To actually apply those patches.

Best regards,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#6 lore raw

PATCH 2/7 package/pmake: add host pmake

Thomas, All,

Quoted 3 lines · On Wednesday 30 January 2013 14:24:42 Thomas Petazzoni wrote:
Quoted 2 lines · Yann E. MORIN

And the generic infrastructure does not allow to extract an archive to get patches from.

[--SNIP--]

Quoted 6 lines

We have several packages on which we apply the Debian patches. At least argus and cvs comes to mind.

Basically, what we do is:

ARGUS_PATCH = argus_$(ARGUS_VERSION)-1.diff.gz

[--SNIP--]

Quoted 1 line

To actually apply those patches.

Indeed, that was informational. Thanks! :-)

Unfortunately, for pmake, the Debian "patch" does not come as a patch, but as a tarball to be extracted in the pmake source dir. So, using:

    PMAKE_DEB_VER = -3.2-debian
    PMAKE_PATCH   = pmake_$(PMAKE_VERSION)$(PMAKE_DEB_VER).tar.gz

will not work, as this is not a patch. :-(

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +0/33 662376056 | Software  Designer | \ / CAMPAIGN     |   ^                |
| --==< O_o >==-- '------------.-------:  X  AGAINST      |  /e\  There is no  |
| http://ymorin.is-a-geek.org/ | (*_*) | / \ HTML MAIL    |  """  conspiracy.  |
'------------------------------'-------'------------------'--------------------'
#7 lore raw

PATCH 2/7 package/pmake: add host pmake

Dear Yann E. MORIN,

Quoted 7 lines · Yann E. MORIN

Unfortunately, for pmake, the Debian "patch" does not come as a patch, but as a tarball to be extracted in the pmake source dir. So, using:

    PMAKE_DEB_VER = -3.2-debian
    PMAKE_PATCH   = pmake_$(PMAKE_VERSION)$(PMAKE_DEB_VER).tar.gz

will not work, as this is not a patch. :-(

Argh, indeed. Those Debian people are really crazy. For some packages they have a .orig.tar.gz + a .diff.gz that applies as a patch on top of it, and for some other packages they have the .orig.tar.gz + a tarball with the Debian specific files. What a mess...

What about:

PMAKE_PATCH = \
http://patch-tracker.debian.org/patch/series/dl/pmake/1.111-3.2/100_mk.diff \
http://patch-tracker.debian.org/patch/series/dl/pmake/1.111-3.2/110_mkdep.diff \
http://patch-tracker.debian.org/patch/series/dl/pmake/1.111-3.2/120_fixes.diff \
http://patch-tracker.debian.org/patch/series/dl/pmake/1.111-3.2/130_maxpathlen.diff \
http://patch-tracker.debian.org/patch/series/dl/pmake/1.111-3.2/140_multiarch.diff \
http://patch-tracker.debian.org/patch/series/dl/pmake/1.111-3.2/150_mktemp.diff

Note that this requires the possibility of getting patches from a different site than the tarball, but J?r?me Pouiller has submitted a patch that makes this possible, see "[PATCH] Add support for plain URL in $(PKG)_PATCH variable".

Best regards,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#8 lore raw

PATCH 2/7 package/pmake: add host pmake

Thomas, All,

Quoted 24 lines · On Wednesday 30 January 2013 Thomas Petazzoni wrote:
Quoted 7 lines · Yann E. MORIN

Unfortunately, for pmake, the Debian "patch" does not come as a patch, but as a tarball to be extracted in the pmake source dir. So, using:

    PMAKE_DEB_VER = -3.2-debian
    PMAKE_PATCH   = pmake_$(PMAKE_VERSION)$(PMAKE_DEB_VER).tar.gz

will not work, as this is not a patch. :-(

Argh, indeed. Those Debian people are really crazy. For some packages they have a .orig.tar.gz + a .diff.gz that applies as a patch on top of it, and for some other packages they have the .orig.tar.gz + a tarball with the Debian specific files. What a mess...

What about:

 PMAKE_PATCH = \
   http://patch-tracker.debian.org/patch/series/dl/pmake/1.111-3.2/100_mk.diff \
   http://patch-tracker.debian.org/patch/series/dl/pmake/1.111-3.2/110_mkdep.diff \
   http://patch-tracker.debian.org/patch/series/dl/pmake/1.111-3.2/120_fixes.diff \
   http://patch-tracker.debian.org/patch/series/dl/pmake/1.111-3.2/130_maxpathlen.diff \
   http://patch-tracker.debian.org/patch/series/dl/pmake/1.111-3.2/140_multiarch.diff \
   http://patch-tracker.debian.org/patch/series/dl/pmake/1.111-3.2/150_mktemp.diff
Quoted 4 lines

Note that this requires the possibility of getting patches from a different site than the tarball, but J?r?me Pouiller has submitted a patch that makes this possible, see "[PATCH] Add support for plain URL in $(PKG)_PATCH variable".

Indeed, that looks waaaayyyy better. :-)

I'll include that multi-patch cset in my series, and repush, then.

Thank you! :-)

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#9 lore raw

PATCH 2/7 package/pmake: add host pmake

In reply to Yann E. MORIN
Quoted 40 lines · Yann E. MORIN

Arnout, All,

Quoted 13 lines · On Wednesday 30 January 2013 08:52:53 Arnout Vandecappelle wrote:
Quoted 11 lines · Yann E. MORIN

pmake is the make command used by the BSD.
It will used to build BSD-related packages, coming later.

---
   package/pmake/pmake-100_mk.patch         | 2624 ++++++++++++++++++++++++++++++
   package/pmake/pmake-110_mkdep.patch      |  230 +++
   package/pmake/pmake-120_fixes.patch      |  266 +++
   package/pmake/pmake-130_maxpathlen.patch |   39 +
   package/pmake/pmake-140_multiarch.patch  |  354 ++++
   package/pmake/pmake-150_mktemp.patch     |   31 +
Quoted 1 line

Can't these patches be downloaded with PMAKE_PATCH?

How much I'd like to! But no, the patches are in the -debian.tar.gz archive:

     http://snapshot.debian.org/archive/debian/20120601T033558Z/pool/main/p/pmake/pmake_1.111-3.2.debian.tar.gz
which contains:
     $ tar tzf pmake_1.111-3.2.debian.tar.gz |sort
     debian/
     debian/changelog
     debian/compat
     debian/control
     debian/copyright
     debian/patches/
     debian/patches/100_mk.diff
     debian/patches/110_mkdep.diff
     debian/patches/120_fixes.diff
     debian/patches/130_maxpathlen.diff
     debian/patches/140_multiarch.diff
     debian/patches/150_mktemp.diff
     debian/patches/series
     debian/rules
     debian/source/
     debian/source/format
Quoted 2 lines

And the generic infrastructure does not allow to extract an archive to get patches from.

Doesn't it? It seems to work for liblockfile...

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#10 lore raw

PATCH 2/7 package/pmake: add host pmake

Dear Arnout Vandecappelle,

Quoted 1 line · Arnout Vandecappelle

Doesn't it? It seems to work for liblockfile...

Does it really work properly?

In the past, a tarball was directly fed into patch, which was finding some patch contents and that's it. Since then, the apply-patches.sh script has been reworked to properly apply the patches within a tarball, but I don't think it applies patches that are contained in a debian/patches/ directory.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#11 lore raw

PATCH 2/7 package/pmake: add host pmake

Thomas, Arnout, All,

Quoted 6 lines · On Wednesday 30 January 2013 Thomas Petazzoni wrote:

Dear Arnout Vandecappelle,

Quoted 1 line · Arnout Vandecappelle

Doesn't it? It seems to work for liblockfile...

Quoted 7 lines

Does it really work properly?

In the past, a tarball was directly fed into patch, which was finding some patch contents and that's it. Since then, the apply-patches.sh script has been reworked to properly apply the patches within a tarball, but I don't think it applies patches that are contained in a debian/patches/ directory.

Ah, I missed that. Indeed it works.

What happens (eek! apply-patches.sh is hard to read) is that, if a patch is neamd like a tarball, it is extracted in a temp dir, and that temp dir is scanned as if it was passed as arg to apply-patches.sh:

---8<---
elif echo "$i" | grep -q -E "\.tar(\..*)?$|\.tbz2?$|\.tgz$" ; then

    unpackedarchivedir="$builddir/.patches-$(basename $i)-unpacked"
    rm -rf "$unpackedarchivedir" 2> /dev/null
    mkdir "$unpackedarchivedir"
    tar -C "$unpackedarchivedir" -xaf "${path}/$i"
    scan_patchdir "$unpackedarchivedir"

---8<---

So, yes, it works. Yet, I still find it a bit ugly (but less so than I initially suspected). And it is not documented.

Should this be considered a feature? Can we rely on it?

If so, then I'll update the doc accordingly.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#12 lore raw

PATCH 2/7 package/pmake: add host pmake

Quoted 17 lines · Yann E. MORIN

Thomas, Arnout, All,

Quoted 6 lines · On Wednesday 30 January 2013 Thomas Petazzoni wrote:

Dear Arnout Vandecappelle,

Quoted 1 line · Arnout Vandecappelle

Doesn't it? It seems to work for liblockfile...

Quoted 7 lines

Does it really work properly?

In the past, a tarball was directly fed into patch, which was finding some patch contents and that's it. Since then, the apply-patches.sh script has been reworked to properly apply the patches within a tarball, but I don't think it applies patches that are contained in a debian/patches/ directory.

Quoted 5 lines

Ah, I missed that. Indeed it works.

What happens (eek! apply-patches.sh is hard to read) is that, if a patch is neamd like a tarball, it is extracted in a temp dir, and that temp dir is scanned as if it was passed as arg to apply-patches.sh:

It's scanned recursively, even.

And it uses the series file, if present.

Quoted 8 lines

---8<---
elif echo "$i" | grep -q -E "\.tar(\..*)?$|\.tbz2?$|\.tgz$" ; then

     unpackedarchivedir="$builddir/.patches-$(basename $i)-unpacked"
     rm -rf "$unpackedarchivedir" 2> /dev/null
     mkdir "$unpackedarchivedir"
     tar -C "$unpackedarchivedir" -xaf "${path}/$i"
     scan_patchdir "$unpackedarchivedir"
Quoted 8 lines

---8<---

So, yes, it works. Yet, I still find it a bit ugly (but less so than I initially suspected). And it is not documented.

Should this be considered a feature? Can we rely on it?

If so, then I'll update the doc accordingly.

I seem to remember that support for tar and a series file was added for
exactly this purpose.

In terms of ugliness: is there an alternative? Except not relying on
Debian patches, of course... I was going to say: you could try the Gentoo version, but that one is actually using the Debian patches too :-)

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#13 lore raw

PATCH 2/7 package/pmake: add host pmake

Arnout, All,

Quoted 7 lines · On Wednesday 30 January 2013 Arnout Vandecappelle wrote:
Quoted 3 lines · Yann E. MORIN

What happens (eek! apply-patches.sh is hard to read) is that, if a patch is neamd like a tarball, it is extracted in a temp dir, and that temp dir is scanned as if it was passed as arg to apply-patches.sh:

It's scanned recursively, even.
And it uses the series file, if present.

Yes.

Quoted 7 lines
Quoted 4 lines

So, yes, it works. Yet, I still find it a bit ugly (but less so than I initially suspected). And it is not documented.
Should this be considered a feature? Can we rely on it?
If so, then I'll update the doc accordingly.

I seem to remember that support for tar and a series file was added for
exactly this purpose.

It was part of the 'extensa directory overlay' support:

    ebb049593653f51475ca255445058a70a373fb62
Quoted 3 lines

In terms of ugliness: is there an alternative? Except not relying on
Debian patches, of course... I was going to say: you could try the Gentoo version, but that one is actually using the Debian patches too :-)

Hey! I just said it was ugly. I never said it was not needed. ;-)

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#14 lore raw

PATCH 2/7 package/pmake: add host pmake

In reply to Arnout Vandecappelle

Arnout, All,

Quoted 41 lines · On Wednesday 30 January 2013 Arnout Vandecappelle wrote:
Quoted 40 lines · Yann E. MORIN

Arnout, All,

Quoted 13 lines · On Wednesday 30 January 2013 08:52:53 Arnout Vandecappelle wrote:
Quoted 11 lines · Yann E. MORIN

pmake is the make command used by the BSD.
It will used to build BSD-related packages, coming later.

---
   package/pmake/pmake-100_mk.patch         | 2624 ++++++++++++++++++++++++++++++
   package/pmake/pmake-110_mkdep.patch      |  230 +++
   package/pmake/pmake-120_fixes.patch      |  266 +++
   package/pmake/pmake-130_maxpathlen.patch |   39 +
   package/pmake/pmake-140_multiarch.patch  |  354 ++++
   package/pmake/pmake-150_mktemp.patch     |   31 +
Quoted 1 line

Can't these patches be downloaded with PMAKE_PATCH?

How much I'd like to! But no, the patches are in the -debian.tar.gz archive:

     http://snapshot.debian.org/archive/debian/20120601T033558Z/pool/main/p/pmake/pmake_1.111-3.2.debian.tar.gz
which contains:
     $ tar tzf pmake_1.111-3.2.debian.tar.gz |sort
     debian/
     debian/changelog
     debian/compat
     debian/control
     debian/copyright
     debian/patches/
     debian/patches/100_mk.diff
     debian/patches/110_mkdep.diff
     debian/patches/120_fixes.diff
     debian/patches/130_maxpathlen.diff
     debian/patches/140_multiarch.diff
     debian/patches/150_mktemp.diff
     debian/patches/series
     debian/rules
     debian/source/
     debian/source/format
Quoted 4 lines
Quoted 2 lines

And the generic infrastructure does not allow to extract an archive to get patches from.

Doesn't it? It seems to work for liblockfile...

Ah, I see why you "think" it works. Here's the output of the log:

---8<---
support/scripts/apply-patches.sh /home/ymorin/dev/buildroot/O-qemu/build/liblockfile-1.08 /home/ymorin/src liblockfile_1.08-4.debian.tar.bz2 Unsupported format file for changelog, skip it
Unsupported format file for control, skip it

Applying 02-COPYRIGHT.patch using patch:
patching file COPYRIGHT

Applying 04-505851-remove-debug-code.patch using patch:
patching file lockfile.c

Applying 06-493462-dotlockfile.1.patch using patch:
patching file dotlockfile.1

Applying 07-493462-dotlockfile.c.patch using patch:
patching file dotlockfile.c

Applying 09-562937-make-ar-overwrittable.patch using patch:
patching file Makefile.in
Unsupported format file for postinst, skip it Unsupported format file for postinst.nfs, skip it Unsupported format file for postrm, skip it Unsupported format file for prerm.nfs, skip it Unsupported format file for rules, skip it Unsupported format file for shlibs, skip it Unsupported format file for shlibs.nfslock, skip it Unsupported format file for source, skip it

Applying liblockfile-install.patch using patch:
patching file Makefile.in
---8<--

As ytou can see, 'support/scripts/apply-patches.sh' uncompresses the archive because it ends in '.gz', which output a tarball to stdout, and passes this to 'patch', which ignores whatever it does not recognise, but eventually find "some" hunks which it applies:

    case "$patch" in
        *.gz)
        type="gzip"; uncomp="gunzip -dc"; ;;
        [--SNIP--]
    esac
    [--SNIP--]
    ${uncomp} "${path}/$patch" | patch -g0 -p1 -E -d "${builddir}"

So, basically, what's hapenning is that a tarball is used as a patch.

If you want my opinion, this is extremely *dirty*. And is in dire need of be fixed.

You'll excuse me if I refuse to do that on purpose. ;-)

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#15 lore raw

PATCH 3/7 package/libbsd: new package

In reply to Yann E. MORIN
Cc Thomas Petazzoni <[email protected]>
---
 package/Config.in        |    1 +
 package/libbsd/Config.in |   10 ++++++++++
 package/libbsd/libbsd.mk |   21 +++++++++++++++++++++
 3 files changed, 32 insertions(+), 0 deletions(-)
 create mode 100644 package/libbsd/Config.in
 create mode 100644 package/libbsd/libbsd.mk
package/Config.in +1 -0
index e6682fc..a4ecc4f 100644
@@ -541,6 +541,7 @@ source "package/libargtable2/Config.in"
 source "package/argp-standalone/Config.in"
 source "package/boost/Config.in"
 source "package/libatomic_ops/Config.in"
+source "package/libbsd/Config.in"
 source "package/libcap/Config.in"
 source "package/libcap-ng/Config.in"
 source "package/libdaemon/Config.in"
package/libbsd/Config.in new file +10 -0
new file mode 100644
index 0000000..7f2b55a
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_LIBBSD
+	bool "libbsd"
+	help
+	  This library provides useful functions commonly found on BSD
+	  systems, and lacking on others like GNU systems, thus making
+	  it easier to port projects with strong BSD origins, without
+	  needing to embed the same code over and over again on each
+	  project.
+	  
+	  http://libbsd.freedesktop.org/
package/libbsd/libbsd.mk new file +21 -0
new file mode 100644
index 0000000..3af1002
@@ -0,0 +1,21 @@
+#############################################################
+#
+# libbsd
+#
+#############################################################
+
+LIBBSD_VERSION         = 0.4.2
+LIBBSD_SOURCE          = libbsd-$(LIBBSD_VERSION).tar.gz
+LIBBSD_SITE            = http://libbsd.freedesktop.org/releases
+LIBBSD_LICENSE         = BSD-3c MIT
+LIBBSD_LICENSE_FILES   = LICENSE
+
+# man-pages are BSD-4c, so that license only matters
+# if doc is kept in the target rootfs
+ifeq ($(BR2_HAVE_DOCUMENTATION),y)
+LIBBSD_LICENSE        += (libraries), BSD-4c (documentation)
+endif
+
+LIBBSD_INSTALL_STAGING = YES
+
+$(eval $(autotools-package))
Signature · 1 line
1.7.2.5
#16 lore raw

PATCH 4/7 package/libedit2: new package

In reply to Yann E. MORIN
---
 package/Config.in                                  |    1 +
 package/libedit2/Config.in                         |    9 +++
 package/libedit2/libedit2-01-Makefile.patch        |   25 +++++++
 package/libedit2/libedit2-02-el.c-issetugid.patch  |   24 ++++++
 package/libedit2/libedit2-03-el.c-MAXPATHLEN.patch |   40 +++++++++++
 .../libedit2/libedit2-04-readline.h-stdio.patch    |   17 +++++
 .../libedit2/libedit2-08-readline-history.h.patch  |   20 +++++
 .../libedit2/libedit2-10-define_SIZE_T_MAX.patch   |   18 +++++
 .../libedit2/libedit2-12-libedit-Makefile.patch    |   54 ++++++++++++++
 package/libedit2/libedit2-20-fortify.patch         |   23 ++++++
 package/libedit2/libedit2.mk                       |   75 ++++++++++++++++++++
 package/libedit2/libedit2.pc                       |   13 ++++
 12 files changed, 319 insertions(+), 0 deletions(-)
 create mode 100644 package/libedit2/Config.in
 create mode 100644 package/libedit2/libedit2-01-Makefile.patch
 create mode 100644 package/libedit2/libedit2-02-el.c-issetugid.patch
 create mode 100644 package/libedit2/libedit2-03-el.c-MAXPATHLEN.patch
 create mode 100644 package/libedit2/libedit2-04-readline.h-stdio.patch
 create mode 100644 package/libedit2/libedit2-08-readline-history.h.patch
 create mode 100644 package/libedit2/libedit2-10-define_SIZE_T_MAX.patch
 create mode 100644 package/libedit2/libedit2-12-libedit-Makefile.patch
 create mode 100644 package/libedit2/libedit2-20-fortify.patch
 create mode 100644 package/libedit2/libedit2.mk
 create mode 100644 package/libedit2/libedit2.pc
package/Config.in +1 -0
index a4ecc4f..a609a11 100644
@@ -572,6 +572,7 @@ menu "Text and terminal handling"
 source "package/enchant/Config.in"
 source "package/libfribidi/Config.in"
 source "package/icu/Config.in"
+source "package/libedit2/Config.in"
 source "package/libiconv/Config.in"
 source "package/linenoise/Config.in"
 source "package/ncurses/Config.in"
package/libedit2/Config.in new file +9 -0
new file mode 100644
index 0000000..1e7b95d
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_LIBEDIT2
+	bool "libedit2"
+	select BR2_PACKAGE_LIBBSD
+	select BR2_PACKAGE_NCURSES
+	help
+	  The editline library (from BSD) provides generic line editing
+	  and history functions. It slightly resembles GNU readline.
+	  
+	  http://ftp.netbsd.org/pub/NetBSD/NetBSD-release-5-0/src/lib/libedit/
package/libedit2/libedit2-01-Makefile.patch new file +25 -0
new file mode 100644
index 0000000..91645e4
@@ -0,0 +1,25 @@
+ 01-Makefile.diff by Neal H Walfield <[email protected]> and
+ Gergely Nagy <[email protected]>
+
+ Add the necessary includes and other things to the libedit
+ Makefile, so it will compile on GNU systems, with our supplied
+ glue code
+
+ Yann E. MORIN: patch from debian.
+
+--- a/libedit/Makefile
++++ b/libedit/Makefile
+@@ -1,6 +1,13 @@
+ #	$NetBSD: Makefile,v 1.36 2007/05/28 12:06:18 tls Exp $
+ #	@(#)Makefile	8.1 (Berkeley) 6/4/93
+ 
++OS!=	sh -c "case `uname -s` in GNU|GNU/*) echo GNU ;; *) uname -s ;; esac"
++
++.if ${OS} == GNU || ${OS} == Linux
++CFLAGS += -include bsd/bsd.h
++MKLINT=no
++.endif
++
+ USE_SHLIBDIR=	yes
+ 
+ WARNS=	3
package/libedit2/libedit2-02-el.c-issetugid.patch new file +24 -0
new file mode 100644
index 0000000..b060fa4
@@ -0,0 +1,24 @@
+ 02-el.c-issetugid.diff by Gergely Nagy <[email protected]>
+
+ issetugid(2) is not implemented on GNU systems, so #ifdef it out
+
+ Yann E. MORIN: patch from debian.
+
+--- a/libedit/el.c	2008-04-06 02:53:28.000000000 +1100
++++ b/libedit/el.c	2009-06-23 08:51:48.000000000 +1000
+@@ -479,12 +479,14 @@ el_source(EditLine *el, const char *fnam
+ 
+ 	fp = NULL;
+ 	if (fname == NULL) {
+-#ifdef HAVE_ISSETUGID
++#if 1
+ 		static const char elpath[] = "/.editrc";
+ 		char path[MAXPATHLEN];
+ 
++#ifndef __GLIBC__
+ 		if (issetugid())
+ 			return (-1);
++#endif
+ 		if ((ptr = getenv("HOME")) == NULL)
+ 			return (-1);
+ 		if (strlcpy(path, ptr, sizeof(path)) >= sizeof(path))
package/libedit2/libedit2-03-el.c-MAXPATHLEN.patch new file +40 -0
new file mode 100644
index 0000000..aadd36a
@@ -0,0 +1,40 @@
+ 03-el.c-MAXPATHLEN.diff by Gergely Nagy <[email protected]>
+
+ on systems without MAXPATHLEN, allocate memory dynamically
+
+ Yann E. MORIN: patch from debian.
+
+--- a/libedit/el.c	2009-06-23 08:57:04.000000000 +1000
++++ b/libedit/el.c	2009-06-23 08:57:30.000000000 +1000
+@@ -481,7 +481,11 @@ el_source(EditLine *el, const char *fnam
+ 	if (fname == NULL) {
+ #if 1
+ 		static const char elpath[] = "/.editrc";
++#ifdef MAXPATHLEN
+ 		char path[MAXPATHLEN];
++#else
++		char *path;
++#endif
+ 
+ #ifndef __GLIBC__
+ 		if (issetugid())
+@@ -489,10 +493,19 @@ el_source(EditLine *el, const char *fnam
+ #endif
+ 		if ((ptr = getenv("HOME")) == NULL)
+ 			return (-1);
++#ifndef MAXPATHLEN
++                path = (char *)malloc(strlen(ptr) + strlen(elpath) + 10);
++		if (path == NULL)
++			return (-1);
++		/* Always succeeds, since we have enough memory */
++		strcpy(path, ptr);
++		strcat(path, elpath);
++#else
+ 		if (strlcpy(path, ptr, sizeof(path)) >= sizeof(path))
+ 			return (-1);
+ 		if (strlcat(path, elpath, sizeof(path)) >= sizeof(path))
+ 			return (-1);
++#endif
+ 		fname = path;
+ #else
+ 		/*
package/libedit2/libedit2-04-readline.h-stdio.patch new file +17 -0
new file mode 100644
index 0000000..84257b9
@@ -0,0 +1,17 @@
+ 04-readline.h-stdio.diff by Gergely Nagy <[email protected]>
+
+ since readline.h uses types defined in stdio.h, that header should
+ be included
+
+ Yann E. MORIN: patch from debian.
+
+--- a/libedit/readline/readline.h	2008-04-29 16:53:01.000000000 +1000
++++ b/libedit/readline/readline.h	2009-06-23 08:35:58.000000000 +1000
+@@ -31,6 +31,7 @@
+ #ifndef _READLINE_H_
+ #define _READLINE_H_
+ 
++#include <stdio.h>
+ #include <sys/types.h>
+ 
+ /* list of readline stuff supported by editline library's readline wrapper */
package/libedit2/libedit2-08-readline-history.h.patch new file +20 -0
new file mode 100644
index 0000000..f30093f
@@ -0,0 +1,20 @@
+ 08-readline-history.h.diff by Pawel Wiecek <[email protected]>
+ (compatibility with older versions)
+
+ Setting the global variable rl_inhibit_completion to 1 did indeed
+ disable completion, but the invoking key (e.g., <TAB>) was not
+ inserted directly into the input line as it should be.
+ This patch fixes this problem, and also declares rl_inhibit_completion
+ in readline.h for better readline compatibility.
+
+ Yann E. MORIN: patch from debian.
+
+--- a/libedit/readline/Makefile	2003-08-03 19:23:15.000000000 +1000
++++ b/libedit/readline/Makefile	2009-06-23 08:35:58.000000000 +1000
+@@ -10,4 +10,6 @@ INCS=		readline.h
+ INCSDIR=	/usr/include/readline
+ INCSYMLINKS=	readline.h ${INCSDIR}/history.h
+ 
++incinstall:: linksinstall
++
+ .include <bsd.prog.mk>
package/libedit2/libedit2-10-define_SIZE_T_MAX.patch new file +18 -0
new file mode 100644
index 0000000..c8ce262
@@ -0,0 +1,18 @@
+ 10-define_SIZE_T_MAX.diff by Anibal Monsalve Salazar
+ define SIZE_T_MAX as UINT_MAX in limits.h
+
+ Yann E. MORIN: patch from debian.
+
+--- a/libedit/readline.c	2008-04-29 16:53:01.000000000 +1000
++++ a/libedit/readline.c	2008-06-14 23:54:16.000000000 +1000
+@@ -61,6 +61,10 @@ __RCSID("$NetBSD: readline.c,v 1.75 2008
+ #include "readline/readline.h"
+ #include "filecomplete.h"
+ 
++#ifndef SIZE_T_MAX
++#define SIZE_T_MAX UINT_MAX
++#endif
++
+ void rl_prep_terminal(int);
+ void rl_deprep_terminal(void);
+ 
package/libedit2/libedit2-12-libedit-Makefile.patch new file +54 -0

54 lines not on this page · raw message

package/libedit2/libedit2-20-fortify.patch new file +23 -0
new file mode 100644
index 0000000..0a41ce3
@@ -0,0 +1,23 @@
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=488456
+
+Patch by Kees Cook <[email protected]>
+
+Yann E. MORIN: patch from debian.
+
+--- a/libedit/vi.c	2006-10-22 17:48:13.000000000 +1000
++++ b/libedit/vi.c	2009-06-23 08:35:58.000000000 +1000
+@@ -1012,8 +1012,12 @@ vi_histedit(EditLine *el, int c)
+ 	if (fd < 0)
+ 		return CC_ERROR;
+ 	cp = el->el_line.buffer;
+-	write(fd, cp, el->el_line.lastchar - cp +0u);
+-	write(fd, "\n", 1);
++	if (write(fd, cp, el->el_line.lastchar - cp +0u)<0 ||
++	    write(fd, "\n", 1)<0) {
++		close(fd);
++		unlink(tempfile);
++		return CC_ERROR;
++	}
+ 	pid = fork();
+ 	switch (pid) {
+ 	case -1:
package/libedit2/libedit2.mk new file +75 -0

75 lines not on this page · raw message

package/libedit2/libedit2.pc new file +13 -0
new file mode 100644
index 0000000..47ac871
@@ -0,0 +1,13 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: libedit
+Description: Not just a replacement library for libreadline and libhistory.
+Version: 2.11
+Requires: libbsd ncurses
+Requires.private:
+Libs: -L${libdir} -ledit
+Libs.private:
+Cflags: -I${includedir}
Signature · 1 line
1.7.2.5
#17 lore raw

PATCH 5/7 package/ceph: new package

In reply to Yann E. MORIN
---
 package/Config.in                          |    1 +
 package/ceph/Config.in                     |   23 ++++++++++
 package/ceph/ceph-no-envz.patch            |   63 ++++++++++++++++++++++++++++
 package/ceph/ceph-no-getloadavg.patch      |   61 +++++++++++++++++++++++++++
 package/ceph/ceph-no-posix_fallocate.patch |   50 ++++++++++++++++++++++
 package/ceph/ceph.mk                       |   53 +++++++++++++++++++++++
 6 files changed, 251 insertions(+), 0 deletions(-)
 create mode 100644 package/ceph/Config.in
 create mode 100644 package/ceph/ceph-no-envz.patch
 create mode 100644 package/ceph/ceph-no-getloadavg.patch
 create mode 100644 package/ceph/ceph-no-posix_fallocate.patch
 create mode 100644 package/ceph/ceph.mk
package/Config.in +1 -0
index a609a11..a071a5f 100644
@@ -623,6 +623,7 @@ source "package/bind/Config.in"
 source "package/bmon/Config.in"
 source "package/bridge-utils/Config.in"
 source "package/can-utils/Config.in"
+source "package/ceph/Config.in"
 source "package/connman/Config.in"
 source "package/ctorrent/Config.in"
 source "package/conntrack-tools/Config.in"
package/ceph/Config.in new file +23 -0
new file mode 100644
index 0000000..743114e
@@ -0,0 +1,23 @@
+comment "ceph requires C++, largefiles, threads, wide chars"
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
+	depends on !BR2_avr2 && !BR2_microblaze
+
+config BR2_PACKAGE_CEPH
+	bool "ceph"
+	depends on BR2_INSTALL_LIBSTDCPP            # boost
+	depends on BR2_LARGEFILE                    # boost, libnss, util-linux
+	depends on BR2_TOOLCHAIN_HAS_THREADS        # libnss
+	depends on BR2_USE_WCHAR                    # util-linux
+	depends on !BR2_avr32 && !BR2_microblaze    # keyutils
+	select BR2_PACKAGE_BOOST
+	select BR2_PACKAGE_EXPAT
+	select BR2_PACKAGE_KEYUTILS
+	select BR2_PACKAGE_LIBEDIT2
+	select BR2_PACKAGE_LIBNSS
+	select BR2_PACKAGE_UTIL_LINUX
+	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
+	help
+	  Ceph is a distributed object store and file system designed to
+	  provide excellent performance, reliability and scalability.
+	  
+	  http://ceph.com/
package/ceph/ceph-no-envz.patch new file +63 -0

63 lines not on this page · raw message

package/ceph/ceph-no-getloadavg.patch new file +61 -0

61 lines not on this page · raw message

package/ceph/ceph-no-posix_fallocate.patch new file +50 -0

50 lines not on this page · raw message

package/ceph/ceph.mk new file +53 -0

53 lines not on this page · raw message

Signature · 1 line
1.7.2.5
#18 lore raw

PATCH 6/7 package/dtc: new package

In reply to Yann E. MORIN

dtc is the Device Tree Compiler, and manipulates device trees.

Cc Arnout Vandecappelle <[email protected]>

---
Although Arnout suggested to move it out of the libraries sub-menu, I kept it there, as by default, only the library is installed, like it is done for, eg., libcurl.

---
 package/Config.in                          |    1 +
 package/dtc/Config.in                      |    9 +++++++
 package/dtc/dtc-extra_cflags.patch         |   27 ++++++++++++++++++++++
 package/dtc/dtc-separate-lib-install.patch |   28 +++++++++++++++++++++++
 package/dtc/dtc.mk                         |   34 ++++++++++++++++++++++++++++
 5 files changed, 99 insertions(+), 0 deletions(-)
 create mode 100644 package/dtc/Config.in
 create mode 100644 package/dtc/dtc-extra_cflags.patch
 create mode 100644 package/dtc/dtc-separate-lib-install.patch
 create mode 100644 package/dtc/dtc.mk
package/Config.in +1 -0
index a071a5f..f4a331c 100644
@@ -443,6 +443,7 @@ endmenu
 
 menu "Hardware handling"
 source "package/ccid/Config.in"
+source "package/dtc/Config.in"
 source "package/imx-lib/Config.in"
 source "package/lcdapi/Config.in"
 source "package/libaio/Config.in"
package/dtc/Config.in new file +9 -0
new file mode 100644
index 0000000..96225e3
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_DTC
+	bool "dtc"
+	help
+	  The Device Tree Compiler, dtc, takes as input a device-tree in
+	  a given format and outputs a device-tree in another format.
+	  
+	  Note that only the library is installed for now.
+	  
+	  http://git.jdl.com/gitweb/?p=dtc.git  (no home page)
package/dtc/dtc-extra_cflags.patch new file +27 -0
new file mode 100644
index 0000000..9d1882b
@@ -0,0 +1,27 @@
+Makefile: append the CFLAGS to existing ones
+
+Allow the user to pass custom CFLAGS (eg. optimisation flags).
+
+Do not use EXTRA_CFLAGS, append to existing CFLAGS with +=  (Arnout)
+
+Cc: Arnout Vandecappelle <[email protected]>
+Signed-off-by: "Yann E. MORIN" <[email protected]>
+
+---
+Patch not sent upstream.
+
+Although not specific to buildroot, I am not sure this is the best
+way to handle user-supplied CFLAGS.
+
+diff -durN dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef.orig/Makefile dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef/Makefile
+--- dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef.orig/Makefile	2012-10-22 22:02:47.541240846 +0200
++++ dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef/Makefile	2012-10-22 22:03:21.151047833 +0200
+@@ -18,7 +18,7 @@
+ CPPFLAGS = -I libfdt -I .
+ WARNINGS = -Werror -Wall -Wpointer-arith -Wcast-qual -Wnested-externs \
+ 	-Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls
+-CFLAGS = -g -Os -fPIC -Werror $(WARNINGS)
++CFLAGS += -g -Os -fPIC -Werror $(WARNINGS)
+ 
+ BISON = bison
+ LEX = flex
package/dtc/dtc-separate-lib-install.patch new file +28 -0
new file mode 100644
index 0000000..c86d587
@@ -0,0 +1,28 @@
+Makefile: add a rule to only install libfdt
+
+Signed-off-by: "Yann E. MORIN" <[email protected]>
+
+---
+Patch not sent upstream.
+
+It's really specific to buildroot, and is probably not
+good (aka generic) enough to be pushed upstream.
+
+diff --git a/Makefile b/Makefile
+index 1169e6c..39e7190 100644
+--- a/Makefile
++++ b/Makefile
+@@ -160,10 +160,12 @@ endif
+ # intermediate target and building them again "for real"
+ .SECONDARY: $(DTC_GEN_SRCS) $(CONVERT_GEN_SRCS)
+ 
+-install: all $(SCRIPTS)
++install: all $(SCRIPTS) libfdt_install
+ 	@$(VECHO) INSTALL
+ 	$(INSTALL) -d $(DESTDIR)$(BINDIR)
+ 	$(INSTALL) $(BIN) $(SCRIPTS) $(DESTDIR)$(BINDIR)
++
++libfdt_install: libfdt
+ 	$(INSTALL) -d $(DESTDIR)$(LIBDIR)
+ 	$(INSTALL) $(LIBFDT_lib) $(DESTDIR)$(LIBDIR)
+ 	ln -sf $(notdir $(LIBFDT_lib)) $(DESTDIR)$(LIBDIR)/$(LIBFDT_soname)
package/dtc/dtc.mk new file +34 -0
new file mode 100644
index 0000000..a0e1e35
@@ -0,0 +1,34 @@
+#############################################################
+#
+# dtc
+#
+#############################################################
+
+DTC_VERSION         = e4b497f367a3b2ae99cc52089a14a221b13a76ef
+DTC_SITE            = git://git.jdl.com/software/dtc.git
+DTC_LICENSE         = GPLv2+/BSD-2c
+DTC_LICENSE_FILES   = README.license GPL
+# Note: the dual-license only applies to the library.
+#       The DT compiler (dtc) is GPLv2+, but we do not install it.
+DTC_INSTALL_STAGING = YES
+
+define DTC_BUILD_CMDS
+	$(TARGET_CONFIGURE_OPTS)    \
+	CFLAGS="$(TARGET_CFLAGS)"   \
+	$(MAKE) -C $(@D) PREFIX=/usr libfdt
+endef
+
+#?libfdt_install is our own install rule added by our patch
+define DTC_INSTALL_STAGING_CMDS
+	$(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) PREFIX=/usr libfdt_install
+endef
+
+define DTC_INSTALL_TARGET_CMDS
+	$(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) PREFIX=/usr libfdt_install
+endef
+
+define DTC_CLEAN_CMDS
+	$(MAKE) -C $(@D) libfdt_clean
+endef
+
+$(eval $(generic-package))
Signature · 1 line
1.7.2.5
#19 lore raw

PATCH 7/7 package/dtc: add option to install programs

In reply to Yann E. MORIN

By default, we only install the libfdt library.

As suggested by Arnout, add an option that also
installs the few dtc programs.

Cc Thomas Petazzoni <[email protected]>
Cc Arnout Vandecappelle <[email protected]>

---
dtdiff, a diff for device trees, requires bash.

I did not add a 'depends on bash' (or a 'select' either), because requiring bash just for that is a bit far-fetched.

Instead, at dtc install time, if bash is selected, dtdiff is installed as usual to the target rootfs; if bash is not selected, dtdiff is removed from the target rootfs.

---
 package/dtc/Config.in |   24 ++++++++++++++++++++++--
 package/dtc/dtc.mk    |   29 +++++++++++++++++++++++------
 2 files changed, 45 insertions(+), 8 deletions(-)
package/dtc/Config.in +22 -2
index 96225e3..1c65a10 100644
@@ -1,9 +1,29 @@
 config BR2_PACKAGE_DTC
-	bool "dtc"
+	bool "dtc (libfdt)"
 	help
 	  The Device Tree Compiler, dtc, takes as input a device-tree in
 	  a given format and outputs a device-tree in another format.
 	  
-	  Note that only the library is installed for now.
+	  Note that only the library is installed.
+	  If you want the programs, say 'y' here, and to "dtc programs", below.
 	  
 	  http://git.jdl.com/gitweb/?p=dtc.git  (no home page)
+
+if BR2_PACKAGE_DTC
+
+config BR2_PACKAGE_DTC_PROGRAMS
+	bool "dtc programs"
+	help
+	  Say 'y' here if you also want the programs on the target:
+	    - convert-dtsv0     convert from version 0 to version 1
+	    - dtc               the device tree compiler
+	    - dtdiff            compare two device trees (needs bash)
+	    - fdtdump           print a readable version of a flat device tree
+	    - fdtget            read values from device tree
+	    - fdtput            write a property value to a device tree
+	  
+	  Note: dtdiff requires bash, so if bash is not selected, dtdiff will
+	        be removed from the target file system. Enable bash if you
+	        need dtdiff on the target.
+
+endif
package/dtc/dtc.mk +23 -6
index a0e1e35..42843d5 100644
@@ -8,27 +8,44 @@ DTC_VERSION         = e4b497f367a3b2ae99cc52089a14a221b13a76ef
 DTC_SITE            = git://git.jdl.com/software/dtc.git
 DTC_LICENSE         = GPLv2+/BSD-2c
 DTC_LICENSE_FILES   = README.license GPL
-# Note: the dual-license only applies to the library.
-#       The DT compiler (dtc) is GPLv2+, but we do not install it.
 DTC_INSTALL_STAGING = YES
 
+ifeq ($(BR2_PACKAGE_DTC_PROGRAMS),y)
+DTC_LICENSE        += (for the library), GPLv2+ (for the executables)
+# Use default goal to build everything
+DTC_BUILD_GOAL      =
+DTC_INSTALL_GOAL    = install
+DTC_CLEAN_GOAL      = clean
+else # $(BR2_PACKAGE_DTC_PROGRAMS) != y
+DTC_BUILD_GOAL      = libfdt
+#?libfdt_install is our own install rule added by our patch
+DTC_INSTALL_GOAL    = libfdt_install
+DTC_CLEAN_GOAL      = libfdt_clean
+ifeq ($(BR2_PACKAGE_BASH),)
+DTC_POST_INSTALL_TARGET_HOOKS += DTC_POST_INSTALL_TARGET_RM_DTDIFF
+endif
+endif # $(BR2_PACKAGE_DTC_PROGRAMS) != y
+
 define DTC_BUILD_CMDS
 	$(TARGET_CONFIGURE_OPTS)    \
 	CFLAGS="$(TARGET_CFLAGS)"   \
-	$(MAKE) -C $(@D) PREFIX=/usr libfdt
+	$(MAKE) -C $(@D) PREFIX=/usr $(DTC_BUILD_GOAL)
 endef
 
-#?libfdt_install is our own install rule added by our patch
+# For staging, only the library is needed
 define DTC_INSTALL_STAGING_CMDS
 	$(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) PREFIX=/usr libfdt_install
 endef
 
 define DTC_INSTALL_TARGET_CMDS
-	$(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) PREFIX=/usr libfdt_install
+	$(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) PREFIX=/usr $(DTC_INSTALL_GOAL)
+endef
+define DTC_POST_INSTALL_TARGET_RM_DTDIFF
+	rm -f $(TARGET_DIR)/usr/bin/dtdiff
 endef
 
 define DTC_CLEAN_CMDS
-	$(MAKE) -C $(@D) libfdt_clean
+	$(MAKE) -C $(@D) $(DTC_CLEAN_GOAL)
 endef
 
 $(eval $(generic-package))
Signature · 1 line
1.7.2.5