]> Git repositories of Nishi - tewi.git/commitdiff
add watcom
authorNishi <nishi@nishi.boats>
Wed, 2 Oct 2024 20:40:37 +0000 (20:40 +0000)
committerNishi <nishi@nishi.boats>
Wed, 2 Oct 2024 20:40:37 +0000 (20:40 +0000)
git-svn-id: file:///raid/svn-personal/tewi/trunk@219 8739d7e6-ffea-ec47-b151-bdff447c6205

Common/dir.c
Module/Makefile
Platform/watcom.mk [new file with mode: 0644]
Server/http.c
Server/main.c
Server/module.c
Server/server.c
Server/strptime.c
Server/tw_config.h
Server/version.c
config.h.tmpl

index eae03e46d7e2fce7dd039ad25d49a616ea0d37da..8ba4772838ff08cd6510ba7c2b22c9d8ed6f2120 100644 (file)
@@ -5,8 +5,10 @@
 #include "cm_string.h"
 
 #include <sys/stat.h>
-#ifndef _MSC_VER
+#if !defined(_MSC_VER) && !defined(__WATCOMC__)
 #include <dirent.h>
+#elif defined(__WATCOMC__)
+#include <direct.h>
 #endif
 #include <stdlib.h>
 #include <string.h>
index 00cea8c26bce546c876a5dd9017b98b3ff392020..3f8cde78e2f63bf383ff7a4a4013f3a7b90603f4 100644 (file)
@@ -2,6 +2,7 @@
 
 OBJ=o
 STATIC=a
+END=_dll
 include $(PWD)/Platform/$(PLATFORM).mk
 
 .PHONY: all clean
diff --git a/Platform/watcom.mk b/Platform/watcom.mk
new file mode 100644 (file)
index 0000000..607fe22
--- /dev/null
@@ -0,0 +1,14 @@
+# $Id$
+
+PREFIX = C:/Tewi
+
+CC = owcc
+AR = wlib
+AR_FLAGS = -q -b -n -fo
+CFLAGS = -b nt$(END) -I $(WATCOM)/h/nt -g -std=c99 -DPREFIX=\"$(PREFIX)\" -I ../Common -fPIC
+LDFLAGS = -b nt$(END)
+LIBS = ws2_32.lib
+EXEC = .exe
+STATIC = lib
+LIBSUF = .dll
+OBJ = obj
index e5fab0e7c8fd1ee9796b937e94e4af456854da19..b98e0ae6258c5da8e7658ce3e270ab12cda6dd00 100644 (file)
@@ -15,7 +15,7 @@
 #include <stdlib.h>
 #include <string.h>
 
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
 #include <winsock2.h>
 #else
 #ifdef USE_POLL
