Make sure that LDFLAGS are set when running configuration steps
This is necessary for example when specific flags are required to find a library in a configuration rule, e.g. LDFLAGS=/some/path
This commit is contained in:
parent
856fca299e
commit
37f7dc4f9d
|
@ -106,28 +106,34 @@ TEST_ENV= LD_LIBRARY_PATH=$(OUTPUT)
|
|||
# Configuration checks
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
CFG_UPPER=$(shell echo -n "$(ORIG_TARGET)" | tr '[:lower:]' '[:upper:]' | tr -c '[:alnum:]' '_')
|
||||
CFG_FLAGS=$(shell grep '// [A-Z]*FLAGS=' "$<" | sed -e 's|// [A-Z]*FLAGS=||g')
|
||||
CFG_UPPER= $(shell echo -n "$(ORIG_TARGET)" | tr '[:lower:]' '[:upper:]' | tr -c '[:alnum:]' '_')
|
||||
CFG_LFLAGS= $(LDFLAGS) \
|
||||
$(shell grep '// [A-Z]*FLAGS=' "$<" | \
|
||||
sed -e 's|// [A-Z]*FLAGS=||g')
|
||||
CFG_FLAGS= $(CFG_LFLAGS) \
|
||||
$(shell $(CAT) $(PKG_CFLAGS) $(PKG_LDFLAGS))
|
||||
|
||||
CFG_DEF= echo '\#define'
|
||||
CFG_TEST= \
|
||||
$(CFG_FLAGS) "$<" -o "$<".exe > "$<".err 2>&1 && \
|
||||
"$<".exe > "$<".out && echo 1 || echo 0
|
||||
CFG_UNDEF0= \
|
||||
CFG_TEST= "$<" -o "$<".exe > "$<".err 2>&1 && \
|
||||
[ -x "$<".exe ] && \
|
||||
"$<".exe > "$<".out && CFG_RC=1 || CFG_RC=0;
|
||||
CFG_UNDEF0= $$CFG_RC \
|
||||
| sed -e 's|^\#define \(.*\) 0$$|/* \#undef \1 */|g' > "$@"; \
|
||||
[ -f "$<".out ] && cat >> "$@" "$<".out; true
|
||||
CFG_CFLAGS= $(CFLAGS) $(shell $(CAT) $(PKG_CFLAGS) $(PKG_LDFLAGS))
|
||||
CFG_CXXFLAGS= $(CXXFLAGS) $(shell $(CAT) $(PKG_CFLAGS) $(PKG_LDFLAGS))
|
||||
|
||||
CFG_CC_CMD= `$(CC) $(CFG_CFLAGS) $(CFLAGS_CONFIG_$*) $(CFG_TEST)`
|
||||
CFG_CXX_CMD= `$(CXX) $(CFG_CXXFLAGS) $(CXXFLAGS_CONFIG_$*) $(CFG_TEST)`
|
||||
CFG_LIB_CMD= `$(CC) $(CFLAGS_CONFIG_$*) -l$* $(CFG_TEST)`
|
||||
CFG_FN_CMD= `$(CC) $(CFG_CFLAGS) $(CFLAGS_CONFIG_$*) $(CFG_TEST)`
|
||||
CFG_DEF= echo '\#define'
|
||||
|
||||
CC_CONFIG= $(CFG_DEF) HAVE_$(CFG_UPPER)_H $(CFG_CC_CMD) $(CFG_UNDEF0)
|
||||
CXX_CONFIG= $(CFG_DEF) HAVE_$(CFG_UPPER) $(CFG_CXX_CMD) $(CFG_UNDEF0)
|
||||
LIB_CONFIG= $(CFG_DEF) HAVE_LIB$(CFG_UPPER) $(CFG_LIB_CMD) $(CFG_UNDEF0)
|
||||
FN_CONFIG= $(CFG_DEF) HAVE_$(CFG_UPPER) $(CFG_FN_CMD) $(CFG_UNDEF0)
|
||||
CFG_CFLAGS= $(CFLAGS) $(CFG_FLAGS)
|
||||
CFG_CXXFLAGS= $(CXXFLAGS) $(CFG_FLAGS)
|
||||
|
||||
CFG_CC_CMD= $(CC) $(CFG_CFLAGS) $(CFLAGS_CONFIG_$*) $(CFG_TEST)
|
||||
CFG_CXX_CMD= $(CXX) $(CFG_CXXFLAGS) $(CXXFLAGS_CONFIG_$*) $(CFG_TEST)
|
||||
CFG_LIB_CMD= $(CC) $(CFG_LFLAGS) $(CFLAGS_CONFIG_$*) -l$* $(CFG_TEST)
|
||||
CFG_FN_CMD= $(CC) $(CFG_CFLAGS) $(CFLAGS_CONFIG_$*) $(CFG_TEST)
|
||||
|
||||
CC_CONFIG= $(CFG_CC_CMD) $(CFG_DEF) HAVE_$(CFG_UPPER)_H $(CFG_UNDEF0)
|
||||
CXX_CONFIG= $(CFG_CXX_CMD) $(CFG_DEF) HAVE_$(CFG_UPPER) $(CFG_UNDEF0)
|
||||
LIB_CONFIG= $(CFG_LIB_CMD) $(CFG_DEF) HAVE_LIB$(CFG_UPPER) $(CFG_UNDEF0)
|
||||
FN_CONFIG= $(CFG_FN_CMD) $(CFG_DEF) HAVE_$(CFG_UPPER) $(CFG_UNDEF0)
|
||||
|
||||
MAKE_CONFIG= sed -e 's|^\#define \([^ ]*\) \(.*\)$$|\1=\2|g' \
|
||||
-e 's|.*undef.*||g' < "$<" > "$@"
|
||||
|
|
6
rules.mk
6
rules.mk
|
@ -27,7 +27,7 @@ XDEFINES= $(DEFINES) $(DEFINES_$(BUILDENV)) $(DEFINES_$(TARGET)) $(DE
|
|||
CPPFLAGS+= $(CPPFLAGS_$(BUILDENV)) $(CPPFLAGS_$(TARGET)) $(CPPFLAGS_EXTRA) $(XDEFINES:%=-D%) $(XINCLUDES:%=-I%)
|
||||
CFLAGS+= $(CPPFLAGS) $(CFLAGS_STD) $(CFLAGS_PKGCONFIG) $(CFLAGS_$(BUILDENV)) $(CFLAGS_$(TARGET)) $(CFLAGS_EXTRA)
|
||||
CXXFLAGS+= $(CPPFLAGS) $(CXXFLAGS_STD) $(CFLAGS_PKGCONFIG) $(CXXFLAGS_$(BUILDENV)) $(CXXFLAGS_$(TARGET)) $(CFLAGS_EXTRA) $(CXXFLAGS_EXTRA)
|
||||
LDFLAGS+= $(CFLAGS_STD) $(CXXFLAGS_STD) $(LDFLAGS_PKGCONFIG) $(LDFLAGS_$(BUILDENV)) $(LDFLAGS_$(TARGET)) $(CFLAGS_EXTRA) $(LDFLAGS_EXTRA)
|
||||
LDFLAGS+= $(LDFLAGS_PKGCONFIG) $(LDFLAGS_$(BUILDENV)) $(LDFLAGS_$(TARGET)) $(CFLAGS_EXTRA) $(LDFLAGS_EXTRA)
|
||||
|
||||
ifndef DIR
|
||||
FULLDIR:= $(abspath .)/
|
||||
|
@ -404,7 +404,7 @@ $(OBJDIR)lib%.cfg.ldflags: $(OBJDIR)CFG_HAVE_lib%.h $(PKG_DEPS)
|
|||
|
||||
NORM_CONFIG=$(subst <,.lt.,$(subst >,.gt.,$(subst /,.sl.,$(CONFIG))))
|
||||
ORIG_TARGET=$(subst .lt.,<,$(subst .gt.,>,$(subst .sl.,/,$*)))
|
||||
CONFIG_DEPS= $(MAKEFILE_DEPS) $(OBJDIR).mkdir \
|
||||
CONFIG_DEPS= $(PKG_DEPS) \
|
||||
$(PKGCONFIGS:%=$(OBJDIR)pkg-config.mk) \
|
||||
$(PKG_LIBS:%=$(OBJDIR)pkg-config.mk)
|
||||
|
||||
|
@ -432,7 +432,7 @@ $(OBJDIR)CFG-C++H_HAVE_%.cpp: $(OBJDIR).mkdir $(CONFIG_DEPS)
|
|||
# Library
|
||||
$(OBJDIR)CFG_HAVE_lib%.h: $(OBJDIR)CFG-LIB_HAVE_lib%.c $(PKG_DEPS)
|
||||
$(PRINT_LIBCONFIG) $(LIB_CONFIG)
|
||||
$(OBJDIR)CFG-LIB_HAVE_lib%.c: $(OBJDIR).mkdir $(PKG_DEPS)
|
||||
$(OBJDIR)CFG-LIB_HAVE_lib%.c: $(PKG_DEPS)
|
||||
$(PRINT_COMMAND) echo 'int main() { return 0; }' > "$@"
|
||||
.PRECIOUS: $(OBJDIR)CFG-LIB_HAVE_lib%.c
|
||||
|
||||
|
|
Loading…
Reference in New Issue