head	1.3;
access;
symbols
	netbsd-11-0-RC5:1.3
	netbsd-11-0-RC4:1.3
	netbsd-11-0-RC3:1.3
	netbsd-11-0-RC2:1.3
	netbsd-11-0-RC1:1.3
	perseant-exfatfs-base-20250801:1.3
	netbsd-11:1.3.0.6
	netbsd-11-base:1.3
	netbsd-10-1-RELEASE:1.3.4.2
	netbsd-10:1.3.0.4
	perseant-exfatfs-base-20240630:1.3
	perseant-exfatfs:1.3.0.2
	perseant-exfatfs-base:1.3;
locks; strict;
comment	@# @;


1.3
date	2024.05.31.20.41.50;	author tsutsui;	state Exp;
branches
	1.3.4.1;
next	1.2;
commitid	nRMtRNXW7Fd33ccF;

1.2
date	2024.05.31.20.27.19;	author tsutsui;	state Exp;
branches;
next	1.1;
commitid	hq17NszXBiv5YbcF;

1.1
date	2024.05.31.19.49.02;	author tsutsui;	state Exp;
branches;
next	;
commitid	woSxzLLKKep5KbcF;

1.3.4.1
date	2024.05.31.20.41.50;	author martin;	state dead;
branches;
next	1.3.4.2;
commitid	ukIKIblTxA6ajqgF;

1.3.4.2
date	2024.07.03.18.38.54;	author martin;	state Exp;
branches;
next	;
commitid	ukIKIblTxA6ajqgF;


desc
@@


1.3
log
@Use HAVE_CONFIG_H to include <stdlib.h> and <string.h> in getopt sources.
@
text
@#	$NetBSD: Makefile,v 1.2 2024/05/31 20:27:19 tsutsui Exp $
#	$OpenBSD: Makefile,v 1.8 2022/07/11 03:11:49 daniel Exp $

# NOTE: The mkhybrid distrib also makes an "mkisofs" which is the same binary
# linked. When we know mkhybrid makes distrib CDs ok we should modify this
# to make mkisofs as a link to this, rather than the (earlier) version in
# the tree.

DIST=	${NETBSDSRCDIR}/external/gpl2/mkhybrid/dist

PROG=	mkhybrid
MAN=	mkhybrid.8
BINDIR=	/usr/sbin

.PATH:	${DIST}
SRCS=	mkisofs.c tree.c write.c hash.c rock.c multi.c \
	joliet.c match.c name.c eltorito.c \
	apple.c volume.c desktop.c mac_label.c		
SRCS+=	getopt.c getopt1.c

.PATH:	${DIST}/libhfs_iso
SRCS+=	block.c btree.c data.c file.c hfs.c low.c lvolume.c node.c record.c

.PATH:	${DIST}/libfile
SRCS+=	apprentice.c lfile.c softmagic.c

CPPFLAGS+=-DSYSTEM_ID_DEFAULT=\"NetBSD\" -DAPPLE_HYB -DVANILLA_AUTOCONF \
	-DHAVE_CONFIG_H \
	-I${DIST} -I${DIST}/include \
	-I${DIST}/libhfs_iso \
	-I${DIST}/libfile

.include <bsd.prog.mk>
@


1.3.4.1
log
@file Makefile was added on branch netbsd-10 on 2024-07-03 18:38:54 +0000
@
text
@d1 33
@


