1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-17 08:01:36 +00:00

Add graphics/libecwj2 that implements support for the JPEG2000 and

ECW image formats.

Submitted by:	glebius
This commit is contained in:
Sergey A. Osokin 2010-08-03 10:26:57 +00:00
parent 9c1744cd91
commit 214b06a42c
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=258676
22 changed files with 1791 additions and 0 deletions

1
LEGAL
View File

@ -380,6 +380,7 @@ lgrind/* print/lgrind Contains non-free code written
libamrnb audio/libamrnb No redistribution allowed
libamrwb audio/libamrwb No redistribution allowed
libdvdcss-*.tar.bz2 multimedia/libdvdcss CSS code may violate the DMCA
ecw_jpeg_2000_*.zip graphics/libecwj2 Must be downloaded manually from Ermapper site
libidea-* security/libidea Crypto; export-controlled
libots-*.alpha.rpm lang/compaq-cc Distribution not allowed
Linux-ACU-Driver-v* sysutils/linux-acu Redistribution not allowed

View File

@ -425,6 +425,7 @@
SUBDIR += libchamplain
SUBDIR += libdmtx
SUBDIR += libdrm
SUBDIR += libecwj2
SUBDIR += libemf
SUBDIR += libexif
SUBDIR += libexif-gtk

View File

@ -0,0 +1,47 @@
# New ports collection makefile for: libecwj2
# Date created: 3 August 2010
# Whom: glebius@FreeBSD.org
#
# $FreeBSD$
#
PORTNAME= libecwj2
PORTVERSION= 3.3
CATEGORIES= graphics
MASTER_SITES=
DISTFILES= ecw_jpeg_2000_sdk_3_3_source.zip
MAINTAINER= glebius@FreeBSD.org
COMMENT= Erdas ECW and JPEG2000 support library
RESTRICTED= Registration required to download sources
NO_CDROM= ${RESTRICTED}
USE_ZIP= yes
USE_AUTOTOOLS= libtool:22 autoconf:262
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
USE_GMAKE= yes
.include <bsd.port.pre.mk>
pre-fetch:
.if !exists(${DISTDIR}/${DISTFILES})
@${ECHO_MSG} Due to licensing restrictions the sources must be fetched manually.
@${ECHO_MSG} You need to register at ERDAS website and download
@${ECHO_MSG}
@${ECHO_MSG} ${DISTFILES}
@${ECHO_MSG}
@${ECHO_MSG} from http://www.ermapper.com/Products/ERDASProductInformation/tabid/84/currentid/1142/default.aspx, and put it into ${DISTDIR}
@${ECHO_MSG}
@exit 1
.endif
post-extract:
cd ${WRKDIR} && \
${EXTRACT_CMD} ImageCompressionSDKSourceCode3.3Setup_20070509.zip
post-patch:
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' ${WRKSRC}/configure.in
.include <bsd.port.post.mk>

View File

@ -0,0 +1,3 @@
MD5 (ecw_jpeg_2000_sdk_3_3_source.zip) = 8a9debee8feb7013a43b1318a0819fcb
SHA256 (ecw_jpeg_2000_sdk_3_3_source.zip) = f7abbb6995e692dab3d774dc11c0316e561f072147071323f92dbb55935f9075
SIZE (ecw_jpeg_2000_sdk_3_3_source.zip) = 5496099

View File

@ -0,0 +1,16 @@
--- Makefile.am.orig 2006-07-02 20:14:18.000000000 -0500
+++ Makefile.am 2009-03-16 14:04:13.000000000 -0500
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = foreign
+
SUBDIRS = \
Source
@@ -127,7 +129,5 @@
Source/include/gdt_pub.h \
Source/include/gdt_stat.h \
Source/include/pcs_erm.h \
- Source/C/NCSEcw/lcms/include/lcms.h \
- Source/C/NCSEcw/lcms/include/icc34.h \
Source/NCSBuildGnu/NCSGnuConfig.h

View File

@ -0,0 +1,11 @@
--- Makefile.in.orig 2010-08-03 12:31:26.000000000 +0400
+++ Makefile.in 2010-08-03 12:31:32.000000000 +0400
@@ -270,8 +270,6 @@
Source/include/gdt_pub.h \
Source/include/gdt_stat.h \
Source/include/pcs_erm.h \
- Source/C/NCSEcw/lcms/include/lcms.h \
- Source/C/NCSEcw/lcms/include/icc34.h \
Source/NCSBuildGnu/NCSGnuConfig.h
subdir = .

View File

@ -0,0 +1,24 @@
--- Source/C/NCSUtil/file.c.orig 2006-07-03 05:15:02.000000000 +0400
+++ Source/C/NCSUtil/file.c 2010-07-29 16:40:02.000000000 +0400
@@ -203,8 +203,10 @@
return (INT64) lseek64(hFile, (off64_t)nOffset, origin);
#elif defined IRIX
return (INT64) lseek64(hFile, (off64_t)nOffset, origin);
-#elif defined MACOSX
- return (INT64) lseek(hFile, nOffset, origin);
+#elif defined MACOSX || defined FREEBSD
+ return (INT64) lseek(hFile, nOffset, origin);
+#else
+#error NCSFileSeekNative() routine is not defined for this platform
#endif
}
@@ -253,6 +255,8 @@
return (INT64) lseek64(hFile, (off64_t)0, SEEK_CUR);
#elif defined MACOSX
return (INT64) lseek(hFile, (long)0, SEEK_CUR);
+#elif defined FREEBSD
+ return (INT64) lseek(hFile, (off_t)0, SEEK_CUR);
#else
#error ERROR: EcwFileGetPos() routine is not defined for this platform
#endif

View File

@ -0,0 +1,35 @@
--- Source/C/NCSUtil/malloc.c.orig 2009-04-05 22:40:20.000000000 +0400
+++ Source/C/NCSUtil/malloc.c 2009-04-05 22:44:30.000000000 +0400
@@ -70,6 +70,10 @@
#endif
+#ifdef FREEBSD
+#include <sys/sysctl.h>
+#endif
+
void NCSMallocInit(void)
{
#ifdef NOTDEF
@@ -430,7 +434,21 @@
return((INT32)nTotalRam);
#else /* PALM */
+
+#ifdef FREEBSD
+ int mib[2], physmem;
+ size_t len;
+
+ mib[0] = CTL_HW;
+ mib[1] = HW_PHYSMEM;
+ len = sizeof(physmem);
+ sysctl(mib, 2, &physmem, &len, NULL, 0);
+
+ return (physmem);
+
+#else /* FREEBSD */
#error - NCSPhysicalMemorySize()
+#endif /* FREEBSD */
#endif /* PALM */
#endif /* SOLARIS */
#endif /* IRIX */

