Added SHT11 driver for TMote.
[sos-2x.git] / modules / Makerules
blob820521b89f44234b6c22b7cb6ed825d9848628fd
1 # -*-Makefile-*-
3 # Generel Makerules for Module image
6 ##################################################
7 # Only allow the module to be built for hardware that suports it.  A faild
8 # build will result in the "invalid" target
9 #################################################
10 ifndef SUPPORTLIST
11 SUPPORTLIST = cyclops protosb mica2 micaz xyz avrora cricket imote2 tmote sim
12 endif
14 UTILLIST = all install install2 setup check clean
16 WHITELIST += $(UTILLIST)
17 WHITELIST += $(SUPPORTLIST)
19 ifndef PLATFORM
20     ifeq ($(MAKECMDGOALS),)
21         FILTER = $(filter $(WHITELIST), mica2)
22         PLATFORM = mica2
23     else
24         FILTER = $(filter $(WHITELIST), $(MAKECMDGOALS))
25         PLATFORM = $(filter $(SUPPORTLIST), $(MAKECMDGOALS))
26     endif
27 else
28     FILTER = $(filter $(WHITELIST), $(PLATFORM))
29     PLATFORM = $(filter $(SUPPORTLIST), $(MAKECMDGOALS))
30 endif
32 ifeq ($(FILTER),)
33 $(error Invalid platform.  Please try "make [$(WHITELIST)]")
34 endif
38 ##################################################
39 # Misc. module options
40 #################################################
42 ifndef QUIET
43 QUIET = 0
44 endif
46 BUILD = _MODULE_
48 DEFS += -D_MODULE_ 
50 SRCS += $(PROJ).c  
52 ##################################################
53 # MEMORY PROTECTION
54 #################################################
55 ifeq ($(MODE), safe)
56 DEFS += -DFAULT_TOLERANT_SOS
57 endif
59 ifeq ($(MODE), sfi)
60 DEFS += -DSOS_SFI
61 endif
63 ifeq ($(MODE), sfi)
64 SFIDEPS += $(PROJ).sbx $(PROJ).sbx.lst
65 MELFDEPS += $(PROJ).sbx.mlf
66 else
67 ifeq ($(PLATFORM), sim) 
68 else
69 MELFDEPS += $(PROJ).sos $(PROJ).mlf
70 endif
71 endif
73 ##################################################
74 # PREEMPTION OPTIONS
75 #################################################
76 ifeq ($(MODE), preemption)
77 DEFS += -DSOS_USE_PREEMPTION
78 endif
79 ifeq ($(MODE), preemption_profiler)
80 DEFS += -DUSE_PREEMPTION_PROFILER
81 DEFS += -DSOS_USE_PREEMPTION
82 endif
85 #################################################
86 # MINI-ELF LOADER
87 #################################################
88 #MELFDEPS += $(PROJ).mlf
90 #################################################
92 #################################################
93 # VIRTUAL MACHINE 
94 #################################################
95 ifeq ($(VM_EXT),true)
96 DEFS += -DVM_EXTENSION_ENABLE
97 endif
100 OBJS += $(SRCS:.c=.o)
102 ifneq ($(PLATFORM),)
103 include $(ROOTDIR)/kernel/Makerules
104 endif
106 CFLAGS += -Wno-unused-variable
107 ####
108 # Make rules
109 ####
111 $(PLATFORM): $(PROCESSOR) $(PROJ).i $(SFIDEPS) $(MELFDEPS)
114 %.sfi.c : %.i
115         cilly.asm.exe --out $@ --keepunused --domotesfi $< 
117 %.mlf : %.elf
118         $(ROOTDIR)/tools/elfloader/utils/elftomini/elftomini.exe -o $@ $<
120 %.sbx : %.elf
121         $(ROOTDIR)/tools/harbor/app/avrsandbox/avrsandbox.exe -f $< -o $@
123 %.sbx.lst: %.sbx
124         $(OBJDUMP) -h -S $< > $@
126 %.sbx.mlf : %.sbx
127         $(ROOTDIR)/tools/elfloader/utils/elftomini/elftomini.exe -o $@ $<
129 all:
130         @echo "make [$(SUPPORTLIST)]"
132 install: $(PROJ).mlf 
133         cp $< $(ROOTDIR)/modules/build/
135 install2: $(PROJ).sos
136         cp $< $(ROOTDIR)/modules/build/
138 installmelf: $(PROJ).mlf
139         cp $< $(ROOTDIR)/modules/build/
141 installsbx: $(PROJ).sbx.mlf
142         cp $< $(ROOTDIR)/modules/build/
144 setup:
145         $(INSTALLER) --wr_fuse_l=0xff
146         sleep 2
147         $(INSTALLER) --wr_fuse_h=0x9f
148         sleep 2
149         $(INSTALLER) --wr_fuse_e=0xfe
151 check: $(PROJ).i
152         @$(ROOTDIR)/tools/verify/check $(PROJ).i $(ROOTDIR) $(QUIET)
154 clean:
155         rm -f *.sos *.o *.s *.srec *.elf *.lst $(PROJ).map $(PROJ).exe $(PROJ).cil.c \
156         $(PROJ).i $(PROJ).main.i *.i.check $(PROJ).sfi.c *.mlf $(PROJ).sbx $(PROJ).od