--- /dev/null
+
+mods = $(wildcard *.mod)
+
+results = $(patsubst %.mod,%.result,$(mods))
+
+all: $(results)
+
+%.result: %.mod
+ @echo Resolviendo $^...
+ @glpsol --model $^ --bounds $^.bounds > $@
+ @echo >> $@
+ @echo ------------------------------------------------------------------------ >> $@
+ @echo >> $@
+ @cat $^.bounds >> $@
+ @$(RM) $^.bounds
+
+clean:
+ @echo Limpiando...
+ @rm -fv *.result
+
+.PHONY: clean
+
--- /dev/null
+
+var fertilizante_a, >= 0;
+var fertilizante_b, >= 0;
+
+maximize
+ value: 1200 * fertilizante_a + 400 * fertilizante_b;
+
+subject to
+ alchool: 3 * fertilizante_a + 2/3 * fertilizante_b <= 80;
+ ciclohexano: fertilizante_a + 2 * fertilizante_b <= 8;
+end;
--- /dev/null
+
+var producto1, >= 0;
+var producto2, >= 0;
+
+maximize
+ value: 60 * producto1 + 50 * producto2;
+
+subject to
+ maquina1: 2 * producto1 + 4 * producto2 <= 80;
+ maquina2: 3 * producto1 + 2 * producto2 <= 60;
+ maquina3: 4 * producto1 + 2 * producto2 <= 100;
+end;
--- /dev/null
+
+var producto1, >= 0;
+var producto2, >= 0;
+
+maximize
+ value: 12 * producto1 + 8 * producto2;
+
+subject to
+ maquina1: 1 * producto1 + 2/5 * producto2 <= 200;
+ maquina2: 1/2 * producto1 + 1 * producto2 <= 200;
+ demanda1: 1 * producto1 >= 50;
+ demanda2: 4 * producto1 <= producto2;
+end;
--- /dev/null
+
+var alimento_m, >= 0;
+var alimento_n, >= 0;
+
+minimize
+ value: 10 * alimento_m + 4 * alimento_n;
+
+subject to
+ nutriente_a: 0.1 * alimento_m >= 0.4;
+ nutriente_b: 0.1 * alimento_n >= 0.6;
+ nutriente_c: 0.1 * alimento_m >= 2;
+ nutriente_d: 0.2 * alimento_n >= 1.7;
+end;