mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-09-19 02:37:18 +02:00
Major plugin refactor and cleanup.
Switched to POCO library for unified platform/library interface. Deprecated the external module API. It was creating more problems than solving. Removed most built-in libraries in favor of system libraries for easier maintenance. Cleaned and secured code with help from static analyzers.
This commit is contained in:
84
vendor/POCO/build/rules/compile
vendored
Normal file
84
vendor/POCO/build/rules/compile
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
#
|
||||
# compile
|
||||
#
|
||||
# Compile rule definitions for makefiles
|
||||
#
|
||||
|
||||
#
|
||||
# Target-specific include paths
|
||||
#
|
||||
INCLUDE += $(foreach l,$(target_includes),-I$(l))
|
||||
|
||||
#
|
||||
# Targets
|
||||
#
|
||||
.PHONY: all all_static all_shared all_debug all_release \
|
||||
clean static_debug static_release shared_debug shared_release
|
||||
|
||||
all: $(DEFAULT_TARGET)
|
||||
all_static: static_debug static_release
|
||||
all_shared: shared_debug shared_release
|
||||
all_debug: static_debug shared_debug
|
||||
all_release: static_release shared_release
|
||||
|
||||
#
|
||||
# Create directories if necessary
|
||||
#
|
||||
.PHONY: objdirs libdirs bindirs static_bindirs
|
||||
objdirs: $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_SHARED) $(OBJPATH_DEBUG_SHARED)
|
||||
libdirs: objdirs $(LIBPATH)
|
||||
bindirs: objdirs $(BINPATH)
|
||||
static_bindirs: objdirs $(BINPATH)/static
|
||||
|
||||
$(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_SHARED) $(OBJPATH_DEBUG_SHARED) $(LIBPATH) $(BINPATH) $(BINPATH)/static:
|
||||
$(MKDIR) $@
|
||||
|
||||
#
|
||||
# Rules for compiling
|
||||
#
|
||||
$(OBJPATH_DEBUG_STATIC)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
|
||||
@echo "** Compiling" $< "(debug, static)"
|
||||
$(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(STATICOPT_CXX) -c $< -o $@
|
||||
|
||||
$(OBJPATH_RELEASE_STATIC)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
|
||||
@echo "** Compiling" $< "(release, static)"
|
||||
$(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(STATICOPT_CXX) -c $< -o $@
|
||||
|
||||
$(OBJPATH_DEBUG_STATIC)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
|
||||
@echo "** Compiling" $< "(debug, static)"
|
||||
$(CC) $(INCLUDE) $(CFLAGS) $(DEBUGOPT_CC) $(STATICOPT_CC) -c $< -o $@
|
||||
|
||||
$(OBJPATH_RELEASE_STATIC)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
|
||||
@echo "** Compiling" $< "(release, static)"
|
||||
$(CC) $(INCLUDE) $(CFLAGS) $(RELEASEOPT_CC) $(STATICOPT_CC) -c $< -o $@
|
||||
|
||||
$(OBJPATH_DEBUG_SHARED)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
|
||||
@echo "** Compiling" $< "(debug, shared)"
|
||||
$(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@
|
||||
|
||||
$(OBJPATH_RELEASE_SHARED)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
|
||||
@echo "** Compiling" $< "(release, shared)"
|
||||
$(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@
|
||||
|
||||
$(OBJPATH_DEBUG_SHARED)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
|
||||
@echo "** Compiling" $< "(debug, shared)"
|
||||
$(CC) $(INCLUDE) $(CFLAGS) $(DEBUGOPT_CC) $(SHAREDOPT_CC) -c $< -o $@
|
||||
|
||||
$(OBJPATH_RELEASE_SHARED)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
|
||||
@echo "** Compiling" $< "(release, shared)"
|
||||
$(CC) $(INCLUDE) $(CFLAGS) $(RELEASEOPT_CC) $(SHAREDOPT_CC) -c $< -o $@
|
||||
|
||||
#
|
||||
# Rules for creating dependency information
|
||||
#
|
||||
$(DEPPATH)/%.d: $(SRCDIR)/%.cpp
|
||||
@echo "** Creating dependency info for" $^
|
||||
$(MKDIR) $(DEPPATH)
|
||||
$(DEP) $(SRCDIR)/$(patsubst %.d,%.cpp,$(notdir $@)) $@ $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_SHARED) $(OBJPATH_RELEASE_SHARED) $(INCLUDE) $(CXXFLAGS)
|
||||
|
||||
$(DEPPATH)/%.d: $(SRCDIR)/%.c
|
||||
@echo "** Creating dependency info for" $^
|
||||
$(MKDIR) $(DEPPATH)
|
||||
$(DEP) $(SRCDIR)/$(patsubst %.d,%.c,$(notdir $@)) $@ $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_SHARED) $(OBJPATH_RELEASE_SHARED) $(INCLUDE) $(CFLAGS)
|
||||
|
||||
depend: $(addprefix $(DEPPATH)/,$(addsuffix .d,$(objects)))
|
76
vendor/POCO/build/rules/dylib
vendored
Normal file
76
vendor/POCO/build/rules/dylib
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
#
|
||||
# dylib
|
||||
#
|
||||
# Rule definitions for building dynamically loadable shared libraries
|
||||
#
|
||||
|
||||
#
|
||||
# Target names
|
||||
#
|
||||
SHL_EXT = $(SHAREDLIBLINKEXT)
|
||||
|
||||
# Some systems (e.g. Mac OS X) make a difference between
|
||||
# shared libraries (as used by the linker/loader) and
|
||||
# dynamic libraries, as used for dynamically loadable modules.
|
||||
# If no specific instructions for making dynamic libraries
|
||||
# are given, use the instructions for making shared libraries.
|
||||
|
||||
ifndef DYLIB
|
||||
DYLIB = $(SHLIB)
|
||||
DYLIBFLAGS = $(SHLIBFLAGS)
|
||||
endif
|
||||
|
||||
DYLIB_DEBUG = $(BINPATH)/$(target)d$(OSARCH_POSTFIX)$(SHL_EXT)
|
||||
DYLIB_RELEASE = $(BINPATH)/$(target)$(OSARCH_POSTFIX)$(SHL_EXT)
|
||||
DYLIB_S_DEBUG = $(BINPATH)/static/$(target)d$(OSARCH_POSTFIX)$(SHL_EXT)
|
||||
DYLIB_S_RELEASE = $(BINPATH)/static/$(target)$(OSARCH_POSTFIX)$(SHL_EXT)
|
||||
|
||||
TARGET_LIBS_DEBUG = $(foreach l,$(target_libs),-l$(l)d$(OSARCH_POSTFIX))
|
||||
TARGET_LIBS_RELEASE = $(foreach l,$(target_libs),-l$(l)$(OSARCH_POSTFIX))
|
||||
TARGET_LIBS_EXT = $(foreach l,$(target_extlibs),-l$(l)$(OSARCH_POSTFIX))
|
||||
|
||||
#
|
||||
# Include the compile rules
|
||||
#
|
||||
include $(POCO_BASE)/build/rules/compile
|
||||
|
||||
#
|
||||
# Rules for creating a dynamically loadable shared library
|
||||
#
|
||||
clean:
|
||||
$(RM) $(OBJPATH)
|
||||
$(RM) $(DYLIB_DEBUG) $(DYLIB_RELEASE) $(DYLIB_S_DEBUG) $(DYLIB_S_RELEASE)
|
||||
|
||||
distclean: clean
|
||||
$(RM) obj
|
||||
$(RM) .dep
|
||||
|
||||
static_debug: static_bindirs $(DYLIB_S_DEBUG)
|
||||
static_release: static_bindirs $(DYLIB_S_RELEASE)
|
||||
shared_debug: bindirs $(DYLIB_DEBUG)
|
||||
shared_release: bindirs $(DYLIB_RELEASE)
|
||||
|
||||
$(DYLIB_DEBUG): $(foreach o,$(objects),$(OBJPATH_DEBUG_SHARED)/$(o).o)
|
||||
@echo "** Building dynamic library (debug, shared)" $@
|
||||
$(DYLIB) $(DYLIBFLAGS) $^ $(LIBRARY) $(TARGET_LIBS_DEBUG) $(TARGET_LIBS_EXT) $(SYSLIBS)
|
||||
$(postbuild)
|
||||
|
||||
$(DYLIB_RELEASE): $(foreach o,$(objects),$(OBJPATH_RELEASE_SHARED)/$(o).o)
|
||||
@echo "** Building dynamic library (release, shared)" $@
|
||||
$(DYLIB) $(DYLIBFLAGS) $^ $(LIBRARY) $(TARGET_LIBS_RELEASE) $(TARGET_LIBS_EXT) $(SYSLIBS)
|
||||
$(postbuild)
|
||||
|
||||
$(DYLIB_S_DEBUG): $(foreach o,$(objects),$(OBJPATH_DEBUG_SHARED)/$(o).o)
|
||||
@echo "** Building dynamic library (debug, static)" $@
|
||||
$(DYLIB) $(DYLIBFLAGS) $^ $(LIBRARY) $(TARGET_LIBS_DEBUG) $(TARGET_LIBS_EXT) $(SYSLIBS)
|
||||
$(postbuild)
|
||||
|
||||
$(DYLIB_S_RELEASE): $(foreach o,$(objects),$(OBJPATH_RELEASE_SHARED)/$(o).o)
|
||||
@echo "** Building dynamic library (release, static)" $@
|
||||
$(DYLIB) $(DYLIBFLAGS) $^ $(LIBRARY) $(TARGET_LIBS_RELEASE) $(TARGET_LIBS_EXT) $(SYSLIBS)
|
||||
$(postbuild)
|
||||
|
||||
#
|
||||
# Include the automatically generated dependency files
|
||||
#
|
||||
sinclude $(addprefix $(DEPPATH)/,$(addsuffix .d,$(objects)))
|
66
vendor/POCO/build/rules/exec
vendored
Normal file
66
vendor/POCO/build/rules/exec
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
# exec
|
||||
#
|
||||
# Rule definitions for building executables
|
||||
#
|
||||
|
||||
#
|
||||
# Target names
|
||||
#
|
||||
EXEC_RELEASE_STATIC = $(BINPATH)/static/$(target)$(OSARCH_POSTFIX)$(BINEXT)
|
||||
EXEC_DEBUG_STATIC = $(BINPATH)/static/$(target)d$(OSARCH_POSTFIX)$(BINEXT)
|
||||
EXEC_RELEASE_SHARED = $(BINPATH)/$(target)$(OSARCH_POSTFIX)$(BINEXT)
|
||||
EXEC_DEBUG_SHARED = $(BINPATH)/$(target)d$(OSARCH_POSTFIX)$(BINEXT)
|
||||
|
||||
TARGET_LIBS_DEBUG = $(foreach l,$(target_libs),-l$(l)d$(OSARCH_POSTFIX))
|
||||
TARGET_LIBS_RELEASE = $(foreach l,$(target_libs),-l$(l)$(OSARCH_POSTFIX))
|
||||
TARGET_LIBS_EXT = $(foreach l,$(target_extlibs),-l$(l)$(OSARCH_POSTFIX))
|
||||
|
||||
#
|
||||
# Include the compile rules
|
||||
#
|
||||
include $(POCO_BASE)/build/rules/compile
|
||||
|
||||
#
|
||||
# Rules for creating an executable
|
||||
#
|
||||
clean:
|
||||
$(RM) $(OBJPATH)
|
||||
$(RM) $(EXEC_RELEASE_STATIC) $(EXEC_DEBUG_STATIC) $(EXEC_RELEASE_SHARED) $(EXEC_DEBUG_SHARED)
|
||||
|
||||
distclean: clean
|
||||
$(RM) bin
|
||||
$(RM) obj
|
||||
$(RM) .dep
|
||||
|
||||
static_debug: static_bindirs $(EXEC_DEBUG_STATIC)
|
||||
static_release: static_bindirs $(EXEC_RELEASE_STATIC)
|
||||
shared_debug: bindirs $(EXEC_DEBUG_SHARED)
|
||||
shared_release: bindirs $(EXEC_RELEASE_SHARED)
|
||||
|
||||
$(EXEC_DEBUG_STATIC): $(foreach o,$(objects),$(OBJPATH_DEBUG_STATIC)/$(o).o)
|
||||
@echo "** Building executable (debug)" $@
|
||||
$(LINK) $(LINKFLAGS) $(DEBUGOPT_LINK) $(STATICOPT_LINK) -o $@ $^ $(LIBRARY) $(TARGET_LIBS_DEBUG) $(TARGET_LIBS_EXT) $(SYSLIBS)
|
||||
$(postbuild)
|
||||
|
||||
$(EXEC_RELEASE_STATIC): $(foreach o,$(objects),$(OBJPATH_RELEASE_STATIC)/$(o).o)
|
||||
@echo "** Building executable (release)" $@
|
||||
$(LINK) $(LINKFLAGS) $(RELEASEOPT_LINK) $(STATICOPT_LINK) -o $@ $^ $(LIBRARY) $(TARGET_LIBS_RELEASE) $(TARGET_LIBS_EXT) $(SYSLIBS)
|
||||
$(STRIPCMD)
|
||||
$(postbuild)
|
||||
|
||||
$(EXEC_DEBUG_SHARED): $(foreach o,$(objects),$(OBJPATH_DEBUG_SHARED)/$(o).o)
|
||||
@echo "** Building shared executable (debug)" $@
|
||||
$(LINK) $(LINKFLAGS) $(DEBUGOPT_LINK) $(SHAREDOPT_LINK) -o $@ $^ $(LIBRARY) $(TARGET_LIBS_DEBUG) $(TARGET_LIBS_EXT) $(SYSLIBS)
|
||||
$(postbuild)
|
||||
|
||||
$(EXEC_RELEASE_SHARED): $(foreach o,$(objects),$(OBJPATH_RELEASE_SHARED)/$(o).o)
|
||||
@echo "** Building shared executable (release)" $@
|
||||
$(LINK) $(LINKFLAGS) $(RELEASEOPT_LINK) $(SHAREDOPT_LINK) -o $@ $^ $(LIBRARY) $(TARGET_LIBS_RELEASE) $(TARGET_LIBS_EXT) $(SYSLIBS)
|
||||
$(STRIPCMD)
|
||||
$(postbuild)
|
||||
|
||||
#
|
||||
# Include the automatically generated dependency files
|
||||
#
|
||||
sinclude $(addprefix $(DEPPATH)/,$(addsuffix .d,$(objects)))
|
328
vendor/POCO/build/rules/global
vendored
Normal file
328
vendor/POCO/build/rules/global
vendored
Normal file
@@ -0,0 +1,328 @@
|
||||
#
|
||||
# global
|
||||
#
|
||||
# Global build configuration
|
||||
#
|
||||
# Environment variables:
|
||||
# POCO_BASE: Path to POCO source tree. Must be defined.
|
||||
# POCO_BUILD: Path to directory where build files are put.
|
||||
# Defaults to $(POCO_BASE)
|
||||
# POCO_CONFIG: Build configuration to use.
|
||||
# Defaults to `uname`.
|
||||
# POCO_TARGET_OSNAME: Target system operating system name (for cross builds)
|
||||
# POCO_TARGET_OSARCH: Target system architecture (forr cross builds)
|
||||
#
|
||||
|
||||
#
|
||||
# Check for POCO_BASE
|
||||
#
|
||||
ifndef POCO_BASE
|
||||
$(error POCO_BASE is not defined.)
|
||||
endif
|
||||
|
||||
#
|
||||
# Include some optional make configuration
|
||||
#
|
||||
sinclude $(POCO_BASE)/config.build
|
||||
|
||||
#
|
||||
# Check for PROJECT_BASE
|
||||
#
|
||||
ifndef PROJECT_BASE
|
||||
PROJECT_BASE = $(POCO_BASE)
|
||||
endif
|
||||
export PROJECT_BASE
|
||||
ifdef POCO_VERBOSE
|
||||
$(info PROJECT_BASE = $(PROJECT_BASE))
|
||||
endif
|
||||
|
||||
#
|
||||
# Check for POCO_BUILD
|
||||
#
|
||||
ifndef POCO_BUILD
|
||||
POCO_BUILD = $(PROJECT_BASE)
|
||||
endif
|
||||
export POCO_BUILD
|
||||
ifdef POCO_VERBOSE
|
||||
$(info POCO_BUILD = $(POCO_BUILD))
|
||||
endif
|
||||
|
||||
#
|
||||
# POCO_BASE/POCO_BUILD/cwd sanity checks
|
||||
#
|
||||
# Ensure that the current working directory is either
|
||||
# under $POCO_BASE or under $PROJECT_BASE
|
||||
# Also, if we're building under $POCO_BASE, disarm
|
||||
# $PROJECT_BASE
|
||||
#
|
||||
cwd = $(shell pwd)
|
||||
inpoco = $(shell echo | awk '{print index("$(cwd)","$(POCO_BASE)")}')
|
||||
inproj = $(shell echo | awk '{print index("$(cwd)","$(PROJECT_BASE)")}')
|
||||
ifneq ($(inpoco),0)
|
||||
PROJECT_BASE = $(POCO_BASE)
|
||||
else
|
||||
ifneq ($(inproj),0)
|
||||
else
|
||||
$(error Current working directory not under $$PROJECT_BASE)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Determine OS
|
||||
#
|
||||
POCO_HOST_OSNAME = $(shell uname)
|
||||
ifeq ($(findstring CYGWIN,$(POCO_HOST_OSNAME)),CYGWIN)
|
||||
POCO_HOST_OSNAME = CYGWIN
|
||||
endif
|
||||
|
||||
ifeq ($(findstring MINGW,$(POCO_HOST_OSNAME)),MINGW)
|
||||
POCO_HOST_OSNAME = MinGW
|
||||
endif
|
||||
ifdef POCO_VERBOSE
|
||||
$(info POCO_HOST_OSNAME = $(POCO_HOST_OSNAME))
|
||||
endif
|
||||
|
||||
POCO_HOST_OSARCH ?= $(subst /,-,$(shell uname -m | tr ' ' _))
|
||||
ifdef POCO_VERBOSE
|
||||
$(info POCO_HOST_OSARCH = $(POCO_HOST_OSARCH))
|
||||
endif
|
||||
|
||||
#
|
||||
# Begin Sun platforms
|
||||
#
|
||||
# Pure Solaris or GNU (Nexenta), Sun Forte and Sun Studio compilers supported
|
||||
# (on Nexenta, the default compiler is g++)
|
||||
#
|
||||
ifndef POCO_CONFIG
|
||||
ifeq ($(findstring SunOS,$(POCO_HOST_OSNAME)),SunOS)
|
||||
# detect if this is Nexenta platform
|
||||
POCO_HOST_ALL_OSNAME := $(shell uname -a)
|
||||
ifeq ($(findstring Nexenta,$(POCO_HOST_ALL_OSNAME)),Nexenta)
|
||||
POCO_HOST_OSNAME := Nexenta
|
||||
else # Up to version 5.5 SunOS-SunForte config is used, 5.6 and above use SunOS-SunStudio
|
||||
POCO_COMPILER_NAME := $(shell CC -V 2>&1)
|
||||
POCO_COMPILER_VERSION := $(subst .,,$(filter 5.%,$(POCO_COMPILER_NAME)))
|
||||
|
||||
ifeq (0, $(shell test $(POCO_COMPILER_VERSION) -gt 55; echo $$?))
|
||||
POCO_CONFIG := SunOS-SunStudio
|
||||
else
|
||||
POCO_CONFIG := SunOS-SunForte
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
#
|
||||
# End Sun Platforms
|
||||
#
|
||||
|
||||
#
|
||||
# If POCO_CONFIG is not set, use the OS name as configuration name
|
||||
#
|
||||
ifndef POCO_CONFIG
|
||||
POCO_CONFIG = $(POCO_HOST_OSNAME)
|
||||
endif
|
||||
ifdef POCO_VERBOSE
|
||||
$(info POCO_CONFIG = $(POCO_CONFIG))
|
||||
endif
|
||||
|
||||
#
|
||||
# Include System Specific Settings
|
||||
#
|
||||
include $(POCO_BASE)/build/config/$(POCO_CONFIG)
|
||||
|
||||
#
|
||||
# Determine operating system
|
||||
#
|
||||
ifndef POCO_TARGET_OSNAME
|
||||
OSNAME := $(POCO_HOST_OSNAME)
|
||||
else
|
||||
OSNAME := $(POCO_TARGET_OSNAME)
|
||||
endif
|
||||
ifdef POCO_VERBOSE
|
||||
$(info OSNAME = $(OSNAME))
|
||||
endif
|
||||
|
||||
ifndef POCO_TARGET_OSARCH
|
||||
OSARCH := $(subst /,-,$(shell uname -m | tr ' ' _))
|
||||
else
|
||||
OSARCH := $(POCO_TARGET_OSARCH)
|
||||
endif
|
||||
ifdef POCO_VERBOSE
|
||||
$(info OSARCH = $(OSARCH))
|
||||
endif
|
||||
|
||||
HOSTNAME := $(shell hostname)
|
||||
|
||||
#
|
||||
# Check if a 64bit build is requested
|
||||
#
|
||||
ifndef OSARCH_64BITS
|
||||
OSARCH_64BITS = 0
|
||||
endif
|
||||
|
||||
ifeq ($(OSARCH_64BITS),1)
|
||||
OSARCH_POSTFIX = 64
|
||||
else
|
||||
OSARCH_POSTFIX =
|
||||
endif
|
||||
|
||||
#
|
||||
# Detect distro
|
||||
#
|
||||
|
||||
# Fedora, Redhat, Centos.
|
||||
REDHATISH = $(if $(wildcard /etc/redhat-release /etc/centos-release /etc/fedora-release),1)
|
||||
# Debian, Ubuntu
|
||||
DEBIANISH = $(if $(wildcard /etc/debian_version),1)
|
||||
|
||||
#
|
||||
# Adjust suffix for 64-bit lib directory
|
||||
#
|
||||
ifneq ($(REDHATISH),)
|
||||
LIB64SUFFIX = $(if $(filter $(OSARCH),x86_64 sparc64 ppc64),64,)
|
||||
else ifneq ($(DEBIANISH),)
|
||||
LIB64SUFFIX = $(if $(filter $(OSARCH),x86_64 sparc64 ppc64),/x86_64-linux-gnu,)
|
||||
endif
|
||||
|
||||
# Default static lib extension
|
||||
STATICLIBLINKEXT = .a
|
||||
|
||||
#
|
||||
# Find out current component
|
||||
#
|
||||
COMPONENT := $(shell $(POCO_BASE)/build/script/projname "$(PROJECT_BASE)")
|
||||
|
||||
#
|
||||
# Define standard directories
|
||||
#
|
||||
SRCDIR = src
|
||||
INCDIR = include
|
||||
LIBDIR = lib/$(OSNAME)/$(OSARCH)
|
||||
BINDIR = bin/$(OSNAME)/$(OSARCH)
|
||||
OBJDIR = obj/$(OSNAME)/$(OSARCH)
|
||||
DEPDIR = .dep/$(OSNAME)/$(OSARCH)
|
||||
LIBPATH = $(POCO_BUILD)/$(LIBDIR)
|
||||
BINPATH = $(POCO_BUILD)/$(COMPONENT)/$(BINDIR)
|
||||
OBJPATH = $(POCO_BUILD)/$(COMPONENT)/$(OBJDIR)
|
||||
DEPPATH = $(POCO_BUILD)/$(COMPONENT)/$(DEPDIR)
|
||||
|
||||
POCO_HOST_BINDIR = bin/$(POCO_HOST_OSNAME)/$(POCO_HOST_OSARCH)
|
||||
POCO_TARGET_BINDIR = $(BINDIR)
|
||||
POCO_HOST_BINPATH = $(POCO_BUILD)/$(POCO_HOST_BINDIR)
|
||||
POCO_TARGET_BINPATH = $(BINPATH)
|
||||
POCO_HOST_LIBDIR = lib/$(POCO_HOST_OSNAME)/$(POCO_HOST_OSARCH)
|
||||
POCO_TARGET_LIBDIR = $(LIBDIR)
|
||||
POCO_HOST_LIBPATH = $(POCO_BUILD)/$(POCO_HOST_LIBDIR)
|
||||
POCO_TARGET_LIBPATH = $(LIBPATH)
|
||||
ifdef POCO_PREFIX
|
||||
POCO_LIB_INSTALLDIR = $(POCO_PREFIX)/lib
|
||||
else
|
||||
POCO_LIB_INSTALLDIR = $(LIBPATH)
|
||||
endif
|
||||
ifdef POCO_VERBOSE
|
||||
$(info POCO_LIB_INSTALLDIR = $(POCO_LIB_INSTALLDIR))
|
||||
endif
|
||||
|
||||
ifeq ($(POCO_BASE),$(PROJECT_BASE))
|
||||
POCO_LIBRARY =
|
||||
else
|
||||
POCO_LIBRARY = -L$(POCO_BASE)/$(LIBDIR)
|
||||
endif
|
||||
|
||||
ifndef LIBPREFIX
|
||||
LIBPREFIX = lib
|
||||
endif
|
||||
|
||||
ifeq ($(POCO_HOST_LIBPATH),$(POCO_BASE)/$(POCO_HOST_LIBDIR))
|
||||
LD_LIBRARY_PATH = $(POCO_HOST_LIBPATH)
|
||||
else
|
||||
LD_LIBRARY_PATH = $(POCO_HOST_LIBPATH):$(POCO_BASE)/$(POCO_HOST_LIBDIR)
|
||||
endif
|
||||
ifeq ($(POCO_HOST_OSNAME),Darwin)
|
||||
SET_LD_LIBRARY_PATH = DYLD_LIBRARY_PATH=$(LD_LIBRARY_PATH)
|
||||
else
|
||||
SET_LD_LIBRARY_PATH = LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)
|
||||
endif
|
||||
|
||||
#
|
||||
# Build component list
|
||||
#
|
||||
COMPONENTS := $(shell cat $(POCO_BASE)/components)
|
||||
|
||||
#
|
||||
# Read global library version number
|
||||
#
|
||||
LIBVERSION := $(shell cat $(POCO_BASE)/libversion)
|
||||
|
||||
#
|
||||
# Determine link mode
|
||||
#
|
||||
ifndef LINKMODE
|
||||
LINKMODE = BOTH
|
||||
endif
|
||||
|
||||
ifeq ($(LINKMODE),SHARED)
|
||||
DEFAULT_TARGET = all_shared
|
||||
endif
|
||||
ifeq ($(LINKMODE),STATIC)
|
||||
DEFAULT_TARGET = all_static
|
||||
endif
|
||||
ifeq ($(LINKMODE),BOTH)
|
||||
DEFAULT_TARGET = all_static all_shared
|
||||
endif
|
||||
|
||||
#
|
||||
# Compose compiler flags
|
||||
#
|
||||
COMMONFLAGS = -DPOCO_BUILD_HOST='"'$(HOSTNAME)'"' -DPOCO_TARGET_OSNAME='"'$(OSNAME)'"' -DPOCO_TARGET_OSARCH='"'$(OSARCH)'"' $(POCO_FLAGS)
|
||||
CFLAGS += $(COMMONFLAGS) $(SYSFLAGS)
|
||||
CXXFLAGS += $(COMMONFLAGS) $(SYSFLAGS)
|
||||
LINKFLAGS += $(COMMONFLAGS) $(SYSFLAGS)
|
||||
|
||||
ifeq ($(OSARCH_64BITS),1)
|
||||
CFLAGS += $(CFLAGS64)
|
||||
CXXFLAGS += $(CXXFLAGS64)
|
||||
SHLIBFLAGS += $(SHLIBFLAGS64)
|
||||
DYLIBFLAGS += $(DYLIBFLAGS64)
|
||||
LINKFLAGS += $(LINKFLAGS64)
|
||||
else
|
||||
CFLAGS += $(CFLAGS32)
|
||||
CXXFLAGS += $(CXXFLAGS32)
|
||||
SHLIBFLAGS += $(SHLIBFLAGS32)
|
||||
DYLIBFLAGS += $(DYLIBFLAGS32)
|
||||
LINKFLAGS += $(LINKFLAGS32)
|
||||
endif
|
||||
|
||||
#
|
||||
# Compose object file path
|
||||
#
|
||||
OBJPATH_RELEASE_STATIC = $(OBJPATH)/release_static$(OSARCH_POSTFIX)
|
||||
OBJPATH_DEBUG_STATIC = $(OBJPATH)/debug_static$(OSARCH_POSTFIX)
|
||||
OBJPATH_RELEASE_SHARED = $(OBJPATH)/release_shared$(OSARCH_POSTFIX)
|
||||
OBJPATH_DEBUG_SHARED = $(OBJPATH)/debug_shared$(OSARCH_POSTFIX)
|
||||
|
||||
#
|
||||
# Build Include directory List
|
||||
#
|
||||
INCLUDE = -Iinclude $(foreach p,$(COMPONENTS),-I$(POCO_BASE)/$(p)/$(INCDIR)) $(foreach p,$(POCO_ADD_INCLUDE),-I$(p))
|
||||
|
||||
#
|
||||
# Build Library Directory List
|
||||
#
|
||||
LIBRARY = -L$(LIBPATH) $(POCO_LIBRARY) $(foreach p,$(POCO_ADD_LIBRARY),-L$(p))
|
||||
|
||||
#
|
||||
# Strip Command definition
|
||||
#
|
||||
ifeq ($(strip $(STRIP)),)
|
||||
STRIPCMD =
|
||||
else
|
||||
STRIPCMD = $(STRIP) $@$(BINEXT)
|
||||
endif
|
||||
|
||||
#
|
||||
# Make CC and CXX environment vars
|
||||
#
|
||||
export CC
|
||||
export CXX
|
||||
export LINK
|
92
vendor/POCO/build/rules/lib
vendored
Normal file
92
vendor/POCO/build/rules/lib
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
#
|
||||
# lib
|
||||
#
|
||||
# Rule definitions for building libraries
|
||||
#
|
||||
|
||||
#
|
||||
# Target names
|
||||
#
|
||||
ifdef target_version
|
||||
SHL_EXT = $(SHAREDLIBEXT)
|
||||
IMP_EXT = $(IMPLIBEXT)
|
||||
else
|
||||
SHL_EXT = $(SHAREDLIBLINKEXT)
|
||||
IMP_EXT = $(IMPLIBLINKEXT)
|
||||
endif
|
||||
|
||||
LIB_RELEASE_STATIC = $(LIBPATH)/$(LIBPREFIX)$(target)$(OSARCH_POSTFIX).a
|
||||
LIB_DEBUG_STATIC = $(LIBPATH)/$(LIBPREFIX)$(target)d$(OSARCH_POSTFIX).a
|
||||
LIB_RELEASE_SHARED = $(LIBPATH)/$(LIBPREFIX)$(target)$(OSARCH_POSTFIX)$(SHL_EXT)
|
||||
LIB_DEBUG_SHARED = $(LIBPATH)/$(LIBPREFIX)$(target)d$(OSARCH_POSTFIX)$(SHL_EXT)
|
||||
LIB_RELEASE_SHARED_LINK = $(LIBPATH)/$(LIBPREFIX)$(target)$(OSARCH_POSTFIX)$(SHAREDLIBLINKEXT)
|
||||
LIB_DEBUG_SHARED_LINK = $(LIBPATH)/$(LIBPREFIX)$(target)d$(OSARCH_POSTFIX)$(SHAREDLIBLINKEXT)
|
||||
|
||||
ifeq ($(OSNAME), CYGWIN)
|
||||
IMP_RELEASE_SHARED = $(LIBPATH)/$(IMPPREFIX)$(target)$(OSARCH_POSTFIX)$(IMP_EXT)
|
||||
IMP_DEBUG_SHARED = $(LIBPATH)/$(IMPPREFIX)$(target)d$(OSARCH_POSTFIX)$(IMP_EXT)
|
||||
IMP_RELEASE_SHARED_LINK = $(LIBPATH)/$(IMPPREFIX)$(target)$(OSARCH_POSTFIX)$(IMPLIBLINKEXT)
|
||||
IMP_DEBUG_SHARED_LINK = $(LIBPATH)/$(IMPPREFIX)$(target)d$(OSARCH_POSTFIX)$(IMPLIBLINKEXT)
|
||||
endif
|
||||
|
||||
TARGET_LIBS_DEBUG = $(foreach l,$(target_libs),-l$(l)d$(OSARCH_POSTFIX))
|
||||
TARGET_LIBS_RELEASE = $(foreach l,$(target_libs),-l$(l)$(OSARCH_POSTFIX))
|
||||
TARGET_LIBS_EXT = $(foreach l,$(target_extlibs),-l$(l)$(OSARCH_POSTFIX))
|
||||
|
||||
#
|
||||
# Include the compile rules
|
||||
#
|
||||
include $(POCO_BASE)/build/rules/compile
|
||||
|
||||
#
|
||||
# Rules for creating a library
|
||||
#
|
||||
clean:
|
||||
$(RM) $(OBJPATH)
|
||||
$(RM) $(LIB_RELEASE_STATIC) $(LIB_DEBUG_STATIC) $(LIB_RELEASE_SHARED) $(LIB_DEBUG_SHARED)
|
||||
$(RM) $(LIB_DEBUG_SHARED_LINK) $(LIB_RELEASE_SHARED_LINK)
|
||||
|
||||
distclean: clean
|
||||
$(RM) obj
|
||||
$(RM) .dep
|
||||
|
||||
static_debug: libdirs $(LIB_DEBUG_STATIC)
|
||||
static_release: libdirs $(LIB_RELEASE_STATIC)
|
||||
shared_debug: libdirs $(LIB_DEBUG_SHARED)
|
||||
shared_release: libdirs $(LIB_RELEASE_SHARED)
|
||||
|
||||
$(LIB_DEBUG_STATIC): $(foreach o,$(objects),$(OBJPATH_DEBUG_STATIC)/$(o).o)
|
||||
@echo "** Building library (debug)" $@
|
||||
$(LIB) $@ $^
|
||||
$(RANLIB) $@
|
||||
$(postbuild)
|
||||
|
||||
$(LIB_RELEASE_STATIC): $(foreach o,$(objects),$(OBJPATH_RELEASE_STATIC)/$(o).o)
|
||||
@echo "** Building library (release)" $@
|
||||
$(LIB) $@ $^
|
||||
$(RANLIB) $@
|
||||
$(postbuild)
|
||||
|
||||
$(LIB_DEBUG_SHARED): $(foreach o,$(objects),$(OBJPATH_DEBUG_SHARED)/$(o).o)
|
||||
@echo "** Building shared library (debug)" $@
|
||||
$(SHLIB) $(SHLIBFLAGS) $^ $(LIBRARY) $(TARGET_LIBS_DEBUG) $(TARGET_LIBS_EXT) $(SYSLIBS)
|
||||
ifeq ($(OSNAME), CYGWIN)
|
||||
$(SHLIBLN) $(IMP_DEBUG_SHARED) $(IMP_DEBUG_SHARED_LINK)
|
||||
endif
|
||||
$(SHLIBLN) $(LIB_DEBUG_SHARED) $(LIB_DEBUG_SHARED_LINK)
|
||||
$(postbuild)
|
||||
|
||||
$(LIB_RELEASE_SHARED): $(foreach o,$(objects),$(OBJPATH_RELEASE_SHARED)/$(o).o)
|
||||
@echo "** Building shared library (release)" $@
|
||||
$(SHLIB) $(SHLIBFLAGS) $^ $(LIBRARY) $(TARGET_LIBS_RELEASE) $(TARGET_LIBS_EXT) $(SYSLIBS)
|
||||
ifeq ($(OSNAME), CYGWIN)
|
||||
$(SHLIBLN) $(IMP_RELEASE_SHARED) $(IMP_RELEASE_SHARED_LINK)
|
||||
endif
|
||||
$(SHLIBLN) $(LIB_RELEASE_SHARED) $(LIB_RELEASE_SHARED_LINK)
|
||||
$(STRIPCMD)
|
||||
$(postbuild)
|
||||
|
||||
#
|
||||
# Include the automatically generated dependency files
|
||||
#
|
||||
sinclude $(addprefix $(DEPPATH)/,$(addsuffix .d,$(objects)))
|
98
vendor/POCO/build/rules/sample
vendored
Normal file
98
vendor/POCO/build/rules/sample
vendored
Normal file
@@ -0,0 +1,98 @@
|
||||
#
|
||||
# sample
|
||||
#
|
||||
# Global build configuration for samples
|
||||
#
|
||||
# Environment variables:
|
||||
# POCO_BASE: Path to POCO source tree.
|
||||
# POCO_CONFIG: Build configuration to use.
|
||||
# Defaults to `uname`.
|
||||
#
|
||||
|
||||
#
|
||||
# Check for POCO_BASE
|
||||
#
|
||||
ifndef POCO_BASE
|
||||
$(error POCO_BASE is not defined.)
|
||||
endif
|
||||
|
||||
#
|
||||
# Determine OS
|
||||
#
|
||||
POCO_HOST_OSNAME = $(shell uname)
|
||||
|
||||
#
|
||||
# If POCO_CONFIG is not set, use the OS name as configuration name
|
||||
#
|
||||
ifndef POCO_CONFIG
|
||||
POCO_CONFIG = $(POCO_HOST_OSNAME)
|
||||
endif
|
||||
|
||||
#
|
||||
# Include System Specific Settings
|
||||
#
|
||||
include $(POCO_BASE)/build/config/$(POCO_CONFIG)
|
||||
|
||||
#
|
||||
# Define standard directories
|
||||
#
|
||||
SRCDIR = src
|
||||
INCDIR = include
|
||||
LIBDIR = lib
|
||||
BINDIR = bin
|
||||
OBJDIR = obj
|
||||
DEPDIR = .dep
|
||||
INCPATH = $(POCO_BASE)/$(INCDIR)
|
||||
LIBPATH = $(POCO_BASE)/$(LIBDIR)
|
||||
BINPATH = $(BINDIR)
|
||||
OBJPATH = $(OBJDIR)
|
||||
DEPPATH = $(DEPDIR)
|
||||
|
||||
#
|
||||
# Determine link mode
|
||||
#
|
||||
ifndef LINKMODE
|
||||
LINKMODE = BOTH
|
||||
endif
|
||||
|
||||
ifeq ($(LINKMODE),SHARED)
|
||||
DEFAULT_TARGET = all_shared
|
||||
endif
|
||||
ifeq ($(LINKMODE),STATIC)
|
||||
DEFAULT_TARGET = all_static
|
||||
endif
|
||||
ifeq ($(LINKMODE),BOTH)
|
||||
DEFAULT_TARGET = all_static all_shared
|
||||
endif
|
||||
|
||||
#
|
||||
# Compose compiler flags
|
||||
#
|
||||
COMMONFLAGS = $(POCO_FLAGS)
|
||||
CFLAGS += $(COMMONFLAGS) $(SYSFLAGS)
|
||||
CXXFLAGS += $(COMMONFLAGS) $(SYSFLAGS)
|
||||
LINKFLAGS += $(COMMONFLAGS) $(SYSFLAGS)
|
||||
|
||||
#
|
||||
# Compose object file path
|
||||
#
|
||||
OBJPATH_RELEASE_STATIC = $(OBJPATH)/release_static$(OSARCH_POSTFIX)
|
||||
OBJPATH_DEBUG_STATIC = $(OBJPATH)/debug_static$(OSARCH_POSTFIX)
|
||||
OBJPATH_RELEASE_SHARED = $(OBJPATH)/release_shared$(OSARCH_POSTFIX)
|
||||
OBJPATH_DEBUG_SHARED = $(OBJPATH)/debug_shared$(OSARCH_POSTFIX)
|
||||
|
||||
#
|
||||
# Build Include directory List
|
||||
#
|
||||
INCLUDE = -Iinclude -I$(INCPATH)
|
||||
|
||||
#
|
||||
# Build Library Directory List
|
||||
#
|
||||
LIBRARY = -L$(LIBPATH)
|
||||
|
||||
#
|
||||
# Make CC and CXX environment vars
|
||||
#
|
||||
export CC
|
||||
export CXX
|
Reference in New Issue
Block a user