Procházet zdrojové kódy

Make utils includable into main Makefile.in, add compile.u and hcompile.u, usable in utils and probably tests. vapier, please quite them if you want to

Peter S. Mazinger před 20 roky
rodič
revize
b870fba08e
3 změnil soubory, kde provedl 104 přidání a 93 odebrání
  1. 6 0
      Makerules
  2. 3 93
      utils/Makefile
  3. 95 0
      utils/Makefile.in

+ 6 - 0
Makerules

@@ -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)

+ 3 - 93
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

+ 95 - 0
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}