altos/stm32f4-disco: Start hooking up stm32f413 USB for the disco board
[fw/altos] / src / stm32f4-disco / Makefile
index 2d912b226fe1d47bcd151990723008b7b82991db..de30316c7bb4d8ec6d8d5c7a9c0d3d0158620eed 100644 (file)
@@ -1,11 +1,45 @@
 include ../stm32f4/Makefile-raw.defs
 
+aoschemelib=$(shell pkg-config --variable=aoschemelib ao-scheme)
+
+include $(aoschemelib)/Makefile-scheme
+
+IDVENDOR=0xfffe
+IDPRODUCT=0xfffa
+PRODUCT=stm32f4-disco
+SERIAL=1
+
+INC = \
+       ao.h \
+       ao_arch.h \
+       ao_arch_funcs.h \
+       ao_boot.h \
+       ao_pins.h \
+       ao_task.h \
+       ao_product.h \
+       $(SCHEME_HDRS) \
+       ao_scheme_const.h \
+       stm32f4.h \
+       Makefile
+
 ALTOS_SRC = \
        ao_interrupt.c \
+       ao_romconfig.c \
        ao_panic.c \
-       ao_timer.c
+       ao_timer.c \
+       ao_task.c \
+       ao_stdio.c \
+       ao_product.c \
+       ao_cmd.c \
+       ao_exti_stm32f4.c \
+       ao_usart_stm32f4.c \
+       ao_usb_gen.c \
+       ao_usb_stm32f4.c \
+       ao_led.c \
+       ao_impure.c \
+       $(SCHEME_SRCS)
 
-CFLAGS = $(STM32F4_CFLAGS)
+CFLAGS = $(STM32F4_CFLAGS) -I$(aoschemelib)
 
 PROG=stm32f4-disco-$(VERSION)
 ELF=$(PROG).elf
@@ -20,10 +54,27 @@ all: $(ELF) $(IHX)
 $(ELF): Makefile $(OBJ)
        $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $@ $(OBJ) -Wl,-M=$(MAP) $(LIBS)
 
+$(OBJ): $(INC)
+
+ao_product.h: ao-make-product.5c ../Version Makefile
+       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -V $(IDVENDOR) -s $(SERIAL) -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
+
+SCHEME_SCHEME=\
+       ao_scheme_basic_syntax.scheme \
+       ao_scheme_list.scheme \
+       ao_scheme_advanced_syntax.scheme \
+       ao_scheme_vector.scheme \
+       ao_scheme_string.scheme \
+       ao_scheme_char.scheme \
+       ao_scheme_number.scheme
+
+ao_scheme_const.h: ao-scheme-make-const-big $(SCHEME_SCHEME)
+       $^ -o $@ -d POSIX,PORT,SAVE
+
 distclean:     clean
 
 clean:
-       rm -f *.o *.elf *.ihx
+       rm -f *.o *.elf *.ihx *.map
 
 install: