Makefile.mk: portable Makefile.m32

Update bare GNU Make `Makefile.m32` to:

- Move objects into a subdirectory.
- Add support for MS-DOS. Tested with DJGPP.
- Add support for Watt-32 (on MS-DOS).
- Add support for AmigaOS.
- Rename `Makefile.m32` to `Makefile.mk`
- Replace `ARCH` with `TRIPLET`.
- Build `tool_hugehelp.c` proper (when tools are available).
- Drop MS-DOS compatibility macro `USE_ZLIB` (replaced by `HAVE_LIBZ`)
- Add support for `ZLIB_LIBS` to override `-lz`.
- Omit object files when building examples.
- Default `CC` to `gcc` once again, for convenience. (Caveat: compiler
  name `cc` cannot be set now.)
- Set `-DCURL_NO_OLDIES` for examples, like autotools does.
- Delete `makefile.dj` files. Notice the configuration details and
  defaults are not retained with the new method.
- Delete `makefile.amiga` files. A successful build needs a few custom
  options. We're also not retaining all build details from the existing
  Amiga make files.
- Rename `Makefile.m32` to `Makefile.mk` to reflect that they are not
  Windows/MinGW32-specific anymore.
- Add support for new `CFG` options: `-map`, `-debug`, `-trackmem`
- Set `-DNDEBUG` by default.
- Allow using `-DOS=...` in all `lib/config-*.h` headers, syncing this
  with `config-win32.h`.
- Look for zlib parts in `ZLIB_PATH/include` and `ZLIB_PATH/lib`
  instead of bare `ZLIB_PATH`.

Note that existing build configurations for MS-DOS and AmigaOS likely
become incompatible with this change.

Example AmigaOS configuration:
```
export CROSSPREFIX=/opt/amiga/bin/m68k-amigaos-
export CC=gcc
export CPPFLAGS='-DHAVE_PROTO_BSDSOCKET_H'
export CFLAGS='-mcrt=clib2'
export LDFLAGS="${CFLAGS}"
export LIBS='-lnet -lm'
make -C lib -f Makefile.mk
make -C src -f Makefile.mk
```

Example MS-DOS configuration:
```
export CROSSPREFIX=/opt/djgpp/bin/i586-pc-msdosdjgpp-
export WATT_PATH=/opt/djgpp/net/watt
export ZLIB_PATH=/opt/djgpp
export OPENSSL_PATH=/opt/djgpp
export OPENSSL_LIBS='-lssl -lcrypt'
export CFG=-zlib-ssl
make -C lib -f Makefile.mk
make -C src -f Makefile.mk
```

Closes #9764
This commit is contained in:
Viktor Szakats 2022-11-22 08:25:05 +00:00
Родитель 4a8b4a1b66
Коммит a8861b6ccd
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5ABD165E2AEF201
25 изменённых файлов: 326 добавлений и 715 удалений

2
.github/scripts/spellcheck.words поставляемый
Просмотреть файл

@ -160,6 +160,7 @@ dir
distro
distro's
distros
DJGPP
dlist
DLL
dll
@ -226,6 +227,7 @@ FreeDOS
FreeRTOS
freshmeat
Frexx
FS
fseek
FTPing
fuzzer

Просмотреть файл

@ -31,25 +31,25 @@ ssl:
make
mingw32:
$(MAKE) -C lib -f Makefile.m32
$(MAKE) -C src -f Makefile.m32
$(MAKE) -C lib -f Makefile.mk
$(MAKE) -C src -f Makefile.mk
mingw32-clean:
$(MAKE) -C lib -f Makefile.m32 clean
$(MAKE) -C src -f Makefile.m32 clean
$(MAKE) -C docs/examples -f Makefile.m32 clean
$(MAKE) -C lib -f Makefile.mk clean
$(MAKE) -C src -f Makefile.mk clean
$(MAKE) -C docs/examples -f Makefile.mk clean
mingw32-vclean mingw32-distclean:
$(MAKE) -C lib -f Makefile.m32 vclean
$(MAKE) -C src -f Makefile.m32 vclean
$(MAKE) -C docs/examples -f Makefile.m32 vclean
$(MAKE) -C lib -f Makefile.mk vclean
$(MAKE) -C src -f Makefile.mk vclean
$(MAKE) -C docs/examples -f Makefile.mk vclean
mingw32-examples%:
$(MAKE) -C docs/examples -f Makefile.m32 CFG=$@
$(MAKE) -C docs/examples -f Makefile.mk CFG=$@
mingw32%:
$(MAKE) -C lib -f Makefile.m32 CFG=$@
$(MAKE) -C src -f Makefile.m32 CFG=$@
$(MAKE) -C lib -f Makefile.mk CFG=$@
$(MAKE) -C src -f Makefile.mk CFG=$@
vc:
cd winbuild
@ -59,9 +59,9 @@ vc-x64:
cd winbuild
nmake /f Makefile.vc MACHINE=x64
djgpp:
$(MAKE) -C lib -f Makefile.dj
$(MAKE) -C src -f Makefile.dj
djgpp%:
$(MAKE) -C lib -f Makefile.mk CFG=$@ CROSSPREFIX=i586-pc-msdosdjgpp-
$(MAKE) -C src -f Makefile.mk CFG=$@ CROSSPREFIX=i586-pc-msdosdjgpp-
cygwin:
./configure
@ -71,9 +71,9 @@ cygwin-ssl:
./configure --with-openssl
make
amiga:
cd ./lib && make -f makefile.amiga
cd ./src && make -f makefile.amiga
amiga%:
$(MAKE) -C lib -f Makefile.mk CFG=$@ CROSSPREFIX=m68k-amigaos-
$(MAKE) -C src -f Makefile.mk CFG=$@ CROSSPREFIX=m68k-amigaos-
unix: all

Просмотреть файл

@ -182,7 +182,7 @@ make targets available to build libcurl with more features, use:
and SSPI support.
If you have any problems linking libraries or finding header files, be sure
to verify that the provided `Makefile.m32` files use the proper paths, and
to verify that the provided `Makefile.mk` files use the proper paths, and
adjust as necessary. It is also possible to override these paths with
environment variables, for example:
@ -210,7 +210,7 @@ set LDFLAGS=-Lc:/openldapsdk/lib/mscvc
set LIBS=-lldapsdk -lldapssl -lldapx
```
If you want to enable LDAPS support then set LDAPS=1.
If you want to enable LDAPS support then append `-ldaps` to the make target.
## Cygwin
@ -220,6 +220,30 @@ executable in `/bin/` or you will see the configure fail toward the end.
Run `make`
## MS-DOS
Requires DJGPP in the search path and pointing to the Watt-32 stack via
`WATT_PATH=c:/djgpp/net/watt`.
Run `make -f Makefile.dist djgpp` in the root curl dir.
For build configuration options, please see the MinGW32 section.
Notes:
- DJGPP 2.04 beta has a `sscanf()` bug so the URL parsing is not done
properly. Use DJGPP 2.03 until they fix it.
- Compile Watt-32 (and OpenSSL) with the same version of DJGPP. Otherwise
things go wrong because things like FS-extensions and `errno` values have
been changed between releases.
## AmigaOS
Run `make -f Makefile.dist amiga` in the root curl dir.
For build configuration options, please see the MinGW32 section.
## Disabling Specific Protocols in Windows builds
The configure utility, unfortunately, is not available for the Windows

Просмотреть файл

@ -24,8 +24,8 @@
AUTOMAKE_OPTIONS = foreign nostdinc
EXTRA_DIST = README.md Makefile.example Makefile.inc Makefile.m32 \
makefile.dj $(COMPLICATED_EXAMPLES) .checksrc
EXTRA_DIST = README.md Makefile.example Makefile.inc Makefile.mk \
$(COMPLICATED_EXAMPLES) .checksrc
# Specify our include paths here, and do it relative to $(top_srcdir) and
# $(top_builddir), to ensure that these paths which belong to the library

Просмотреть файл

@ -22,37 +22,53 @@
#
#***************************************************************************
# Build libcurl via lib/Makefile.m32 first.
# Build libcurl via lib/Makefile.mk first.
PROOT := ../..
LDFLAGS += -L$(PROOT)/lib
LIBS += -lcurl
ifeq ($(findstring -static,$(CFG)),)
curl_DEPENDENCIES += $(PROOT)/lib/libcurl.dll.a
DYN := 1
else
curl_DEPENDENCIES := $(PROOT)/lib/libcurl.a
CPPFLAGS += -DCURL_STATICLIB
LDFLAGS += -static
endif
LIBS += -lws2_32
### Common
include $(PROOT)/lib/Makefile.mk
### Local
CPPFLAGS += -DCURL_NO_OLDIES
LDFLAGS += -L$(PROOT)/lib
LIBS := -lcurl $(LIBS)
ifdef DYN
curl_DEPENDENCIES += $(PROOT)/lib/libcurl.dll.a
else
curl_DEPENDENCIES := $(PROOT)/lib/libcurl.a
ifdef WIN32
CPPFLAGS += -DCURL_STATICLIB
LDFLAGS += -static
endif
endif
ifdef WIN32
LIBS += -lws2_32
endif
### Sources and targets
# Provides check_PROGRAMS
include Makefile.inc
TARGETS := $(patsubst %,%.exe,$(strip $(check_PROGRAMS) synctime))
TOCLEAN := $(TARGETS:.exe=.o)
ifdef WIN32
check_PROGRAMS += synctime
endif
### Local rules
TARGETS := $(patsubst %,%$(BIN_EXT),$(strip $(check_PROGRAMS)))
TOCLEAN := $(TARGETS)
%.exe: %.o $(curl_DEPENDENCIES)
$(CC) $(LDFLAGS) $(CURL_LDFLAGS_BIN) -o $@ $< $(LIBS)
### Rules
### Global script
%$(BIN_EXT): %.c $(curl_DEPENDENCIES)
$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(CURL_LDFLAGS_BIN) $< -o $@ $(LIBS)
include $(PROOT)/lib/Makefile.m32
all: $(TARGETS)

Просмотреть файл

@ -1,57 +0,0 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2022, 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
#
###########################################################################
TOPDIR = ../..
include $(TOPDIR)/packages/DOS/common.dj
CFLAGS += -DFALSE=0 -DTRUE=1
LIBS = $(TOPDIR)/lib/libcurl.a
ifeq ($(USE_SSL),1)
LIBS += $(OPENSSL_ROOT)/lib/libssl.a $(OPENSSL_ROOT)/lib/libcrypt.a
endif
ifeq ($(USE_IDNA),1)
LIBS += $(LIBIDN_ROOT)/lib/dj_obj/libidn.a -liconv
endif
LIBS += $(WATT32_ROOT)/lib/libwatt.a $(ZLIB_ROOT)/libz.a
include Makefile.inc
PROGRAMS = $(patsubst %,%.exe,$(check_PROGRAMS))
all: $(PROGRAMS)
@echo Welcome to libcurl example program
%.exe: %.c
$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
@echo
clean vclean realclean:
- rm -f $(PROGRAMS) depend.dj
-include depend.dj

Просмотреть файл

@ -25,9 +25,9 @@ AUTOMAKE_OPTIONS = foreign nostdinc
CMAKE_DIST = CMakeLists.txt curl_config.h.cmake
EXTRA_DIST = Makefile.m32 config-win32.h config-win32ce.h config-plan9.h \
config-riscos.h config-mac.h curl_config.h.in makefile.dj config-dos.h \
libcurl.plist libcurl.rc config-amigaos.h makefile.amiga config-win32ce.h \
EXTRA_DIST = Makefile.mk config-win32.h config-win32ce.h config-plan9.h \
config-riscos.h config-mac.h curl_config.h.in config-dos.h \
libcurl.plist libcurl.rc config-amigaos.h config-win32ce.h \
config-os400.h setup-os400.h $(CMAKE_DIST) setup-win32.h .checksrc
lib_LTLIBRARIES = libcurl.la

Просмотреть файл

@ -22,89 +22,96 @@
#
#***************************************************************************
# Makefile for building curl parts with MinGW and optional features.
# Makefile to build curl parts with GCC-like toolchains and optional features.
#
# Usage: mingw32-make -f Makefile.m32 CFG=-feature1[-feature2][-feature3][...]
# Example: mingw32-make -f Makefile.m32 CFG=-zlib-ssl-sspi-winidn
# Usage: [mingw32-]make -f Makefile.mk CFG=-feat1[-feat2][-feat3][...]
# Example: [mingw32-]make -f Makefile.mk CFG=-zlib-ssl-libssh2-ipv6
#
# Set component roots via envvar <feature>_PATH. Also available for
# customization: CC, RC, AR, CPPFLAGS, LDFLAGS, LIBS, CFLAGS, RCFLAGS,
# ARCH[=custom], CROSSPREFIX, CURL_LDFLAGS_BIN, CURL_LDFLAGS_LIB, CURL_DLL_SUFFIX,
# customization: CC, AR, RC, CPPFLAGS, LDFLAGS, LIBS, CFLAGS, RCFLAGS,
# TRIPLET, CROSSPREFIX, CURL_LDFLAGS_BIN, CURL_LDFLAGS_LIB, CURL_DLL_SUFFIX,
# and more for individual components (see below).
# This script is reused by 'src' and 'docs/examples' Makefile.m32 scripts.
# Skip lib-specific parts when called through them.
# This script is reused by 'src' and 'docs/examples' Makefile.mk scripts.
ifndef PROOT
PROOT := ..
PROOT := ..
LOCAL := 1
endif
CPPFLAGS += -DBUILDING_LIBCURL
### Common
### Sources and targets
ifeq ($(CC),cc)
CC := gcc
endif
CC := $(CROSSPREFIX)$(CC)
AR := $(CROSSPREFIX)$(AR)
RC ?= $(CROSSPREFIX)windres
# Provides CSOURCES, HHEADERS, LIB_RCFILES
include Makefile.inc
# For compatibility
ifeq ($(ARCH),w64)
TRIPLET := x86_64-w64-mingw32
CFLAGS += -m64
LDFLAGS += -m64
RCFLAGS += --target=pe-x86-64
else ifdef ARCH
TRIPLET := i686-w64-mingw32
CFLAGS += -m32
LDFLAGS += -m32
RCFLAGS += --target=pe-i386
else
TRIPLET ?= $(shell $(CC) -dumpmachine)
endif
libcurl_dll_LIBRARY := libcurl$(CURL_DLL_SUFFIX).dll
libcurl_dll_a_LIBRARY := libcurl.dll.a
libcurl_a_LIBRARY := libcurl.a
BIN_EXT := .exe
TARGETS := $(libcurl_a_LIBRARY) $(libcurl_dll_LIBRARY)
libcurl_a_OBJECTS := $(patsubst %.c,%.o,$(notdir $(strip $(CSOURCES))))
libcurl_a_DEPENDENCIES := $(strip $(CSOURCES) $(HHEADERS))
libcurl_dll_OBJECTS := $(libcurl_a_OBJECTS)
libcurl_dll_OBJECTS += $(patsubst %.rc,%.res,$(strip $(LIB_RCFILES)))
vpath %.c vauth vquic vssh vtls
TOCLEAN := $(libcurl_dll_OBJECTS)
TOVCLEAN := $(libcurl_dll_LIBRARY:.dll=.def) $(libcurl_dll_a_LIBRARY)
### Local rules
# Keep this at the top to act as the default target.
all: $(TARGETS)
$(libcurl_a_LIBRARY): $(libcurl_a_OBJECTS) $(libcurl_a_DEPENDENCIES)
@$(call DEL, $@)
$(AR) rcs $@ $(libcurl_a_OBJECTS)
$(libcurl_dll_LIBRARY): $(libcurl_dll_OBJECTS)
$(CC) $(LDFLAGS) -shared $(CURL_LDFLAGS_LIB) -o $@ $(libcurl_dll_OBJECTS) $(LIBS) \
-Wl,--output-def,$(@:.dll=.def),--out-implib,$(libcurl_dll_a_LIBRARY)
ifneq ($(findstring -w,$(TRIPLET)),)
WIN32 := 1
else ifneq ($(findstring msdos,$(TRIPLET)),)
# Cross-tools: https://github.com/andrewwutw/build-djgpp
MSDOS := 1
else ifneq ($(findstring amigaos,$(TRIPLET)),)
# Cross-tools: https://github.com/bebbo/amiga-gcc
AMIGA := 1
endif
CPPFLAGS += -I. -I$(PROOT)/include
RCFLAGS += -I$(PROOT)/include
CC := $(CROSSPREFIX)$(CC)
AR := $(CROSSPREFIX)$(AR)
RC ?= $(CROSSPREFIX)windres
ifndef WIN32
DYN :=
endif
ifneq ($(ARCH),custom)
# Set environment var ARCH to your architecture to override auto-detection.
ifndef ARCH
ifneq ($(findstring x86_64,$(shell $(CC) -dumpmachine)),)
ARCH := w64
else
ARCH := w32
endif
endif
ifeq ($(ARCH),w64)
CFLAGS += -m64
LDFLAGS += -m64
RCFLAGS += --target=pe-x86-64
else
CFLAGS += -m32
LDFLAGS += -m32
RCFLAGS += --target=pe-i386
endif
ifdef AMIGA
BIN_EXT :=
endif
### Deprecated settings. For compatibility.
ifdef WATT_ROOT
WATT_PATH := $(realpath $(WATT_ROOT))
endif
### Optional features
ifneq ($(findstring -unicode,$(CFG)),)
CPPFLAGS += -DUNICODE -D_UNICODE
CURL_LDFLAGS_BIN += -municode
ifneq ($(findstring -debug,$(CFG)),)
CPPFLAGS += -DDEBUGBUILD
LDFLAGS += -g
else
CPPFLAGS += -DNDEBUG
endif
ifneq ($(findstring -trackmem,$(CFG)),)
CPPFLAGS += -DCURLDEBUG
endif
ifneq ($(findstring -map,$(CFG)),)
MAP := 1
endif
ifdef WIN32
ifneq ($(findstring -unicode,$(CFG)),)
CPPFLAGS += -DUNICODE -D_UNICODE
CURL_LDFLAGS_BIN += -municode
endif
endif
# CPPFLAGS below are only necessary when building libcurl via 'lib' (see
@ -139,7 +146,9 @@ ifneq ($(findstring -ssh2,$(CFG)),)
CPPFLAGS += -DUSE_LIBSSH2
CPPFLAGS += -I"$(LIBSSH2_PATH)/include"
_LDFLAGS += -L"$(LIBSSH2_PATH)/lib"
_LDFLAGS += -L"$(LIBSSH2_PATH)/win32"
ifdef WIN32
_LDFLAGS += -L"$(LIBSSH2_PATH)/win32"
endif
_LIBS += -lssh2
else ifneq ($(findstring -libssh,$(CFG)),)
LIBSSH_PATH ?= $(PROOT)/../libssh
@ -232,9 +241,11 @@ ifneq ($(findstring -zlib,$(CFG))$(ZLIB),)
ZLIB_PATH ?= $(PROOT)/../zlib
# These CPPFLAGS are also required when compiling the curl tool via 'src'.
CPPFLAGS += -DHAVE_LIBZ
CPPFLAGS += -I"$(ZLIB_PATH)"
_LDFLAGS += -L"$(ZLIB_PATH)"
_LIBS += -lz
CPPFLAGS += -I"$(ZLIB_PATH)/include"
_LDFLAGS += -L"$(ZLIB_PATH)/lib"
ZLIB_LIBS ?= -lz
_LIBS += $(ZLIB_LIBS)
ZLIB := 1
endif
ifneq ($(findstring -zstd,$(CFG)),)
ZSTD_PATH ?= $(PROOT)/../zstd
@ -280,7 +291,9 @@ else ifneq ($(findstring -winidn,$(CFG)),)
endif
ifneq ($(findstring -sspi,$(CFG)),)
CPPFLAGS += -DUSE_WINDOWS_SSPI
ifdef WIN32
CPPFLAGS += -DUSE_WINDOWS_SSPI
endif
endif
ifneq ($(findstring -ipv6,$(CFG)),)
CPPFLAGS += -DENABLE_IPV6
@ -289,10 +302,19 @@ ifneq ($(findstring -ldaps,$(CFG)),)
CPPFLAGS += -DHAVE_LDAP_SSL
endif
ifeq ($(findstring -lldap,$(LIBS)),)
_LIBS += -lwldap32
ifneq ($(findstring -watt,$(CFG))$(MSDOS),)
WATT_PATH ?= $(PROOT)/../watt
CPPFLAGS += -I"$(WATT_PATH)/inc"
_LDFLAGS += -L"$(WATT_PATH)/lib"
_LIBS += -lwatt
endif
ifdef WIN32
ifeq ($(findstring -lldap,$(LIBS)),)
_LIBS += -lwldap32
endif
_LIBS += -lws2_32 -lcrypt32 -lbcrypt
endif
_LIBS += -lws2_32 -lcrypt32 -lbcrypt
ifneq ($(findstring 11,$(subst $() ,,$(SSLLIBS))),)
CPPFLAGS += -DCURL_WITH_MULTI_SSL
@ -303,26 +325,86 @@ ifndef DYN
LIBS += $(_LIBS)
endif
### Global rules
### Common rules
OBJ_DIR := $(TRIPLET)
ifneq ($(findstring /sh,$(SHELL)),)
DEL = rm -f $1
COPY = -cp -afv $1 $2
DEL = rm -f $1
COPY = -cp -afv $1 $2
MKDIR = mkdir -p $1
RMDIR = rm -fr $1
WHICH = command -v
else
DEL = -del 2>NUL /q /f $(subst /,\,$1)
COPY = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
DEL = -del 2>NUL /q /f $(subst /,\,$1)
COPY = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
MKDIR = -md 2>NUL $(subst /,\,$1)
RMDIR = -rd 2>NUL /q /s $(subst /,\,$1)
WHICH = where
endif
all: $(TARGETS)
%.o: %.c
$(CC) -W -Wall $(CFLAGS) $(CPPFLAGS) -c $<
$(OBJ_DIR):
-$(MKDIR) $(OBJ_DIR)
%.res: %.rc
$(OBJ_DIR)/%.o: %.c
$(CC) -W -Wall $(CFLAGS) $(CPPFLAGS) -c $< -o $@
$(OBJ_DIR)/%.res: %.rc
$(RC) -O coff $(RCFLAGS) -i $< -o $@
clean:
@$(call DEL, $(TOCLEAN))
@$(RMDIR) $(OBJ_DIR)
distclean vclean: clean
@$(call DEL, $(TARGETS) $(TOVCLEAN))
### Local
ifdef LOCAL
CPPFLAGS += -DBUILDING_LIBCURL
### Sources and targets
# Provides CSOURCES, HHEADERS, LIB_RCFILES
include Makefile.inc
vpath %.c vauth vquic vssh vtls
libcurl_a_LIBRARY := libcurl.a
ifdef WIN32
libcurl_dll_LIBRARY := libcurl$(CURL_DLL_SUFFIX).dll
libcurl_dll_a_LIBRARY := libcurl.dll.a
ifdef MAP
libcurl_map_LIBRARY := libcurl$(CURL_DLL_SUFFIX).map
CURL_LDFLAGS_LIB += -Wl,-Map,$(libcurl_map_LIBRARY)
endif
endif
TARGETS := $(libcurl_a_LIBRARY) $(libcurl_dll_LIBRARY)
libcurl_a_OBJECTS := $(patsubst %.c,$(OBJ_DIR)/%.o,$(notdir $(strip $(CSOURCES))))
libcurl_a_DEPENDENCIES := $(strip $(CSOURCES) $(HHEADERS))
ifdef WIN32
libcurl_dll_OBJECTS := $(libcurl_a_OBJECTS)
libcurl_dll_OBJECTS += $(patsubst %.rc,$(OBJ_DIR)/%.res,$(strip $(LIB_RCFILES)))
endif
TOCLEAN := $(libcurl_dll_OBJECTS)
TOVCLEAN := $(libcurl_dll_LIBRARY:.dll=.def) $(libcurl_dll_a_LIBRARY) $(libcurl_map_LIBRARY)
### Rules
$(libcurl_a_LIBRARY): $(libcurl_a_OBJECTS) $(libcurl_a_DEPENDENCIES)
@$(call DEL, $@)
$(AR) rcs $@ $(libcurl_a_OBJECTS)
$(libcurl_dll_LIBRARY): $(libcurl_dll_OBJECTS)
$(CC) $(LDFLAGS) -shared $(CURL_LDFLAGS_LIB) -o $@ $(libcurl_dll_OBJECTS) $(LIBS) \
-Wl,--output-def,$(@:.dll=.def),--out-implib,$(libcurl_dll_a_LIBRARY)
all: $(OBJ_DIR) $(TARGETS)
endif

Просмотреть файл

@ -78,7 +78,9 @@
#define USE_MANUAL 1
#define CURL_DISABLE_LDAP 1
#ifndef OS
#define OS "AmigaOS"
#endif
#define PACKAGE "curl"
#define PACKAGE_BUGREPORT "a suitable mailing list: https://curl.se/mail/"

Просмотреть файл

@ -29,6 +29,7 @@
/* lib/config-dos.h - Hand crafted config file for DOS */
/* ================================================================ */
#ifndef OS
#if defined(DJGPP)
#define OS "MSDOS/djgpp"
#elif defined(__HIGHC__)
@ -36,9 +37,12 @@
#else
#define OS "MSDOS/?"
#endif
#endif
#define PACKAGE "curl"
#define USE_MANUAL 1
#define HAVE_ARPA_INET_H 1
#define HAVE_ASSERT_H 1
#define HAVE_ERRNO_H 1
@ -104,10 +108,6 @@
/* CURLDEBUG definition enables memory tracking */
/* #define CURLDEBUG */
#ifdef USE_ZLIB /* Deprecated. Use HAVE_LIBZ instead. */
#define HAVE_LIBZ 1
#endif
/* to disable LDAP */
#define CURL_DISABLE_LDAP 1

Просмотреть файл

@ -30,7 +30,9 @@
/* On Mac OS X you must run configure to generate curl_config.h file */
/* =================================================================== */
#ifndef OS
#define OS "mac"
#endif
/* Define if you want the built-in manual */
#define USE_MANUAL 1

Просмотреть файл

@ -36,7 +36,9 @@
#undef VERSION
/* Define cpu-machine-OS */
#ifndef OS
#define OS "OS/400"
#endif
/* OS400 supports a 3-argument ASCII version of gethostbyaddr_r(), but its
* prototype is incompatible with the "standard" one (1st argument is not

Просмотреть файл

@ -32,7 +32,9 @@
#define CURL_DISABLE_LDAP 1
#define NEED_REENTRANT 1
#ifndef OS
#define OS "plan9"
#endif
#define PACKAGE "curl"
#define PACKAGE_NAME "curl"
#define PACKAGE_BUGREPORT "a suitable mailing list: https://curl.se/mail/"

Просмотреть файл

@ -35,7 +35,9 @@
#undef VERSION
/* Define cpu-machine-OS */
#ifndef OS
#define OS "ARM-RISC OS"
#endif
/* Define if you want the built-in manual */
#define USE_MANUAL

Просмотреть файл

@ -635,7 +635,7 @@ Vista
/* ---------------------------------------------------------------- */
/* Define cpu-machine-OS */
#if !defined(OS)
#ifndef OS
#if defined(_M_IX86) || defined(__i386__) /* x86 (MSVC or gcc) */
#define OS "i386-pc-win32"
#elif defined(_M_X64) || defined(__x86_64__) /* x86_64 (MSVC >=2005 or gcc) */

Просмотреть файл

@ -302,8 +302,9 @@
/* ---------------------------------------------------------------- */
/* Define cpu-machine-OS */
#undef OS
#ifndef OS
#define OS "i386-pc-win32ce"
#endif
/* Name of package */
#define PACKAGE "curl"

Просмотреть файл

@ -112,6 +112,10 @@
# include "config-plan9.h"
#endif
#ifdef MSDOS
# include "config-dos.h"
#endif
#endif /* HAVE_CONFIG_H */
/* ================================================================ */

Просмотреть файл

@ -1,44 +0,0 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2022, 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
#
###########################################################################
#
# libcurl Makefile for AmigaOS ...
#
# change the follow to where you have the AmiTCP SDK v4.3 includes:
ATCPSDKI= /GG/netinclude
CC = m68k-amigaos-gcc
CFLAGS = -I$(ATCPSDKI) -m68020-60 -O2 -msoft-float -noixemul -g -I. -I../include -W -Wall -DUSE_OPENSSL -DHAVE_LIBZ
include Makefile.inc
OBJS = $(CSOURCES:.c=.o)
all: $(OBJS)
ar cru libcurl.a $(OBJS)
ranlib libcurl.a
install:
$(INSTALL) -c ./libcurl.a /lib/libcurl.a

Просмотреть файл

@ -1,73 +0,0 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 2003 - 2022, Gisle Vanem <gvanem@yahoo.no>.
# Copyright (C) 2003 - 2020, 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
#
#***************************************************************************
#
# Adapted for djgpp2 / Watt-32 / DOS
#
DEPEND_PREREQ = curl_config.h
VPATH = vtls vauth vquic vssh
TOPDIR = ..
include ../packages/DOS/common.dj
include Makefile.inc
CFLAGS += -DBUILDING_LIBCURL
SOURCES = $(sort $(CSOURCES))
OBJECTS = $(addprefix $(OBJ_DIR)/, $(notdir $(SOURCES:.c=.o)))
CURL_LIB = libcurl.a
all: $(OBJ_DIR) curl_config.h $(CURL_LIB)
$(CURL_LIB): $(OBJECTS)
ar rs $@ $?
curl_config.h: config-dos.h
$(COPY) $^ $@
# clean generated files
#
genclean:
- $(DELETE) curl_config.h
# clean object files and subdir
#
objclean: genclean
- $(DELETE) $(OBJ_DIR)$(DS)*.o
- $(RMDIR) $(OBJ_DIR)
# clean without removing built library
#
clean: objclean
- $(DELETE) depend.dj
# clean everything
#
realclean vclean: clean
- $(DELETE) $(CURL_LIB)
-include depend.dj

Просмотреть файл

@ -1,17 +0,0 @@
Gisle Vanem made curl build fine on DOS (and MinGW) with djgpp, OpenSSL and his
Watt-32 stack.
'make -f Makefile.dist djgpp' in the root curl dir should build it fine.
Or enter 'lib' and do a 'make -f Makefile.dj clean all' to first delete
'lib/curl_config.h' which is possibly from a previous incompatible Windows-build.
Note 1: djgpp 2.04 beta has a sscanf() bug so the URL parsing isn't
done properly. Use djgpp 2.03 until they fix it.
Note 2: Compile Watt-32 (and OpenSSL) with the same version of djgpp.
Otherwise things go wrong because things like FS-extensions and
errnos have been changed between releases.
Note 3: Several 'USE_x' variables in 'common.dj' are on the 'USE_x ?= 0'
form (conditional variable assignment). So one can build like this:
c:\curl\lib> make -f makefile.dj USE_OPENSSL=1 USE_ZLIB=1 clean all

Просмотреть файл

@ -1,223 +0,0 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2022, 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
#
###########################################################################
#
# Common defines for curl (djgpp/Watt-32)
#
# Assumes you've unpacked curl with long-file names
# I.e use "set LFN=y" before untaring on Win9x/XP.
# Requires sed, rm and the usual stuff.
#
# Define TOPDIR before including this file.
MAKEFILE = Makefile.dj
OBJ_DIR = djgpp
#
# Find out if using a Unix-like shell or a DOS command interpreter
#
ifneq ($(findstring COMMAND.COM,$(SHELL)),COMMAND.COM)
ifneq ($(findstring CMD.EXE,$(SHELL)),CMD.EXE)
ifneq ($(findstring 4DOS.COM,$(SHELL)),4DOS.COM)
IS_UNIX_SHELL = 1
endif
endif
endif
#
# Define shell dependent commands and vars
#
ifeq ($(IS_UNIX_SHELL),1)
COPY = cp -f
DELETE = rm -f
MKDIR = mkdir
RMDIR = rm -f -r
DS = /
else
COPY = copy
DELETE = del
MKDIR = mkdir
RMDIR = rmdir
DS = \$(NOTHING)
endif
ifeq ($(OS),Windows_NT)
#
# Windows hosted djgpp cross compiler. Get it from:
# https://github.com/andrewwutw/build-djgpp/releases
#
DJ_PREFIX ?= c:/some-path/djgpp/bin/i586-pc-msdosdjgpp-
CC = $(DJ_PREFIX)gcc
else
#
# The normal djgpp 'gcc' for MSDOS.
#
CC = gcc
endif
#
# OpenSSL is available from www.openssl.org and builds okay
# with djgpp/Watt-32. Set to 0 if you don't need https URLs
# (reduces curl.exe with approx 700 kB)
#
USE_OPENSSL ?= 0
#
# Use zlib for contents encoding. Needed for 'USE_OPENSSL=1' too.
#
USE_ZLIB ?= 0
#
# Use libidn for international domain names
#
USE_IDNA ?= 0
#
# Use Watt-32 IPv6 stack (only IPv6 name resolution working at the moment)
#
USE_IPV6 ?= 0
#
# Use C-Ares resolver library
#
USE_ARES ?= 0
#
# Enable debug code in libcurl/curl
#
USE_DEBUG ?= 0
#
# Enable memory tracking code in libcurl/curl
#
USE_CURLDEBUG ?= 0
#
# Generate a .map file in 'link_EXE' macro
#
MAKE_MAP_FILE ?= 0
default: all
#
# Root directory for Waterloo tcp/ip etc. Change to suite.
# WATT_ROOT should be set during Watt-32 install.
#
WATT32_ROOT = $(realpath $(WATT_ROOT))
OPENSSL_ROOT ?= $(TOPDIR)/../crypto/OpenSSL
ZLIB_ROOT ?= e:/djgpp/contrib/zlib
LIBIDN_ROOT ?= $(TOPDIR)/../IDN/libidn
ARES_ROOT ?= $(TOPDIR)/../DNS/c-ares
CFLAGS = -g -O2 -I. -I$(TOPDIR)/include -I$(TOPDIR)/lib \
-I$(WATT32_ROOT)/inc -Wall -DHAVE_CONFIG_H
ifeq ($(USE_OPENSSL),1)
CFLAGS += -DUSE_OPENSSL -I$(OPENSSL_ROOT)/include
#
# Squelch the warnings on deprecated functions.
#
CFLAGS += -DOPENSSL_SUPPRESS_DEPRECATED
#
# Use some of these too?
#
# CFLAGS += -DUSE_TLS_SRP=1 \
# -DHAVE_ENGINE_LOAD_BUILTIN_ENGINES \
# -DHAVE_SSLV2_CLIENT_METHOD \
# -DOPENSSL_NO_DEPRECATED
#
# 'libcomm.a' is normally 'libcommon.a'. But to keep it 8+3 clean, it's
# shortened to 'libcomm.a'. The official OpenSSL build was recently changed
# and this "Common" library was added for several of the Crypto Providers.
#
OPENSSL_LIBS = $(OPENSSL_ROOT)/lib/libssl.a \
$(OPENSSL_ROOT)/lib/libcrypt.a \
$(OPENSSL_ROOT)/lib/libcomm.a
endif
ifeq ($(USE_ZLIB),1)
CFLAGS += -DHAVE_LIBZ -I$(ZLIB_ROOT)
endif
ifeq ($(USE_IPV6),1)
CFLAGS += -DENABLE_IPV6
endif
ifeq ($(USE_ARES),1)
CFLAGS += -DUSE_ARES -I$(ARES_ROOT)/include
endif
ifeq ($(USE_IDNA),1)
CFLAGS += -DHAVE_LIBIDN -I$(LIBIDN_ROOT)/lib
endif
ifeq ($(USE_DEBUG),1)
CFLAGS += -DDEBUG=1 -DDEBUGBUILD
endif
ifeq ($(USE_CURLDEBUG),1)
CFLAGS += -DCURLDEBUG
endif
$(OBJ_DIR):
$(MKDIR) $(OBJ_DIR)
$(OBJ_DIR)/%.o: %.c
$(CC) $(CFLAGS) -o $@ -c $<
@echo
#
# Link-EXE macro:
# $(1): the .exe
# $(2): the .o-files and libraries
#
ifeq ($(MAKE_MAP_FILE),1)
define link_EXE
$(CC) -o $(1) $(LDFLAGS) -Wl,--print-map,--sort-common $(2) > $(1:.exe=.map)
endef
else
define link_EXE
$(CC) $(LDFLAGS) -o $(1) $(2)
endef
endif
$(TOPDIR)/docs/curl.1: $(wildcard $(TOPDIR)/docs/cmdline-opts/*.d)
cd $(TOPDIR)/docs/cmdline-opts; \
perl gen.pl mainpage > ../$(TOPDIR)/docs/curl.1
DEP_REPLACE = sed -e 's@\(.*\)\.o: @\n$$(OBJ_DIR)\/\1.o: @' \
-e 's@$(ARES_ROOT)@$$(ARES_ROOT)@g' \
-e 's@$(OPENSSL_ROOT)@$$(OPENSSL_ROOT)@g' \
-e 's@$(WATT32_ROOT)@$$(WATT32_ROOT)@g' \
-e 's@$(ZLIB_ROOT)@$$(ZLIB_ROOT)@g'
#
# One may have to do 'make -f Makefile.dj clean' first in case
# a foreign 'curl_config.h' is making trouble.
#
depend: $(DEPEND_PREREQ) $(MAKEFILE)
$(CC) -MM $(CFLAGS) $(CSOURCES) | $(DEP_REPLACE) > depend.dj

Просмотреть файл

@ -87,8 +87,8 @@ CLEANFILES = tool_hugehelp.c
# embedded text.
NROFF=env LC_ALL=C @NROFF@ @MANOPT@ # figured out by the configure script
EXTRA_DIST = mkhelp.pl makefile.dj \
Makefile.m32 makefile.amiga curl.rc Makefile.inc CMakeLists.txt
EXTRA_DIST = mkhelp.pl \
Makefile.mk curl.rc Makefile.inc CMakeLists.txt
# Use absolute directory to disable VPATH
MANPAGE=$(abs_top_builddir)/docs/curl.1

Просмотреть файл

@ -22,23 +22,36 @@
#
#***************************************************************************
# See usage in lib/Makefile.m32
# See usage in lib/Makefile.mk
PROOT := ..
### Common
include $(PROOT)/lib/Makefile.mk
### Local
RCFLAGS += -DCURL_EMBED_MANIFEST
CPPFLAGS += -I$(PROOT)/lib
LDFLAGS += -L$(PROOT)/lib
LIBS += -lcurl
LIBS := -lcurl $(LIBS)
ifneq ($(findstring -dyn,$(CFG)),)
ifdef WIN32
ifneq ($(findstring -dyn,$(CFG)),)
DYN := 1
endif
endif
ifdef DYN
curl_DEPENDENCIES := $(PROOT)/lib/libcurl$(CURL_DLL_SUFFIX).dll
curl_DEPENDENCIES += $(PROOT)/lib/libcurl.dll.a
DYN := 1
else
curl_DEPENDENCIES := $(PROOT)/lib/libcurl.a
CPPFLAGS += -DCURL_STATICLIB
LDFLAGS += -static
ifdef WIN32
CPPFLAGS += -DCURL_STATICLIB
LDFLAGS += -static
endif
endif
### Sources and targets
@ -46,27 +59,53 @@ endif
# Provides CURL_CFILES, CURLX_CFILES, CURL_RCFILES
include Makefile.inc
TARGETS := curl.exe
TARGETS := curl$(BIN_EXT)
curl_OBJECTS := $(patsubst %.c,%.o,$(strip $(CURL_CFILES)))
curl_OBJECTS += $(patsubst %.c,%.o,$(notdir $(strip $(CURLX_CFILES))))
curl_OBJECTS += $(patsubst %.rc,%.res,$(strip $(CURL_RCFILES)))
CURL_CFILES += $(notdir $(CURLX_CFILES))
curl_OBJECTS := $(patsubst %.c,$(OBJ_DIR)/%.o,$(strip $(CURL_CFILES)))
ifdef WIN32
curl_OBJECTS += $(patsubst %.rc,$(OBJ_DIR)/%.res,$(strip $(CURL_RCFILES)))
endif
ifdef MAP
CURL_MAP := curl.map
CURL_LDFLAGS_BIN += -Wl,-Map,$(CURL_MAP)
TOVCLEAN := $(CURL_MAP)
endif
vpath %.c $(PROOT)/lib
TOCLEAN := $(curl_OBJECTS)
ifneq ($(wildcard tool_hugehelp.c.cvs),)
TOCLEAN += tool_hugehelp.c
endif
### Local rules
### Rules
ifneq ($(wildcard tool_hugehelp.c.cvs),)
PERL ?= perl
NROFF ?= groff
TOCLEAN += tool_hugehelp.c
ifneq ($(shell $(WHICH) $(NROFF)),)
$(PROOT)/docs/curl.1: $(wildcard $(PROOT)/docs/cmdline-opts/*.d)
cd $(PROOT)/docs/cmdline-opts && \
$(PERL) gen.pl mainpage $(notdir $^) > ../curl.1
# Necessary for the generated tools_hugehelp.c
CPPFLAGS += -DUSE_MANUAL
ifdef ZLIB
_MKHELPOPT += -c
endif
tool_hugehelp.c: $(PROOT)/docs/curl.1 mkhelp.pl
$(NROFF) -man -Tascii $(MANOPT) $< | \
$(PERL) mkhelp.pl $(_MKHELPOPT) $< > $@
else
tool_hugehelp.c:
@echo Creating $@
@$(call COPY, $@.cvs, $@)
endif
endif
$(TARGETS): $(curl_OBJECTS) $(curl_DEPENDENCIES)
$(CC) $(LDFLAGS) $(CURL_LDFLAGS_BIN) -o $@ $(curl_OBJECTS) $(LIBS)
tool_hugehelp.c:
@echo Creating $@
@$(call COPY, $@.cvs, $@)
### Global script
include $(PROOT)/lib/Makefile.m32
all: $(OBJ_DIR) $(TARGETS)

Просмотреть файл

@ -1,52 +0,0 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2022, 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
#
###########################################################################
#
# curl Makefile for AmigaOS ...
#
# change the follow to where you have the AmiTCP SDK v4.3 includes:
ATCPSDKI= /GG/netinclude
CC = m68k-amigaos-gcc
CFLAGS = -I$(ATCPSDKI) -m68020-60 -O2 -msoft-float -noixemul -g -I. -I../include -W -Wall -DUSE_OPENSSL -DHAVE_LIBZ
LIBS = ../lib/libcurl.a -lssl -lcrypto -lz
MANPAGE = ../docs/curl.1
README = ../docs/MANUAL
MKHELP = ../src/mkhelp.pl
include Makefile.inc
OBJS = $(CURL_CFILES:.c=.o) $(CURLX_CFILES:.c=.o)
all: tool_hugehelp.c $(OBJS)
$(CC) $(CFLAGS) -o curl $(OBJS) $(LIBS) -Wl,-Map,curl.map,--cref
tool_hugehelp.c: $(README) $(MANPAGE) mkhelp.pl
rm -f tool_hugehelp.c
/bin/nroff -man $(MANPAGE) | /bin/perl $(MKHELP) -c $(README) > tool_hugehelp.c
install:
$(INSTALL) -c curl /c/curl

Просмотреть файл

@ -1,101 +0,0 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 2003 - 2022, Gisle Vanem <gvanem@yahoo.no>.
# Copyright (C) 2003 - 2020, 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
#
#***************************************************************************
#
# Adapted for djgpp2 / Watt-32 / DOS
#
DEPEND_PREREQ = # tool_hugehelp.c
TOPDIR = ..
vpath %.c ../lib
include ../packages/DOS/common.dj
include Makefile.inc
CSOURCES = $(CURL_CFILES) $(CURLX_CFILES)
ifeq ($(USE_OPENSSL),1)
EX_LIBS += $(OPENSSL_LIBS)
endif
ifeq ($(USE_ARES),1)
EX_LIBS += $(ARES_ROOT)/libcares.a
endif
ifeq ($(USE_ZLIB),1)
EX_LIBS += $(ZLIB_ROOT)/libz.a
CFLAGS += -DUSE_MANUAL
endif
ifeq ($(USE_IDNA),1)
EX_LIBS += $(LIBIDN_ROOT)/lib/dj_obj/libidn.a -liconv
endif
EX_LIBS += $(WATT32_ROOT)/lib/libwatt.a
PROGRAM = curl.exe
OBJECTS = $(addprefix $(OBJ_DIR)/, $(notdir $(CSOURCES:.c=.o)))
all: $(OBJ_DIR) $(PROGRAM)
@echo Welcome to curl
$(PROGRAM): $(OBJECTS) ../lib/libcurl.a
$(CC) -o $@ $^ $(LDFLAGS) $(EX_LIBS)
#
# groff 1.18+ requires "-P -c"
# If 'USE_ZLIB = 1', create a compressed help-file.
#
ifeq ($(USE_ZLIB),1)
COMPRESS_OPT = -c
endif
tool_hugehelp.c: ../docs/curl.1 mkhelp.pl Makefile.dj
groff -Tascii -man $< | perl -w mkhelp.pl $(COMPRESS_OPT) $< > $@
# clean generated files
#
genclean:
- $(DELETE) tool_hugehelp.c
# clean object files and subdir
#
objclean: genclean
- $(DELETE) $(OBJ_DIR)$(DS)*.o
- $(RMDIR) $(OBJ_DIR)
# clean without removing built program
#
clean: objclean
- $(DELETE) depend.dj
# clean everything
#
realclean vclean: clean
- $(DELETE) $(PROGRAM)
-include depend.dj