Hook up liblzma, lzmainfo, xz, and xzdec to the build.
authorPeter Avalos <pavalos@dragonflybsd.org>
Sun, 19 Dec 2010 06:26:34 +0000 (20:26 -1000)
committerPeter Avalos <pavalos@dragonflybsd.org>
Sun, 19 Dec 2010 08:01:10 +0000 (22:01 -1000)
contrib/xz/README.DRAGONFLY [new file with mode: 0644]
etc/mtree/BSD.include.dist
lib/Makefile
lib/liblzma/Makefile [new file with mode: 0644]
lib/liblzma/config.h [new file with mode: 0644]
share/mk/bsd.libnames.mk
usr.bin/Makefile
usr.bin/lzmainfo/Makefile [new file with mode: 0644]
usr.bin/xz/Makefile [new file with mode: 0644]
usr.bin/xzdec/Makefile [new file with mode: 0644]

diff --git a/contrib/xz/README.DRAGONFLY b/contrib/xz/README.DRAGONFLY
new file mode 100644 (file)
index 0000000..450b16d
--- /dev/null
@@ -0,0 +1,11 @@
+This is XZ Utils imported from:
+http://tukaani.org/xz/
+
+When upgrading, remember to update config.h in lib/liblzma.
+./configure --disable-nls
+
+Used in:
+lib/liblzma
+usr.bin/lzmainfo
+usr.bin/xz
+usr.bin/xzdec
index cce38ac..828e645 100644 (file)
     ..
     libprop
     ..
+    lzma
+    ..
     machine
         pc
         ..
index 84a7ed4..dbd8f25 100644 (file)
@@ -59,6 +59,7 @@ SUBDIR=       ${SUBDIR_ORDERED} \
        libkinfo \
        libkvm \
        libldns \
+       liblzma \
        libm \
        libmagic \
        ${_libmilter} \
