b0de98ad3b
For unknown reasons, -thumb builds need -lfirmware after -lrbcodec (but still before -lunwarminder)i. Other builds are still happy if we do that. Including it via CORE_LIBS instead of explicitly achieves that. Change-Id: Id69e4a0c042f90f71cfd9a72202ce4d8ef6a4181
62 lines
2.3 KiB
Makefile
62 lines
2.3 KiB
Makefile
# __________ __ ___.
|
|
# Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
# \/ \/ \/ \/ \/
|
|
# $Id$
|
|
#
|
|
|
|
INCLUDES += -I$(FIRMDIR) -I$(FIRMDIR)/export -I$(FIRMDIR)/drivers \
|
|
-I$(FIRMDIR)/include -I$(FIRMDIR)/kernel/include
|
|
ifndef APP_TYPE
|
|
INCLUDES += -I$(FIRMDIR)/libc/include
|
|
endif
|
|
|
|
include $(FIRMDIR)/asm/asm.make
|
|
|
|
FIRMLIB_SRC += $(call preprocess, $(FIRMDIR)/SOURCES)
|
|
FIRMLIB_OBJ := $(call c2obj, $(FIRMLIB_SRC))
|
|
ifeq (,$(findstring -DARCHOS_PLAYER,$(TARGET)))
|
|
FIRMLIB_OBJ += $(BUILDDIR)/sysfont.o
|
|
endif
|
|
OTHER_SRC += $(FIRMLIB_SRC)
|
|
|
|
FIRMLIB = $(BUILDDIR)/firmware/libfirmware.a
|
|
|
|
SYSFONT = $(ROOTDIR)/fonts/08-Schumacher-Clean.bdf
|
|
|
|
CLEANOBJS += $(BUILDDIR)/sysfont.* $(BUILDDIR)/version.*
|
|
|
|
# Limits for the built-in sysfont: ASCII for bootloaders, ISO8859-1 for normal builds
|
|
ifneq (,$(findstring -DBOOTLOADER,$(EXTRA_DEFINES)))
|
|
MAXCHAR = 127
|
|
else
|
|
MAXCHAR = 255
|
|
endif
|
|
|
|
$(FIRMLIB): $(FIRMLIB_OBJ)
|
|
$(SILENT)$(shell rm -f $@)
|
|
$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
|
|
|
|
$(BUILDDIR)/sysfont.h: $(SYSFONT) $(TOOLS) $(BUILDDIR)/firmware/common/config.o
|
|
$(call PRINTS,CONVBDF $(subst $(ROOTDIR)/,,$<))$(TOOLSDIR)/convbdf -l $(MAXCHAR) -h -o $@ $<
|
|
|
|
$(BUILDDIR)/sysfont.o: $(SYSFONT) $(BUILDDIR)/sysfont.h
|
|
$(call PRINTS,CONVBDF $(subst $(ROOTDIR)/,,$<))$(TOOLSDIR)/convbdf -l $(MAXCHAR) -c -o $(BUILDDIR)/sysfont.c $<
|
|
$(call PRINTS,CC $(subst $(ROOTDIR)/,,$(BUILDDIR)/sysfont.c))$(CC) $(CFLAGS) -c $(BUILDDIR)/sysfont.c -o $@
|
|
|
|
# GNU make (at least) has a bug/feature that exported variable are not available
|
|
# in the shell function (but are in recipe). Thus we need to explicitely pass
|
|
# the VERSION environement variable
|
|
SVNVERSION:=$(shell VERSION='$(VERSION)' $(TOOLSDIR)/version.sh $(ROOTDIR))
|
|
OLDSVNVERSION:=$(shell grep 'RBVERSION' $(BUILDDIR)/rbversion.h 2>/dev/null|cut -d '"' -f 2 || echo "NOREVISION")
|
|
|
|
CORE_LIBS:=$(FIRMLIB)
|
|
|
|
ifneq ($(SVNVERSION),$(OLDSVNVERSION))
|
|
.PHONY: $(BUILDDIR)/rbversion.h
|
|
endif
|
|
|
|
$(BUILDDIR)/rbversion.h:
|
|
$(call PRINTS,GEN $(@F))$(TOOLSDIR)/genversion.sh $(BUILDDIR) $(SVNVERSION)
|