diff --git a/deps/jamlib/mbase.c b/deps/jamlib/mbase.c index 731adc7..3d3fc4a 100644 --- a/deps/jamlib/mbase.c +++ b/deps/jamlib/mbase.c @@ -85,7 +85,7 @@ #if defined( __LINUX__ ) #include #include -#if defined(__sun) || defined(__MUSL__) +#if defined(__sun) || defined(__MUSL__) || defined(__HAIKU__) #include #endif #endif diff --git a/deps/libuuid/randutils.c b/deps/libuuid/randutils.c index 80893d3..d5789d6 100644 --- a/deps/libuuid/randutils.c +++ b/deps/libuuid/randutils.c @@ -12,9 +12,9 @@ #include #include #include - +#ifndef __HAIKU__ #include - +#endif #include "randutils.h" #ifdef HAVE_TLS diff --git a/deps/odoors/OpenDoor.h b/deps/odoors/OpenDoor.h index 3502269..67f2daa 100644 --- a/deps/odoors/OpenDoor.h +++ b/deps/odoors/OpenDoor.h @@ -96,7 +96,7 @@ #define OD_DLL #endif /* !OD_WIN32_STATIC */ #else /* !WIN32 */ -#if defined(__unix__) || defined(__NetBSD__) || defined(__APPLE__) || defined(__sun) +#if defined(__unix__) || defined(__NetBSD__) || defined(__APPLE__) || defined(__sun) || defined(__HAIKU__) #define ODPLAT_NIX #undef ODPLAT_DOS #undef DIRSEP diff --git a/src/GNUmakefile.haiku b/src/GNUmakefile.haiku new file mode 100644 index 0000000..d612ae9 --- /dev/null +++ b/src/GNUmakefile.haiku @@ -0,0 +1,11 @@ +CC:= cc +CFLAGS:= -std=gnu99 -I/boot/system/sources/haiku/headers/libs/iconv/ -I../deps/haiku/include -DDISABLE_MQTT=1 -DDISABLE_SSH=1 +LIBS:= -lm -lssl -lcrypto -liconv -lsqlite3 -lnetwork -lbsd +EXTRAOBJS:= strlcpy/strlcpy.o strlcpy/strlcat.o + +LIBTOOLIZE:= libtoolize + +DEPS_LUA_TARGET:= linux +DEPS_JAMLIB_MAKEFILE:= Makefile.linux + +include GNUmakefile.common diff --git a/src/bbs.c b/src/bbs.c index 536d7ae..bba54ad 100644 --- a/src/bbs.c +++ b/src/bbs.c @@ -6,7 +6,11 @@ #include #include #include +#ifdef __HAIKU__ +#include +#else #include +#endif #include #include #include @@ -15,7 +19,9 @@ #include #include #include +#ifndef DISABLE_MQTT #include +#endif #include "bbs.h" #include "lua/lua.h" #include "lua/lualib.h" @@ -33,7 +39,9 @@ int usertimeout; int timeoutpaused; time_t userlaston; +#ifndef DISABLE_MQTT struct mosquitto *mosq = NULL; +#endif char *ipaddress = NULL; @@ -49,6 +57,7 @@ void sigint_handler(int s) { // do nothing... } void broadcast(char *mess, ...) { +#ifndef DISABLE_MQTT char buffer[PATH_MAX]; if (conf.broadcast_enable && conf.broadcast_port != 0 && conf.broadcast_address != NULL) { va_list ap; @@ -58,6 +67,7 @@ void broadcast(char *mess, ...) { mosquitto_publish(mosq, NULL, (conf.broadcast_topic == NULL ? "MagickaBBS" : conf.broadcast_topic), strlen(buffer), buffer, 0, 0); } +#endif } void dolog_www(char *ipaddr, char *fmt, ...) { @@ -643,12 +653,14 @@ void exit_bbs() { snprintf(buffer, PATH_MAX, "%s/nodeinuse.%d", conf.bbs_path, mynode); remove(buffer); +#ifndef DISABLE_MQTT if (mosq != NULL) { mosquitto_disconnect(mosq); mosquitto_loop_stop(mosq, 0); mosquitto_destroy(mosq); mosquitto_lib_cleanup(); } +#endif } void disconnect(char *calledby) { @@ -946,6 +958,7 @@ void runbbs_real(int socket, char *ip, int ssh) { } // initialize mqtt +#ifndef DISABLE_MQTT if (conf.broadcast_enable && conf.broadcast_address != NULL && conf.broadcast_port != 0) { mosquitto_lib_init(); mosq = mosquitto_new(NULL, 1, NULL); @@ -962,6 +975,7 @@ void runbbs_real(int socket, char *ip, int ssh) { } } } +#endif broadcast("USER: unknown; NODE:%d; STATUS: Logging in.", mynode); diff --git a/src/chat_system.c b/src/chat_system.c index ed2fd7e..6639801 100644 --- a/src/chat_system.c +++ b/src/chat_system.c @@ -7,7 +7,7 @@ #include #include #include -#if defined(__OpenBSD__) +#if defined(__OpenBSD__) || defined(__HAIKU__) #include #endif #include "../deps/jsmn/jsmn.h" diff --git a/src/doors.c b/src/doors.c index 20f5827..6cca67d 100644 --- a/src/doors.c +++ b/src/doors.c @@ -19,6 +19,9 @@ #elif defined(__sun) #include "os/sunos.h" #endif +#ifdef __HAIKU__ +#include +#endif #include "bbs.h" #include "lua/lua.h" #include "lua/lualib.h" diff --git a/src/files.c b/src/files.c index 9147c57..88c7799 100644 --- a/src/files.c +++ b/src/files.c @@ -17,6 +17,9 @@ #include "lua/lua.h" #include "lua/lualib.h" #include "lua/lauxlib.h" +#ifdef __HAIKU__ +#include +#endif extern struct bbs_config conf; extern int gSocket; @@ -701,9 +704,9 @@ int do_upload(struct user_record *user, char *final_path) { return 0; } while ((dent = readdir(inb)) != NULL) { -#ifdef __sun +#if defined(__sun) || defined(__HAIKU__) snprintf(upload_command, 1024, "%s%s", upload_path, dent->d_name); - struct state s; + struct stat s; stat(upload_command, &s); if (S_ISREG(s.st_mode)) { #else diff --git a/src/main.c b/src/main.c index c6bb4ab..518a6e8 100644 --- a/src/main.c +++ b/src/main.c @@ -11,9 +11,11 @@ #include #include #include +#ifndef DISABLE_SSH #include #include #include +#endif #include #include #if defined(linux) @@ -479,6 +481,8 @@ static int handler(void *user, const char *section, const char *name, return 1; } +#ifndef DISABLE_SSH + int ssh_authenticate(ssh_session p_ssh_session) { ssh_message message; char *username; @@ -856,7 +860,7 @@ void serverssh(int port, int ipv6) { } } } - +#endif void server(int port, int ipv6) { struct sigaction sa; struct sigaction st; @@ -955,7 +959,7 @@ void server(int port, int ipv6) { remove(conf.pid_file); exit(1); } - +#ifndef DISABLE_SSH if (conf.ssh_server) { if (!conf.fork) { printf(" - SSH Starting on Port %d (IPv%d)\n", conf.ssh_port, (ipv6 ? 6 : 4)); @@ -974,7 +978,7 @@ void server(int port, int ipv6) { fprintf(stderr, "Error forking ssh server."); } } - +#endif if (ipv6) { server_socket = socket(AF_INET6, SOCK_STREAM, 0); } else { diff --git a/utils/dosbox_shim/Makefile b/utils/dosbox_shim/Makefile index 2751161..1f48f02 100644 --- a/utils/dosbox_shim/Makefile +++ b/utils/dosbox_shim/Makefile @@ -35,6 +35,11 @@ ifeq ($(OS), SunOS) CFLAGS= LDFLAGS=-lsocket endif +ifeq ($(OS), Haiku) + CC=gcc + CFLAGS= + LDFLAGS=-lnetwork +endif DEPS = main.c diff --git a/utils/dosbox_shim/main.c b/utils/dosbox_shim/main.c index b07c79d..a15b847 100644 --- a/utils/dosbox_shim/main.c +++ b/utils/dosbox_shim/main.c @@ -6,7 +6,7 @@ #include #include #include -#if defined(__OpenBSD__) +#if defined(__OpenBSD__) || defined(__HAIKU__) # include #endif @@ -119,4 +119,4 @@ int main(int argc, char **argv) { } } } -} \ No newline at end of file +} diff --git a/utils/filecenter/Makefile b/utils/filecenter/Makefile index 1c30cc4..211c367 100644 --- a/utils/filecenter/Makefile +++ b/utils/filecenter/Makefile @@ -39,7 +39,11 @@ ifeq ($(OS), SunOS) CFLAGS= LDFLAGS=-lsqlite3 -lcurses endif - +ifeq ($(OS), Haiku) + CC=gcc + CFLAGS= + LDFLAGS=-lsqlite3 -lncurses +endif DEPS = main.c OBJ = main.o diff --git a/utils/magichat/GNUmakefile b/utils/magichat/GNUmakefile index bd4a9b7..e7457ff 100644 --- a/utils/magichat/GNUmakefile +++ b/utils/magichat/GNUmakefile @@ -8,6 +8,10 @@ OS = $(shell uname -s) ifeq ($(OS), SunOS) EXTRA_LIBS = -lsocket endif + +ifeq ($(OS), Haiku) + EXTRA_LIBS = -lnetwork +endif %.o: %.c $(DEPS) $(CC) -c -o $@ $< $(CFLAGS) diff --git a/utils/magichat/main.c b/utils/magichat/main.c index 8646f86..f2d27a8 100644 --- a/utils/magichat/main.c +++ b/utils/magichat/main.c @@ -7,7 +7,7 @@ #include #include #include -#if defined(__OpenBSD__) +#if defined(__OpenBSD__) || defined(__HAIKU__) # include #endif #include "../../deps/jsmn/jsmn.h" diff --git a/utils/magiedit/GNUmakefile b/utils/magiedit/GNUmakefile index 1f77a81..d295615 100644 --- a/utils/magiedit/GNUmakefile +++ b/utils/magiedit/GNUmakefile @@ -8,6 +8,10 @@ ifeq ($(OS), SunOS) EXTRA_LIBS = -lsocket endif +ifeq ($(OS), Haiku) + EXTRA_LIBS = -lnetwork +endif + OBJ = main.o all: magiedit diff --git a/utils/magiftpd/Makefile b/utils/magiftpd/Makefile index fd83d04..d681f46 100644 --- a/utils/magiftpd/Makefile +++ b/utils/magiftpd/Makefile @@ -35,6 +35,12 @@ ifeq ($(OS), SunOS) CFLAGS= LDFLAGS=-lsqlite3 -lcrypto -lsocket -lnsl endif +ifeq ($(OS), Haiku) + CC=gcc + CFLAGS= + LDFLAGS=-lsqlite3 -lcrypto -lnetwork +endif + DEPS = magiftpd.c diff --git a/utils/magimail/src/Makefile.linux b/utils/magimail/src/Makefile.linux index 1d6bcae..9f11bf8 100644 --- a/utils/magimail/src/Makefile.linux +++ b/utils/magimail/src/Makefile.linux @@ -30,19 +30,20 @@ MBOBJS_MSG = obj/mb_msg.o MBDEFS_JAM = -DMSGBASE_JAM MBOBJS_JAM = $(OBJDIR)/mb_jam.o $(JAMLIB) -MBDEFS_SQ3 = -DMSGBASE_SQ3 -MBOBJS_SQ3 = $(OBJDIR)/mb_sq3.o - # Sum them up. Only include the messagebases you want to use -MBDEFS = $(MBDEFS_MSG) $(MBDEFS_JAM) $(MBDEFS_SQ3) -MBOBJS = $(MBOBJS_MSG) $(MBOBJS_JAM) $(MBOBJS_SQ3) +MBDEFS = $(MBDEFS_MSG) $(MBDEFS_JAM) +MBOBJS = $(MBOBJS_MSG) $(MBOBJS_JAM) DEFS = $(PLATFORMDEF) $(MBDEFS) $(NLDEFS) ifeq ($(OS), SunOS) SLIBS = -lsocket -lnsl else - SLIBS = + ifeq ($(OS), Haiku) + SLIBS = -lnetwork + else + SLIBS = + endif endif # Commands @@ -94,7 +95,7 @@ files : $(BINDIR)/magimail$(EXESUFFIX) \ $(BINDIR)/magilistout$(EXESUFFIX) $(BINDIR)/magimail$(EXESUFFIX) : $(CMOBJS) $(SHOBJS) $(NLOBJS) $(MBOBJS) $(OSLIB) - $(CC) -o $(BINDIR)/magimail$(EXESUFFIX) $(CMOBJS) $(SHOBJS) $(NLOBJS) $(MBOBJS) $(OSLIB) -lsqlite3 $(SLIBS) + $(CC) -o $(BINDIR)/magimail$(EXESUFFIX) $(CMOBJS) $(SHOBJS) $(NLOBJS) $(MBOBJS) $(OSLIB) $(SLIBS) $(STRIP) $(BINDIR)/magimail$(EXESUFFIX) $(BINDIR)/magistats$(EXESUFFIX) : tools/magistats.c $(SHOBJS) $(OSLIB) diff --git a/utils/ticproc/Makefile b/utils/ticproc/Makefile index c14c66b..036712c 100644 --- a/utils/ticproc/Makefile +++ b/utils/ticproc/Makefile @@ -3,34 +3,38 @@ OS := $(shell uname -s) ifeq ($(OS), FreeBSD) CC=cc CFLAGS=-I/usr/local/include - LDFLAGS=-L/usr/local/lib + LDFLAGS=-L/usr/local/lib -lsqlite3 endif ifeq ($(OS), DragonFly) CC=cc CFLAGS=-I/usr/local/include - LDFLAGS=-L/usr/local/lib + LDFLAGS=-L/usr/local/lib -lsqlite3 endif ifeq ($(OS), NetBSD) CC=cc CFLAGS=-I/usr/pkg/include - LDFLAGS=-R/usr/pkg/lib -L/usr/pkg/lib + LDFLAGS=-R/usr/pkg/lib -L/usr/pkg/lib -lsqlite3 endif ifeq ($(OS), OpenBSD) CC=cc CFLAGS=-I/usr/local/include - LDFLAGS=-L/usr/local/lib + LDFLAGS=-L/usr/local/lib -lsqlite3 endif ifeq ($(OS), Linux) CC=gcc CFLAGS= - LDFLAGS= + LDFLAGS=-lsqlite3 endif ifeq ($(OS), Darwin) CC=cc CFLAGS= - LDFLAGS= + LDFLAGS=-lsqlite3 +endif +ifeq ($(OS), Haiku) + CC=gcc + CFLAGS= + LDFLAGS=-lsqlite3 endif - DEPS = ticproc.c @@ -40,7 +44,7 @@ OBJ = ticproc.o ../../src/inih/ini.o crc32.o ticproc: $(OBJ) - $(CC) -o ticproc $^ $(CFLAGS) $(LDFLAGS) -lsqlite3 + $(CC) -o ticproc $^ $(CFLAGS) $(LDFLAGS) .PHONY: clean