1# Makefile for uClibc
2#
3# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
4#
5# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
6#
7
8top_srcdir=../
9top_builddir=../
10include Rules.mak
11
12ALL_SUBDIRS := $(patsubst %/Makefile,%,$(wildcard */Makefile))
13
14DIRS := $(ALL_SUBDIRS)
15ifneq ($(HAVE_SHARED)$(UCLIBC_HAS_THREADS),yy)
16	DIRS := $(filter-out dlopen,$(DIRS))
17endif
18ifneq ($(findstring -static,$(LDFLAGS)),)
19	DIRS := $(filter-out dlopen,$(DIRS))
20endif
21ifneq ($(UCLIBC_HAS_THREADS),y)
22	DIRS := $(filter-out pthread,$(DIRS))
23endif
24ifneq ($(UCLIBC_HAS_FULL_RPC),y)
25	DIRS := $(filter-out rpc,$(DIRS))
26endif
27ifneq ($(UCLIBC_HAS_REGEX),y)
28	DIRS := $(filter-out regex,$(DIRS))
29endif
30ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
31	DIRS := $(filter-out tls nptl,$(DIRS))
32endif
33ifneq ($(UCLIBC_HAS_WCHAR),y)
34	DIRS := $(filter-out locale-mbwc,$(DIRS))
35endif
36ifneq ($(UCLIBC_HAS_LOCALE),y)
37	DIRS := $(filter-out locale,$(DIRS))
38endif
39ifneq ($(UCLIBC_HAS_CRYPT_IMPL),y)
40	DIRS := $(filter-out crypt,$(DIRS))
41endif
42ifeq ($(HAS_NO_THREADS),y)
43	DIRS := $(filter-out pthread,$(DIRS))
44endif
45
46test check all: run
47
48run: compile subdirs_run
49
50compile: $(top_builddir)$(LOCAL_INSTALL_PATH) subdirs_compile
51
52$(top_builddir)$(LOCAL_INSTALL_PATH):
53	$(Q)$(MAKE) -C $(top_builddir) $(LOCAL_INSTALL_PATH)
54
55tags:
56	ctags -R
57
58clean: subdirs_clean
59
60subdirs: $(patsubst %, _dir_%, $(DIRS))
61subdirs_compile: $(patsubst %, _dircompile_%, $(DIRS))
62subdirs_run: $(patsubst %, _dirrun_%, $(DIRS))
63subdirs_clean: $(patsubst %, _dirclean_%, $(ALL_SUBDIRS))
64
65$(patsubst %, _dir_%, $(DIRS)) : dummy
66	$(Q)$(MAKE) -C $(patsubst _dir_%, %, $@) \
67		KCONFIG_CONFIG=$(KCONFIG_CONFIG)
68
69$(patsubst %, _dirrun_%, $(DIRS)) : dummy
70	$(Q)$(MAKE) -C $(patsubst _dirrun_%, %, $@) run \
71		KCONFIG_CONFIG=$(KCONFIG_CONFIG)
72
73$(patsubst %, _dircompile_%, $(DIRS)) : dummy
74	$(Q)$(MAKE) -C $(patsubst _dircompile_%, %, $@) compile \
75		KCONFIG_CONFIG=$(KCONFIG_CONFIG)
76
77$(patsubst %, _dirclean_%, $(ALL_SUBDIRS)) : dummy
78	$(Q)$(MAKE) -C $(patsubst _dirclean_%, %, $@) clean
79
80.PHONY: all check clean dummy subdirs_compile subdirs_run subdirs subdirs_clean test run compile
81