Fixed a few bugs in the previous check-in.
[cocanwiki.git] / scripts / Makefile
1 # Makefile for COCANWIKI.
2 # $Id: Makefile,v 1.44 2004/10/21 11:48:21 rich Exp $
3
4 include ../Makefile.config
5
6 OCAMLC := ocamlc
7 # XXX Move GregorianDate out of +merjis.
8 OCAMLCFLAGS := -w s \
9         -I +apache -I +pcre -I +dbi -I +extlib -I +netstring \
10         -I +merjis -I lib
11 CPP := cpp
12
13 SRCS := $(wildcard *.ml)
14 ADMIN_SRCS := $(wildcard admin/*.ml)
15
16 OBJS := $(SRCS:.ml=.cmo)
17 ADMIN_OBJS := $(ADMIN_SRCS:.ml=.cmo)
18
19 LIB_OBJS := lib/cocanwiki_version.cmo \
20         $(patsubst %,lib/%,$(shell cd lib && ocamldsort -byte *.ml *.mli))
21
22 INSTDIR := ../html/_bin
23
24 all: lib/cocanwiki.cma $(OBJS) $(ADMIN_OBJS)
25
26 lib/cocanwiki.cma: $(LIB_OBJS)
27         $(OCAMLC) $(OCAMLCFLAGS) -a -o $@ $^
28
29 lib/cocanwiki_version.ml: lib/cocanwiki_version.ml.in ../Makefile.config
30         $(CPP) -P -DPACKAGE="$(PACKAGE)" -DVERSION="$(VERSION)" $< > $@
31
32 clean:
33         rm -f *~ *.bak core *.cmi *.cmo *.cma lib/cocanwiki_version.ml
34         rm -f lib/*~ lib/*.bak lib/core lib/*.cmi lib/*.cmo lib/*.cma
35         rm -f admin/*~ admin/*.bak admin/core admin/*.cmi admin/*.cmo
36
37 install:
38         install -d -m 0755 $(INSTDIR)
39         install -c -m 0555 lib/cocanwiki.cma $(INSTDIR)
40         install -c -m 0555 $(OBJS) $(INSTDIR)
41
42         install -d -m 0755 $(INSTDIR)/admin
43         install -c -m 0555 $(ADMIN_OBJS) $(INSTDIR)/admin
44
45 %.cmi: %.mli
46         $(OCAMLC) $(OCAMLCFLAGS) -c $<
47
48 %.cmo: %.ml
49         $(OCAMLC) $(OCAMLCFLAGS) -c $<
50
51 dep:    .depend
52 depend: .depend
53
54 .depend:
55         ocamldep -I lib lib/*.ml lib/*.mli *.ml admin/*.ml > $@
56
57 ifeq ($(wildcard .depend),.depend)
58 include .depend
59 endif
60
61 .SUFFIXES: .ml .mli .cmi .cmo