diff options
-rw-r--r-- | docs/libcurl/Makefile.am | 2 | ||||
-rw-r--r-- | include/curl/Makefile.am | 17 | ||||
-rwxr-xr-x | include/curl/has.pl (renamed from docs/libcurl/symbols.pl) | 66 |
3 files changed, 66 insertions, 19 deletions
diff --git a/docs/libcurl/Makefile.am b/docs/libcurl/Makefile.am index 5456ee418..677fb94ad 100644 --- a/docs/libcurl/Makefile.am +++ b/docs/libcurl/Makefile.am @@ -90,7 +90,7 @@ dist_m4macro_DATA = libcurl.m4 CLEANFILES = $(HTMLPAGES) $(PDFPAGES) $(TESTS) libcurl-symbols.3 EXTRA_DIST = $(man_MANS) $(HTMLPAGES) index.html $(PDFPAGES) ABI \ - symbols-in-versions symbols.pl mksymbolsmanpage.pl + symbols-in-versions mksymbolsmanpage.pl MAN2HTML= roffit --mandir=. < $< >$@ SUFFIXES = .3 .html diff --git a/include/curl/Makefile.am b/include/curl/Makefile.am index 86e8b7834..f804bbb24 100644 --- a/include/curl/Makefile.am +++ b/include/curl/Makefile.am @@ -5,7 +5,7 @@ # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # -# Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al. +# Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms @@ -21,7 +21,7 @@ ########################################################################### pkginclude_HEADERS = \ curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \ - typecheck-gcc.h curlbuild.h curlrules.h + typecheck-gcc.h curlbuild.h curlrules.h has.h pkgincludedir= $(includedir)/curl @@ -40,14 +40,19 @@ pkgincludedir= $(includedir)/curl # # curlbuild.h.dist is not included in the source code distribution archive. -EXTRA_DIST = curlbuild.h.in +EXTRA_DIST = curlbuild.h.in has.pl -DISTCLEANFILES = curlbuild.h +DISTCLEANFILES = curlbuild.h has.h + +has.h: $(top_srcdir)/docs/libcurl/symbols-in-versions has.pl + @@PERL@ has.pl < $(top_srcdir)/docs/libcurl/symbols-in-versions > has.h checksrc: - @@PERL@ $(top_srcdir)/lib/checksrc.pl -Wcurlbuild.h -D$(top_srcdir)/include/curl $(pkginclude_HEADERS) $(EXTRA_DIST) + @@PERL@ $(top_srcdir)/lib/checksrc.pl -Wcurlbuild.h -D$(top_srcdir)/include/curl $(pkginclude_HEADERS) curlbuild.h.in if CURLDEBUG # for debug builds, we scan the sources on all regular make invokes -all-local: checksrc +all-local: has.h checksrc +else +all-local: has.h endif diff --git a/docs/libcurl/symbols.pl b/include/curl/has.pl index a7b76e239..fab6650f8 100755 --- a/docs/libcurl/symbols.pl +++ b/include/curl/has.pl @@ -6,7 +6,7 @@ # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # -# Copyright (C) 2011, Daniel Stenberg, <daniel@haxx.se>, et al. +# Copyright (C) 2011-2015, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms @@ -30,19 +30,18 @@ # using applications to do preprocessor checks for specific libcurl defines, # and yet make the code clearly show what the macro is used for. # -# Run this script and generate libcurl-symbols.h and then use that header in +# Run this script and generate curl/has.h and then use that header in # a fashion similar to: # -# #include "libcurl-symbols.h" +# #include <curl/has.h> # -# #if LIBCURL_HAS(CURLOPT_MUTE) +# #if CURL_HAS(CURLOPT_MUTE) # has mute # #else # no mute # #endif # # -open F, "<symbols-in-versions"; sub str2num { my ($str)=@_; @@ -52,17 +51,54 @@ sub str2num { } print <<EOS +#ifndef __CURL_HAS_H +#define __CURL_HAS_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \\| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \\___|\\___/|_| \\_\\_____| + * + * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at http://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ +/* + * This file is generated. Do not edit by hand. Edit + * docs/libcurl/symbols-in-versions and regenerate this with has.pl + */ +#include <curl/curlver.h> -#include <curl/curl.h> +/* + * #include <curl/has.h> + * + * #if CURL_HAS(CURLOPT_MUTE) + * use_mute(); + * #else + * without_mute(); + * #endif + */ +#define CURL_HAS_IN(x,y) \\ + (defined(CURLHAS_ ## x ) && (CURLHAS_ ## x <= y) && \\ + (!defined(CURLHAS_ ## x ## _L) || ( CURLHAS_ ## x ## _L >= y))) -#define LIBCURL_HAS(x) \\ - (defined(x ## _FIRST) && (x ## _FIRST <= LIBCURL_VERSION_NUM) && \\ - (!defined(x ## _LAST) || ( x ## _LAST >= LIBCURL_VERSION_NUM))) +#define CURL_HAS(x) CURL_HAS_IN(x, LIBCURL_VERSION_NUM) EOS ; -while(<F>) { +while(<STDIN>) { if(/^(CURL[^ ]*)[ \t]*(.*)/) { my ($sym, $vers)=($1, $2); @@ -85,16 +121,22 @@ while(<F>) { my $inum = str2num($intr); print <<EOS -#define ${sym}_FIRST $inum /* Added in $intr */ +#define CURLHAS_${sym} $inum /* $intr */ EOS ; my $irm = str2num($rm); if($rm) { print <<EOS -#define ${sym}_LAST $irm /* Last featured in $rm */ +#define CURLHAS_${sym}_L $irm /* Last $rm */ EOS ; } } } + +print <<EOS +#endif /* __CURL_HAS_H */ + +EOS + ; |