OSDN Git Service

Add MS7619SE
[uclinux-h8/uClinux-dist.git] / user / mtd-utils / common.mk
1 #CC := $(CROSS)gcc
2 #AR := $(CROSS)ar
3 #RANLIB := $(CROSS)ranlib
4
5 # Stolen from Linux build system
6 comma = ,
7 try-run = $(shell set -e; ($(1)) >/dev/null 2>&1 && echo "$(2)" || echo "$(3)")
8 cc-option = $(call try-run, $(CC) $(1) -c -xc /dev/null -o /dev/null,$(1),$(2))
9
10 CFLAGS ?= -O2 -g
11 WFLAGS := -Wall \
12         $(call cc-option,-Wextra) \
13         $(call cc-option,-Wwrite-strings) \
14         $(call cc-option,-Wno-sign-compare)
15 CFLAGS += $(WFLAGS)
16 #SECTION_CFLAGS := $(call cc-option,-ffunction-sections -fdata-sections -Wl$(comma)--gc-sections)
17 #CFLAGS += $(SECTION_CFLAGS)
18
19 ifneq ($(WITHOUT_LARGEFILE), 1)
20   CPPFLAGS += -D_FILE_OFFSET_BITS=64
21 endif
22
23 DESTDIR?=
24 PREFIX=/usr
25 EXEC_PREFIX=$(PREFIX)
26 SBINDIR=$(EXEC_PREFIX)/sbin
27 MANDIR=$(PREFIX)/share/man
28 INCLUDEDIR=$(PREFIX)/include
29
30 #ifndef BUILDDIR
31 #ifeq ($(origin CROSS),undefined)
32   BUILDDIR := $(CURDIR)
33 #else
34 # Remove the trailing slash to make the directory name
35 #  BUILDDIR := $(CURDIR)/$(CROSS:-=)
36 #endif
37 #endif
38 override BUILDDIR := $(patsubst %/,%,$(BUILDDIR))
39
40 override TARGETS_y := $(addprefix $(BUILDDIR)/,$(TARGETS_y))
41
42 SUBDIRS_ALL = $(patsubst %,subdirs_%_all,$(SUBDIRS))
43 SUBDIRS_CLEAN = $(patsubst %,subdirs_%_clean,$(SUBDIRS))
44 SUBDIRS_INSTALL = $(patsubst %,subdirs_%_install,$(SUBDIRS))
45
46 all:: $(TARGETS_y) $(SUBDIRS_ALL) $(HOST_TARGETS_y)
47
48 clean:: $(SUBDIRS_CLEAN)
49         rm -f $(BUILDDIR)/*.o $(TARGETS_y) $(BUILDDIR)/.*.c.dep
50
51 install:: $(TARGETS_y) $(SUBDIRS_INSTALL)
52
53 %: %.o $(LDDEPS) $(LDDEPS_$(notdir $@))
54         $(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_$(notdir $@)) -g -o $@ $^ $(LDLIBS) $(LDLIBS_$(notdir $@))
55
56 $(BUILDDIR)/%.a:
57         $(AR) crv $@ $^
58         $(RANLIB) $@
59
60 $(BUILDDIR)/%.o: %.c
61 ifneq ($(BUILDDIR),$(CURDIR))
62         mkdir -p $(dir $@)
63 endif
64         $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< -g -Wp,-MD,$(BUILDDIR)/.$(<F).dep
65
66
67 $(HOST_BUILDDIR)/%.o: %.c
68         mkdir -p $(dir $@)
69         $(HOST_CC) $(HOST_CPPFLAGS) $(HOST_CFLAGS) -c -o $@ $< -g -Wp,-MD,$(HOST_BUILDDIR)/.$(<F).dep
70
71 subdirs_%:
72         d=$(patsubst subdirs_%,%,$@); \
73         t=`echo $$d | sed s:.*_::` d=`echo $$d | sed s:_.*::`; \
74         $(MAKE) BUILDDIR=$(BUILDDIR)/$$d -C $$d $$t
75
76 .SUFFIXES:
77
78 IGNORE=${wildcard $(BUILDDIR)/.*.c.dep}
79 -include ${IGNORE}
80
81 PHONY += all clean install
82 .PHONY: $(PHONY)