+csv dep for PG'OCaml.
[cocanwiki.git] / scripts / Makefile
index d8529ef..230db03 100644 (file)
 # Makefile for COCANWIKI.
-# $Id: Makefile,v 1.24 2004/09/24 16:41:16 rich Exp $
+# $Id: Makefile,v 1.55 2007/02/24 17:28:52 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 $(CSVDIR)/csv/csv.cma pgocaml.cma pa_pgsql.cmo
+
+PACKAGES = apache,pcre,extlib,netstring,calendar
+
 OCAMLC := ocamlc
-OCAMLCFLAGS := -w s -I +apache -I +pcre -I +dbi -I +extlib
+OCAMLCFLAGS = \
+       -package $(PACKAGES) \
+       -I $(PGOCAMLDIR) -I $(CSVDIR) \
+       -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_cgi_args.cmo \
-       cocanwiki_date.cmo \
-       cocanwiki_version.cmo \
-       cocanwiki_files.cmo \
-       cocanwiki_strings.cmo \
-       cocanwiki_images.cmo \
-       cocanwiki_template.cmo \
-       cocanwiki_ok.cmo \
-       cocanwiki_server_settings.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_contact.cmo \
-       edit_contact_form.cmo \
-       edit_host_css.cmo \
-       edit_host_css_form.cmo \
-       edit_host_settings.cmo \
-       edit_host_settings_form.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 \
-       host_menu.cmo \
-       image.cmo \
-       images.cmo \
-       largest_pages.cmo \
-       login.cmo \
-       login_form.cmo \
-       logout.cmo \
-       mailing_list_confirm.cmo \
-       mailing_list_form.cmo \
-       mailing_list_send.cmo \
-       mailing_list_unsubscribe.cmo \
-       page.cmo \
-       page_email_confirm.cmo \
-       page_email_form.cmo \
-       page_email_send.cmo \
-       page_email_unsubscribe.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 \
-       stats.cmo \
-       stats_top.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_extensions.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_pages.cmo \
+       lib/cocanwiki_diff.cmo \
+       lib/cocanwiki_mail.cmo \
+       lib/cdvmm_phone_numbers.cmo \
+       lib/cocanwiki_func_shell.cmo
+
+ifneq ($(OCAMLRSS),)
+LIB_OBJS += lib/cocanwiki_func_rss.cmo
+OCAMLCFLAGS += -package netclient -I $(OCAMLRSS) -I $(XML_LIGHT)
+endif
 
 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