Add check for functions using a configuration file check
This commit is contained in:
parent
a1f04b6cf4
commit
0a88f02d71
3
Makefile
3
Makefile
|
@ -34,7 +34,8 @@ CONFIG= HAVE_<stdio.h> \
|
|||
HAVE_<nonexistent.h> \
|
||||
HAVE_<sys/time.h> \
|
||||
HAVE_<sys/improbable.h> \
|
||||
HAVE_<iostream>
|
||||
HAVE_<iostream> \
|
||||
HAVE_clearenv
|
||||
|
||||
# Define what to test
|
||||
TESTS=product count-characters
|
||||
|
|
|
@ -84,5 +84,5 @@ AS_DEPEND= $(CC) $(CPPFLAGS) $(CPPFLAGS_$*) -MM -MP -MF $@ -MT $(@:.d=) $<
|
|||
# Configuration checks
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
CC_CONFIG= mkdir -p "$$(dirname "$@")" ; echo '\#define HAVE_$*_H' $$($(CC) $(CFLAGS) -c "$<" -o "$<".o > "$<".err 2>&1 && echo 1 || echo 0) | tr '[:lower:]' '[:upper:]' | sed -e 's|[^[:alnum:]]|_|g' -e 's|_DEFINE_\(.*\)_0|/* \#undef \1 */|g' -e 's|_DEFINE_\(.*\)_1|\#define \1 1|g' > "$@"
|
||||
CXX_CONFIG= mkdir -p "$$(dirname "$@")" ; echo '\#define HAVE_$*' $$($(CXX) $(CXXFLAGS) -c "$<" -o "$<".o > "$<".err 2>&1 && echo 1 || echo 0) | tr '[:lower:]' '[:upper:]' | sed -e 's|[^[:alnum:]]|_|g' -e 's|_DEFINE_\(.*\)_0|/* \#undef \1 */|g' -e 's|_DEFINE_\(.*\)_1|\#define \1 1|g' > "$@"
|
||||
CC_CONFIG= mkdir -p "$$(dirname "$@")" ; echo '\#define HAVE_$*_H' $$($(CC) $(CFLAGS) -Werror -c "$<" -o "$<".o > "$<".err 2>&1 && echo 1 || echo 0) | tr '[:lower:]' '[:upper:]' | sed -e 's|[^[:alnum:]]|_|g' -e 's|_DEFINE_\(.*\)_0|/* \#undef \1 */|g' -e 's|_DEFINE_\(.*\)_1|\#define \1 1|g' > "$@"
|
||||
CXX_CONFIG= mkdir -p "$$(dirname "$@")" ; echo '\#define HAVE_$*' $$($(CXX) $(CXXFLAGS) -Werror -c "$<" -o "$<".o > "$<".err 2>&1 && echo 1 || echo 0) | tr '[:lower:]' '[:upper:]' | sed -e 's|[^[:alnum:]]|_|g' -e 's|_DEFINE_\(.*\)_0|/* \#undef \1 */|g' -e 's|_DEFINE_\(.*\)_1|\#define \1 1|g' > "$@"
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
#define HAVE_STDIO_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
/* #undef HAVE_NONEXISTENT_H */
|
||||
#define HAVE_SYS_TIME_H 1
|
||||
/* #undef HAVE_SYS_IMPROBABLE_H */
|
||||
#define HAVE_IOSTREAM 1
|
||||
/* #undef HAVE_CLEARENV_H */
|
|
@ -0,0 +1,6 @@
|
|||
#include <stdlib.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
return clearenv();
|
||||
}
|
5
rules.mk
5
rules.mk
|
@ -383,6 +383,11 @@ $(OBJDIR)/HAVE_<%>: $(OBJDIR)/CONFIG_HAVE_%.cpp
|
|||
$(OBJDIR)/CONFIG_HAVE_%.cpp: $(OBJDIR)/.mkdir
|
||||
$(PRINT_GENERATE) mkdir -p "$$(dirname "$@")" ; echo '#include' "<$*>" > "$@"
|
||||
|
||||
# Check if a function is present
|
||||
$(OBJDIR)/HAVE_%: $(OBJDIR)/CONFIG_CHECK_%.c
|
||||
$(PRINT_CONFIG) $(CC_CONFIG)
|
||||
$(OBJDIR)/CONFIG_CHECK_%.c: config/check_%.c
|
||||
$(PRINT_COPY) cp $< $@
|
||||
|
||||
.PRECIOUS: $(OBJDIR)/CONFIG_HAVE_%.c $(OBJDIR)/CONFIG_HAVE_%.cpp
|
||||
|
||||
|
|
Loading…
Reference in New Issue