View File

@ -0,0 +1,74 @@
--- Source/C/NCSUtil/thread.c.orig 2006-07-03 05:15:02.000000000 +0400
+++ Source/C/NCSUtil/thread.c 2010-07-29 17:20:43.000000000 +0400
@@ -838,13 +838,13 @@
yield();
#elif defined(HPUX)
sched_yield();
-#elif defined(LINUX)
+#elif defined(LINUX) || defined (FREEBSD)
sched_yield();
//pthread_yield();
#elif defined(MACOSX)
pthread_yield_np();
#else
-ERROR: NCSThreadYield() needs coding in NCSUtil/thread.c
+#error NCSThreadYield() needs coding in NCSUtil/thread.c
#endif
return(FALSE);
}
@@ -1525,7 +1525,7 @@
UINT32 NCSGetNumCPUs(void)
{
- UINT32 ncpus = 1;
+ UINT32 ncpus;
#ifdef WIN32
#if !defined(_WIN32_WCE)&&defined(_X86_)
@@ -1545,15 +1545,13 @@
GetSystemInfo(&si);
ncpus = (UINT32)si.dwNumberOfProcessors;
}
-#else
-#ifdef SOLARIS
+#elif defined SOLARIS
long n;
n = sysconf(_SC_NPROCESSORS_ONLN);
if(n > 0) {
ncpus = n;
}
-#else
-#ifdef HPUX
+#elif defined HPUX
#include <sys/param.h>
#include <sys/pstat.h>
@@ -1564,16 +1562,23 @@
fprintf(stderr, "NCSGetNumCPUs() : value not tested [%d]\n",psd.psd_proc_cnt);
return (psd.psd_proc_cnt);
}
-#else
-#ifdef LINUX
+#elif defined LINUX
long n;
n = sysconf(_SC_NPROCESSORS_ONLN);
if(n > 0) {
ncpus = n;
}
-#endif
-#endif
-#endif
+#elif defined FREEBSD
+#include <sys/sysctl.h>
+ int mib[2];
+ size_t len;
+
+ mib[0] = CTL_HW;
+ mib[1] = HW_NCPU;
+ len = sizeof(ncpus);
+ sysctl(mib, 2, &ncpus, &len, NULL, 0);
+#else
+#error NCSGetNumCPUs() needs coding
#endif
return(ncpus);

