]> granicus.if.org Git - curl/commitdiff
Changed NetWare build to generate export list.
authorGuenter Knauf <lists@gknw.net>
Wed, 11 Jul 2012 13:48:02 +0000 (15:48 +0200)
committerGuenter Knauf <lists@gknw.net>
Wed, 11 Jul 2012 13:48:02 +0000 (15:48 +0200)
lib/Makefile.netware
lib/libcurl.imp [deleted file]
packages/NetWare/get_exp.awk [new file with mode: 0755]
packages/NetWare/get_ver.awk

index 528a061d5275e9ddcd042c4e2e6da91c9d1e0934..ca4a058e3aa56e1afaaf57cd18f877f992410ddb 100644 (file)
@@ -64,7 +64,8 @@ DESCR = cURL libcurl $(LIBCURL_VERSION_STR) ($(LIBARCH)) - http://curl.haxx.se
 MTSAFE = YES
 STACK  = 64000
 SCREEN = none
-EXPORTS        = @libcurl.imp
+EXPORTF        = $(OBJDIR)/libcurl.imp
+EXPORTS        = @$(EXPORTF)
 
 # Uncomment the next line to enable linking with POSIX semantics.
 # POSIXFL = 1
@@ -660,6 +661,10 @@ else
        @echo $(DL)#define CURL_CA_BUNDLE getenv("CURL_CA_BUNDLE")$(DL) >> $@
 endif
 
+$(EXPORTF): $(CURL_INC)/curl/curl.h $(CURL_INC)/curl/easy.h $(CURL_INC)/curl/multi.h $(CURL_INC)/curl/mprintf.h
+       @echo Creating $@
+       @$(AWK) -f ../packages/NetWare/get_exp.awk $^ > $@
+
 FORCE: ;
 
 info: $(OBJDIR)/version.inc
@@ -696,13 +701,6 @@ else
        @echo ipv6 support:    no
 endif
 
-$(LIBCARES_PATH)/libcares.$(LIBEXT):
-       $(MAKE) -C $(LIBCARES_PATH) -f Makefile.netware lib
-
-ca-bundle.crt: mk-ca-bundle.pl
-       @echo Creating $@
-       @-$(PERL) $< -b -n $@
-
 $(CURL_INC)/curl/curlbuild.h: Makefile.netware FORCE
        @echo Creating $@
        @echo $(DL)/* $@ intended for NetWare target.$(DL) > $@
@@ -741,3 +739,10 @@ endif
        @echo $(DL)typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;$(DL) >> $@
        @echo $(DL)#endif /* __CURL_CURLBUILD_H */$(DL) >> $@
 
+$(LIBCARES_PATH)/libcares.$(LIBEXT):
+       $(MAKE) -C $(LIBCARES_PATH) -f Makefile.netware lib
+
+ca-bundle.crt: mk-ca-bundle.pl
+       @echo Creating $@
+       @-$(PERL) $< -b -n $@
+
diff --git a/lib/libcurl.imp b/lib/libcurl.imp
deleted file mode 100644 (file)
index f4cfddb..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#
-# Definition file for the NLM version of the LIBCURL library from curl
-#
-#      (LIBCURL)
-       curl_easy_cleanup,
-       curl_easy_escape,
-       curl_easy_unescape,
-       curl_easy_getinfo,
-       curl_easy_init,
-       curl_easy_pause,
-       curl_easy_perform,
-       curl_easy_recv,
-       curl_easy_send,
-       curl_easy_setopt,
-       curl_escape,
-       curl_unescape,
-       curl_formfree,
-       curl_getdate,
-       curl_getenv,
-       curl_global_cleanup,
-       curl_global_init,
-       curl_slist_append,
-       curl_slist_free_all,
-       curl_version,
-       curl_maprintf,
-       curl_mfprintf,
-       curl_mprintf,
-       curl_msprintf,
-       curl_msnprintf,
-       curl_mvaprintf,
-       curl_mvfprintf,
-       curl_mvsnprintf,
-       curl_strequal,
-       curl_strnequal,
-       curl_easy_duphandle,
-       curl_formadd,
-       curl_multi_init,
-       curl_multi_add_handle,
-       curl_multi_remove_handle,
-       curl_multi_fdset,
-       curl_multi_perform,
-       curl_multi_cleanup,
-       curl_multi_info_read,
-       curl_multi_setopt,
-       curl_multi_timeout,
-       curl_free,
-       curl_version_info,
-       curl_share_init,
-       curl_share_setopt,
-       curl_share_cleanup,
-       curl_global_init_mem,
-       curl_easy_strerror,
-       curl_multi_strerror,
-       curl_share_strerror,
-       curl_easy_reset
-
diff --git a/packages/NetWare/get_exp.awk b/packages/NetWare/get_exp.awk
new file mode 100755 (executable)
index 0000000..153f5d2
--- /dev/null
@@ -0,0 +1,48 @@
+# fetch exports from input header and write them to STDOUT
+BEGIN {
+    add_symbol("curl_strequal")
+    add_symbol("curl_strnequal")
+}
+
+function add_symbol(sym_name) {
+    sub(" ", "", sym_name)
+    exports[++idx] = sym_name
+}
+
+
+/^CURL_EXTERN .* [*]?curl_.*[(]/ {
+    sub("[(].*", "")
+    sub("^.* ", "")
+    sub("^[*]", "")
+    add_symbol($0)
+}
+
+END {
+    printf("Added %d symbols to export list.\n", idx) > "/dev/stderr"
+    # sort symbols with shell sort
+    increment = int(idx / 2)
+    while (increment > 0) {
+        for (i = increment+1; i <= idx; i++) {
+            j = i
+            temp = exports[i]
+            while ((j >= increment+1) && (exports[j-increment] > temp)) {
+                exports[j] = exports[j-increment]
+                j -= increment
+            }
+            exports[j] = temp
+        }
+        if (increment == 2)
+            increment = 1
+        else
+            increment = int(increment*5/11)
+    }
+    # print the array
+    if (EXPPREFIX) {
+        printf(" (%s)\n", EXPPREFIX)
+    }
+    while (x < idx - 1) {
+        printf(" %s,\n", exports[++x])
+    }
+    printf(" %s\n", exports[++x])
+}
+
index 2f3b30814e529e8877258518a068a208e54a0606..1a3db80ca5e7710a1b63849b079ca39351a237f4 100644 (file)
@@ -21,7 +21,7 @@
 # ***************************************************************************
 # awk script which fetches curl / ares version number and string from input
 # file and writes them to STDOUT. Here you can get an awk version for Win32:
-# http://www.gknw.net/development/prgtools/awk-20070501.zip
+# http://www.gknw.net/development/prgtools/awk-20100523.zip
 #
 BEGIN {
   if (match (ARGV[1], /curlver.h/)) {