enh(tsdb/cos): new sdk for s3
This commit is contained in:
parent
ef94767758
commit
8253874398
|
@ -127,6 +127,22 @@ option(
|
||||||
|
|
||||||
IF(${TD_LINUX})
|
IF(${TD_LINUX})
|
||||||
|
|
||||||
|
option(
|
||||||
|
BUILD_WITH_S3
|
||||||
|
"If build with s3"
|
||||||
|
ON
|
||||||
|
)
|
||||||
|
|
||||||
|
IF(${BUILD_WITH_S3})
|
||||||
|
|
||||||
|
option(
|
||||||
|
BUILD_WITH_COS
|
||||||
|
"If build with cos"
|
||||||
|
OFF
|
||||||
|
)
|
||||||
|
|
||||||
|
ELSE ()
|
||||||
|
|
||||||
option(
|
option(
|
||||||
BUILD_WITH_COS
|
BUILD_WITH_COS
|
||||||
"If build with cos"
|
"If build with cos"
|
||||||
|
@ -135,6 +151,8 @@ option(
|
||||||
|
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
|
ENDIF ()
|
||||||
|
|
||||||
option(
|
option(
|
||||||
BUILD_WITH_SQLITE
|
BUILD_WITH_SQLITE
|
||||||
"If build with sqlite"
|
"If build with sqlite"
|
||||||
|
|
|
@ -0,0 +1,430 @@
|
||||||
|
# GNUmakefile
|
||||||
|
#
|
||||||
|
# Copyright 2008 Bryan Ischo <bryan@ischo.com>
|
||||||
|
#
|
||||||
|
# This file is part of libs3.
|
||||||
|
#
|
||||||
|
# libs3 is free software: you can redistribute it and/or modify it under the
|
||||||
|
# terms of the GNU Lesser General Public License as published by the Free
|
||||||
|
# Software Foundation, version 3 or above of the License. You can also
|
||||||
|
# redistribute and/or modify it under the terms of the GNU General Public
|
||||||
|
# License, version 2 or above of the License.
|
||||||
|
#
|
||||||
|
# In addition, as a special exception, the copyright holders give
|
||||||
|
# permission to link the code of this library and its programs with the
|
||||||
|
# OpenSSL library, and distribute linked combinations including the two.
|
||||||
|
#
|
||||||
|
# libs3 is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
|
# version 3 along with libs3, in a file named COPYING. If not, see
|
||||||
|
# <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# You should also have received a copy of the GNU General Public License
|
||||||
|
# version 2 along with libs3, in a file named COPYING-GPLv2. If not, see
|
||||||
|
# <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# I tried to use the autoconf/automake/autolocal/etc (i.e. autohell) tools
|
||||||
|
# but I just couldn't stomach them. Since this is a Makefile for POSIX
|
||||||
|
# systems, I will simply do away with autohell completely and use a GNU
|
||||||
|
# Makefile. GNU make ought to be available pretty much everywhere, so I
|
||||||
|
# don't see this being a significant issue for portability.
|
||||||
|
|
||||||
|
# All commands assume a GNU compiler. For systems which do not use a GNU
|
||||||
|
# compiler, write scripts with the same names as these commands, and taking
|
||||||
|
# the same arguments, and translate the arguments and commands into the
|
||||||
|
# appropriate non-POSIX ones as needed. libs3 assumes a GNU toolchain as
|
||||||
|
# the most portable way to build software possible. Non-POSIX, non-GNU
|
||||||
|
# systems can do the work of supporting this build infrastructure.
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Set libs3 version number, unless it is already set.
|
||||||
|
|
||||||
|
LIBS3_VER_MAJOR ?= 4
|
||||||
|
LIBS3_VER_MINOR ?= 1
|
||||||
|
LIBS3_VER := $(LIBS3_VER_MAJOR).$(LIBS3_VER_MINOR)
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Determine verbosity. VERBOSE_SHOW should be prepended to every command which
|
||||||
|
# should only be displayed if VERBOSE is set. QUIET_ECHO may be used to
|
||||||
|
# echo text only if VERBOSE is not set. Typically, a VERBOSE_SHOW command will
|
||||||
|
# be paired with a QUIET_ECHO command, to provide a command which is displayed
|
||||||
|
# in VERBOSE mode, along with text which is displayed in non-VERBOSE mode to
|
||||||
|
# describe the command.
|
||||||
|
#
|
||||||
|
# No matter what VERBOSE is defined to, it ends up as true if it's defined.
|
||||||
|
# This will be weird if you defined VERBOSE=false in the environment, and we
|
||||||
|
# switch it to true here; but the meaning of VERBOSE is, "if it's defined to
|
||||||
|
# any value, then verbosity is turned on". So don't define VERBOSE if you
|
||||||
|
# don't want verbosity in the build process.
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
ifdef VERBOSE
|
||||||
|
VERBOSE = true
|
||||||
|
VERBOSE_ECHO = @ echo
|
||||||
|
VERBOSE_SHOW =
|
||||||
|
QUIET_ECHO = @ echo > /dev/null
|
||||||
|
else
|
||||||
|
VERBOSE = false
|
||||||
|
VERBOSE_ECHO = @ echo > /dev/null
|
||||||
|
VERBOSE_SHOW = @
|
||||||
|
QUIET_ECHO = @ echo
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# BUILD directory
|
||||||
|
ifndef BUILD
|
||||||
|
ifdef DEBUG
|
||||||
|
BUILD := build-debug
|
||||||
|
else
|
||||||
|
BUILD := build
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# DESTDIR directory
|
||||||
|
ifndef DESTDIR
|
||||||
|
DESTDIR := ${HOME}/.cos-local.1
|
||||||
|
endif
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# LIBDIR directory
|
||||||
|
ifndef LIBDIR
|
||||||
|
LIBDIR := ${DESTDIR}/lib
|
||||||
|
endif
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Compiler CC handling
|
||||||
|
ifndef CC
|
||||||
|
CC := gcc
|
||||||
|
endif
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Acquire configuration information for libraries that libs3 depends upon
|
||||||
|
|
||||||
|
ifndef CURL_LIBS
|
||||||
|
CURL_LIBS := $(shell curl-config --libs)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CURL_CFLAGS
|
||||||
|
CURL_CFLAGS := $(shell curl-config --cflags)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef LIBXML2_LIBS
|
||||||
|
LIBXML2_LIBS := $(shell xml2-config --libs)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef LIBXML2_CFLAGS
|
||||||
|
LIBXML2_CFLAGS := $(shell xml2-config --cflags)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef OPENSSL_LIBS
|
||||||
|
OPENSSL_LIBS := -lssl -lcrypto
|
||||||
|
endif
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# These CFLAGS assume a GNU compiler. For other compilers, write a script
|
||||||
|
# which converts these arguments into their equivalent for that particular
|
||||||
|
# compiler.
|
||||||
|
|
||||||
|
ifndef CFLAGS
|
||||||
|
ifdef DEBUG
|
||||||
|
CFLAGS := -g
|
||||||
|
else
|
||||||
|
CFLAGS := -O3
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
CFLAGS += -Wall -Werror -Wshadow -Wextra -Iinc \
|
||||||
|
$(CURL_CFLAGS) $(LIBXML2_CFLAGS) \
|
||||||
|
-DLIBS3_VER_MAJOR=\"$(LIBS3_VER_MAJOR)\" \
|
||||||
|
-DLIBS3_VER_MINOR=\"$(LIBS3_VER_MINOR)\" \
|
||||||
|
-DLIBS3_VER=\"$(LIBS3_VER)\" \
|
||||||
|
-D__STRICT_ANSI__ \
|
||||||
|
-D_ISOC99_SOURCE \
|
||||||
|
-D_POSIX_C_SOURCE=200112L
|
||||||
|
|
||||||
|
LDFLAGS = $(CURL_LIBS) $(LIBXML2_LIBS) $(OPENSSL_LIBS) -lpthread
|
||||||
|
|
||||||
|
STRIP ?= strip
|
||||||
|
INSTALL := install --strip-program=$(STRIP)
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Default targets are everything
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
all: exported test
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Exported targets are the library and driver program
|
||||||
|
|
||||||
|
.PHONY: exported
|
||||||
|
exported: libs3 s3 headers
|
||||||
|
exported_static: $(LIBS3_STATIC)
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Install target
|
||||||
|
|
||||||
|
.PHONY: install install_static
|
||||||
|
install_static: exported_static
|
||||||
|
$(QUIET_ECHO) $(LIBDIR)/libs3.a: Installing static library
|
||||||
|
$(VERBOSE_SHOW) $(INSTALL) -Dp -m u+rw,go+r $(BUILD)/lib/libs3.a \
|
||||||
|
$(LIBDIR)/libs3.a
|
||||||
|
$(QUIET_ECHO) $(DESTDIR)/include/libs3.h: Installing header
|
||||||
|
$(VERBOSE_SHOW) $(INSTALL) -Dp -m u+rw,go+r inc/libs3.h \
|
||||||
|
$(DESTDIR)/include/libs3.h
|
||||||
|
|
||||||
|
install: exported
|
||||||
|
$(QUIET_ECHO) $(DESTDIR)/bin/s3: Installing executable
|
||||||
|
$(VERBOSE_SHOW) $(INSTALL) -Dps -m u+rwx,go+rx $(BUILD)/bin/s3 \
|
||||||
|
$(DESTDIR)/bin/s3
|
||||||
|
$(QUIET_ECHO) \
|
||||||
|
$(LIBDIR)/libs3.so.$(LIBS3_VER): Installing shared library
|
||||||
|
$(VERBOSE_SHOW) $(INSTALL) -Dps -m u+rw,go+r \
|
||||||
|
$(BUILD)/lib/libs3.so.$(LIBS3_VER_MAJOR) \
|
||||||
|
$(LIBDIR)/libs3.so.$(LIBS3_VER)
|
||||||
|
$(QUIET_ECHO) \
|
||||||
|
$(LIBDIR)/libs3.so.$(LIBS3_VER_MAJOR): Linking shared library
|
||||||
|
$(VERBOSE_SHOW) ln -sf libs3.so.$(LIBS3_VER) \
|
||||||
|
$(LIBDIR)/libs3.so.$(LIBS3_VER_MAJOR)
|
||||||
|
$(QUIET_ECHO) $(LIBDIR)/libs3.so: Linking shared library
|
||||||
|
$(VERBOSE_SHOW) ln -sf libs3.so.$(LIBS3_VER_MAJOR) $(LIBDIR)/libs3.so
|
||||||
|
$(QUIET_ECHO) $(LIBDIR)/libs3.a: Installing static library
|
||||||
|
$(VERBOSE_SHOW) $(INSTALL) -Dp -m u+rw,go+r $(BUILD)/lib/libs3.a \
|
||||||
|
$(LIBDIR)/libs3.a
|
||||||
|
$(QUIET_ECHO) $(DESTDIR)/include/libs3.h: Installing header
|
||||||
|
$(VERBOSE_SHOW) $(INSTALL) -Dp -m u+rw,go+r $(BUILD)/include/libs3.h \
|
||||||
|
$(DESTDIR)/include/libs3.h
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Uninstall target
|
||||||
|
|
||||||
|
.PHONY: uninstall
|
||||||
|
uninstall:
|
||||||
|
$(QUIET_ECHO) Installed files: Uninstalling
|
||||||
|
$(VERBOSE_SHOW) \
|
||||||
|
rm -f $(DESTDIR)/bin/s3 \
|
||||||
|
$(DESTDIR)/include/libs3.h \
|
||||||
|
$(DESTDIR)/lib/libs3.a \
|
||||||
|
$(DESTDIR)/lib/libs3.so \
|
||||||
|
$(DESTDIR)/lib/libs3.so.$(LIBS3_VER_MAJOR) \
|
||||||
|
$(DESTDIR)/lib/libs3.so.$(LIBS3_VER)
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Compile target patterns
|
||||||
|
|
||||||
|
$(BUILD)/obj/%.o: src/%.c
|
||||||
|
$(QUIET_ECHO) $@: Compiling object
|
||||||
|
@ mkdir -p $(dir $(BUILD)/dep/$<)
|
||||||
|
@ $(CC) $(CFLAGS) -M -MG -MQ $@ -DCOMPILINGDEPENDENCIES \
|
||||||
|
-o $(BUILD)/dep/$(<:%.c=%.d) -c $<
|
||||||
|
@ mkdir -p $(dir $@)
|
||||||
|
$(VERBOSE_SHOW) $(CC) $(CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(BUILD)/obj/%.do: src/%.c
|
||||||
|
$(QUIET_ECHO) $@: Compiling dynamic object
|
||||||
|
$(QUIET_ECHO) cflags:${CFLAGS}
|
||||||
|
@ mkdir -p $(dir $(BUILD)/dep/$<)
|
||||||
|
@ $(CC) $(CFLAGS) -M -MG -MQ $@ -DCOMPILINGDEPENDENCIES \
|
||||||
|
-o $(BUILD)/dep/$(<:%.c=%.dd) -c $<
|
||||||
|
@ mkdir -p $(dir $@)
|
||||||
|
$(VERBOSE_SHOW) $(CC) $(CFLAGS) -fpic -fPIC -o $@ -c $<
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# libs3 library targets
|
||||||
|
|
||||||
|
LIBS3_SHARED = $(BUILD)/lib/libs3.so.$(LIBS3_VER_MAJOR)
|
||||||
|
LIBS3_STATIC = $(BUILD)/lib/libs3.a
|
||||||
|
|
||||||
|
.PHONY: libs3
|
||||||
|
libs3: $(LIBS3_SHARED) $(LIBS3_STATIC)
|
||||||
|
|
||||||
|
LIBS3_SOURCES := bucket.c bucket_metadata.c error_parser.c general.c \
|
||||||
|
object.c request.c request_context.c \
|
||||||
|
response_headers_handler.c service_access_logging.c \
|
||||||
|
service.c simplexml.c util.c multipart.c
|
||||||
|
|
||||||
|
$(LIBS3_SHARED): $(LIBS3_SOURCES:%.c=$(BUILD)/obj/%.do)
|
||||||
|
$(QUIET_ECHO) $@: Building shared library
|
||||||
|
@ mkdir -p $(dir $@)
|
||||||
|
$(VERBOSE_SHOW) $(CC) -shared -Wl,-soname,libs3.so.$(LIBS3_VER_MAJOR) \
|
||||||
|
-o $@ $^ $(LDFLAGS)
|
||||||
|
|
||||||
|
$(LIBS3_STATIC): $(LIBS3_SOURCES:%.c=$(BUILD)/obj/%.o)
|
||||||
|
$(QUIET_ECHO) $@: Building static library
|
||||||
|
@ mkdir -p $(dir $@)
|
||||||
|
$(VERBOSE_SHOW) $(AR) cr $@ $^
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Driver program targets
|
||||||
|
|
||||||
|
.PHONY: s3
|
||||||
|
s3: $(BUILD)/bin/s3
|
||||||
|
|
||||||
|
$(BUILD)/bin/s3: $(BUILD)/obj/s3.o $(LIBS3_SHARED)
|
||||||
|
$(QUIET_ECHO) $@: Building executable
|
||||||
|
@ mkdir -p $(dir $@)
|
||||||
|
$(VERBOSE_SHOW) $(CC) -o $@ $^ $(LDFLAGS)
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# libs3 header targets
|
||||||
|
|
||||||
|
.PHONY: headers
|
||||||
|
headers: $(BUILD)/include/libs3.h
|
||||||
|
|
||||||
|
$(BUILD)/include/libs3.h: inc/libs3.h
|
||||||
|
$(QUIET_ECHO) $@: Linking header
|
||||||
|
@ mkdir -p $(dir $@)
|
||||||
|
$(VERBOSE_SHOW) ln -sf $(abspath $<) $@
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Test targets
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test: $(BUILD)/bin/testsimplexml
|
||||||
|
|
||||||
|
$(BUILD)/bin/testsimplexml: $(BUILD)/obj/testsimplexml.o $(LIBS3_STATIC)
|
||||||
|
$(QUIET_ECHO) $@: Building executable
|
||||||
|
@ mkdir -p $(dir $@)
|
||||||
|
$(VERBOSE_SHOW) $(CC) -o $@ $^ $(LIBXML2_LIBS)
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Clean target
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
$(QUIET_ECHO) $(BUILD): Cleaning
|
||||||
|
$(VERBOSE_SHOW) rm -rf $(BUILD)
|
||||||
|
|
||||||
|
.PHONY: distclean
|
||||||
|
distclean:
|
||||||
|
$(QUIET_ECHO) $(BUILD): Cleaning
|
||||||
|
$(VERBOSE_SHOW) rm -rf $(BUILD)
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Clean dependencies target
|
||||||
|
|
||||||
|
.PHONY: cleandeps
|
||||||
|
cleandeps:
|
||||||
|
$(QUIET_ECHO) $(BUILD)/dep: Cleaning dependencies
|
||||||
|
$(VERBOSE_SHOW) rm -rf $(BUILD)/dep
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Dependencies
|
||||||
|
|
||||||
|
ALL_SOURCES := $(LIBS3_SOURCES) s3.c testsimplexml.c
|
||||||
|
|
||||||
|
$(foreach i, $(ALL_SOURCES), $(eval -include $(BUILD)/dep/src/$(i:%.c=%.d)))
|
||||||
|
$(foreach i, $(ALL_SOURCES), $(eval -include $(BUILD)/dep/src/$(i:%.c=%.dd)))
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Debian package target
|
||||||
|
|
||||||
|
DEBPKG = $(BUILD)/pkg/libs3_$(LIBS3_VER).deb
|
||||||
|
DEBDEVPKG = $(BUILD)/pkg/libs3-dev_$(LIBS3_VER).deb
|
||||||
|
|
||||||
|
.PHONY: deb
|
||||||
|
deb: $(DEBPKG) $(DEBDEVPKG)
|
||||||
|
|
||||||
|
$(DEBPKG): DEBARCH = $(shell dpkg-architecture | grep ^DEB_BUILD_ARCH= | \
|
||||||
|
cut -d '=' -f 2)
|
||||||
|
$(DEBPKG): exported $(BUILD)/deb/DEBIAN/control $(BUILD)/deb/DEBIAN/shlibs \
|
||||||
|
$(BUILD)/deb/DEBIAN/postinst \
|
||||||
|
$(BUILD)/deb/usr/share/doc/libs3/changelog.gz \
|
||||||
|
$(BUILD)/deb/usr/share/doc/libs3/changelog.Debian.gz \
|
||||||
|
$(BUILD)/deb/usr/share/doc/libs3/copyright
|
||||||
|
DESTDIR=$(BUILD)/deb/usr $(MAKE) install
|
||||||
|
rm -rf $(BUILD)/deb/usr/include
|
||||||
|
rm -f $(BUILD)/deb/usr/lib/libs3.a
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
|
fakeroot dpkg-deb -b $(BUILD)/deb $@
|
||||||
|
mv $@ $(BUILD)/pkg/libs3_$(LIBS3_VER)_$(DEBARCH).deb
|
||||||
|
|
||||||
|
$(DEBDEVPKG): DEBARCH = $(shell dpkg-architecture | grep ^DEB_BUILD_ARCH= | \
|
||||||
|
cut -d '=' -f 2)
|
||||||
|
$(DEBDEVPKG): exported $(BUILD)/deb-dev/DEBIAN/control \
|
||||||
|
$(BUILD)/deb-dev/usr/share/doc/libs3-dev/changelog.gz \
|
||||||
|
$(BUILD)/deb-dev/usr/share/doc/libs3-dev/changelog.Debian.gz \
|
||||||
|
$(BUILD)/deb-dev/usr/share/doc/libs3-dev/copyright
|
||||||
|
DESTDIR=$(BUILD)/deb-dev/usr $(MAKE) install
|
||||||
|
rm -rf $(BUILD)/deb-dev/usr/bin
|
||||||
|
rm -f $(BUILD)/deb-dev/usr/lib/libs3.so*
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
|
fakeroot dpkg-deb -b $(BUILD)/deb-dev $@
|
||||||
|
mv $@ $(BUILD)/pkg/libs3-dev_$(LIBS3_VER)_$(DEBARCH).deb
|
||||||
|
|
||||||
|
$(BUILD)/deb/DEBIAN/control: debian/control
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
|
echo -n "Depends: " > $@
|
||||||
|
dpkg-shlibdeps -Sbuild -O $(BUILD)/lib/libs3.so.$(LIBS3_VER_MAJOR) | \
|
||||||
|
cut -d '=' -f 2- >> $@
|
||||||
|
sed -e 's/LIBS3_VERSION/$(LIBS3_VER)/' \
|
||||||
|
< $< | sed -e 's/DEBIAN_ARCHITECTURE/$(DEBARCH)/' | \
|
||||||
|
grep -v ^Source: >> $@
|
||||||
|
|
||||||
|
$(BUILD)/deb-dev/DEBIAN/control: debian/control.dev
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
|
sed -e 's/LIBS3_VERSION/$(LIBS3_VER)/' \
|
||||||
|
< $< | sed -e 's/DEBIAN_ARCHITECTURE/$(DEBARCH)/' > $@
|
||||||
|
|
||||||
|
$(BUILD)/deb/DEBIAN/shlibs:
|
||||||
|
echo -n "libs3 $(LIBS3_VER_MAJOR) libs3 " > $@
|
||||||
|
echo "(>= $(LIBS3_VER))" >> $@
|
||||||
|
|
||||||
|
$(BUILD)/deb/DEBIAN/postinst: debian/postinst
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
|
cp $< $@
|
||||||
|
|
||||||
|
$(BUILD)/deb/usr/share/doc/libs3/copyright: LICENSE
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
|
cp $< $@
|
||||||
|
@echo >> $@
|
||||||
|
@echo -n "An alternate location for the GNU General Public " >> $@
|
||||||
|
@echo "License version 3 on Debian" >> $@
|
||||||
|
@echo "systems is /usr/share/common-licenses/GPL-3." >> $@
|
||||||
|
|
||||||
|
$(BUILD)/deb-dev/usr/share/doc/libs3-dev/copyright: LICENSE
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
|
cp $< $@
|
||||||
|
@echo >> $@
|
||||||
|
@echo -n "An alternate location for the GNU General Public " >> $@
|
||||||
|
@echo "License version 3 on Debian" >> $@
|
||||||
|
@echo "systems is /usr/share/common-licenses/GPL-3." >> $@
|
||||||
|
|
||||||
|
$(BUILD)/deb/usr/share/doc/libs3/changelog.gz: debian/changelog
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
|
gzip --best -c $< > $@
|
||||||
|
|
||||||
|
$(BUILD)/deb-dev/usr/share/doc/libs3-dev/changelog.gz: debian/changelog
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
|
gzip --best -c $< > $@
|
||||||
|
|
||||||
|
$(BUILD)/deb/usr/share/doc/libs3/changelog.Debian.gz: debian/changelog.Debian
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
|
gzip --best -c $< > $@
|
||||||
|
|
||||||
|
$(BUILD)/deb-dev/usr/share/doc/libs3-dev/changelog.Debian.gz: \
|
||||||
|
debian/changelog.Debian
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
|
gzip --best -c $< > $@
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
# libs3
|
||||||
|
|
||||||
|
set(s3_flags "${CMAKE_C_FLAGS} -O3 -Iinc -I$ENV{HOME}/.cos-local.1/include -Iinc ")
|
||||||
|
|
||||||
|
set(SED_CMD "s/CFLAGS += -Wall -Werror/CFLAGS += -I$ENV{HOME}/.cos-local.1/include /")
|
||||||
|
|
||||||
|
function(update_cflags)
|
||||||
|
file(READ "GNUmakefile" S3_CONTENT)
|
||||||
|
string(REPLACE "CFLAGS += -Wall -Werror" "CFLAGS += -I$ENV{HOME}/.cos-local.1/include " S3_CONTENT "${S3_CONTENT}")
|
||||||
|
file(WRITE "GNUmakefile" "${S3_CONTENT}")
|
||||||
|
endfunction(update_cflags)
|
||||||
|
|
||||||
|
ExternalProject_Add(libs3
|
||||||
|
GIT_REPOSITORY https://github.com/bji/libs3
|
||||||
|
#GIT_TAG v5.0.16
|
||||||
|
SOURCE_DIR "${TD_CONTRIB_DIR}/libs3"
|
||||||
|
#BINARY_DIR ""
|
||||||
|
BUILD_IN_SOURCE TRUE
|
||||||
|
BUILD_ALWAYS 1
|
||||||
|
UPDATE_COMMAND ""
|
||||||
|
#sed_cmd "s/CFLAGS += -Wall -Werror/CFLAGS += -I$ENV{HOME}/.cos-local.1/include /"
|
||||||
|
CONFIGURE_COMMAND cp ${TD_SUPPORT_DIR}/libs3.GNUmakefile GNUmakefile && sed -i "s|CFLAGS += -Wall -Werror|CFLAGS += -I'$ENV{HOME}/.cos-local.1/include' -L'$ENV{HOME}/.cos-local.1/lib' |" ./GNUmakefile
|
||||||
|
#BUILD_COMMAND make CFLAGS=${s3_flags} DESTDIR=$ENV{HOME}/.cos-local.1 build/lib/libs3.a
|
||||||
|
#BUILD_COMMAND make DESTDIR="$ENV{HOME}/.cos-local.1" build/lib/libs3.a
|
||||||
|
BUILD_COMMAND make build/lib/libs3.a
|
||||||
|
INSTALL_COMMAND make install_static
|
||||||
|
TEST_COMMAND ""
|
||||||
|
)
|
|
@ -0,0 +1,15 @@
|
||||||
|
# openssl
|
||||||
|
ExternalProject_Add(openssl
|
||||||
|
URL https://www.openssl.org/source/openssl-3.1.3.tar.gz
|
||||||
|
URL_HASH SHA256=f0316a2ebd89e7f2352976445458689f80302093788c466692fb2a188b2eacf6
|
||||||
|
DOWNLOAD_NO_PROGRESS 1
|
||||||
|
DOWNLOAD_DIR "${TD_CONTRIB_DIR}/deps-download"
|
||||||
|
SOURCE_DIR "${TD_CONTRIB_DIR}/openssl"
|
||||||
|
BUILD_IN_SOURCE TRUE
|
||||||
|
#BUILD_ALWAYS 1
|
||||||
|
#UPDATE_COMMAND ""
|
||||||
|
CONFIGURE_COMMAND ./Configure --prefix=$ENV{HOME}/.cos-local.1 -static #--no-shared
|
||||||
|
BUILD_COMMAND make -j
|
||||||
|
INSTALL_COMMAND make install
|
||||||
|
TEST_COMMAND ""
|
||||||
|
)
|
|
@ -8,6 +8,37 @@ endfunction(cat IN_FILE OUT_FILE)
|
||||||
|
|
||||||
if(${TD_LINUX})
|
if(${TD_LINUX})
|
||||||
|
|
||||||
|
if(${BUILD_WITH_S3})
|
||||||
|
|
||||||
|
set(CONTRIB_TMP_FILE3 "${CMAKE_BINARY_DIR}/deps_tmp_CMakeLists.txt.in3")
|
||||||
|
configure_file("${TD_SUPPORT_DIR}/deps_CMakeLists.txt.in" ${CONTRIB_TMP_FILE3})
|
||||||
|
|
||||||
|
if(${BUILD_WITH_COS})
|
||||||
|
file(MAKE_DIRECTORY $ENV{HOME}/.cos-local.1/)
|
||||||
|
cat("${TD_SUPPORT_DIR}/ssl_CMakeLists.txt.in" ${CONTRIB_TMP_FILE3})
|
||||||
|
endif(${BUILD_WITH_COS})
|
||||||
|
|
||||||
|
configure_file(${CONTRIB_TMP_FILE3} "${TD_CONTRIB_DIR}/deps-download/CMakeLists.txt")
|
||||||
|
execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
|
||||||
|
WORKING_DIRECTORY "${TD_CONTRIB_DIR}/deps-download")
|
||||||
|
execute_process(COMMAND "${CMAKE_COMMAND}" --build .
|
||||||
|
WORKING_DIRECTORY "${TD_CONTRIB_DIR}/deps-download")
|
||||||
|
|
||||||
|
set(CONTRIB_TMP_FILE2 "${CMAKE_BINARY_DIR}/deps_tmp_CMakeLists.txt.in2")
|
||||||
|
configure_file("${TD_SUPPORT_DIR}/deps_CMakeLists.txt.in" ${CONTRIB_TMP_FILE2})
|
||||||
|
|
||||||
|
if(${BUILD_WITH_COS})
|
||||||
|
cat("${TD_SUPPORT_DIR}/curl_CMakeLists.txt.in" ${CONTRIB_TMP_FILE2})
|
||||||
|
endif(${BUILD_WITH_COS})
|
||||||
|
|
||||||
|
configure_file(${CONTRIB_TMP_FILE2} "${TD_CONTRIB_DIR}/deps-download/CMakeLists.txt")
|
||||||
|
execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
|
||||||
|
WORKING_DIRECTORY "${TD_CONTRIB_DIR}/deps-download")
|
||||||
|
execute_process(COMMAND "${CMAKE_COMMAND}" --build .
|
||||||
|
WORKING_DIRECTORY "${TD_CONTRIB_DIR}/deps-download")
|
||||||
|
|
||||||
|
else()
|
||||||
|
|
||||||
set(CONTRIB_TMP_FILE3 "${CMAKE_BINARY_DIR}/deps_tmp_CMakeLists.txt.in3")
|
set(CONTRIB_TMP_FILE3 "${CMAKE_BINARY_DIR}/deps_tmp_CMakeLists.txt.in3")
|
||||||
configure_file("${TD_SUPPORT_DIR}/deps_CMakeLists.txt.in" ${CONTRIB_TMP_FILE3})
|
configure_file("${TD_SUPPORT_DIR}/deps_CMakeLists.txt.in" ${CONTRIB_TMP_FILE3})
|
||||||
|
|
||||||
|
@ -37,6 +68,8 @@ execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
|
||||||
execute_process(COMMAND "${CMAKE_COMMAND}" --build .
|
execute_process(COMMAND "${CMAKE_COMMAND}" --build .
|
||||||
WORKING_DIRECTORY "${TD_CONTRIB_DIR}/deps-download")
|
WORKING_DIRECTORY "${TD_CONTRIB_DIR}/deps-download")
|
||||||
|
|
||||||
|
endif(${BUILD_WITH_S3})
|
||||||
|
|
||||||
endif(${TD_LINUX})
|
endif(${TD_LINUX})
|
||||||
|
|
||||||
set(CONTRIB_TMP_FILE "${CMAKE_BINARY_DIR}/deps_tmp_CMakeLists.txt.in")
|
set(CONTRIB_TMP_FILE "${CMAKE_BINARY_DIR}/deps_tmp_CMakeLists.txt.in")
|
||||||
|
@ -155,6 +188,18 @@ if(${BUILD_WITH_SQLITE})
|
||||||
cat("${TD_SUPPORT_DIR}/sqlite_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
cat("${TD_SUPPORT_DIR}/sqlite_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
||||||
endif(${BUILD_WITH_SQLITE})
|
endif(${BUILD_WITH_SQLITE})
|
||||||
|
|
||||||
|
# s3
|
||||||
|
if(${BUILD_WITH_S3})
|
||||||
|
#cat("${TD_SUPPORT_DIR}/mxml_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
||||||
|
#cat("${TD_SUPPORT_DIR}/apr_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
||||||
|
#cat("${TD_SUPPORT_DIR}/apr-util_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
||||||
|
#cat("${TD_SUPPORT_DIR}/curl_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
||||||
|
#INCLUDE_DIRECTORIES($ENV{HOME}/.cos-local.1/include)
|
||||||
|
cat("${TD_SUPPORT_DIR}/libs3_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
||||||
|
add_definitions(-DUSE_S3)
|
||||||
|
|
||||||
|
else()
|
||||||
|
|
||||||
# cos
|
# cos
|
||||||
if(${BUILD_WITH_COS})
|
if(${BUILD_WITH_COS})
|
||||||
#cat("${TD_SUPPORT_DIR}/mxml_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
#cat("${TD_SUPPORT_DIR}/mxml_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
||||||
|
@ -165,6 +210,8 @@ if(${BUILD_WITH_COS})
|
||||||
add_definitions(-DUSE_COS)
|
add_definitions(-DUSE_COS)
|
||||||
endif(${BUILD_WITH_COS})
|
endif(${BUILD_WITH_COS})
|
||||||
|
|
||||||
|
endif(${BUILD_WITH_S3})
|
||||||
|
|
||||||
# lucene
|
# lucene
|
||||||
if(${BUILD_WITH_LUCENE})
|
if(${BUILD_WITH_LUCENE})
|
||||||
cat("${TD_SUPPORT_DIR}/lucene_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
cat("${TD_SUPPORT_DIR}/lucene_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
||||||
|
@ -390,6 +437,11 @@ if (${BUILD_WITH_ROCKSDB})
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(${BUILD_WITH_S3})
|
||||||
|
INCLUDE_DIRECTORIES($ENV{HOME}/.cos-local.1/include)
|
||||||
|
|
||||||
|
else()
|
||||||
|
|
||||||
# cos
|
# cos
|
||||||
if(${BUILD_WITH_COS})
|
if(${BUILD_WITH_COS})
|
||||||
if(${TD_LINUX})
|
if(${TD_LINUX})
|
||||||
|
@ -415,6 +467,8 @@ if(${BUILD_WITH_COS})
|
||||||
endif(${TD_LINUX})
|
endif(${TD_LINUX})
|
||||||
endif(${BUILD_WITH_COS})
|
endif(${BUILD_WITH_COS})
|
||||||
|
|
||||||
|
endif(${BUILD_WITH_S3})
|
||||||
|
|
||||||
# lucene
|
# lucene
|
||||||
# To support build on ubuntu: sudo apt-get install libboost-all-dev
|
# To support build on ubuntu: sudo apt-get install libboost-all-dev
|
||||||
if(${BUILD_WITH_LUCENE})
|
if(${BUILD_WITH_LUCENE})
|
||||||
|
|
|
@ -162,6 +162,12 @@ target_link_libraries(
|
||||||
)
|
)
|
||||||
|
|
||||||
if(${TD_LINUX})
|
if(${TD_LINUX})
|
||||||
|
if(${BUILD_WITH_S3})
|
||||||
|
|
||||||
|
endif(${BUILD_WITH_S3})
|
||||||
|
|
||||||
|
if(${BUILD_WITH_COS})
|
||||||
|
|
||||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
||||||
find_library(APR_LIBRARY apr-1 PATHS /usr/local/apr/lib/)
|
find_library(APR_LIBRARY apr-1 PATHS /usr/local/apr/lib/)
|
||||||
find_library(APR_UTIL_LIBRARY aprutil-1 PATHS /usr/local/apr/lib/)
|
find_library(APR_UTIL_LIBRARY aprutil-1 PATHS /usr/local/apr/lib/)
|
||||||
|
@ -194,7 +200,6 @@ target_include_directories(
|
||||||
PUBLIC "$ENV{HOME}/.cos-local.1/include"
|
PUBLIC "$ENV{HOME}/.cos-local.1/include"
|
||||||
)
|
)
|
||||||
|
|
||||||
if(${BUILD_WITH_COS})
|
|
||||||
add_definitions(-DUSE_COS)
|
add_definitions(-DUSE_COS)
|
||||||
endif(${BUILD_WITH_COS})
|
endif(${BUILD_WITH_COS})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue