# the plaform
-PLATFORM = MARTE_OS
-# the path of the platform
+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$(FOSA_PATH)/marte_non_local_jump \
-I$(FSA_PATH)/include
-# the library flags
+# 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
+
+# the library flags
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
+
+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
+
+# in marte i have to repeat this for the moment
+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
+endif
+
+ifeq ($(CONFIG_FNA_RTEP),y)
+LDFLAGS += -L$(PLATFORM_PATH)/arch/drivers/rt-ep -lrtep
+endif
none:
@exec echo -e "\nPlease introduce a target, i.e: 'make test_dtm_xxx.exe'";
-%.exe: %.c libfna libfosa libfrsh libfosa libfsa libutils
+%.exe: %.c libfna libfosa libfrsh libfosa libfsa libutils dependencies
@exec echo -e "\n>> Building $@: ";
@if [ -f $< ]; \
then \
libfna:
@exec echo -e "\n>> Compiling FNA library (lib/libfna.a):";
+ @rm -f $(FNA_PATH)/lib/*.o
@make -C $(FNA_PATH)/src all
-ifeq ($(RTEP_ENABLE),RTEP_FNA_ENABLED)
- @make -C $(FNA_PATH)/src_rtep librtepfna.a
+ @mv $(FNA_PATH)/src/*.o $(FNA_PATH)/lib/
+
+ifeq ($(CONFIG_FNA_RTEP),y)
+ @make -C $(FNA_PATH)/src_rtep librtepfna.a
+endif
+
+ifeq ($(CONFIG_FNA_UNIX),y)
+ @make -C $(FNA_PATH)/src_unix libunixfna.a
endif
-ifeq ($(UNIX_ENABLE),UNIX_FNA_ENABLED)
- @make -C $(FNA_PATH)/src_unix libunixfna.a
+
+ifeq ($(CONFIG_FNA_FRESCAN),y)
+ @make -C $(FNA_PATH)/src_frescan libfrescan
endif
-ifeq ($(FRESCAN_ENABLE),FRESCAN_FNA_ENABLED)
- @make -C $(FNA_PATH)/src_frescan libfrescan
+
+ifeq ($(CONFIG_FWP),y)
+ @make -C $(FNA_PATH)/src_fwp libfwp
endif
- @ar -rc libfna.a $(FNA_PATH)/src/*.o $(FNA_PATH)/lib/*.o
+
+ @ar -rc libfna.a $(FNA_PATH)/lib/*.o
@mv libfna.a $(FNA_PATH)/lib/
+ @rm -f $(FNA_PATH)/lib/*.o
@exec echo ">> End Compiling FNA library (lib/libfna.a)"
libfrsh:
libfsa:
make -C $(FSA_PATH) libfsa
+dependencies:
+ifeq ($(PLATFORM),MARTE_OS)
+ make -C $(PLATFORM_PATH)/misc/ all
+endif
+
clean:
@exec echo -e "\n>> Cleaning... ";
@find \( -name '*.[oa]' -or -name '*~*' -or -name 'lib*.a' \
-or -name '*.exe' -or -name 'mprogram' -or -name 'a.out' \) -print -delete
- @exec echo ">> End Cleaning"
\ No newline at end of file
+ @exec echo ">> End Cleaning"