X-Git-Url: https://rtime.felk.cvut.cz/gitweb/frescor/fosa.git/blobdiff_plain/a670f46a6ab36fb960bb91b8dd762ff278661ae5..HEAD:/rules.mk diff --git a/rules.mk b/rules.mk index 135fc97..313cac6 100644 --- a/rules.mk +++ b/rules.mk @@ -6,6 +6,21 @@ else LD = ld endif +LOWCASE_PLATFORM := $(shell echo $(PLATFORM) | tr "A-Z" "a-z") + +CFLAGS += -D$(PLATFORM) \ + -I$(FOSA_PATH)/include -fno-strict-aliasing + +# This prevents mgcc from removing the debug information (stripping) +LDFLAGS += -g + +# PaRTiKle uses its own compiler script +ifeq ($(PLATFORM), PARTIKLE) + CC = pgcc + LD = ldkernel +endif + + none: @exec echo -e "\nPlease introduce a target, i.e: 'make test'"; @@ -13,30 +28,38 @@ none: %.exe: %.c $(FOSA_PATH)/lib/libfosa_$(PLATFORM).a @exec echo -e "\n>> Building $@: "; $(CC) -c $(CFLAGS) $< - $(CC) -L$(FOSA_PATH)/lib $(patsubst %.c,%.o,$<) -lfosa_$(PLATFORM) -lm -o $@ + $(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 $< +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]"