Persist variables to file (~/.whenjobs/variables).
[whenjobs.git] / lib / Makefile.am
index 898f204..70d84fa 100644 (file)
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
+EXTRA_DIST = whenproto.x pa_when.ml $(SOURCES)
+
 libwhenjobsdir = $(libdir)/$(PACKAGE_NAME)
-libwhenjobs_SCRIPTS = whenlib.cma pa_when.cmo
+libwhenjobs_SCRIPTS = whenlib.cma pa_when.cmo $(CMI_FILES)
+
+if HAVE_OCAMLOPT
+libwhenjobs_SCRIPTS += whenlib.cmxa
+endif
 
 OCAMLPACKAGES = -package unix,num,camlp4.lib,calendar,rpc
 
@@ -24,25 +30,51 @@ OCAMLCFLAGS = -g -warn-error CDEFLMPSUVYZX $(OCAMLPACKAGES)
 OCAMLOPTFLAGS = $(OCAMLCFLAGS)
 
 # These should be in alphabetical order. 
+#
+# NB. whenproto_aux.{ml,mli} are not included here.  These generated
+# files are not compatible across different versions of ocamlnet, so
+# must not be included in the tarball and should be regenerated by the
+# user each time.
 SOURCES = \
        config.ml \
-       whenfile.mli \
+       config.mli \
+       whenexpr.ml \
+       whenexpr.mli \
        whenfile.ml \
+       whenfile.mli \
        whenlock.ml \
        whenlock.mli \
-       whenproto_aux.ml \
-       whenproto_aux.mli \
-       whenutils.mli \
-       whenutils.ml
+       whenstate.ml \
+       whenstate.mli \
+       whentools.ml \
+       whentools.mli \
+       whenutils.ml \
+       whenutils.mli
+
+# In alphabetical order.
+CMI_FILES = \
+       config.cmi \
+       whenexpr.cmi \
+       whenfile.cmi \
+       whenlock.cmi \
+       whenproto_aux.cmi \
+       whenstate.cmi \
+       whentools.cmi \
+       whenutils.cmi
 
 # In dependency order.
 OBJECTS = \
        config.cmo \
        whenproto_aux.cmo \
        whenutils.cmo \
+       whenexpr.cmo \
+       whenstate.cmo \
        whenfile.cmo \
+       whentools.cmo \
        whenlock.cmo
 
+XOBJECTS = $(OBJECTS:.cmo=.cmx)
+
 # Library.
 noinst_LIBRARIES = liblibrary.a
 liblibrary_a_SOURCES = flock.c
@@ -51,13 +83,19 @@ liblibrary_a_CFLAGS = -I$(shell $(OCAMLC) -where)
 whenlib.cma: $(OBJECTS) liblibrary.a
        $(OCAMLFIND) c -a $(OCAMLCFLAGS) $(OBJECTS) -cclib -llibrary -o $@
 
+whenlib.cmxa: $(XOBJECTS) liblibrary.a
+       $(OCAMLFIND) opt -a $(OCAMLOPTFLAGS) $(XOBJECTS) -cclib -llibrary -o $@
+
 whenproto_aux.ml whenproto_aux.mli: whenproto.x
        $(OCAMLRPCGEN) -int int32 -hyper int64 -aux $<
 
 # Preprocessor for whenjobs files.
-pa_when.cmo: pa_when.ml whenlib.cma
-       $(OCAMLFIND) c $(OCAMLCFLAGS) \
-         -linkpkg whenlib.cma -pp $(CAMLP4OF) -c $< -o $@
+# Note that we intentionally don't want this to depend on any
+# libraries except for camlp4.lib.
+pa_when.cmo: pa_when.ml
+       $(OCAMLFIND) c -g -warn-error CDEFLMPSUVYZX \
+         -package camlp4.lib -linkpkg \
+         -pp $(CAMLP4OF) -c $< -o $@
 
 # Rules for all OCaml files.
 %.cmi: %.mli