Skip to content
Snippets Groups Projects
Select Git revision
  • 8ef77cdbd0b222513bdaaa6bebbc42d145b5b35d
  • master default protected
  • fix-warnings
  • tvbgone-fixes
  • genofire/ble-follow-py
  • schneider/ble-stability-new-phy-adv
  • schneider/ble-stability
  • msgctl/gfx_rle
  • schneider/ble-stability-new-phy
  • add_menu_vibration
  • plaetzchen/ios-workaround
  • blinkisync-as-preload
  • schneider/max30001-pycardium
  • schneider/max30001-epicaridum
  • schneider/max30001
  • schneider/stream-locks
  • schneider/fundamental-test
  • schneider/ble-buffers
  • schneider/maxim-sdk-update
  • ch3/splashscreen
  • koalo/bhi160-works-but-dirty
  • v1.11
  • v1.10
  • v1.9
  • v1.8
  • v1.7
  • v1.6
  • v1.5
  • v1.4
  • v1.3
  • v1.2
  • v1.1
  • v1.0
  • release-1
  • bootloader-v1
  • v0.0
36 results

Dockerfile

Blame
  • Forked from card10 / firmware
    Source project has a limited visibility.
    Makefile 1.65 KiB
    PYSRC=../py
    BUILD=build
    
    CC = gcc
    CFLAGS = -I. -I$(PYSRC) -Wall -Werror -ansi -std=gnu99 -Os #-DNDEBUG
    LDFLAGS = -lm
    
    SRC_C = \
    	main.c \
    
    PY_O = \
    	nlrx64.o \
    	malloc.o \
    	qstr.o \
    	vstr.o \
    	misc.o \
    	lexer.o \
    	lexerunix.o \
    	parse.o \
    	scope.o \
    	compile.o \
    	emitcommon.o \
    	emitpass1.o \
    	emitcpy.o \
    	emitbc.o \
    	asmx64.o \
    	emitnx64.o \
    	asmthumb.o \
    	emitnthumb.o \
    	emitinlinethumb.o \
    	runtime.o \
    	map.o \
    	obj.o \
    	objbool.o \
    	objboundmeth.o \
    	objcell.o \
    	objclass.o \
    	objclosure.o \
    	objcomplex.o \
    	objdict.o \
    	objexcept.o \
    	objfloat.o \
    	objfun.o \
    	objgenerator.o \
    	objinstance.o \
    	objlist.o \
    	objnone.o \
    	objrange.o \
    	objset.o \
    	objstr.o \
    	objtuple.o \
    	objtype.o \
    	builtin.o \
    	vm.o \
    	showbc.o \
    	repl.o \
    
    OBJ = $(addprefix $(BUILD)/, $(SRC_C:.c=.o) $(PY_O))
    LIB = -lreadline
    PROG = py
    
    $(PROG): $(BUILD) $(OBJ)
    	$(CC) -o $@ $(OBJ) $(LIB) $(LDFLAGS)
    	strip $(PROG)
    	size $(PROG)
    
    $(BUILD):
    	mkdir $@
    
    $(BUILD)/%.o: %.c
    	$(CC) $(CFLAGS) -c -o $@ $<
    
    $(BUILD)/%.o: $(PYSRC)/%.s
    	$(AS) -o $@ $<
    
    $(BUILD)/%.o: $(PYSRC)/%.c mpconfig.h
    	$(CC) $(CFLAGS) -c -o $@ $<
    
    $(BUILD)/emitnx64.o: $(PYSRC)/emitnative.c $(PYSRC)/emit.h
    	$(CC) $(CFLAGS) -DN_X64 -c -o $@ $<
    
    $(BUILD)/emitnthumb.o: $(PYSRC)/emitnative.c $(PYSRC)/emit.h
    	$(CC) $(CFLAGS) -DN_THUMB -c -o $@ $<
    
    # optimising vm for speed, adds only a small amount to code size but makes a huge difference to speed (20% faster)
    $(BUILD)/vm.o: $(PYSRC)/vm.c
    	$(CC) $(CFLAGS) -O3 -c -o $@ $<
    
    $(BUILD)/main.o: mpconfig.h
    $(BUILD)/parse.o: $(PYSRC)/grammar.h
    $(BUILD)/compile.o: $(PYSRC)/grammar.h
    $(BUILD)/emitcpy.o: $(PYSRC)/emit.h
    $(BUILD)/emitbc.o: $(PYSRC)/emit.h
    
    clean:
    	/bin/rm -r $(BUILD)
    
    .PHONY: clean