View File

@ -0,0 +1,30 @@
--- Source/C/NCSUtil/util.c.orig 2009-04-05 21:59:28.000000000 +0400
+++ Source/C/NCSUtil/util.c 2009-04-05 22:05:04.000000000 +0400
@@ -163,15 +163,9 @@
if(nSizeBytes < 1024) {
#ifdef WIN32
sprintf(buf, "%I64d bytes", nSizeBytes);
-#elif defined SOLARIS
- sprintf(buf, "%lld bytes", nSizeBytes);
#elif defined MACINTOSH
sprintf(buf, "%I64d bytes", nSizeBytes);
-#elif defined HPUX
- sprintf(buf, "%lld bytes", nSizeBytes);
-#elif defined LINUX
- sprintf(buf, "%lld bytes", nSizeBytes);
-#elif defined MACOSX
+#elif defined POSIX
sprintf(buf, "%lld bytes", nSizeBytes);
#else
#error whats the 64bit format specifier?
@@ -306,6 +300,10 @@
return(NCS_MACINTOSH_OSX);
+#elif defined FREEBSD
+
+ return(NCS_FREEBSD);
+
#else /* WIN32 */
#error - NCSGetPlatform()
#endif /* WIN32 */

View File

@ -0,0 +1,11 @@
--- Source/C/NCSnet/NCScnet3/NCSProxy.cpp.orig 2009-04-05 21:38:54.000000000 +0400
+++ Source/C/NCSnet/NCScnet3/NCSProxy.cpp 2009-04-05 21:39:11.000000000 +0400
@@ -639,7 +639,7 @@
return(NCSStrDup(szNameBuf));
}
#elif defined(POSIX)
-#if defined( LINUX ) || defined( MACOSX )
+#if defined( LINUX ) || defined( MACOSX ) || defined (FREEBSD)
fprintf(stderr, "CNCSProxy::GetCurrentUserName() using loging instead of cuserid. FIXME\n");
return(NCSStrDup(getlogin()));
#else

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,55 @@
--- Source/include/NCSDefs.h.orig 2006-07-03 05:15:22.000000000 +0400
+++ Source/include/NCSDefs.h 2010-07-29 16:08:26.000000000 +0400
@@ -57,10 +57,12 @@
#define NCS_64BIT
#endif
-#if (defined(MACINTOSH)||defined(SOLARIS)||defined(IRIX)||defined(PALM)||defined(HPUX)||defined(MACOSX))&&(!defined(X86))
-#define NCSBO_MSBFIRST
-#else // WIN32, LINUX (i386)
-#define NCSBO_LSBFIRST
+#include <machine/endian.h>
+
+#if (BYTE_ORDER == LITTLE_ENDIAN)
+#define NCSBO_LSBFIRST
+#else
+#define NCSBO_MSBFIRST
#endif
#if !defined(_WIN32_WCE)&&!defined(UNALIGNED)
@@ -180,13 +182,15 @@
#define IntersectRect(A, B, C) SectRect(B, C, A)
#define ZeroMemory(DATA, SIZE) memset(DATA, 0, SIZE)
-#elif defined SOLARIS || defined LINUX || defined HPUX
+#elif defined SOLARIS || defined LINUX || defined HPUX || defined FREEBSD
-#ifdef LINUX
+#if defined LINUX || defined FREEBSD
#define wcsicmp wcscasecmp
#endif
+#ifndef FREEBSD
#include <values.h>
+#endif
#include <limits.h>
#include <ctype.h>
#include <math.h>
@@ -195,7 +199,7 @@
#define MAXDOUBLE DBL_MAX //1.7976931348623158e+308
#endif /* !MAXDOUBLE */
-#ifdef LINUX
+#if defined LINUX || defined FREEBSD
#define NCS_FQNAN NAN //0x0002
#define NCS_NAN NAN
#elif defined(SOLARIS)
@@ -299,7 +303,7 @@
#define MAX_PATH 1024
-#elif defined SOLARIS || defined LINUX || defined HPUX
+#elif defined SOLARIS || defined LINUX || defined HPUX || defined FREEBSD
#define MAX_PATH PATH_MAX

