1 # Makefrag for some user apps
2 # They must set APPNAME, then include this fragment
5 ARCH ?= none # catch bugs
7 INCDIR = $(shell if [ -d "$(SRCDIR)include" ]; then echo "$(SRCDIR)include";\
10 OBJDIR ?= $(SRCDIR)obj
11 # DEPLIBS passed in from the top-level Makefile
13 DEPLIBAS = $(patsubst %, $(XCC_TARGET_LIB)/lib%.a, $(DEPLIBS))
19 FINALAPP = $(OBJDIR)/$(APPNAME)
20 FINALAPP-INSTALL = $(ABS_KFS_PATH)/bin/$(APPNAME)
22 uc = $(shell echo $(1) | tr a-z A-Z)
24 APPUCNAME := $(call uc, $(APPNAME))
25 HEADERS := $(shell find $(INCDIR) -name "*.h")
26 CFILES := $(wildcard $(SRCDIR)*.c)
27 CFILES += $(wildcard $(SRCDIR)$(ARCH)/*.c)
28 SFILES := $(wildcard $(SRCDIR)$(ARCH)/*.S)
29 OBJS := $(patsubst %.c, $(OBJDIR)/%.o, $(CFILES)) \
30 $(patsubst %.S, $(OBJDIR)/%.o, $(SFILES))
35 $(OBJDIR)/$(ARCH)/%.o: $(SRCDIR)$(ARCH)/%.S $(HEADERS) $(DEPLIBAS)
36 @echo + as [$(APPUCNAME)] $<
38 $(Q)$(CC) $(CFLAGS_USER) $(INCS) -o $@ -c $<
40 $(OBJDIR)/%.o: $(SRCDIR)%.c $(HEADERS) $(DEPLIBAS)
41 @echo + cc [$(APPUCNAME)] $<
43 $(Q)$(CC) $(CFLAGS_USER) $(INCS) -o $@ -c $<
46 @echo + ld [$(APPUCNAME)] $@
48 $(Q)$(CC) -o $@ $(OBJS) $(DEPLIBAS)
50 $(FINALAPP-INSTALL): $(FINALAPP)
51 @echo + in [$(APPUCNAME)] $< $@
54 install: $(FINALAPP-INSTALL)
58 @echo + clean [$(APPUCNAME)]
59 $(Q)rm -rf $(FINALAPP)