diff options
Diffstat (limited to 'src/fluent-bit/lib/librdkafka-2.1.0/mklove/Makefile.base')
-rwxr-xr-x | src/fluent-bit/lib/librdkafka-2.1.0/mklove/Makefile.base | 329 |
1 files changed, 329 insertions, 0 deletions
diff --git a/src/fluent-bit/lib/librdkafka-2.1.0/mklove/Makefile.base b/src/fluent-bit/lib/librdkafka-2.1.0/mklove/Makefile.base new file mode 100755 index 000000000..91be43917 --- /dev/null +++ b/src/fluent-bit/lib/librdkafka-2.1.0/mklove/Makefile.base @@ -0,0 +1,329 @@ +# Base Makefile providing various standard targets +# Part of mklove suite but may be used independently. + +MKL_RED?= \033[031m +MKL_GREEN?= \033[032m +MKL_YELLOW?= \033[033m +MKL_BLUE?= \033[034m +MKL_CLR_RESET?= \033[0m + +DEPS= $(OBJS:%.o=%.d) + +# TOPDIR is "TOPDIR/mklove/../" i.e., TOPDIR. +# We do it with two dir calls instead of /.. to support mklove being symlinked. +MKLOVE_DIR := $(dir $(lastword $(MAKEFILE_LIST))) +TOPDIR = $(MKLOVE_DIR:mklove/=.) + + +# Convert LIBNAME ("libxyz") to "xyz" +LIBNAME0=$(LIBNAME:lib%=%) + +# Silence lousy default ARFLAGS (rv) +ARFLAGS= + +ifndef MKL_MAKEFILE_CONFIG +-include $(TOPDIR)/Makefile.config +endif + +# Use C compiler as default linker. +# C++ libraries will need to override this with CXX after +# including Makefile.base +CC_LD?=$(CC) + +_UNAME_S := $(shell uname -s) +ifeq ($(_UNAME_S),Darwin) + LIBFILENAME=$(LIBNAME).$(LIBVER)$(SOLIB_EXT) + LIBFILENAMELINK=$(LIBNAME)$(SOLIB_EXT) + LIBFILENAMEDBG=$(LIBNAME)-dbg.$(LIBVER)$(SOLIB_EXT) + LDD_PRINT="otool -L" +else + LIBFILENAME=$(LIBNAME)$(SOLIB_EXT).$(LIBVER) + LIBFILENAMELINK=$(LIBNAME)$(SOLIB_EXT) + LIBFILENAMEDBG=$(LIBNAME)-dbg$(SOLIB_EXT).$(LIBVER) + LDD_PRINT="ldd" +endif + +# DESTDIR must be an absolute path +ifneq ($(DESTDIR),) +DESTDIR:=$(abspath $(DESTDIR)) +endif + +INSTALL?= install +INSTALL_PROGRAM?= $(INSTALL) +INSTALL_DATA?= $(INSTALL) -m 644 + +prefix?= /usr/local +exec_prefix?= $(prefix) +bindir?= $(exec_prefix)/bin +sbindir?= $(exec_prefix)/sbin +libexecdir?= $(exec_prefix)/libexec/ # append PKGNAME on install +datarootdir?= $(prefix)/share +datadir?= $(datarootdir) # append PKGNAME on install +sysconfdir?= $(prefix)/etc +sharedstatedir?=$(prefix)/com +localestatedir?=$(prefix)/var +runstatedir?= $(localestatedir)/run +includedir?= $(prefix)/include +docdir?= $(datarootdir)/doc/$(PKGNAME) +infodir?= $(datarootdir)/info +libdir?= $(prefix)/lib +localedir?= $(datarootdir)/locale +pkgconfigdir?= $(libdir)/pkgconfig +mandir?= $(datarootdir)/man +man1dir?= $(mandir)/man1 +man2dir?= $(mandir)/man2 +man3dir?= $(mandir)/man3 +man4dir?= $(mandir)/man4 +man5dir?= $(mandir)/man5 +man6dir?= $(mandir)/man6 +man7dir?= $(mandir)/man7 +man8dir?= $(mandir)/man8 + +# An application Makefile should set DISABLE_LDS=y prior to +# including Makefile.base if it does not wish to have a linker-script. +ifeq ($(WITH_LDS)-$(DISABLE_LDS),y-) +# linker-script file +LIBNAME_LDS?=$(LIBNAME).lds +endif + +# Checks that mklove is set up and ready for building +mklove-check: + @if [ ! -f "$(TOPDIR)/Makefile.config" ]; then \ + printf "$(MKL_RED)$(TOPDIR)/Makefile.config missing: please run ./configure$(MKL_CLR_RESET)\n" ; \ + exit 1 ; \ + fi + +%.o: %.c + $(CC) -MD -MP $(CPPFLAGS) $(CFLAGS) -c $< -o $@ + +%.o: %.cpp + $(CXX) -MD -MP $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + + +lib: $(LIBFILENAME) $(LIBNAME).a $(LIBNAME)-static.a $(LIBFILENAMELINK) lib-gen-pkg-config + +# Linker-script (if WITH_LDS=y): overridable by application Makefile +$(LIBNAME_LDS): + +$(LIBFILENAME): $(OBJS) $(LIBNAME_LDS) + @printf "$(MKL_YELLOW)Creating shared library $@$(MKL_CLR_RESET)\n" + $(CC_LD) $(LDFLAGS) $(LIB_LDFLAGS) $(OBJS) -o $@ $(LIBS) + cp $@ $(LIBFILENAMEDBG) +ifeq ($(WITH_STRIP),y) + $(STRIP) -S $@ +endif + +$(LIBNAME).a: $(OBJS) + @printf "$(MKL_YELLOW)Creating static library $@$(MKL_CLR_RESET)\n" + $(AR) rcs$(ARFLAGS) $@ $(OBJS) + cp $@ $(LIBNAME)-dbg.a +ifeq ($(WITH_STRIP),y) + $(STRIP) -S $@ + $(RANLIB) $@ +endif + +ifeq ($(MKL_NO_SELFCONTAINED_STATIC_LIB),y) +_STATIC_FILENAME=$(LIBNAME).a +$(LIBNAME)-static.a: + +else # MKL_NO_SELFCONTAINED_STATIC_LIB + +ifneq ($(MKL_STATIC_LIBS),) +_STATIC_FILENAME=$(LIBNAME)-static.a +$(LIBNAME)-static.a: $(LIBNAME).a + @printf "$(MKL_YELLOW)Creating self-contained static library $@$(MKL_CLR_RESET)\n" +ifeq ($(HAS_LIBTOOL_STATIC),y) + $(LIBTOOL) -static -o $@ - $(LIBNAME).a $(MKL_STATIC_LIBS) +else ifeq ($(HAS_GNU_AR),y) + (_tmp=$$(mktemp arstaticXXXXXX) ; \ + echo "CREATE $@" > $$_tmp ; \ + for _f in $(LIBNAME).a $(MKL_STATIC_LIBS) ; do \ + echo "ADDLIB $$_f" >> $$_tmp ; \ + done ; \ + echo "SAVE" >> $$_tmp ; \ + echo "END" >> $$_tmp ; \ + cat $$_tmp ; \ + ar -M < $$_tmp || exit 1 ; \ + rm $$_tmp) +else + for _f in $(LIBNAME).a $(MKL_STATIC_LIBS) ; do \ + ar -r $@ $$_f ; \ + done +endif + cp $@ $(LIBNAME)-static-dbg.a +# The self-contained static library is always stripped, regardless +# of --enable-strip, since otherwise it would become too big. + $(STRIP) -S $@ + $(RANLIB) $@ + +ifneq ($(MKL_DYNAMIC_LIBS),) + @printf "$(MKL_RED)WARNING:$(MKL_YELLOW) $@: The following libraries were not available as static libraries and need to be linked dynamically: $(MKL_DYNAMIC_LIBS)$(MKL_CLR_RESET)\n" +endif # MKL_DYNAMIC_LIBS + +else # MKL_STATIC_LIBS is empty +_STATIC_FILENAME=$(LIBNAME).a +$(LIBNAME)-static.a: $(LIBNAME).a + @printf "$(MKL_RED)WARNING:$(MKL_YELLOW) $@: No static libraries available/enabled for inclusion in self-contained static library $@: this library will be identical to $(LIBNAME).a$(MKL_CLR_RESET)\n" +ifneq ($(MKL_DYNAMIC_LIBS),) + @printf "$(MKL_RED)WARNING:$(MKL_YELLOW) $@: The following libraries were not available as static libraries and need to be linked dynamically: $(MKL_DYNAMIC_LIBS)$(MKL_CLR_RESET)\n" + cp $(LIBNAME).a $@ + cp $(LIBNAME)-dbg.a $(LIBNAME)-static-dbg.a + cp $@ $(LIBNAME)-static-dbg.a +endif # MKL_DYNAMIC_LIBS +endif # MKL_STATIC_LIBS + +endif # MKL_NO_SELFCONTAINED_STATIC_LIB + +$(LIBFILENAMELINK): $(LIBFILENAME) + @printf "$(MKL_YELLOW)Creating $@ symlink$(MKL_CLR_RESET)\n" + rm -f "$@" && ln -s "$^" "$@" + + +# pkg-config .pc file definition +ifeq ($(GEN_PKG_CONFIG),y) +define _PKG_CONFIG_DEF +prefix=$(prefix) +libdir=$(libdir) +includedir=$(includedir) + +Name: $(LIBNAME) +Description: $(MKL_APP_DESC_ONELINE) +Version: $(MKL_APP_VERSION) +Requires.private: $(MKL_PKGCONFIG_REQUIRES_PRIVATE) +Cflags: -I$${includedir} +Libs: -L$${libdir} -l$(LIBNAME0) +Libs.private: $(MKL_PKGCONFIG_LIBS_PRIVATE) +endef + +export _PKG_CONFIG_DEF + +define _PKG_CONFIG_STATIC_DEF +prefix=$(prefix) +libdir=$(libdir) +includedir=$(includedir) + +Name: $(LIBNAME)-static +Description: $(MKL_APP_DESC_ONELINE) (static) +Version: $(MKL_APP_VERSION) +Requires: $(MKL_PKGCONFIG_REQUIRES:rdkafka=rdkafka-static) +Cflags: -I$${includedir} +Libs: -L$${libdir} $${pc_sysrootdir}$${libdir}/$(_STATIC_FILENAME) $(MKL_PKGCONFIG_LIBS_PRIVATE) +endef + +export _PKG_CONFIG_STATIC_DEF + +$(LIBNAME0).pc: $(TOPDIR)/Makefile.config + @printf "$(MKL_YELLOW)Generating pkg-config file $@$(MKL_CLR_RESET)\n" + @echo "$$_PKG_CONFIG_DEF" > $@ + +$(LIBNAME0)-static.pc: $(TOPDIR)/Makefile.config $(LIBNAME)-static.a + @printf "$(MKL_YELLOW)Generating pkg-config file $@$(MKL_CLR_RESET)\n" + @echo "$$_PKG_CONFIG_STATIC_DEF" > $@ + +lib-gen-pkg-config: $(LIBNAME0).pc $(LIBNAME0)-static.pc + +lib-clean-pkg-config: + rm -f $(LIBNAME0).pc $(LIBNAME0)-static.pc +else +lib-gen-pkg-config: +lib-clean-pkg-config: +endif + + +$(BIN): $(OBJS) + @printf "$(MKL_YELLOW)Creating program $@$(MKL_CLR_RESET)\n" + $(CC_LD) $(CPPFLAGS) $(LDFLAGS) $(OBJS) -o $@ $(LIBS) + + +file-check: + @printf "$(MKL_YELLOW)Checking $(LIBNAME) integrity$(MKL_CLR_RESET)\n" + @RET=true ; \ + for f in $(CHECK_FILES) ; do \ + printf "%-30s " $$f ; \ + if [ -f "$$f" ]; then \ + printf "$(MKL_GREEN)OK$(MKL_CLR_RESET)\n" ; \ + else \ + printf "$(MKL_RED)MISSING$(MKL_CLR_RESET)\n" ; \ + RET=false ; \ + fi ; \ + done ; \ + $$RET + +copyright-check: + @(_exit=0 ; \ + for f in $$(git ls-tree -r --name-only HEAD | \ + egrep '\.(c|h|cpp|sh|py|pl)$$' ) ; do \ + if [ -n "$(MKL_COPYRIGHT_SKIP)" ] && echo "$$f" | egrep -q "$(MKL_COPYRIGHT_SKIP)" ; then \ + continue ; \ + fi ; \ + if ! head -40 $$f | grep -qi copyright $$f ; then \ + echo error: Copyright missing in $$f ; \ + _exit=1 ; \ + fi; \ + done ; \ + exit $$_exit) + + +lib-install: + @printf "$(MKL_YELLOW)Install $(LIBNAME) to $$DESTDIR$(prefix)$(MKL_CLR_RESET)\n" + $(INSTALL) -d $$DESTDIR$(includedir)/$(PKGNAME) + $(INSTALL) -d $$DESTDIR$(libdir) + $(INSTALL) $(HDRS) $$DESTDIR$(includedir)/$(PKGNAME) + $(INSTALL) $(LIBNAME).a $$DESTDIR$(libdir) + [ ! -f $(LIBNAME)-static.a ] || $(INSTALL) $(LIBNAME)-static.a $$DESTDIR$(libdir) + $(INSTALL) $(LIBFILENAME) $$DESTDIR$(libdir) + [ -f "$(LIBNAME0).pc" ] && ( \ + $(INSTALL) -d $$DESTDIR$(pkgconfigdir) && \ + $(INSTALL) -m 0644 $(LIBNAME0).pc $$DESTDIR$(pkgconfigdir) \ + ) + [ -f "$(LIBNAME0)-static.pc" ] && ( \ + $(INSTALL) -d $$DESTDIR$(pkgconfigdir) && \ + $(INSTALL) -m 0644 $(LIBNAME0)-static.pc $$DESTDIR$(pkgconfigdir) \ + ) + (cd $$DESTDIR$(libdir) && ln -sf $(LIBFILENAME) $(LIBFILENAMELINK)) + +lib-uninstall: + @printf "$(MKL_YELLOW)Uninstall $(LIBNAME) from $$DESTDIR$(prefix)$(MKL_CLR_RESET)\n" + for hdr in $(HDRS) ; do \ + rm -f $$DESTDIR$(includedir)/$(PKGNAME)/$$hdr ; done + rm -f $$DESTDIR$(libdir)/$(LIBNAME).a + rm -f $$DESTDIR$(libdir)/$(LIBNAME)-static.a + rm -f $$DESTDIR$(libdir)/$(LIBFILENAME) + rm -f $$DESTDIR$(libdir)/$(LIBFILENAMELINK) + rmdir $$DESTDIR$(includedir)/$(PKGNAME) || true + rm -f $$DESTDIR$(pkgconfigdir)/$(LIBNAME0).pc + rm -f $$DESTDIR$(pkgconfigdir)/$(LIBNAME0)-static.pc + rmdir $$DESTDIR$(pkgconfigdir) || true + +bin-install: + @printf "$(MKL_YELLOW)Install $(BIN) to $$DESTDIR$(prefix)$(MKL_CLR_RESET)\n" + $(INSTALL) -d $$DESTDIR$(bindir) && \ + $(INSTALL) $(BIN) $$DESTDIR$(bindir) + +bin-uninstall: + @printf "$(MKL_YELLOW)Uninstall $(BIN) from $$DESTDIR$(prefix)$(MKL_CLR_RESET)\n" + rm -f $$DESTDIR$(bindir)/$(BIN) + rmdir $$DESTDIR$(bindir) || true + +doc-install: $(DOC_FILES) + @printf "$(MKL_YELLOW)Installing documentation to $$DESTDIR$(prefix)$(MKL_CLR_RESET)\n" + $(INSTALL) -d $$DESTDIR$(docdir) + $(INSTALL) $(DOC_FILES) $$DESTDIR$(docdir) + +doc-uninstall: + @printf "$(MKL_YELLOW)Uninstall documentation from $$DESTDIR$(prefix)$(MKL_CLR_RESET)\n" + for _f in $(DOC_FILES) ; do rm -f $$DESTDIR$(docdir)/$$_f ; done + rmdir $$DESTDIR$(docdir) || true + +generic-clean: + rm -f $(OBJS) $(DEPS) + +lib-clean: generic-clean lib-clean-pkg-config + rm -f $(LIBNAME)*.a $(LIBFILENAME) $(LIBFILENAMEDBG) \ + $(LIBFILENAMELINK) $(LIBNAME_LDS) + +bin-clean: generic-clean + rm -f $(BIN) + +deps-clean: + rm -rf "$(MKLOVE_DIR)/deps" |