#
top_builddir=../
--include $(top_builddir).config
+include Rules.mak
-.EXPORT_ALL_VARIABLES:
+ALL_SUBDIRS := $(patsubst %/Makefile,%,$(wildcard */Makefile))
-
-ALL_SUBDIRS = \
- args assert crypt ctype pwd_grp signal silly stdlib string unistd \
- mmap #misc
DIRS := $(ALL_SUBDIRS)
-
-ifeq ($(HAVE_SHARED)$(UCLIBC_HAS_THREADS),yy)
- DIRS += dlopen
+ifneq ($(HAVE_SHARED)$(UCLIBC_HAS_THREADS),yy)
+ DIRS := $(filter-out dlopen,$(DIRS))
+endif
+ifneq ($(findstring -static,$(LDFLAGS)),)
+ DIRS := $(filter-out dlopen,$(DIRS))
+endif
+ifneq ($(UCLIBC_HAS_THREADS),y)
+ DIRS := $(filter-out pthread,$(DIRS))
+endif
+ifneq ($(UCLIBC_HAS_FULL_RPC),y)
+ DIRS := $(filter-out rpc,$(DIRS))
+endif
+ifneq ($(UCLIBC_HAS_REGEX),y)
+ DIRS := $(filter-out regex,$(DIRS))
+endif
+ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
+ DIRS := $(filter-out tls nptl,$(DIRS))
endif
-ifeq ($(UCLIBC_HAS_THREADS),y)
- DIRS += pthread
+ifneq ($(UCLIBC_HAS_WCHAR),y)
+ DIRS := $(filter-out locale-mbwc,$(DIRS))
endif
-ALL_SUBDIRS += pthread dlopen
+ifneq ($(UCLIBC_HAS_LOCALE),y)
+ DIRS := $(filter-out locale,$(DIRS))
+endif
+ifneq ($(UCLIBC_HAS_CRYPT_IMPL),y)
+ DIRS := $(filter-out crypt,$(DIRS))
+endif
+ifeq ($(HAS_NO_THREADS),y)
+ DIRS := $(filter-out pthread,$(DIRS))
+endif
+
+test check all: run
+run: compile subdirs_run
-all: subdirs
+compile: $(top_builddir)$(LOCAL_INSTALL_PATH) subdirs_compile
+
+$(top_builddir)$(LOCAL_INSTALL_PATH):
+ $(Q)$(MAKE) -C $(top_builddir) $(LOCAL_INSTALL_PATH)
tags:
ctags -R
clean: subdirs_clean
subdirs: $(patsubst %, _dir_%, $(DIRS))
+subdirs_compile: $(patsubst %, _dircompile_%, $(DIRS))
+subdirs_run: $(patsubst %, _dirrun_%, $(DIRS))
subdirs_clean: $(patsubst %, _dirclean_%, $(ALL_SUBDIRS))
$(patsubst %, _dir_%, $(DIRS)) : dummy
- @echo "Making test in $(patsubst _dir_%,%,$@)"
- $(MAKE) -C $(patsubst _dir_%, %, $@)
+ $(Q)$(MAKE) -C $(patsubst _dir_%, %, $@)
+
+$(patsubst %, _dirrun_%, $(DIRS)) : dummy
+ $(Q)$(MAKE) -C $(patsubst _dirrun_%, %, $@) run
+
+$(patsubst %, _dircompile_%, $(DIRS)) : dummy
+ $(Q)$(MAKE) -C $(patsubst _dircompile_%, %, $@) compile
$(patsubst %, _dirclean_%, $(ALL_SUBDIRS)) : dummy
- $(MAKE) -C $(patsubst _dirclean_%, %, $@) clean
+ $(Q)$(MAKE) -C $(patsubst _dirclean_%, %, $@) clean
-.PHONY: dummy
+.PHONY: all check clean dummy subdirs_compile subdirs_run subdirs subdirs_clean test run compile