# Building knapsackDP.m mercury application
# Requires knapsackDPlib_lib.m
# 07/10/2014
# Test with knapsackDP.m
#
# Typing 'make' or 'make knapsackDP' will create the executable file.
# Grades ought to be the same in main and dependancies.
# none.gc.stseg 	;; works, i.e. compile, link
# hlc.gc		;; works, i.e, compile, link, provided you declare 
# type cutInfo. 	;; in the interface
UTILPATH = ../../lpiUtil
GRADE = hlc.gc
default: knapsackDP

# Specify all libraries required for knapsackDP.m; lpiUtil.m and shortestPathDag_lib.m
knapsackDP:  libknapsackDP_lib.a
	mmc --make --fully-strict -E -v --use-subdirs knapsackDP \
	--grade $(GRADE) \
	-O 6 \
	--search-lib-files-dir . \
	--init-file knapsackDP_lib.init \
	--link-object libknapsackDP_lib.a \
	--search-lib-files-dir $(UTILPATH) \
	--init-file $(UTILPATH)/lpiUtil.init \
	--link-object $(UTILPATH)/liblpiUtil.a

# Build lpiUtil.m beforehand, in its own associated directory.
libknapsackDP_lib.a:  knapsackDP_lib.m
	mmc --make --grade $(GRADE) libknapsackDP_lib -E \
	--search-lib-files-dir $(UTILPATH) \
	--link-object $(UTILPATH)/liblpiUtil.a \
	--init-file $(UTILPATH)/lpiUtil.init

# To start over from scratch, type 'make clean'.
clean: 
	$(RM) *~
	$(RM) -rf Mercury
	$(RM) knapsackDP
	$(RM) *.err
	$(RM) *.mh
	$(RM) *.init
	$(RM) *.a
	$(RM) *.dylib
