aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Dailly <sebastien@chimrod.com>2018-07-16 11:52:12 +0200
committerSébastien Dailly <sebastien@chimrod.com>2018-07-26 21:34:10 +0200
commit5711287dc01133195297cd2309aaca0191c01473 (patch)
tree0faa2c7e924d4d9d4cb1b7b2eb3f8bbe5e962d54
parent725a98ea6133fe7741ac1ada32d53f7978bfede0 (diff)
Update compilation for windows
-rwxr-xr-x.gitignore2
-rwxr-xr-xMakefile4
-rwxr-xr-xsrc/screen.ml5
-rwxr-xr-xstub/Makefile13
-rwxr-xr-xstub/locale.c62
5 files changed, 15 insertions, 71 deletions
diff --git a/.gitignore b/.gitignore
index 9e294ce..76dc037 100755
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,11 @@
_build/
*.byte
*.native
+*.exe
*.swp
*.docdir
*.o
*.so
+*.dll
*.a
licht
diff --git a/Makefile b/Makefile
index 4adbf07..403cf41 100755
--- a/Makefile
+++ b/Makefile
@@ -59,6 +59,8 @@ clean:
rm -f licht
rm -f *.native
rm -f *.byte
- make -C stub clean
+ $(MAKE) -C stub LIB=$(LIB) clean
+
+
$(OCB) -clean
diff --git a/src/screen.ml b/src/screen.ml
index d168865..e11180b 100755
--- a/src/screen.ml
+++ b/src/screen.ml
@@ -173,7 +173,6 @@ let init () = begin
let init = Curses.keypad window true
&& Curses.noecho ()
&& Curses.start_color ()
- && Curses.use_default_colors ()
(* Build the color map *)
&& Curses.init_pair 1 Color.white Color.blue (* Titles *)
@@ -181,10 +180,10 @@ let init () = begin
&& Curses.init_pair 3 Color.black Color.white (* Selected cell *)
&& Curses.init_pair 4 Color.black Color.red (* referenced cell *)
&& Curses.init_pair 5 Color.black Color.green (* sink cell *)
- && Curses.curs_set 0 in
+ in
if not init then
- raise (Failure "Initialisation")
+ raise (Failure "Could not intialize the screen")
else
{
window = window;
diff --git a/stub/Makefile b/stub/Makefile
index 462ba73..ea4ddde 100755
--- a/stub/Makefile
+++ b/stub/Makefile
@@ -3,20 +3,23 @@ LIB_STUB = $(LIB)_stub
C_FILES = $(wildcard *.c)
OBJ_FILES = $(patsubst %.c,%.o,$(C_FILES))
+SHARED_EXTENSION=$(shell ocamlc -config | grep ext_dll | cut -d' ' -f2)
+LIBRARY=dll$(LIB_STUB)$(SHARED_EXTENSION)
+
#LINK_FLAG = $(shell pkg-config --libs $(LIB))
LINK_FLAG=
-all: dll$(LIB_STUB).so
+all: $(LIBRARY)
%.o: %.c
ocamlc -o $@ $<
-dll$(LIB_STUB).so: $(OBJ_FILES)
+$(LIBRARY): $(OBJ_FILES)
ocamlmklib -I ../_build -oc $(LIB_STUB) $(LINK_FLAG) $^
test -d ../_build || mkdir ../_build
- ln -sf ../stub/dll$(LIB_STUB).so ../_build/
- ln -sf ../stub/lib$(LIB_STUB).a ../_build/
+ cp $(LIBRARY) ../_build/
+ cp lib$(LIB_STUB).a ../_build/
clean:
- rm $(OBJ_FILES) *.so *.a
+ rm $(OBJ_FILES) $(LIBRARY) *.a
diff --git a/stub/locale.c b/stub/locale.c
deleted file mode 100755
index 19a4e39..0000000
--- a/stub/locale.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-This file is part of licht.
-
-licht is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-licht is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with licht. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <locale.h>
-
-#include "ocaml.h"
-
-CAMLprim value
-c_set_locale(value v, value str) {
-
- int param = 0;
- char* defined_locale;
- switch (Int_val(v)) {
- case 0: param = LC_ALL; break;
- case 1: param = LC_COLLATE; break;
- case 2: param = LC_CTYPE; break;
- case 3: param = LC_MONETARY; break;
- case 4: param = LC_NUMERIC; break;
- case 5: param = LC_TIME; break;
- case 6: param = LC_MESSAGES; break;
- }
-
- const char *locale_name = String_val(str);
- setlocale(param,locale_name);
- defined_locale = setlocale(param,NULL);
- return caml_copy_string(defined_locale);
-
-}
-
-CAMLprim value
-c_length( value v ) {
-
- char *s;
- int len = 0;
- int i = 0, sum = 0;
- s = String_val(v);
-
- while ( ( len = mbtowc (NULL, &s[i], MB_CUR_MAX )) != 0) {
- i += len;
- sum++;
- }
-
- return Val_int(sum);
-
-}