Created
June 22, 2015 00:48
-
-
Save ygrek/e08356b73269367632b2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Makefile.in b/Makefile.in | |
index 5a8eefd..370689a 100644 | |
--- a/Makefile.in | |
+++ b/Makefile.in | |
@@ -4,7 +4,7 @@ | |
.PHONY: all targets examples install clean distclean depend release doc | |
-.SUFFIXES: .ml .mli .cmx .cmi .cmo .cmxa .cma .c .o | |
+.SUFFIXES: .ml .mli .cmx .cmi .cmo .cmxa .cma .c @EXT_OBJ@ | |
INSTALLDIR = @INSTALLDIR@ | |
INSTALL = @INSTALL@ | |
@@ -16,18 +16,22 @@ OCAMLOPT = @OCAMLOPT@ | |
OCAMLDEP = @OCAMLDEP@ | |
OCAMLMKLIB = @OCAMLMKLIB@ | |
+EXT_LIB = @EXT_LIB@ | |
+EXT_OBJ = @EXT_OBJ@ | |
+EXT_DLL = @EXT_DLL@ | |
+ | |
FLAGS = -g | |
LIBS = | |
CFLAGS = @CFLAGS@ @DEFS@ -Wall | |
-CURLHELPEROBJS = curl-helper.o | |
+CURLHELPEROBJS = curl-helper$(EXT_OBJ) | |
CURLOBJS = curl.cmx | |
CURLBCOBJS = $(CURLOBJS:.cmx=.cmo) | |
CLIBS = @CURLLIBS@ | |
-TARGETS := curl.cma libcurl-helper.a dllcurl-helper.so | |
+TARGETS := curl.cma libcurl-helper$(EXT_LIB) dllcurl-helper$(EXT_DLL) | |
ifneq (@OCAML_PKG_lwt@,no) | |
TARGETS += curl_lwt.cmo | |
endif | |
@@ -38,9 +42,9 @@ TARGETS += curl_lwt.cmx | |
endif | |
endif | |
-INSTALL_TARGETS = curl.a curl.cmi curl.mli $(TARGETS) | |
+INSTALL_TARGETS = curl$(EXT_LIB) curl.cmi curl.mli $(TARGETS) | |
ifneq (@OCAML_PKG_lwt@,no) | |
-INSTALL_TARGETS += curl_lwt.cmi curl_lwt.mli curl_lwt.o | |
+INSTALL_TARGETS += curl_lwt.cmi curl_lwt.mli curl_lwt$(EXT_OBJ) | |
endif | |
all: | |
@@ -60,10 +64,10 @@ targets: $(TARGETS) examples | |
examples: | |
(cd examples; $(MAKE)) | |
-curl.cma: $(CURLBCOBJS) dllcurl-helper.so | |
+curl.cma: $(CURLBCOBJS) dllcurl-helper$(EXT_DLL) | |
$(OCAMLMKLIB) -o curl $(CURLBCOBJS) -oc curl-helper $(CLIBS) | |
-curl.cmxa: $(CURLOBJS) dllcurl-helper.so | |
+curl.cmxa: $(CURLOBJS) dllcurl-helper$(EXT_DLL) | |
$(OCAMLMKLIB) -o curl $(CURLOBJS) -oc curl-helper $(CLIBS) | |
curl_lwt.cmo: curl_lwt.ml | |
@@ -84,10 +88,10 @@ curl_lwt.cmi: curl_lwt.mli | |
.ml.cmo: | |
$(OCAMLC) -c $(FLAGS) $< -o $@ | |
-libcurl-helper.a dllcurl-helper.so: $(CURLHELPEROBJS) | |
+libcurl-helper$(EXT_LIB) dllcurl-helper$(EXT_DLL): $(CURLHELPEROBJS) | |
$(OCAMLMKLIB) -oc curl-helper $(CURLHELPEROBJS) $(CLIBS) | |
-.c.o: | |
+.c$(EXT_OBJ): | |
$(OCAMLC) -c -ccopt "$(CFLAGS)" $< | |
install: | |
@@ -100,14 +104,14 @@ ifeq (@OCAMLBEST@,opt) | |
$(INSTALLDATA) curl.cmxa $(INSTALLDIR) | |
endif | |
$(INSTALLDATA) curl.mli curl.cmi $(INSTALLDIR) | |
- $(INSTALLDATA) curl.a libcurl-helper.a $(INSTALLDIR) | |
+ $(INSTALLDATA) curl$(EXT_LIB) libcurl-helper$(EXT_LIB) $(INSTALLDIR) | |
endif | |
uninstall: | |
ifneq (@OCAMLFIND@,no) | |
$(FINDLIB) remove curl | |
else | |
- (cd $(INSTALLDIR) && rm -f curl.cma curl.cmxa curl.mli curl.cmi curl.a libcurl-helper.a) | |
+ (cd $(INSTALLDIR) && rm -f curl.cma curl.cmxa curl.mli curl.cmi curl$(EXT_LIB) libcurl-helper$(EXT_LIB)) | |
rmdir $(INSTALLDIR) | |
endif | |
@@ -119,7 +123,7 @@ release: | |
gpg -a -b $(NAME).tar.gz | |
clean: | |
- @rm -f $(TARGETS) *~ *.cm* *.o *.a *.so .depend core | |
+ @rm -f $(TARGETS) *~ *.cm* *$(EXT_OBJ) *$(EXT_LIB) *$(EXT_DLL) .depend core | |
@(cd examples; $(MAKE) clean) | |
distclean: clean | |
diff --git a/configure.in b/configure.in | |
index 43b00a4..188d3f3 100644 | |
--- a/configure.in | |
+++ b/configure.in | |
@@ -32,6 +32,25 @@ AC_SUBST(INSTALLDIR) | |
AC_SUBST(OCAMLFIND) | |
AC_SUBST(OCAML_PKG_lwt) | |
+AC_MSG_CHECKING([for ext_dll]) | |
+EXT_DLL=`$OCAML print_ext.ml dll || $OCAMLC -config | fgrep ext_dll | sed -e "s/.*: //"` | |
+AS_IF([ test "$?" -eq 0 ],,[AC_MSG_ERROR([failed])] ) | |
+AC_MSG_RESULT([$EXT_DLL]) | |
+ | |
+AC_MSG_CHECKING([for ext_lib]) | |
+EXT_LIB=`$OCAML print_ext.ml lib || $OCAMLC -config | fgrep ext_lib | sed -e "s/.*: //"` | |
+AS_IF([ test "$?" -eq 0 ],,[AC_MSG_ERROR([failed])] ) | |
+AC_MSG_RESULT([$EXT_LIB]) | |
+ | |
+AC_MSG_CHECKING([for ext_obj]) | |
+EXT_OBJ=`$OCAML print_ext.ml obj || $OCAMLC -config | fgrep ext_obj | sed -e "s/.*: //"` | |
+AS_IF([ test "$?" -eq 0 ],,[AC_MSG_ERROR([failed])] ) | |
+AC_MSG_RESULT([$EXT_OBJ]) | |
+ | |
+AC_SUBST(EXT_DLL) | |
+AC_SUBST(EXT_LIB) | |
+AC_SUBST(EXT_OBJ) | |
+ | |
# set CFLAGS for tests below | |
CFLAGS="$CFLAGS $CURLCFLAGS" | |
diff --git a/print_ext.ml b/print_ext.ml | |
new file mode 100644 | |
index 0000000..ad21dea | |
--- /dev/null | |
+++ b/print_ext.ml | |
@@ -0,0 +1,7 @@ | |
+#use "topfind";; | |
+#require "compiler-libs.common";; | |
+match List.tl (Array.to_list Sys.argv) with | |
+| ["dll"] -> print_endline Config.ext_dll | |
+| ["obj"] -> print_endline Config.ext_obj | |
+| ["lib"] -> print_endline Config.ext_lib | |
+| _ -> prerr_endline "print_ext.ml: wrong usage"; exit 2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment