Index: Makefile.in =================================================================== --- Makefile.in (revision 22237) +++ Makefile.in (working copy) @@ -59,49 +59,72 @@ ifneq ($(TARGET_SUBARCH),) HEADERS_BITS_SUBARCH := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/bits/$(TARGET_SUBARCH)/*.h)) endif HEADERS_BITS_COMMON := $(filter-out $(HEADERS_BITS_ARCH) $(HEADERS_BITS_SUBARCH),$(HEADERS_BITS_COMMON)) + +HEADERS_SYS_COMMON := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/common/sys/*.h)) +HEADERS_SYS_ARCH := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/sys/*.h)) +HEADERS_SYS_COMMON := $(filter-out $(HEADERS_SYS_ARCH),$(HEADERS_SYS_COMMON)) + +ALL_HEADERS_BITS_COMMON := $(addprefix include/bits/,$(HEADERS_BITS_COMMON)) +ALL_HEADERS_BITS_ARCH := $(addprefix include/bits/,$(HEADERS_BITS_ARCH)) +ifneq ($(TARGET_SUBARCH),) +ALL_HEADERS_BITS_SUBARCH := $(addprefix include/bits/,$(HEADERS_BITS_SUBARCH)) +else +ALL_HEADERS_BITS_SUBARCH := +endif +ALL_HEADERS_SYS_COMMON := $(addprefix include/sys/,$(HEADERS_SYS_COMMON)) +ALL_HEADERS_SYS_ARCH := $(addprefix include/sys/,$(HEADERS_SYS_ARCH)) + +target-headers-sysdep := include/fpu_control.h \ + include/dl-osinfo.h include/hp-timing.h \ + $(ALL_HEADERS_BITS_COMMON) \ + $(ALL_HEADERS_BITS_ARCH) \ + $(ALL_HEADERS_BITS_SUBARCH) \ + $(ALL_HEADERS_SYS_COMMON) \ + $(ALL_HEADERS_SYS_ARCH) + +target-headers-sysdep: include/bits/uClibc_config.h + @$(MAKE) $(target-headers-sysdep) + +include/fpu_control.h: include/bits/uClibc_config.h + @$(disp_ln) + $(Q)[ -r libc/sysdeps/linux/$(TARGET_ARCH)/$(@F) ] && \ + $(LN) -fs ../libc/sysdeps/linux/$(TARGET_ARCH)/$(@F) $@ || \ + $(LN) -fs ../libc/sysdeps/linux/common/$(@F) $@ +include/dl-osinfo.h include/hp-timing.h: include/bits/uClibc_config.h + $(do_ln) -fs ../libc/sysdeps/linux/common/$(@F) $@ + +$(ALL_HEADERS_BITS_COMMON): include/bits/uClibc_config.h + $(do_ln) -fs ../../libc/sysdeps/linux/common/bits/$(@F) $@ + +$(ALL_HEADERS_BITS_ARCH): include/bits/uClibc_config.h + $(do_ln) -fs ../../libc/sysdeps/linux/$(TARGET_ARCH)/bits/$(@F) $@ + +ifneq ($(TARGET_SUBARCH),) +$(ALL_HEADERS_BITS_SUBARCH): include/bits/uClibc_config.h + $(do_ln) -fs ../../../libc/sysdeps/linux/$(TARGET_ARCH)/bits/$(TARGET_SUBARCH)/$(@F) $@ +endif + +ifneq ($(strip $(ALL_HEADERS_SYS_COMMON)),) +$(ALL_HEADERS_SYS_COMMON): include/bits/uClibc_config.h + $(do_ln) -fs ../../libc/sysdeps/linux/common/sys/$(@F) $@ +endif + +ifneq ($(strip $(ALL_HEADERS_SYS_ARCH)),) +$(ALL_HEADERS_SYS_ARCH): include/bits/uClibc_config.h + $(do_ln) -fs ../../libc/sysdeps/linux/$(TARGET_ARCH)/sys/$(@F) $@ +endif + headers: include/bits/uClibc_config.h $(Q)$(MAKE) headers-y - $(Q)\ - set -e; \ - if [ -e libc/sysdeps/linux/$(TARGET_ARCH)/fpu_control.h ] ; then \ - $(LN) -fs ../libc/sysdeps/linux/$(TARGET_ARCH)/fpu_control.h include/ ; \ - else \ - $(LN) -fs ../libc/sysdeps/linux/common/fpu_control.h include/ ; \ - fi; \ - for f in dl-osinfo.h hp-timing.h ; do \ - $(LN) -fs ../libc/sysdeps/linux/common/$$f include/ ; \ - done - $(Q)\ - cd include/bits; \ - set -e; \ - for i in $(HEADERS_BITS_COMMON) ; do \ - $(LN) -fs ../../libc/sysdeps/linux/common/bits/$$i .; \ - done; \ - for i in $(HEADERS_BITS_ARCH) ; do \ - $(LN) -fs ../../libc/sysdeps/linux/$(TARGET_ARCH)/bits/$$i .; \ - done; \ - for i in $(HEADERS_BITS_SUBARCH) ; do \ - $(LN) -fs ../../libc/sysdeps/linux/$(TARGET_ARCH)/bits/$(TARGET_SUBARCH)/$$i .; \ - done - $(Q)\ - cd include/sys; \ - set -e; \ - for i in `ls ../../libc/sysdeps/linux/common/sys/*.h` ; do \ - $(LN) -fs $$i .; \ - done; \ - if [ -d ../../libc/sysdeps/linux/$(TARGET_ARCH)/sys ] ; then \ - for i in `ls ../../libc/sysdeps/linux/$(TARGET_ARCH)/sys/*.h` ; do \ - $(LN) -fs $$i .; \ - done; \ - fi -ifeq ($(UCLIBC_HAS_LOCALE),y) - $(MAKE) -C extra/locale locale_headers -endif + $(Q)$(if $(UCLIBC_HAS_LOCALE),$(MAKE) -C extra/locale locale_headers) + $(Q)$(MAKE) target-headers-sysdep +pregen: headers include/bits/sysnum.h -pregen: headers - $(Q)\ - set -e; \ +include/bits/sysnum.h: $(top_srcdir)extra/scripts/gen_bits_syscall_h.sh \ + include/bits/uClibc_config.h | headers + @$(disp_gen) + $(Q)set -e; \ cd $(top_builddir); \ tmp=`mktemp include/bits/sysnum.h.XXXXXX 2>/dev/null`; \ [ -z "$$tmp" ] && tmp='include/bits/sysnum.h.new'; \ Index: Makerules =================================================================== --- Makerules (revision 22237) +++ Makerules (working copy) @@ -71,6 +71,9 @@ pur_disp_strip = echo " "STRIP $(ST pur_disp_t_strip = echo " "STRIP $(STRIP_FLAGS) $@ pur_disp_ar = echo " "AR $(ARFLAGS) $@ pur_disp_ld = echo " "LD $(1) +pur_disp_ln = echo " "LN $@ +pur_disp_gen = echo " "GEN $@ +pur_disp_unifdef = echo " "UNIFDEF $@ sil_disp_compile.c = true sil_disp_compile.i = true @@ -83,6 +86,9 @@ sil_disp_strip = true sil_disp_t_strip = true sil_disp_ar = true sil_disp_ld = true +sil_disp_ln = true +sil_disp_gen = true +sil_disp_unifdef = true ver_disp_compile.c = echo $(cmd_compile.c) ver_disp_compile.i = echo $(cmd_compile.i) @@ -95,6 +101,9 @@ ver_disp_strip = echo $(cmd_strip) ver_disp_t_strip = echo $(cmd_t_strip) ver_disp_ar = echo $(cmd_ar) ver_disp_ld = +ver_disp_ln = +ver_disp_gen = echo $(cmd_gen) +ver_disp_unifdef = echo $(cmd_unifdef) disp_compile.c = $($(DISP)_disp_compile.c) disp_compile.i = $($(DISP)_disp_compile.i) @@ -107,6 +116,9 @@ disp_strip = $($(DISP)_disp_strip) disp_t_strip = $($(DISP)_disp_t_strip) disp_ar = $($(DISP)_disp_ar) disp_ld = $($(DISP)_disp_ld) +disp_ln = $($(DISP)_disp_ln) +disp_gen = $($(DISP)_disp_gen) +disp_unifdef = $($(DISP)_disp_unifdef) any-prereq = $(filter-out $(PHONY),$?) $(filter-out $(PHONY) $(wildcard $^),$^) @@ -142,6 +154,10 @@ cmd_compile-m = $(CC) $^ -c -o $@ $(CFLA cmd_strip = $(STRIPTOOL) $(STRIP_FLAGS) $^ cmd_t_strip = $(STRIPTOOL) $(STRIP_FLAGS) $@ cmd_ar = $(AR) $(ARFLAGS) $@ $^ +define do_ln + @$(disp_ln) + $(Q)$(LN) +endef compile.c = @$(call maybe_exec,compile.c) compile.i = $(call maybe_exec,compile.i) @@ -152,6 +168,7 @@ compile-m = @$(disp_compile-m) ; $(cmd_c do_strip = @$(disp_strip) ; $(cmd_strip) do_t_strip= @$(disp_t_strip) ; $(cmd_t_strip) do_ar = @$(disp_ar) ; $(cmd_ar) +do_unifdef= @$(disp_unifdef) ; $(cmd_unifdef) define compile.u @$(disp_compile.u) ; $(cmd_compile.u) @@ -244,9 +261,6 @@ $(ldso): $(libc): @cd $(top_builddir); $(MAKE) lib/$(patsubst %.$(MAJOR_VERSION),%,$(notdir $@)) -$(headers_dep): $(top_srcdir)extra/scripts/gen_bits_syscall_h.sh - $(Q)cd $(top_builddir); $(MAKE) pregen - CRT := crt1 ifeq ($(HAVE_SHARED)$(UCLIBC_FORMAT_SHARED_FLAT),y) Index: Rules.mak =================================================================== --- Rules.mak (revision 22237) +++ Rules.mak (working copy) @@ -44,6 +44,8 @@ TAR = tar STRIP_FLAGS ?= -x -R .note -R .comment +UNIFDEF := $(top_builddir)extra/scripts/unifdef -UUCLIBC_INTERNAL + # Select the compiler needed to build binaries for your development system HOSTCC = gcc BUILD_CFLAGS = -O2 -Wall