index a418157e85ba2a1d1dcc3e4542206bb7cf4e002c..b84a5e68d6386397fa9160971fcded5235a54b86 100644 (file)
@@ -789,7 +789,7 @@ int startup(int argc, char** argv) {
        r = cm_strcat(tw_server, " running...");
        cm_force_log(r);
        free(r);
-#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(__BORLANDC__)
+#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(__BORLANDC__) && !defined(__WATCOMC__)
        signal(SIGCHLD, SIG_IGN);
        signal(SIGPIPE, SIG_IGN);
 #else
index 90fd5982ee23a1d127ead48d688ad651a5e2d981..02eb5c69de6ede23bb628dfdf0980693a52194f7 100644 (file)
@@ -26,7 +26,7 @@ int tw_module_init(void* mod) { return 1; }
 
 #else
 
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
 #include <windows.h>
 #include <direct.h>
 #else
@@ -37,7 +37,7 @@ void* tw_module_load(const char* path) {
        char* p = getcwd(NULL, 0);
        void* lib;
        chdir(config.server_root);
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
        lib = LoadLibraryA(path);
 #else
        lib = dlopen(path, RTLD_LAZY);
@@ -51,7 +51,7 @@ void* tw_module_load(const char* path) {
 }
 
 void* tw_module_symbol(void* mod, const char* sym) {
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
        return GetProcAddress(mod, sym);
 #else
        return dlsym(mod, sym);
index 8111304629c1d65c643da56bd9bff72f95eed4f5..3dc722601c6d442bad600d2a47bcb876be8b6792 100644 (file)
@@ -32,7 +32,7 @@
 #include <cm_log.h>
 #include <cm_dir.h>
 
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
 #ifndef NO_GETADDRINFO
 #include <ws2tcpip.h>
 #include <wspiapi.h>
@@ -84,7 +84,7 @@ int sockcount = 0;
 SOCKADDR addresses[MAX_PORTS];
 int sockets[MAX_PORTS];
 
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
 const char* reserved_names[] = {"CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9"};
 #endif
 
@@ -111,7 +111,7 @@ int tw_wildcard_match(const char* wildcard, const char* target) {
 }
 
 void close_socket(int sock) {
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
        closesocket(sock);
 #else
        close(sock);
@@ -120,7 +120,7 @@ void close_socket(int sock) {
 
 int tw_server_init(void) {
        int i;
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
        WSADATA wsa;
        WSAStartup(MAKEWORD(2, 0), &wsa);
 #endif
@@ -449,7 +449,7 @@ struct pass_entry {
        SOCKADDR addr;
 };
 
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
 #define NO_RETURN_THREAD
 void tw_server_pass(void* ptr) {
 #elif defined(__HAIKU__)
@@ -457,7 +457,7 @@ int32_t tw_server_pass(void* ptr) {
 #elif defined(_PSP) || defined(__PPU__)
 int tw_server_pass(void* ptr) {
 #endif
-#if defined(__HAIKU__) || defined(__MINGW32__) || defined(_PSP) || defined(__PPU__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__HAIKU__) || defined(__MINGW32__) || defined(_PSP) || defined(__PPU__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
 #define FREE_PTR
        int sock = ((struct pass_entry*)ptr)->sock;
        bool ssl = ((struct pass_entry*)ptr)->ssl;
@@ -551,7 +551,7 @@ int tw_server_pass(void* ptr) {
                                        time_t t;
                                        struct tm* btm;
                                        strptime(req.headers[i + 1], "%a, %d %b %Y %H:%M:%S GMT", &tm);
-#if defined(__MINGW32__) || defined(_PSP) || defined(__PPU__) || defined(__ps2sdk__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_PSP) || defined(__PPU__) || defined(__ps2sdk__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
                                        t = 0;
                                        btm = localtime(&t);
                                        cmtime = mktime(&tm);
@@ -618,7 +618,7 @@ int tw_server_pass(void* ptr) {
                        cm_log("Server", "Document root is %s", vhost_entry->root == NULL ? "not set" : vhost_entry->root);
                        path = cm_strcat(vhost_entry->root == NULL ? "" : vhost_entry->root, req.path);
                        cm_log("Server", "Filesystem path is %s", path);
-#if defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
                        for(i = strlen(path) - 1; i >= 0; i--) {
                                if(path[i] == '/') {
                                        path[i] = 0;
@@ -627,7 +627,7 @@ int tw_server_pass(void* ptr) {
                                }
                        }
 #endif
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
                        rpath = cm_strdup(path);
                        for(i = strlen(rpath) - 1; i >= 0; i--) {
                                if(rpath[i] == '/') {
@@ -898,7 +898,7 @@ cleanup:
        SSL_free(s);
 #endif
        close_socket(sock);
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
        _endthread();
 #elif defined(__HAIKU__)
                exit_thread(0);
@@ -913,7 +913,7 @@ extern SERVICE_STATUS status;
 extern SERVICE_STATUS_HANDLE status_handle;
 #endif
 
-#if defined(__MINGW32__) || defined(__HAIKU__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(__HAIKU__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
 struct thread_entry {
 #ifdef __HAIKU__
        thread_id thread;
@@ -932,7 +932,7 @@ void tw_server_loop(void) {
        fd_set fdset;
        struct timeval tv;
 #endif
-#if defined(__MINGW32__) || defined(__HAIKU__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(__HAIKU__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
        struct thread_entry threads[2048];
        for(i = 0; i < sizeof(threads) / sizeof(threads[0]); i++) {
                threads[i].used = false;
@@ -963,7 +963,7 @@ void tw_server_loop(void) {
 #endif
 #endif
                if(ret == -1) {
-#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(__BORLANDC__)
+#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(__BORLANDC__) && !defined(__WATCOMC__)
                        cm_log("Server", "Select failure: %s", strerror(errno));
 #endif
                        break;
@@ -987,7 +987,7 @@ void tw_server_loop(void) {
                                        SOCKADDR claddr;
                                        socklen_t clen = sizeof(claddr);
                                        int sock = accept(sockets[i], (struct sockaddr*)&claddr, &clen);
-#if defined(__MINGW32__) || defined(__HAIKU__) || defined(_PSP) || defined(__PPU__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(__HAIKU__) || defined(_PSP) || defined(__PPU__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
                                        int j;
                                        struct pass_entry* e = malloc(sizeof(*e));
                                        cm_log("Server", "New connection accepted");
@@ -1000,7 +1000,7 @@ void tw_server_loop(void) {
                                        e->port = config.ports[i];
                                        e->addr = claddr;
 #endif
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
                                        _beginthread(tw_server_pass, 0, e);
 #elif defined(_PSP) || defined(__PPU__)
                                                tw_server_pass(e);
index 1000af6ab8299da90b7077a0d2722dc80454fcd2..feea8825215d408af50527d29f777fefadf8527d 100644 (file)
@@ -35,7 +35,7 @@
 //#include <sys/cdefs.h>
 //__RCSID("$NetBSD: strptime.c,v 1.62 2017/08/24 01:01:09 ginsbach Exp $");
 
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
 
 #include <ctype.h>
 #include <string.h>
index d640ae153685e1391fd56d380e3b67504bf222ea..6059e07373aa1539e432024f877fe3aceec4ae9e 100644 (file)
@@ -14,7 +14,7 @@ extern "C" {
 #include <stdint.h>
 #include <stdbool.h>
 
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
 #include <winsock2.h>
 #define NO_IPV6
 #else
index a0c4cfcc70c47113c9bcba7f847ded652f7b3f17..25abdd1ce7245906dcc8b2368cd40d05cb6e5fae 100644 (file)
@@ -16,9 +16,11 @@ const char* tw_platform =
 #elif defined(__MINGW32__)
     "Windows-MinGW32"
 #elif defined(_MSC_VER)
-    "Windows-MSVC"
+    "Windows-VisualC"
 #elif defined(__BORLANDC__)
-    "Windows-BCC"
+    "Windows-Borland"
+#elif defined(__WATCOMC__)
+    "Windows-Watcom"
 #elif defined(__HAIKU__)
     "Haiku"
 #elif defined(__CYGWIN__)
index 956ab1ce88200e64baf68105d6b08781dad72c9a..97801a2233ac38c4fd8231d90e28f0ccdcf535b3 100644 (file)
 #define SSL void
 #endif
 
-#if (defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)) && defined(USE_POLL)
+#if (defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)) && defined(USE_POLL)
 #undef USE_POLL
 /* Force select(2) for Windows */
 #endif
 
-#if (defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)) && defined(HAS_CHROOT)
+#if (defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)) && defined(HAS_CHROOT)
 #undef HAS_CHROOT
 /* Windows should not have chroot */
 #endif
 
-#if (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(NO_GETADDRINFO)
+#if (defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)) && !defined(NO_GETADDRINFO)
 #define NO_GETADDRINFO
 /* Do not use getaddrinfo */
 #endif