119 lines
3.5 KiB
Makefile
119 lines
3.5 KiB
Makefile
# ##########################################################################
|
|
# Copyright (c) 2016-present, Facebook, Inc.
|
|
# All rights reserved.
|
|
#
|
|
# This source code is licensed under the BSD-style license found in the
|
|
# LICENSE file in the root directory of this source tree. An additional grant
|
|
# of patent rights can be found in the PATENTS file in the same directory.
|
|
# ##########################################################################
|
|
|
|
ZSTDDIR = ../../lib
|
|
PROGDIR = ../../programs
|
|
|
|
CPPFLAGS = -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(PROGDIR) -I.
|
|
CXXFLAGS ?= -O3
|
|
CXXFLAGS += -std=c++11
|
|
CXXFLAGS += $(MOREFLAGS)
|
|
FLAGS = $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS)
|
|
|
|
|
|
ZSTDCOMMON_FILES := $(ZSTDDIR)/common/*.c
|
|
ZSTDCOMP_FILES := $(ZSTDDIR)/compress/zstd_compress.c $(ZSTDDIR)/compress/fse_compress.c $(ZSTDDIR)/compress/huf_compress.c
|
|
ZSTDDECOMP_FILES := $(ZSTDDIR)/decompress/huf_decompress.c
|
|
ZSTD_FILES := $(ZSTDDECOMP_FILES) $(ZSTDCOMMON_FILES) $(ZSTDCOMP_FILES)
|
|
|
|
|
|
# Define *.exe as extension for Windows systems
|
|
ifneq (,$(filter Windows%,$(OS)))
|
|
EXT =.exe
|
|
else
|
|
EXT =
|
|
endif
|
|
|
|
.PHONY: default all test clean test32 googletest googletest32
|
|
|
|
default: pzstd
|
|
|
|
all: pzstd
|
|
|
|
|
|
libzstd.a: $(ZSTD_FILES)
|
|
$(MAKE) -C $(ZSTDDIR) libzstd
|
|
@cp $(ZSTDDIR)/libzstd.a .
|
|
|
|
Pzstd.o: Pzstd.h Pzstd.cpp ErrorHolder.h utils/*.h
|
|
$(CXX) $(FLAGS) -c Pzstd.cpp -o $@
|
|
|
|
SkippableFrame.o: SkippableFrame.h SkippableFrame.cpp utils/*.h
|
|
$(CXX) $(FLAGS) -c SkippableFrame.cpp -o $@
|
|
|
|
Options.o: Options.h Options.cpp
|
|
$(CXX) $(FLAGS) -c Options.cpp -o $@
|
|
|
|
main.o: main.cpp *.h utils/*.h
|
|
$(CXX) $(FLAGS) -c main.cpp -o $@
|
|
|
|
pzstd: Pzstd.o SkippableFrame.o Options.o main.o libzstd.a
|
|
$(CXX) $(FLAGS) $^ -o $@$(EXT) -lpthread
|
|
|
|
libzstd32.a: $(ZSTD_FILES)
|
|
$(MAKE) -C $(ZSTDDIR) libzstd MOREFLAGS="-m32"
|
|
@cp $(ZSTDDIR)/libzstd.a libzstd32.a
|
|
|
|
Pzstd32.o: Pzstd.h Pzstd.cpp ErrorHolder.h utils/*.h
|
|
$(CXX) -m32 $(FLAGS) -c Pzstd.cpp -o $@
|
|
|
|
SkippableFrame32.o: SkippableFrame.h SkippableFrame.cpp utils/*.h
|
|
$(CXX) -m32 $(FLAGS) -c SkippableFrame.cpp -o $@
|
|
|
|
Options32.o: Options.h Options.cpp
|
|
$(CXX) -m32 $(FLAGS) -c Options.cpp -o $@
|
|
|
|
main32.o: main.cpp *.h utils/*.h
|
|
$(CXX) -m32 $(FLAGS) -c main.cpp -o $@
|
|
|
|
pzstd32: Pzstd32.o SkippableFrame32.o Options32.o main32.o libzstd32.a
|
|
$(CXX) -m32 $(FLAGS) $^ -o $@$(EXT) -lpthread
|
|
|
|
googletest:
|
|
@$(RM) -rf googletest
|
|
@git clone https://github.com/google/googletest
|
|
@mkdir -p googletest/build
|
|
@cd googletest/build && cmake .. && make
|
|
|
|
googletest32:
|
|
@$(RM) -rf googletest
|
|
@git clone https://github.com/google/googletest
|
|
@mkdir -p googletest/build
|
|
@cd googletest/build && cmake .. -DCMAKE_CXX_FLAGS=-m32 && make
|
|
|
|
googletest-mingw64:
|
|
$(RM) -rf googletest
|
|
git clone https://github.com/google/googletest
|
|
mkdir -p googletest/build
|
|
cd googletest/build && cmake -G "MSYS Makefiles" .. && $(MAKE)
|
|
|
|
test:
|
|
$(MAKE) libzstd.a
|
|
$(MAKE) pzstd MOREFLAGS="-Wall -Wextra -pedantic -Werror"
|
|
$(MAKE) -C utils/test clean
|
|
$(MAKE) -C utils/test test MOREFLAGS="-Wall -Wextra -pedantic -Werror"
|
|
$(MAKE) -C test clean
|
|
$(MAKE) -C test test MOREFLAGS="-Wall -Wextra -pedantic -Werror"
|
|
|
|
test32:
|
|
$(MAKE) libzstd.a MOREFLAGS="-m32"
|
|
$(MAKE) pzstd MOREFLAGS="-m32 -Wall -Wextra -pedantic -Werror"
|
|
$(MAKE) -C utils/test clean
|
|
$(MAKE) -C utils/test test MOREFLAGS="-m32 -Wall -Wextra -pedantic -Werror"
|
|
$(MAKE) -C test clean
|
|
$(MAKE) -C test test MOREFLAGS="-m32 -Wall -Wextra -pedantic -Werror"
|
|
|
|
|
|
clean:
|
|
$(MAKE) -C $(ZSTDDIR) clean
|
|
$(MAKE) -C utils/test clean
|
|
$(MAKE) -C test clean
|
|
@$(RM) -rf libzstd.a *.o pzstd$(EXT) pzstd32$(EXT)
|
|
@echo Cleaning completed
|