diff --git a/lib/liblzma/Makefile b/lib/liblzma/Makefile
new file mode 100644 (file)
index 0000000..c6ae0d8
--- /dev/null
@@ -0,0 +1,125 @@
+LIB=   lzma
+LZMADIR=       ${.CURDIR}/../../contrib/xz/src/liblzma
+
+.PATH: ${LZMADIR}/api/lzma
+MAININCS=      ../lzma.h
+LZMAINCS=      base.h \
+               bcj.h \
+               block.h \
+               check.h \
+               container.h \
+               delta.h \
+               filter.h \
+               hardware.h \
+               index.h \
+               index_hash.h \
+               lzma.h \
+               stream_flags.h \
+               version.h \
+               vli.h
+LZMAINCSDIR=   ${INCLUDEDIR}/lzma
+INCSGROUPS=    MAININCS LZMAINCS
+
+.PATH: ${LZMADIR}/../common
+SRCS+= tuklib_physmem.c
+
+.PATH: ${LZMADIR}/common
+SRCS+= common.c \
+       block_util.c \
+       easy_preset.c \
+       filter_common.c \
+       hardware_physmem.c \
+       index.c \
+       stream_flags_common.c \
+       vli_size.c \
+       alone_encoder.c \
+       block_buffer_encoder.c \
+       block_encoder.c \
+       block_header_encoder.c \
+       easy_buffer_encoder.c \
+       easy_encoder.c \
+       easy_encoder_memusage.c \
+       filter_buffer_encoder.c \
+       filter_encoder.c \
+       filter_flags_encoder.c \
+       index_encoder.c \
+       stream_buffer_encoder.c \
+       stream_encoder.c \
+       stream_flags_encoder.c \
+       vli_encoder.c \
+       alone_decoder.c \
+       auto_decoder.c \
+       block_buffer_decoder.c \
+       block_decoder.c \
+       block_header_decoder.c \
+       easy_decoder_memusage.c \
+       filter_buffer_decoder.c \
+       filter_decoder.c \
+       filter_flags_decoder.c \
+       index_decoder.c \
+       index_hash.c \
+       stream_buffer_decoder.c \
+       stream_decoder.c \
+       stream_flags_decoder.c \
+       vli_decoder.c
+
+.PATH: ${LZMADIR}/check
+SRCS+= check.c \
+       crc32_table.c \
+       crc64_table.c \
+       sha256.c
+.if ${MACHINE_ARCH} == "i386"
+SRCS+= crc32_x86.S crc64_x86.S
+.else
+SRCS+= crc32_fast.c crc64_fast.c
+.endif
+
+.PATH: ${LZMADIR}/lz
+SRCS+= lz_encoder.c \
+       lz_encoder_mf.c \
+       lz_decoder.c
+
+.PATH: ${LZMADIR}/lzma
+SRCS+= lzma_encoder.c \
+       lzma_encoder_presets.c \
+       lzma_encoder_optimum_fast.c \
+       lzma_encoder_optimum_normal.c \
+       fastpos_table.c \
+       lzma_decoder.c \
+       lzma2_encoder.c \
+       lzma2_decoder.c
+
+.PATH: ${LZMADIR}/rangecoder
+SRCS+= price_table.c
+
+.PATH: ${LZMADIR}/delta
+SRCS+= delta_common.c \
+       delta_encoder.c \
+       delta_decoder.c
+
+.PATH: ${LZMADIR}/simple
+SRCS+= simple_coder.c \
+       simple_encoder.c \
+       simple_decoder.c \
+       x86.c \
+       powerpc.c \
+       ia64.c \
+       arm.c \
+       armthumb.c \
+       sparc.c
+
+WARNS?=        3
+CSTD=  gnu99
+CFLAGS+= -DHAVE_CONFIG_H -DTUKLIB_SYMBOL_PREFIX=lzma_ \
+       -I${.CURDIR} \
+       -I${LZMADIR}/api \
+       -I${LZMADIR}/common \
+       -I${LZMADIR}/check \
+       -I${LZMADIR}/lz \
+       -I${LZMADIR}/rangecoder \
+       -I${LZMADIR}/lzma \
+       -I${LZMADIR}/delta \
+       -I${LZMADIR}/simple \
+       -I${LZMADIR}/../common
+
+.include <bsd.lib.mk>
diff --git a/lib/liblzma/config.h b/lib/liblzma/config.h
new file mode 100644 (file)
index 0000000..0e7c96a
--- /dev/null
@@ -0,0 +1,421 @@
+/* config.h.  Generated from config.h.in by configure.  */
+/* config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+
+/* How many MiB of RAM to assume if the real amount cannot be determined. */
+#define ASSUME_RAM 128
+
+/* Define to 1 if translation of program messages to the user's native
+   language is requested. */
+/* #undef ENABLE_NLS */
+
+/* Define to 1 if bswap_16 is available. */
+/* #undef HAVE_BSWAP_16 */
+
+/* Define to 1 if bswap_32 is available. */
+/* #undef HAVE_BSWAP_32 */
+
+/* Define to 1 if bswap_64 is available. */
+/* #undef HAVE_BSWAP_64 */
+
+/* Define to 1 if you have the <byteswap.h> header file. */
+/* #undef HAVE_BYTESWAP_H */
+
+/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
+   CoreFoundation framework. */
+/* #undef HAVE_CFLOCALECOPYCURRENT */
+
+/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
+   the CoreFoundation framework. */
+/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */
+
+/* Define to 1 if crc32 integrity check is enabled. */
+#define HAVE_CHECK_CRC32 1
+
+/* Define to 1 if crc64 integrity check is enabled. */
+#define HAVE_CHECK_CRC64 1
+
+/* Define to 1 if sha256 integrity check is enabled. */
+#define HAVE_CHECK_SHA256 1
+
+/* Define if the GNU dcgettext() function is already present or preinstalled.
+   */
+/* #undef HAVE_DCGETTEXT */
+
+/* Define to 1 if you have the declaration of `program_invocation_name', and
+   to 0 if you don't. */
+#define HAVE_DECL_PROGRAM_INVOCATION_NAME 0
+
+/* Define to 1 if arm decoder is enabled. */
+#define HAVE_DECODER_ARM 1
+
+/* Define to 1 if armthumb decoder is enabled. */
+#define HAVE_DECODER_ARMTHUMB 1
+
+/* Define to 1 if delta decoder is enabled. */
+#define HAVE_DECODER_DELTA 1
+
+/* Define to 1 if ia64 decoder is enabled. */
+#define HAVE_DECODER_IA64 1
+
+/* Define to 1 if lzma1 decoder is enabled. */
+#define HAVE_DECODER_LZMA1 1
+
+/* Define to 1 if lzma2 decoder is enabled. */
+#define HAVE_DECODER_LZMA2 1
+
+/* Define to 1 if powerpc decoder is enabled. */
+#define HAVE_DECODER_POWERPC 1
+
+/* Define to 1 if sparc decoder is enabled. */
+#define HAVE_DECODER_SPARC 1
+
+/* Define to 1 if x86 decoder is enabled. */
+#define HAVE_DECODER_X86 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if arm encoder is enabled. */
+#define HAVE_ENCODER_ARM 1
+
+/* Define to 1 if armthumb encoder is enabled. */
+#define HAVE_ENCODER_ARMTHUMB 1
+
+/* Define to 1 if delta encoder is enabled. */
+#define HAVE_ENCODER_DELTA 1
+
+/* Define to 1 if ia64 encoder is enabled. */
+#define HAVE_ENCODER_IA64 1
+
+/* Define to 1 if lzma1 encoder is enabled. */
+#define HAVE_ENCODER_LZMA1 1
+
+/* Define to 1 if lzma2 encoder is enabled. */
+#define HAVE_ENCODER_LZMA2 1
+
+/* Define to 1 if powerpc encoder is enabled. */
+#define HAVE_ENCODER_POWERPC 1
+
+/* Define to 1 if sparc encoder is enabled. */
+#define HAVE_ENCODER_SPARC 1
+
+/* Define to 1 if x86 encoder is enabled. */
+#define HAVE_ENCODER_X86 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the `futimens' function. */
+/* #undef HAVE_FUTIMENS */
+
+/* Define to 1 if you have the `futimes' function. */
+#define HAVE_FUTIMES 1
+
+/* Define to 1 if you have the `futimesat' function. */
+/* #undef HAVE_FUTIMESAT */
+
+/* Define to 1 if you have the <getopt.h> header file. */
+#define HAVE_GETOPT_H 1
+
+/* Define to 1 if you have the `getopt_long' function. */
+#define HAVE_GETOPT_LONG 1
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+/* #undef HAVE_GETTEXT */
+
+/* Define if you have the iconv() function. */
+/* #undef HAVE_ICONV */
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 if mbrtowc and mbstate_t are properly declared. */
+#define HAVE_MBRTOWC 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 to enable bt2 match finder. */
+#define HAVE_MF_BT2 1
+
+/* Define to 1 to enable bt3 match finder. */
+#define HAVE_MF_BT3 1
+
+/* Define to 1 to enable bt4 match finder. */
+#define HAVE_MF_BT4 1
+
+/* Define to 1 to enable hc3 match finder. */
+#define HAVE_MF_HC3 1
+
+/* Define to 1 to enable hc4 match finder. */
+#define HAVE_MF_HC4 1
+
+/* Define to 1 if getopt.h declares extern int optreset. */
+#define HAVE_OPTRESET 1
+
+/* Define if you have POSIX threads libraries and header files. */
+#define HAVE_PTHREAD 1
+
+/* Define to 1 if optimizing for size. */
+/* #undef HAVE_SMALL */
+
+/* Define to 1 if stdbool.h conforms to C99. */
+#define HAVE_STDBOOL_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if `st_atimensec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_ATIMENSEC */
+
+/* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1
+
+/* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC */
+
+/* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
+
+/* Define to 1 if `st_uatime' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_UATIME */
+
+/* Define to 1 if you have the <sys/byteorder.h> header file. */
+/* #undef HAVE_SYS_BYTEORDER_H */
+
+/* Define to 1 if you have the <sys/endian.h> header file. */
+#define HAVE_SYS_ENDIAN_H 1
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if the system has the type `uintptr_t'. */
+#define HAVE_UINTPTR_T 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the `utime' function. */
+/* #undef HAVE_UTIME */
+
+/* Define to 1 if you have the `utimes' function. */
+/* #undef HAVE_UTIMES */
+
+/* Define to 1 or 0, depending whether the compiler supports simple visibility
+   declarations. */
+#define HAVE_VISIBILITY 1
+
+/* Define to 1 if you have the `wcwidth' function. */
+#define HAVE_WCWIDTH 1
+
+/* Define to 1 if the system has the type `_Bool'. */
+#define HAVE__BOOL 1
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#define LT_OBJDIR ".libs/"
+
+/* Define to 1 to disable debugging code. */
+#define NDEBUG 1
+
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+/* #undef NO_MINUS_C_MINUS_O */
+
+/* Name of package */
+#define PACKAGE "xz"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "lasse.collin@tukaani.org"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "XZ Utils"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "XZ Utils 5.0.0"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "xz"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL "http://tukaani.org/xz/"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "5.0.0"
+
+/* Define to necessary symbol if this constant uses a non-standard name on
+   your system. */
+/* #undef PTHREAD_CREATE_JOINABLE */
+
+/* The size of `size_t', as computed by sizeof. */
+#define SIZEOF_SIZE_T 4
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if the number of available CPU cores can be detected with
+   pstat_getdynamic(). */
+/* #undef TUKLIB_CPUCORES_PSTAT_GETDYNAMIC */
+
+/* Define to 1 if the number of available CPU cores can be detected with
+   sysconf(_SC_NPROCESSORS_ONLN) or sysconf(_SC_NPROC_ONLN). */
+/* #undef TUKLIB_CPUCORES_SYSCONF */
+
+/* Define to 1 if the number of available CPU cores can be detected with
+   sysctl(). */
+#define TUKLIB_CPUCORES_SYSCTL 1
+
+/* Define to 1 if the system supports fast unaligned access to 16-bit and
+   32-bit integers. */
+#define TUKLIB_FAST_UNALIGNED_ACCESS 1
+
+/* Define to 1 if the amount of physical memory can be detected with
+   _system_configuration.physmem. */
+/* #undef TUKLIB_PHYSMEM_AIX */
+
+/* Define to 1 if the amount of physical memory can be detected with
+   getinvent_r(). */
+/* #undef TUKLIB_PHYSMEM_GETINVENT_R */
+
+/* Define to 1 if the amount of physical memory can be detected with
+   getsysinfo(). */
+/* #undef TUKLIB_PHYSMEM_GETSYSINFO */
+
+/* Define to 1 if the amount of physical memory can be detected with
+   pstat_getstatic(). */
+/* #undef TUKLIB_PHYSMEM_PSTAT_GETSTATIC */
+
+/* Define to 1 if the amount of physical memory can be detected with
+   sysconf(_SC_PAGESIZE) and sysconf(_SC_PHYS_PAGES). */
+#define TUKLIB_PHYSMEM_SYSCONF 1
+
+/* Define to 1 if the amount of physical memory can be detected with sysctl().
+   */
+/* #undef TUKLIB_PHYSMEM_SYSCTL */
+
+/* Define to 1 if the amount of physical memory can be detected with Linux
+   sysinfo(). */
+/* #undef TUKLIB_PHYSMEM_SYSINFO */
+
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+
+
+/* Version number of package */
+#define VERSION "5.0.0"
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+   significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+#  define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* #  undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* Define for large files, on AIX-style hosts. */
+/* #undef _LARGE_FILES */
+
+/* Define to 1 if on MINIX. */
+/* #undef _MINIX */
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+   this defined. */
+/* #undef _POSIX_1_SOURCE */
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+/* #undef _POSIX_SOURCE */
+
+/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
+   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
+   #define below would cause a syntax error. */
+/* #undef _UINT32_T */
+
+/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
+   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
+   #define below would cause a syntax error. */
+/* #undef _UINT64_T */
+
+/* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>,
+   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
+   #define below would cause a syntax error. */
+/* #undef _UINT8_T */
+
+/* Define to rpl_ if the getopt replacement functions and variables should be
+   used. */
+/* #undef __GETOPT_PREFIX */
+
+/* Define to the type of a signed integer type of width exactly 32 bits if
+   such a type exists and the standard includes do not define it. */
+/* #undef int32_t */
+
+/* Define to the type of a signed integer type of width exactly 64 bits if
+   such a type exists and the standard includes do not define it. */
+/* #undef int64_t */
+
+/* Define to the type of an unsigned integer type of width exactly 16 bits if
+   such a type exists and the standard includes do not define it. */
+/* #undef uint16_t */
+
+/* Define to the type of an unsigned integer type of width exactly 32 bits if
+   such a type exists and the standard includes do not define it. */
+/* #undef uint32_t */
+
+/* Define to the type of an unsigned integer type of width exactly 64 bits if
+   such a type exists and the standard includes do not define it. */
+/* #undef uint64_t */
+
+/* Define to the type of an unsigned integer type of width exactly 8 bits if
+   such a type exists and the standard includes do not define it. */
+/* #undef uint8_t */
+
+/* Define to the type of an unsigned integer type wide enough to hold a
+   pointer, if such a type exists, and if the system does not define it. */
+/* #undef uintptr_t */
index c43f3fe..5dbd953 100644 (file)
@@ -58,6 +58,7 @@ LIBKINFO?=    ${DESTDIR}${LIBDIR}/libkinfo.a
 LIBKVM?=       ${DESTDIR}${LIBDIR}/libkvm.a
 LIBL?=         ${DESTDIR}${LIBDIR}/libl.a
 LIBLN?=                "don't use LIBLN, use LIBL"
