OSDN Git Service

ARC: Make vfork weak in libc
[uclinux-h8/uClibc.git] / utils / Makefile.in
index f9a30af..d725282 100644 (file)
@@ -1,15 +1,23 @@
 # Makefile for uClibc
 #
-# Copyright (C) 2000-2008 Erik Andersen <andersen@uclibc.org>
+# Copyright (C) 2000-2009 Erik Andersen <andersen@uclibc.org>
 #
 # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
 
+subdirs += utils
+
 # "make utils" flags
 
-# ldconfig,ldd,readelf had also:
-# -Wl,-rpath,/lib
-# -Wl,--dynamic-linker,/lib/ld-uClibc.so.0
-# -Wl,--hash-style=gnu
+CFLAGS-utils := \
+    $(SSP_ALL_CFLAGS) \
+    -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
+    -I$(top_srcdir)ldso/include \
+    -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \
+    -DUCLIBC_LDSO=\"$(UCLIBC_LDSO)\" \
+    -I$(top_srcdir)/$(KERNEL_HEADERS) \
+    -DNOT_IN_libc \
+    -B$(top_builddir)lib \
+    -Wl,-rpath-link,$(top_builddir)lib
 
 ifeq ($(UCLIBC_BUILD_PIE),y)
 CFLAGS-utils-shared := $(PIEFLAG) $(LDPIEFLAG)
@@ -17,85 +25,54 @@ else
 CFLAGS-utils-shared :=
 endif
 
-CFLAGS-ldconfig := \
-    -I$(top_srcdir)ldso/include \
-    -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \
-    -DUCLIBC_LDSO=$(UCLIBC_LDSO)
+CFLAGS-ldconfig := -DBUILDING_LINKAGE
 ifeq ($(UCLIBC_STATIC_LDCONFIG),y)
 CFLAGS-ldconfig += -static
 else
-CFLAGS-ldconfig += \
-    $(CFLAGS-utils-shared) \
-    -Wl,-rpath-link,$(top_builddir)lib
+CFLAGS-ldconfig += $(CFLAGS-utils-shared)
 endif
-# Can't just pull in $(CFLAGS), there are bad include paths.
-# We want to use "sanitized" headers in LOCAL_INSTALL_PATH.
-CFLAGS-ldconfig += \
-    $(XWARNINGS) $(CPU_CFLAGS) $(SSP_CFLAGS) $(OPTIMIZATION) \
-    -nostdinc \
-    -I $(top_builddir)/$(LOCAL_INSTALL_PATH)/usr/include \
-    $(CC_INC) \
-    -B$(top_builddir)lib \
 
-CFLAGS-ldd := \
-    $(CFLAGS-utils-shared) \
-    $(XWARNINGS) $(CPU_CFLAGS) $(SSP_CFLAGS) $(OPTIMIZATION) \
-    -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" -DUCLIBC_LDSO=$(UCLIBC_LDSO) \
-    -nostdinc \
-    -I$(top_srcdir)ldso/include \
-    -I$(top_builddir)/$(LOCAL_INSTALL_PATH)/usr/include \
-    $(CC_INC) \
-    -B$(top_builddir)lib \
-    -Wl,-rpath-link,$(top_builddir)lib \
+CFLAGS-ldd := $(CFLAGS-utils-shared) -DBUILDING_LINKAGE
 
-CFLAGS-readelf := \
+# Need CFLAGS-utils explicitly, because the source file is not located in utils
+CFLAGS-iconv := $(CFLAGS-utils) \
     $(CFLAGS-utils-shared) \
