^scripts/installcheck.sh
^scripts/release-notes.pl
^scripts/singleuse.pl
-^src/tool_hugehelp.c.cvs
^tests/CI.md"
tarfiles="$(mktemp)"
./configure --disable-shared --enable-debug --enable-maintainer-mode
-In environments that do not support configure (i.e. Windows), do this:
-
- buildconf.bat
-
## REQUIREMENTS
See [docs/INTERNALS.md][0] for requirement details.
EXTRA_DIST = CHANGES.md COPYING Makefile.dist \
RELEASE-NOTES $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) \
- $(PLAN9_DIST) buildconf.bat Dockerfile
+ $(PLAN9_DIST) Dockerfile
DISTCLEANFILES = buildinfo.txt
./configure --with-openssl
make
-vc:
- cd winbuild
- nmake /f Makefile.vc MACHINE=x86
-
-vc-x64:
- cd winbuild
- nmake /f Makefile.vc MACHINE=x64
-
-cygwin:
- ./configure
- make
-
-cygwin-ssl:
- ./configure --with-openssl
- make
+cygwin: all
+cygwin-ssl: ssl
unix: all
-
unix-ssl: ssl
linux: all
-
linux-ssl: ssl
ca-bundle: scripts/mk-ca-bundle.pl
)
curl="build/Win32/${VC_VERSION}/${PRJ_CFG}/curld.exe"
elif [ "${BUILD_SYSTEM}" = 'winbuild_vs2015' ]; then
- ./buildconf.bat
(
cd winbuild
cat << EOF > _make.bat
)
curl="builds/libcurl-vc14-x64-${PATHPART}-dll-ssl-dll-ipv6-sspi/bin/curl.exe"
elif [ "${BUILD_SYSTEM}" = 'winbuild_vs2017' ]; then
- ./buildconf.bat
(
cd winbuild
cat << EOF > _make.bat
+++ /dev/null
-@echo off
-rem ***************************************************************************
-rem * _ _ ____ _
-rem * Project ___| | | | _ \| |
-rem * / __| | | | |_) | |
-rem * | (__| |_| | _ <| |___
-rem * \___|\___/|_| \_\_____|
-rem *
-rem * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-rem *
-rem * This software is licensed as described in the file COPYING, which
-rem * you should have received as part of this distribution. The terms
-rem * are also available at https://curl.se/docs/copyright.html.
-rem *
-rem * You may opt to use, copy, modify, merge, publish, distribute and/or sell
-rem * copies of the Software, and permit persons to whom the Software is
-rem * furnished to do so, under the terms of the COPYING file.
-rem *
-rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-rem * KIND, either express or implied.
-rem *
-rem * SPDX-License-Identifier: curl
-rem *
-rem ***************************************************************************
-
-rem NOTES
-rem
-rem This batch file must be used to set up a git tree to build on systems where
-rem there is no autotools support (i.e. DOS and Windows).
-rem
-
-:begin
- rem Set our variables
- if "%OS%" == "Windows_NT" setlocal
- set MODE=GENERATE
-
- rem Switch to this batch file's directory
- cd /d "%~0\.." 1>NUL 2>&1
-
- rem Check we are running from a curl git repository
- if not exist GIT-INFO.md goto norepo
-
-:parseArgs
- if "%~1" == "" goto start
-
- if /i "%~1" == "-clean" (
- set MODE=CLEAN
- ) else if /i "%~1" == "-?" (
- goto syntax
- ) else if /i "%~1" == "-h" (
- goto syntax
- ) else if /i "%~1" == "-help" (
- goto syntax
- ) else (
- goto unknown
- )
-
- shift & goto parseArgs
-
-:start
- if "%MODE%" == "GENERATE" (
- echo.
- echo Generating prerequisite files
-
- call :generate
- if errorlevel 3 goto nogenhugehelp
- if errorlevel 2 goto nogenmakefile
- if errorlevel 1 goto warning
-
- ) else (
- echo.
- echo Removing prerequisite files
-
- call :clean
- if errorlevel 2 goto nocleanhugehelp
- if errorlevel 1 goto nocleanmakefile
- )
-
- goto success
-
-rem Main generate function.
-rem
-rem Returns:
-rem
-rem 0 - success
-rem 1 - success with simplified tool_hugehelp.c
-rem 2 - failed to generate Makefile
-rem 3 - failed to generate tool_hugehelp.c
-rem
-:generate
- if "%OS%" == "Windows_NT" setlocal
- set BASIC_HUGEHELP=0
-
- rem Create Makefile
- echo * %CD%\Makefile
- if exist Makefile.dist (
- copy /Y Makefile.dist Makefile 1>NUL 2>&1
- if errorlevel 1 (
- if "%OS%" == "Windows_NT" endlocal
- exit /B 2
- )
- )
-
- rem Create tool_hugehelp.c
- echo * %CD%\src\tool_hugehelp.c
- call :genHugeHelp
- if errorlevel 2 (
- if "%OS%" == "Windows_NT" endlocal
- exit /B 3
- )
- if errorlevel 1 (
- set BASIC_HUGEHELP=1
- )
- cmd /c exit 0
-
- if "%BASIC_HUGEHELP%" == "1" (
- if "%OS%" == "Windows_NT" endlocal
- exit /B 1
- )
-
- if "%OS%" == "Windows_NT" endlocal
- exit /B 0
-
-rem Main clean function.
-rem
-rem Returns:
-rem
-rem 0 - success
-rem 1 - failed to clean Makefile
-rem 2 - failed to clean tool_hugehelp.c
-rem
-:clean
- rem Remove Makefile
- echo * %CD%\Makefile
- if exist Makefile (
- del Makefile 2>NUL
- if exist Makefile (
- exit /B 1
- )
- )
-
- rem Remove tool_hugehelp.c
- echo * %CD%\src\tool_hugehelp.c
- if exist src\tool_hugehelp.c (
- del src\tool_hugehelp.c 2>NUL
- if exist src\tool_hugehelp.c (
- exit /B 2
- )
- )
-
- exit /B
-
-rem Function to generate src\tool_hugehelp.c
-rem
-rem Returns:
-rem
-rem 0 - full tool_hugehelp.c generated
-rem 1 - simplified tool_hugehelp.c
-rem 2 - failure
-rem
-:genHugeHelp
- if "%OS%" == "Windows_NT" setlocal
- set LC_ALL=C
- set BASIC=1
-
- if exist src\tool_hugehelp.c.cvs (
- copy /Y src\tool_hugehelp.c.cvs src\tool_hugehelp.c 1>NUL 2>&1
- ) else (
- echo #include "tool_setup.h"> src\tool_hugehelp.c
- echo #include "tool_hugehelp.h">> src\tool_hugehelp.c
- echo.>> src\tool_hugehelp.c
- echo void hugehelp(void^)>> src\tool_hugehelp.c
- echo {>> src\tool_hugehelp.c
- echo #ifdef USE_MANUAL>> src\tool_hugehelp.c
- echo fputs("Built-in manual not included\n", stdout^);>> src\tool_hugehelp.c
- echo #endif>> src\tool_hugehelp.c
- echo }>> src\tool_hugehelp.c
- )
-
- findstr "/C:void hugehelp(void)" src\tool_hugehelp.c 1>NUL 2>&1
- if errorlevel 1 (
- if "%OS%" == "Windows_NT" endlocal
- exit /B 2
- )
-
- if "%BASIC%" == "1" (
- if "%OS%" == "Windows_NT" endlocal
- exit /B 1
- )
-
- if "%OS%" == "Windows_NT" endlocal
- exit /B 0
-
-rem Function to clean-up local variables under DOS, Windows 3.x and
-rem Windows 9x as setlocal isn't available until Windows NT
-rem
-:dosCleanup
- set MODE=
- set BASIC_HUGEHELP=
- set LC_ALL
- set BASIC=
-
- exit /B
-
-:syntax
- rem Display the help
- echo.
- echo Usage: buildconf [-clean]
- echo.
- echo -clean - Removes the files
- goto error
-
-:unknown
- echo.
- echo Error: Unknown argument '%1'
- goto error
-
-:norepo
- echo.
- echo Error: This batch file should only be used with a curl git repository
- goto error
-
-:nogenmakefile
- echo.
- echo Error: Unable to generate Makefile
- goto error
-
-:nogenhugehelp
- echo.
- echo Error: Unable to generate src\tool_hugehelp.c
- goto error
-
-:nocleanmakefile
- echo.
- echo Error: Unable to clean Makefile
- goto error
-
-:nocleanhugehelp
- echo.
- echo Error: Unable to clean src\tool_hugehelp.c
- goto error
-
-:warning
- echo.
- echo Warning: The curl manual could not be integrated in the source. This means when
- echo you build curl the manual will not be available (curl --manual^). Integration of
- echo the manual is not required and a summary of the options will still be available
- echo (curl --help^). To integrate the manual build with configure or cmake.
- goto success
-
-:error
- if "%OS%" == "Windows_NT" (
- endlocal
- ) else (
- call :dosCleanup
- )
- exit /B 1
-
-:success
- if "%OS%" == "Windows_NT" (
- endlocal
- ) else (
- call :dosCleanup
- )
- exit /B 0
% cd curl/winbuild
% nmake /f Makefile.vc mode=dll WITH_MSH3=dll MSH3_PATH="C:/Program Files/msh3" MACHINE=x64
-**Note** - If you encounter a build error with `tool_hugehelp.c` being
-missing, rename `tool_hugehelp.c.cvs` in the same directory to
-`tool_hugehelp.c` and then run `nmake` again.
-
Run in the `C:/Program Files/msh3/lib` directory, copy `curl.exe` to that
directory, or copy `msquic.dll` and `msh3.dll` from that directory to the
`curl.exe` directory. For example:
# endif /* UNDER_CE */
#endif /* !CURL_OS */
-/* If you want to build curl with the built-in manual */
-#ifndef UNDER_CE
-#define USE_MANUAL 1
-#endif
-
/* ---------------------------------------------------------------- */
/* Windows CE */
/* ---------------------------------------------------------------- */
set(_curl_cfiles_gen "")
set(_curl_hfiles_gen "")
+set(_curl_definitions "")
if(ENABLE_CURL_MANUAL AND HAVE_MANUAL_TOOLS)
- add_definitions("-DUSE_MANUAL")
+ list(APPEND _curl_definitions "USE_MANUAL")
add_custom_command(
OUTPUT "tool_hugehelp.c"
COMMAND ${CMAKE_COMMAND} -E echo "#include \"tool_setup.h\"" > "tool_hugehelp.c"
"${CMAKE_CURRENT_SOURCE_DIR}/tool_hugehelp.h"
"${CURL_ASCIIPAGE}"
VERBATIM)
- list(APPEND _curl_cfiles_gen "tool_hugehelp.c")
- list(APPEND _curl_hfiles_gen "tool_hugehelp.h")
-else()
- add_custom_command(
- OUTPUT "tool_hugehelp.c"
- COMMAND ${CMAKE_COMMAND} -E echo "#include \"tool_hugehelp.h\"" > "tool_hugehelp.c"
- DEPENDS
- "${CMAKE_CURRENT_SOURCE_DIR}/tool_hugehelp.h"
- VERBATIM)
+ list(APPEND _curl_cfiles_gen "tool_hugehelp.c")
+ list(APPEND _curl_hfiles_gen "tool_hugehelp.h")
endif()
if(CURL_CA_EMBED_SET)
if(PERL_FOUND)
- add_definitions("-DCURL_CA_EMBED")
+ list(APPEND _curl_definitions "CURL_CA_EMBED")
add_custom_command(
OUTPUT "tool_ca_embed.c"
COMMAND "${PERL_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/mk-file-embed.pl" --var curl_ca_embed
${EXE_NAME}
${CURL_CFILES} ${_curl_cfiles_gen} ${CURLX_CFILES} ${CURL_HFILES} ${_curl_hfiles_gen}
)
+target_compile_definitions(${EXE_NAME} PRIVATE ${_curl_definitions})
add_executable(
${PROJECT_NAME}::${EXE_NAME}
HUGEIT_1 =
HUGEIT_ = $(HUGEIT_0)
+curl_CPPFLAGS = $(AM_CPPFLAGS)
+
if USE_MANUAL
# Here are the stuff to create a built-in manual
-AM_CPPFLAGS += -DUSE_MANUAL
+curl_CPPFLAGS += -DUSE_MANUAL
$(ASCIIPAGE):
cd $(top_builddir)/docs && $(MAKE)
curl_cfiles_gen += $(CA_EMBED_CSOURCE)
CLEANFILES += $(CA_EMBED_CSOURCE)
if CURL_CA_EMBED_SET
-AM_CPPFLAGS += -DCURL_CA_EMBED
+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)
/*
* NEVER EVER edit this manually, fix the mkhelp.pl script instead!
*/
-#ifdef USE_MANUAL
#include "tool_hugehelp.h"
+#ifdef USE_MANUAL
#include "tool_help.h"
HEAD
#include "tool_util.h"
#include "tool_version.h"
#include "tool_cb_prg.h"
-#ifndef UNITTESTS
#include "tool_hugehelp.h"
-#endif
#include "tool_getparam.h"
#include "terminal.h"
msnprintf(cmdbuf, sizeof(cmdbuf), "\n --no-%s", a->lname);
else
msnprintf(cmdbuf, sizeof(cmdbuf), "\n %s", category);
-#ifndef UNITTESTS
+#ifdef USE_MANUAL
if(a->cmd == C_XATTR)
/* this is the last option, which then ends when FILES starts */
showhelp("\nALL OPTIONS\n", cmdbuf, "\nFILES");
+++ /dev/null
-/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
- * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
- * are also available at https://curl.se/docs/copyright.html.
- *
- * You may opt to use, copy, modify, merge, publish, distribute and/or sell
- * copies of the Software, and permit persons to whom the Software is
- * furnished to do so, under the terms of the COPYING file.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- * SPDX-License-Identifier: curl
- *
- ***************************************************************************/
-
-#include "tool_setup.h"
-#include "tool_hugehelp.h"
-
-void hugehelp(void)
-{
- puts("built-in manual was disabled at build-time");
-}
-
-void showhelp(const char *trigger, const char *arg, const char *endarg)
-{
- (void)trigger;
- (void)arg;
- (void)endarg;
- hugehelp();
-}
***************************************************************************/
#include "tool_setup.h"
-void showhelp(const char *trigger, const char *arg, const char *endarg);
-
#ifdef USE_MANUAL
+void showhelp(const char *trigger, const char *arg, const char *endarg);
void hugehelp(void);
-#else
-/* do nothing if not there */
-#define hugehelp()
#endif
#endif /* HEADER_CURL_TOOL_HUGEHELP_H */
#include "tool_xattr.h"
#include "tool_vms.h"
#include "tool_help.h"
-#ifndef UNITTESTS
#include "tool_hugehelp.h"
-#endif
#include "tool_progress.h"
#include "tool_ipfs.h"
#include "dynbuf.h"
#include "memdebug.h" /* keep this as LAST include */
-#ifdef UNITTESTS
-#undef CURL_CA_EMBED
-#endif
-
#ifdef CURL_CA_EMBED
#ifndef CURL_DECLARED_CURL_CA_EMBED
#define CURL_DECLARED_CURL_CA_EMBED
tool_help(global->help_category);
/* Check if we were asked for the manual */
else if(res == PARAM_MANUAL_REQUESTED) {
-#ifndef UNITTESTS
+#ifdef USE_MANUAL
hugehelp();
+#else
+ puts("built-in manual was disabled at build-time");
#endif
}
/* Check if we were asked for the version information */
logit "copying files to build dir ...";
if ($^O eq 'MSWin32') {
system("xcopy /s /q \"$CURLDIR\" .");
- system("buildconf.bat");
}
elsif ($^O eq 'linux') {
system("cp -afr $CURLDIR/* .");
LIBCURL_OBJS=$(CSOURCES:.c=.obj)
!INCLUDE "../src/Makefile.inc"
-
-# tool_hugehelp has a special rule
-CURL_OBJS=$(CURL_CFILES:tool_hugehelp.c=)
-
-CURL_OBJS=$(CURL_OBJS:.c=.obj)
+CURL_OBJS=$(CURL_CFILES:.c=.obj)
# backwards compatible check for USE_SSPI
LIBCURL_SRC_DIR = ..\lib
CURL_SRC_DIR = ..\src
+!IF EXISTS($(CURL_SRC_DIR)\tool_hugehelp.c)
+USE_MANUAL = true
+CFLAGS = $(CFLAGS) /DUSE_MANUAL
+!ENDIF
+
!IFNDEF WITH_DEVEL
WITH_DEVEL = ../../deps
!ENDIF
!ENDIF
!ENDIF
-CURL_FROM_LIBCURL=$(CURL_DIROBJ)\tool_hugehelp.obj \
+CURL_FROM_LIBCURL=\
$(CURL_DIROBJ)\nonblock.obj \
$(CURL_DIROBJ)\strtoofft.obj \
$(CURL_DIROBJ)\warnless.obj \
$(CURL_DIROBJ)\dynbuf.obj \
$(CURL_DIROBJ)\base64.obj
+!IFDEF USE_MANUAL
+CURL_FROM_LIBCURL = $(CURL_FROM_LIBCURL) $(CURL_DIROBJ)\tool_hugehelp.obj
+!ENDIF
+
$(PROGRAM_NAME): $(CURL_DIROBJ) $(CURL_FROM_LIBCURL) $(EXE_OBJS)
$(CURL_LINK) $(CURL_LFLAGS) $(CURL_LIBCURL_LIBNAME) $(WIN_LIBS) $(CURL_FROM_LIBCURL) $(EXE_OBJS)
$(MANIFESTTOOL)
{$(CURL_SRC_DIR)\}.c{$(CURL_DIROBJ)\}.obj::
$(CURL_CC) $(CURL_CFLAGS) /Fo"$(CURL_DIROBJ)\\" $<
+!IFDEF USE_MANUAL
$(CURL_DIROBJ)\tool_hugehelp.obj: $(CURL_SRC_DIR)\tool_hugehelp.c
$(CURL_CC) $(CURL_CFLAGS) /Zm200 /Fo"$@" $(CURL_SRC_DIR)\tool_hugehelp.c
+!ENDIF
$(CURL_DIROBJ)\nonblock.obj: ../lib/nonblock.c
$(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/nonblock.c
$(CURL_DIROBJ)\strtoofft.obj: ../lib/strtoofft.c