summaryrefslogtreecommitdiff
path: root/sysutils/cdrtools/Makefile
blob: 17def6dd8582fd76689e087e577d6e3f7ceeb65e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
# $NetBSD: Makefile,v 1.120 2020/01/18 23:35:14 rillig Exp $

DISTNAME=	cdrtools-3.01
PKGNAME=	${DISTNAME:S/a/alpha/:S/-pre/pre/}
PKGREVISION=	1
CATEGORIES=	sysutils
MASTER_SITES=	${MASTER_SITE_SOURCEFORGE:=cdrtools/}
EXTRACT_SUFX=	.tar.bz2

MAINTAINER=	wiz@NetBSD.org
HOMEPAGE=	https://cdrtools.sourceforge.net/private/cdrecord.html
COMMENT=	Software for creating ISO9660 images and writing CD/DVD/Blu-ray
#LICENSE=	CDDL.Schily.txt AND gnu-gpl-v2 AND gnu-lgpl-v2.1

CONFLICTS=	mkisofs-[0-9]* cdrtools-ossdvd-[0-9]* cdrecord-[0-9]* cdrkit-[0-9]*

WRKSRC=		${WRKDIR}/${DISTNAME:C/a[0-9]*//}

MAKE_JOBS_SAFE=	no # makefiles.5

.include "../../mk/bsd.prefs.mk"

USE_TOOLS+=	gm4 gmake tbl

CFLAGS.NetBSD+=		-DUSE_GETRAWPARTITION
LDFLAGS.NetBSD+=	-lutil

LDFLAGS+=	${BUILDLINK_LDADD.iconv}

# NetBSD 6.0 (and update releases) have incomplete implemenations of the
# "*at" system calls. Pretend that they aren't present at all to
# avoid build failures.
.if !empty(MACHINE_PLATFORM:MNetBSD-[5-6].*-*) && \
    empty(MACHINE_PLATFORM:MNetBSD-6.99.*-*)
.  for func in faccessat fchmodat fchownat fexecve fstatat linkat mkdirat \
               mkfifoat mknodat openat readlinkat renameat symlinkat unlinkat \
               utimensat
CONFIGURE_ENV+=	ac_cv_func_${func}=no
.  endfor
.endif

# avoid picking up a bad ${ARCH} during the build
MAKE_ENV+=	ARCH=""
MAKE_ENV+=	MAKEPROG="gmake"
MAKE_ENV+=	COPTX=${CFLAGS:Q}
MAKE_ENV+=	LDOPTX=${LDFLAGS:Q}
MAKE_ENV+=	INS_BASE=${PREFIX:Q}
MAKE_FLAGS+=	GMAKE_NOWARN=true
# do we want to compile shared libraries?
# needs changes in the install target and PLIST
#MAKE_ENV+=	LINKMODE=dynamic

# Map PKGSRC_COMPILER to CCOM used by cdrtools build system.
.if !empty(PKGSRC_COMPILER:Mclang)
MAKE_FLAGS+=	CCOM=clang
.elif !empty(PKGSRC_COMPILER:Mgcc)
MAKE_FLAGS+=	CCOM=gcc
.else
MAKE_FLAGS+=	CCOM=cc
.endif

# allow us to override the default /etc/default/cdrecord by patching
# the documentation appropriately. Additionally, we also provide a
# MESSAGE stating the reasons we do this, as required by the license.
CDRECORD_CONF?=	${PKG_SYSCONFDIR}/cdrecord.conf

.if ${CDRECORD_CONF} != "/etc/default/cdrecord"
MESSAGE_SRC+=	MESSAGE.cdrecord.conf
MESSAGE_SUBST+=	PKGNAME_NOREV=${PKGNAME_NOREV:Q}
MESSAGE_SUBST+=	CDRECORD_CONF=${CDRECORD_CONF:Q}
.endif

CONF_FILES+=		share/examples/cdrtools/cdrecord ${CDRECORD_CONF}

INSTALLATION_DIRS=	bin lib/siconv ${PKGMANDIR}/man1 ${PKGMANDIR}/man8 \
			share/doc/cdrtools/cdda2wav \
			share/doc/cdrtools/cdrecord \
			share/doc/cdrtools/mkisofs \
			share/examples/cdrtools

SUBST_CLASSES+=		fix
SUBST_STAGE.fix=	pre-configure
SUBST_FILES.fix=	btcflash/btcflash.1
SUBST_FILES.fix+=	cdrecord/cdrecord.1
SUBST_FILES.fix+=	libcdrdeflt/cdrdeflt.c
SUBST_FILES.fix+=	mkisofs/diag/isoinfo.8
SUBST_FILES.fix+=	readcd/readcd.1
SUBST_SED.fix=		-e "s,/etc/default/cdrecord,${CDRECORD_CONF},g"
SUBST_MESSAGE.fix=	Fixing paths.

SUBST_CLASSES+=		oss
SUBST_STAGE.oss=	pre-configure
SUBST_FILES.oss=	cdda2wav/local.cnf.in
SUBST_SED.oss=		-e "s,/dev/dsp,${DEVOSSSOUND},g"
SUBST_MESSAGE.oss=	Fixing OSS sound device path.

SUBST_CLASSES+=		ins_base
SUBST_STAGE.ins_base=	pre-configure
SUBST_FILES.ins_base=	DEFAULTS/Defaults.*
SUBST_SED.ins_base=	-e "/^INS_BASE=/d"
SUBST_MESSAGE.ins_base=	Fixing INS_BASE.

do-configure:
	cd ${WRKSRC}/RULES;						\
	if [ ! -e i386-netbsd-clang.rul ]; then				\
		ln -s i386-netbsd-gcc.rul i386-netbsd-clang.rul;	\
	fi;								\
	for suffix in netbsd-cc.rul netbsd-gcc.rul netbsd-clang.rul; do	\
		if [ ! -e ${MACHINE}-$$suffix ]; then			\
			ln -s i386-$$suffix ${MACHINE}-$$suffix;	\
		fi;							\
	done;								\
	if [ ! -e x86_64-darwin-clang.rul ]; then			\
		ln -s i386-darwin-clang.rul x86_64-darwin-clang.rul;	\
	fi
	cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} config

