- name: 'mbedtls clang'
install_packages: libnghttp2-dev libldap-dev clang
install_steps: mbedtls pytest
- configure: CC=clang LDFLAGS=-Wl,-rpath,/home/runner/mbedtls/lib --with-mbedtls=/home/runner/mbedtls --enable-debug
+ configure: CC=clang LDFLAGS=-Wl,-rpath,/home/runner/mbedtls/lib --with-mbedtls=/home/runner/mbedtls --enable-debug --with-fish-functions-dir --with-zsh-functions-dir
- name: 'mbedtls'
install_packages: libnghttp2-dev
else
mkdir bld && cd bld && \
${MATRIX_CONFIGURE_PREFIX} \
- ../configure --enable-unity --enable-warnings --enable-werror \
+ ../configure --prefix="$HOME"/curl-install --enable-unity --enable-warnings --enable-werror \
--disable-dependency-tracking \
${MATRIX_CONFIGURE}
fi
if: ${{ matrix.build.make-custom-target != 'tidy' }}
run: bld/src/curl -V
- - name: 'cmake install'
- if: ${{ matrix.build.generate }}
- run: cmake --install bld --strip
+ - name: 'curl install'
+ run: |
+ if [ "${MATRIX_BUILD}" = 'cmake' ]; then
+ cmake --install bld --strip
+ else
+ make -C bld V=1 install
+ fi
- name: 'build tests'
if: ${{ !contains(matrix.build.install_steps, 'skipall') }}
- name: 'OpenSSL libssh c-ares'
compiler: clang
install: libssh
- configure: --enable-debug --with-libssh --with-openssl=/opt/homebrew/opt/openssl --enable-ares
+ configure: --enable-debug --with-libssh --with-openssl=/opt/homebrew/opt/openssl --enable-ares --with-fish-functions-dir --with-zsh-functions-dir
- name: 'OpenSSL libssh'
compiler: llvm@18
install: libssh libnghttp3
fi
[ -n "${MATRIX_MACOS_VERSION_MIN}" ] && CFLAGS+=" -mmacosx-version-min=${MATRIX_MACOS_VERSION_MIN}"
[[ "${MATRIX_INSTALL_STEPS}" = *'pytest'* ]] && options+=' --with-test-vsftpd=no' # Skip ~20 tests that stretch run time by 7x on macOS
- mkdir bld && cd bld && ../configure --enable-unity --enable-warnings --enable-werror \
+ mkdir bld && cd bld && ../configure --prefix="$PWD"/curl-install --enable-unity --enable-warnings --enable-werror \
--disable-dependency-tracking \
--with-libpsl=/opt/homebrew/opt/libpsl \
${MATRIX_CONFIGURE} ${options}
- name: 'curl version'
run: bld/src/curl --disable --version
- - name: 'cmake install'
- if: ${{ matrix.build.generate }}
- run: cmake --install bld --strip
+ - name: 'curl install'
+ run: |
+ if [ "${MATRIX_BUILD}" = 'cmake' ]; then
+ cmake --install bld --strip
+ else
+ make -C bld V=1 install
+ fi
- name: 'build tests'
run: |
$(MAKE) RPMDIST=curl-ssl rpm
rpm:
- RPM_TOPDIR=`rpm --showrc | $(PERL) -n -e 'print if(s/.*_topdir\s+(.*)/$$1/)'` ; \
+ RPM_TOPDIR=`rpm --showrc | @PERL@ -n -e 'print if(s/.*_topdir\s+(.*)/$$1/)'` ; \
cp $(srcdir)/packages/Linux/RPM/$(RPMDIST).spec $$RPM_TOPDIR/SPECS ; \
cp $(PACKAGE)-$(VERSION).tar.gz $$RPM_TOPDIR/SOURCES ; \
rpm -ba --clean --rmsource $$RPM_TOPDIR/SPECS/$(RPMDIST).spec ; \
esac ],
AC_MSG_RESULT([no])
)
-
+if test -z "$PERL" -a "$want_unity" = 'yes'; then
+ AC_MSG_WARN([perl was not found. Will not enable unity.])
+ want_unity='no'
+fi
AM_CONDITIONAL([USE_UNITY], [test "$want_unity" = 'yes'])
dnl ************************************************************
AC_SUBST(ZSH_FUNCTIONS_DIR)
;;
esac
+if test -z "$PERL" -a x"$ZSH_FUNCTIONS_DIR" != x; then
+ AC_MSG_WARN([perl was not found. Will not install zsh completions.])
+ ZSH_FUNCTIONS_DIR=''
+fi
AM_CONDITIONAL(USE_ZSH_COMPLETION, test x"$ZSH_FUNCTIONS_DIR" != x)
dnl **********************************************************************
AC_SUBST(FISH_FUNCTIONS_DIR)
;;
esac
+if test -z "$PERL" -a x"$FISH_FUNCTIONS_DIR" != x; then
+ AC_MSG_WARN([perl was not found. Will not install fish completions.])
+ FISH_FUNCTIONS_DIR=''
+fi
AM_CONDITIONAL(USE_FISH_COMPLETION, test x"$FISH_FUNCTIONS_DIR" != x)
dnl Now check for the very most basic headers. Then we can use these
dist_bin_SCRIPTS = wcurl
-ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@
-FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
-PERL = @PERL@
-
if USE_ZSH_COMPLETION
ZSH_COMPLETION_FUNCTION_FILENAME = _curl
endif
if USE_ZSH_COMPLETION
$(ZSH_COMPLETION_FUNCTION_FILENAME): completion.pl
- if test -z "$(PERL)"; then echo 'No perl: cannot generate completion script'; else \
- $(PERL) $(srcdir)/completion.pl --opts-dir $(top_srcdir)/docs/cmdline-opts --shell zsh > $@; fi
+ @PERL@ $(srcdir)/completion.pl --opts-dir $(top_srcdir)/docs/cmdline-opts --shell zsh > $@
endif
if USE_FISH_COMPLETION
$(FISH_COMPLETION_FUNCTION_FILENAME): completion.pl
- if test -z "$(PERL)"; then echo 'No perl: cannot generate completion script'; else \
- $(PERL) $(srcdir)/completion.pl --opts-dir $(top_srcdir)/docs/cmdline-opts --shell fish > $@; fi
+ @PERL@ $(srcdir)/completion.pl --opts-dir $(top_srcdir)/docs/cmdline-opts --shell fish > $@
endif
install-data-local:
if USE_ZSH_COMPLETION
- if test -n "$(PERL)"; then \
- $(MKDIR_P) $(DESTDIR)$(ZSH_FUNCTIONS_DIR); \
- $(INSTALL_DATA) $(ZSH_COMPLETION_FUNCTION_FILENAME) $(DESTDIR)$(ZSH_FUNCTIONS_DIR)/$(ZSH_COMPLETION_FUNCTION_FILENAME); \
- fi
+ $(MKDIR_P) $(DESTDIR)@ZSH_FUNCTIONS_DIR@
+ $(INSTALL_DATA) $(ZSH_COMPLETION_FUNCTION_FILENAME) $(DESTDIR)@ZSH_FUNCTIONS_DIR@/$(ZSH_COMPLETION_FUNCTION_FILENAME)
endif
if USE_FISH_COMPLETION
- if test -n "$(PERL)"; then \
- $(MKDIR_P) $(DESTDIR)$(FISH_FUNCTIONS_DIR); \
- $(INSTALL_DATA) $(FISH_COMPLETION_FUNCTION_FILENAME) $(DESTDIR)$(FISH_FUNCTIONS_DIR)/$(FISH_COMPLETION_FUNCTION_FILENAME); \
- fi
+ $(MKDIR_P) $(DESTDIR)@FISH_FUNCTIONS_DIR@
+ $(INSTALL_DATA) $(FISH_COMPLETION_FUNCTION_FILENAME) $(DESTDIR)@FISH_FUNCTIONS_DIR@/$(FISH_COMPLETION_FUNCTION_FILENAME)
endif
distclean:
echo '/* !checksrc! disable LONGLINE all */' >> $(HUGE); \
echo '#include "tool_setup.h"' >> $(HUGE); \
echo '#ifndef HAVE_LIBZ' >> $(HUGE); \
- $(PERL) $(MKHELP) < $(ASCIIPAGE) >> $(HUGE); \
+ @PERL@ $(MKHELP) < $(ASCIIPAGE) >> $(HUGE); \
echo '#else' >> $(HUGE); \
- $(PERL) $(MKHELP) -c < $(ASCIIPAGE) >> $(HUGE); \
+ @PERL@ $(MKHELP) -c < $(ASCIIPAGE) >> $(HUGE); \
echo '#endif /* HAVE_LIBZ */' >> $(HUGE) )
else # HAVE_LIBZ
# This generates the tool_hugehelp.c file uncompressed only
$(HUGECMD)( \
echo '/* !checksrc! disable COPYRIGHT all */' > $(HUGE); \
echo '#include "tool_setup.h"' >> $(HUGE); \
- $(PERL) $(MKHELP) < $(ASCIIPAGE) >> $(HUGE) )
+ @PERL@ $(MKHELP) < $(ASCIIPAGE) >> $(HUGE) )
endif
else # PERL
$(HUGE):
curl_CPPFLAGS += -DCURL_CA_EMBED
MK_FILE_EMBED = $(top_srcdir)/src/mk-file-embed.pl
$(CA_EMBED_CSOURCE): $(MK_FILE_EMBED) $(CURL_CA_EMBED)
- $(PERL) $(MK_FILE_EMBED) --var curl_ca_embed < $(CURL_CA_EMBED) > $(CA_EMBED_CSOURCE)
+ @PERL@ $(MK_FILE_EMBED) --var curl_ca_embed < $(CURL_CA_EMBED) > $(CA_EMBED_CSOURCE)
else
$(CA_EMBED_CSOURCE):
echo '/* !checksrc! disable COPYRIGHT all */' > $(CA_EMBED_CSOURCE)
TEST_COMMON += !documentation
endif
-TEST = srcdir=$(srcdir) $(PERL) $(PERLFLAGS) $(srcdir)/runtests.pl $(TEST_COMMON)
+TEST = srcdir=$(srcdir) @PERL@ $(PERLFLAGS) $(srcdir)/runtests.pl $(TEST_COMMON)
TEST_Q = -a -s
TEST_AM = -a -am
TEST_F = -a -p -r
# make sure that PERL is pointing to an executable
perlcheck:
- @if ! test -x "$(PERL)"; then echo "No perl!"; exit 2; fi
+ @if ! test -x "@PERL@"; then echo "No perl!"; exit 2; fi
-build-certs:
+build-certs: perlcheck
(cd certs && $(MAKE))
# alias for 'test' to match CMake, where 'test' is a reserved target
# Generate all certs in a single shot, but declare just a single target file
# to support GNU Make <4.3 without the "grouped explicit targets" feature.
test-ca.cacert: $(CERTCONFIG_CA) $(CERTCONFIGS) genserv.pl
- $(PERL) $(srcdir)/genserv.pl test $(CERTCONFIGS)
+ @PERL@ $(srcdir)/genserv.pl test $(CERTCONFIGS)
clean-local:
rm -f $(GENERATEDCERTS) \