6ab037872f
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.
148 lines
5.2 KiB
Makefile
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)
|