pcompress/bsc/makefile
Moinak Ghosh fb25e53b4f Add forked and optimized copy of LGPL version of Libbsc.
Strip out Sort Transform from Libbsc copy.
Reduce Libbsc memory use.
Avoid redundant adler32 of data block in Libbsc.
2013-11-30 22:13:33 +05:30

111 lines
3.3 KiB
Makefile

SHELL = /bin/sh
CC = g++
AR = ar
RANLIB = ranlib
CFLAGS = -g -Wall -fPIC
# Sort Transform is patented by Michael Schindler under US patent 6,199,064.
# However for research purposes this algorithm is included in this software.
# So if you are of the type who should worry about this (making money) worry away.
# The author shall have no liability with respect to the infringement of
# copyrights, trade secrets or any patents by this software. In no event will
# the author be liable for any lost revenue or profits or other special,
# indirect and consequential damages.
# Sort Transform is disabled by default and can be enabled by defining the
# preprocessor macro LIBBSC_SORT_TRANSFORM_SUPPORT at compile time.
#CFLAGS += -DLIBBSC_SORT_TRANSFORM_SUPPORT
# Comment out CFLAGS line below for compatability mode for 32bit file sizes
# (less than 2GB) and systems that have compilers that treat int as 64bit
# natively (ie: modern AIX)
CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
# Comment out CFLAGS line below to disable optimizations
CFLAGS += -O3 -fomit-frame-pointer -fstrict-aliasing
# Comment out CFLAGS line below to disable OpenMP optimizations
CFLAGS += -fopenmp -DLIBBSC_OPENMP_SUPPORT
# Comment out CFLAGS line below to enable debug output
CFLAGS += -DNDEBUG
# Where you want bsc installed when you do 'make install'
PREFIX = /usr
OBJS = \
adler32.o \
divsufsort.o \
bwt.o \
coder.o \
qlfc.o \
qlfc_model.o \
detectors.o \
preprocessing.o \
libbsc.o \
lzp.o \
platform.o \
all: libbsc.a bsc
bsc: libbsc.a bsc.cpp
$(CC) $(CFLAGS) bsc.cpp -o bsc -L. -lbsc
libbsc.a: $(OBJS)
rm -f libbsc.a
$(AR) cq libbsc.a $(OBJS)
@if ( test -f $(RANLIB) -o -f /usr/bin/ranlib -o \
-f /bin/ranlib -o -f /usr/ccs/bin/ranlib ) ; then \
echo $(RANLIB) libbsc.a ; \
$(RANLIB) libbsc.a ; \
fi
install: libbsc.a bsc
if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi
if ( test ! -d $(PREFIX)/lib ) ; then mkdir -p $(PREFIX)/lib ; fi
if ( test ! -d $(PREFIX)/include ) ; then mkdir -p $(PREFIX)/include ; fi
cp -f bsc $(PREFIX)/bin/bsc
chmod a+x $(PREFIX)/bin/bsc
cp -f libbsc/libbsc.h $(PREFIX)/include
chmod a+r $(PREFIX)/include/libbsc.h
cp -f libbsc.a $(PREFIX)/lib
chmod a+r $(PREFIX)/lib/libbsc.a
clean:
rm -f *.o libbsc.a bsc
adler32.o: libbsc/adler32/adler32.cpp
$(CC) $(CFLAGS) -c libbsc/adler32/adler32.cpp
divsufsort.o: libbsc/bwt/divsufsort/divsufsort.c
$(CC) $(CFLAGS) -c libbsc/bwt/divsufsort/divsufsort.c
bwt.o: libbsc/bwt/bwt.cpp
$(CC) $(CFLAGS) -c libbsc/bwt/bwt.cpp
coder.o: libbsc/coder/coder.cpp
$(CC) $(CFLAGS) -c libbsc/coder/coder.cpp
qlfc.o: libbsc/coder/qlfc/qlfc.cpp
$(CC) $(CFLAGS) -c libbsc/coder/qlfc/qlfc.cpp
qlfc_model.o: libbsc/coder/qlfc/qlfc_model.cpp
$(CC) $(CFLAGS) -c libbsc/coder/qlfc/qlfc_model.cpp
detectors.o: libbsc/filters/detectors.cpp
$(CC) $(CFLAGS) -c libbsc/filters/detectors.cpp
preprocessing.o: libbsc/filters/preprocessing.cpp
$(CC) $(CFLAGS) -c libbsc/filters/preprocessing.cpp
libbsc.o: libbsc/libbsc/libbsc.cpp
$(CC) $(CFLAGS) -c libbsc/libbsc/libbsc.cpp
lzp.o: libbsc/lzp/lzp.cpp
$(CC) $(CFLAGS) -c libbsc/lzp/lzp.cpp
platform.o: libbsc/platform/platform.cpp
$(CC) $(CFLAGS) -c libbsc/platform/platform.cpp