The Memory: Don't create empty file on first write.
[goaljobs.git] / Makefile.am
index 11997d7..e752ae5 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.
 
+include common-rules.mk
+
 ACLOCAL_AMFLAGS = -I m4
 
 EXTRA_DIST = \
        COPYING \
+       goaljobs \
+       goaljobs_config.ml.in \
+       goaljobs.ml \
+       goaljobs.mli \
+       goaljobs.spec \
+       goaljobs.spec.in \
+       META.in \
        NOTES \
+       pa_goal.ml \
        README \
-       $(sources)
-
-CLEANFILES = *~
-
-OCAMLCFLAGS = -g -package unix
-OCAMLOPTFLAGS = $(OCAMLCFLAGS)
+       TODO
 
 SUBDIRS = . examples tests
 
 sources = \
-       test.ml \
+       goaljobs_config.ml \
        goaljobs.ml \
        goaljobs.mli
 
-noinst_SCRIPTS = test
+bin_SCRIPTS = goaljobs
 
-test: goaljobs.cmx
-       $(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) $< -o $@
+# These targets are noinst because we use a custom install hook to
+# install them, and are _SCRIPTS because automake doesn't know how to
+# compile OCaml code.
+noinst_SCRIPTS = goaljobs.cma goaljobs.cmxa pa_goal.cmo
 
-# Dependencies.
+# Library.
+goaljobs.cma: goaljobs_config.cmo goaljobs.cmo
+       $(OCAMLFIND) ocamlc -a -o $@ $(OCAMLCFLAGS) $(OCAMLCPACKAGES) $^
 
-%.cmi: %.mli
-       $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -c $< -o $@
-%.cmo: %.ml
-       $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -c $< -o $@
-%.cmx: %.ml
-       $(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -c $< -o $@
+goaljobs.cmxa: goaljobs_config.cmx goaljobs.cmx
+       $(OCAMLFIND) ocamlopt -a -o $@ $(OCAMLOPTFLAGS) $(OCAMLOPTPACKAGES) $^
 
+# Preprocessor for goaljobs scripts.
+pa_goal.cmo: pa_goal.ml
+       $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -package camlp4.lib -linkpkg \
+           -pp $(CAMLP4OF) -c $< -o $@
+
+# Install.
+install-data-hook:
+       mkdir -p $(DESTDIR)$(OCAMLLIB)
+       $(OCAMLFIND) install \
+           -ldconf ignore -destdir $(DESTDIR)$(OCAMLLIB) \
+           goaljobs \
+           META goaljobs.cma goaljobs.cmxa pa_goal.cmo *.cmi $(srcdir)/*.mli
+       rm $(DESTDIR)$(OCAMLLIB)/goaljobs/pa_goal.cmi
+
+# Dependencies.
 depend: .depend
 
-.depend: $(wildcard $(abs_srcdir)/*.mli) $(wildcard $(abs_srcdir)/*.ml)
+.depend: $(sources)
        rm -f $@ $@-t
        $(OCAMLFIND) ocamldep -I $(abs_srcdir) $^ | \
          $(SED) 's/ *$$//' | \
@@ -62,9 +82,9 @@ depend: .depend
 
 -include .depend
 
-SUFFIXES = .cmo .cmi .cmx .ml .mli .mll .mly
+rpm: dist
+       rpmbuild -ta $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz
 
 # License check.
-
 licensecheck:
        licensecheck $$(git ls-files)