# Makefile for COCANWIKI.
-# $Id: Makefile,v 1.16 2004/09/21 15:55:48 rich Exp $
+# $Id: Makefile,v 1.48 2006/07/26 13:11: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
+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 5430:localhost:5432 towada.merjis.com
+export PGHOST=localhost
+export PGPORT=5430
+endif
+
+SRCS := $(wildcard *.ml)
+ADMIN_SRCS := $(wildcard admin/*.ml)
+
+OBJS := $(SRCS:.ml=.cmo)
+ADMIN_OBJS := $(ADMIN_SRCS:.ml=.cmo)
+
+# 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 := \
- cocanwiki_date.cmo \
- cocanwiki_version.cmo \
- cocanwiki_files.cmo \
- cocanwiki_strings.cmo \
- cocanwiki_images.cmo \
- cocanwiki_template.cmo \
- cocanwiki_ok.cmo \
- cocanwiki.cmo \
- cocanwiki_diff.cmo \
- cocanwiki_emailnotify.cmo \
- wikilib.cmo \
- cgi_expires.cmo
-
-OBJS := 00-TEMPLATE.cmo \
- contact.cmo \
- contact_show.cmo \
- contacts.cmo \
- create.cmo \
- create_form.cmo \
- create_contact.cmo \
- create_contact_form.cmo \
- create_user.cmo \
- create_user_form.cmo \
- delete_contact.cmo \
- delete_contact_form.cmo \
- delete_file.cmo \
- delete_file_form.cmo \
- delete_image.cmo \
- delete_image_form.cmo \
- delete_user.cmo \
- delete_user_form.cmo \
- diff.cmo \
- edit.cmo \
- edit_page_css.cmo \
- edit_page_css_form.cmo \
- edit_sitemenu.cmo \
- edit_user.cmo \
- edit_user_form.cmo \
- file.cmo \
- files.cmo \
- forgot_password.cmo \
- forgot_password_form.cmo \
- history.cmo \
- hoststyle.cmo \
- image.cmo \
- images.cmo \
- login.cmo \
- login_form.cmo \
- logout.cmo \
- page.cmo \
- pagestyle.cmo \
- preview.cmo \
- recent.cmo \
- restore.cmo \
- restore_form.cmo \
- rss.cmo \
- search.cmo \
- send_feedback.cmo \
- send_feedback_form.cmo \
- set_password.cmo \
- set_password_form.cmo \
- signup.cmo \
- sitemap.cmo \
- undelete_file.cmo \
- undelete_file_form.cmo \
- undelete_image.cmo \
- undelete_image_form.cmo \
- upload_file.cmo \
- upload_file_form.cmo \
- upload_image.cmo \
- upload_image_form.cmo \
- users.cmo
-
-ADMIN_OBJS := \
- admin/admin.cmo \
- admin/create_host.cmo \
- admin/create_host_form.cmo \
- admin/edit_emails.cmo \
- admin/edit_emails_form.cmo \
- admin/edit_host_css.cmo \
- admin/edit_host_css_form.cmo \
- admin/edit_hostnames.cmo \
- admin/edit_hostnames_form.cmo \
- admin/host.cmo
+ 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: cocanwiki.cma $(OBJS) $(ADMIN_OBJS)
+all: lib/cocanwiki.cma $(OBJS) $(ADMIN_OBJS)
-cocanwiki.cma: $(LIB_OBJS)
- $(OCAMLC) $(OCAMLCFLAGS) -a -o $@ $^
+lib/cocanwiki.cma: $(LIB_OBJS)
+ ocamlfind ocamlc $(OCAMLCFLAGS) -a -o $@ $^
-cocanwiki_version.ml: cocanwiki_version.ml.in ../Makefile.config
+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 cocanwiki_version.ml
+ rm -f *~ *.bak core *.cmi *.cmo *.cma lib/cocanwiki_version.ml
+ rm -f lib/*~ lib/*.bak lib/core lib/*.cmi lib/*.cmo lib/*.cma
rm -f admin/*~ admin/*.bak admin/core admin/*.cmi admin/*.cmo
install:
install -d -m 0755 $(INSTDIR)
- install -c -m 0555 cocanwiki.cma $(OBJS) $(INSTDIR)
+ install -c -m 0555 lib/cocanwiki.cma $(INSTDIR)
+ install -c -m 0555 $(OBJS) $(INSTDIR)
install -d -m 0755 $(INSTDIR)/admin
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:
- rm -f .depend
- ocamldep *.mli *.ml admin/*.ml > $@
+ ocamldep -pp "$(PGOCAML_PP)" \
+ -I lib \
+ lib/*.ml lib/*.mli *.ml admin/*.ml > $@
ifeq ($(wildcard .depend),.depend)
include .depend