1#*************************************************************************** 2# _ _ ____ _ 3# Project ___| | | | _ \| | 4# / __| | | | |_) | | 5# | (__| |_| | _ <| |___ 6# \___|\___/|_| \_\_____| 7# 8# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. 9# 10# This software is licensed as described in the file COPYING, which 11# you should have received as part of this distribution. The terms 12# are also available at https://curl.se/docs/copyright.html. 13# 14# You may opt to use, copy, modify, merge, publish, distribute and/or sell 15# copies of the Software, and permit persons to whom the Software is 16# furnished to do so, under the terms of the COPYING file. 17# 18# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 19# KIND, either express or implied. 20# 21# SPDX-License-Identifier: curl 22# 23########################################################################### 24 25AUTOMAKE_OPTIONS = foreign 26 27ACLOCAL_AMFLAGS = -I m4 28 29CMAKE_DIST = \ 30 CMake/cmake_uninstall.cmake.in \ 31 CMake/CMakeConfigurableFile.in \ 32 CMake/curl-config.cmake.in \ 33 CMake/CurlSymbolHiding.cmake \ 34 CMake/CurlTests.c \ 35 CMake/FindBearSSL.cmake \ 36 CMake/FindBrotli.cmake \ 37 CMake/FindCares.cmake \ 38 CMake/FindGSS.cmake \ 39 CMake/FindLibgsasl.cmake \ 40 CMake/FindLibidn2.cmake \ 41 CMake/FindLibpsl.cmake \ 42 CMake/FindLibssh.cmake \ 43 CMake/FindLibssh2.cmake \ 44 CMake/FindLibuv.cmake \ 45 CMake/FindMbedTLS.cmake \ 46 CMake/FindMSH3.cmake \ 47 CMake/FindMbedTLS.cmake \ 48 CMake/FindNGHTTP2.cmake \ 49 CMake/FindNGHTTP3.cmake \ 50 CMake/FindNGTCP2.cmake \ 51 CMake/FindNettle.cmake \ 52 CMake/FindQuiche.cmake \ 53 CMake/FindRustls.cmake \ 54 CMake/FindWolfSSH.cmake \ 55 CMake/FindWolfSSL.cmake \ 56 CMake/FindZstd.cmake \ 57 CMake/Macros.cmake \ 58 CMake/OtherTests.cmake \ 59 CMake/PickyWarnings.cmake \ 60 CMake/Platforms/WindowsCache.cmake \ 61 CMake/Utilities.cmake \ 62 CMakeLists.txt 63 64VC_DIST = projects/README.md \ 65 projects/build-openssl.bat \ 66 projects/build-wolfssl.bat \ 67 projects/checksrc.bat \ 68 projects/generate.bat \ 69 projects/wolfssl_options.h \ 70 projects/wolfssl_override.props 71 72WINBUILD_DIST = winbuild/README.md \ 73 winbuild/MakefileBuild.vc winbuild/Makefile.vc winbuild/makedebug.bat 74 75PLAN9_DIST = plan9/include/mkfile \ 76 plan9/include/mkfile \ 77 plan9/mkfile.proto \ 78 plan9/mkfile \ 79 plan9/README \ 80 plan9/lib/mkfile.inc \ 81 plan9/lib/mkfile \ 82 plan9/src/mkfile.inc \ 83 plan9/src/mkfile 84 85EXTRA_DIST = CHANGES.md COPYING Makefile.dist \ 86 RELEASE-NOTES $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) \ 87 $(PLAN9_DIST) buildconf.bat Dockerfile 88 89CLEANFILES = $(VC14_LIBVCXPROJ) $(VC14_SRCVCXPROJ) \ 90 $(VC14_10_LIBVCXPROJ) $(VC14_10_SRCVCXPROJ) \ 91 $(VC14_20_LIBVCXPROJ) $(VC14_20_SRCVCXPROJ) \ 92 $(VC14_30_LIBVCXPROJ) $(VC14_30_SRCVCXPROJ) 93 94DISTCLEANFILES = buildinfo.txt 95 96bin_SCRIPTS = curl-config 97 98SUBDIRS = lib docs src scripts 99DIST_SUBDIRS = $(SUBDIRS) tests packages include docs 100 101pkgconfigdir = $(libdir)/pkgconfig 102pkgconfig_DATA = libcurl.pc 103 104# List of files required to generate VC IDE .dsp, .vcproj and .vcxproj files 105include lib/Makefile.inc 106include src/Makefile.inc 107 108dist-hook: 109 rm -rf $(top_builddir)/tests/log 110 find $(distdir) -name "*.dist" -a \! -name Makefile.dist -exec rm {} \; 111 (distit=`find $(srcdir) -name "*.dist" | grep -v Makefile`; \ 112 for file in $$distit; do \ 113 strip=`echo $$file | sed -e s/^$(srcdir)// -e s/\.dist//`; \ 114 cp -p $$file $(distdir)$$strip; \ 115 done) 116 117check: test examples check-docs 118 119if CROSSCOMPILING 120test-full: test 121test-nonflaky: test 122test-torture: test 123test-event: test 124test-am: test 125test-ci: test 126pytest: test 127pytest-ci: test 128 129test: 130 @echo "NOTICE: we can't run the tests when cross-compiling!" 131 132else 133 134test: 135 @(cd tests; $(MAKE) all quiet-test) 136 137test-full: 138 @(cd tests; $(MAKE) all full-test) 139 140test-nonflaky: 141 @(cd tests; $(MAKE) all nonflaky-test) 142 143test-torture: 144 @(cd tests; $(MAKE) all torture-test) 145 146test-event: 147 @(cd tests; $(MAKE) all event-test) 148 149test-am: 150 @(cd tests; $(MAKE) all am-test) 151 152test-ci: 153 @(cd tests; $(MAKE) all ci-test) 154 155pytest: 156 @(cd tests; $(MAKE) all default-pytest) 157 158pytest-ci: 159 @(cd tests; $(MAKE) all ci-pytest) 160 161endif 162 163examples: 164 @(cd docs/examples; $(MAKE) check) 165 166check-docs: 167 @(cd docs/libcurl; $(MAKE) check) 168 169# Build source and binary rpms. For rpm-3.0 and above, the ~/.rpmmacros 170# must contain the following line: 171# %_topdir /home/loic/local/rpm 172# and that /home/loic/local/rpm contains the directory SOURCES, BUILD etc. 173# 174# cd /home/loic/local/rpm ; mkdir -p SOURCES BUILD RPMS/i386 SPECS SRPMS 175# 176# If additional configure flags are needed to build the package, add the 177# following in ~/.rpmmacros 178# %configure CFLAGS="%{optflags}" ./configure %{_target_platform} --prefix=%{_prefix} ${AM_CONFIGFLAGS} 179# and run make rpm in the following way: 180# AM_CONFIGFLAGS='--with-uri=/home/users/loic/local/RedHat-6.2' make rpm 181# 182 183rpms: 184 $(MAKE) RPMDIST=curl rpm 185 $(MAKE) RPMDIST=curl-ssl rpm 186 187rpm: 188 RPM_TOPDIR=`rpm --showrc | $(PERL) -n -e 'print if(s/.*_topdir\s+(.*)/$$1/)'` ; \ 189 cp $(srcdir)/packages/Linux/RPM/$(RPMDIST).spec $$RPM_TOPDIR/SPECS ; \ 190 cp $(PACKAGE)-$(VERSION).tar.gz $$RPM_TOPDIR/SOURCES ; \ 191 rpm -ba --clean --rmsource $$RPM_TOPDIR/SPECS/$(RPMDIST).spec ; \ 192 mv $$RPM_TOPDIR/RPMS/i386/$(RPMDIST)-*.rpm . ; \ 193 mv $$RPM_TOPDIR/SRPMS/$(RPMDIST)-*.src.rpm . 194 195# 196# Build a Solaris pkgadd format file 197# run 'make pkgadd' once you've done './configure' and 'make' to make a Solaris pkgadd format 198# file (which ends up back in this directory). 199# The pkgadd file is in 'pkgtrans' format, so to install on Solaris, do 200# pkgadd -d ./HAXXcurl-* 201# 202 203# gak - libtool requires an absolute directory, hence the pwd below... 204pkgadd: 205 umask 022 ; \ 206 $(MAKE) install DESTDIR=`/bin/pwd`/packages/Solaris/root ; \ 207 cat COPYING > $(srcdir)/packages/Solaris/copyright ; \ 208 cd $(srcdir)/packages/Solaris && $(MAKE) package 209 210# 211# Build a Cygwin binary tarball installation file 212# resulting .tar.bz2 file will end up at packages/Win32/cygwin 213cygwinbin: 214 $(MAKE) -C packages/Win32/cygwin cygwinbin 215 216# We extend the standard install with a custom hook: 217if BUILD_DOCS 218install-data-hook: 219 (cd include && $(MAKE) install) 220 (cd docs && $(MAKE) install) 221 (cd docs/libcurl && $(MAKE) install) 222else 223install-data-hook: 224 (cd include && $(MAKE) install) 225 (cd docs && $(MAKE) install) 226endif 227 228# We extend the standard uninstall with a custom hook: 229uninstall-hook: 230 (cd include && $(MAKE) uninstall) 231 (cd docs && $(MAKE) uninstall) 232 (cd docs/libcurl && $(MAKE) uninstall) 233 234ca-bundle: $(srcdir)/scripts/mk-ca-bundle.pl 235 @echo "generating a fresh ca-bundle.crt" 236 @perl $(srcdir)/scripts/mk-ca-bundle.pl -b -l -u lib/ca-bundle.crt 237 238ca-firefox: $(srcdir)/scripts/firefox-db2pem.sh 239 @echo "generating a fresh ca-bundle.crt" 240 $(srcdir)/scripts/firefox-db2pem.sh lib/ca-bundle.crt 241 242checksrc: 243 (cd lib && $(MAKE) checksrc) 244 (cd src && $(MAKE) checksrc) 245 (cd tests && $(MAKE) checksrc) 246 (cd include/curl && $(MAKE) checksrc) 247 (cd docs/examples && $(MAKE) checksrc) 248 (cd packages && $(MAKE) checksrc) 249 250tidy: 251 (cd src && $(MAKE) tidy) 252 (cd lib && $(MAKE) tidy) 253