BUILD: makefile: rework 51D to split v3/v4

There are multiple options for 51DEGREES, v3/v4, threading or not,
pattern/trie for v3, vhash for v4, use of libatomic, etc. While the
current rules deal with all of that correctly, it's too difficult to
focus on one version because the two are interleaved for every single
option. Let's just split them into two independent blocks. This removes
some if/endif, and makes the lecture much more straightforward.
This commit is contained in:
Willy Tarreau 2022-12-21 15:23:04 +01:00
parent f6ceb0ec4e
commit c108f37c2a
1 changed files with 25 additions and 30 deletions

View File

@ -660,46 +660,41 @@ ifneq ($(USE_DEVICEATLAS),)
OPTIONS_CFLAGS += $(if $(DEVICEATLAS_INC),-I$(DEVICEATLAS_INC)) OPTIONS_CFLAGS += $(if $(DEVICEATLAS_INC),-I$(DEVICEATLAS_INC))
endif endif
ifneq ($(USE_51DEGREES),) # Use 51DEGREES_SRC and possibly 51DEGREES_INC and 51DEGREES_LIB to force path
ifneq ($(USE_51DEGREES_V4),) # to 51degrees v3/v4 headers and libraries if needed.
51DEGREES_INC = $(51DEGREES_SRC)
51DEGREES_LIB = $(51DEGREES_SRC)
ifneq ($(USE_51DEGREES_V4),) # v4 here
ifneq ($(USE_51DEGREES),)
$(error cannot compile both 51Degrees V3 and V4 engine support) $(error cannot compile both 51Degrees V3 and V4 engine support)
endif endif
endif _51DEGREES_SRC = $(shell find $(51DEGREES_LIB) -maxdepth 2 -name '*.c')
OPTIONS_OBJS += $(_51DEGREES_SRC:%.c=%.o)
ifneq ($(USE_51DEGREES)$(USE_51DEGREES_V4),) OPTIONS_CFLAGS += -DUSE_51DEGREES_V4
# Use 51DEGREES_SRC and possibly 51DEGREES_INC and 51DEGREES_LIB to force path ifeq ($(USE_THREAD),)
# to 51degrees headers and libraries if needed. OPTIONS_CFLAGS += -DFIFTYONEDEGREES_NO_THREADING -DFIFTYONE_DEGREES_NO_THREADING
51DEGREES_INC = $(51DEGREES_SRC)
51DEGREES_LIB = $(51DEGREES_SRC)
ifneq ($(USE_51DEGREES_V4),)
_51DEGREES_SRC = $(shell find $(51DEGREES_LIB) -maxdepth 2 -name '*.c')
OPTIONS_OBJS += $(_51DEGREES_SRC:%.c=%.o)
else
OPTIONS_OBJS += $(51DEGREES_LIB)/../cityhash/city.o
OPTIONS_OBJS += $(51DEGREES_LIB)/51Degrees.o
endif endif
OPTIONS_OBJS += addons/51degrees/51d.o OPTIONS_OBJS += addons/51degrees/51d.o
OPTIONS_CFLAGS += $(if $(51DEGREES_INC),-I$(51DEGREES_INC)) OPTIONS_CFLAGS += $(if $(51DEGREES_INC),-I$(51DEGREES_INC))
ifneq ($(USE_51DEGREES_V4),) OPTIONS_LDFLAGS += $(if $(51DEGREES_LIB),-L$(51DEGREES_LIB))
OPTIONS_CFLAGS += -DUSE_51DEGREES_V4 USE_ATOMIC = implicit
endif USE_MATH = implicit
endif # USE_51DEGREES_V4
ifneq ($(USE_51DEGREES),) # v3 here
OPTIONS_OBJS += $(51DEGREES_LIB)/../cityhash/city.o
OPTIONS_OBJS += $(51DEGREES_LIB)/51Degrees.o
ifeq ($(USE_THREAD),) ifeq ($(USE_THREAD),)
OPTIONS_CFLAGS += -DFIFTYONEDEGREES_NO_THREADING OPTIONS_CFLAGS += -DFIFTYONEDEGREES_NO_THREADING
ifneq ($(USE_51DEGREES_V4),) else
OPTIONS_CFLAGS += -DFIFTYONE_DEGREES_NO_THREADING OPTIONS_OBJS += $(51DEGREES_LIB)/../threading.o
endif
else
ifeq ($(USE_51DEGREES_V4),)
OPTIONS_OBJS += $(51DEGREES_LIB)/../threading.o
endif
endif endif
OPTIONS_OBJS += addons/51degrees/51d.o
OPTIONS_CFLAGS += $(if $(51DEGREES_INC),-I$(51DEGREES_INC))
OPTIONS_LDFLAGS += $(if $(51DEGREES_LIB),-L$(51DEGREES_LIB)) OPTIONS_LDFLAGS += $(if $(51DEGREES_LIB),-L$(51DEGREES_LIB))
USE_MATH = implicit USE_MATH = implicit
ifneq ($(USE_51DEGREES_V4),) endif # USE_51DEGREES
USE_LIBATOMIC = implicit
endif
endif
ifneq ($(USE_WURFL),) ifneq ($(USE_WURFL),)
# Use WURFL_SRC and possibly WURFL_INC and WURFL_LIB to force path # Use WURFL_SRC and possibly WURFL_INC and WURFL_LIB to force path