ifeq ($(PLATFORM), MARTE_OS) CC = mgcc LD = mld else CC = gcc LD = ld endif CFLAGS += -D$(PLATFORM) \ -I$(FOSA_PATH)/include # This prevents mgcc from removing the debug information (stripping) LDFLAGS += -g ifeq ($(PLATFORM), MARTE_OS) CFLAGS += -I$(FOSA_PATH)/marte_non_local_jump endif none: @exec echo -e "\nPlease introduce a target, i.e: 'make test'"; %.exe: %.c $(FOSA_PATH)/lib/libfosa_$(PLATFORM).a @exec echo -e "\n>> Building $@: "; $(CC) -c $(CFLAGS) $< $(CC) $(LDFLAGS) -L$(FOSA_PATH)/lib $(patsubst %.c,%.o,$<) -lfosa_$(PLATFORM) -lm -o $@ @exec echo ">> [OK]"; %.o: %.c $(LIBFOSA_SRCS) $(LIBFOSA_HDRS) $(CC) $(CFLAGS) -c $< libfosa: $(FOSA_PATH)/lib/libfosa_$(PLATFORM).a $(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 @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 clean: @exec echo -e "\n>> Cleaning... "; @find \( -name '*.[oa]' -or -name '*~*' -or -name 'libfosa.a' \ -or -name '*.ali' -or -name 'b~*' \ -or -name '*.exe' -or -name 'mprogram' -or -name 'a.out' \) -print -delete @exec echo ">> [OK]" .PHONY: none libfosa clean all