# Makefile for COCANWIKI. # $Id: Makefile,v 1.52 2006/09/11 09:38:59 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 := \ -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 := \ 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 INSTDIR := ../html/_bin all: lib/cocanwiki.cma $(OBJS) $(ADMIN_OBJS) lib/cocanwiki.cma: $(LIB_OBJS) 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 rm -f admin/*~ admin/*.bak admin/core admin/*.cmi admin/*.cmo install: install -d -m 0755 $(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 ocamlfind ocamlc $(OCAMLCFLAGS) -c $< %.cmo: %.ml ocamlfind ocamlc $(OCAMLCFLAGS) -c $< dep: .depend depend: .depend .depend: ocamldep -pp "$(PGOCAML_PP)" \ -I lib \ lib/*.ml lib/*.mli *.ml admin/*.ml > $@ ifeq ($(wildcard .depend),.depend) include .depend endif .SUFFIXES: .ml .mli .cmi .cmo