About half way through switching cocanwiki to using the new PG interface.
[cocanwiki.git] / scripts / Makefile
index d77b120..c9adce3 100644 (file)
@@ -1,33 +1,68 @@
 # Makefile for COCANWIKI.
-# $Id: Makefile,v 1.46 2005/04/02 17:30:54 rich Exp $
+# $Id: Makefile,v 1.47 2006/03/27 16:43:44 rich Exp $
 
 include ../Makefile.config
 
+PGOCAML_PP := camlp4o -I +pcre -I +extlib -I $(PGOCAMLDIR) $(OCAMLLIBDIR)/unix.cma $(OCAMLLIBDIR)/pcre/pcre.cma $(OCAMLLIBDIR)/extlib/extLib.cma $(OCAMLLIBDIR)/calendar/calendar.cma pgocaml.cma pa_pgsql.cmo
+
 OCAMLC := ocamlc
-OCAMLCFLAGS := -w s \
-       -I +apache -I +pcre -I +dbi -I +extlib -I +netstring -I +calendar \
-       -I lib
+OCAMLCFLAGS := \
+       -package apache,pcre,extlib,netstring,calendar -I $(PGOCAMLDIR) \
+       -I lib -pp "$(PGOCAML_PP)"
 CPP := cpp
 
+export PGDATABASE=cocanwiki
+
+ifeq ($(shell hostname),oirase)
+# While compiling on home machine, create a tunnel using
+# ssh -L 5431:localhost:5432 towada.merjis.com
+export PGHOST=localhost
+export PGPORT=5431
+endif
+
 SRCS := $(wildcard *.ml)
 ADMIN_SRCS := $(wildcard admin/*.ml)
 
 OBJS := $(SRCS:.ml=.cmo)
 ADMIN_OBJS := $(ADMIN_SRCS:.ml=.cmo)
 
-LIB_OBJS := lib/cocanwiki_version.cmo \
-       $(patsubst %,lib/%,$(shell cd lib && ocamldsort -byte *.ml *.mli))
+# NB. Order in which these are built really matters!  To rebuild
+# the ordering after substantially editing the library files, try:
+# PGDATABASE=cocanwiki ocamldsort -pp "'$(PGOCAML_PP)'" -byte *.ml *.mli
+LIB_OBJS := \
+       lib/cocanwiki_version.cmo \
+       lib/cocanwiki_date.cmo \
+       lib/cocanwiki_files.cmo \
+       lib/cocanwiki_server_settings.cmo \
+       lib/cocanwiki_strings.cmo \
+       lib/cocanwiki_version.cmo \
+       lib/cocanwiki_create_host.cmo \
+       lib/wikilib.cmo \
+       lib/cocanwiki_template.cmo \
+       lib/cocanwiki_images.cmo \
+       lib/cocanwiki_ok.cmo \
+       lib/cocanwiki.cmo \
+       lib/cocanwiki_links.cmo \
+       lib/cocanwiki_ext_calendar.cmo \
+       lib/cocanwiki_emailnotify.cmo \
+       lib/cocanwiki_diff.cmo \
+       lib/cocanwiki_pages.cmo \
+       lib/cocanwiki_mail.cmo
 
 INSTDIR := ../html/_bin
 
 all: lib/cocanwiki.cma $(OBJS) $(ADMIN_OBJS)
 
 lib/cocanwiki.cma: $(LIB_OBJS)
-       $(OCAMLC) $(OCAMLCFLAGS) -a -o $@ $^
+       ocamlfind ocamlc $(OCAMLCFLAGS) -a -o $@ $^
 
 lib/cocanwiki_version.ml: lib/cocanwiki_version.ml.in ../Makefile.config
        $(CPP) -P -DPACKAGE="$(PACKAGE)" -DVERSION="$(VERSION)" $< > $@
 
+# For debugging camlp4 macro.
+print:
+       $(PGOCAML_PP) pr_o.cmo lib/cocanwiki_pages.ml
+
 clean:
        rm -f *~ *.bak core *.cmi *.cmo *.cma lib/cocanwiki_version.ml
        rm -f lib/*~ lib/*.bak lib/core lib/*.cmi lib/*.cmo lib/*.cma
@@ -42,16 +77,18 @@ install:
        install -c -m 0555 $(ADMIN_OBJS) $(INSTDIR)/admin
 
 %.cmi: %.mli
-       $(OCAMLC) $(OCAMLCFLAGS) -c $<
+       ocamlfind ocamlc $(OCAMLCFLAGS) -c $<
 
 %.cmo: %.ml
-       $(OCAMLC) $(OCAMLCFLAGS) -c $<
+       ocamlfind ocamlc $(OCAMLCFLAGS) -c $<
 
 dep:    .depend
 depend: .depend
 
 .depend:
-       ocamldep -I lib lib/*.ml lib/*.mli *.ml admin/*.ml > $@
+       ocamldep -pp "$(PGOCAML_PP)" \
+         -I lib \
+         lib/*.ml lib/*.mli *.ml admin/*.ml > $@
 
 ifeq ($(wildcard .depend),.depend)
 include .depend