summaryrefslogtreecommitdiff
path: root/devel/linux_libusb/Makefile
blob: feb1f6547b32b341a3f6b9db1aaf07b144f66715 (plain) (blame)
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
# Created by: nox@FreeBSD.org

PORTNAME=	linux_libusb
PORTVERSION=	13.0r${FSVN_REV}
PORTREVISION=	4
CATEGORIES=	devel linux
MASTER_SITES=	http://www.selasky.org/hans_petter/distfiles/ \
		http://home.selasky.org/distfiles/

MAINTAINER=	emulation@FreeBSD.org
COMMENT=	Linux-compatibility libusb

LICENSE=	BSD2CLAUSE

ONLY_FOR_ARCHS=	aarch64 amd64 i386

USES=		linux tar:bzip2
USE_LDCONFIG=	yes
USE_LINUX=	base:build,run devtools:build
USE_LINUX_PREFIX=	yes

LIBDIR_aarch64=	lib64
LIBDIR_amd64=	lib64
LIBDIR_i386=	lib
PLIST_FILES=	usr/${LIBDIR_${ARCH}}/libusb.so.3 \
		usr/${LIBDIR_${ARCH}}/libusb-0.1.so.4 \
		usr/${LIBDIR_${ARCH}}/libusb-1.0.so.0

CC=		${LINUXBASE}/usr/bin/gcc --sysroot=${LINUXBASE}
CFLAGS:=	${CFLAGS:N-march=*}
CFLAGS+=	-I${WRKDIR}/${DISTNAME}/include
SSP_CFLAGS?=	-fstack-protector # XXX -strong isn't supported by GCC < 4.9
MAKE_ARGS+=	LIBUSB_GLOBAL_INCLUDE_FILE=libusb_global_linux.h
MAKE_ARGS+=	WITHOUT_PROFILE=yes
MAKE_ARGS+=	WITHOUT_SSP=yes
MAKE_ARGS+=	WITHOUT_WERROR=yes
MAKE_ARGS+=	__MAKE_CONF=""
MAKE_ENV+=	LDADD="-lrt"

# see: sysutils/pc-sysinstall/Makefile
FSVN_REV=	358841
FSVNPATH?=	http://svn.freebsd.org/base/head
FSVNDIR=	lib/libusb

.include <bsd.port.pre.mk>

.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1300134
MAKE_ARGS+=	NO_WERROR=yes
.endif

.if ${ARCH} == amd64
PLIST_FILES+=	usr/lib/libusb.so.3 \
		usr/lib/libusb-0.1.so.4 \
		usr/lib/libusb-1.0.so.0
.endif

do-build:
	${MKDIR} ${WRKSRC}/${LIBDIR_${ARCH}}
	cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} MAKEOBJDIR=${LIBDIR_${ARCH}} \
		${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} ${_MAKE_JOBS} \
		${MAKE_ARGS:N${DESTDIRNAME}=*}
.if ${ARCH} == amd64
	${MKDIR} ${WRKSRC}/lib
	cd ${WRKSRC} && ${SETENV} ${MAKE_ENV:NCC=*} CC="${CC} -m32" \
		MAKEOBJDIR=lib ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} \
		${_MAKE_JOBS} ${MAKE_ARGS:N${DESTDIRNAME}=*} COMPAT_32BIT=yes
.endif

do-install:
	${MKDIR} ${STAGEDIR}${PREFIX}/usr/${LIBDIR_${ARCH}}
	${INSTALL_LIB} ${WRKSRC}/${LIBDIR_${ARCH}}/libusb.so.3 \
		${STAGEDIR}${PREFIX}/usr/${LIBDIR_${ARCH}}
	${LN} -s libusb.so.3 \
		${STAGEDIR}${PREFIX}/usr/${LIBDIR_${ARCH}}/libusb-0.1.so.4
	${LN} -s libusb.so.3 \
		${STAGEDIR}${PREFIX}/usr/${LIBDIR_${ARCH}}/libusb-1.0.so.0
.if ${ARCH} == amd64
	${MKDIR} ${STAGEDIR}${PREFIX}/usr/lib
	${INSTALL_LIB} ${WRKSRC}/lib/libusb.so.3 \
		${STAGEDIR}${PREFIX}/usr/lib
	${LN} -s libusb.so.3 \
		${STAGEDIR}${PREFIX}/usr/lib/libusb-0.1.so.4
	${LN} -s libusb.so.3 \
		${STAGEDIR}${PREFIX}/usr/lib/libusb-1.0.so.0
.endif

.if defined(BOOTSTRAP) || defined(SVN_FETCH)
SVN?=		svnlite

do-fetch:
	${RM} -rf ${WRKDIR}
	${MKDIR} ${WRKDIR}
	${SVN} export -r ${FSVN_REV} ${FSVNPATH}/${FSVNDIR} ${WRKDIR}/${DISTNAME}
	${MKDIR} ${WRKDIR}/${DISTNAME}/include/compat/linux
	${SVN} export -r ${FSVN_REV} ${FSVNPATH}/sys/compat/linux/linux_ioctl.h ${WRKDIR}/${DISTNAME}/include/compat/linux/
	${MKDIR} ${WRKDIR}/${DISTNAME}/include/dev/usb
	${SVN} export -r ${FSVN_REV} ${FSVNPATH}/sys/dev/usb/usb_endian.h ${WRKDIR}/${DISTNAME}/include/dev/usb/
	${SVN} export -r ${FSVN_REV} ${FSVNPATH}/sys/dev/usb/usb_freebsd.h ${WRKDIR}/${DISTNAME}/include/dev/usb/
	${SVN} export -r ${FSVN_REV} ${FSVNPATH}/sys/dev/usb/usb.h ${WRKDIR}/${DISTNAME}/include/dev/usb/
	${SVN} export -r ${FSVN_REV} ${FSVNPATH}/sys/dev/usb/usbdi.h ${WRKDIR}/${DISTNAME}/include/dev/usb/
	${SVN} export -r ${FSVN_REV} ${FSVNPATH}/sys/dev/usb/usb_ioctl.h ${WRKDIR}/${DISTNAME}/include/dev/usb/
	cd ${WRKDIR}; tar --uid=0 --gid=0 -cvyf ${DISTDIR}/${DISTNAME}.tar.bz2 ${DISTNAME}
.endif

.include <bsd.port.post.mk>