Skip to content

Commit

Permalink
makefile improvements, enable dynamic library
Browse files Browse the repository at this point in the history
  • Loading branch information
i0ntempest committed Feb 4, 2025
1 parent cb2ceeb commit 4c16f47
Showing 1 changed file with 38 additions and 24 deletions.
62 changes: 38 additions & 24 deletions makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
SHELL = /bin/sh
UNAME_S := $(shell uname -s)

CC = clang++
AR = ar
RANLIB = ranlib
ifeq ($(UNAME_S),Darwin)
LIBEXT = dylib
else
LIBEXT = so
endif

CFLAGS = -g -Wall
CC ?= clang
CXX ?= clang++
AR ?= ar
RANLIB ?= ranlib

CFLAGS ?= -g -Wall

# 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
Expand All @@ -30,7 +38,7 @@ CFLAGS += -DLIBBSC_SORT_TRANSFORM_SUPPORT
CFLAGS += -DLIBBSC_ALLOW_UNALIGNED_ACCESS

# Where you want bsc installed when you do 'make install'
PREFIX = /usr
PREFIX ?= /usr

OBJS = \
adler32.o \
Expand All @@ -46,21 +54,25 @@ OBJS = \
st.o \
bwt.o \

all: libbsc.a bsc
all: libbsc.a bsc libbsc.$(LIBEXT)

bsc: libbsc.a bsc.cpp
$(CC) $(CFLAGS) bsc.cpp -o bsc -L. -lbsc
$(CXX) $(CFLAGS) $(LDFLAGS) bsc.cpp -o $@ $<

libbsc.a: $(OBJS)
rm -f libbsc.a
$(AR) cq libbsc.a $(OBJS)
rm -f $@
$(AR) cq $@ $(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 ; \
echo $(RANLIB) $@ ; \
$(RANLIB) $@ ; \
fi

install: libbsc.a bsc
libbsc.$(LIBEXT): $(OBJS)
rm -f $@
$(CC) $(CFLAGS) -fPIC -shared $(LDFLAGS) -o $@ $(OBJS)

install: libbsc.a bsc libbsc.$(LIBEXT)
if ( test ! -d $(DESTDIR)$(PREFIX)/bin ) ; then mkdir -p $(DESTDIR)$(PREFIX)/bin ; fi
if ( test ! -d $(DESTDIR)$(PREFIX)/lib ) ; then mkdir -p $(DESTDIR)$(PREFIX)/lib ; fi
if ( test ! -d $(DESTDIR)$(PREFIX)/include ) ; then mkdir -p $(DESTDIR)$(PREFIX)/include ; fi
Expand All @@ -70,42 +82,44 @@ install: libbsc.a bsc
chmod a+r $(DESTDIR)$(PREFIX)/include/libbsc.h
cp -f libbsc.a $(DESTDIR)$(PREFIX)/lib
chmod a+r $(DESTDIR)$(PREFIX)/lib/libbsc.a
cp -f libbsc.$(LIBEXT) $(DESTDIR)$(PREFIX)/lib
chmod a+r $(DESTDIR)$(PREFIX)/lib/libbsc.$(LIBEXT)

clean:
rm -f *.o libbsc.a bsc
rm -rf *.o libbsc.a libbsc.$(LIBEXT) bsc bsc.dSYM

adler32.o: libbsc/adler32/adler32.cpp
$(CC) $(CFLAGS) -c libbsc/adler32/adler32.cpp
$(CXX) $(CFLAGS) -c libbsc/adler32/adler32.cpp

libsais.o: libbsc/bwt/libsais/libsais.c
$(CC) $(CFLAGS) -c libbsc/bwt/libsais/libsais.c

coder.o: libbsc/coder/coder.cpp
$(CC) $(CFLAGS) -c libbsc/coder/coder.cpp
$(CXX) $(CFLAGS) -c libbsc/coder/coder.cpp

qlfc.o: libbsc/coder/qlfc/qlfc.cpp
$(CC) $(CFLAGS) -c libbsc/coder/qlfc/qlfc.cpp
$(CXX) $(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
$(CXX) $(CFLAGS) -c libbsc/coder/qlfc/qlfc_model.cpp

detectors.o: libbsc/filters/detectors.cpp
$(CC) $(CFLAGS) -c libbsc/filters/detectors.cpp
$(CXX) $(CFLAGS) -c libbsc/filters/detectors.cpp

preprocessing.o: libbsc/filters/preprocessing.cpp
$(CC) $(CFLAGS) -c libbsc/filters/preprocessing.cpp
$(CXX) $(CFLAGS) -c libbsc/filters/preprocessing.cpp

libbsc.o: libbsc/libbsc/libbsc.cpp
$(CC) $(CFLAGS) -c libbsc/libbsc/libbsc.cpp
$(CXX) $(CFLAGS) -c libbsc/libbsc/libbsc.cpp

lzp.o: libbsc/lzp/lzp.cpp
$(CC) $(CFLAGS) -c libbsc/lzp/lzp.cpp
$(CXX) $(CFLAGS) -c libbsc/lzp/lzp.cpp

platform.o: libbsc/platform/platform.cpp
$(CC) $(CFLAGS) -c libbsc/platform/platform.cpp
$(CXX) $(CFLAGS) -c libbsc/platform/platform.cpp

st.o: libbsc/st/st.cpp
$(CC) $(CFLAGS) -c libbsc/st/st.cpp
$(CXX) $(CFLAGS) -c libbsc/st/st.cpp

bwt.o: libbsc/bwt/bwt.cpp
$(CC) $(CFLAGS) -c libbsc/bwt/bwt.cpp
$(CXX) $(CFLAGS) -c libbsc/bwt/bwt.cpp

0 comments on commit 4c16f47

Please sign in to comment.