layer1: Introduce a decicated channel state in l1s
[osmocom-bb.git] / src / target / firmware / Makefile.inc
index 3d6930f..91b3b00 100644 (file)
@@ -69,22 +69,32 @@ ALL_OBJS+=$(ANY_APP_OBJS)
 ALL_DEPS+=$(ANY_APP_OBJS:.o=.p)
 
 # template for application rules
-define APPLICATION_BOARD_template
+define APPLICATION_BOARD_ENVIRONMENT_template
 
-board/$(2)/$(1).elf board/$(2)/$(1).map board/$(2)/$(1).size: apps/$(1)/main.o $(ANY_APP_OBJS) $(ANY_APP_LIBS) $$($(2)_OBJS) board/$(2)/board.o
-       $(CROSS_COMPILE)$(LD) $(LDFLAGS) -T $(LDS) -Bstatic -Map board/$(2)/$(1).map  -o board/$(2)/$(1).elf --start-group $$^ --end-group
-       $(CROSS_COMPILE)$(SIZE) board/$(2)/$(1).elf | tee board/$(2)/$(1).size
+# define set of objects for this binary
+$(1)_$(2)_$(3)_OBJS := apps/$(1)/main.o $(ANY_APP_OBJS) $(ANY_APP_LIBS) $$($(2)_OBJS)
 
-ALL_APPS+=board/$(2)/$(1).elf
+# define manifest compilation
+board/$(2)/$(1).$(3).manifest.o: board/manifest.c
+       $(CROSS_COMPILE)$(CC) $(CFLAGS) -DAPPLICATION=\"$(3)\" -DBOARD=\"$(2)\" -DENVIRONMENT=\"$(3)\" -c -o $$@ $$<
+
+# add manifest object to object list
+$(1)_$(2)_$(3)_OBJS+=board/$(2)/$(1).$(3).manifest.o
+
+# define compilation, generating various extra files on the way
+board/$(2)/$(1).$(3).elf board/$(2)/$(1).$(3).map board/$(2)/$(1).$(3).size: $$($(1)_$(2)_$(3)_OBJS) $$($(3)_LDS)
+       $(CROSS_COMPILE)$(LD) $(LDFLAGS) -T $$($(3)_LDS) -Bstatic \
+               -Map board/$(2)/$(1).$(3).map -o board/$(2)/$(1).$(3).elf \
+               --start-group $$($(1)_$(2)_$(3)_OBJS) --end-group
+       $(CROSS_COMPILE)$(SIZE) board/$(2)/$(1).$(3).elf | tee board/$(2)/$(1).$(3).size
+
+ALL_APPS+=board/$(2)/$(1).$(3).elf
 
 endef
 
 define BOARD_template
 
-board/$(1)/board.o: board/board.c
-       $(CROSS_COMPILE)$(CC) $(CFLAGS) -DBOARD=\"$(1)\" -c -o $$@ $$<
-
-ALL_OBJS+=board/$(1)/board.o $$($(1)_OBJS)
+ALL_OBJS+=$$($(1)_OBJS)
 
 endef
 
@@ -100,8 +110,8 @@ ALL_DEPS+=$$($(1)_OBJS:.o=.p) apps/$(1)/main.p
 endef
 
 # define rules for all defined applications
-$(foreach app,$(APPLICATIONS),$(foreach board,$(BOARDS),$(eval $(call APPLICATION_BOARD_template,$(app),$(board)))))
-$(foreach board,$(BOARDS),$(eval $(call BOARD_template,$(board))))
+$(foreach app,$(APPLICATIONS),$(foreach brd,$(BOARDS),$(foreach env,$(ENVIRONMENTS),$(eval $(call APPLICATION_BOARD_ENVIRONMENT_template,$(app),$(brd),$(env))))))
+$(foreach brd,$(BOARDS),$(eval $(call BOARD_template,$(brd))))
 $(foreach app,$(APPLICATIONS),$(eval $(call APPLICATION_template,$(app))))
 
 
@@ -115,7 +125,7 @@ $(1)_OBJS:=$$($(1)_SRCS_REL:.c=.o)
 $(1)_OBJS:=$$($(1)_OBJS:.S=.o)
 
 $$($(1)_DIR)/lib$(1).a: $$($(1)_OBJS)
-       $(AR) cru $$($(1)_DIR)/lib$(1).a $$($(1)_OBJS)
+       $(CROSS_COMPILE)$(AR) cru $$($(1)_DIR)/lib$(1).a $$($(1)_OBJS)
 
 ALL_LIBS+=$$($(1)_DIR)/lib$(1).a