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
parent 4a8b4a1b66
commit a8861b6ccd
No known key found for this signature in database
GPG Key ID: B5ABD165E2AEF201
25 changed files with 326 additions and 715 deletions

View File

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

View File

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

View File

@ -182,7 +182,7 @@ make targets available to build libcurl with more features, use:
and SSPI support. and SSPI support.
If you have any problems linking libraries or finding header files, be sure 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 adjust as necessary. It is also possible to override these paths with
environment variables, for example: environment variables, for example:
@ -210,7 +210,7 @@ set LDFLAGS=-Lc:/openldapsdk/lib/mscvc
set LIBS=-lldapsdk -lldapssl -lldapx 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 ## Cygwin
@ -220,6 +220,30 @@ executable in `/bin/` or you will see the configure fail toward the end.
Run `make` 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 ## Disabling Specific Protocols in Windows builds
The configure utility, unfortunately, is not available for the Windows The configure utility, unfortunately, is not available for the Windows

View File

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

View File

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

View File

@ -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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

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

View File

@ -22,23 +22,36 @@
# #
#*************************************************************************** #***************************************************************************
# See usage in lib/Makefile.m32 # See usage in lib/Makefile.mk
PROOT := .. PROOT := ..
### Common
include $(PROOT)/lib/Makefile.mk
### Local
RCFLAGS += -DCURL_EMBED_MANIFEST RCFLAGS += -DCURL_EMBED_MANIFEST
CPPFLAGS += -I$(PROOT)/lib CPPFLAGS += -I$(PROOT)/lib
LDFLAGS += -L$(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$(CURL_DLL_SUFFIX).dll
curl_DEPENDENCIES += $(PROOT)/lib/libcurl.dll.a curl_DEPENDENCIES += $(PROOT)/lib/libcurl.dll.a
DYN := 1
else else
curl_DEPENDENCIES := $(PROOT)/lib/libcurl.a curl_DEPENDENCIES := $(PROOT)/lib/libcurl.a
CPPFLAGS += -DCURL_STATICLIB ifdef WIN32
LDFLAGS += -static CPPFLAGS += -DCURL_STATICLIB
LDFLAGS += -static
endif
endif endif
### Sources and targets ### Sources and targets
@ -46,27 +59,53 @@ endif
# Provides CURL_CFILES, CURLX_CFILES, CURL_RCFILES # Provides CURL_CFILES, CURLX_CFILES, CURL_RCFILES
include Makefile.inc include Makefile.inc
TARGETS := curl.exe TARGETS := curl$(BIN_EXT)
curl_OBJECTS := $(patsubst %.c,%.o,$(strip $(CURL_CFILES))) CURL_CFILES += $(notdir $(CURLX_CFILES))
curl_OBJECTS += $(patsubst %.c,%.o,$(notdir $(strip $(CURLX_CFILES))))
curl_OBJECTS += $(patsubst %.rc,%.res,$(strip $(CURL_RCFILES))) 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 vpath %.c $(PROOT)/lib
TOCLEAN := $(curl_OBJECTS) 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) $(TARGETS): $(curl_OBJECTS) $(curl_DEPENDENCIES)
$(CC) $(LDFLAGS) $(CURL_LDFLAGS_BIN) -o $@ $(curl_OBJECTS) $(LIBS) $(CC) $(LDFLAGS) $(CURL_LDFLAGS_BIN) -o $@ $(curl_OBJECTS) $(LIBS)
tool_hugehelp.c: all: $(OBJ_DIR) $(TARGETS)
@echo Creating $@
@$(call COPY, $@.cvs, $@)
### Global script
include $(PROOT)/lib/Makefile.m32

View File

@ -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

View File

@ -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