1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

root/csw/mgar/pkg/libcurl4/trunk/Makefile

Revision 17878, 7.4 KB (checked in by dmichelsen, 4 weeks ago)

libcurl4/trunk: Make libcurl4_feature require libcurl4 just in case someones tries to install it manually

Line 
1NAME = curl
2VERSION = 7.25.0
3CATEGORIES = net
4GARTYPE = v2
5
6DESCRIPTION = Command line tool and library for client-side URL transfers
7define BLURB
8  curl and libcurl is a tool for transferring files using URL syntax. It
9  supports HTTP, HTTPS, FTP, FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as
10  well as HTTP-post, HTTP-put, cookies, FTP upload, resumed transfers,
11  passwords, portnumbers, SSL certificates, Kerberos, and proxies. It is
12  powered by libcurl, the client-side URL transfer library. There are
13  bindings/interfaces to libcurl for more than a dozen languages and
14  environments.
15endef
16
17MASTER_SITES = http://curl.haxx.se/download/
18DISTFILES  = $(NAME)-$(VERSION).tar.bz2
19
20FOREIGN_PACKAGES += CSWlibcurl2
21OBSOLETED_BY_CSWlibcurl2 += CSWcurlrt
22CATALOGNAME_CSWcurlrt = curl_rt_stub
23
24FOREIGN_PACKAGES += CSWlibcurl3
25OBSOLETED_BY_CSWlibcurl3 += CSWcurlrt
26
27PACKAGES += CSWlibcurl4
28CATALOGNAME_CSWlibcurl4 = libcurl4
29SPKG_DESC_CSWlibcurl4 = Library for client-side URL transfers, libcurl.so.4
30PKGFILES_CSWlibcurl4 = $(call pkgfiles_lib,libcurl.so.4)
31OBSOLETED_BY_CSWlibcurl4 = CSWcurlrt
32RUNTIME_DEP_PKGS_CSWlibcurl4 += CSWlibssl0-9-8
33RUNTIME_DEP_PKGS_CSWlibcurl4 += CSWlibz1
34RUNTIME_DEP_PKGS_CSWlibcurl4 += CSWlibidn11
35
36PACKAGES += CSWlibcurl4-feature
37CATALOGNAME_CSWlibcurl4-feature = libcurl4_feature
38SPKG_DESC_CSWlibcurl4-feature = Full-features library for client-side URL transfers superseding libcurl.so.4
39PKGFILES_CSWlibcurl4-feature = $(call pkgfiles_lib,libcurl-feature.so.4)
40RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWlibz1
41RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWlibfbopenssl0
42RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWlibidn11
43RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWlibssl0-9-8
44RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWliblber2-4-2
45RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWlibldap2-4-2
46RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWlibssh2-1
47RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWlibcares2
48RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWlibrtmp0
49# Without the base lib the feature lib is not pulled in
50RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWlibcurl4
51# There is no dependency from feature to base as feature is an optional dependency
52CHECKPKG_OVERRIDES_CSWlibcurl4-feature += surplus-dependency|CSWlibcurl4
53
54# These are artifacts of the feature lib being a regular one.
55# As it is never linked against the soname doesn't matter here and the package name
56# is obviously different from the soname in this case.
57CHECKPKG_OVERRIDES_CSWlibcurl4-feature += shared-lib-pkgname-mismatch
58CHECKPKG_OVERRIDES_CSWlibcurl4-feature += soname-not-part-of-filename
59
60PACKAGES += CSWlibcurl-dev
61CATALOGNAME_CSWlibcurl-dev = libcurl_dev
62SPKG_DESC_CSWlibcurl-dev = Development files for libcurl.so.4
63PKGFILES_CSWlibcurl-dev = $(PKGFILES_DEVEL)
64RUNTIME_DEP_PKGS_CSWlibcurl-dev = CSWlibcurl4
65OBSOLETED_BY_CSWlibcurl-dev = CSWcurldevel
66CATALOGNAME_CSWcurldevel = curl_devel_stub
67
68PACKAGES += CSWcurl
69CATALOGNAME_CSWcurl = curl
70SPKG_DESC_CSWcurl = A command line tool and library for client-side URL transfers
71# PKGFILES is catchall
72RUNTIME_DEP_PKGS_CSWcurl += CSWlibz1
73RUNTIME_DEP_PKGS_CSWcurl += CSWlibidn11
74RUNTIME_DEP_PKGS_CSWcurl += CSWlibcurl4
75RUNTIME_DEP_PKGS_CSWcurl += CSWlibssl0-9-8
76# Double-legacy packages may not even depend on CSWcurlrt, so we must
77# also directly depend on CSWlibcurl2 and CSWlibcurl3
78RUNTIME_DEP_PKGS_CSWcurl += CSWlibcurl2
79RUNTIME_DEP_PKGS_CSWcurl += CSWlibcurl3
80CHECKPKG_OVERRIDES_CSWcurl += surplus-dependency|CSWlibcurl2
81CHECKPKG_OVERRIDES_CSWcurl += surplus-dependency|CSWlibcurl3
82
83BUILD_DEP_PKGS += CSWopenldap-dev
84BUILD_DEP_PKGS += CSWlibssl-dev
85BUILD_DEP_PKGS += CSWlibcares-dev
86BUILD_DEP_PKGS += CSWlibssh2-dev
87BUILD_DEP_PKGS += CSWlibfbopenssl-dev
88BUILD_DEP_PKGS += CSWlibrtmp-dev
89
90VENDOR_URL = http://curl.haxx.se
91
92EXTRA_MODULATORS = FEATURES
93MODULATIONS_FEATURES = minimal full
94
95EXTRA_CONFIGURE_ARGS_features-minimal += --disable-ldap
96EXTRA_CONFIGURE_ARGS_features-minimal += --without-libssh2
97EXTRA_CONFIGURE_ARGS_features-minimal += --disable-ares
98EXTRA_CONFIGURE_ARGS_features-minimal += --without-librtmp
99
100EXTRA_CONFIGURE_ARGS_features-full += --enable-ares
101EXTRA_CONFIGURE_ARGS_features-full += --with-spnego=$(libdir)
102EXTRA_CONFIGURE_ARGS_features-full += --enable-ldap
103EXTRA_CONFIGURE_ARGS_features-full += --enable-ldaps
104
105# Make sure to link to the new libnet. See for details http://wiki.opencsw.org/project-libnet
106EXTRA_LDFLAGS = -L$(libdir)/libnet-new
107
108CONFIGURE_ARGS = $(DIRPATHS)
109CONFIGURE_ARGS += --disable-static
110CONFIGURE_ARGS += --with-ssl=/opt/csw/ssl
111CONFIGURE_ARGS += --with-ca-path=/opt/csw/ssl/certs
112CONFIGURE_ARGS += $(EXTRA_CONFIGURE_ARGS_features-$(FEATURES))
113
114BUILD64 = 1
115
116# There are some failing tests, ignore for now
117SKIPTEST ?= 1
118
119# We do special 32/64 merging for this one, see post-merge
120EXTRA_MERGE_EXCLUDE_FILES += $(includedir)/curl/curlbuild.h
121
122EXTRA_PAX_ARGS_isa-default-features-full += -s ",.*/libcurl\.so(\.\d+)?$$,," -s ",\(\.$(libdir)/libcurl\)\(\.so\.\d+\..*\),\1-feature\2,p"
123EXTRA_PAX_ARGS_isa-extra-features-full += -s ",.*/libcurl\.so(\.\d+)?$$,," -s ",\.$(libdir)/libcurl\(\.so\.\d+\..*\),.$(libdir_install)/$(ISA)/libcurl-feature\1,p"
124
125# We select pkgconfig for minimal library bindings. As libneon is self-contained (links
126# to all necessary libs directly) the full version can simly be linked in.
127EXTRA_PAX_ARGS_features-full = -s ",.*/pkgconfig.*,,"
128EXTRA_PAX_ARGS += $(EXTRA_PAX_ARGS_features-$(FEATURES))
129
130MERGE_SCRIPTS_isa-default-features-minimal = copy-all
131MERGE_SCRIPTS_isa-default64-features-minimal = copy-relocated-only copy-config-only
132MERGE_DIRS_isa-default64-features-minimal = $(libdir)
133MERGE_SCRIPTS_isa-default-features-full = copy-only
134MERGE_DIRS_isa-default-features-full = $(libdir)
135MERGE_SCRIPTS_isa-default64-features-full = copy-relocated-only
136MERGE_DIRS_isa-default64-features-full = $(libdir)
137
138# TBD: Use alternatives on curl-config between minimal and feature as it is possible to
139# use options to find out about installed features and protocols by calling it.
140
141include gar/category.mk
142
143# These are not really necessary and they confuse the linker as described in #4550
144$(GARCOMPILER)_LD_FLAGS :=
145
146# Rebuild the minimal library with AUX linkage to feature library
147post-build-isa-sparcv8-features-minimal post-build-isa-sparcv9-features-minimal post-build-isa-i386-features-minimal post-build-isa-amd64-features-minimal: EXTRA_LD_OPTIONS = -f libcurl-feature.so.4
148post-build-isa-sparcv8-features-minimal post-build-isa-sparcv9-features-minimal post-build-isa-i386-features-minimal post-build-isa-amd64-features-minimal:
149        rm -f $(WORKSRC)/lib/libcurl.la
150        $(BUILD_ENV) $(MAKE) $(PARALLELMFLAGS) $(foreach TTT,$(BUILD_OVERRIDE_VARS),$(TTT)="$(BUILD_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(WORKSRC)/lib $(BUILD_ARGS)
151        @$(MAKECOOKIE)
152
153post-merge:
154        @# This is needed because the substitutions from pax args do not change the
155        @# contents of the symlink
156        rm -f $(PKGROOT)$(libdir)/libcurl-feature.so.4
157        ln -s libcurl-feature.so.4.2.0 $(PKGROOT)$(libdir)/libcurl-feature.so.4
158        rm -f $(PKGROOT)$(libdir)/$(ISA_DEFAULT64)/libcurl-feature.so.4
159        ln -s libcurl-feature.so.4.2.0 $(PKGROOT)$(libdir)/$(ISA_DEFAULT64)/libcurl-feature.so.4
160        pwd
161        gdiff -D 64bit \
162                $(WORKROOTDIR)/install-isa-$(ISA_DEFAULT64)-features-minimal$(includedir)/curl/curlbuild.h \
163                $(WORKROOTDIR)/install-isa-$(ISA_DEFAULT)-features-minimal$(includedir)/curl/curlbuild.h \
164                | sed -e 's/ifndef 64bit/if defined __amd64 || defined __x86_64 || defined __sparcv9/' \
165                > $(PKGROOT)$(includedir)/curl/curlbuild.h
166        @$(MAKECOOKIE)
Note: See TracBrowser for help on using the browser.