diff options
-rw-r--r-- | Makerules | 6 | ||||
-rw-r--r-- | utils/Makefile | 96 | ||||
-rw-r--r-- | utils/Makefile.in | 95 |
3 files changed, 104 insertions, 93 deletions
@@ -85,6 +85,12 @@ cmd_compile-m = $(CC) $^ -c -o $@ $(CFLAGS) $(ARCH_CFLAGS) $(CFLAGS-$(suffix $@) cmd_strip = $(STRIPTOOL) $(STRIP_FLAGS) $^ cmd_ar = $(AR) $(ARFLAGS) $@ $^ +define compile.u + $(CC) $^ $(DEPS-$(notdir $@)) -o $@ $(CFLAGS) $(CFLAGS-$(notdir $(^D))) $(CFLAGS-$(notdir $@)) + $(STRIPTOOL) $(STRIP_FLAGS) $@ +endef +hcompile.u = $(HOSTCC) $^ $(DEPS-$(notdir $@)) -o $@ -Wl,-s $(HOSTCFLAGS) $(HOSTCFLAGS-$(notdir $(^D))) $(HOSTCFLAGS-$(notdir $@)) + compile.c = @$(disp_compile.c) ; $(cmd_compile.c) compile.E = $(cmd_compile.c:-c=-E) compile.S = @$(disp_compile.S) ; $(cmd_compile.S) diff --git a/utils/Makefile b/utils/Makefile index d3961dc3b..bdaea9fd4 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -8,96 +8,6 @@ top_srcdir=../ top_builddir=../ include $(top_builddir)Rules.mak - -CFLAGS += $(SSP_ALL_CFLAGS) -B$(top_builddir)lib -I$(top_srcdir)ldso/include - -TARGETS = ldd ldconfig - -ifeq ($(UCLIBC_HAS_LOCALE),y) -TARGET_ICONV = iconv -else -TARGET_ICONV = -endif - -ifeq ($(LDSO_CACHE_SUPPORT),y) -HOST_LDSO_CACHE_FLAG = -D__LDSO_CACHE_SUPPORT__=1 -else -HOST_LDSO_CACHE_FLAG = -endif - -# NOTE: We build the utils AFTER we have a uClibc-targeted toolchain. - -ifeq ($(HAVE_SHARED),y) -all: $(TARGETS) $(TARGET_ICONV) -else -all: $(TARGET_ICONV) -endif - -readelf: readelf.c - $(CC) $(CFLAGS) $^ -o $@ - $(STRIPTOOL) -s -x -R .note -R .comment $@ - -ifeq ($(UCLIBC_STATIC_LDCONFIG),y) -LDCONFIG_CFLAGS := -static -else -LDCONFIG_CFLAGS := $(PIEFLAG) $(LDPIEFLAG) -endif -ldconfig: ldconfig.c chroot_realpath.c - $(CC) $(CFLAGS) $(LDCONFIG_CFLAGS) \ - -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \ - -DUCLIBC_LDSO=$(UCLIBC_LDSO) \ - $^ -o $@ - $(STRIPTOOL) -s -x -R .note -R .comment $@ - -LDD_CFLAGS := $(PIEFLAG) $(LDPIEFLAG) -ldd: ldd.c - $(CC) $(CFLAGS) $(LDD_CFLAGS) \ - -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \ - -DUCLIBC_LDSO=$(UCLIBC_LDSO) \ - $^ -o $@ - $(STRIPTOOL) -s -x -R .note -R .comment $@ - -ICONV_CFLAGS := $(PIEFLAG) $(LDPIEFLAG) -iconv: $(top_srcdir)libc/misc/wchar/wchar.c - $(CC) $(CFLAGS) $(ICONV_CFLAGS) \ - -DL_iconv_main \ - $^ -o $@ - $(STRIPTOOL) -s -x -R .note -R .comment $@ - -ifeq ($(HAVE_SHARED),y) -hostutils: ldd.host ldconfig.host readelf.host -else -hostutils: readelf.host -endif - -HOSTCFLAGS += -include $(top_srcdir)include/elf.h - -ldd.host: ldd.c - $(HOSTCC) $(HOSTCFLAGS) -Wl,-s \ - -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" $(HOST_LDSO_CACHE_FLAG) \ - -DUCLIBC_LDSO=$(UCLIBC_LDSO) -I$(top_srcdir)ldso/include \ - $^ -o $@ - -ldconfig.host: ldconfig.c chroot_realpath.c - $(HOSTCC) $(HOSTCFLAGS) -Wl,-s \ - -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" $(HOST_LDSO_CACHE_FLAG) \ - -DUCLIBC_LDSO=$(UCLIBC_LDSO) -I$(top_srcdir)ldso/include \ - $^ -o $@ - -readelf.host: readelf.c - $(HOSTCC) $(HOSTCFLAGS) -Wl,-s $^ -o $@ - -clean: - $(RM) $(TARGETS) *.o *~ core readelf iconv *.host - -install: all -ifeq ($(HAVE_SHARED),y) - $(INSTALL) -d $(PREFIX)$(RUNTIME_PREFIX)sbin - $(INSTALL) -d $(PREFIX)$(RUNTIME_PREFIX)usr/bin - $(INSTALL) -m 755 ldd $(PREFIX)$(RUNTIME_PREFIX)usr/bin/ldd - $(INSTALL) -m 755 ldconfig $(PREFIX)$(RUNTIME_PREFIX)sbin/ldconfig - #$(INSTALL) -m 755 readelf $(PREFIX)$(RUNTIME_PREFIX)usr/bin/readelf -endif -ifeq ($(UCLIBC_HAS_LOCALE),y) - $(INSTALL) -m 755 iconv $(PREFIX)$(RUNTIME_PREFIX)usr/bin/iconv -endif +all: utils +include Makefile.in +include $(top_srcdir)Makerules diff --git a/utils/Makefile.in b/utils/Makefile.in new file mode 100644 index 000000000..d5b4da568 --- /dev/null +++ b/utils/Makefile.in @@ -0,0 +1,95 @@ +# Makefile for uClibc +# +# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org> +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +CFLAGS-utils := $(SSP_ALL_CFLAGS) -B$(top_builddir)lib + +CFLAGS-utils-common := -I$(top_srcdir)ldso/include -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" -DUCLIBC_LDSO=$(UCLIBC_LDSO) +CFLAGS-utils-shared := $(PIEFLAG) $(LDPIEFLAG) + +CFLAGS-ldconfig := $(CFLAGS-utils-common) + +ifeq ($(UCLIBC_STATIC_LDCONFIG),y) +CFLAGS-ldconfig += -static +else +CFLAGS-ldconfig += $(CFLAGS-utils-shared) +endif + +CFLAGS-ldd := $(CFLAGS-utils-common) $(CFLAGS-utils-shared) + +CFLAGS-iconv := $(CFLAGS-utils-shared) -DL_iconv_main + +CFLAGS-readelf := $(CFLAGS-utils-shared) + +HOSTCFLAGS-utils := -include $(top_srcdir)include/elf.h + +HOSTCFLAGS-utils-common := $(CFLAGS-utils-common) + +ifeq ($(LDSO_CACHE_SUPPORT),y) +HOSTCFLAGS-utils-common += -D__LDSO_CACHE_SUPPORT__=1 +endif + +HOSTCFLAGS-ldconfig.host := $(HOSTCFLAGS-utils-common) + +HOSTCFLAGS-ldd.host := $(HOSTCFLAGS-utils-common) -D_GNU_SOURCE + +utils_DIR := $(top_srcdir)utils +utils_OUT := $(top_builddir)utils + +DEPS-ldconfig := $(utils_DIR)/chroot_realpath.c +DEPS-ldconfig.host := $(DEPS-ldconfig) + +utils_OBJ := readelf +ifeq ($(HAVE_SHARED),y) +utils_OBJ += ldconfig ldd +endif + +utils_ICONV_OBJ = +ifeq ($(UCLIBC_HAS_LOCALE),y) +utils_ICONV_OBJ := $(utils_OUT)/iconv +endif + +utils_OBJ := $(patsubst %,$(utils_OUT)/%,$(utils_OBJ)) + +hostutils_OBJ := $(patsubst %,%.host,$(utils_OBJ)) + +utils: $(utils_OBJ) $(utils_ICONV_OBJ) + +# NOTE: We build the utils AFTER we have a uClibc-targeted toolchain. + +$(utils_OBJ): $(utils_OUT)/% : $(utils_DIR)/%.c | $(libc) + $(compile.u) + +$(utils_OUT)/iconv.c: $(top_srcdir)libc/misc/wchar/wchar.c | $(libc) + $(compile.u) + +hostutils: $(hostutils_OBJ) + +$(hostutils_OBJ): $(utils_OUT)/%.host : $(utils_DIR)/%.c + $(hcompile.u) + +# to be removed after included by main Makefile.in +install: install_utils +clean: utils_clean + +install-y += install_utils + +install_utils: utils + $(INSTALL) -d $(PREFIX)$(RUNTIME_PREFIX)usr/bin + #$(INSTALL) -m 755 $(utils_OUT)/readelf $(PREFIX)$(RUNTIME_PREFIX)usr/bin/readelf +ifeq ($(HAVE_SHARED),y) + $(INSTALL) -d $(PREFIX)$(RUNTIME_PREFIX)sbin + $(INSTALL) -m 755 $(utils_OUT)/ldd $(PREFIX)$(RUNTIME_PREFIX)usr/bin/ldd + $(INSTALL) -m 755 $(utils_OUT)/ldconfig $(PREFIX)$(RUNTIME_PREFIX)sbin/ldconfig +endif +ifeq ($(UCLIBC_HAS_LOCALE),y) + $(INSTALL) -m 755 $(utils_OUT)/iconv $(PREFIX)$(RUNTIME_PREFIX)usr/bin/iconv +endif + +objclean-y += utils_clean + +utils_clean: + $(RM) $(utils_OUT)/{ldconfig,ldd,readelf,iconv,*.host} |