summaryrefslogtreecommitdiff
path: root/archivers/paq/Makefile
blob: 6e5e6cbbc48ee57f868d11b10e84d1cf9b9f7193 (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
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
# Created by: bf <bf2006a@yahoo.com>
# $FreeBSD$

PORTNAME=	paq
PORTVERSION=	20140131
CATEGORIES=	archivers
MASTER_SITES=	http://mattmahoney.net/dc/ LOCAL/bf/paq/
DISTFILES=	wbpe110.zip zpaqd633.zip zpaq649.zip zpipe.201.zip
DIST_SUBDIR=	${PORTNAME}
EXTRACT_ONLY=	${DISTFILES:M*.zip}

MAINTAINER=	bf@FreeBSD.org
COMMENT=	Family of archivers with extremely high compression ratios

LICENSE=	GPLv3 MIT
LICENSE_COMB=	multi

USE_ZIP=	yes
USES=		dos2unix

EXTRACT_AFTER_ARGS=	-x *.bat *.exe readme.txt -d ${WRKDIR}
NO_WRKSUBDIR=	yes
OPTIONS_DEFINE=	OPENMP
SUB_FILES=	pkg-message

.include <bsd.port.options.mk>

.if ${ARCH} == "amd64" || ( ${ARCH} == "i386" && !empty(MACHINE_CPU:Msse2) )
ZPAQFLAGS=	-Dunix -msse2
.else
ZPAQFLAGS=	-Dunix -DNOJIT
.endif

.if defined(WITH_DEBUG)
CXXFLAGS+=	-DDEBUG
.else
CXXFLAGS+=	-DNDEBUG
.endif

.if !defined(NOPORTDATA) || make(makesum)
DISTFILES+=	bmp_j4c.zip bwt.1.zip bwt_j3.zip bwt_slowmode1.zip \
		calgarytest.zpaq calgarytest2.zpaq exe_j1.zip fast.cfg \
		jpg_test2.zip lazy210.zip lz1.zip max.cfg mid.cfg min.zip \
		zpsfx.100.zip zpsfx101.cpp
.endif

.if ${PORT_OPTIONS:MDOCS} || make(makesum)
DISTFILES+=	zpaq1.pdf zpaq202.pdf zpaq203.pdf
.endif

.if ${PORT_OPTIONS:MDOCS}
PORTDOCS=	libzpaq.cpp wbpe.cpp zpaq.cpp zpaq1.pdf zpaq202.pdf zpaq203.pdf zpipe.cpp
.endif

.if !defined(NOPORTDATA)
.if ${PORT_OPTIONS:MDOCS}
PORTDOCS+=	bwt_.cpp bwtpre.cpp bwtrle.cpp divsufsort.c divsufsort.h \
		exe_jo.cpp jpeg_jo.cpp lzpre.cpp lzppre.cpp readme_bwt.txt \
		readme_bwt_j3.txt readme_exe_j1.txt readme_lazy210.txt zpsfx.cpp
READMES+=	bwt_j3 exe_j1 lazy210
EXTRA_PATCHES+=	${FILESDIR}/patch_zpsfx.cpp
.endif
WDATA=	bmp_j4.cfg bwt_j3.cfg bwt_slowmode1_1GB_block.cfg \
	bwt_slowmode1_256MB_block.cfg bwt_slowmode1_4MB_block.cfg \
	bwt1.cfg bwt2.cfg bwtrle1.cfg bwtrle2.cfg colorpre.cfg \
	exe_j1.cfg jpg_test2.cfg lazy2.cfg lz1.cfg min.cfg zpsfx.tag
DDATA=	fast.cfg max.cfg mid.cfg
PORTDATA=	${WDATA} ${DDATA} zpsfx
.endif

.if ${PORT_OPTIONS:MOPENMP}
OPENMP_CFLAGS+=	-fopenmp
USE_GCC=		any
.endif

post-extract:
	@${CP} ${DISTDIR}/${DIST_SUBDIR}/zpsfx101.cpp ${WRKSRC}/zpsfx.cpp
.if ${PORT_OPTIONS:MDOCS}
.for r in ${READMES}
	@${UNZIP_CMD} -pq  ${DISTDIR}/${DIST_SUBDIR}/${r}.zip readme.txt > ${WRKSRC}/readme_${r:R}.txt
.endfor

.endif

post-patch:
.if !defined(NOPORTDATA)
	@${REINPLACE_CMD} -e 's|c:\\res\\zpaq\\||' ${WRKSRC}/bwt[12].cfg \
		${WRKSRC}/bwtrle[12].cfg
.endif

do-build:
.if !defined(NOPORTDATA)
	@cd ${WRKSRC}; for prog in bwt_ bwtpre exe_jo jpeg_jo lazy2 lzpre \
	lzppre; do \
	${CXX} ${CXXFLAGS} -o $${prog} $${prog}.cpp; done; \
	${CXX} ${CXXFLAGS} -o bwtrle bwtrle.cpp divsufsort.c; \
	${CXX} ${CXXFLAGS} ${ZPAQFLAGS} -o zpsfx zpsfx.cpp libzpaq.cpp
.endif
	@cd ${WRKSRC}; \
	${CXX} ${CXXFLAGS} -o wbpe wbpe.cpp; \
	${CXX} ${CXXFLAGS} ${OPENMP_CFLAGS} ${ZPAQFLAGS} \
	-o zpaq zpaq.cpp libzpaq.cpp divsufsort.c ${LDFLAGS} -pthread; \
	${CXX} ${CXXFLAGS:N-DNDEBUG} ${ZPAQFLAGS} \
	-o zpaqd zpaqd.cpp libzpaq.cpp ${LDFLAGS}; \
	${CXX} ${CXXFLAGS} ${ZPAQFLAGS} -o zpipe zpipe.cpp libzpaq.cpp

do-install:
.for prog in wbpe zpaq zpaqd zpipe
	@${INSTALL_PROGRAM} ${WRKSRC}/${prog} ${STAGEDIR}${PREFIX}/bin
.endfor
	@${INSTALL_DATA} ${WRKSRC}/libzpaq.h ${STAGEDIR}${PREFIX}/include
.if !defined(NOPORTDATA)
.for prog in bwt_ bwtpre bwtrle exe_jo jpeg_jo lazy2 lzpre lzppre
	@${INSTALL_PROGRAM} ${WRKSRC}/${prog} ${STAGEDIR}${PREFIX}/bin
.endfor
	@${MKDIR} ${STAGEDIR}${DATADIR}
	@cd ${WRKSRC}; ${INSTALL_DATA} ${WDATA} ${STAGEDIR}${DATADIR}; \
	${INSTALL_LIB} zpsfx ${STAGEDIR}${DATADIR}
	@cd ${_DISTDIR}; ${INSTALL_DATA} ${DDATA} ${STAGEDIR}${DATADIR}
.endif
.if ${PORT_OPTIONS:MDOCS}
	@${MKDIR} ${STAGEDIR}${DOCSDIR}
	@cd ${WRKSRC}; ${INSTALL_DATA} ${PORTDOCS:N*.pdf} ${STAGEDIR}${DOCSDIR}
	@cd ${DISTDIR}/${DIST_SUBDIR}; ${INSTALL_DATA} ${PORTDOCS:M*.pdf} ${STAGEDIR}${DOCSDIR}
.endif

check regression-test test: build
.for _f in calgarytest.zpaq calgarytest2.zpaq
.for _c in -list -test
	${WRKSRC}/zpaq ${_c} ${DISTDIR}/${DIST_SUBDIR}/${_f}
.endfor
	${WRKSRC}/zpaq -encrypt ${DISTDIR}/${DIST_SUBDIR}/${_f} -to ${WRKSRC}/encrypted_${_f} password
	${WRKSRC}/zpaq -test ${WRKSRC}/encrypted_${_f} -key password
.endfor

.include <bsd.port.mk>