-# the plaform
-PLATFORM = MARTE_OS
-# the path of the platform
+# Platform: MARTE_OS, DUMMY_OS, RT_LINUX, OSE, AQuoSA
+PLATFORM = MARTE_OS
PLATFORM_PATH = $(HOME)/marte
-# the path for exporting programs linux_arch -> ./
-EXPORT_PATH = $(HOME)/export
+EXPORT_PATH = $(HOME)/export
# utilization or response time
SA_VERSION = utilization
-# enable networks with their flag (change DISABLED<->ENABLED)
-RTEP_ENABLE = RTEP_FNA_DISABLED
-UNIX_ENABLE = UNIX_FNA_DISABLED
-FRESCAN_ENABLE = FRESCAN_FNA_ENABLED
-
# the gcc to use
CC = mgcc
FRESCOR_ROOT = $(HOME)/frescor
-# the path to the FRSH directory.
-FRSH_PATH = $(FRESCOR_ROOT)/frsh
-# the path to the FOSA directory.
-FOSA_PATH = $(FRESCOR_ROOT)/fosa
-# the path to the FNA directory.
-FNA_PATH = $(FRESCOR_ROOT)/fna
-# the path to the UTILS directory
-UTILS_PATH = $(FRESCOR_ROOT)/utils
-# the path to the UTILS directory
-FSA_PATH = $(FRESCOR_ROOT)/fsa
+FRSH_PATH = $(FRESCOR_ROOT)/frsh
+FOSA_PATH = $(FRESCOR_ROOT)/fosa
+FNA_PATH = $(FRESCOR_ROOT)/fna
+UTILS_PATH = $(FRESCOR_ROOT)/utils
+FSA_PATH = $(FRESCOR_ROOT)/fsa
# the compilation flags
CFLAGS = -Wall -g -O1 -Wuninitialized \
-I$(FRSH_PATH)/include \
-I$(FOSA_PATH)/include \
-I$(UTILS_PATH)/include \
- -I$(FOSA_PATH)/marte_non_local_jump \
-I$(FSA_PATH)/include
+
+# fna networks configuration
+CONFIG_FNA_RTEP=n
+CONFIG_FNA_UNIX=n
+CONFIG_FNA_FRESCAN=n
+CONFIG_FWP=n
+
+ifeq ($(CONFIG_FNA_RTEP),y)
+CFLAGS += -DRTEP_FNA_ENABLED -I$(FNA_PATH)/src_rtep/ -I$(PLATFORM_PATH)/arch/drivers/rt-ep/
+endif
+
+ifeq ($(CONFIG_FNA_UNIX),y)
+CFLAGS += -DUNIX_FNA_ENABLED
+endif
+
+ifeq ($(CONFIG_FNA_FRESCAN),y)
+CFLAGS += -DFRESCAN_FNA_ENABLED -I$(FNA_PATH)/src_frescan/
+endif
+
+ifeq ($(CONFIG_FWP),y)
+CFLAGS += -DFWP_FNA_ENABLED
+endif
+
+# fna network connected
+CONFIG_FNA_RTEP_CONNECTED=n
+CONFIG_FNA_UNIX_CONNECTED=n
+CONFIG_FNA_FRESCAN_CONNECTED=n
+CONFIG_FWP_CONNECTED=n
+
+ifeq ($(CONFIG_FNA_RTEP_CONNECTED),y)
+CFLAGS += -DCONFIG_FNA_RTEP_CONNECTED
+endif
+
+ifeq ($(CONFIG_FNA_UNIX_CONNECTED),y)
+CFLAGS += -DCONFIG_FNA_UNIX_CONNECTED
+endif
+
+ifeq ($(CONFIG_FNA_FRESCAN_CONNECTED),y)
+CFLAGS += -DCONFIG_FNA_FRESCAN_CONNECTED
+endif
+
+ifeq ($(CONFIG_FWP_CONNECTED),y)
+CFLAGS += -DCONFIG_FWP_CONNECTED
+endif
+
# the library flags
+LDFLAGS = -L$(FRSH_PATH)/lib -L$(FSA_PATH)/lib -L$(FOSA_PATH)/lib \
+ -L$(UTILS_PATH)/lib -L$(FNA_PATH)/lib
+
+LDFLAGS += -Wl,--start-group -lfrsh -lfsa_$(SA_VERSION) -lfosa_$(PLATFORM) -lutils -lfna -lm
+
+ifeq ($(PLATFORM),MARTE_OS)
+LDFLAGS += $(PLATFORM_PATH)/misc/logger.o \
+ $(PLATFORM_PATH)/misc/time_measurement_hwtime.o \
+ $(PLATFORM_PATH)/misc/time_measurement_posix.o \
+ $(PLATFORM_PATH)/misc/freelist.o
+endif
-LDFLAGS = -L$(FRSH_PATH)/lib -lfrsh -L$(FSA_PATH)/lib -lfsa_$(SA_VERSION) \
- -L$(FOSA_PATH)/lib -lfosa_$(PLATFORM) -L$(UTILS_PATH)/lib -lutils \
- -L$(FNA_PATH)/lib -lfna -lm
+LDFLAGS += -Wl,--end-group