1.3.4.2
log
@Pull up following revision(s) (requested by tsutsui in ticket #733):

	external/gpl2/mkhybrid/dist/mkisofs.h: revision 1.6
	distrib/cdrom/Makefile: revision 1.55
	distrib/cdrom/macppc_installboot/Makefile: revision 1.12
	external/gpl2/mkhybrid/dist/getopt.c: revision 1.2
	external/gpl2/mkhybrid/dist/libfile/LEGAL.NOTICE: revision 1.1
	external/gpl2/mkhybrid/dist/write.c: revision 1.1
	distrib/cdrom/Makefile: revision 1.56
	distrib/cdrom/macppc_installboot/Makefile: revision 1.13
	distrib/cdrom/macppc_installboot/installboot.c: revision 1.6
	external/gpl2/mkhybrid/dist/getopt.c: revision 1.3
	external/gpl2/mkhybrid/dist/write.c: revision 1.2
	external/gpl2/mkhybrid/dist/libhfs_iso/data.h: revision 1.1
	distrib/cdrom/Makefile: revision 1.57
	distrib/cdrom/macppc_installboot/Makefile: revision 1.14
	distrib/cdrom/macppc_installboot/installboot.c: revision 1.7
	tools/Makefile: revision 1.221
	tools/Makefile: revision 1.222
	external/gpl2/mkhybrid/dist/libhfs_iso/file.h: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/README: revision 1.1
	distrib/macppc/Makefile: revision 1.18
	external/gpl2/mkhybrid/dist/TODO: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/block.h: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/record.c: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/hfs.c: revision 1.1
	external/gpl2/mkhybrid/dist/match.c: revision 1.1
	external/gpl2/mkhybrid/dist/libfile/softmagic.c: revision 1.1
	external/gpl2/mkhybrid/dist/match.c: revision 1.2
	external/gpl2/mkhybrid/dist/libfile/softmagic.c: revision 1.2
	external/gpl2/mkhybrid/dist/volume.c: revision 1.1
	external/gpl2/mkhybrid/dist/volume.c: revision 1.2
	external/gpl2/mkhybrid/dist/libhfs_iso/internal.h: revision 1.1
	external/gpl2/mkhybrid/dist/getopt1.c: revision 1.1
	external/gpl2/mkhybrid/dist/getopt1.c: revision 1.2
	external/gpl2/mkhybrid/dist/getopt1.c: revision 1.3
	external/gpl2/mkhybrid/dist/README.mkisofs: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/hybrid.h: revision 1.1
	tools/mkhybrid/Makefile: revision 1.1
	external/gpl2/mkhybrid/dist/README.hfs_magic: revision 1.1
	external/gpl2/mkhybrid/dist/apple.h: revision 1.1
	external/gpl2/mkhybrid/dist/include/prototyp.h: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/volume.h: revision 1.1
	external/gpl2/mkhybrid/dist/apple.h: revision 1.2
	external/gpl2/mkhybrid/dist/mkisofs.c: revision 1.1
	external/gpl2/mkhybrid/dist/desktop.c: revision 1.1
	external/gpl2/mkhybrid/dist/mkisofs.c: revision 1.2
	external/gpl2/mkhybrid/dist/desktop.c: revision 1.2
	external/gpl2/mkhybrid/dist/mkisofs.c: revision 1.3
	external/gpl2/mkhybrid/dist/mkisofs.c: revision 1.4
	external/gpl2/mkhybrid/dist/libfile/file.h: revision 1.1
	external/gpl2/mkhybrid/dist/mkisofs.c: revision 1.5
	external/gpl2/mkhybrid/dist/libfile/file.h: revision 1.2
	external/gpl2/mkhybrid/dist/mkisofs.c: revision 1.6
	external/gpl2/mkhybrid/dist/libfile/file.h: revision 1.3
	external/gpl2/mkhybrid/dist/mkisofs.c: revision 1.7
	external/gpl2/mkhybrid/dist/getopt.h: revision 1.1
	distrib/cdrom/macppc_installboot/installboot.h: revision 1.5
	etc/etc.mac68k/Makefile.inc: revision 1.25
	external/gpl2/mkhybrid/dist/getopt.h: revision 1.2
	external/gpl2/mkhybrid/dist/write.h: revision 1.1
	etc/etc.mac68k/Makefile.inc: revision 1.26
	external/gpl2/mkhybrid/dist/rock.c: revision 1.1
	external/gpl2/mkhybrid/dist/hash.c: revision 1.1
	external/gpl2/mkhybrid/dist/hash.c: revision 1.2
	external/gpl2/mkhybrid/dist/libhfs_iso/record.h: revision 1.1
	external/gpl2/mkhybrid/dist/README.hfs_boot: revision 1.1
	external/gpl2/mkhybrid/dist/README: revision 1.1
	external/gpl2/mkhybrid/dist/README.win32: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/hfs.h: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/hfs.h: revision 1.2
	external/gpl2/mkhybrid/dist/config.h.in: revision 1.1
	external/gpl2/mkhybrid/dist/config.h.in: revision 1.2
	distrib/cdrom/boothfs.uue: revision 1.2
	external/gpl2/mkhybrid/dist/config.h.in: revision 1.3
	external/gpl2/mkhybrid/dist/volume.h: revision 1.1
	external/gpl2/mkhybrid/dist/volume.h: revision 1.2
	external/gpl2/mkhybrid/dist/ChangeLog: revision 1.1
	external/gpl2/mkhybrid/dist/libfile/apprentice.c: revision 1.1
	external/gpl2/mkhybrid/dist/libfile/apprentice.c: revision 1.2
	external/gpl2/mkhybrid/dist/mapping: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/btree.h: revision 1.1
	external/gpl2/mkhybrid/bin/Makefile: revision 1.1
	external/gpl2/mkhybrid/dist/include/statdefs.h: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/Makefile: revision 1.1
	external/gpl2/mkhybrid/bin/Makefile: revision 1.2
	external/gpl2/mkhybrid/dist/magic: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/node.h: revision 1.1
	external/gpl2/mkhybrid/bin/Makefile: revision 1.3
	external/gpl2/mkhybrid/dist/acconfig.h: revision 1.1
	external/gpl2/mkhybrid/dist/eltorito.c: revision 1.1
	external/gpl2/mkhybrid/dist/libfile/patchlevel.h: revision 1.1
	share/mk/bsd.own.mk: revision 1.1375
	share/mk/bsd.own.mk: revision 1.1376
	external/gpl2/mkhybrid/dist/README.session: revision 1.1
	external/gpl2/mkhybrid/dist/libfile/lfile.c: revision 1.1
	external/gpl2/mkhybrid/dist/libfile/lfile.c: revision 1.2
	tools/macppc_installboot/Makefile: revision 1.1
	external/gpl2/mkhybrid/README.md: revision 1.1
	etc/etc.macppc/Makefile.inc: revision 1.13
	external/gpl2/mkhybrid/dist/defaults.h: revision 1.1
	external/gpl2/mkhybrid/dist/mkisofs.spec: revision 1.1
	external/gpl2/mkhybrid/dist/defaults.h: revision 1.2
	external/gpl2/mkhybrid/dist/mac_label.h: revision 1.1
	external/gpl2/mkhybrid/dist/defaults.h: revision 1.3
	external/gpl2/mkhybrid/dist/include/mconfig.h: revision 1.1
	external/gpl2/mkhybrid/dist/include/mconfig.h: revision 1.2
	external/gpl2/mkhybrid/dist/libfile/proto.h: revision 1.1
	external/gpl2/mkhybrid/dist/COPYING: revision 1.1
	external/gpl2/mkhybrid/dist/name.c: revision 1.1
	external/gpl2/mkhybrid/dist/configure.in: revision 1.1
	external/gpl2/mkhybrid/dist/configure.in: revision 1.2
	external/gpl2/mkhybrid/dist/mac_label_proto.h: revision 1.1
	external/gpl2/mkhybrid/dist/configure.in: revision 1.3
	external/gpl2/mkhybrid/dist/libhfs_iso/low.c: revision 1.1
	distrib/cdrom/macppc_mkboothfs/mkboothfs.c: revision 1.4
	external/gpl2/mkhybrid/dist/mkhybrid.8: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/btree.c: revision 1.1
	distrib/cdrom/macppc_installboot/cd9660.c: revision 1.5
	external/gpl2/mkhybrid/dist/config.h: revision 1.1
	external/gpl2/mkhybrid/dist/mkhybrid.8: revision 1.2
	distrib/cdrom/macppc_installboot/cd9660.c: revision 1.6
	external/gpl2/mkhybrid/dist/config.h: revision 1.2
	external/gpl2/mkhybrid/dist/libhfs_iso/node.c: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/data.c: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/file.c: revision 1.1
	external/gpl2/mkhybrid/dist/README.eltorito: revision 1.1
	external/gpl2/mkhybrid/dist/include/fctldefs.h: revision 1.1
	external/gpl2/mkhybrid/dist/libfile/README: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/block.c: revision 1.1
	external/gpl2/mkhybrid/dist/mactypes.h: revision 1.1
	external/gpl2/mkhybrid/dist/apple_proto.h: revision 1.1
	external/gpl2/mkhybrid/dist/apple_proto.h: revision 1.2
	external/gpl2/mkhybrid/dist/multi.c: revision 1.1
	external/gpl2/mkhybrid/dist/match.h: revision 1.1
	external/gpl2/mkhybrid/dist/match.h: revision 1.2
	external/gpl2/mkhybrid/dist/mac_label.c: revision 1.1
	external/gpl2/mkhybrid/dist/Makefile.in: revision 1.1
	external/gpl2/mkhybrid/dist/mac_label.c: revision 1.2
	external/gpl2/mkhybrid/dist/libhfs_iso/lvolume.c: revision 1.1
	external/gpl2/mkhybrid/dist/Makefile.in: revision 1.2
	external/gpl2/mkhybrid/dist/configure: revision 1.1
	external/gpl2/mkhybrid/dist/configure: revision 1.2
	external/gpl2/mkhybrid/dist/install-sh: revision 1.1
	external/gpl2/mkhybrid/dist/configure: revision 1.3
	distrib/cdrom/macppc_installboot/cd9660.c: file removal
	external/gpl2/mkhybrid/dist/README.mkhybrid: revision 1.1
	external/gpl2/mkhybrid/dist/ChangeLog.mkhybrid: revision 1.1
	external/gpl2/mkhybrid/dist/iso9660.h: revision 1.1
	external/gpl2/mkhybrid/dist/joliet.c: revision 1.1
	external/gpl2/mkhybrid/dist/apple.c: revision 1.1
	external/gpl2/mkhybrid/dist/apple.c: revision 1.2
	external/gpl2/mkhybrid/dist/apple.c: revision 1.3
	etc/Makefile: revision 1.471
	external/gpl2/mkhybrid/dist/apple.c: revision 1.4
	external/gpl2/mkhybrid/dist/tree.c: revision 1.1
	etc/Makefile: revision 1.472
	external/gpl2/mkhybrid/dist/tree.c: revision 1.2
	external/gpl2/mkhybrid/dist/tree.c: revision 1.3
	external/gpl2/mkhybrid/dist/libhfs_iso/low.h: revision 1.1
	external/gpl2/mkhybrid/dist/mkisofs.h: revision 1.1
	external/gpl2/mkhybrid/dist/mkisofs.8: revision 1.1
	external/gpl2/mkhybrid/dist/mkisofs.h: revision 1.2
	external/gpl2/mkhybrid/dist/mkisofs.h: revision 1.3
	external/gpl2/mkhybrid/dist/mkisofs.h: revision 1.4
	external/gpl2/mkhybrid/dist/mkisofs.h: revision 1.5
	distrib/cdrom/Makefile: revision 1.54
	external/gpl2/mkhybrid/dist/getopt.c: revision 1.1

Add -data-change-warn to MKISOFS_ARGS for macppc as done for mac68k:
https://mail-index.netbsd.org/source-changes/2023/05/19/msg144826.html

Creating Type&Creator mappings for .bin (macbinary encoded) files,
mkisofs changes files, then turns around and complains they have been
changed.
This is a self-inflicted wound, so demote the error to a warning.
This looks to make macppccd builds with cdrtools-3.02a10.
Sync with src/usr.sbin/installboot/cd9660.c:
- include now properly updated cd9660_extern.h for function prototypes
  and remove them from local installboot.h
- use ISO_MAXNAMLEN rather than (BSD specific and incorrect) MAXNAMLEN
- use proper names for the secondary boot file
- appease several pointer signedness warnings (not fatal on HOST tools)
Use native cd9660 blocksize to specify block numbers in cd9660.c.
This reduces diffs from src/usr.sbin/installboot/cd9660.c.
Also explicitly call cd9660_match() to get fstype->blocksize properly.
Pull sharable src/usr.sbin/installboot/cd9660.c.
Import mkhybrid from OpenBSD 7.3 to create ISO9660/HFS hybrid ISO images.
- files in libfile except proto.h prepared by OpenBSD are not imported
  due to non-standard license
  (newer BSD Licensed versions will be imported later)
- unnecessary files for tools build are not imported
- RCSId strings are trimmed to avoid unintended substitutions
Proposed on tech-toolchain@@:
https://mail-index.netbsd.org/tech-toolchain/2024/05/25/msg004355.html

Import BSD licensed libfile for mkhybrid builds from cdrtools-3.01.
- unnecessary files for tools build are not imported
- file.c is renamed to lfile.c to avoid conflict with libhfs_iso
- RCSId strings are trimmed
Remove dependencies on non-existent exclude.h.
Pull changes from mkisofs-1.12.1 to avoid statvfs(2).
Make newer BSD Licensed libfile sources build as tools.
Update mkhybrid Makefile for NetBSD's tools builds.
Suppress implicit declaration warnings.
Appease discard-const warnings.
Remove duplicated SYSTEM_ID_DEFAULT definitions.
Don't redefine SYSTEM_ID_DEFAULT if it's specified in CPPFLAGS.
Remove ancient rlimit hacks for NetBSD disabled in cdrtools-2.01.
Always use local getopt.h as cdrtools-2.01 did.
Tweak and regen configure using autoconf-2.13 to use pkgsrc tools.
Check <stdlib.h> and <flock.h> in configure and regen config.h.
Use HAVE_CONFIG_H to include <stdlib.h> and <string.h> in getopt sources.
Appease more warnings and remove unused getopt functions.
Pull options -hide-joliet-trans-tbl and -hide-rr-moved from mkisofs-1.13.
Pull -graft-points option from mkisofs-1.13 and cdrtools-2.01.
Also remove #ifdef APPLE_HYB for NON-HFS changes to reduce diffs.
Tweak OPTION_* definitions to reduce diffs from mkisofs-1.13.
Pull malloc related fixes from cdrtools-2.01.
This seems to fix SIGSEGV during free(3) in write.c:write_one_file().
Build mkhybrid as a build tool.
Build mac68k and macppc iso images using tools/mkhybrid.
Drop -data-change-warn from MKISOFS_FLAGS.
It's available only on cdrtools-3.x and later.
Use tools/mkhybrid as MKISOFS for mac68k and future macppc.
Note about current status.
Also pull man page description of options pulled from mkisofs-1.13.
Don't print progress if -quiet is specfied as cdrtools-2.01 and later.
Exclude debug.tgz and xdebug.tgz from mac68k ISO to save ~320MB.
Drop -T (for non-Rock Ridge capable systems) from ${MKISOFS_FLAGS}.
Even old mac68k and macppc don't require it, and somehow TRANS.TBL
files are shown on NetBSD when the ISO images created with both -T
and and -hide-joliet-trans-tbl are mounted by mount_cd9660(8).
Note this also happens with mkisofs(8) from cdrtools-3.02,
but I have not investigated if it's expected behavior.
Build src/distrib/cdrom/macppc_installboot in src/tools as a tool.
Also use the tools version ${TOOLS_MACPPC_INSTALLBOOT} to create
bootable ISO9660/HFS hybrid installcd image for macppc.
Make sure NetBSD_BootBlock partition has 32KB to avoid extra padding.
It looks at least OpenFirmware 2.x fails to load the primary bootloader
in the NetBSD_BootBlock partition if the partition size is too small,
probably because OpenFirmware read() function implicitly uses 32KB blocks.
Build macppc iso with TOOL_MKHYBRID via "iso-image" target in src/etc.
No need to check and redefine C89 strerror(3) and strtoul(3).
Fixes build error on MacOS 10.4 with Xcode 2.5.
@
text
@a0 33
#	$NetBSD$
#	$OpenBSD: Makefile,v 1.8 2022/07/11 03:11:49 daniel Exp $

# NOTE: The mkhybrid distrib also makes an "mkisofs" which is the same binary
# linked. When we know mkhybrid makes distrib CDs ok we should modify this
# to make mkisofs as a link to this, rather than the (earlier) version in
# the tree.

DIST=	${NETBSDSRCDIR}/external/gpl2/mkhybrid/dist

PROG=	mkhybrid
MAN=	mkhybrid.8
BINDIR=	/usr/sbin

.PATH:	${DIST}
SRCS=	mkisofs.c tree.c write.c hash.c rock.c multi.c \
	joliet.c match.c name.c eltorito.c \
	apple.c volume.c desktop.c mac_label.c		
SRCS+=	getopt.c getopt1.c

.PATH:	${DIST}/libhfs_iso
SRCS+=	block.c btree.c data.c file.c hfs.c low.c lvolume.c node.c record.c

.PATH:	${DIST}/libfile
SRCS+=	apprentice.c lfile.c softmagic.c

CPPFLAGS+=-DSYSTEM_ID_DEFAULT=\"NetBSD\" -DAPPLE_HYB -DVANILLA_AUTOCONF \
	-DHAVE_CONFIG_H \
	-I${DIST} -I${DIST}/include \
	-I${DIST}/libhfs_iso \
	-I${DIST}/libfile

.include <bsd.prog.mk>
@


1.2
log
@Update mkhybrid Makefile for NetBSD's tools builds.
@
text
@d1 1
a1 1
#	$NetBSD$
d28 1
@


1.1
log
@Import mkhybrid from OpenBSD 7.3 to create ISO9660/HFS hybrid ISO images.

- files in libfile except proto.h prepared by OpenBSD are not imported
  due to non-standard license
  (newer BSD Licensed versions will be imported later)
- unnecessary files for tools build are not imported
- RCSId strings are trimmed to avoid unintended substitutions

Proposed on tech-toolchain@@:
 https://mail-index.netbsd.org/tech-toolchain/2024/05/25/msg004355.html
@
text
@d1 1
d9 2
a13 1
.PATH:	${.CURDIR}/../src ${.CURDIR}/../src/libhfs_iso ${.CURDIR}/../src/libfile
d15 3
a17 3
SRCS=	data.c block.c low.c lfile.c btree.c node.c record.c lvolume.c \
	hfs.c file.c apprentice.c softmagic.c mkisofs.c tree.c write.c \
	hash.c rock.c multi.c joliet.c match.c name.c eltorito.c \
d19 7
d27 4
a30 4
CFLAGS+=-DSYSTEM_ID_DEFAULT=\"OpenBSD\" -DAPPLE_HYB -DVANILLA_AUTOCONF \
	-I${.CURDIR}/../src -I${.CURDIR}/../src/include \
	-I${.CURDIR}/../src/libhfs_iso \
	-I${.CURDIR}/../src/libfile
@