-    $(XWARNINGS) $(CPU_CFLAGS) $(SSP_CFLAGS) $(OPTIMIZATION) \
-    -nostdinc \
-    -I $(top_builddir)/$(LOCAL_INSTALL_PATH)/usr/include \
-    $(CC_INC) \
-    -B$(top_builddir)lib \
-    -Wl,-rpath-link,$(top_builddir)lib \
-
-# iconv and locale use non-sanitized headers by just pulling in $(CFLAGS)
-CFLAGS-iconv := \
-    $(CFLAGS) $(CFLAGS-utils-shared) \
-    -DNOT_IN_libc \
-    -DL_iconv_main \
-    -I$(top_srcdir)/$(KERNEL_HEADERS) \
-    -B$(top_builddir)lib \
-    -Wl,-rpath-link,$(top_builddir)lib \
-
-CFLAGS-locale := \
-    $(CFLAGS) $(CFLAGS-utils-shared) \
-    -DNOT_IN_libc \
-    -B$(top_builddir)lib \
-    -Wl,-rpath-link,$(top_builddir)lib \
+    -I$(top_srcdir)libc/misc/wchar
 
+CFLAGS-locale := $(CFLAGS-utils)
+CFLAGS-getconf :=$(CFLAGS-utils) \
+       -DGETCONF_DIR='"$(CURDIR)"'
 
 # "make hostutils" flags
 
-ifeq ($(LDSO_CACHE_SUPPORT),y)
-LDSO_CACHE_SUPPORT := -D__LDSO_CACHE_SUPPORT__=1
-endif
+UTILS_CONFIG_FLAGS-y :=
+UTILS_CONFIG_FLAGS-$(LDSO_CACHE_SUPPORT) += -D__LDSO_CACHE_SUPPORT__
+UTILS_CONFIG_FLAGS-$(LDSO_LDD_SUPPORT) += -D__LDSO_LDD_SUPPORT__
+UTILS_CONFIG_FLAGS-$(LDSO_STANDALONE_SUPPORT) += -D__LDSO_STANDALONE_SUPPORT__
 
-BUILD_CFLAGS-ldconfig.host := -Wl,-s \
-    -include $(top_srcdir)include/elf.h \
-    -I$(top_srcdir)ldso/include \
+BUILD_CFLAGS-utils := \
     -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \
-    -DUCLIBC_LDSO=$(UCLIBC_LDSO) \
-    $(LDSO_CACHE_SUPPORT) \
-
-BUILD_CFLAGS-ldd.host := -Wl,-s \
-    -include $(top_srcdir)include/elf.h \
-    -I$(top_srcdir)ldso/include \
-    -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \
-    -DUCLIBC_LDSO=$(UCLIBC_LDSO) \
-    $(LDSO_CACHE_SUPPORT) \
-
-BUILD_CFLAGS-readelf.host := -Wl,-s \
-    -include $(top_srcdir)include/elf.h \
-
+    -DUCLIBC_LDSO=\"$(UCLIBC_LDSO)\" \
+    $(UTILS_CONFIG_FLAGS-y)
+BUILD_CFLAGS-ldconfig.host := \
+                               -DBUILDING_LINKAGE \
+                               -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
+                               -I$(top_srcdir)ldso/include
+BUILD_CFLAGS-ldd.host      := \
+                               -DBUILDING_LINKAGE \
+                               -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
+                               -I$(top_srcdir)ldso/include \
+                               -include $(top_srcdir)include/elf.h
+BUILD_CFLAGS-locale.host   := \
+                               -DNOT_IN_libc \
+                               -I$(top_srcdir)utils/ \
+                               -I.
+BUILD_CFLAGS-iconv.host    := \
+                       -include $(top_builddir)extra/locale/c8tables.h \
+                       -I$(top_srcdir)libc/misc/wchar -DL_iconv_main
+
+BUILD_CFLAGS-getconf.host  := \
+                               -DGETCONF_DIR='"$(CURDIR)"'
 
 # Rules
 
@@ -105,44 +82,36 @@ utils_OUT := $(top_builddir)utils
 DEPS-ldconfig := $(utils_DIR)/chroot_realpath.c
 DEPS-ldconfig.host := $(DEPS-ldconfig)
 
-utils_OBJ := readelf
+utils_OBJ := getconf
 ifeq ($(HAVE_SHARED),y)
 utils_OBJ += ldconfig ldd
 endif
 
-utils_ICONV_OBJ :=
 utils_LOCALE_OBJ :=
 ifeq ($(UCLIBC_HAS_LOCALE),y)
