OSDN Git Service

8763914cd307b7f76862edd45f764631d17bf779
[nxt-jsp/etrobo-atk.git] / nxtOSEK / c++ / src / Makefile
1 # Makefile for LEJOS OSEK C/C++ library
2
3 ROOT = ../..
4
5 ECROBOT_ROOT = $(ROOT)/ecrobot
6 LEJOSNXJSRC_ROOT = $(ROOT)/lejos_nxj/src/
7 TOPPERS_OSEK_ROOT = $(ROOT)/toppers_osek
8 CXX_ROOT = $(ROOT)/c++
9
10 LEJOS_PLATFORM_SOURCES_PATH = nxtvm/platform/nxt
11 LEJOS_VM_SOURCES_PATH = nxtvm/javavm
12
13 TOPPERS_OSEK_INC_PATH = \
14         $(TOPPERS_OSEK_ROOT)/kernel \
15         $(TOPPERS_OSEK_ROOT)/include \
16         $(TOPPERS_OSEK_ROOT)/config/at91sam7s-gnu \
17         $(TOPPERS_OSEK_ROOT)/config/at91sam7s-gnu/lego_nxt \
18         $(TOPPERS_OSEK_ROOT)/sg \
19         $(TOPPERS_OSEK_ROOT)/syslib/at91sam7s-gnu/lego_nxt
20
21 INC_PATH := \
22         $(LEJOSNXJSRC_ROOT)/$(LEJOS_PLATFORM_SOURCES_PATH) \
23         $(LEJOSNXJSRC_ROOT)/$(LEJOS_VM_SOURCES_PATH) \
24         $(ECROBOT_ROOT) \
25         $(CXX_ROOT)/boost \
26         $(CXX_ROOT)/util
27
28 C_LIB_SOURCES = errorhook.c posttaskhook.c pretaskhook.c robotinit.c robotterminate.c \
29         shutdownhook.c startuphook.c
30
31 CC_LIB_SOURCES = AccelSensor.cc ColorSensor.cc CompassSensor.cc LightSensor.cc \
32         Motor.cc sensormonitor.cc sleep.cc SonarSensor.cc SoundSensor.cc timerint.cc TouchSensor.cc PrototypeSensor.cc \
33         PSPNx.cc
34
35
36 C_OPTIMISATION_FLAGS = -Os
37 include $(ECROBOT_ROOT)/tool_gcc.mak
38
39 O_FILES = $(C_LIB_SOURCES:c=o) $(CC_LIB_SOURCES:cc=o)
40
41 TARGET = $(CXX_ROOT)/liblejososek.a
42
43 .PHONY: all
44 all: $(TARGET)
45
46 $(TARGET): $(O_FILES)
47         @echo "Creating $@"
48         $(AR) rv $(TARGET) $(O_FILES)
49
50 %.o: %.c
51         @echo "Compiling $< to $@"
52         $(CC) $(CFLAGS) -o $@ $<
53
54 %.o: %.cc
55         @echo "Compiling $< to $@"
56         $(CXX) $(CXXFLAGS) -o $@ $<
57
58 .PHONY: release
59 release:
60         rm *.o
61
62 .PHONY: clean
63 clean:
64         rm $(TARGET)
65         rm $(O_FILES)
66