Skip to content

Commit

Permalink
Merge pull request #83 from orbea/build
Browse files Browse the repository at this point in the history
build: add optional USE_EXTERNAL_LIBDEFLATE
  • Loading branch information
unknownbrackets committed Jan 26, 2024
2 parents e4bdee1 + 4949344 commit dd369e3
Showing 1 changed file with 30 additions and 19 deletions.
49 changes: 30 additions & 19 deletions Makefile
@@ -1,5 +1,7 @@
SRCDIR := $(abspath $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST))))))

USE_EXTERNAL_LIBDEFLATE ?= 0

PREFIX ?= /usr/local
BINDIR ?= $(PREFIX)/bin
MANDIR ?= $(PREFIX)/share/man
Expand All @@ -12,14 +14,14 @@ CXXFLAGS ?= $(CFLAGS)

PKG_CONFIG ?= pkg-config

CFLAGS_UV := $(shell $(PKG_CONFIG) --cflags libuv)
LIBS_UV := $(shell $(PKG_CONFIG) --libs libuv)
CFLAGS_UV = $(shell $(PKG_CONFIG) --cflags libuv)
LIBS_UV = $(shell $(PKG_CONFIG) --libs libuv)

CFLAGS_LZ4 := $(shell $(PKG_CONFIG) --cflags liblz4)
LIBS_LZ4 := $(shell $(PKG_CONFIG) --libs liblz4)
CFLAGS_LZ4 = $(shell $(PKG_CONFIG) --cflags liblz4)
LIBS_LZ4 = $(shell $(PKG_CONFIG) --libs liblz4)

CFLAGS_ZLIB := $(shell $(PKG_CONFIG) --cflags zlib)
LIBS_ZLIB := $(shell $(PKG_CONFIG) --libs zlib)
CFLAGS_ZLIB = $(shell $(PKG_CONFIG) --cflags zlib)
LIBS_ZLIB = $(shell $(PKG_CONFIG) --libs zlib)

DEP_FLAGS := $(CFLAGS_UV) $(CFLAGS_LZ4) $(CFLAGS_ZLIB)
LIBS := $(LIBS_UV) $(LIBS_LZ4) $(LIBS_ZLIB)
Expand Down Expand Up @@ -50,26 +52,39 @@ ZOPFLI_C_SRC := $(ZOPFLI_C_DIR)/blocksplitter.c $(ZOPFLI_C_DIR)/cache.c \
ZOPFLI_C_TMP := $(ZOPFLI_C_SRC:.c=.o)
ZOPFLI_C_OBJ := $(patsubst $(SRCDIR)/%,$(OBJDIR)/%,$(ZOPFLI_C_TMP))

EXTRA_LIBS =
ifeq ($(OS),Windows_NT)
LIBDEFLATE=libdeflatestatic.lib
EXTRA_LIBS += -luuid
LIBDEFLATE := libdeflatestatic.lib
LIBS += -luuid
else
LIBDEFLATE := libdeflate.a
endif

SRC_7ZIP := $(OBJDIR)/7zip/7zip.a
SRC_LIBDEFLATE := $(SRCDIR)/libdeflate/$(LIBDEFLATE)

OBJS := $(SRC_CXX_OBJ) $(CLI_CXX_OBJ) $(ZOPFLI_C_OBJ) $(SRC_7ZIP)

ifeq ($(USE_EXTERNAL_LIBDEFLATE), 0)
OBJS += $(SRC_LIBDEFLATE)
else
LIBDEFLATE=libdeflate.a
CFLAGS_LIBDEFLATE = $(shell $(PKG_CONFIG) --cflags libdeflate)
LIBS_LIBDEFLATE = $(shell $(PKG_CONFIG) --libs libdeflate)
SRC_CXXFLAGS += $(CFLAGS_LIBDEFLATE)
LIBS += $(LIBS_LIBDEFLATE)
endif

SRC_7ZIP = $(OBJDIR)/7zip/7zip.a
SRC_LIBDEFLATE = $(SRCDIR)/libdeflate/$(LIBDEFLATE)
.PHONY: all clean install uninstall

all: maxcso

$(OBJDIR)/%.o: $(SRCDIR)/%.cpp $(OBJDIR)/.done
$(CXX) -c $(SRC_CXXFLAGS) $(CXXFLAGS) -o $@ $<

$(OBJDIR)/%.o: $(SRCDIR)/%.c $(OBJDIR)/.done
$(CC) -c $(SRC_CFLAGS) $(CFLAGS) -o $@ $<

# TODO: Perhaps detect and use system libdeflate if available.
maxcso: $(SRC_CXX_OBJ) $(CLI_CXX_OBJ) $(ZOPFLI_C_OBJ) $(SRC_7ZIP) $(SRC_LIBDEFLATE)
$(CXX) $(LDFLAGS) -o $@ $(SRC_CXXFLAGS) $(CXXFLAGS) $^ $(LIBS) $(EXTRA_LIBS)
maxcso: $(OBJS)
$(CXX) $(LDFLAGS) -o $@ $(SRC_CXXFLAGS) $(CXXFLAGS) $^ $(LIBS)

$(SRC_7ZIP):
$(MAKE) -f $(SRCDIR)/7zip/Makefile 7zip.a
Expand Down Expand Up @@ -97,7 +112,3 @@ clean:
rm -rf -- $(OBJDIR)
rm -f maxcso
$(MAKE) -C $(SRCDIR)/libdeflate clean

all: maxcso

.PHONY: clean all

0 comments on commit dd369e3

Please sign in to comment.