aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2005-07-13 18:06:40 +0000
committerDaniel Stenberg <daniel@haxx.se>2005-07-13 18:06:40 +0000
commit16bbd13af7244cc0967d9f12327f63ffcaeac4bd (patch)
tree345f4e74a520be8b1ef6cae6bd9a171938198b79
parentee0666c8df0022a13fd478fe4a916f647a6338c5 (diff)
Diego Casorran patches to make (lib)curl build fine on Amiga again
-rw-r--r--CHANGES3
-rw-r--r--RELEASE-NOTES3
-rw-r--r--lib/amigaos.c55
-rw-r--r--lib/amigaos.h14
-rw-r--r--lib/config-amigaos.h5
-rw-r--r--lib/if2ip.c3
-rw-r--r--lib/makefile.amiga6
-rw-r--r--lib/mprintf.c3
-rw-r--r--src/config-amigaos.h10
-rw-r--r--src/makefile.amiga8
10 files changed, 79 insertions, 31 deletions
diff --git a/CHANGES b/CHANGES
index d4d788f2c..969a44d2e 100644
--- a/CHANGES
+++ b/CHANGES
@@ -7,6 +7,9 @@
Changelog
+Daniel (13 July 2005)
+- Diego Casorran provided patches to make curl build fine on Amiga again.
+
Daniel (12 July 2005)
- Adrian Schuur added trailer support in the chunked encoding stream. The
trailer is then sent to the normal header callback/stream. I wrote up test
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index f29fba43e..d3c52474a 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -17,6 +17,7 @@ This release includes the following changes:
This release includes the following bugfixes:
+ o builds fine on AmigaOS again
o corrected date parsing on Windows with auto-DST-adjust enabled
o treats CONNECT 407 responses with bodies better during Digest/NTLM auth
o improved strerror_r() API guessing when cross-compiling
@@ -44,6 +45,6 @@ advice from friends like these:
John McGowan, Georg Wicherski, Andres Garcia, Eric Cooper, Todd Kulesza,
Tupone Alfredo, Gisle Vanem, David Shaw, Andrew Bushnell, Dan Fandrich,
- Adrian Schuur
+ Adrian Schuur, Diego Casorran
Thanks! (and sorry if I forgot to mention someone)
diff --git a/lib/amigaos.c b/lib/amigaos.c
index 13336ce05..95442a533 100644
--- a/lib/amigaos.c
+++ b/lib/amigaos.c
@@ -22,28 +22,53 @@
***************************************************************************/
#include "amigaos.h"
-#include <stdio.h> /* for stderr */
+#include <amitcp/socketbasetags.h>
struct Library *SocketBase = NULL;
+extern int errno, h_errno;
+
+#ifdef __libnix__
+#include <stabs.h>
+void __request(const char *msg);
+#else
+# define __request( msg ) Printf( msg "\n\a")
+#endif
void amiga_cleanup()
{
- if(SocketBase)
- CloseLibrary(SocketBase);
-
- SocketBase = NULL;
+ if(SocketBase) {
+ CloseLibrary(SocketBase);
+ SocketBase = NULL;
+ }
}
BOOL amiga_init()
{
- if(!SocketBase)
- SocketBase = OpenLibrary("bsdsocket.library", 4);
-
- if(!SocketBase) {
- fprintf(stderr, "No TCP/IP Stack running!\n\a");
- return FALSE;
- }
-
- atexit(amiga_cleanup);
- return TRUE;
+ if(!SocketBase)
+ SocketBase = OpenLibrary("bsdsocket.library", 4);
+
+ if(!SocketBase) {
+ __request("No TCP/IP Stack running!");
+ return FALSE;
+ }
+
+ if(SocketBaseTags(
+ SBTM_SETVAL(SBTC_ERRNOPTR(sizeof(errno))), (ULONG) &errno,
+// SBTM_SETVAL(SBTC_HERRNOLONGPTR), (ULONG) &h_errno,
+ SBTM_SETVAL(SBTC_LOGTAGPTR), (ULONG) "cURL",
+ TAG_DONE)) {
+
+ __request("SocketBaseTags ERROR");
+ return FALSE;
+ }
+
+#ifndef __libnix__
+ atexit(amiga_cleanup);
+#endif
+
+ return TRUE;
}
+
+#ifdef __libnix__
+ADD2EXIT(amiga_cleanup,-50);
+#endif
diff --git a/lib/amigaos.h b/lib/amigaos.h
index 0196eece7..a859ef77c 100644
--- a/lib/amigaos.h
+++ b/lib/amigaos.h
@@ -32,13 +32,19 @@
#include <proto/exec.h>
#include <proto/dos.h>
-#include <bsdsocket.h>
+#include <sys/socket.h>
#include "config-amigaos.h"
-#define select(args...) WaitSelect( args, NULL)
-#define inet_ntoa(x) Inet_NtoA( x ## .s_addr)
-#define ioctl(a,b,c,d) IoctlSocket( (LONG)a, (ULONG)b, (char*)c)
+#ifndef select
+# define select(args...) WaitSelect( args, NULL)
+#endif
+#ifndef inet_ntoa
+# define inet_ntoa(x) Inet_NtoA( x ## .s_addr)
+#endif
+#ifndef ioctl
+# define ioctl(a,b,c,d) IoctlSocket( (LONG)a, (ULONG)b, (char*)c)
+#endif
#define _AMIGASF 1
extern void amiga_cleanup();
diff --git a/lib/config-amigaos.h b/lib/config-amigaos.h
index 88779753d..2bc7c424a 100644
--- a/lib/config-amigaos.h
+++ b/lib/config-amigaos.h
@@ -54,6 +54,7 @@
#define HAVE_UTIME_H 1
#define HAVE_WRITABLE_ARGV 1
#define HAVE_ZLIB_H 1
+#define HAVE_SYS_IOCTL_H 1
#define USE_OPENSSL 1
#define USE_SSLEAY 1
@@ -80,7 +81,9 @@
#define TIME_WITH_SYS_TIME 1
#define in_addr_t int
-#define socklen_t int
+#ifndef socklen_t
+# define socklen_t int
+#endif
#ifndef O_RDONLY
# define O_RDONLY 0x0000
diff --git a/lib/if2ip.c b/lib/if2ip.c
index 26b4fae0a..c975ae200 100644
--- a/lib/if2ip.c
+++ b/lib/if2ip.c
@@ -34,7 +34,8 @@
#include "if2ip.h"
#if !defined(WIN32) && !defined(__BEOS__) && !defined(__CYGWIN32__) && \
- !defined(__riscos__) && !defined(__INTERIX) && !defined(NETWARE)
+ !defined(__riscos__) && !defined(__INTERIX) && !defined(NETWARE) && \
+ !defined(_AMIGASF)
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
diff --git a/lib/makefile.amiga b/lib/makefile.amiga
index 71a172979..49cb80cf1 100644
--- a/lib/makefile.amiga
+++ b/lib/makefile.amiga
@@ -7,8 +7,8 @@
ATCPSDKI= /GG/netinclude
-CC = gcc
-CFLAGS = -I$(ATCPSDKI) -m68020-60 -noixemul -I. -I../include -W -Wall
+CC = m68k-amigaos-gcc
+CFLAGS = -I$(ATCPSDKI) -m68020-60 -O2 -msoft-float -noixemul -g -I. -I../include -W -Wall
OBJS = amigaos.c base64.c connect.c content_encoding.c cookie.c dict.c easy.c \
escape.c file.c formdata.c ftp.c getenv.c getinfo.c hash.c hostip.c \
@@ -17,7 +17,7 @@ OBJS = amigaos.c base64.c connect.c content_encoding.c cookie.c dict.c easy.c \
ldap.c llist.c md5.c memdebug.c mprintf.c multi.c netrc.c parsedate.c \
progress.c security.c select.c sendf.c share.c speedcheck.c ssluse.c \
strequal.c strtok.c telnet.c timeval.c transfer.c url.c version.c \
- sslgen.c gtls.c
+ sslgen.c gtls.c strerror.c
all: $(OBJS:.c=.o)
ar cru libcurl.a $(OBJS:.c=.o)
diff --git a/lib/mprintf.c b/lib/mprintf.c
index b9fe238f9..598ea7626 100644
--- a/lib/mprintf.c
+++ b/lib/mprintf.c
@@ -75,6 +75,9 @@
# define BOOL char
#endif
+#ifdef _AMIGASF
+# undef FORMAT_INT
+#endif
/* Lower-case digits. */
static const char lower_digits[] = "0123456789abcdefghijklmnopqrstuvwxyz";
diff --git a/src/config-amigaos.h b/src/config-amigaos.h
index 0f904a30f..e067c9662 100644
--- a/src/config-amigaos.h
+++ b/src/config-amigaos.h
@@ -17,14 +17,20 @@
#define HAVE_SYS_TIME_H 1
#define HAVE_TIME_H 1
#define TIME_WITH_SYS_TIME 1
-#define HAVE_TERMIOS_H 1
-#define HAVE_FTRUNCATE 1
+
+#if 0
+# define HAVE_TERMIOS_H 1
+# define HAVE_FTRUNCATE 1
+#endif
#define HAVE_PWD_H 1
#ifndef F_OK
# define F_OK 0
#endif
+#ifndef O_RDONLY
+# define O_RDONLY 0x0000 /* open for reading only */
+#endif
#ifndef LONG_MAX
# define LONG_MAX 0x7fffffffL /* max value for a long */
#endif
diff --git a/src/makefile.amiga b/src/makefile.amiga
index 51e084d4b..9e03e070f 100644
--- a/src/makefile.amiga
+++ b/src/makefile.amiga
@@ -7,9 +7,9 @@
ATCPSDKI= /GG/netinclude
-CC = gcc
-CFLAGS = -I$(ATCPSDKI) -m68020-60 -noixemul -I. -I../include -W -Wall
-LIBS = ../lib/libcurl.a -lsslnix -lcryptonix -lz
+CC = m68k-amigaos-gcc
+CFLAGS = -I$(ATCPSDKI) -m68020-60 -O2 -msoft-float -noixemul -g -I. -I../include -W -Wall
+LIBS = ../lib/libcurl.a -lssl -lcrypto -lz
MANPAGE = ../docs/curl.1
README = ../docs/MANUAL
MKHELP = ../src/mkhelp.pl
@@ -18,7 +18,7 @@ OBJS = getpass.c hugehelp.c main.c urlglob.c writeenv.c writeout.c
all: hugehelp.c $(OBJS:.c=.o)
- $(CC) $(CFLAGS) -s -o cURL $(OBJS:.c=.o) $(LIBS)
+ $(CC) $(CFLAGS) -o cURL $(OBJS:.c=.o) $(LIBS) -Wl,-Map,cURL.map,--cref
hugehelp.c: $(README) $(MANPAGE) mkhelp.pl
rm -f hugehelp.c