kconfig/kconfig.mk
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Feb 02 22:00:18 2009 +0000 (2009-02-02)
changeset 1201 c9967a6e3b25
parent 1087 5be36a4b304d
child 1254 90a099a0e902
permissions -rw-r--r--
Add a patchset for glibc 2_9. Vampirised from the gentoo repository.

/trunk/patches/glibc/2_9/500-ppc-glibc-2.9-atomic.patch | 414 414 0 0 ++++++++++
/trunk/patches/glibc/2_9/140-regex-BZ9697.patch | 111 111 0 0 +++
/trunk/patches/glibc/2_9/190-queue-header-updates.patch | 89 89 0 0 ++
/trunk/patches/glibc/2_9/370-hppa_glibc-2.7-hppa-nptl-carlos.patch | 249 249 0 0 ++++++
/trunk/patches/glibc/2_9/450-alpha-glibc-2.5-no-page-header.patch | 32 32 0 0 +
/trunk/patches/glibc/2_9/270-ldbl-nexttowardf.patch | 68 68 0 0 ++
/trunk/patches/glibc/2_9/330-2.3.3-china.patch | 35 35 0 0 +
/trunk/patches/glibc/2_9/340-new-valencian-locale.patch | 120 120 0 0 +++
/trunk/patches/glibc/2_9/410-2.9-fnmatch.patch | 64 64 0 0 ++
/trunk/patches/glibc/2_9/350-2.4-undefine-__i686.patch | 47 47 0 0 +
/trunk/patches/glibc/2_9/160-i386-x86_64-revert-clone-cfi.patch | 53 53 0 0 +
/trunk/patches/glibc/2_9/420-dont-build-timezone.patch | 19 19 0 0 +
/trunk/patches/glibc/2_9/150-regex-BZ697.patch | 28 28 0 0 +
/trunk/patches/glibc/2_9/290-no-inline-gmon.patch | 38 38 0 0 +
/trunk/patches/glibc/2_9/280-section-comments.patch | 29 29 0 0 +
/trunk/patches/glibc/2_9/180-math-tests.patch | 72 72 0 0 ++
/trunk/patches/glibc/2_9/120-_nss_dns_gethostbyaddr2_r-check-and-adjust-the-buffer-alignment.patch | 35 35 0 0 +
/trunk/patches/glibc/2_9/250-resolv-dynamic.patch | 44 44 0 0 +
/trunk/patches/glibc/2_9/300-2.9-check_native-headers.patch | 22 22 0 0 +
/trunk/patches/glibc/2_9/310-2.3.6-fix-pr631.patch | 50 50 0 0 +
/trunk/patches/glibc/2_9/130-add_prio-macros.patch | 26 26 0 0 +
/trunk/patches/glibc/2_9/260-fadvise64_64.patch | 30 30 0 0 +
/trunk/patches/glibc/2_9/440-alpha-glibc-2.4-xstat.patch | 249 249 0 0 ++++++
/trunk/patches/glibc/2_9/170-2.10-dns-no-gethostbyname4.patch | 35 35 0 0 +
/trunk/patches/glibc/2_9/230-2.3.3-localedef-fix-trampoline.patch | 74 74 0 0 ++
/trunk/patches/glibc/2_9/360-2.8-nscd-one-fork.patch | 45 45 0 0 +
/trunk/patches/glibc/2_9/480-alpha-glibc-2.8-cache-shape.patch | 18 18 0 0 +
/trunk/patches/glibc/2_9/210-2.9-strlen-hack.patch | 109 109 0 0 +++
/trunk/patches/glibc/2_9/320-2.9-assume-pipe2.patch | 59 59 0 0 +
/trunk/patches/glibc/2_9/100-ssp-compat.patch | 193 193 0 0 +++++
/trunk/patches/glibc/2_9/110-respect-env-CPPFLAGS.patch | 30 30 0 0 +
/trunk/patches/glibc/2_9/220-manual-no-perl.patch | 29 29 0 0 +
/trunk/patches/glibc/2_9/390-2.3.3_pre20040117-pt_pax.patch | 35 35 0 0 +
/trunk/patches/glibc/2_9/460-alpha-glibc-2.5-no-asm-elf-header.patch | 38 38 0 0 +
/trunk/patches/glibc/2_9/400-tests-sandbox-libdl-paths.patch | 198 198 0 0 +++++
/trunk/patches/glibc/2_9/240-i386-LOAD_PIC_REG.patch | 23 23 0 0 +
/trunk/patches/glibc/2_9/200-awk-in-C-locale.patch | 23 23 0 0 +
/trunk/patches/glibc/2_9/430-2.7-cross-compile-nptl.patch | 57 57 0 0 +
/trunk/patches/glibc/2_9/380-2.3.6-dl_execstack-PaX-support.patch | 71 71 0 0 ++
/trunk/patches/glibc/2_9/490-ptr-mangling.patch | 114 114 0 0 +++
/trunk/patches/glibc/2_9/470-alpha-glibc-2.8-creat.patch | 19 19 0 0 +
41 files changed, 3094 insertions(+)
     1 # ===========================================================================
     2 # crosstool-NG configuration targets
     3 # These targets are used from top-level makefile
     4 
     5 # Derive the project version from, well, the project version:
     6 export PROJECTVERSION=$(CT_VERSION)
     7 
     8 # The place where the kconfig stuff lies
     9 obj = kconfig
    10 
    11 #-----------------------------------------------------------
    12 # The configurators rules
    13 
    14 configurators = menuconfig oldconfig
    15 PHONY += $(configurators)
    16 
    17 $(configurators): config_files
    18 
    19 menuconfig: $(obj)/mconf
    20 	@$(ECHO) "  CONF  $(KCONFIG_TOP)"
    21 	$(SILENT)$< $(KCONFIG_TOP)
    22 
    23 oldconfig: $(obj)/conf .config
    24 	@$(ECHO) "  CONF  $(KCONFIG_TOP)"
    25 	$(SILENT)$< -s $(KCONFIG_TOP)
    26 
    27 #-----------------------------------------------------------
    28 # Help text used by make help
    29 
    30 help-config::
    31 	@echo  '  menuconfig         - Update current config using a menu based program'
    32 	@echo  '  oldconfig          - Update current config using a provided .config as base'
    33 
    34 #-----------------------------------------------------------
    35 # Hmmm! Cheesy build!
    36 # Or: where I can unveil my make-fu... :-]
    37 
    38 # Oh! Files not here are there, in fact! :-)
    39 vpath %.c $(CT_LIB_DIR)
    40 vpath %.h $(CT_LIB_DIR)
    41 
    42 # What is the compiler?
    43 HOST_CC ?= gcc -funsigned-char
    44 HOST_LD ?= gcc
    45 
    46 # Helpers
    47 check_gettext = $(CT_LIB_DIR)/kconfig/check-gettext.sh
    48 check_lxdialog = $(CT_LIB_DIR)/kconfig/lxdialog/check-lxdialog.sh
    49 
    50 # Build flags
    51 CFLAGS = 
    52 LDFLAGS =
    53 
    54 # Compiler flags to use gettext
    55 INTL_CFLAGS = $(shell $(SHELL) $(check_gettext) $(HOST_CC) $(EXTRA_CFLAGS))
    56 
    57 # Compiler and linker flags to use ncurses
    58 NCURSES_CFLAGS = $(shell $(SHELL) $(check_lxdialog) -ccflags)
    59 NCURSES_LDFLAGS = $(shell $(SHELL) $(check_lxdialog) -ldflags $(HOST_CC) $(LX_FLAGS) $(EXTRA_CFLAGS))
    60 
    61 # Common source files
    62 COMMON_SRC = kconfig/zconf.tab.c
    63 COMMON_OBJ = $(patsubst %.c,%.o,$(COMMON_SRC))
    64 COMMON_DEP = $(patsubst %.o,%.dep,$(COMMON_OBJ))
    65 $(COMMON_OBJ) $(COMMON_DEP): CFLAGS += $(INTL_CFLAGS)
    66 
    67 # lxdialog source files
    68 LX_SRC = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/kconfig/lxdialog/*.c))
    69 LX_OBJ = $(patsubst %.c,%.o,$(LX_SRC))
    70 LX_DEP = $(patsubst %.o,%.dep,$(LX_OBJ))
    71 $(LX_OBJ) $(LX_DEP): CFLAGS += $(NCURSES_CFLAGS) $(INTL_CFLAGS)
    72 
    73 # What's needed to build 'conf'
    74 conf_SRC = kconfig/conf.c
    75 conf_OBJ = $(patsubst %.c,%.o,$(conf_SRC))
    76 conf_DEP = $(patsubst %.o,%.dep,$(conf_OBJ))
    77 $(conf_OBJ) $(conf_DEP): CFLAGS += $(INTL_CFLAGS)
    78 
    79 # What's needed to build 'mconf'
    80 mconf_SRC = kconfig/mconf.c
    81 mconf_OBJ = $(patsubst %.c,%.o,$(mconf_SRC))
    82 mconf_DEP = $(patsubst %.c,%.dep,$(mconf_SRC))
    83 $(mconf_OBJ) $(mconf_DEP): CFLAGS += $(NCURSES_CFLAGS) $(INTL_CFLAGS)
    84 $(obj)/mconf: LDFLAGS += $(NCURSES_LDFLAGS)
    85 ifeq ($(shell uname -o 2>/dev/null || echo unknown),Cygwin)
    86 $(obj)/mconf: LDFLAGS += -Wl,--enable-auto-import
    87 endif
    88 
    89 # These are generated files:
    90 ALL_OBJS = $(sort $(COMMON_OBJ) $(LX_OBJ) $(conf_OBJ) $(mconf_OBJ))
    91 ALL_DEPS = $(sort $(COMMON_DEP) $(LX_DEP) $(conf_DEP) $(mconf_DEP))
    92 
    93 # Cheesy auto-dependencies
    94 # Only parse the following if a configurator was called, to avoid building
    95 # dependencies when not needed (eg. list-steps, list-samples...)
    96 # We must be carefull what we enclose, because we need some of the variable
    97 # definitions for clean (and distclean) at least.
    98 # Just protecting the "-include $(DEPS)" line should be sufficient.
    99 
   100 ifneq ($(strip $(MAKECMDGOALS)),)
   101 ifneq ($(strip $(filter $(configurators),$(MAKECMDGOALS))),)
   102 
   103 DEPS = $(COMMON_DEP)
   104 ifneq ($(strip $(filter oldconfig,$(MAKECMDGOALS))),)
   105 DEPS += $(conf_DEP)
   106 endif
   107 ifneq ($(strip $(filter menuconfig,$(MAKECMDGOALS))),)
   108 DEPS += $(mconf_DEP) $(LX_DEP)
   109 endif
   110 
   111 -include $(DEPS)
   112 
   113 endif # MAKECMDGOALS contains a configurator rule
   114 endif # MAKECMDGOALS != ""
   115 
   116 # Each .o or .dep *can not* directly depend on kconfig/, because kconfig can
   117 # be touched during the build (who's touching it, btw?) so each .o or .dep
   118 # would be re-built when it sould not be.
   119 # So manually check for presence of $(obj) (ie. kconfig), and only mkdir
   120 # if needed. After all, that's not so bad...
   121 # mkdir $(obj)/lxdialog, because we need it, and incidentally, that
   122 # also creates $(obj).
   123 define check_kconfig_dir
   124 	$(SILENT)if [ ! -d $(obj)/lxdialog ]; then  \
   125 	   $(ECHO) "  MKDIR $(obj)";           \
   126 	   mkdir -p $(obj)/lxdialog;        \
   127 	 fi
   128 endef
   129 
   130 # Build the dependency for C files
   131 %.dep: %.c $(CT_LIB_DIR)/kconfig/kconfig.mk
   132 	$(check_kconfig_dir)
   133 	@$(ECHO) "  DEP   $@"
   134 	$(SILENT)$(HOST_CC) $(CFLAGS) $(EXTRA_CFLAGS) -MM $< |$(sed) -r -e 's|([^:]+.o)( *:+)|$(<:.c=.o) $@\2|;' >$@
   135 
   136 # Build C files
   137 %.o: %.c $(CT_LIB_DIR)/kconfig/kconfig.mk
   138 	$(check_kconfig_dir)
   139 	@$(ECHO) "  CC    $@"
   140 	$(SILENT)$(HOST_CC) $(CFLAGS) $(EXTRA_CFLAGS) -o $@ -c $<
   141 
   142 # Actual link
   143 $(obj)/mconf: $(COMMON_OBJ) $(LX_OBJ) $(mconf_OBJ)
   144 	@$(ECHO) '  LD    $@'
   145 	$(SILENT)$(HOST_LD) -o $@ $^ $(LDFLAGS) $(EXTRA_LDFLAGS)
   146 
   147 $(obj)/conf: $(COMMON_OBJ) $(conf_OBJ)
   148 	@$(ECHO) '  LD    $@'
   149 	$(SILENT)$(HOST_LD) -o $@ $^ $(LDFLAGS) $(EXTRA_LDFLAGS)
   150 
   151 #-----------------------------------------------------------
   152 # Cleaning up the mess...
   153 
   154 clean::
   155 	@$(ECHO) "  CLEAN kconfig"
   156 	$(SILENT)rm -f kconfig/{,m}conf $(ALL_OBJS) $(ALL_DEPS)
   157 	$(SILENT)rmdir --ignore-fail-on-non-empty kconfig{/lxdialog,} 2>/dev/null || true