+LIBLZMA?=      ${DESTDIR}${LIBDIR}/liblzma.a
 LIBM?=         ${DESTDIR}${LIBDIR}/libm.a
 LIBMAGIC?=     ${DESTDIR}${LIBDIR}/libmagic.a
 LIBMD?=                ${DESTDIR}${LIBDIR}/libmd.a
index 7bef2c9..8be9f54 100644 (file)
@@ -110,6 +110,7 @@ SUBDIR=     alias \
        lorder \
        lsvfs \
        lt \
+       lzmainfo \
        m4 \
        mail \
        make \
@@ -230,6 +231,8 @@ SUBDIR=     alias \
        xinstall \
        xlint \
        xstr \
+       xz \
+       xzdec \
        yacc \
        yes \
        ypcat \
diff --git a/usr.bin/lzmainfo/Makefile b/usr.bin/lzmainfo/Makefile
new file mode 100644 (file)
index 0000000..e738f15
--- /dev/null
@@ -0,0 +1,18 @@
+PROG=  lzmainfo
+
+XZDIR= ${.CURDIR}/../../contrib/xz/src
+
+.PATH: ${XZDIR}/lzmainfo
+SRCS=  lzmainfo.c
+
+.PATH: ${XZDIR}/common
+SRCS+= tuklib_progname.c tuklib_exit.c
+
+CSTD?= gnu99
+CFLAGS+= -DHAVE_CONFIG_H
+CFLAGS+= -I${.CURDIR}/../../lib/liblzma -I${XZDIR}/common
+
+DPADD= ${LIBLZMA}
+LDADD= -llzma
+
+.include <bsd.prog.mk>
diff --git a/usr.bin/xz/Makefile b/usr.bin/xz/Makefile
new file mode 100644 (file)
index 0000000..55aaafd
--- /dev/null
@@ -0,0 +1,45 @@
+PROG=  xz
+
+LINKS= ${BINDIR}/xz ${BINDIR}/unxz
+LINKS+=        ${BINDIR}/xz ${BINDIR}/xzcat
+LINKS+=        ${BINDIR}/xz ${BINDIR}/lzma
+LINKS+=        ${BINDIR}/xz ${BINDIR}/unlzma
+LINKS+=        ${BINDIR}/xz ${BINDIR}/lzcat
+MLINKS=        xz.1 unxz.1 \
+       xz.1 xzcat.1 \
+       xz.1 lzma.1 \
+       xz.1 unlzma.1 \
+       xz.1 lzcat.1
+
+XZDIR= ${.CURDIR}/../../contrib/xz/src
+
+.PATH: ${XZDIR}/xz
+SRCS=  args.c \
+       coder.c \
+       file_io.c \
+       hardware.c \
+       list.c \
+       main.c \
+       message.c \
+       options.c \
+       signals.c \
+       suffix.c \
+       util.c
+
+.PATH: ${XZDIR}/common
+SRCS+= tuklib_open_stdxxx.c \
+       tuklib_progname.c \
+       tuklib_exit.c \
+       tuklib_cpucores.c \
+       tuklib_mbstr_width.c \
+       tuklib_mbstr_fw.c
+
+WARNS?=        3
+CSTD?= gnu99
+CFLAGS+= -DHAVE_CONFIG_H
+CFLAGS+= -I${.CURDIR}/../../lib/liblzma -I${XZDIR}/common
+
+DPADD= ${LIBLZMA}
+LDADD= -llzma
+
+.include <bsd.prog.mk>
diff --git a/usr.bin/xzdec/Makefile b/usr.bin/xzdec/Makefile
new file mode 100644 (file)
index 0000000..e77e3f9
--- /dev/null
@@ -0,0 +1,21 @@
+PROG=  xzdec
+
+LINKS= ${BINDIR}/xzdec ${BINDIR}/lzdec
+MLINKS=        xzdec.1 lzdec.1
+
+XZDIR= ${.CURDIR}/../../contrib/xz/src
+
+.PATH: ${XZDIR}/xzdec
+SRCS=  xzdec.c
+
+.PATH: ${XZDIR}/common
+SRCS+= tuklib_progname.c tuklib_exit.c
+
+CSTD?= gnu99
+CFLAGS+= -DHAVE_CONFIG_H
+CFLAGS+= -I${.CURDIR}/../../lib/liblzma -I${XZDIR}/common
+
+DPADD= ${LIBLZMA}
+LDADD= -llzma
+
+.include <bsd.prog.mk>