-SOURCES = $(wildcard *.c)
-NAMES = $(basename $(SOURCES))
-OBJS = $(addsuffix .o,$(NAMES))
+FOSA_MODULES=fosa_clocks_and_timers fosa_threads_and_signals fosa_app_def_sched fosa_mutexes_and_condvars fosa_misc
+FOSA_OBJS = $(addsuffix .o,$(FOSA_MODULES))
FOSA_INC=../include
-FRSH_INC=../../../frsh/trunk/include
-PRTK_INC=../../../partikle/user/ulibc/include
-# Hack to avoid missing rtl_timer.h compilation issue
-RTL_TIMER_INC=.
+PRTK=$(HOME)/FRESCOR/FRSHv2/partikle/trunk
+PRTK_INC=$(PRTK)/user/ulibc/include
-CFLAGS+=-I$(FOSA_INC) -I$(FRSH_INC) -DRT_LINUX -I$(PRTK_INC) -I$(RTL_TIMER_INC)
-LIBFOSA=libfosa_PARTIKLE.a
+check_gcc = $(shell \
+ if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1 ;\
+ then \
+ echo "$(1)";\
+ else \
+ echo "$(2)";\
+ fi)
+
+CFLAGS+=-I$(FOSA_INC)\
+ -DPARTIKLE\
+ -I$(PRTK_INC)\
+# -DCONFIG_URGENCY\
+CFLAGS += $(call check_gcc, -fno-stack-protector,)
+LIBFOSA=libfosa_PARTIKLE.a
+CC=gcc
-all: libfosa.a
+all: $(LIBFOSA)
-libfosa.a: $(OBJS)
- $(AR) -r $(LIBFOSA) $(OBJS)
+$(LIBFOSA): $(FOSA_OBJS)
+ $(AR) -r $(LIBFOSA) $(FOSA_OBJS)
cp $(LIBFOSA) ../lib
-# test_fosa_c.o: test_fosa.o
-# ld -r -o test_fosa_c.o test_fosa.o $(LIBFOSA)
+test_fosa.prtk: test_fosa.c $(LIBFOSA)
+ $(CC) -c test_fosa.c $(CFLAGS)
+ ldkernel -o test_fosa.prtk test_fosa.o $(LIBFOSA)
# test_fosa.o: test_fosa.c
clean:
- $(RM) -f *.o *~ *.a
+ $(RM) -f *.o *~ *.a *.prtk