Project import
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e06f6c4 --- /dev/null +++ b/Makefile
@@ -0,0 +1,164 @@ +# +# Copyright (c) 2010-2016 Nest, Inc. +# All rights reserved. +# +# This document is the property of Nest. It is considered +# confidential and proprietary information. +# +# This document may not be reproduced or transmitted in any form, +# in whole or in part, without the express written permission of +# Nest. +# +# Description: +# This file is the makefile for the library and command line +# utility for transferring files with URL syntax, libcurl and +# curl, respectively. +# + +include pre.mak + +PackageName := curl + +PackageExtension := tar.gz +PackageSeparator := - + +PackagePatchArgs := -p1 + +PackageArchive := $(PackageName).$(PackageExtension) +PackageSourceDir := $(PackageName)$(PackageSeparator)$(PackageVersion) + +PackageBuildMakefile = $(call GenerateBuildPaths,Makefile) + +CleanPaths += $(PackageLicenseFile) + +SOURCEDIRS = $(PackageSourceDir) +$(PackageSourceDir)_RULE_TARGET = $(BuildDirectory)/configure + +all: $(PackageDefaultGoal) + +# Generate the package license contents. + +$(PackageSourceDir)/COPYING: $(BuildDirectory)/source + +$(PackageLicenseFile): $(PackageSourceDir)/COPYING + $(copy-result) + +# Extract the source from the archive and apply patches, if any. + +$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths) + $(expand-and-patch-package) + +# Prepare the sources. + +$(BuildDirectory)/source: | $(PackageSourceDir) $(BuildDirectory) + $(Verbose)touch $@ + +.PHONY: source +source: $(BuildDirectory)/source + +# Patch the sources, if necessary. + +$(BuildDirectory)/patch: $(BuildDirectory)/source + $(Verbose)touch $@ + +.PHONY: patch +patch: $(BuildDirectory)/patch + +# Generate the package build makefile. +# +# For non-cross-compiled targets (e.g. simulators), the curl configure +# attempts to perform run-time tests. +# +# To ensure this works against the in-project versions of openssl and +# zlib, the paths to these shared objects MUST be found by the dynamic +# loader. + +$(BuildDirectory)/configure: export $(LoaderSearchPath) := $(OpenSSLLibraryPath):$(dir $(ZlibLibraryPath)):$($(LoaderSearchPath)) + +# Configure the source for building. + +$(BuildDirectory)/configure: $(BuildDirectory)/source | $(PackageSourceDir) $(BuildDirectory) + $(Verbose)cd $(BuildDirectory) && \ + $(CURDIR)/$(PackageSourceDir)/configure \ + INSTALL="$(INSTALL) $(INSTALLFLAGS)" \ + CC="$(CC) $(CPPOPTFLAGS)" CXX="$(CXX) $(CPPOPTFLAGS)" AR=$(AR) RANLIB=$(RANLIB) STRIP=$(STRIP) \ + CPPFLAGS="$(call ToolGenerateIncludeArgument,$(OpenSSLIncludePath)) \ + $(call ToolGenerateIncludeArgument,$(LinuxIncludePath))" \ + LDFLAGS="$(call GenerateResolveArguments,$(ZlibDependPath)) \ + $(call GenerateResolveArguments,$(OpenSSLDependPaths)) \ + $(call ToolGenerateLibraryPathArgument,$(OpenSSLLibraryPath))" \ + --build=$(HostTuple) \ + --host=$(TargetTuple) \ + $(CurlPackageOptions) \ + --disable-ares \ + --disable-dict \ + --disable-gopher \ + --disable-imap \ + --disable-ldap \ + --disable-ldaps \ + --disable-manual \ + --disable-ntlm-wb \ + --disable-pop3 \ + --disable-rtsp \ + --disable-smtp \ + --disable-telnet \ + --enable-ipv6 \ + --with-ssl=$(OpenSSLPrefixPath) \ + --with-zlib=$(ZlibPrefixPath) \ + --without-libidn \ + --prefix=$(addprefix $(LibPrefixConfigOption),/usr) \ + --sysconfdir=$(addprefix $(LibPrefixConfigOption),/etc) \ + --localstatedir=$(addprefix $(LibPrefixConfigOption),/var) \ + --disable-static + $(Verbose)touch $@ + +.PHONY: configure +configure: $(BuildDirectory)/configure + +# Build the source. +# +# We have to unset MAKEFLAGS since they confuse the package build otherwise. + +$(BuildDirectory)/build: $(BuildDirectory)/configure + $(Verbose)unset MAKEFLAGS && \ + $(MAKE) $(JOBSFLAG) -C $(BuildDirectory) all + $(Verbose)touch $@ + +.PHONY: build +build: $(BuildDirectory)/build + +# Stage the build to a temporary installation area. +# +# We have to unset MAKEFLAGS since they confuse the package build otherwise. +# +# We explictly remove 'libcurl.la' because some packages that depend +# on libcurl use libtool. If libtool finds a '*.la' file for a +# library, it uses the value of 'libdir=<dir>' it finds. In our case, +# since '--prefix=/usr' this value is '/usr/lib'. It then resolves +# '-lcurl' to '/usr/lib/libcurl.so'. In a cross-compilation +# environment, this is likely to be neither the right architecture nor +# the right version to link against. In short, we lose. +# +# We could also handle this by removing DESTDIR and setting the prefix +# to $(ResultDirectory); however, that results in libtool hard-coding +# $(ResultDirectory) as the RPATH in the linked executables which is +# NOT what we want either. We lose again. +# +# By removing the '*.la' file, we win by ensuring neither a misdirected +# link nor an RPATH. + +$(BuildDirectory)/stage: $(BuildDirectory)/build | $(ResultDirectory) + $(Verbose)unset MAKEFLAGS && \ + $(MAKE) $(JOBSFLAG) -C $(BuildDirectory) $(call GenerateLibraryDestinationArgument,$(ResultDirectory)) install + $(Verbose)$(RM) $(RMFLAGS) $(call GenerateResultPaths,,usr/lib/libcurl.la) + $(Verbose)touch $@ + +.PHONY: stage +stage: $(BuildDirectory)/stage + +clean: + $(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir) + $(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory) + $(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory) + +include post.mak
diff --git a/curl.tar.gz b/curl.tar.gz new file mode 100644 index 0000000..ec1f1b7 --- /dev/null +++ b/curl.tar.gz Binary files differ
diff --git a/curl.url b/curl.url new file mode 100644 index 0000000..df4d2b8 --- /dev/null +++ b/curl.url
@@ -0,0 +1 @@ +http://curl.haxx.se/download/curl-7.49.1.tar.gz
diff --git a/curl.version b/curl.version new file mode 100644 index 0000000..a4ab940 --- /dev/null +++ b/curl.version
@@ -0,0 +1 @@ +7.49.1