LD = ld
endif
+LOWCASE_PLATFORM := $(shell echo $(PLATFORM) | tr "A-Z" "a-z")
CFLAGS += -D$(PLATFORM) \
- -I$(FOSA_PATH)/include \
- -I$(UTILS_PATH)/include
-
-ifeq ($(PLATFORM), MARTE_OS)
- CFLAGS += -I$(FOSA_PATH)/marte_non_local_jump
-endif
+ -I$(FOSA_PATH)/include -fno-strict-aliasing
+# This prevents mgcc from removing the debug information (stripping)
+LDFLAGS += -g
none:
@exec echo -e "\nPlease introduce a target, i.e: 'make test'";
%.o: %.c $(LIBFOSA_SRCS) $(LIBFOSA_HDRS)
$(CC) $(CFLAGS) -c $<
+ifeq ($(PLATFORM), AQuoSA)
+libfosa: $(FOSA_PATH)/lib/libfosa_$(PLATFORM).a $(FOSA_PATH)/lib/libfosa_$(PLATFORM).so
+else
libfosa: $(FOSA_PATH)/lib/libfosa_$(PLATFORM).a
+endif
$(FOSA_PATH)/lib/libfosa_$(PLATFORM).a:
@exec echo -e "\n>> Compiling FOSA library (lib/libfosa_$(PLATFORM).a):";
- @make -C $(FOSA_PATH)/src_marte all # Should be src_$(PLATFORM)
- ar -rc libfosa_$(PLATFORM).a $(FOSA_PATH)/src_marte/*.o
+ @make -C $(FOSA_PATH)/src_$(LOWCASE_PLATFORM) all # Should be src_$(PLATFORM)
+ ar -rc libfosa_$(PLATFORM).a $(FOSA_PATH)/src_$(LOWCASE_PLATFORM)/*.o
@mv libfosa_$(PLATFORM).a $(FOSA_PATH)/lib/
@exec echo ">> [OK]"
-
-$(FOSA_PATH)/marte_non_local_jump/non_local_jump.o:
- make -C $(FOSA_PATH)/marte_non_local_jump
-
+ifeq ($(PLATFORM), AQuoSA)
+$(FOSA_PATH)/lib/libfosa_$(PLATFORM).so:
+ @exec echo -e "\n>> Compiling FOSA library (lib/libfosa_$(PLATFORM).so):";
+ @make -C $(FOSA_PATH)/src_$(LOWCASE_PLATFORM) all # Should be src_$(PLATFORM)
+ $(CC) -shared -o $@ $(FOSA_PATH)/src_$(LOWCASE_PLATFORM)/*.o
+ @exec echo ">> [OK]"
+endif
clean:
@exec echo -e "\n>> Cleaning... ";
@find \( -name '*.[oa]' -or -name '*~*' -or -name 'libfosa.a' \
-or -name '*.ali' -or -name 'b~*' \
+ -or -name '*.so' \
-or -name '*.exe' -or -name 'mprogram' -or -name 'a.out' \) -print -delete
@exec echo ">> [OK]"