summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuenter Knauf <lists@gknw.net>2012-07-11 15:48:02 +0200
committerGuenter Knauf <lists@gknw.net>2012-07-11 15:48:02 +0200
commit33eac5f7fdd9d49d4b1d07468952d893e6b56adc (patch)
tree06b03d9751b6c2058334f4421105ccc045fb63b5
parent0025770a99a040ba5673aba31038fea25695f702 (diff)
downloadcurl-33eac5f7fdd9d49d4b1d07468952d893e6b56adc.tar.gz
Changed NetWare build to generate export list.
-rw-r--r--lib/Makefile.netware21
-rw-r--r--lib/libcurl.imp56
-rwxr-xr-xpackages/NetWare/get_exp.awk48
-rw-r--r--packages/NetWare/get_ver.awk2
4 files changed, 62 insertions, 65 deletions
diff --git a/lib/Makefile.netware b/lib/Makefile.netware
index 528a061d5..ca4a058e3 100644
--- a/lib/Makefile.netware
+++ b/lib/Makefile.netware
@@ -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
index f4cfddb38..000000000
--- a/lib/libcurl.imp
+++ /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
index 000000000..153f5d241
--- /dev/null
+++ b/packages/NetWare/get_exp.awk
@@ -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])
+}
+
diff --git a/packages/NetWare/get_ver.awk b/packages/NetWare/get_ver.awk
index 2f3b30814..1a3db80ca 100644
--- a/packages/NetWare/get_ver.awk
+++ b/packages/NetWare/get_ver.awk
@@ -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/)) {