11#
2- # Copyright (C) 2020 Linux Studio Plugins Project <https://lsp-plug.in/>
3- # (C) 2020 Vladimir Sadovnikov <sadko4u@gmail.com>
2+ # Copyright (C) 2024 Linux Studio Plugins Project <https://lsp-plug.in/>
3+ # (C) 2024 Vladimir Sadovnikov <sadko4u@gmail.com>
44#
55# This file is part of lsp-plugin-shared
66#
@@ -21,45 +21,35 @@ ifneq ($(VERBOSE),1)
2121.SILENT :
2222endif
2323
24- # Definitions
25- PREFIX := /usr/local
26- LIBDIR := $(PREFIX ) /lib
27- BINDIR := $(PREFIX ) /bin
28- SHAREDDIR := $(PREFIX ) /share
29- INCDIR := $(PREFIX ) /include
30- ETCDIR := /etc
3124BASEDIR := $(CURDIR )
3225ROOTDIR := $(CURDIR )
33- BUILDDIR := $(BASEDIR ) /.build
34- TARGET_BUILDDIR := $(BUILDDIR ) /target
35- HOST_BUILDDIR := $(BUILDDIR ) /host
36- MODULES := $(BASEDIR ) /modules
37- CONFIG := $(BASEDIR ) /.config.mk
3826TEST := 0
3927DEBUG := 0
4028PROFILE := 0
4129TRACE := 0
4230
43- ifeq ($(DEVEL ) ,1)
44- X_URL_SUFFIX = _RW
45- else
46- X_URL_SUFFIX = _RO
47- endif
48-
31+ # Configure system settings
4932include $(BASEDIR ) /project.mk
5033include $(BASEDIR ) /make/functions.mk
5134include $(BASEDIR ) /make/system.mk
35+ include $(BASEDIR ) /make/paths.mk
5236include $(BASEDIR ) /make/tools.mk
5337include $(BASEDIR ) /modules.mk
5438include $(BASEDIR ) /dependencies.mk
5539
40+ ifeq ($(DEVEL ) ,1)
41+ X_URL_SUFFIX = _RW
42+ else
43+ X_URL_SUFFIX = _RO
44+ endif
45+
5646# Compute the full list of dependencies
5747MERGED_DEPENDENCIES := \
5848 $(DEPENDENCIES ) \
5949 $(TEST_DEPENDENCIES )
6050UNIQ_MERGED_DEPENDENCIES := $(call uniq, $(MERGED_DEPENDENCIES ) )
6151DEPENDENCIES = $(UNIQ_MERGED_DEPENDENCIES )
62- FEATURES := $(call uniq, $(call subtraction,$(SUB_FEATURES ) ,$(DEFAULT_FEATURES ) $(ADD_FEATURES ) ) )
52+ FEATURES := $(sort $(call subtraction,$(SUB_FEATURES ) ,$(DEFAULT_FEATURES ) $(ADD_FEATURES ) ) )
6353
6454# Determine versions
6555ifeq ($(findstring -devel,$(ARTIFACT_VERSION ) ) ,-devel)
@@ -127,19 +117,23 @@ define _modconfig =
127117 $(if $($(name ) _TEST) ,, $(eval $(name ) _TEST := $($(name ) _PATH) /test) )
128118 $(if $($(name ) _TESTING) ,, $(eval $(name ) _TESTING := 0) )
129119 $(if $($(name ) _BIN) ,, $(eval $(name ) _BIN := $(TARGET_BUILDDIR ) /$($(name ) _NAME) ) )
130- $(if $($(name ) _CFLAGS) ,, $(eval $(name ) _CFLAGS := "-I \"$($(name ) _INC) \"" -D$(name ) _BUILTIN$(if $(publisher ) , -D$(name ) _PUBLISHER) ) )
120+ $(if $($(name ) _CFLAGS) ,, $(eval $(name ) _CFLAGS := "$( if $( $( name ) _INC_OPT) , $( $( name ) _INC_OPT) ,-I ) \"$($(name ) _INC) \"" -D$(name ) _BUILTIN$(if $(publisher ) , -D$(name ) _PUBLISHER) ) )
131121 $(if $($(name ) _LDLAGS) ,, $(eval $(name ) _LDFLAGS :=) )
132122 $(if $($(name ) _OBJ) ,, $(eval $(name ) _OBJ := "$($(name ) _BIN) /$($(name ) _NAME) .o") )
133123 $(if $($(name ) _OBJ_TEST) ,, $(eval $(name ) _OBJ_TEST := "$($(name ) _BIN) /$($(name ) _NAME) -test.o") )
134124 $(if $($(name ) _MFLAGS) ,, $(eval $(name ) _MFLAGS := $(if $(publisher ) ,,"-D$(name ) _BUILTIN -fvisibility=hidden") ) )
135125
126+ $(if $(HOST_$(name ) _NAME ) ,, $(eval HOST_$(name ) _NAME := $($(name ) _NAME) ) )
127+ $(if $(HOST_$(name ) _DESC ) ,, $(eval HOST_$(name ) _DESC := $($(name ) _DESC) ) )
128+ $(if $(HOST_$(name ) _URL ) ,, $(eval HOST_$(name ) _URL := $($(name ) _URL$(X_URL_SUFFIX ) ) ) )
129+
136130 $(if $(HOST_$(name ) _PATH ) ,, $(eval HOST_$(name ) _PATH := $(MODULES ) /$($(name ) _NAME) ) )
137131 $(if $(HOST_$(name ) _INC ) ,, $(eval HOST_$(name ) _INC := $(HOST_$(name ) _PATH ) /include) )
138132 $(if $(HOST_$(name ) _SRC ) ,, $(eval HOST_$(name ) _SRC := $(HOST_$(name ) _PATH ) /src) )
139133 $(if $(HOST_$(name ) _TEST ) ,, $(eval HOST_$(name ) _TEST := $(HOST_$(name ) _PATH ) /test) )
140134 $(if $(HOST_$(name ) _TESTING ) ,, $(eval HOST_$(name ) _TESTING := 0) )
141135 $(if $(HOST_$(name ) _BIN ) ,, $(eval HOST_$(name ) _BIN := $(HOST_BUILDDIR ) /$($(name ) _NAME) ) )
142- $(if $(HOST_$(name ) _CFLAGS ) ,, $(eval HOST_$(name ) _CFLAGS := "-I \"$($(name ) _INC) \"" -D$(name ) _BUILTIN$(if $(publisher ) , -D$(name ) _PUBLISHER) ) )
136+ $(if $(HOST_$(name ) _CFLAGS ) ,, $(eval HOST_$(name ) _CFLAGS := "$( if $( $( name ) _INC_OPT) , $( $( name ) _INC_OPT) ,-I ) \"$($(name ) _INC) \"" -D$(name ) _BUILTIN$(if $(publisher ) , -D$(name ) _PUBLISHER) ) )
143137 $(if $(HOST_$(name ) _LDLAGS ) ,, $(eval HOST_$(name ) _LDFLAGS :=) )
144138 $(if $(HOST_$(name ) _OBJ ) ,, $(eval HOST_$(name ) _OBJ := "$(HOST_$(name ) _BIN ) /$($(name ) _NAME) .o") )
145139 $(if $(HOST_$(name ) _OBJ_TEST ) ,,$(eval HOST_$(name ) _OBJ_TEST:= "$(HOST_$(name ) _BIN ) /$($(name ) _NAME) -test.o") )
@@ -168,13 +162,17 @@ define hdrconfig =
168162 $(if $($(name ) _PATH) ,, $(eval $(name ) _PATH := $(MODULES ) /$($(name ) _NAME) ) )
169163 $(if $($(name ) _INC) ,, $(eval $(name ) _INC := $($(name ) _PATH) /include) )
170164 $(if $($(name ) _TESTING) ,, $(eval $(name ) _TESTING := 0) )
171- $(if $($(name ) _CFLAGS) ,, $(eval $(name ) _CFLAGS := "-I \"$($(name ) _INC) \""$(if $(publisher ) , "-D$(name ) _PUBLISHER") ) )
165+ $(if $($(name ) _CFLAGS) ,, $(eval $(name ) _CFLAGS := "$( if $( $( name ) _INC_OPT) , $( $( name ) _INC_OPT) ,-I ) \"$($(name ) _INC) \""$(if $(publisher ) , "-D$(name ) _PUBLISHER") ) )
172166 $(if $($(name ) _MFLAGS) ,, $(eval $(name ) _MFLAGS := "-D$(name ) _BUILTIN -fvisibility=hidden") )
167+
168+ $(if $(HOST_$(name ) _NAME ) ,, $(eval HOST_$(name ) _NAME := $($(name ) _NAME) ) )
169+ $(if $(HOST_$(name ) _DESC ) ,, $(eval HOST_$(name ) _DESC := $($(name ) _DESC) ) )
170+ $(if $(HOST_$(name ) _URL ) ,, $(eval HOST_$(name ) _URL := $($(name ) _URL$(X_URL_SUFFIX ) ) ) )
173171
174172 $(if $(HOST_$(name ) _PATH ) ,, $(eval HOST_$(name ) _PATH := $(MODULES ) /$($(name ) _NAME) ) )
175173 $(if $(HOST_$(name ) _INC ) ,, $(eval HOST_$(name ) _INC := $(HOST_$(name ) _PATH ) /include) )
176174 $(if $(HOST_$(name ) _TESTING ) ,, $(eval HOST_$(name ) _TESTING := 0) )
177- $(if $(HOST_$(name ) _CFLAGS ) ,, $(eval HOST_$(name ) _CFLAGS := "-I \"$(HOST_$(name ) _INC ) \""$(if $(publisher ) , "-D$(name ) _PUBLISHER") ) )
175+ $(if $(HOST_$(name ) _CFLAGS ) ,, $(eval HOST_$(name ) _CFLAGS := "$( if $( $( name ) _INC_OPT) , $( $( name ) _INC_OPT) ,-I ) \"$(HOST_$(name ) _INC ) \""$(if $(publisher ) , "-D$(name ) _PUBLISHER") ) )
178176 $(if $(HOST_$(name ) _MFLAGS ) ,, $(eval HOST_$(name ) _MFLAGS := "-D$(name ) _BUILTIN -fvisibility=hidden") )
179177endef
180178
@@ -220,6 +218,7 @@ OVERALL_DEPS := $(call uniq,$(DEPENDENCIES) $(ARTIFACT_ID))
220218__tmp := $(foreach dep,$(OVERALL_DEPS ) ,$(call vardef, $(dep ) ) )
221219
222220CONFIG_VARS = \
221+ $(PATH_VARS ) \
223222 $(COMMON_VARS ) \
224223 $(TOOL_VARS ) \
225224 $(foreach name, $(OVERALL_DEPS ) , \
@@ -242,6 +241,8 @@ CONFIG_VARS = \
242241 $(name ) _OBJ \
243242 $(name ) _OBJ_TEST \
244243 \
244+ HOST_$(name ) _NAME \
245+ HOST_$(name ) _DESC \
245246 HOST_$(name ) _PATH \
246247 HOST_$(name ) _INC \
247248 HOST_$(name ) _SRC \
@@ -267,11 +268,12 @@ $(CONFIG_VARS): prepare
267268 echo " $( @) =$( $( @) ) " >> " $( CONFIG) "
268269
269270config : $(CONFIG_VARS )
270- echo " Architecture: $( ARCHITECTURE_FAMILY) /$( ARCHITECTURE) ($( ARCHITECTURE_CFLAGS) )"
271- echo " Features: $( FEATURES) "
271+ echo " Host architecture: $( HOST_ARCHITECTURE_FAMILY) /$( HOST_ARCHITECTURE) ($( HOST_ARCHITECTURE_CFLAGS) )"
272+ echo " Architecture: $( ARCHITECTURE_FAMILY) /$( ARCHITECTURE) ($( ARCHITECTURE_CFLAGS) )"
273+ echo " Features: $( FEATURES) "
272274 echo " Configured OK"
273275
274- help : | toolvars sysvars
276+ help : | pathvars toolvars sysvars
275277 echo " "
276278 echo " List of variables for each dependency:"
277279 echo " <ARTIFACT>_BIN location to put all binaries when building artifact"
0 commit comments