build: Set TMPDIR for local testing.
[libguestfs.git] / haskell / Makefile.am
index dcaf18a..d8a06f3 100644 (file)
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-EXTRA_DIST = *.hs run-bindtests
+include $(top_srcdir)/subdir-rules.mk
 
 
-CLEANFILES = *~
+generator_built = \
+       Guestfs.hs \
+       Bindtests.hs
+
+# $(generator_built) isn't redundant below as the wildcard rule won't match, and
+# therefore won't generate, the files if they haven't been created yet
+EXTRA_DIST = $(generator_built) *.hs run-bindtests
 
 if HAVE_HASKELL
 
 TESTS_ENVIRONMENT = \
        LD_LIBRARY_PATH=$(top_builddir)/src/.libs \
        LIBGUESTFS_PATH=$(top_builddir)/appliance \
 
 if HAVE_HASKELL
 
 TESTS_ENVIRONMENT = \
        LD_LIBRARY_PATH=$(top_builddir)/src/.libs \
        LIBGUESTFS_PATH=$(top_builddir)/appliance \
+       TMPDIR=$(top_builddir) \
        $(VG)
 
        $(VG)
 
-TESTS = run-bindtests Guestfs005Load Guestfs010Launch Guestfs050LVCreate
+TESTS = run-bindtests Guestfs005Load Guestfs010Basic
 
 check_DATA = Bindtests
 
 GHCFLAGS = -I$(top_builddir)/src -L$(top_builddir)/src/.libs
 
 
 check_DATA = Bindtests
 
 GHCFLAGS = -I$(top_builddir)/src -L$(top_builddir)/src/.libs
 
-Bindtests: Bindtests.hs Guestfs.hs
-       $(GHC)  $(GHCFLAGS) -main-is $(shell basename $@) --make -o $@ $< -lguestfs
+all_targets = Bindtests Guestfs005Load Guestfs010Basic
+$(all_targets): $(top_builddir)/src/libguestfs.la
+
+all: $(all_targets)
 
 
-Guestfs005Load: Guestfs005Load.hs Guestfs.hs
+Guestfs.o: Guestfs.hs
+       $(GHC)  $(GHCFLAGS) -c $<
+
+Bindtests: Bindtests.hs Guestfs.o
        $(GHC)  $(GHCFLAGS) -main-is $(shell basename $@) --make -o $@ $< -lguestfs
 
        $(GHC)  $(GHCFLAGS) -main-is $(shell basename $@) --make -o $@ $< -lguestfs
 
-Guestfs010Launch: Guestfs010Launch.hs Guestfs.hs
+Guestfs005Load: Guestfs005Load.hs Guestfs.o
        $(GHC)  $(GHCFLAGS) -main-is $(shell basename $@) --make -o $@ $< -lguestfs
 
        $(GHC)  $(GHCFLAGS) -main-is $(shell basename $@) --make -o $@ $< -lguestfs
 
-Guestfs050LVCreate: Guestfs050LVCreate.hs Guestfs.hs
+Guestfs010Basic: Guestfs010Basic.hs Guestfs.o
        $(GHC)  $(GHCFLAGS) -main-is $(shell basename $@) --make -o $@ $< -lguestfs
 
        $(GHC)  $(GHCFLAGS) -main-is $(shell basename $@) --make -o $@ $< -lguestfs
 
+CLEANFILES = $(all_targets) *~ *.hi *.o
+
 endif
 endif