View File

@ -0,0 +1,11 @@
--- Source/include/NCSFileIO.h.orig 2009-04-05 21:25:23.000000000 +0400
+++ Source/include/NCSFileIO.h 2009-04-05 21:25:47.000000000 +0400
@@ -108,7 +108,7 @@
#define NCS_FILE_SEP "/"
#define NCS_FILE_SEP_T NCS_T("/")
-#elif defined SOLARIS || defined HPUX || defined LINUX
+#elif defined SOLARIS || defined HPUX || defined LINUX || defined FREEBSD
#include <sys/types.h>
#include <sys/stat.h>

View File

@ -0,0 +1,11 @@
--- Source/include/NCSJPCDefs.h.orig 2006-07-02 20:15:24.000000000 -0500
+++ Source/include/NCSJPCDefs.h 2009-03-16 14:00:27.000000000 -0500
@@ -59,7 +59,7 @@
// Use LCMS for ICC->RGB conversions, supports both
// restricted and full ICC profiles.
//
-#define NCSJPC_USE_LCMS
+//#define NCSJPC_USE_LCMS
//
// Use TinyXML for XML DOM Parsing

View File

@ -0,0 +1,12 @@
--- Source/include/NCSMalloc.h.orig 2009-04-05 21:19:51.000000000 +0400
+++ Source/include/NCSMalloc.h 2009-04-05 21:21:13.000000000 +0400
@@ -43,7 +43,9 @@
#else /* MACINTOSH */
+#ifndef FREEBSD
#include <malloc.h>
+#endif
#if defined SOLARIS || defined LINUX || defined HPUX
#include <string.h>

View File

@ -0,0 +1,12 @@
--- Source/include/NCSMisc.h.orig 2009-04-05 22:05:50.000000000 +0400
+++ Source/include/NCSMisc.h 2009-04-05 22:06:31.000000000 +0400
@@ -59,7 +59,8 @@
NCS_LINUX = 6, /* Linux */
NCS_PALM = 7, /* PalmOS (v2+) */
NCS_SOLARIS = 8, /* Solaris 2.5+ */
- NCS_HPUX = 9 /* HP-UX 11.0(64bit) */
+ NCS_HPUX = 9, /* HP-UX 11.0(64bit) */
+ NCS_FREEBSD = 10 /* FreeBSD */
} NCSPlatform;
void NCSFormatSizeText(INT64 nSizeBytes, char *buf);

View File

@ -0,0 +1,20 @@
--- Source/include/NCSMutex.h.orig 2009-04-05 21:26:21.000000000 +0400
+++ Source/include/NCSMutex.h 2009-04-05 21:27:18.000000000 +0400
@@ -114,7 +114,7 @@
#define NCS_NULL_MUTEX { PTHREAD_MUTEX_INITIALIZER }
-#elif defined LINUX
+#elif defined LINUX || defined FREEBSD
#define NCS_NULL_MUTEX PTHREAD_MUTEX_INITIALIZER
@@ -123,7 +123,7 @@
#else /* MACINTOSH */
-ERROR: Define NCS_NULL_MUTEX for this platform
+#error Define NCS_NULL_MUTEX for this platform
#endif /* WIN32 */

View File

