diff options
-rw-r--r-- | common/Makefile | 2 | ||||
-rw-r--r-- | common/osdep/Makefile | 15 | ||||
-rw-r--r-- | common/osdep/cpuload.c | 50 | ||||
-rw-r--r-- | common/osdep/proctitle.c | 71 | ||||
-rw-r--r-- | common/osdep/strlcat.c | 78 | ||||
-rw-r--r-- | common/osdep/strlcpy.c | 73 | ||||
-rw-r--r-- | common/sys/Makefile | 2 | ||||
-rw-r--r-- | common/sys/osdep.c | 297 | ||||
-rw-r--r-- | include/cmsys.h | 6 | ||||
-rw-r--r-- | include/osdep.h | 53 | ||||
-rw-r--r-- | innbbsd/Makefile | 13 | ||||
-rw-r--r-- | mbbsd/Makefile | 3 | ||||
-rw-r--r-- | trans/Makefile | 7 | ||||
-rw-r--r-- | util/Makefile | 3 |
14 files changed, 332 insertions, 341 deletions
diff --git a/common/Makefile b/common/Makefile index 5730a479..fbdf32b7 100644 --- a/common/Makefile +++ b/common/Makefile @@ -1,3 +1,3 @@ -SUBDIR:= bbs sys +SUBDIR:= bbs osdep sys .include <bsd.subdir.mk> diff --git a/common/osdep/Makefile b/common/osdep/Makefile new file mode 100644 index 00000000..86783bf5 --- /dev/null +++ b/common/osdep/Makefile @@ -0,0 +1,15 @@ +MKLINT:=no +MKPROFILE:=no +MKPIC:=no + +SRCROOT= ../.. +.include "$(SRCROOT)/pttbbs.mk" + +SRCS:= cpuload.c proctitle.c strlcat.c strlcpy.c +LIB:= osdep + +all: .depend + +install: + +.include <bsd.lib.mk> diff --git a/common/osdep/cpuload.c b/common/osdep/cpuload.c new file mode 100644 index 00000000..be71fa72 --- /dev/null +++ b/common/osdep/cpuload.c @@ -0,0 +1,50 @@ +/* $Id$ */ +#include <stdio.h> +#include <string.h> +#include "osdep.h" + +#if defined( __FreeBSD__) || defined(_BSD_SOURCE) +#include <stdlib.h> +int +cpuload(char *str) +{ + double l[3] = {-1, -1, -1}; + if (getloadavg(l, 3) != 3) + l[0] = -1; + + if (str) { + if (l[0] != -1) + sprintf(str, " %.2f %.2f %.2f", l[0], l[1], l[2]); + else + strcpy(str, " (unknown) "); + } + return (int)l[0]; +} +#elif defined(__linux__) +int +cpuload(char *str) +{ + double l[3] = {-1, -1, -1}; + FILE *fp; + + if ((fp = fopen("/proc/loadavg", "r"))) { + if (fscanf(fp, "%lf %lf %lf", &l[0], &l[1], &l[2]) != 3) + l[0] = -1; + fclose(fp); + } + if (str) { + if (l[0] != -1) + sprintf(str, " %.2f %.2f %.2f", l[0], l[1], l[2]); + else + strcpy(str, " (unknown) "); + } + return (int)l[0]; +} +#else +int +cpuload(char *str) +{ + strcpy(str, " (unknown) "); + return -1; +} +#endif diff --git a/common/osdep/proctitle.c b/common/osdep/proctitle.c new file mode 100644 index 00000000..c6891e67 --- /dev/null +++ b/common/osdep/proctitle.c @@ -0,0 +1,71 @@ +/* $Id$ */ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <stdarg.h> +#include "osdep.h" + +#ifdef NEED_SETPROCTITLE + +static char **Argv = NULL; /* pointer to argument vector */ +static int argv_size; /* end of argv */ + +extern char **environ; + +void +initsetproctitle(int argc, char **argv, char **envp) +{ + int i, len=0, nenv=0; + + /* + * Move the environment so setproctitle can use the space at the top of + * memory. + */ + for (i = 0; envp[i]; i++) + len += strlen(envp[i])+1; + + nenv = i + 1; + len += sizeof(char*)*nenv; + environ = malloc(len); + len = 0; + for (i = 0; envp[i]; i++) { + environ[i] = (char*)environ + nenv * sizeof(char*) + len; + strcpy(environ[i], envp[i]); + len += strlen(envp[i])+1; + } + environ[i] = NULL; + + /* Save start and extent of argv for setproctitle. */ + Argv = argv; + if (i > 0) + argv_size = envp[i - 1] + strlen(envp[i - 1]) - Argv[0]; + else + argv_size = argv[argc - 1] + strlen(argv[argc - 1]) - Argv[0]; +} + +static void +do_setproctitle(const char *cmdline) +{ + int len; + + len = strlen(cmdline) + 1; // +1 for '\0' + if (len > argv_size - 2) // 2 ?? + len = argv_size - 2; + memset(Argv[0], 0, argv_size); + strlcpy(Argv[0], cmdline, len); + Argv[1] = NULL; +} + +void +setproctitle(const char *format,...) +{ + char buf[256]; + va_list args; + va_start(args, format); + vsnprintf(buf, sizeof(buf), format, args); + do_setproctitle(buf); + va_end(args); +} + +#endif + diff --git a/common/osdep/strlcat.c b/common/osdep/strlcat.c new file mode 100644 index 00000000..c6483f92 --- /dev/null +++ b/common/osdep/strlcat.c @@ -0,0 +1,78 @@ +/* $Id$ */ +#include "osdep.h" + +#ifdef NEED_STRLCAT + +#include <sys/types.h> +#include <string.h> + +/* size_t + * strlcat(char *dst, const char *src, size_t size); + */ + +/* + * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Appends src to string dst of size siz (unlike strncat, siz is the + * full size of dst, not space left). At most siz-1 characters + * will be copied. Always NUL terminates (unless siz <= strlen(dst)). + * Returns strlen(src) + MIN(siz, strlen(initial dst)). + * If retval >= siz, truncation occurred. + */ +size_t +strlcat(dst, src, siz) + char *dst; + const char *src; + size_t siz; +{ + char *d = dst; + const char *s = src; + size_t n = siz; + size_t dlen; + + /* Find the end of dst and adjust bytes left but don't go past end */ + while (n-- != 0 && *d != '\0') + d++; + dlen = d - dst; + n = siz - dlen; + + if (n == 0) + return(dlen + strlen(s)); + while (*s != '\0') { + if (n != 1) { + *d++ = *s; + n--; + } + s++; + } + *d = '\0'; + + return(dlen + (s - src)); /* count does not include NUL */ +} + +#endif diff --git a/common/osdep/strlcpy.c b/common/osdep/strlcpy.c new file mode 100644 index 00000000..c741ae8e --- /dev/null +++ b/common/osdep/strlcpy.c @@ -0,0 +1,73 @@ +/* $Id$ */ +#include "osdep.h" + +#ifdef NEED_STRLCPY + +#include <sys/types.h> +#include <string.h> + +/* size_t + * strlcpy(char *dst, const char *src, size_t size); + */ + +/* + * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copy src to string dst of size siz. At most siz-1 characters + * will be copied. Always NUL terminates (unless siz == 0). + * Returns strlen(src); if retval >= siz, truncation occurred. + */ +size_t strlcpy(dst, src, siz) + char *dst; + const char *src; + size_t siz; +{ + char *d = dst; + const char *s = src; + size_t n = siz; + + /* Copy as many bytes as will fit */ + if (n != 0 && --n != 0) { + do { + if ((*d++ = *s++) == 0) + break; + } while (--n != 0); + } + + /* Not enough room in dst, add NUL and traverse rest of src */ + if (n == 0) { + if (siz != 0) + *d = '\0'; /* NUL-terminate dst */ + while (*s++) + ; + } + + return(s - src - 1); /* count does not include NUL */ +} + +#endif diff --git a/common/sys/Makefile b/common/sys/Makefile index 7450f7d6..fe9fb2dc 100644 --- a/common/sys/Makefile +++ b/common/sys/Makefile @@ -5,7 +5,7 @@ MKPIC:=no SRCROOT= ../.. .include "$(SRCROOT)/pttbbs.mk" -SRCS:= file.c lock.c log.c net.c sort.c string.c time.c crypt.c record.c osdep.c vector.c +SRCS:= file.c lock.c log.c net.c sort.c string.c time.c crypt.c record.c vector.c LIB:= cmsys all: .depend diff --git a/common/sys/osdep.c b/common/sys/osdep.c deleted file mode 100644 index 1c4b5cd1..00000000 --- a/common/sys/osdep.c +++ /dev/null @@ -1,297 +0,0 @@ -/* $Id$ */ -#include "osdep.h" -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <stdarg.h> - -#ifdef NEED_STRLCAT - -#include <sys/types.h> -#include <string.h> - -/* size_t - * strlcat(char *dst, const char *src, size_t size); - */ -/* - * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * Appends src to string dst of size siz (unlike strncat, siz is the - * full size of dst, not space left). At most siz-1 characters - * will be copied. Always NUL terminates (unless siz <= strlen(dst)). - * Returns strlen(src) + MIN(siz, strlen(initial dst)). - * If retval >= siz, truncation occurred. - */ -size_t -strlcat(dst, src, siz) - char *dst; - const char *src; - size_t siz; -{ - char *d = dst; - const char *s = src; - size_t n = siz; - size_t dlen; - - /* Find the end of dst and adjust bytes left but don't go past end */ - while (n-- != 0 && *d != '\0') - d++; - dlen = d - dst; - n = siz - dlen; - - if (n == 0) - return(dlen + strlen(s)); - while (*s != '\0') { - if (n != 1) { - *d++ = *s; - n--; - } - s++; - } - *d = '\0'; - - return(dlen + (s - src)); /* count does not include NUL */ -} - -#endif - -#ifdef NEED_TIMEGM - -#include <time.h> -#include <stdlib.h> - -time_t timegm (struct tm *tm) -{ - time_t ret; - char *tz; - - tz = getenv("TZ"); - putenv("TZ="); - tzset(); - ret = mktime(tm); - - if (tz){ - char *buff = malloc( strlen(tz) + 10); - sprintf( buff, "TZ=%s", tz); - putenv(buff); - free(buff); - } - else - unsetenv("TZ"); - tzset(); - - return ret; -} - -#endif - -#ifdef NEED_STRLCPY - -/* ------------------------------------------------------------------------ */ - -/* size_t - * strlcpy(char *dst, const char *src, size_t size); - */ - -/* - * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * Copy src to string dst of size siz. At most siz-1 characters - * will be copied. Always NUL terminates (unless siz == 0). - * Returns strlen(src); if retval >= siz, truncation occurred. - */ -size_t strlcpy(dst, src, siz) - char *dst; - const char *src; - size_t siz; -{ - char *d = dst; - const char *s = src; - size_t n = siz; - - /* Copy as many bytes as will fit */ - if (n != 0 && --n != 0) { - do { - if ((*d++ = *s++) == 0) - break; - } while (--n != 0); - } - - /* Not enough room in dst, add NUL and traverse rest of src */ - if (n == 0) { - if (siz != 0) - *d = '\0'; /* NUL-terminate dst */ - while (*s++) - ; - } - - return(s - src - 1); /* count does not include NUL */ -} - -#endif - -#ifdef HAVE_SETPROCTITLE - -void -initsetproctitle(int argc, char **argv, char **envp) -{ -} - -#else - - -static char **Argv = NULL; /* pointer to argument vector */ -static int argv_size; /* end of argv */ - -extern char **environ; - -void -initsetproctitle(int argc, char **argv, char **envp) -{ - register int i; - int len=0,nenv=0; - - - /* - * Move the environment so setproctitle can use the space at the top of - * memory. - */ - for (i = 0; envp[i]; i++) - len+=strlen(envp[i])+1; - nenv=i+1; - len+=sizeof(char*)*nenv; - environ = malloc(len); - len=0; - for (i = 0; envp[i]; i++) { - environ[i] = (char*)environ+nenv*sizeof(char*)+len; - strcpy(environ[i], envp[i]); - len+=strlen(envp[i])+1; - } - environ[i] = NULL; - - /* Save start and extent of argv for setproctitle. */ - Argv = argv; - if (i > 0) - argv_size = envp[i - 1] + strlen(envp[i - 1]) - Argv[0]; - else - argv_size = argv[argc - 1] + strlen(argv[argc - 1]) - Argv[0]; -} - -static void -do_setproctitle(const char *cmdline) -{ - int len; - - len = strlen(cmdline) + 1; // +1 for '\0' - if(len > argv_size - 2) // 2 ?? - len = argv_size - 2; - memset(Argv[0], 0, argv_size); - strlcpy(Argv[0], cmdline, len); - Argv[1] = NULL; -} - -void -setproctitle(const char *format,...) -{ - char buf[256]; - va_list args; - va_start(args, format); - vsnprintf(buf, sizeof(buf), format, args); - do_setproctitle(buf); - va_end(args); -} - -#endif - -#ifdef __FreeBSD__ - -int -cpuload(char *str) -{ - double l[3] = {-1, -1, -1}; - if (getloadavg(l, 3) != 3) - l[0] = -1; - - if (str) { - if (l[0] != -1) - sprintf(str, " %.2f %.2f %.2f", l[0], l[1], l[2]); - else - strcpy(str, " (unknown) "); - } - return (int)l[0]; -} -#endif - - -#ifdef __linux__ -int -cpuload(char *str) -{ - double l[3] = {-1, -1, -1}; - FILE *fp; - - if ((fp = fopen("/proc/loadavg", "r"))) { - if (fscanf(fp, "%lf %lf %lf", &l[0], &l[1], &l[2]) != 3) - l[0] = -1; - fclose(fp); - } - if (str) { - if (l[0] != -1) - sprintf(str, " %.2f %.2f %.2f", l[0], l[1], l[2]); - else - strcpy(str, " (unknown) "); - } - return (int)l[0]; -} - -#endif diff --git a/include/cmsys.h b/include/cmsys.h index 9b3ccef3..d1014291 100644 --- a/include/cmsys.h +++ b/include/cmsys.h @@ -80,12 +80,6 @@ extern int toconnect(const char *addr); extern int toread(int fd, void *buf, int len); extern int towrite(int fd, const void *buf, int len); -/* osdep */ -extern int cpuload(char *str); -extern void initsetproctitle(int argc, char **argv, char **envp); -extern void setproctitle(const char* format, ...) GCC_CHECK_FORMAT(1,2); - - /* sort.c */ extern int cmp_int(const void *a, const void *b); extern int cmp_int_desc(const void * a, const void * b); diff --git a/include/osdep.h b/include/osdep.h index 17462069..594259d8 100644 --- a/include/osdep.h +++ b/include/osdep.h @@ -1,46 +1,49 @@ - +/* $Id */ #ifndef __OSDEP_H__ #define __OSDEP_H__ -/* os dependant include file, define */ -#ifdef __FreeBSD__ - #if __FreeBSD__ >= 5 - #include <sys/limits.h> - #else - #include <machine/limits.h> - #endif - - #include <machine/param.h> - - #define HAVE_SETPROCTITLE +#ifdef __GNUC__ +#define GCC_CHECK_FORMAT(a,b) __attribute__ ((format (printf, a, b))) +#else +#define GCC_CHECK_FORMAT(a,b) +#endif -#elif defined(__linux__) +/* os dependant include file, define */ +#ifdef __linux__ #ifndef _GNU_SOURCE - #define _GNU_SOURCE /* for strcasestr */ +#define _GNU_SOURCE /* for strcasestr */ #endif - #include <sys/ioctl.h> - #include <sys/file.h> /* for flock() */ - #include <strings.h> /* for strcasecmp() */ - #define NEED_STRLCPY - #define NEED_STRLCAT +#include <sys/ioctl.h> +#include <sys/file.h> /* for flock() */ +#include <strings.h> /* for strcasecmp() */ -#else - - #error "Unknown OSTYPE" +#define NEED_STRLCPY +#define NEED_STRLCAT +#define NEED_SETPROCTITLE +#elif ! defined(__FreeBSD__) +#error "Unknown OSTYPE" #endif - #define Signal (signal) #ifdef NEED_STRLCPY - size_t strlcpy(char *dst, const char *src, size_t size); +size_t strlcpy(char *dst, const char *src, size_t size); #endif + #ifdef NEED_STRLCAT - size_t strlcat(char *dst, const char *src, size_t size); +size_t strlcat(char *dst, const char *src, size_t size); #endif +#ifdef NEED_SETPROCTITLE +#include <stdarg.h> +extern void initsetproctitle(int argc, char **argv, char **envp); +extern void setproctitle(const char* format, ...) GCC_CHECK_FORMAT(1,2); +#else +#define initsetproctitle(...) +#endif +extern int cpuload(char *str); #endif diff --git a/innbbsd/Makefile b/innbbsd/Makefile index 0a40c7db..7d07107d 100644 --- a/innbbsd/Makefile +++ b/innbbsd/Makefile @@ -39,7 +39,8 @@ ${UTIL_DIR}/${fn}: # FIXME: dependency cd ${UTIL_DIR}; make ${fn} .endfor -LINK_UTIL_OBJS+= $(SRCROOT)/common/sys/libcmsys.a \ +LDLIBS+=$(SRCROOT)/common/osdep/libosdep.a \ + $(SRCROOT)/common/sys/libcmsys.a \ $(SRCROOT)/common/bbs/libcmbbs.a echobbslib.o: echobbslib.c @@ -48,20 +49,20 @@ echobbslib.o: echobbslib.c innbbsd: inndchannel.o innbbsd.o connectsock.o rfc931.o daemon.o \ file.o pmain.o his.o dbz.o closeonexec.o dbztool.o \ inntobbs.o receive_article.o echobbslib.o str_decode.o nocem.o - ${CC} -o $@ ${LDFLAGS} $? ${LINK_UTIL_OBJS} + ${CC} -o $@ ${LDFLAGS} $? ${LINK_UTIL_OBJS} $(LDLIBS) bbslink: bbslink.o pmain.o inntobbs.o echobbslib.o connectsock.o \ file.o port.o str_decode.o - ${CC} -o $@ ${LDFLAGS} $? ${LINK_UTIL_OBJS} + ${CC} -o $@ ${LDFLAGS} $? ${LINK_UTIL_OBJS} $(LDLIBS) bbsnnrp: bbsnnrp.o pmain.o bbslib.o connectsock.o file.o - ${CC} -o $@ ${LDFLAGS} $? ${LINK_UTIL_OBJS} + ${CC} -o $@ ${LDFLAGS} $? ${LINK_UTIL_OBJS} $(LDLIBS) ctlinnbbsd: ctlinnbbsd.o pmain.o bbslib.o connectsock.o file.o - ${CC} -o $@ ${LDFLAGS} $? ${LINK_UTIL_OBJS} + ${CC} -o $@ ${LDFLAGS} $? ${LINK_UTIL_OBJS} $(LDLIBS) mkhistory: mkhistory.o bbslib.o file.o his.o dbz.o port.o closeonexec.o - ${CC} -o $@ ${LDFLAGS} $? ${LINK_UTIL_OBJS} + ${CC} -o $@ ${LDFLAGS} $? ${LINK_UTIL_OBJS} $(LDLIBS) install: ${PROGS} install -d ${BBSHOME}/innd/ diff --git a/mbbsd/Makefile b/mbbsd/Makefile index 7f55d702..38586512 100644 --- a/mbbsd/Makefile +++ b/mbbsd/Makefile @@ -86,7 +86,8 @@ LDFLAGS+=-Wl,--sort-common #OBJS+= ../upgrade/merge_sob.o #.endif -LDLIBS+=$(SRCROOT)/common/bbs/libcmbbs.a \ +LDLIBS+=$(SRCROOT)/common/osdep/libosdep.a \ + $(SRCROOT)/common/bbs/libcmbbs.a \ $(SRCROOT)/common/sys/libcmsys.a ####################################################################### diff --git a/trans/Makefile b/trans/Makefile index 50294ff4..1b960ec7 100644 --- a/trans/Makefile +++ b/trans/Makefile @@ -29,7 +29,8 @@ CPROG_WITHOUT_UTIL= \ # 下面這些程式會被 install PROGS= ${CPROG_WITH_UTIL} ${CPROG_WITHOUT_UTIL} ${CPP_WITH_UTIL}\ -LIBS+= $(SRCROOT)/common/sys/libcmsys.a \ +LDLIBS+=$(SRCROOT)/common/osdep/libosdep.a \ + $(SRCROOT)/common/sys/libcmsys.a \ $(SRCROOT)/common/bbs/libcmbbs.a @@ -37,12 +38,12 @@ all: $(SRCROOT)/include/var.h ${CPROG_WITH_UTIL} ${CPROG_WITHOUT_UTIL} ${CPP_WIT .for fn in ${CPROG_WITH_UTIL} ${fn}: ${BBSBASE} ${fn}.c ${UTIL_OBJS} - ${CC} ${CFLAGS} ${LDFLAGS} -o ${fn} ${UTIL_OBJS} ${fn}.c $(LIBS) + ${CC} ${CFLAGS} ${LDFLAGS} -o ${fn} ${UTIL_OBJS} ${fn}.c $(LDLIBS) .endfor .for fn in ${CPP_WITH_UTIL} ${fn}: ${BBSBASE} ${fn}.cc ${UTIL_OBJS} - ${CXX} ${CXXFLAGS} ${LDFLAGS} -o ${fn} ${UTIL_OBJS} ${fn}.cc $(LIBS) + ${CXX} ${CXXFLAGS} ${LDFLAGS} -o ${fn} ${UTIL_OBJS} ${fn}.cc $(LDLIBS) .endfor .for fn in ${MBBSD_OBJS} diff --git a/util/Makefile b/util/Makefile index 5c418c0f..6a96d38a 100644 --- a/util/Makefile +++ b/util/Makefile @@ -44,7 +44,8 @@ PROGS= ${CPROG_WITH_UTIL} ${CPROG_WITHOUT_UTIL} ${CPP_WITH_UTIL}\ dailybackup.pl tarqueue.pl waterball.pl filtermail.pl \ getbackup.pl udnnews.pl rebuildaloha.pl -LDLIBS+= $(SRCROOT)/common/sys/libcmsys.a \ +LDLIBS+=$(SRCROOT)/common/osdep/libosdep.a \ + $(SRCROOT)/common/sys/libcmsys.a \ $(SRCROOT)/common/bbs/libcmbbs.a |