# And option 4:
-include applet_source_list
-OBJECTS = $(APPLET_SOURCES:.c=.o) busybox.o messages.o usage.o applets.o
+OBJECTS = $(APPLET_SOURCES:.c=.o) busybox.o usage.o applets.o
CFLAGS += $(CROSS_CFLAGS)
CFLAGS += -DBB_VER='"$(VERSION)"'
CFLAGS += -DBB_BT='"$(BUILDTIME)"'
syslog_msg_with_name.c time_string.c trim.c untar.c unzip.c vdprintf.c \
verror_msg.c vperror_msg.c wfopen.c xfuncs.c xgetcwd.c xregcomp.c interface.c \
remove_file.c
-
LIBBB_OBJS=$(patsubst %.c,$(LIBBB)/%.o, $(LIBBB_CSRC))
LIBBB_CFLAGS = -I$(LIBBB)
ifneq ($(strip $(BB_SRC_DIR)),)
LIBBB_CFLAGS += -I$(BB_SRC_DIR)/$(LIBBB)
endif
+LIBBB_MSRC=libbb/messages.c
+LIBBB_MESSAGES= full_version name_too_long omitting_directory not_a_directory \
+memory_exhausted invalid_date invalid_option io_error dash_dash_help \
+write_error too_few_args name_longer_than_foo
+LIBBB_MOBJ=$(patsubst %,$(LIBBB)/%.o, $(LIBBB_MESSAGES))
+
# Put user-supplied flags at the end, where they
# have a chance of winning.
- mkdir -p $(LIBBB)
$(CC) $(CFLAGS) $(LIBBB_CFLAGS) -c $< -o $*.o
+$(LIBBB_MOBJ): $(LIBBB_MSRC)
+ $(CC) $(CFLAGS) $(LIBBB_CFLAGS) -DL_$(patsubst libbb/%,%,$*) -c $< -o $*.o
+
libpwd.a: $(PWD_OBJS)
$(AR) $(ARFLAGS) $@ $^
-libbb.a: $(LIBBB_OBJS)
+libbb.a: $(LIBBB_MOBJ) $(LIBBB_OBJS)
$(AR) $(ARFLAGS) $@ $^
usage.o: usage.h
#undef PROTOTYPES
#include "applets.h"
-#define bb_need_full_version
-#define BB_DECLARE_EXTERN
-#include "messages.c"
-
struct BB_applet *applet_using;
/* The -1 arises because of the {0,NULL,0,-1} entry above. */
#undef PROTOTYPES
#include "applets.h"
-#define bb_need_full_version
-#define BB_DECLARE_EXTERN
-#include "messages.c"
-
struct BB_applet *applet_using;
/* The -1 arises because of the {0,NULL,0,-1} entry above. */
#include <errno.h>
#include <stdlib.h>
#include "busybox.h"
-
-#define bb_need_full_version
-#define BB_DECLARE_EXTERN
-#include "messages.c"
-
#ifdef BB_LOCALE_SUPPORT
#include <locale.h>
#endif
#include <unistd.h>
#include <getopt.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_memory_exhausted
-#define bb_need_name_too_long
-#include "messages.c"
extern int gunzip_main(int argc, char **argv)
{
#include <unistd.h>
#include <errno.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_memory_exhausted
-#include "messages.c"
#define memzero(s, n) memset ((void *)(s), 0, (n))
#include <signal.h>
#include <stdlib.h>
#include "libbb.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_memory_exhausted
-#define bb_need_name_too_long
-#include "../messages.c"
FILE *in_file, *out_file;
#include <signal.h>
#include <stdlib.h>
#include "libbb.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_memory_exhausted
-#define bb_need_name_too_long
-#include "../messages.c"
FILE *in_file, *out_file;
#include <stdlib.h>
#include <unistd.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_io_error
-#define bb_need_name_longer_than_foo
-#include "messages.c"
/* Tar file constants */
#ifndef MAJOR
#include <errno.h>
#include <stdlib.h>
#include "busybox.h"
-
-#define bb_need_full_version
-#define BB_DECLARE_EXTERN
-#include "messages.c"
-
#ifdef BB_LOCALE_SUPPORT
#include <locale.h>
#endif
#include <string.h>
#include <unistd.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_invalid_option
-#define bb_need_too_few_args
-#include "messages.c"
/* Don't use lchown for libc5 or glibc older then 2.1.x */
#if (__GLIBC__ < 2) && (__GLIBC_MINOR__ < 1)
#include <unistd.h>
#include <getopt.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_too_few_args
-#include "messages.c"
struct stat *theMode;
#include <string.h>
#include <unistd.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_too_few_args
-#include "messages.c"
-
/* Don't use lchown for libc5 or glibc older then 2.1.x */
#if (__GLIBC__ < 2) && (__GLIBC_MINOR__ < 1)
#include <string.h>
#include <unistd.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_invalid_option
-#define bb_need_too_few_args
-#include "messages.c"
/* Don't use lchown for libc5 or glibc older then 2.1.x */
#if (__GLIBC__ < 2) && (__GLIBC_MINOR__ < 1)
#include <unistd.h>
#include <getopt.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_too_few_args
-#include "messages.c"
struct stat *theMode;
#include <string.h>
#include <unistd.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_too_few_args
-#include "messages.c"
-
/* Don't use lchown for libc5 or glibc older then 2.1.x */
#if (__GLIBC__ < 2) && (__GLIBC_MINOR__ < 1)
#include <string.h>
#include <getopt.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_invalid_date
-#define bb_need_memory_exhausted
-#include "messages.c"
/* This 'date' command supports only 2 time setting formats,
#include <string.h>
#include <errno.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_name_too_long
-#include "messages.c"
#ifdef BB_FEATURE_HUMAN_READABLE
return status;
}
-/* $Id: du.c,v 1.44 2001/04/09 22:48:11 andersen Exp $ */
+/* $Id: du.c,v 1.45 2001/04/25 05:39:18 andersen Exp $ */
/*
Local Variables:
c-file-style: "linux"
#include <errno.h>
#include <unistd.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_not_a_directory
-#include "messages.c"
static const int LN_SYMLINK = 1;
#include <string.h>
#include <stdlib.h>
#include "busybox.h"
-#define bb_need_name_too_long
-#define BB_DECLARE_EXTERN
-#include "messages.c"
static int parentFlag = FALSE;
#include <stdlib.h>
#include <string.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_help
-#include "messages.c"
/* test(1) accepts the following grammar:
oexpr ::= aexpr | aexpr "-o" oexpr ;
#include <unistd.h>
#include <sys/types.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_write_error
-#include "messages.c"
static const int ASCII = 0377;
#include <string.h>
#include <getopt.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_invalid_date
-#define bb_need_memory_exhausted
-#include "messages.c"
/* This 'date' command supports only 2 time setting formats,
#include <string.h>
#include <errno.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_name_too_long
-#include "messages.c"
#ifdef BB_FEATURE_HUMAN_READABLE
return status;
}
-/* $Id: du.c,v 1.44 2001/04/09 22:48:11 andersen Exp $ */
+/* $Id: du.c,v 1.45 2001/04/25 05:39:18 andersen Exp $ */
/*
Local Variables:
c-file-style: "linux"
#include <stdlib.h>
#include <unistd.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_io_error
-#include "messages.c"
extern int dutmp_main(int argc, char **argv)
{
#include <unistd.h>
#include <getopt.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_memory_exhausted
-#define bb_need_name_too_long
-#include "messages.c"
extern int gunzip_main(int argc, char **argv)
{
#include <unistd.h>
#include <errno.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_memory_exhausted
-#include "messages.c"
#define memzero(s, n) memset ((void *)(s), 0, (n))
};
extern const char *applet_name;
+extern const char *full_version;
+extern const char *name_too_long;
+extern const char *omitting_directory;
+extern const char *not_a_directory;
+extern const char *memory_exhausted;
+extern const char *invalid_date;
+extern const char *invalid_option;
+extern const char *io_error;
+extern const char *dash_dash_help;
+extern const char *write_error;
+extern const char *too_few_args;
+extern const char *name_longer_than_foo;
#endif /* __LIBBB_H__ */
#include <sys/types.h>
#include <sys/wait.h>
#include "busybox.h"
-#define bb_need_full_version
-#define BB_DECLARE_EXTERN
-#include "messages.c"
#ifdef BB_SYSLOGD
# include <sys/syslog.h>
#endif
#include <sys/types.h>
#include <sys/wait.h>
#include "busybox.h"
-#define bb_need_full_version
-#define BB_DECLARE_EXTERN
-#include "messages.c"
#ifdef BB_SYSLOGD
# include <sys/syslog.h>
#endif
};
extern const char *applet_name;
+extern const char *full_version;
+extern const char *name_too_long;
+extern const char *omitting_directory;
+extern const char *not_a_directory;
+extern const char *memory_exhausted;
+extern const char *invalid_date;
+extern const char *invalid_option;
+extern const char *io_error;
+extern const char *dash_dash_help;
+extern const char *write_error;
+extern const char *too_few_args;
+extern const char *name_longer_than_foo;
#endif /* __LIBBB_H__ */
--- /dev/null
+/* vi: set sw=4 ts=4: */
+/*
+ * Copyright (C) 2001 by Lineo, inc.
+ * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include "../busybox.h"
+
+#ifdef L_full_version
+ const char *full_version = BB_BANNER " multi-call binary";
+#endif
+#ifdef L_name_too_long
+ const char *name_too_long = "file name too long";
+#endif
+
+#ifdef L_omitting_directory
+ const char *omitting_directory = "%s: omitting directory";
+#endif
+#ifdef L_not_a_directory
+ const char *not_a_directory = "%s: not a directory";
+#endif
+#ifdef L_memory_exhausted
+ const char *memory_exhausted = "memory exhausted";
+#endif
+#ifdef L_invalid_date
+ const char *invalid_date = "invalid date `%s'";
+#endif
+#ifdef L_invalid_option
+ const char *invalid_option = "invalid option -- %c";
+#endif
+#ifdef L_io_error
+ const char *io_error = "%s: input/output error -- %s";
+#endif
+#ifdef L_dash_dash_help
+ const char *dash_dash_help = "--help";
+#endif
+#ifdef L_write_error
+ const char *write_error = "Write Error";
+#endif
+#ifdef L_too_few_args
+ const char *too_few_args = "too few arguments";
+#endif
+#ifdef L_name_longer_than_foo
+ const char *name_longer_than_foo = "Names longer than %d chars not supported.";
+#endif
+
#include <stdlib.h> /* free() */
#include "libbb.h"
-
-/* same conditions as recursive_action */
-#define bb_need_name_too_long
-#define BB_DECLARE_EXTERN
-#include "../messages.c"
-
#undef DEBUG_RECURS_ACTION
#include <signal.h>
#include <stdlib.h>
#include "libbb.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_memory_exhausted
-#define bb_need_name_too_long
-#include "../messages.c"
FILE *in_file, *out_file;
#include <unistd.h>
#include "libbb.h"
-/* same conditions as recursive_action */
-#define bb_need_memory_exhausted
-#define BB_DECLARE_EXTERN
-#include "../messages.c"
-
#ifndef DMALLOC
extern void *xmalloc(size_t size)
#include <errno.h>
#include <unistd.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_not_a_directory
-#include "messages.c"
static const int LN_SYMLINK = 1;
+++ /dev/null
-/* vi: set sw=4 ts=4: */
-/*
- * Copyright (C) 2000 by BitterSweet Enterprises, LLC.
- * Written by Karl M. Hegbloom <karlheg@debian.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-/*
- * Let's put all of these messages in one place, and link this in as
- * a separate object module, so that there are not going to be
- * multiple non-unique but very similar strings in the binary.
- * Perhaps this will make it simpler to internationalize also, and
- * may make the binary slightly smaller.
- */
-
-// To use this header file, include something like this:
-//
-//#define BB_DECLARE_EXTERN
-//#define bb_need_memory_exhausted
-//#include "messages.c"
-//
-//Then just use the string memory_exhausted when it is needed.
-//
-
-#include "busybox.h"
-#ifndef _BB_MESSAGES_C
-#define _BB_MESSAGES_C
-
-#ifdef BB_DECLARE_EXTERN
-# define BB_DEF_MESSAGE(symbol, string_const) extern const char *symbol;
-#else
-# define BB_DEF_MESSAGE(symbol, string_const) const char *symbol = string_const;
-#endif
-
-
-#if defined bb_need_full_version || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(full_version, BB_BANNER " multi-call binary")
-#endif
-#if defined bb_need_name_too_long || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(name_too_long, "file name too long")
-#endif
-#if defined bb_need_omitting_directory || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(omitting_directory, "%s: omitting directory")
-#endif
-#if defined bb_need_not_a_directory || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(not_a_directory, "%s: not a directory")
-#endif
-#if defined bb_need_memory_exhausted || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(memory_exhausted, "memory exhausted")
-#endif
-#if defined bb_need_invalid_date || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(invalid_date, "invalid date `%s'")
-#endif
-#if defined bb_need_invalid_option || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(invalid_option, "invalid option -- %c")
-#endif
-#if defined bb_need_io_error || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(io_error, "%s: input/output error -- %s")
-#endif
-#if defined bb_need_help || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(dash_dash_help, "--help")
-#endif
-#if defined bb_need_write_error || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(write_error, "Write Error")
-#endif
-#if defined bb_need_too_few_args || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(too_few_args, "too few arguments")
-#endif
-#if defined bb_need_name_longer_than_foo || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(name_longer_than_foo, "Names longer than %d chars not supported.")
-#endif
-
-
-#endif /* _BB_MESSAGES_C */
-
#include <stdlib.h>
#include <unistd.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_io_error
-#include "messages.c"
extern int dutmp_main(int argc, char **argv)
{
#include <string.h>
#include <stdlib.h>
#include "busybox.h"
-#define bb_need_name_too_long
-#define BB_DECLARE_EXTERN
-#include "messages.c"
static int parentFlag = FALSE;
#include <stdlib.h>
#include <sys/ioctl.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_help
-#include "messages.c"
/* ED: sparc termios is broken: revert back to old termio handling. */
#ifdef BB_FEATURE_USE_TERMIOS
#include <string.h>
#include <sys/ioctl.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_help
-#include "messages.c"
static const int TERMINAL_WIDTH = 79; /* not 80 in case terminal has linefold bug */
#include <string.h>
#include <sys/ioctl.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_help
-#include "messages.c"
static const int TERMINAL_WIDTH = 79; /* not 80 in case terminal has linefold bug */
#include <stdlib.h>
#include <unistd.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_io_error
-#define bb_need_name_longer_than_foo
-#include "messages.c"
/* Tar file constants */
#ifndef MAJOR
#include <stdlib.h>
#include <string.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_help
-#include "messages.c"
/* test(1) accepts the following grammar:
oexpr ::= aexpr | aexpr "-o" oexpr ;
#include <unistd.h>
#include <sys/types.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_write_error
-#include "messages.c"
static const int ASCII = 0377;
#include <stdlib.h>
#include <sys/ioctl.h>
#include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_help
-#include "messages.c"
/* ED: sparc termios is broken: revert back to old termio handling. */
#ifdef BB_FEATURE_USE_TERMIOS