]> rtime.felk.cvut.cz Git - frescor/fosa.git/blob - rules.mk
Makefile: Add missing header file
[frescor/fosa.git] / rules.mk
1 ifeq ($(PLATFORM), MARTE_OS)
2         CC = mgcc
3         LD = mld
4 else
5         CC = gcc
6         LD = ld
7 endif
8
9 LOWCASE_PLATFORM := $(shell echo $(PLATFORM) | tr "A-Z" "a-z")
10
11 CFLAGS += -D$(PLATFORM) \
12         -I$(FOSA_PATH)/include -fno-strict-aliasing
13
14 # This prevents mgcc from removing the debug information (stripping)
15 LDFLAGS += -g
16
17 # PaRTiKle uses its own compiler script
18 ifeq ($(PLATFORM), PARTIKLE)
19         CC = pgcc
20         LD = ldkernel
21 endif
22
23
24
25 none:
26         @exec echo -e "\nPlease introduce a target, i.e: 'make test'";
27
28 %.exe: %.c $(FOSA_PATH)/lib/libfosa_$(PLATFORM).a
29         @exec echo -e "\n>> Building $@: ";
30         $(CC) -c $(CFLAGS) $< 
31         $(CC) $(LDFLAGS)  -L$(FOSA_PATH)/lib $(patsubst %.c,%.o,$<) -lfosa_$(PLATFORM) -lm -o $@
32         @exec echo ">> [OK]";
33
34 %.o: %.c $(LIBFOSA_SRCS) $(LIBFOSA_HDRS)
35         $(CC) $(CFLAGS) -c $<
36
37 ifeq ($(PLATFORM), AQuoSA)
38 libfosa: $(FOSA_PATH)/lib/libfosa_$(PLATFORM).a $(FOSA_PATH)/lib/libfosa_$(PLATFORM).so
39 else
40 libfosa: $(FOSA_PATH)/lib/libfosa_$(PLATFORM).a
41 endif
42
43 $(FOSA_PATH)/lib/libfosa_$(PLATFORM).a:
44         @exec echo -e "\n>> Compiling FOSA library (lib/libfosa_$(PLATFORM).a):";
45         @make -C $(FOSA_PATH)/src_$(LOWCASE_PLATFORM) all # Should be src_$(PLATFORM)
46         ar -rc libfosa_$(PLATFORM).a $(FOSA_PATH)/src_$(LOWCASE_PLATFORM)/*.o
47         @mv libfosa_$(PLATFORM).a $(FOSA_PATH)/lib/
48         @exec echo ">> [OK]"
49
50 ifeq ($(PLATFORM), AQuoSA)
51 $(FOSA_PATH)/lib/libfosa_$(PLATFORM).so:
52         @exec echo -e "\n>> Compiling FOSA library (lib/libfosa_$(PLATFORM).so):";
53         @make -C $(FOSA_PATH)/src_$(LOWCASE_PLATFORM) all # Should be src_$(PLATFORM)
54         $(CC) -shared -o $@ $(FOSA_PATH)/src_$(LOWCASE_PLATFORM)/*.o
55         @exec echo ">> [OK]"
56 endif
57
58 clean:
59         @exec echo -e "\n>> Cleaning... ";
60         @find \( -name '*.[oa]' -or -name '*~*' -or -name 'libfosa.a' \
61         -or -name '*.ali' -or -name 'b~*' \
62         -or -name '*.so' \
63         -or -name '*.exe' -or -name 'mprogram' -or -name 'a.out' \) -print -delete
64         @exec echo ">> [OK]"
65
66 .PHONY: none libfosa clean all