post-build:
	cd ${WRKSRC};							\
	for manpage in cdda2wav/cdda2wav.1 mkisofs/mkisofs.8; do	\
		tbl $${manpage} > $${manpage}.tmp;			\
		mv -f $${manpage}.tmp $${manpage};			\
	done

do-install:
	for program in btcflash cdda2wav cdrecord mkisofs		\
		readcd scgcheck scgskeleton; do				\
	cd ${WRKSRC}/$${program};					\
		${INSTALL_PROGRAM} OBJ/*/$${program} 			\
			${DESTDIR}${PREFIX}/bin;			\
	done
	for program in cdda2mp3 cdda2ogg; do				\
		${INSTALL_SCRIPT} ${WRKSRC}/cdda2wav/$${program} 	\
			${DESTDIR}${PREFIX}/bin;			\
		${INSTALL_MAN} ${WRKSRC}/cdda2wav/$${program}.1 	\
			${DESTDIR}${PREFIX}/${PKGMANDIR}/man1;		\
	done
	for program in btcflash cdda2wav cdrecord	\
		readcd scgcheck; do	\
		${INSTALL_MAN} ${WRKSRC}/$${program}/$${program}.1 	\
			${DESTDIR}${PREFIX}/${PKGMANDIR}/man1;		\
	done
	for program in mkisofs; do				\
		${INSTALL_MAN} ${WRKSRC}/$${program}/$${program}.8 	\
			${DESTDIR}${PREFIX}/${PKGMANDIR}/man8;		\
	done
	cd ${WRKSRC}/mkisofs/diag;					\
		for f in devdump isodebug isodump isoinfo isovfy; do	\
			${INSTALL_PROGRAM} OBJ/*/$$f ${DESTDIR}${PREFIX}/bin; \
			${INSTALL_MAN} $$f.8 \
				${DESTDIR}${PREFIX}/${PKGMANDIR}/man8/$$f.8; \
		done
	${INSTALL_DATA} ${WRKSRC}/libsiconv/tables/[cik]* \
		${DESTDIR}${PREFIX}/lib/siconv
	${RM} ${DESTDIR}${PREFIX}/lib/siconv/*mk
	${INSTALL_DATA} ${WRKSRC}/cdda2wav/README* \
		${DESTDIR}${PREFIX}/share/doc/cdrtools/cdda2wav
	${INSTALL_DATA} ${WRKSRC}/cdrecord/README* \
		${DESTDIR}${PREFIX}/share/doc/cdrtools/cdrecord
	${INSTALL_DATA} ${WRKSRC}/mkisofs/README* \
		${DESTDIR}${PREFIX}/share/doc/cdrtools/mkisofs
	${INSTALL_DATA} ${WRKSRC}/cdrecord/cdrecord.dfl \
		${DESTDIR}${PREFIX}/share/examples/cdrtools/cdrecord

.include "../../converters/libiconv/buildlink3.mk"
.include "../../devel/gettext-lib/buildlink3.mk"
.include "../../mk/oss.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"