+CC := gcc
+CFLAGS := -fPIC -Wall -Wno-unused \
+ -I$(OCAMLLIBDIR) \
+ -I$(PERLINCDIR) $(PERLCFLAGS) \
+ $(EXTRA_CFLAGS) $(EXTRA_EXTRA_CFLAGS)
+
+LIBPERL := $(shell perl -MExtUtils::Embed -e ldopts)
+
+SED := sed
+
+OCAMLDOCFLAGS := -html -stars -sort $(OCAMLCINCS)
+
+WRAPPERS := \
+ wrappers/pl_Data_Dumper.cmo \
+ wrappers/pl_Date_Calc.cmo \
+ wrappers/pl_Date_Format.cmo \
+ wrappers/pl_Date_Parse.cmo \
+ wrappers/pl_Net_Google_Cache.cmo \
+ wrappers/pl_Net_Google_Response.cmo \
+ wrappers/pl_Net_Google_Search.cmo \
+ wrappers/pl_Net_Google_Spelling.cmo \
+ wrappers/pl_Net_Google.cmo \
+ wrappers/pl_HTML_Element.cmo \
+ wrappers/pl_HTML_Parser.cmo \
+ wrappers/pl_HTML_TreeBuilder.cmo \
+ wrappers/pl_URI.cmo \
+ wrappers/pl_HTTP_Cookies.cmo \
+ wrappers/pl_HTTP_Headers.cmo \
+ wrappers/pl_HTTP_Message.cmo \
+ wrappers/pl_HTTP_Request.cmo \
+ wrappers/pl_HTTP_Request_Common.cmo \
+ wrappers/pl_HTTP_Response.cmo \
+ wrappers/pl_HTML_Form.cmo \
+ wrappers/pl_LWP_UserAgent.cmo \
+ wrappers/pl_Template.cmo \
+ wrappers/pl_WWW_Mechanize.cmo
+
+all: perl4caml.cma perl4caml.cmxa META all-examples html
+
+perl4caml.cma: perl.cmo perl_c.o $(WRAPPERS)
+ $(OCAMLMKLIB) -o perl4caml $(LIBPERL) $^
+
+perl4caml.cmxa: perl.cmx perl_c.o $(WRAPPERS:.cmo=.cmx)
+ $(OCAMLMKLIB) -o perl4caml $(LIBPERL) $^
+
+all-examples: examples/test.bc examples/loadpage.bc examples/google.bc \
+ examples/test.opt examples/loadpage.opt examples/google.opt \
+ examples/parsedate.bc examples/parsedate.opt
+
+TEST_PROGRAMS := $(patsubst %.ml,%.bc,$(wildcard test/*.ml)) \
+ $(patsubst %.ml,%.opt,$(wildcard test/*.ml))
+
+test: $(TEST_PROGRAMS) run-tests
+
+check: test
+
+run-tests:
+ @fails=0; count=0; \
+ export LD_LIBRARY_PATH=`pwd`:$$LD_LIBRARY_PATH; \
+ for prog in $(TEST_PROGRAMS); do \
+ if ! $$prog; then \
+ echo Test $$prog failed; \
+ fails=$$(($$fails+1)); \
+ fi; \
+ count=$$(($$count+1)); \
+ done; \
+ if [ $$fails -eq 0 ]; then \
+ echo All tests succeeded.; \
+ exit 0; \
+ else \
+ echo $$fails/$$count tests failed.; \
+ exit 1; \
+ fi
+
+%.bc: %.cmo
+ $(OCAMLC) $(OCAMLCFLAGS) perl4caml.cma $^ -o $@
+
+%.opt: %.cmx
+ $(OCAMLOPT) $(OCAMLOPTFLAGS) -cclib -L. perl4caml.cmxa \
+ $(DYNALOADER_HACK) $^ -o $@