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
|
||
|---|---|---|
| .. | ||
| .checksrc | ||
| .gitignore | ||
| 10-at-a-time.c | ||
| adddocsref.pl | ||
| altsvc.c | ||
| anyauthput.c | ||
| cacertinmem.c | ||
| certinfo.c | ||
| chkspeed.c | ||
| cookie_interface.c | ||
| crawler.c | ||
| curlgtk.c | ||
| debug.c | ||
| ephiperfifo.c | ||
| evhiperfifo.c | ||
| externalsocket.c | ||
| fileupload.c | ||
| ftp-wildcard.c | ||
| ftpget.c | ||
| ftpgetinfo.c | ||
| ftpgetresp.c | ||
| ftpsget.c | ||
| ftpupload.c | ||
| ftpuploadfrommem.c | ||
| ftpuploadresume.c | ||
| getinfo.c | ||
| getinmemory.c | ||
| getredirect.c | ||
| getreferrer.c | ||
| ghiper.c | ||
| headerapi.c | ||
| hiperfifo.c | ||
| href_extractor.c | ||
| htmltidy.c | ||
| htmltitle.cpp | ||
| http2-download.c | ||
| http2-pushinmemory.c | ||
| http2-serverpush.c | ||
| http2-upload.c | ||
| http3-present.c | ||
| http3.c | ||
| http-post.c | ||
| httpcustomheader.c | ||
| httpput-postfields.c | ||
| httpput.c | ||
| https.c | ||
| imap-append.c | ||
| imap-authzid.c | ||
| imap-copy.c | ||
| imap-create.c | ||
| imap-delete.c | ||
| imap-examine.c | ||
| imap-fetch.c | ||
| imap-list.c | ||
| imap-lsub.c | ||
| imap-multi.c | ||
| imap-noop.c | ||
| imap-search.c | ||
| imap-ssl.c | ||
| imap-store.c | ||
| imap-tls.c | ||
| Makefile.am | ||
| Makefile.example | ||
| Makefile.inc | ||
| Makefile.mk | ||
| multi-app.c | ||
| multi-debugcallback.c | ||
| multi-double.c | ||
| multi-event.c | ||
| multi-formadd.c | ||
| multi-legacy.c | ||
| multi-post.c | ||
| multi-single.c | ||
| multi-uv.c | ||
| multithread.c | ||
| opensslthreadlock.c | ||
| parseurl.c | ||
| persistent.c | ||
| pop3-authzid.c | ||
| pop3-dele.c | ||
| pop3-list.c | ||
| pop3-multi.c | ||
| pop3-noop.c | ||
| pop3-retr.c | ||
| pop3-ssl.c | ||
| pop3-stat.c | ||
| pop3-tls.c | ||
| pop3-top.c | ||
| pop3-uidl.c | ||
| post-callback.c | ||
| postinmemory.c | ||
| postit2-formadd.c | ||
| postit2.c | ||
| progressfunc.c | ||
| README.md | ||
| resolve.c | ||
| sendrecv.c | ||
| sepheaders.c | ||
| sessioninfo.c | ||
| sftpget.c | ||
| sftpuploadresume.c | ||
| shared-connection-cache.c | ||
| simple.c | ||
| simplepost.c | ||
| simplessl.c | ||
| smooth-gtk-thread.c | ||
| smtp-authzid.c | ||
| smtp-expn.c | ||
| smtp-mail.c | ||
| smtp-mime.c | ||
| smtp-multi.c | ||
| smtp-ssl.c | ||
| smtp-tls.c | ||
| smtp-vrfy.c | ||
| sslbackend.c | ||
| synctime.c | ||
| threaded-ssl.c | ||
| url2file.c | ||
| urlapi.c | ||
| usercertinmem.c | ||
| version-check.pl | ||
| xmlstream.c | ||
libcurl examples
This directory is for libcurl programming examples. They are meant to show some simple steps on how you can build your own application to take full advantage of libcurl.
If you end up with other small but still useful example sources, please mail them for submission in future packages and on the website.
Building
The Makefile.example is an example Makefile that could be used to build
these examples. Just edit the file according to your system and requirements
first.
Most examples should build fine using a command line like this:
`curl-config --cc --cflags --libs` -o example example.c
Some compilers do not like having the arguments in this order but instead want you do reorganize them like:
`curl-config --cc` -o example example.c `curl-config --cflags --libs`
Please do not use the curl.se site as a test target for your libcurl
applications/experiments. Even if some of the examples use that site as a URL
at some places, it does not mean that the URLs work or that we expect you to
actually torture our website with your tests. Thanks.
Examples
Each example source code file is designed to be and work stand-alone and rather self-explanatory. The examples may at times lack the level of error checks you need in a real world, but that is then only for the sake of readability: to make the code smaller and easier to follow.