diff -Naur -x .gil _pvr.1/Makefile _pvr.2/Makefile
--- _pvr.1/Makefile	2026-03-10 04:20:32.826846677 +0100
+++ _pvr.2/Makefile	2026-03-10 04:30:56.809827130 +0100
@@ -1,8 +1,11 @@
-all:
-	$(MAKE) -f _pvr.mk
+all: obj nt
+obj:
+	$(MAKE) -C _pvr/ -f _pvr.mk obj
 so:
-	$(MAKE) -f _pvr.mk so
+	$(MAKE) -C _pvr/ -f _pvr.mk so
+nt:
+	$(MAKE) -C _pvr-nt/
 clean:
 	$(MAKE) -C _tst/ clean
-	$(MAKE) -f _pvr.mk clean
+	$(MAKE) -C _pvr/ clean
 	$(MAKE) -C _pvr-nt/ clean
diff -Naur -x .gil _pvr.1/_pvr/Makefile _pvr.2/_pvr/Makefile
--- _pvr.1/_pvr/Makefile	1970-01-01 01:00:00.000000000 +0100
+++ _pvr.2/_pvr/Makefile	2026-03-10 04:29:30.740829905 +0100
@@ -0,0 +1,8 @@
+all:
+	$(MAKE) -f _pvr.mk
+obj:
+	$(MAKE) -f _pvr.mk obj
+so:
+	$(MAKE) -f _pvr.mk so
+clean:
+	$(MAKE) -f _pvr.mk clean
diff -Naur -x .gil _pvr.1/_pvr/_pvr.c _pvr.2/_pvr/_pvr.c
--- _pvr.1/_pvr/_pvr.c	1970-01-01 01:00:00.000000000 +0100
+++ _pvr.2/_pvr/_pvr.c	2026-03-10 04:26:53.519834854 +0100
@@ -0,0 +1,47 @@
+#include <stdio.h>
+#include "_pvr.h"
+void
+pv_bg(int *c)
+{ float f[3];
+  f[0]=(float)c[0]; f[0]/=255.0;
+  f[1]=(float)c[1]; f[1]/=255.0;
+  f[2]=(float)c[2]; f[2]/=255.0;
+  fprintf(stdout, "background{ color rgb <%.2g,%.2g,%.2g> }\n", f[0],f[1],f[2]);}
+
+void
+pv_cm(int *l, int *t)
+{ fprintf(stdout, "camera{ location <%d,%d,%d> look_at <%d,%d,%d> }\n", l[0],l[1],l[2],
+  t[0],t[1],t[2]);}
+
+void
+pv_ci()
+{ fprintf(stdout, "#include \"colors.inc\"\n");}
+
+void
+pv_ls(int *l, int *c)
+{ float f[3];
+  f[0]=(float)c[0]; f[0]/=255.0;
+  f[1]=(float)c[1]; f[1]/=255.0;
+  f[2]=(float)c[2]; f[2]/=255.0;
+  fprintf(stdout, "light_source{ <%d,%d,%d> color rgb <%.2g,%.2g,%.2g> }\n", l[0],l[1],l[2],
+  f[0],f[1],f[2]);}
+
+void
+pv_gs(int *l)
+{ float f[3];
+  f[0]=(float)l[0]; f[0]/=255.0;
+  f[1]=(float)l[1]; f[1]/=255.0;
+  f[2]=(float)l[2]; f[2]/=255.0;
+  fprintf(stdout, "global_settings{ ambient_light rgb <%.2g,%.2g,%.2g> }\n", f[0],f[1],f[2]);}
+
+void
+pv_sh(int *c, float r, int *t, float *p)
+{ float f[3];
+  f[0]=(float)t[0]; f[0]/=255.0;
+  f[1]=(float)t[1]; f[1]/=255.0;
+  f[2]=(float)t[2]; f[2]/=255.0;
+  fprintf(stdout, "sphere{\n <%d,%d,%d>, %.2g\n", c[0],c[1],c[2], r );
+  fprintf(stdout, " texture { pigment { color rgb <%.2g,%.2g,%.2g> } }\n", f[0],f[1],f[2] );
+  fprintf(stdout, " translate <%.2g,%.2g,%.2g>\n}\n", p[0],p[1],p[2] );
+}
+
diff -Naur -x .gil _pvr.1/_pvr/_pvr.h _pvr.2/_pvr/_pvr.h
--- _pvr.1/_pvr/_pvr.h	1970-01-01 01:00:00.000000000 +0100
+++ _pvr.2/_pvr/_pvr.h	2026-03-10 04:26:53.519834854 +0100
@@ -0,0 +1,13 @@
+#ifndef _PVR_H_
+#define _PVR_H_
+
+void pv_bg(int *c);
+void pv_cm(int *l, int *t);
+void pv_ci();
+void pv_ls(int *l, int *c);
+void pv_gs(int *l);
+
+void
+pv_sh(int *c, float r, int *t, float *p);
+
+#endif /* _PVR_H_ */
diff -Naur -x .gil _pvr.1/_pvr/_pvr.mk _pvr.2/_pvr/_pvr.mk
--- _pvr.1/_pvr/_pvr.mk	1970-01-01 01:00:00.000000000 +0100
+++ _pvr.2/_pvr/_pvr.mk	2026-03-10 04:26:53.510834854 +0100
@@ -0,0 +1,10 @@
+all: obj
+obj: _pvr.o
+so: libpvr.so
+_pvr.o: _pvr.c
+	gcc -c -fPIC $<
+libpvr.so: _pvr.o
+	gcc -shared -o $@ $<
+clean:
+	$(RM) _pvr.o
+	$(RM) libpvr.so
diff -Naur -x .gil _pvr.1/_pvr.c _pvr.2/_pvr.c
--- _pvr.1/_pvr.c	2026-03-10 03:47:48.652908082 +0100
+++ _pvr.2/_pvr.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,47 +0,0 @@
-#include <stdio.h>
-#include "_pvr.h"
-void
-pv_bg(int *c)
-{ float f[3];
-  f[0]=(float)c[0]; f[0]/=255.0;
-  f[1]=(float)c[1]; f[1]/=255.0;
-  f[2]=(float)c[2]; f[2]/=255.0;
-  fprintf(stdout, "background{ color rgb <%.2g,%.2g,%.2g> }\n", f[0],f[1],f[2]);}
-
-void
-pv_cm(int *l, int *t)
-{ fprintf(stdout, "camera{ location <%d,%d,%d> look_at <%d,%d,%d> }\n", l[0],l[1],l[2],
-  t[0],t[1],t[2]);}
-
-void
-pv_ci()
-{ fprintf(stdout, "#include \"colors.inc\"\n");}
-
-void
-pv_ls(int *l, int *c)
-{ float f[3];
-  f[0]=(float)c[0]; f[0]/=255.0;
-  f[1]=(float)c[1]; f[1]/=255.0;
-  f[2]=(float)c[2]; f[2]/=255.0;
-  fprintf(stdout, "light_source{ <%d,%d,%d> color rgb <%.2g,%.2g,%.2g> }\n", l[0],l[1],l[2],
-  f[0],f[1],f[2]);}
-
-void
-pv_gs(int *l)
-{ float f[3];
-  f[0]=(float)l[0]; f[0]/=255.0;
-  f[1]=(float)l[1]; f[1]/=255.0;
-  f[2]=(float)l[2]; f[2]/=255.0;
-  fprintf(stdout, "global_settings{ ambient_light rgb <%.2g,%.2g,%.2g> }\n", f[0],f[1],f[2]);}
-
-void
-pv_sh(int *c, float r, int *t, float *p)
-{ float f[3];
-  f[0]=(float)t[0]; f[0]/=255.0;
-  f[1]=(float)t[1]; f[1]/=255.0;
-  f[2]=(float)t[2]; f[2]/=255.0;
-  fprintf(stdout, "sphere{\n <%d,%d,%d>, %.2g\n", c[0],c[1],c[2], r );
-  fprintf(stdout, " texture { pigment { color rgb <%.2g,%.2g,%.2g> } }\n", f[0],f[1],f[2] );
-  fprintf(stdout, " translate <%.2g,%.2g,%.2g>\n}\n", p[0],p[1],p[2] );
-}
-
diff -Naur -x .gil _pvr.1/_pvr.h _pvr.2/_pvr.h
--- _pvr.1/_pvr.h	2026-03-10 03:48:26.270906901 +0100
+++ _pvr.2/_pvr.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
-#ifndef _PVR_H_
-#define _PVR_H_
-
-void pv_bg(int *c);
-void pv_cm(int *l, int *t);
-void pv_ci();
-void pv_ls(int *l, int *c);
-void pv_gs(int *l);
-
-void
-pv_sh(int *c, float r, int *t, float *p);
-
-#endif /* _PVR_H_ */
diff -Naur -x .gil _pvr.1/_pvr.mk _pvr.2/_pvr.mk
--- _pvr.1/_pvr.mk	2026-03-10 03:15:15.962969363 +0100
+++ _pvr.2/_pvr.mk	1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-all: obj
-obj: _pvr.o
-so: libpvr.so
-_pvr.o: _pvr.c
-	gcc -c -fPIC $<
-libpvr.so: _pvr.o
-	gcc -shared -o $@ $<
-clean:
-	$(RM) _pvr.o
-	$(RM) libpvr.so
diff -Naur -x .gil _pvr.1/_pvr-nt/Makefile _pvr.2/_pvr-nt/Makefile
--- _pvr.1/_pvr-nt/Makefile	2026-03-10 03:15:15.961969363 +0100
+++ _pvr.2/_pvr-nt/Makefile	2026-03-10 04:32:00.999825237 +0100
@@ -4,9 +4,9 @@
 pvr.cmi: pvr.mli
 	ocamlc -c $<
 pvr_stub.o: pvr_stub.c
-	ocamlopt -c -fPIC -I ../ pvr_stub.c
-pvr.cma: pvr.cmo pvr_stub.o ../_pvr.o
-	ocamlmklib -o pvr -oc pvr_stub -linkall pvr.cmo pvr_stub.o ../_pvr.o
+	ocamlopt -c -fPIC -I ../_pvr/ pvr_stub.c
+pvr.cma: pvr.cmo pvr_stub.o ../_pvr/_pvr.o
+	ocamlmklib -o pvr -oc pvr_stub -linkall pvr.cmo pvr_stub.o ../_pvr/_pvr.o
 ../_pvr.o: ../_pvr.c
 	$(MAKE) -C ../
 clean:
diff -Naur -x .gil _pvr.1/_tst/readme _pvr.2/_tst/readme
--- _pvr.1/_tst/readme	1970-01-01 01:00:00.000000000 +0100
+++ _pvr.2/_tst/readme	2026-03-10 04:33:55.998821440 +0100
@@ -0,0 +1,2 @@
+make _ga.pov
+make _ga.png
