File: dynthreads.extra

package info (click to toggle)
tinyos 2.1.2%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster, jessie, jessie-kfreebsd, stretch
  • size: 47,476 kB
  • ctags: 36,607
  • sloc: ansic: 63,646; cpp: 14,974; java: 10,358; python: 5,215; makefile: 1,724; sh: 902; asm: 597; xml: 392; perl: 74; awk: 46
file content (45 lines) | stat: -rw-r--r-- 1,607 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# Extra threads Makefile target to enable thread support for tinyos
# Kevin Klues May 16th, 2008

MAKE_DYNTHREADS =
BUILD_DEPS = dynthreads_all

#Get all the normal include directories for a cthreads build
$(call TOSMake_include,cthreads.extra)
PFLAGS += -DDYNTHREADS

#Stuff to build dynamically loadable binary
DYNLOAD_CFILE = $(TOSTHREAD_MAIN_PATH)
CFLAGS += -c
PFLAGS += -x nesc

BUILDDIR = build/$(PLATFORM)/dynthreads
#DYNLOAD_BASENAME = $(shell basename $(DYNLOAD_CFILE) .c)
DYNLOAD_BASENAME = main

DYNLOAD_OBJFILE = $(BUILDDIR)/$(DYNLOAD_BASENAME).o
DYNLOAD_BINFILE = $(BUILDDIR)/$(DYNLOAD_BASENAME).bin
DYNLOAD_TOSFILE = $(BUILDDIR)/$(DYNLOAD_BASENAME).tos

DYNLOAD_NCC_COMMAND = $(NCC) -o $(DYNLOAD_OBJFILE) $(PFLAGS) $(OPTFLAGS) $(CFLAGS) $(DYNLOAD_CFILE)
DYNLOAD_OBJCOPY_COMMAND = $(OBJCOPY) --output-target=binary $(DYNLOAD_OBJFILE) $(DYNLOAD_BINFILE)
DYNLOAD_GENTOS_COMMAND = tosthreads-dynamic-app $(DYNLOAD_OBJFILE) $(DYNLOAD_BINFILE) $(DYNLOAD_TOSFILE)

dynthreads_build: dynthreads_builddir build_storage
	@echo "    compiling $(DYNLOAD_CFILE) to a $(PLATFORM) dynamically loadable binary"
	$(DYNLOAD_NCC_COMMAND)
	$(DYNLOAD_OBJCOPY_COMMAND)
	$(DYNLOAD_GENTOS_COMMAND)
	
ifneq ($(shell uname),Darwin)
dynthreads_all: dynthreads_build
	@echo "            $(shell stat -t $(DYNLOAD_TOSFILE) | perl -lane 'print $$F[1];') bytes in BINARY"
	@echo "    writing TOS image"
else
dynthreads_all: dynthreads_build
	@echo "            $(shell stat -F $(DYNLOAD_TOSFILE) | perl -lane 'print $$F[4];') bytes in BINARY"
	@echo "    writing TOS image"
endif

dynthreads_builddir:
	mkdir -p $(BUILDDIR)