mirror of
https://github.com/curl/curl.git
synced 2026-01-18 17:21:26 +01:00
configure: if no perl, disable unity and shell completion, related tidy ups
Also: - GHA/linux, macos: test `install` with autotools too. - GHA/linux, macos: enable fish and zsh completion in an autotools job. - scripts: drop dynamic perl checks redundant after this patch. - scripts: drop two interim variables. - autotools: make `build-certs` target check perl first. - autotools: replace `$(PERL)` with `@PERL@` to match the pattern used in most automake scripts. For consistency. This makes `PERL` be defined at configure-time, as opposed to make-time, for these cases now. Closes #18141
This commit is contained in:
14
.github/workflows/linux.yml
vendored
14
.github/workflows/linux.yml
vendored
@@ -108,7 +108,7 @@ jobs:
|
||||
- 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
|
||||
@@ -572,7 +572,7 @@ jobs:
|
||||
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
|
||||
@@ -614,9 +614,13 @@ jobs:
|
||||
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') }}
|
||||
|
||||
14
.github/workflows/macos.yml
vendored
14
.github/workflows/macos.yml
vendored
@@ -238,7 +238,7 @@ jobs:
|
||||
- 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
|
||||
@@ -423,7 +423,7 @@ jobs:
|
||||
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}
|
||||
@@ -452,9 +452,13 @@ jobs:
|
||||
- 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: |
|
||||
|
||||
@@ -172,7 +172,7 @@ rpms:
|
||||
$(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 ; \
|
||||
|
||||
13
configure.ac
13
configure.ac
@@ -663,7 +663,10 @@ AS_HELP_STRING([--disable-unity],[Disable unity (default)]),
|
||||
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 ************************************************************
|
||||
@@ -3901,6 +3904,10 @@ case "$OPT_ZSH_FPATH" in
|
||||
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 **********************************************************************
|
||||
@@ -3932,6 +3939,10 @@ case "$OPT_FISH_FPATH" in
|
||||
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
|
||||
|
||||
@@ -29,10 +29,6 @@ EXTRA_DIST = coverage.sh completion.pl firefox-db2pem.sh checksrc.pl checksrc-al
|
||||
|
||||
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
|
||||
@@ -46,28 +42,22 @@ all-local: $(ZSH_COMPLETION_FUNCTION_FILENAME) $(FISH_COMPLETION_FUNCTION_FILENA
|
||||
|
||||
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:
|
||||
|
||||
@@ -152,9 +152,9 @@ $(HUGE): $(ASCIIPAGE) $(MKHELP)
|
||||
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
|
||||
@@ -162,7 +162,7 @@ $(HUGE): $(ASCIIPAGE) $(MKHELP)
|
||||
$(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):
|
||||
@@ -196,7 +196,7 @@ if CURL_CA_EMBED_SET
|
||||
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)
|
||||
|
||||
@@ -117,7 +117,7 @@ else
|
||||
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
|
||||
@@ -136,9 +136,9 @@ endif
|
||||
|
||||
# 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
|
||||
|
||||
@@ -38,7 +38,7 @@ all-am: test-ca.cacert
|
||||
# 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) \
|
||||
|
||||
Reference in New Issue
Block a user