@ -0,0 +1,11 @@
--- Source/include/NCSTypes.h.orig 2009-04-05 22:21:15.000000000 +0400
+++ Source/include/NCSTypes.h 2009-04-05 21:14:07.000000000 +0400
@@ -184,7 +184,7 @@
typedef longlong_t INT64; /* 64 bit signed integer */
typedef u_longlong_t UINT64; /* 64 bit unsigned integer */
-#elif defined(LINUX)
+#elif defined(LINUX) || defined FREEBSD
#define DWORD UINT32
typedef struct tagRECT {

View File

@ -0,0 +1,42 @@
--- configure.in.orig 2010-07-29 14:03:26.000000000 +0400
+++ configure.in 2010-07-29 14:02:39.000000000 +0400
@@ -32,17 +32,6 @@
# Build some standard absolute include paths for the build
MAIN_INCLUDE_DIR="$PWD/Source/include"
-LCMS_INCLUDE_DIR="$PWD/Source/C/NCSEcw/lcms/include"
-
-# Run configure in the LCMS directory (using LCMS's own configure script)
-# to initialise any platform dependent settings that it uses
-# (e.g. typedefs for int types)
-
-THISDIR=$PWD
-cd Source/C/NCSEcw/lcms
-chmod +x configure
-./configure
-cd $THISDIR
# Build LIBECWJ2_DEFS with all defines, and NCSGnuSystemDefs.h with defines
# needed by apps building against libecwj2.
@@ -76,6 +65,12 @@
PLATFORM_STATIC_LDFLAGS="$PLATFORM_STATIC_LDFLAGS -L/System/Library/Frameworks/Carbon.framework/Carbon"
PLATFORM_SHARED_LDFLAGS="$PLATFORM_SHARED_LDFLAGS $PLATFORM_STATIC_LDFLAGS -dynamiclib -single_module"
;;
+ *freebsd*)
+ PLATFORM_DEFS="FREEBSD"
+ PLATFORM_CFLAGS="$PLATFORM_CFLAGS -fpic"
+ PLATFORM_STATIC_LDFLAGS=""
+ PLATFORM_SHARED_LDFLAGS="$PLATFORM_SHARED_LDFLAGS $PLATFORM_STATIC_LDFLAGS"
+ ;;
*)
PLATFORM_DEFS=""
PLATFORM_STATIC_LDFLAGS=""
@@ -89,7 +84,7 @@
LIBECWJ2_CFLAGS="$PLATFORM_CFLAGS"
LIBECWJ2_STATIC_LDFLAGS="$PLATFORM_STATIC_LDFLAGS"
LIBECWJ2_SHARED_LDFLAGS="$PLATFORM_SHARED_LDFLAGS"
-LIBECWJ2_INCLUDES="-I$MAIN_INCLUDE_DIR -I$LCMS_INCLUDE_DIR"
+LIBECWJ2_INCLUDES="-I$MAIN_INCLUDE_DIR -I%%LOCALBASE%%/include"
rm -f Source/NCSBuildGnu/NCSGnuSystemDefs.h
echo "#ifndef LIBECWJ2" > Source/NCSBuildGnu/NCSGnuSystemDefs.h

View File

@ -0,0 +1,9 @@
ECW JPEG2000 Codec SDK allows software developers to add support
for the JPEG200 and ECW image formats into their own applications
(commercial, internal, server based workflow, etc).
JPEG2000 is an International Organization of Standardization (ISO)
image format. ECW is an industry standard for handling large
geospatial imagery.
WWW: http://www.ermapper.com/Products/ERDASProductInformation/tabid/84/currentid/1142/default.aspx

141
graphics/libecwj2/pkg-plist Normal file
View File

