https://bitbucket.org/hudson/magic-lantern
Raw File
Tip revision: 507e319d9b6312d0fd9eed0dc7f509cc35451ffc authored by a1ex on 21 May 2014, 05:21:57 UTC
Close branch mlv_play
Tip revision: 507e319
Makefile.src.config
#
# Here are Magic Lantern Core additional CONFIG_ defines
#

ifeq ($(CONFIG_PIC), y)
CFLAGS += -fPIC -DPOSITION_INDEPENDENT
AFLAGS += -fPIC -DPOSITION_INDEPENDENT
LFLAGS += -fPIC
# fixme: dietlib with -fPIC
endif

ifeq ($(CONFIG_GDB),y)
CFLAGS += -DCONFIG_GDB

ML_OBJS-y += \
	gdb.o
endif

ifeq ($(CONFIG_GDBSTUB),y)
CFLAGS += -DCONFIG_GDB -DCONFIG_GDBSTUB
endif

ifeq ($(CONFIG_PTP),y)
CFLAGS += -DCONFIG_PTP

ML_OBJS-y += \
	ptp.o
endif

#~ ifeq ($(CONFIG_MEMCHECK),y)
#~ CFLAGS += -DCONFIG_MEMCHECK
#~ 
#~ ML_OBJS-y += \
	#~ memcheck.o
#~ endif

ML_OBJS-$(CONFIG_PTP_CHDK) += \
	ptp-chdk.o

ML_OBJS-$(CONFIG_PTP_ML) += \
	ptp-ml.o

ifeq ($(CONFIG_PYMITE),y)
# PyMite scripting paths
PYMITE_PATH		= $(HOME)/build/pymite-08
PYMITE_LIB		= $(PYMITE_PATH)/src/vm/libpmvm_dryos.a
PYMITE_CFLAGS	= \
	-I$(PYMITE_PATH)/src/vm \
	-I$(PYMITE_PATH)/src/platform/dryos

CFLAGS += $(PYMITE_CFLAGS)

ML_OBJS-y += \
	script.o \
	pymite-plat.o \
	pymite-nat.o \
	pymite-img.o \
	$(PYMITE_LIB)

#
# Embedded $(PYTHON) scripting
#
SCRIPTS=\
	main.py \

#	$(PYMITE_PATH)/src/tools/pmImgCreator.py \

pymite-nat.c pymite-img.c: $(SCRIPTS)
	$(call build,PYMITE,\
	./pymite-compile \
		-c \
		-u \
		-o pymite-img.c \
		--native-file=pymite-nat.c \
		$^ \
	)

%.pym: %.py
	$(call build,PYMITE,\
	./pymite-compile \
		-b \
		-u \
		-o $@ \
		$^ \
	)

endif

ifeq ($(CONFIG_RELOC),y)
CFLAGS += -DCONFIG_RELOC

ML_OBJS-y += \
	liveview.o \
	reloc.o
endif

ML_OBJS-$(CONFIG_TIMECODE) += \
	timecode.o

ifeq ($(CONFIG_CONSOLE),y)
CFLAGS += -DCONFIG_CONSOLE

ML_OBJS-y += \
	console.o
endif

ifeq ($(CONFIG_PICOC),y)
ifneq ($(CONFIG_CONSOLE),y)
$(error CONFIG_PICOC requires CONFIG_CONSOLE = y, please enable it)
endif
CFLAGS += -DCONFIG_PICOC

ML_OBJS-y += \
	pico.o \
	picoc.o \
	chdk-gui_script.o
endif

ifeq ($(CONFIG_TCC),y)
ifneq ($(CONFIG_CONSOLE),y)
$(error CONFIG_TCC requires CONFIG_CONSOLE = y, please enable it)
endif
CFLAGS += -DCONFIG_TCC

ML_OBJS-y += \
	tcc-glue.o \
	$(TOP_DIR)/tcc/libtccx.o
endif

ifeq ($(CONFIG_MODULES),y)
ifneq ($(CONFIG_TCC),y)
$(error CONFIG_MODULES requires CONFIG_TCC = y, please enable it)
endif
CFLAGS += -DCONFIG_MODULES

ML_OBJS-y += \
	module.o

ML_MODULES_SYM_NAME ?= $(MODEL)_$(FW_VERSION).sym

CFLAGS += -DCONFIG_MODULES_MODEL_SYM=\"$(ML_MODULES_SYM_NAME)\"

$(ML_MODULES_SYM_NAME): magiclantern.sym
	$(call build,CP,$(CP) magiclantern.sym $(ML_MODULES_SYM_NAME))

all:: $(ML_MODULES_SYM_NAME)

install:: $(ML_MODULES_SYM_NAME)
	$(call build,MKDIR,mkdir -p $(INSTALL_MODULES_DIR))
	$(call build,CP,$(CP) $(ML_MODULES_SYM_NAME) $(INSTALL_MODULES_DIR)/)

clean::
	$(call rm_files, $(ML_MODULES_SYM_NAME) magiclantern.sym)

endif

ifeq ($(CONFIG_QEMU),y)
CFLAGS += -DCONFIG_QEMU

ifeq ($(CONFIG_QEMU_MENU_SCREENSHOTS),y)
CFLAGS += -DCONFIG_QEMU_MENU_SCREENSHOTS
endif

ML_OBJS-y += \
	qemu-util.o

qemu-helper: qemu-helper.o stubs.o
	$(call build,LD,$(LD) \
		-o $@ \
		-nostdlib \
		-e _start \
		-Ttext 0x30000000 \
		$^ \
		-lm -lgcc \
	); \

endif # CONFIG_QEMU

ifeq ($(CONFIG_TINYPY),y)
LFLAGS += \
	-u pow \
	-u qsort \
	-u strstr \
	-u atof
endif

# force some common functions not used in core, but required by modules
LFLAGS += \
	-u strcasecmp \
	-u memmove 
back to top