hush/libbb/Makefile.in
Paul Fox 6ab037872f made "test" an ash built-in.
moved the contents of libbb/bb_echo.c back into coreutils/echo.c,
which is a more reasonable place for them than libbb.  this
forces anyone who wants echo and test to be builtin to ash to
also have them available as applets.  their cost is very small,
and the number of people who wouldn't want them as applets is
also very small.

added warning about shell builtins vs. CONFIG_FEATURE_SH_STANDALONE_SHELL,
which conflicts with their use.

thanks to nathanael copa for debugging help.

some string size optimization in test.c may have been lost with
this commit, but this is a good new baseline.
2006-06-08 21:37:26 +00:00

148 lines
5.2 KiB
Makefile

# Makefile for busybox
#
# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
#
# Licensed under the GPL v2, see the file LICENSE in this tarball.
ifndef $(LIBBB_DIR)
LIBBB_DIR:=$(top_builddir)/libbb
endif
srcdir=$(top_srcdir)/libbb
LIBBB-n:=
LIBBB-y:= \
bb_asprintf.c ask_confirmation.c change_identity.c chomp.c \
compare_string_array.c concat_path_file.c copy_file.c copyfd.c \
crc32.c create_icmp_socket.c create_icmp6_socket.c \
device_open.c dump.c error_msg.c error_msg_and_die.c \
find_pid_by_name.c find_root_device.c fgets_str.c full_read.c \
full_write.c get_last_path_component.c get_line_from_file.c \
herror_msg.c herror_msg_and_die.c \
human_readable.c inet_common.c inode_hash.c isdirectory.c \
kernel_version.c last_char_is.c login.c \
make_directory.c md5.c mode_string.c mtab_file.c \
obscure.c parse_mode.c parse_number.c perror_msg.c \
perror_msg_and_die.c print_file.c get_console.c \
process_escape_sequence.c procps.c qmodule.c \
read_package_field.c recursive_action.c remove_file.c \
restricted_shell.c run_parts.c run_shell.c safe_read.c safe_write.c \
safe_strncpy.c setup_environment.c sha1.c simplify_path.c \
trim.c u_signal_names.c vdprintf.c verror_msg.c \
vherror_msg.c vperror_msg.c wfopen.c xconnect.c xgetcwd.c xstat.c \
xgethostbyname.c xgethostbyname2.c xreadlink.c xregcomp.c xgetlarg.c \
bb_xsocket.c bb_xdaemon.c bb_xbind.c bb_xlisten.c bb_xchdir.c \
get_terminal_width_height.c fclose_nonstdin.c fflush_stdout_and_exit.c \
getopt_ulflags.c default_error_retval.c wfopen_input.c speed_table.c \
perror_nomsg_and_die.c perror_nomsg.c skip_whitespace.c bb_askpass.c \
warn_ignoring_args.c concat_subpath_file.c vfork_daemon_rexec.c \
bb_do_delay.c
# conditionally compiled objects:
LIBBB-$(CONFIG_FEATURE_SHADOWPASSWDS)+=pwd2spwd.c
LIBBB-$(CONFIG_FEATURE_MOUNT_LOOP)+= loop.c
LIBBB-$(CONFIG_LOSETUP)+= loop.c
LIBBB-$(CONFIG_FEATURE_MTAB_SUPPORT)+= mtab.c
LIBBB-$(CONFIG_PASSWD)+= pw_encrypt.c
LIBBB-$(CONFIG_SULOGIN)+= pw_encrypt.c
LIBBB-$(CONFIG_FEATURE_HTTPD_AUTH_MD5)+= pw_encrypt.c
LIBBB-$(CONFIG_VLOCK)+= correct_password.c
LIBBB-$(CONFIG_SU)+= correct_password.c
LIBBB-$(CONFIG_LOGIN)+= correct_password.c
LIBBB-$(CONFIG_DF)+= find_mount_point.c
LIBBB-$(CONFIG_EJECT)+= find_mount_point.c
LIBBB-y:=$(patsubst %,$(srcdir)/%,$(LIBBB-y))
get-file-subparts = $(addsuffix .o,$(shell sed -n -e "s/^\#ifdef L_//p" ${1}))
# 1:N objects
LIBBB_MSRC0:=$(srcdir)/messages.c
LIBBB_MOBJ0:=$(call get-file-subparts, ${LIBBB_MSRC0})
LIBBB_MOBJ0:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ0))
$(LIBBB_MOBJ0):$(LIBBB_MSRC0)
$(compile.c) -DL_$(notdir $*)
LIBBB_MSRC1:=$(srcdir)/xfuncs.c
LIBBB_MOBJ1:=$(call get-file-subparts, ${LIBBB_MSRC1})
LIBBB_MOBJ1:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ1))
$(LIBBB_MOBJ1):$(LIBBB_MSRC1)
$(compile.c) -DL_$(notdir $*)
LIBBB_MSRC2:=$(srcdir)/printf.c
LIBBB_MOBJ2:=$(call get-file-subparts, ${LIBBB_MSRC2})
LIBBB_MOBJ2:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ2))
$(LIBBB_MOBJ2):$(LIBBB_MSRC2)
$(compile.c) -DL_$(notdir $*)
LIBBB_MSRC3:=$(srcdir)/xgetularg.c
LIBBB_MOBJ3:=$(call get-file-subparts, ${LIBBB_MSRC3})
LIBBB_MOBJ3:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ3))
$(LIBBB_MOBJ3):$(LIBBB_MSRC3)
$(compile.c) -DL_$(notdir $*)
LIBBB_MSRC4:=$(srcdir)/safe_strtol.c
LIBBB_MOBJ4:=$(call get-file-subparts, ${LIBBB_MSRC4})
LIBBB_MOBJ4:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ4))
$(LIBBB_MOBJ4):$(LIBBB_MSRC4)
$(compile.c) -DL_$(notdir $*)
LIBBB_MSRC5:=$(srcdir)/bb_pwd.c
LIBBB_MOBJ5:=$(call get-file-subparts, ${LIBBB_MSRC5})
LIBBB_MOBJ5:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ5))
$(LIBBB_MOBJ5):$(LIBBB_MSRC5)
$(compile.c) -DL_$(notdir $*)
LIBBB_MSRC6:=$(srcdir)/llist.c
LIBBB_MOBJ6:=$(call get-file-subparts, ${LIBBB_MSRC6})
LIBBB_MOBJ6:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ6))
$(LIBBB_MOBJ6):$(LIBBB_MSRC6)
$(compile.c) -DL_$(notdir $*)
LIBBB_MSRC7:=$(srcdir)/opendir.c
LIBBB_MOBJ7:=$(call get-file-subparts, ${LIBBB_MSRC7})
LIBBB_MOBJ7:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ7))
$(LIBBB_MOBJ7):$(LIBBB_MSRC7)
$(compile.c) -DL_$(notdir $*)
# We need the names of the object files built from MSRC for the L_ defines
LIBBB_ALL_MOBJ:=$(LIBBB_MOBJ0) $(LIBBB_MOBJ1) $(LIBBB_MOBJ2) $(LIBBB_MOBJ3) \
$(LIBBB_MOBJ4) $(LIBBB_MOBJ5) $(LIBBB_MOBJ6) $(LIBBB_MOBJ7)
LIBBB_ALL_MSRC:=$(LIBBB_MSRC0) $(LIBBB_MSRC1) $(LIBBB_MSRC2) $(LIBBB_MSRC3) \
$(LIBBB_MSRC4) $(LIBBB_MSRC5) $(LIBBB_MSRC6) $(LIBBB_MSRC7)
LIBBB-y:=$(sort $(LIBBB-y) $(LIBBB_ALL_MSRC))
LIBBB_AR:=$(LIBBB_DIR)/libbb.a
libraries-y+=$(LIBBB_AR)
needcrypt-y:=
ifneq ($(filter $(srcdir)/pw_encrypt.c,$(LIBBB-y)),)
needcrypt-y:=y
else
ifneq ($(filter $(srcdir)/correct_password.c,$(LIBBB-y)),)
needcrypt-y:=y
endif
endif
ifeq ($(needcrypt-y),y)
LIBRARIES := -lcrypt $(filter-out -lcrypt,$(LIBRARIES))
endif
# all 1:1 objects
LIBBB_OBJS:=$(patsubst $(srcdir)/%.c,$(LIBBB_DIR)/%.o, $(LIBBB-y))
$(LIBBB_DIR)/%.o: $(srcdir)/%.c
$(compile.c)
LIBBB_SRC-a:=$(wildcard $(srcdir)/*.c)
LIBRARY_SRC-y+=$(LIBBB-y)
LIBRARY_SRC-a+=$(LIBBB_SRC-a)
# all defines needed for 1:N objects
LIBBB_DEFINE-y:=$(patsubst %,-DL_%,$(subst .o,,$(notdir $(LIBBB_ALL_MOBJ))))
LIBRARY_DEFINE-y+=$(LIBBB_DEFINE-y)
LIBRARY_DEFINE-a+=$(LIBBB_DEFINE-y)
$(LIBBB_AR): $(LIBBB_OBJS) $(LIBBB_ALL_MOBJ)
$(do_ar)