diff --git a/advanced_lab/c/Makefile b/advanced_lab/c/Makefile
index 68aecb037883a2b9efaf52cdba9d5430425d40a8..e08914905d1f1b6f334c9ab36255d4f701a1ef6e 100644
--- a/advanced_lab/c/Makefile
+++ b/advanced_lab/c/Makefile
@@ -1,5 +1,13 @@
 CC = cc
+ifeq ($(CRAY_PRGENVCRAY), loaded)
 CFLAGS = -O2 -homp
+else ifeq ($(CRAY_PRGENVINTEL), loaded)
+CFLAGS = -O2 -openmp
+else ifeq ($(CRAY_PRGENVGNU), loaded)
+CFLAGS = -O2 -fopenmp
+else
+CFLAGS = -O2
+endif
 SRC = vtk_export.c shwater2d.c
 OBJS = ${SRC:.c=.o}
 DEST = shwater2d
@@ -10,7 +18,7 @@ $(DEST): $(OBJS)
 	$(CC) $(CFLAGS) $(OBJS) -o $@ -lm	
 
 clean:
-	rm -f $(DEST) *.mod *.MOD *.o
+	rm -f $(DEST) *.o
 
 %.o: %.c
 	$(CC) $(CFLAGS) -c $<
diff --git a/advanced_lab/f90/Makefile b/advanced_lab/f90/Makefile
index cea42e262be17c0f327df549bb3ff87c93dbd8db..c7d291edff2a45ad890909ac983c74656d582039 100644
--- a/advanced_lab/f90/Makefile
+++ b/advanced_lab/f90/Makefile
@@ -1,5 +1,16 @@
-F90 = ftn
+FC = ftn
+ifeq ($(CRAY_PRGENVCRAY), loaded)
 FFLAGS = -O2 -homp
+else ifeq ($(CRAY_PRGENVINTEL), loaded)
+FFLAGS = -O2 -openmp
+else ifeq ($(CRAY_PRGENVGNU), loaded)
+ifeq ($(shell expr $(GCC_VERSION) '<' 5.0), 1)
+$(error Unsupported GCC version, use at least v5.x (module swap gcc gcc/5.1.0))
+endif
+FFLAGS = -O2 -fopenmp
+else
+FFLAGS = -O2
+endif
 SRC = vtk_export.f90 shwater2d.f90
 OBJS = ${SRC:.f90=.o}
 DEST = shwater2d
@@ -7,11 +18,11 @@ DEST = shwater2d
 all: $(DEST)
 
 $(DEST): $(OBJS)
-	$(F90) $(FFLAGS) $(OBJS) -o $@	
+	$(FC) $(FFLAGS) $(OBJS) -o $@	
 
 clean:
 	rm -f $(DEST) *.mod *.MOD *.o
 
 %.o: %.f90
-	$(F90) $(FFLAGS) -c $<
+	$(FC) $(FFLAGS) -c $<