-utils_ICONV_OBJ := $(utils_OUT)/iconv
-utils_LOCALE_OBJ := $(utils_OUT)/locale
+utils_OBJ += iconv
+#utils_LOCALE_OBJ += $(utils_OUT)/locale
 endif
 
 utils_OBJ := $(patsubst %,$(utils_OUT)/%,$(utils_OBJ))
 
 hostutils_OBJ := $(patsubst %,%.host,$(utils_OBJ))
+hostutils_LOCALE_OBJ := $(patsubst %,%.host,$(utils_LOCALE_OBJ))
 
-utils: $(utils_OBJ) $(utils_ICONV_OBJ) $(utils_LOCALE_OBJ)
+utils: $(utils_OBJ) $(utils_LOCALE_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: $(top_srcdir)libc/misc/wchar/wchar.c | $(libc)
-       $(compile.u)
-
 $(utils_OUT)/locale: $(top_srcdir)extra/locale/programs/locale.c | $(libc)
        $(compile.u)
 
-# Instruct make to install uclibc locally before buiding target utils
-$(utils_OBJ): | $(top_builddir)/$(LOCAL_INSTALL_PATH)
-$(utils_OUT)/iconv: | $(top_builddir)/$(LOCAL_INSTALL_PATH)
-$(utils_OUT)/locale: | $(top_builddir)/$(LOCAL_INSTALL_PATH)
-
-$(top_builddir)/$(LOCAL_INSTALL_PATH):
-       $(Q)$(MAKE) -C $(top_builddir) $(LOCAL_INSTALL_PATH)
+$(utils_OUT)/locale.host: $(top_srcdir)extra/locale/programs/locale.c | $(libc)
+       $(hcompile.u)
 
-hostutils: $(hostutils_OBJ)
+hostutils: $(hostutils_OBJ) $(hostutils_LOCALE_OBJ)
 
 $(hostutils_OBJ): $(utils_OUT)/%.host : $(utils_DIR)/%.c
        $(hcompile.u)
@@ -152,21 +121,21 @@ install-y += utils_install
 
 # This installs both utils and hostutils, so doesn't depend on either.
 
-utils_install: $(addsuffix $(DOTHOST), $(utils_OBJ) $(utils_ICONV_OBJ) $(utils_LOCALE_OBJ))
-       $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/readelf$(DOTHOST) $(PREFIX)$(DEVEL_PREFIX)bin/readelf
+utils_install: $(addsuffix $(DOTHOST), $(utils_OBJ) $(utils_LOCALE_OBJ))
+       $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/getconf$(DOTHOST) $(PREFIX)$(DEVEL_PREFIX)bin/getconf
 ifeq ($(HAVE_SHARED),y)
        $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/ldd$(DOTHOST) $(PREFIX)$(DEVEL_PREFIX)bin/ldd
        $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/ldconfig$(DOTHOST) $(PREFIX)$(RUNTIME_PREFIX)sbin/ldconfig
 endif
 ifeq ($(UCLIBC_HAS_LOCALE),y)
        $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/iconv$(DOTHOST) $(PREFIX)$(DEVEL_PREFIX)bin/iconv
-       $(Q)$(INSTALL) -m 755 $(utils_OUT)/locale$(DOTHOST) $(PREFIX)$(DEVEL_PREFIX)bin/locale
+       #$(Q)$(INSTALL) -m 755 $(utils_OUT)/locale$(DOTHOST) $(PREFIX)$(DEVEL_PREFIX)bin/locale
 endif
 
 
-objclean-y += utils_clean
+objclean-y += CLEAN_utils
 
-utils_clean:
-       $(do_rm) $(addprefix $(utils_OUT)/, ldconfig ldd readelf iconv locale *.host)
-       # This is a hack..
+CLEAN_utils:
+       $(do_rm) $(addprefix $(utils_OUT)/, getconf iconv ldconfig ldd locale *.host)
+       $(Q)# This is a hack..
        $(Q)$(RM) $(utils_OUT)/.*.dep