diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index efc8f41c345d195931ed4dcae0eada9e130d7edb..f4b5cee65707de3a1dd93af728b8de41f89a69a7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -10,13 +10,13 @@ build:
     - if: $MANUALBUILD
 
   before_script:
-    - apt-get install -y -qq libnetcdf-dev libeccodes-dev
+    - apt-get install -y -qq libnetcdf-dev libnetcdff-dev libeccodes-dev netcdf-bin
 
   script:
-    - FC=gfortran
-    - LIBRARY=$(nc-config --libs)
-    - INCLUDE=$(nc-config --inlcudedir)
-    - make -C ./src
+    - export FC=gfortran
+    - export LIBRARY_PATH=/usr/local/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu
+    - export INCLUDE=/usr/include
+    - make -C src
   
   artifacts:
     paths:
@@ -29,4 +29,4 @@ test:
   script:
     - ./src/main
     - test -f pres_temp_4D.nc
-    - ncdump pres_temp_4D.nc
+    - ncdump -h pres_temp_4D.nc
diff --git a/src/Makefile b/src/Makefile
index 2b735ca411c52c4db60977e749cd6efd9f2dbc95..059becde52ec93e76e4703a634f72686a9219b60 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,7 +1,19 @@
-all: main clean
+# use the environmental variable $INCLUDE
+# split the paths separated by :
+INC = $(subst :, ,$(INCLUDE))
+# add a -I/path/to/include
+INC := $(INC:%=-I%)
+# use the environmental variable $LIBRARY_PATH
+LIBS = $(subst :, ,$(LIBRARY_PATH))
+LIBS := $(LIBS:%=-L%)
+#
+all: clean main
 
-main:
-    $FC ${INCLUDE} ${LIBRARY} -o $@
+main: main.o
+	${FC} $< $(INC) $(LIBS) -lnetcdff -o $@
+%.o %.mod %.smod: %.f90
+	${FC} ${INC} -c -o $*.o $<
 
+.PHONY: clean
 clean:
 	rm -rf main *.o