@ -0,0 +1,141 @@
include/CNCSMetabaseEdit.h
include/CNCSMultiSZ.h
include/ECW.h
include/JNCSEcwConfig.h
include/JNCSFile.h
include/NCSAffineTransform.h
include/NCSArray.h
include/NCSBase64.h
include/NCSBlockFile.h
include/NCSBuildNumber.h
include/NCSCoordinateConverter.h
include/NCSCoordinateSystem.h
include/NCSCoordinateTransform.h
include/NCSCrypto.h
include/NCSDefs.h
include/NCSDynamicLib.h
include/NCSECWClient.h
include/NCSECWCompress.h
include/NCSECWCompressClient.h
include/NCSEcw.h
include/NCSError.h
include/NCSErrors.h
include/NCSEvent.h
include/NCSExtent.h
include/NCSExtents.h
include/NCSFile.h
include/NCSFileIO.h
include/NCSGDTLocation.h
include/NCSGeoTIFFBoxUtil.h
include/NCSGnuConfig.h
include/NCSHelpContextID.h
include/NCSHuffmanCoder.h
include/NCSJP2Box.h
include/NCSJP2File.h
include/NCSJP2FileView.h
include/NCSJP2SuperBox.h
include/NCSJPC.h
include/NCSJPCBuffer.h
include/NCSJPCCOCMarker.h
include/NCSJPCCODMarker.h
include/NCSJPCCOMMarker.h
include/NCSJPCCRGMarker.h
include/NCSJPCCodeBlock.h
include/NCSJPCCodingStyleParameter.h
include/NCSJPCComponent.h
include/NCSJPCComponentDepthType.h
include/NCSJPCDCShiftNode.h
include/NCSJPCDefs.h
include/NCSJPCDump.h
include/NCSJPCEOCMarker.h
include/NCSJPCEPHMarker.h
include/NCSJPCEcwpIOStream.h
include/NCSJPCFileIOStream.h
include/NCSJPCICCNode.h
include/NCSJPCIOStream.h
include/NCSJPCMCTNode.h
include/NCSJPCMESNode.h
include/NCSJPCMQCoder.h
include/NCSJPCMainHeader.h
include/NCSJPCMarker.h
include/NCSJPCMemoryIOStream.h
include/NCSJPCNode.h
include/NCSJPCNodeTiler.h
include/NCSJPCPLMMarker.h
include/NCSJPCPLTMarker.h
include/NCSJPCPOCMarker.h
include/NCSJPCPPMMarker.h
include/NCSJPCPPTMarker.h
include/NCSJPCPacket.h
include/NCSJPCPacketLengthType.h
include/NCSJPCPaletteNode.h
include/NCSJPCPrecinct.h
include/NCSJPCProgression.h
include/NCSJPCProgressionOrderType.h
include/NCSJPCQCCMarker.h
include/NCSJPCQCDMarker.h
include/NCSJPCQuantizationParameter.h
include/NCSJPCRCTNode.h
include/NCSJPCRGNMarker.h
include/NCSJPCRect.h
include/NCSJPCResample.h
include/NCSJPCResolution.h
include/NCSJPCSIZMarker.h
include/NCSJPCSOCMarker.h
include/NCSJPCSODMarker.h
include/NCSJPCSOPMarker.h
include/NCSJPCSOTMarker.h
include/NCSJPCSegment.h
include/NCSJPCSubBand.h
include/NCSJPCT1Coder.h
include/NCSJPCTLMMarker.h
include/NCSJPCTagTree.h
include/NCSJPCTilePartHeader.h
include/NCSJPCTypes.h
include/NCSJPCYCbCr2RGBNode.h
include/NCSLog.h
include/NCSMalloc.h
include/NCSMemPool.h
include/NCSMisc.h
include/NCSMutex.h
include/NCSObject.h
include/NCSObjectList.h
include/NCSPackets.h
include/NCSPoint.h
include/NCSPrefs.h
include/NCSQuadTree.h
include/NCSQueue.h
include/NCSRenderer.h
include/NCSScreenPoint.h
include/NCSServerState.h
include/NCSString.h
include/NCSThread.h
include/NCSTimeStamp.h
include/NCSTimer.h
include/NCSTypes.h
include/NCSUtil.h
include/NCSWorldFile.h
include/NCSWorldPoint.h
include/NCScnet.h
include/NCSnet.h
include/gcs_erm.h
include/gdt_pub.h
include/gdt_stat.h
include/pcs_erm.h
lib/libNCSCnet.a
lib/libNCSCnet.la
lib/libNCSCnet.so
lib/libNCSCnet.so.0
lib/libNCSEcw.a
lib/libNCSEcw.la
lib/libNCSEcw.so
lib/libNCSEcw.so.0
lib/libNCSEcwC.a
lib/libNCSEcwC.la
lib/libNCSEcwC.so
lib/libNCSEcwC.so.0
lib/libNCSUtil.a
lib/libNCSUtil.la
lib/libNCSUtil.so
lib/libNCSUtil.so.0
lib/libecwj2.a